Взаимодействие процессов в Erlang происходит путем обмена сообщений. И хотя сообщения в Erlang дешевы, они не бесплатны. Бездумная посылка сообщений неправо и налево может привести не только к существенному замедлению работы всего приложения, но и к его аварийному завершению.

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

Этот выпуск полностью посвящен Linux’ам. Я пользуюсь Ubuntu, но подозреваю, что многое из написанного также будет справедливо и для других дистрибутивов. Сегодня мы выясним, как установить самое свежее ядро и, если что-то пошло не так, откатиться к старой версии, как посмотреть список установленных в данный момент TCP-соединений, как найти руткиты в системе и не только. Предыдущие выпуски: двенадцатый, одиннадцатый, десятый, девятый.

Программная транзакционная память (software transactional memory, STM) — это механизм взаимодействия между потоками, имеющий ряд существенных преимуществ перед традиционным подходом с использованием блокировок. Благодаря этой заметке вы узнаете, как работать с STM в Haskell.

В этом выпуске: кое-какая информация о кишках GHC, несколько полезных движков на PHP, описание интерфейса Google Speech To Text и Text To Speech, почему не нужно использовать ZeroMQ и Protobuf, и не только. Предыдущие выпуски: май 2013, апрель 2013, март 2013, февраль 2013.

Сегодня я поведаю об очередных десяти книгах (на самом деле — девяти книгах и одном журнале), которые я прочитал за последние три месяца. Мои предыдущие обзоры литературы вы найдете тут: второй десяток, первый десяток.

В заметке Генерация почти осмысленных текстов на Haskell (опубликованной полтора года назад… как быстро летит время!) был упомянут подход к генерации статей, заключающийся в написании обзоров цифровой техники на основе их характеристик. Недавно у меня дошли руки до реализации этой идеи, правда, на Erlang, а не на Haskell.

Как вы уже могли догадаться, я снова взялся за изучение Haskell. Очевидно, этот язык нельзя учить наскоком. Я решил запастись терпением и вникать во все медленно, но верно. Например, недавно я разбирался с многопоточностью.

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

Помните, как я пытался доказать, что горячее обновление кода — бесполезная штука и что не нужно им пользоваться? Как выяснилось, я был не вполне прав. Есть по крайней мере три случая, в которых горячее обновление кода может быть довольно удобным.