@hirthwork

Тег tip of the day в блоге hirthwork

hirthwork

Нестареющей вам классики:

hirthwork

Охуенный рецепт как заставить уже запущенные окна screen'а подключаться к ssh-agent даже после разрыва ssh-соединения: https://superuser.com/a/180149

hirthwork

Если выходить из mpv по Q, а не q, то он сохранит текущую позицию в ~/.config/mpv/watch_later/ и автоматически начнёт проигрывание файла с этой позиции в следующий раз. Готово для десктопа. А то я каждый раз по пьяни не досматриваю фильм, а на следующий день не помню где закончил

hirthwork

Вопрос профессионалам: что будет, если в многопоточном приложении вызвать close(2) дважды на одном и том же файловом дескрипторе?
Ответ: будет race condition с очень занятными сайд-эффектами самым безобидным из которых будет broken pipe.

hirthwork

как javac решает использовать lookupswitch или tableswitch: http://stackoverflow.com/a/31032054

hirthwork

Бросайте не пить по понедельникам, а не пятницам

hirthwork
hirthwork

Как я перестал бояться и полюбил емёрж:

PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
PORTAGE_NICENESS="19"
hirthwork

Оказалось, что для скринкастов есть утилита recordmydesktop, которая в отличие от ffmpeg умеет таки кэпчурить конкретное окно. Требует window id, так что для пущей юзабилити следует запускать в связке с xprop: recordmydesktop --no-wm-check --no-sound --no-cursor -v_bitrate 200000000 --windowid $(xprop|awk '/WM_CLIENT_LEADER/{print $NF}')

hirthwork

-x Attach to a not detached screen session. (Multi display mode).

hirthwork

Открыл для себя волшебный мир git stash -u

hirthwork

Ответ к #oozmhw: sed -n '/^[0-9]/ b trace H;b; :trace x;/9T18HR/p'
Подробное описание того как это работает, здесь: http://www.grymoire.com/Unix/Sed.html#uh-58

hirthwork

Если ваш ёбаный мэйкфайл фейлит сборку хитровыебанного таргета с многострочным рецептом, но при этом нихуя не понятно почему, а убирать все эти вот @ в начале строк рецепта вам дичайше западло, то можно наебать систему сделав make SHELL="/bin/bash -x"

hirthwork

Чтобы заменить символ на перенос строки, нужно использовать \r, т.е. делать не :%s/ /\n/, а :%s/ /\r/

hirthwork

хочешь встретиться с пойнтачерами — просто объяви где будешь и пусть сами ищут с тобой встречи

hirthwork

если вы нихуя не можете понять, почему xdg-settings set default-web-browser … выходит с exit code 4, то удалите нахрен .config/mimeapps.list

hirthwork

как не жрать на ночь: не держать дома иной еды кроме как хурмы в морозилке

hirthwork

Продолжение #tsxtz
sapienti sat

$ cat Main.java
import java.lang.reflect.Field;

public class Main {
    public static void main(final String... args) throws Exception {
        Field f = String.class.getDeclaredField("value");
        f.setAccessible(true);
        StringBuilder sb = new StringBuilder("hello, world");
        String s1 = new String(sb);
        String s2 = new String(sb);
        Object v1 = f.get(s1);
        Object v2 = f.get(s2);
        System.out.println(v1 == v2);
    }
}

$ javac Main.java
$ java Main
false
$ /opt/ibm/javawrt3_64/bin/java Main
true
hirthwork

прежде чем сверлить, убедитесь в наличии крепежа

hirthwork

Все знают, что StringWriter есть всего лишь обёртка над StringBuffer, у
которого каждый метод synchronized.
Замутил я тут свой собственный Writer, который сделал обёрткой над
StringBuilder, который не thread safe. Да и нахрена мне thread-safe, если я
нигде не пишу в один Writer из разных потоков.
В общем, результаты более-менее адекватного тестирования таковы:
Writer на базе StringBuilder'а быстрее StringWriter'а примерно на 15%.
А после того как отработает JIT — на 20-25%
И это ни разу не premature оптимизация.

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.