@hirthwork

Тег говно в блоге hirthwork

hirthwork

Забанили на r/russia

hirthwork

Ставишь мобильное приложение GitHub. Оно не позволяет редактировать файлы. Охуенно, да? Мобильный сайт позволяет редактировать, а приложение — нет.
Открываешь мобильный сайт гитхаба. Заходишь в репу. Один раз тыкаешь на Get desktop version и больше не можешь вернуться на мобильную версию. Полчаса смотришь на отжатую галку в Account и нихуя не понимаешь. А потом оно случайно возвращается обратно.

После этого я и поставил GitJournal. Написал автору про багу — он ответил через три минуты с воркэраундом

hirthwork

День, когда Х-ворк бросил переизобретать стандартную библиотеку.
Задача: отсортировать лексикографически массив массивов. Все внутренние массивы одинаковой длины в 500 интов. Массивов всего полмиллиона.

Наивная реализация: Arrays.sort(...), где в качестве компаратора объектов используется Arrays.compare(int[], int[]).
Отрабатывает за 30 мс. Для справки, внутри там Timsort

Снобская реализация: Не, ну как же это же можно Arrays.sort(...), там же постоянно будет пробегаться по каждому массиву чтобы сравнить, медленно работать будет, есть же сортировка Бентли-Седжвика, её впендюрим как крутые программисты. А чтобы быть ещё круче, сделаем с циклом, чтобы для самого длинного куска разбиения сортировать в этом же вызове функции, сэкономим на максимальной глубине стека вызовов.
Отрабатывает за 60мс. Ну нахуй эти ваши модные алгоритмы.

hirthwork

Собственно, мне нечего больше сказать про генератор грамматик, который для определения конца инпута использует эксепшены.

hirthwork

В тегах вы можете краткую историю про то, как х-зая боролся с неразумно плодящимися тредами, которых плодиться не просили.

hirthwork

А чтобы совсем не скучно было жить, мы ещё все дружно с переполнением инта объебались. Хуёво когда данных много.

hirthwork

День, когда х-ворк объебался на стыке UTF-8 и UTF-16
Стыдоба

hirthwork

Уровень отчаяния: позвал на скайп-собеседование кандидата, который в резюме написал «Опытный пользователь ПК»

hirthwork

Купил моник Samsung C24F396. Всё управление через т.н. JOG — джойстик на задней стенке. Так вот, я 20 минут читал доки по моникам данной серии и нихуя не нашёл как выключить этот моник через JOG. Вот не даёт он мне ничего сделать кроме как громкость и яркость/контрастность отрегулировать. Пиздец, блядь.

hirthwork

Вот всем хорошо ragel, но (тут все процитировали Эддарда Старка, хранителя севера) вот некоторые детали вызывают изумление своей наивностью. Например:
Я когда-то говорил, что jflex круче ragel, потому что он позволяет на лету менять регулярку, которой ты матчишь инпут. Просто прыгнул в другой стейт и вуаля — у тебя новый синтаксис (а когда скобочки или кавычки закроются, то можешь прыгнуть обратно, что ты, стек что ли не заведёшь?)
Так вот, оказалось, что рагель тоже так умеет через команды fcall и fret
...которые кладут текущий стейт в переменную stack
...которая обязательно должна иметь тип int[]
...размер которой ты хуй предскажешь заранее ...и класть туда текущий стейт оно будет вот примерно таким кодом: stack[top++] = currentState;
...без проверки размера stack

Ну ёб твою мать!
Интересно, если я форкну рагель и положу в общий репозиторий рагел со вскусом ненависти х-ворка, но без ArrayIndexOutOfBoundsException, коллеги оценят?

hirthwork

С тех пор как в моей зоне ответственности появилось несколько плюсовых демонов разной степени окаменелости, самой частопосещаемой страничкой в интернете стал poormansprofiler.org

hirthwork

Russian reversal: Бросил кольцо из Мордора в Средиземье
Случайно, конечно, на гребке кролем. Обидно шопиздец. И жена говорит, что покупать замену нужно такую же, так что мне ещё неделю без кольца жить.

hirthwork

Сегодня на собеседе лицезрел как слияние двух отсортированных списков было сделано с квадратичной сложностью. Чудны дела твои, Тьюринге

hirthwork

Решил Х-ворк поддержку IDN в java.net.URI добавить.
Итого найдено две баги в java.net.URI и не понятно вообще как этим говном пользоваться можно.

hirthwork

Есть такой класс в Java NIO: java.net.SocketChannel
Для удобства олдфагов у него есть метод Socket socket();
Соответственно олдфаги могут делать channel.socket().getInputStream() и channel.socket().getOutputStream() и пердолиться в массивчики вместо того, чтобы читать документацию по непонятному ByteBuffer.
Недоверчивые олдфаги естественно сначала написали тест где сделали channel.socket().getInputStream().read() и убедились, что он кидает эксепшен по таймауту.
Ваш покорный слуга и слишком доверчивый олдфаг сегодня в продакшене узнал, что channel.socket().getOutputStream().write(buf) таймаута по эксепшену не кидает.
Не используйте Джаву. Оставьте это мне. Через страдания я приду к искуплению.

hirthwork

В этом вашем линупсе у pthread_mutex даже FILO порядок получения лока не сделаешь.

hirthwork
$ cat main.c      
int foo() {
    for (;;) {
    }
    return 0;
}

int main() {
    return foo();
}

$ clang -O2 main.c
$ time ./a.out
./a.out  0.00s user 0.00s system 78% cpu 0.001 total
$ echo $?
0
$ gcc -O2 main.c
$ time ./a.out 
^C
./a.out  1.16s user 0.00s system 99% cpu 1.164 total
$ clang --version
clang version 6.0.1 (tags/RELEASE_601/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/6/bin
$ gcc --version
gcc (Gentoo 8.2.0-r6 p1.7) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Это что такое было вообще?

hirthwork

Пару апдейтов назад в десктопном телеграме поломались счётчики прочитанности чата. Ты открываешь чат, крутишь до самого низа, а он всё ещё говорит, что там непрочитанные сообщения

hirthwork

Всего день пойнт полежал, так сразу нытьё развели. Выйдете на улицу, пообщайтесь с другими людьми голосом, да хоть поработайте, только не нойте!

hirthwork

Пиздец, блядь. Как можно одним патчем целиком понерфить сразу три архетипа. И ещё пару поломать. В ладдере ожидается отчаянная грызня за новую мету.

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

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