@hirthwork

Тег wrok в блоге hirthwork

hirthwork

Сегодня ровно десять лет как я работаю в Яндексе. Десять лет задач, которые бросают вызов. Десять лет технологий, в использовании которых меня никто не ограничивал. Десять лет без бюрократии. Десять лет зарплаты, которой я доволен.

hirthwork

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

hirthwork

Сегодня я узнал, что у исполняемых файлов в x86_64 максимальный размер исполняемого файла — 2ГБ. И ещё я узнал, что в нашей системе сборки мы регулярно в этот лимит упираемся.

hirthwork

Х-ворк не дурак (по крайней мере он так думал). Он настроил деплой сервиса сначала на один ДЦ, а потом уже на все остальные, после ручного подтверждения и после того как убедился, что тайминги не просели и вообще всё в порядке.
Одного Х-ворк не учёл — не стоит для проверки с эталоном деплоиться в самый новый ДЦ. Там новее процы, на них AVX2, быстрее векторные операции. Поэтоми при деплое на остальные ДЦ ты можешь получить совершенно иную картину.

hirthwork

На работе переехали, недалеко, через коридор. Теперь окна не во двор, а на внешнюю часть БЦ выходят.
В тёплую погоду вместо толпы хипстеров, страдающих хуйнёй в рабочее время, буду наблюдать нихуя и случайных прохожих.

hirthwork

Починил багу. Теперь 76 тестов упавших починить нужно нужно. Living a dream

hirthwork

Не давайте долбоёбу писать сложных систем. Долбоёб уволится, а у вас ещё годы не будут доходить руки переписать по нормальному и вы каждый раз будете окунаться в этот код как в говно.

hirthwork

Коллеге звонок на мобилу:
— Да.
— ...
— Нет, я не плачу по 500 рублей за мобильную связь.
— ...
— Нет, вы не поняли. У меня корпоративный тариф, который мне оплачивает компания.
— ...
— До свидания.
Начальник:
— А Дима сразу говорит: «Идите нахуй».

hirthwork

Утро начинается не с кофе
… а со звонка начальника
… надо мониторинг нормальный повесить, чтобы он звонил, а не начальник

hirthwork

TFW тесты падают, потому что кончается /proc/sys/kernel/random/entropy_avail

hirthwork

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

hirthwork

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

hirthwork

You either die a hero, or live long enough to write (char**) (void*) out

hirthwork

Кто раньше всех в офис пришёл — тот первым и заебался.

hirthwork

Я понял. Мне нужно себе на рабочее место обзавестись экземпляром «И-цзин». Тогда перед квартальным планированием можно будет решать, браться за задачу или нет.

hirthwork
  1. Не важно, сколько часов ты проработаешь за день, 8, 9 или 10. От этого изменится лишь количество новых задач, которые ты сделать не успеешь. Весь бэклог ты не разгребёшь никогда и никогда не наймёшь достаточно разработчиков, чтобы это сделать
  2. Если долго смотреть на список жалоб пользователей, то в конце концов придёт пользователь с новой жалобой, но при этом разберёт её достаточно детально, чтобы ты понял, как починить остальные без внесения взрывоопасных изменений
hirthwork

Это чувство, когда хочешь сказать спасибо себе семь лет назад, за то что сделал человеческий интерфейс с нужным уровнем абстракции и сейчас спустя семь лет можно просто подсунуть другую реализацию и вместо потока байт получить DOM-структуру

hirthwork

В июле в re2j добавили поддержку именованных групп. Я решил протестить его на тех же данных, что в #zhxde. В этот раз с более точным замером времени. Вот результаты:
Для файла размером 1128824 байт:

jni + pcre              — 111ms
com.google.re2j.Pattern — 201ms
java.regex.Pattern      — 886ms

Для файла размером 408739 байт:

jni + pcre              — 13ms
com.google.re2j.Pattern — 40ms
java.regex.Pattern      — 6ms

Какие выводы можно сделать?
1. re2j заявляет что работает с линейной сложностью и это, похоже, примерно выполняется
2. re2j не является серебряной пулей. Т.е. есть случаи, когда java.regex.Pattern его сильно обгоняет
3. Я хуею от результатов java.regex.Pattern. Вот блядь вообще не знаю как объяснить эти результаты. Тем более что регулярка у меня не вот прям сложная, а проверяет, что семь слов встречаются в тексте, а между ними может идти всё что угодно (ну и регистр некоторых символов может варьироваться)
4. jni + pcre неожиданно хорош. С учётом того, что ему нужно сначала целиком скопировать содержимое UTF-16 строки, затем сконвертировать её в UTF-8, а потом прогнать регулярку — это очень неплохой результат.

hirthwork

По результатам работы профайлера 53.86% времени работы программы занимает java.lang.String.charAt(int)

hirthwork

Есть в JNI функция GestStringUTFChars
Так вот, спустя несколько лет использования выяснилось, что она возвращает не UTF-8, а “modified UTF-8” ...или сказка о том как Х-ворк багу при передаче емодзи искал

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

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