hirthwork
25.11.2012 19:23
Часть первая: полезная.
Всем желающим писать хттп-сервер на жабке и кому не подходит HttpCore вовсе не
обязательно костылить свой велосипед. Оказывается начиная с JDK 1.6 уже есть
простой и понятный сервер:
http://docs.oracle.com/javase/7/docs/api...
Не умеет только давать возможность вешать ... more →
hirthwork
11.11.2012 15:54
// на последний тег не смотрите, на нём только мой примёр.
// область применения ограничивается лишь рагелем.
итак, настало время охуительных историй.
как известно, нормальные пацаны (типа Сысоева) вешают на обработки кучи сокетов
всего один поток и делают select. Пришли данные в сокет — просыпается ... more →
hirthwork
08.11.2012 13:14
день разочарований. сначала выяснилось, что в джаве искаропке нет ни одного способа матчить регэкспами инпут без блокировок (типа появились данные — получай смэтчившуюся строку, нет — получай null). а теперь ещё и выясняется, что jflex без блокировок парсить тоже не умеет.
hirthwork
03.11.2012 15:40
Как известно, у Object.wait(long timeout) может случиться преждевременная эя^W^W spurious wakeup. т.е. interrupt() не делали, таймаут не истёк, notify() не посылали, а он, подлец такой, всё равно взял да и разблокировал поток до завершения операции, которую ожидал. возникает вопрос что делать с таймаутом в данном ... more →
hirthwork
21.10.2012 14:47
экспериментально установлено, что если удалить из интерфейса два метода из трёх, то сложность завязанного на него кода уменьшается в три раза. удобство поддержки также возрастает на не изученную пока что величину.
hirthwork
19.10.2012 08:25
Agnostic Drived Development: не знаешь что написать — пиши throw new UnsupportedOperationException();
hirthwork
16.10.2012 10:33
получить контент всего ресурса в одну строку: byte[] data = Files.readAllBytes(new File(getClass.getResource("resource.name").toURI()).toPath());
hirthwork
15.10.2012 06:50
когда-нибудь, когда я порабощу мир, я найду и зверски казню многих разработчиков опенсурсных библиотек. ПОТОМУ ЧТО НЕХУЙ КИДАТЬ UNCHECKED EXCEPTIONS, СУКИ!
hirthwork
14.10.2012 12:13
На будущее: никогда не делать CountingOutputStream через FilterOutputStream. На будущее №2: в пизду FilterOutputStream.
hirthwork
12.10.2012 12:47
Посмотрел как сделан OutputStreamWriter в icedtea.
Объясните, почему этот адпизды нельзя было написать просто как:
void write(char[] cbuf, int off, int len) {
ByteBuffer buffer = charset.encode(CharBuffer.wrap(cbuf, off, len));
stream.write(buffer.array(), 0, buffer.limit());
}
hirthwork
08.10.2012 15:44
посоны, а поделитесь ссылкой на реализацию FileSystemProvider, который прокидывает доступ к http-серверу? ну, то бишь я делаю, например, FileSystems.newFileSystem(URI.create(" http://tools.ietf.org/rfc/rfc896.txt"), env); а оно мне даёт возможность random-access доступа к этому файлу, как если бы это был файл на ... more →
hirthwork
29.09.2012 12:59
мне приснилось что всё из джавы, даже небо, даже ОС. действительно, почему ни одна корпорация не догадалась пилить JVM, которая работает напрямую с железом, ставится на голый винт, сама пишет в порты и сама управляет всей памятью в системе? запуск программы выполняется java.lang.ClassLoader'ом, и вызовом run() в ... more →
hirthwork
26.09.2012 20:10
пизда... обёрнутый SocketChannel, который был нужен для того, чтобы повесить хук на закрытие канала, нихуя не взлетает, в виду того что sun.nio.ch.SelectorImpl.register() кидает IllegalSelectorException, когда обнаоруживает, что перед ним не чистый SocketChannel.
hirthwork
26.09.2012 13:23
написание FilterSocketChannel требует 125 строк кода. пиздануться, а не удобная библиотека nio.
hirthwork
18.09.2012 12:01
Как оказалось, в Java никак извне нельзя прервать поток, который читает с
диска. Т.е. InputStream.read() — непрерываемый (если внутри, конечно, не сокет).
Как с этим предлагает бороться Эккель: просто сделать InputStream.close() на
том ресурсе, на котором может заблокироваться поток.
Охуенный подход: «Как же нам ... more →
hirthwork
10.09.2012 18:36
потыкал PMD. её видение прекрасного слишком отличается от моего. допиливать до совместимости с собой влом.
hirthwork
24.08.2012 09:19
Внезапно прилетел e-mail от Люксофт с предложением пройти собеседование на Java программиста в Питере. Пришло время отомстить за то что они не ответили на моё резюме пару лет назад.
hirthwork
23.08.2012 12:06
почитал «Short introduction» для log4j. охуел и решил, что проще писать своих наследников java.util.logging.Handler
hirthwork
21.08.2012 19:31
как форсировать log rotate для стандартных механизмов в джаве по наступлению _внешнего_ события?
hirthwork
21.08.2012 02:54
есть наколенное поделие о трёх страничках написанное «для себя».
крутится на tomcat.
сегодня утром проснулся с желанием переписать на рукописный серверак на базе
httpcore-nio с «ручным» управлением сессиями.
объективных предпосылок нет, но желание повелосипедить есть.
всё, я кончил.
hirthwork
14.08.2012 12:50
не называйте меня, пожалуйста, жабоблядком. я вон только что в питонячьем проекте багу починил.
hirthwork
14.08.2012 10:54
алсо, осознал, что жабка теперь торт. с этими try-with-resources я наконец-то могу писать в точности так, как если бы в жабке были деструкторы на выходе из скоупа
hirthwork
13.08.2012 20:58
первотег ругается на мой код и говорит что сувать динамически составляемую строку запроса в Statement.executeQuery() — плохо. мол медленно и SQL injections attacks. СУКА, ТЫ МЕНЯ ЕЩЁ БУДЕШЬ УЧИТЬ ПРОГРАММИРОВАТЬ?!?!