Я и мой ёбаный кот на фоне ковра. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

написал мегаполезный класс — 440 строк. написал тесты к нему — 312 строк. доволен

#T8KB6R (17+1) / @hirthwork / 4061 день назад

ебанулся и написал собственный аналог https://github.com/square/tape с тем чтобы размер файла не был ограничен двумя гигами

#88MRS5 (3) / @hirthwork / 4061 день назад

днище ебаное

Error Message: In a JIT-compiled Java method, a finally block is
not executed when:

1. A multi-type catch block is used to catch more than one type
of exceptions.

2. An exception is thrown from the try block that matches
anything but the first type in the multi-type catch.

3. An exception is thrown from the catch block. It can be a new
exception, or the caught (re-thrown) exception.

© http://www-01.ibm.com/support/docview.wss?uid=swg1IV68110

Оригинальный разбор полётов здесь:
https://www.ibm.com/developerworks/community/forums/html/topic?id=b660d423-abee-4d81-9a82-450824a26298&ps=25

#E3KYQA (12+1) / @hirthwork / 4062 дня назад

вот держишь ты данные в файлике и всё заебись — rename на файликах работает атомарно, заменяя один другим. но вот стоит тебе начать держать данные в папках, как сразу начинается ад и погибель, потому что нельзя сделать mv -T a b

#2TO8B6 (12) / @hirthwork / 4062 дня назад

уж если собрался профилировать скорость, то будь добр -Xdebug из параметров запуска убрать
inb4: хули я тут удаляю

#ZRNA89 (3) / @hirthwork / 4072 дня назад

В джаве нельзя просто так взять и написать дженерик с такой вот сигнатурой:

<T> void f(List<T> list, Callback<? super List<? super T>> cb) {

Жава будет вопить про то что второй аргумент хуйня и шли б все нахуй http://ideone.com/1xQ7dC

Поебавшись некоторое время нашёл вот такой лайфхак:

<T, U extends T> void f(List<U> list, Callback<? super List<T>> cb) {

Который заебись компилится: http://ideone.com/WN1qui

В общем, не знаю кому из вас это может понадобится, но пользуйтесь на здоровье

#QSJV8V (2) / @hirthwork / 4077 дней назад

tfw findbugs указывает тебе на ошибки в твоих же программах

#WHXLQP (0) / @hirthwork / 4086 дней назад

так долго программил под VC++98, что настороженно относишься к установке пакета libICE

#XNN1QK (0) / @hirthwork / 4088 дней назад

tfw rfc7159 разрешил любой value в качестве корневого элемента json. теперь придётся поправить json-parser написанный по rfc4627

#TQ1DNF (0) / @hirthwork / 4096 дней назад

опять import'ы перестали в 80 символов влезать

#E910Y9 (0) / @hirthwork / 4121 день назад

Всё таки в плюсцах есть одна удобная штука по сравнению с жавой. Куда удобнее и короче писать

enterprise_object_factory factory(arg1, arg2, arg3);

чем

EnterpriseObjectFactory factory = new EnterpriseObjectFactory(arg1, arg2, arg3);

#IXISBE (4+1) / @hirthwork / 4124 дня назад

величайшей трагедией интерфейса Comparable является то, что в коллекции объектов реализующих этот интерфейс вовсе не гарантируется одинаковость реализации .compareTo(...) у всех объёктов коллекции. в этом плане использование внешнего компаратора куда меньше режет глаз истинным перфекционистам

#06S50X (4) / @hirthwork / 4144 дня назад

вдогонку к #CN7EZY
восемь килобайт — предельный размер блока записи в FileOutputStream, который не требует аллокаций памяти. использоваться будет массив на стеке. если больше восьми килобайт, то перед вызовом GetByteArrayElements, сначала malloc'ом будет выделен блок памяти равный размеру массива

#NA7KSN (5) / @hirthwork / 4156 дней назад

раньше я думал, что запись в Socket блоков данных больше 8KB приводит к большому оверхеду за счёт выделения временных DirectByteBuffer. Оказывается это не так, никаких магических 8KB нет в коде jvm. Независимо от размера блока будет вызываться Util.getTemporaryDirectBuffer(size) которые выдаст DirectByteBuffer нужного размера и при необходимости удалит первый попавшийся из своего ThreadLocal кэша, чтобы новый буфер в этот кэш положить.

#MRJHR0 (1) / @hirthwork / 4158 дней назад

идемпотентность функций правильно делать не через if (!completed.getAndSet(true)), а через if (completed.compareAndSet(false, true)), ибо первый вариант вызывает второй в цикле

#Z3DLPI (0) / @hirthwork / 4163 дня назад

чтобы избежать warning'а при import'е deprecated класса, нужно удалить импорт, а к классу всюду обращаться через fully qualified name, например java.lang.String

#P3FQ7D (2) / @hirthwork / 4164 дня назад

осознал что у Map функция get(...) принимает Object. Это значит, что поиске объекта вовсе не обязательно конструировать ключ, достаточно создать объект любого типа с правильными hashCode() и equals(Object). Практическое применение — лукапы в Map<String, ?>, при которых можно избежать конструирования String'а из char[]

#SZBBB9 (6) / @hirthwork / 4171 день назад

а ещё у меня дикая ломка от того что IBM всё никак не выпустит свой билд jvm для восьмой джавы, так уже хочется в лямбдочки попердолиться, да default-функции заюзать

#QPV3JL (1) / @hirthwork / 4171 день назад

обожаю работу в яндексе. серьёзно. проблемы о которых в других конторах даже не задумываются, в яндексе случаются каждый, сука, день. вот и сейчас выясняется, что не смотря на всякие SO_REUSEADDR, SO_LINGER и прочую еболу, которые админы накрутили в sysctl, перед закрытием сокета нужно таки делать shutdown(2). потому что. и да, к переполнению интовых счётчиков для количества документов на одном сервере мы давно привыкли и починили

#FMUEOV (14) / @hirthwork / 4186 дней назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.