Часть первая: полезная.
Всем желающим писать хттп-сервер на жабке и кому не подходит HttpCore вовсе не
обязательно костылить свой велосипед. Оказывается начиная с JDK 1.6 уже есть
простой и понятный сервер:
http://docs.oracle.com/javase/7/docs/api...
Не умеет только давать возможность вешать ... more →
*java
легко и непринуждённо подключаем автогенерацию Java-сорцов из рагелевских файлов: http://dumpz.org/324080/
// на последний тег не смотрите, на нём только мой примёр.
// область применения ограничивается лишь рагелем.
итак, настало время охуительных историй.
как известно, нормальные пацаны (типа Сысоева) вешают на обработки кучи сокетов
всего один поток и делают select. Пришли данные в сокет — просыпается ... more →
день разочарований. сначала выяснилось, что в джаве искаропке нет ни одного способа матчить регэкспами инпут без блокировок (типа появились данные — получай смэтчившуюся строку, нет — получай null). а теперь ещё и выясняется, что jflex без блокировок парсить тоже не умеет.
Как известно, у Object.wait(long timeout) может случиться преждевременная эя^W^W spurious wakeup. т.е. interrupt() не делали, таймаут не истёк, notify() не посылали, а он, подлец такой, всё равно взял да и разблокировал поток до завершения операции, которую ожидал. возникает вопрос что делать с таймаутом в данном ... more →
экспериментально установлено, что если удалить из интерфейса два метода из трёх, то сложность завязанного на него кода уменьшается в три раза. удобство поддержки также возрастает на не изученную пока что величину.
Agnostic Drived Development: не знаешь что написать — пиши throw new UnsupportedOperationException();
получить контент всего ресурса в одну строку: byte[] data = Files.readAllBytes(new File(getClass.getResource("resource.name").toURI()).toPath());
когда-нибудь, когда я порабощу мир, я найду и зверски казню многих разработчиков опенсурсных библиотек. ПОТОМУ ЧТО НЕХУЙ КИДАТЬ UNCHECKED EXCEPTIONS, СУКИ!
На будущее: никогда не делать CountingOutputStream через FilterOutputStream. На будущее №2: в пизду FilterOutputStream.
Посмотрел как сделан 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());
}
посоны, а поделитесь ссылкой на реализацию FileSystemProvider, который прокидывает доступ к http-серверу? ну, то бишь я делаю, например, FileSystems.newFileSystem(URI.create(" http://tools.ietf.org/rfc/rfc896.txt"), env); а оно мне даёт возможность random-access доступа к этому файлу, как если бы это был файл на ... more →
мне приснилось что всё из джавы, даже небо, даже ОС. действительно, почему ни одна корпорация не догадалась пилить JVM, которая работает напрямую с железом, ставится на голый винт, сама пишет в порты и сама управляет всей памятью в системе? запуск программы выполняется java.lang.ClassLoader'ом, и вызовом run() в ... more →
пизда... обёрнутый SocketChannel, который был нужен для того, чтобы повесить хук на закрытие канала, нихуя не взлетает, в виду того что sun.nio.ch.SelectorImpl.register() кидает IllegalSelectorException, когда обнаоруживает, что перед ним не чистый SocketChannel.
Как оказалось, в Java никак извне нельзя прервать поток, который читает с
диска. Т.е. InputStream.read() — непрерываемый (если внутри, конечно, не сокет).
Как с этим предлагает бороться Эккель: просто сделать InputStream.close() на
том ресурсе, на котором может заблокироваться поток.
Охуенный подход: «Как же нам ... more →
потыкал PMD. её видение прекрасного слишком отличается от моего. допиливать до совместимости с собой влом.
Внезапно прилетел e-mail от Люксофт с предложением пройти собеседование на Java программиста в Питере. Пришло время отомстить за то что они не ответили на моё резюме пару лет назад.
почитал «Short introduction» для log4j. охуел и решил, что проще писать своих наследников java.util.logging.Handler
как форсировать log rotate для стандартных механизмов в джаве по наступлению _внешнего_ события?
есть наколенное поделие о трёх страничках написанное «для себя».
крутится на tomcat.
сегодня утром проснулся с желанием переписать на рукописный серверак на базе
httpcore-nio с «ручным» управлением сессиями.
объективных предпосылок нет, но желание повелосипедить есть.
всё, я кончил.
не называйте меня, пожалуйста, жабоблядком. я вон только что в питонячьем проекте багу починил.
алсо, осознал, что жабка теперь торт. с этими try-with-resources я наконец-то могу писать в точности так, как если бы в жабке были деструкторы на выходе из скоупа
первотег ругается на мой код и говорит что сувать динамически составляемую строку запроса в Statement.executeQuery() — плохо. мол медленно и SQL injections attacks. СУКА, ТЫ МЕНЯ ЕЩЁ БУДЕШЬ УЧИТЬ ПРОГРАММИРОВАТЬ?!?!
*java is used by:
Hirthwork McGillah
hirthwork
Владимир
xaos
профессиональный говноед
ulidtko
eurekafag
eurekafag
K900
K900
Nico-izo
Nico-izo
kb
kb
16+
238328
18+ Запрещено для детей.
hedgehog
gelraen
gelraen
Mагог Магогович
magog
Артс
arts
Spiritual ecstasy
rapture
0xd34df00d
0xd34df00d
Michael Pogoda
MPogoda
nobiiru
nobiiru
0x2207
0x2207
Crazy_Owl
Crazy_Owl
SirAnthony
SirAnthony
cirno
cirno
jabber
jabber
werehuman
werehuman
няша
generatorglukoff
Ky6uk
Ky6uk
Andrew Motrenko
werdn
Darth Bricktop
Like-all
Jarkko
Jarkko
Оранжевус Охуеннус
utros
anonymous_owl
anonymous_owl
der_FeniX
der_FeniX
silvery
silvery
asmer
asmer
svtk
svtk
Rejjin
Rejjin
Monah Tuk
hatred
mva
mva
lexszero
lexszero
Александр Трофимов
alxndrtrofimov
Дмитрий Солдатов
boh
StormChild
StormChild
Ствол
Dulo_T-34
nya
nya
nixer
nixer
dorfe
dorfe
Johan
johan
amd63
amd63
Вавилен Бирдов
Velvet-Bird
anoos
anoos
miviru
miviru
Лисий хвост
madInsane
Oleg Tsarev
zamotivator
muhas
muhas
desperate donkey
odin
zw0rk
zw0rk
Forth EMU
emu
Darion
Darion
13oz
13oz
Maxim Barzunov
zweipluse
4DA
4da
anonkz
anonkz
uzername
uzername
SetazeR
setazer
silentos
silentos
XonX
XonX
DarkElve
DarkElve
hirthwork
xaos
ulidtko
eurekafag
K900
Nico-izo
kb
238328
hedgehog
gelraen
magog
arts
rapture
0xd34df00d
MPogoda
nobiiru
0x2207
Crazy_Owl
SirAnthony
cirno
jabber
werehuman
generatorglukoff
Ky6uk
werdn
Like-all
Jarkko
utros
anonymous_owl
der_FeniX
silvery
asmer
svtk
Rejjin
hatred
mva
lexszero
alxndrtrofimov
boh
StormChild
Dulo_T-34
nya
nixer
dorfe
johan
amd63
Velvet-Bird
anoos
miviru
madInsane
zamotivator
muhas
odin
zw0rk
emu
Darion
13oz
zweipluse
4da
anonkz
uzername
setazer
silentos
XonX
DarkElve