Однажды я потратил два дня на поиск и исправление одного идиотского бага. В системе было множество сущностей, которые временами сохранялись в базу и имели id. Были разные функции для работы с этими сущностями. Функции также ходили в базу и зачастую принимали в качестве аргументов id сущностей. Баг заключался в том, что в результате некогда проведенного рефакторинга изменился порядок аргументов и id стали передаваться в неправильном порядке.

Темы выпуска: суперкомпиляция и её приложения, model checking, верификация. Предыдущие выпуски: пятнадцатый, четырнадцатый, тринадцатый, двенадцатый.

Темы выпуска: сколько форкнуть Xen’ов, Erlang-девочки и теория категорий, системы типов и сиподобная лапша, а также ответы на вопросы слушателей. Предыдущие выпуски: четырнадцатый, тринадцатый, двенадцатый, одиннадцатый.

Разгребал сегодня RSS-читалку и наткнулся на объявление о проведении очередного конкурса по ФП от Романа Душкина. Задачка на этот раз оказалась довольно простой. Вот я и подумал, а почему бы мне не воспользоваться случаем и не попрактиковаться лишний раз в программировании на Scala?

Темы четырнадцатого выпуска: как убедить джавников и .NET-чиков перейти на функциональные языки, история создания веб-фреймворка N2O, проекты Erlang on Xen и Voxoz.com, а также Functional programming Meetup, который состоится в Москве 16-го августа 2014. Предыдущие выпуски: тринадцатый, двенадцатый, одиннадцатый, десятый.

Темы тринадцатого выпуска: что не так с электронной почтой, использование Haskell в продакшене и новый фреймворк rest, какая связь между моноидами и Summingbird, что такое Lambda Architecture, и причем тут Samza, Storm или Kafka, тонкости работы с ZooKeeper, как правильно решается проблема service discovery и из какого места должна бить радуга, если очень быстро едешь на велосипеде. Предыдущие выпуски: двенадцатый, одиннадцатый, десятый, девятый.

Если hslogger — это такая навороченная штуковина с уровнями логирования, какими-то деревьями, форматерами, хендлерами и syslog’ом, то пакет fast-logger предназначен для очень простого, но эффективного логирования в файлики. Эффективного, потому что fast-logger скейлится на многоядерных системах за счет создания отдельных буферов на каждое ядро процессора. Лог-записи попадают в различные буферы в зависимости от id нитки, делающей запись. При заполнении буфер сбрасывается на диск. Принцип такой же, как при шардинге — данные разделяются, нитки меньше мешают друг другу.

Темы двенадцатого выпуска: все, что вы хотели знать о Clojure и ClojureScript, но боялись спросить, с чего начать изучение Clojure, кто истинный наследник языка Lisp — Clojure или Haskell, что такое гомоиконность, как по скорости дожать Clojure до уровня Java, реактивное программирование и React, отличия виртуальной машины Erlang-а от JVM, а также какие чудеса позволяют творить макросы в Clojure. Предыдущие выпуски: одиннадцатый, десятый, девятый, восьмой.

Помните, как около года назад мы учились работать с базами данных в Haskell при помощи пакета HDBC, а также его форка HDBI, который от HDBC почти ничем не отличается? Тогда я отмечал, что вместо HDBC некоторые предпочитают использовать пакет postgresql-simple. Давайте попробуем разобраться, что это за пакет такой и почему он интереснее, чем HDBC. А также заодно познакомимся с пакетом postgresql-simple-migration.

Темы одиннадцатого выпуска: Cloud Haskell Platform теперь доступен на Hackage, что такое DevOps и причем тут Docker, полны ли регулярные выражения Perl по Тьюрингу, дружной толпой валим с Riak на Dynamo, когда уже выйдут Cowboy 1.0 и Riak 2.0, зачем было создавать CowDB, если уже есть HanoiDB, сколько строк кода занимает реализация репликации на Erlang, а также почему Erlang — очень странный нишевый язык, который во всем ограничивает программистов, и вы, скорее всего, не должны его хотеть, а должны хотеть Haskell, Scala, ну или хотя бы Clojure. Предыдущие выпуски: десятый, девятый, восьмой, седьмой.