@hirthwork

Тег идиоты в блоге hirthwork

hirthwork
05 Sep 2017
hirthwork

Спонсор и адресат сегодняшних лучей поноса — mail.ru, который до 23 января 2015 года рассылал DMARC Aggregate Reports с Subject сформированным строго в соответствии с rfc7489, а после этого изменивший формат на несколько иной, rfc не соответствующий.

hirthwork
17 Jul 2017
hirthwork

Не регайтесь на dominospizza.ru — они присылают ваш пароль в плейнтексте

hirthwork
07 Jul 2017
hirthwork

МГТС прислал спам с темой «Жаркое лето на Цифровом ТВ!»
Они ещё и издеваются

hirthwork
18 Apr 2017
hirthwork

Теперь я видел всё™. Снова. Чувак попросил помощи в разборе проблемы и прислал скриншот логов: http://mail-archives.apache...bqCQ@mail.gmail.com>

hirthwork
15 Mar 2017
hirthwork

бланк ОСАГО имеет размер 210х304 мм

hirthwork
10 Jan 2017
hirthwork

СУКА БЛЯДЬ ПИЗДА НАХУЙ
ДЕСЯТЬ МИНУТ ЗАНИМАЛА ТЕРМИНАЛ ОПЛАТЫ
СУКА ТУПАЯ НАСОСИ НА ИНТЕЛЛЕКТ УЖЕ

hirthwork
23 Nov 2016
hirthwork
hirthwork
16 Nov 2016
hirthwork
hirthwork
01 Aug 2016
hirthwork

Тем временем в ржд изобрели летающие поезда

hirthwork
14 Mar 2016
hirthwork

Расскажу как мне сегодня припекло от опенсорса.

Есть библиотека Apache PDFBox. Есть там одно (единственное) место, где нужно отсортировать нестандартные объекты. Под нестантартные имеются ввиду объекты, компаратор которых не отвечает требованию транзитивности.
Начиная с Java 7 стал использоваться tim sort, который кидает эксепшен, если детектит, что компаратор не обеспечивает транзитивность.
Итак, итерация первая: Чуваки написали свой собственный quick sort (сортировка Хоара), который не делает подобных проверок: http://grepcode.com/file/re...il/QuickSort.java#68

Сортировка формально правильная, вот только на длинных отсортированных массивах падает со StackOverflowError. Потому что нехуй длинные рекурсии городить.
Когда я на эту проблему наступил, то недолго думая развернул одну из веток рекурсии. Т.е. если левая часть от делителя больше, то я делаю вызов quick sort для правой, а для левой делаю split в контексте текущего вызова — таким образом максимальная глубина рекурсивных вызовов становится log N и никакой ошибки. Да и работает быстрее, за счёт устранения лишнего вызова.

Но это вы прочитали про то как проблему решает инженер. Опенсорс коммьюнити идёт совершенно другим путём. Эти специалисты решили, что если стека потока не хватает, то нужно эмулировать стек в куче! https://svn.apache.org/view...&pathrev=1723157#l71
Т.е. заводим Stack<Integer> и пихаем в него пары границ итерирования. Охуенно же! Теперь у нас есть аллокации в памяти которых у нас не было, а так же есть O(N) дополнительный вызовов Stack<Integer>.push()/pop(), которые, я напомню забывшим, являются synchronized, т.е. как минимум используют спинлок!

В общем, повторю фразу тимлида: «У меня складывается ощущение, что в опенсорсе вообще никто не думает о производительности»

hirthwork
26 Feb 2016
hirthwork

Мне не нравятся письма от gog с темой "Более 40 способов стать героем не отходя от экрана!"

hirthwork
28 Dec 2015
hirthwork

это постыдное чувство, когда на англоязычном форуме встречаешь соотечественника:

hi. i'm from russia and i want supported this project(i2p). who is users from russia supported it. write me!!!
sorry, i don't speak english well.

© http://zzz.i2p/topics/2012-help-me

hirthwork
26 Apr 2014
hirthwork

Из #anwn мы узнаём, что вереск настолько криворук, что не смог на школьной лабораторке вычислить g. Я как щас помню — у меня 9.83 м/с² получилось тогда

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

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