Интересно просуммировать, что же я сделал за год. (дата выбрана совершенно случайно, но "новый год" выбирать как-то неоригинально.) Не упорядочено никак. И не пишу, благодаря кому это делал -- слишком многих перечислять придётся.
- размножился, дочь, полгода сейчас
- разобрался с postgresql в достаточной степени, чтобы использовать его, но в недостаточной, чтобы предвидеть неочевидные грабли. Но использую, скорее нравится.
- разобрался с монадными трансформерами настолько, что налепил их на coq с доказательствами монадных законов, законов трансформеров, реализовав нужные мне монады identity, state, error и их трансформеры. Однако, без успеха, из-за излишней гибкости coq typeclasses и неюзабельности результата на практике.
- сделал тупую гидропонную систему "периодического затопления", где из хайтек-вещей только таймер и компрессор (чисто удовлетворить минимализм). Однако, на практике накосячил кое с чем другим, поэтому результата почти нет.
- доделал до применимого вида "динамическую типизацию" на окамле, с возможностью как угодно расширять "описания типов" (например, добавлять туда сериализацию или использовать сериализацию, основанную на "структуре" значения (т.е. рантайм-интроспекция)), с возможностью не тащить в общую либу ненужные зависимости (например, если не используется сериализация в json -- json-wheel не будет обязательным для линковки) -- проект cadastr
- поучаствовал в разработке "пакетного менеджера" для окамла, а потом понял, что именно мне надо, и "переебал по-своему", до уровня виртуальных окружений, грязно, но работает (даже в продакшоне111) -- проект rebildol
- coq:
-- разобрался в достаточной мере с зависимыми типами и вообще с типами
-- надрочился использовать coq для доказательств утверждений о программах
-- понял, как генерить нормальный код оттуда
-- сделал "мировую манатку" для написания кода с обработкой ошибок и сайдэффектами (но с непростым доказательством кода, если это вдруг понадобится; с почти нереальным, имхо)
- надрочил какой-то туториал по итератам на русском, объясняющий самые низы/азы этого дела, однако кому оно надо -- проект ocaml-iteratees-tutorial-rus
- вспомнил старый проект "biobin", упростил его, сделал "biobin2", раз в полгода вспоминаю и редактирую-дописываю спеку. Раз уж времени+мозга на реализацию нет пока, хоть что-то. Вкратце -- симуляция тварей от момента "днк + белки" до простых поведений клеток на дискретной плоскости.
- поучаствовал в социальных движухах с анусом и псом (не спрашивайте, если не понимаете)
- поменял в итератах самое ядро, которое было stream+iteratee, а стало stream+streamlist+iteratee, исключительно для практических нужд, и долго ссался перед этим. И вообще, излишне много ебался с итератами. Аж не понравилось. Однако, результаты есть, работает хорошо.
- изредка пишу дальше спеку по ocaml actors library, в том числе по раскидке на много хостов. Куча гадких деталей возникает, если обдумывать всё и сразу. Закопался в деталях, можно сказать. Проект parvel.
- по работе-как-процессу:
-- понял, как плохо жить без трекера багов/задач и как хорошо жить с ним
-- понял, что работать без выходных и с максимальной эффективностью (максимизируя количество кода за единицу времени) -- не так-то просто, и ещё непросто придумать, как работать подобным образом, чтобы моск не слишком выедался, а за несколько месяцев продуктивность не падала.
-- понял, что это бывает нужно, и понял, как-зачем
-- понял, что от этого кое-что в человеке меняется от такого режима, и мне это не по нраву, но при оптимизации общего дела иногда можно кое-что поменять в себе
- научился курить трубочный табак
- купил ноут, теперь работаю там, перемещаемость рулит, экран 1600×900 хорош
- в связи с предыдущим пунктом, я таки нашёл свою compose key
- хожу в автошколу, и, вероятно, месяца через 2..3 буду рулить в прямом смысле слова
upd1/
- довёл до воспроизводимости рецепт годного кваса (публиковал тут недавно)
- научился хорошо готовить "плов по-фергански" от сталика
- моим кошкам уже по 8 лет и они живы, здоровы, активны
upd2/
- сделал edsl для окамла, который либо исполнялся как есть, либо компилировался posix shell script (это было главной целью). Поддерживал строки, проверки на -f/-e, запуск команд, выражения if-then-else, списки строк, последовательное выполнение команд, комбинаторы with_chdir, with_env, пользовательские переменные.
upd3/
- научился делать кимчхи (ещё называют "кимчи") -- острая пекинская капуста, одно из главных блюд корейской кухни.