Эволюция nfa, перфекционизм

Сначала всё было совсем плохо:


Потом стало немного получше:


Ну а потом, совсем хорошо:
Tags: ,

webpy + routes

Подружил routes и web.py.
Теперь использовать webpy стало намного удобнее.
Tags: ,

вынес из каммента

Имхо плюсы такие кривые из-за обратной совместимости. Настолько, что даже прекрасный на вид Cx0 это тоже похоронит. Так как нельзя в одном языке совмещать пять подязыков (k&r, pp, c++, templates, x0 syntax), три парадигмы, пачку исторических граблей и неудачных решений, баги реализаций компиляторов и в добавок десятка полтора религий кодестайла.

php

Набрёл сегодня на прекрасное.
Баг в похапе, который портит последний элемент массива при итерации.
Для глобального и надёжного языка ничего неожиданного, но дело в том, что баг открыт в сентябре 2004 .
Прошли годы, php сменил шестнадцать релизов и две минорные версии, багу уже исполнилось 1239 дней, но я совсем не удивился, когда сиё чудо в точности воспроизвелось на моей машине, как и в тёплое сентябрьское утро 2004.

ЗЫ


“Это не баг, это фича” -- No bug here. (And no, we can’t unset it
by default, as people might use this for some weird reason).

Этопиздец.
Tags: ,

note to himself: Twisted

Никогда больше не пытаться сделать RESTful API на twisted.web, геммороя значительно больше чем профитов. viva xml-rpc.

лемминги

Ненавижу леммингов.
Луркать интернеты на киворды вроде “design pattern presentation separation” просто бесполезно, так как mvcфаги всё давно завайпили.

что не делай, а всё равно python выходит.

Лабаю прожект на пхп (жадность пересилила).
Каким-то странным образом уже нарисовал ValueError и MysqlError.
Жду появления KeyError или ещё чего-нить из питоновских исключений.
Tags: , ,

Идеальные абстракции?

Битмаски даже слишком хорошая абстракция.
Любая другая реализация той-же идеи “перечисление множества опций в одном значении” будет выглядеть переусложнённой пустышкой по сравнению с битмасками.

Макросы лиспа - штука того-же пошиба.
Особенности языка позволяют создать идеальную реализацию, по сравнению с которой любые другие - крайне убоги.

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

Ещё-бы понять почему нитки это сложно.

Сидел, с час наверное думал какой-бы механизм синхронизации применить.
Что-бы можно было ждать события, но и послать их можно было много подряд, а один wait снял-бы только одно.

Event‘у нельзя сразу скормить несколько, да и не скидывает он флаг, а Event.clear() это новый рэйс.
Condition тоже совсем не туда.

Потом вдруг осенило - семафоры делают это сразу и хорошо.
Воистину - Дейкстра гений, а мои мозги ну как-то уж очень плохо с многопоточностью дружат.
Tags:

без tdd

/me начинает половину своих проектов без юниттестов.
Я потом кляну себя за такую глупость, страдаю, нервничаю, медитирую над логами, но упорно продолжаю стартовать некоторые новые проекты без тестов.

Пора что-ли тумблер какой-то в голове найти. Потому-что выходит себе дороже, особенно когда мандраж и аврал и переводить на рельсы tdd полуготовое ну точно не судьба.