Темы тринадцатого выпуска: что не так с электронной почтой, использование 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.

На днях я дочитал очередной десяток книг, поэтому спешу поделиться с вами краткими рецензиями на них. В этот раз будет много рецензий на книги, как-то связанные с Java и JVM. Почему я вдруг так заинтересовался этой платформой, можно прочитать в заметке Быстрая настройка окружения для программирования на Java (теми, кто недолюбливает этот язык, но иногда вынужден иметь с ним дело). С другими моими рецензиями можно ознакомиться здесь: седьмой десяток, шестой десяток, пятый десяток, четвертый десяток.

Считается, что код, один раз написанный на Java, безо всяких проблем одинаково хорошо работает на любой платформе, под которую есть виртуальная машина. В первом приближении, если не использовать всякие там JNI, это действительно так. Но вот я, можно сказать, лишь недавно начал играться с языком, а уже успел столкнуться с ситуацией, когда на самом деле это нефига не так.

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

Прошедший месяц оказался богат на интересные ссылки. В этом выпуске: как заработать на своем блоге, просто добавив его в систему и облокотившись на спинку табурета, подборка Android-приложений для прослушивания подкастов, как научить своих бабушек и дедушек программировать на Java, и не только. Предыдущие выпуски: май 2014, апрель 2014, март 2014, февраль 2014.

Продолжаем разбираться в тонкостях использования очень занятного и широко используемого языка программирования Java, который, как мы выяснили, хочешь не хочешь, а знать приходится. Сегодня я намерен попробовать решить с его помощью типичную задачу «скачать страничку из интернета и выдрать данные из нее регулярными выражениями». Если вы посмотрите мои доисторические посты с меткой «Perl», то обнаружите, что возникают такие задачи сплошь и рядом.

IntelliJ IDEA позиционируется, как IDE для программирования на множестве различных языков, не только Java. В частности, есть совершенно замечательный плагин для Erlang, которым я с огромным удовольствием пользуюсь уже около месяца. Еще я слышал, что есть плагин для Haskell, но пока что его не пробовал. Так вот, если с Erlang, к примеру, все довольно просто — открываешь проект и фигачишь, то со Scala есть пара нюансов, о которых мне и хотелось бы поведать.