Добавлять модули на CPAN оказалось до неприличия просто. В этой заметке вы найдете пошаговую инструкцию, как это делается. Но будьте осторожны! У вас может возникнуть непреодолимое желание штамповать модули один за другим, позабыв о сне, здоровом питании и личной гигиене.

Решил вот написать свой HTTP сниффер. Не то, чтобы существующие решения, всякие там FireBug, Wireshark, tcpdump и urlsnarf, плохо работали. Просто какие-то они не совсем удобные или не всегда делают то, что мне действительно нужно.

Помните, я как-то писал про разработку GUI приложений на Haskell с использованием библиотеки wxWidgets? Мне стало интересно, а нельзя ли сгенерировать код GUI на языке C++ в wxGlade или Code::Blocks, а затем связать этот код с кодом на Haskell, реализующим собственно функционал приложения? Оказалось, что можно, и довольно просто.

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

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

Я давно хотел приобрести небольшой ноутбук. Знаете, такой, чтобы можно было всюду таскать с собой — на работу, в поездки, на конференции и так далее. Ну и, конечно же, чтобы на нем стояло что-нибудь юниксовое. А поскольку эксперимент с юниксами мог не удастся, хотелось чего-то недорогого. Поискав по Яндекс.Маркету и поспрашивав людей, решил брать Asus Eee PC 1215P.

Главные темы шестого выпуска: комбинаторика на Haskell, исправление кодировки без использования iconv, полуавтоматическая поисковая оптимизация заголовков, настройка unbound и pptp, а также создание мгновенного снимка файловой системы под FreeBSD. Предыдущие выпуски: первый, второй, третий, четвертый и пятый.

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

Хорошо продуманный ORM может существенно упростить жизнь программисту. Но если это так, то откуда берутся крики, что «ORM — это антипаттерн»? Думается, дело в том, что не все ORM одинаково хороши (ORM для C++ из этой хабрастатьи просто ужасны). В этой заметке речь пойдет о DBIx::Class — хорошо продуманном и являющимся де-факто стандартным ORM для Perl.

На протяжении последних нескольких месяцев я практиковал TDD. Теперь я понимаю — эта техника (не путать технику и методологию!) работает. Ее легко использовать и она эффективно решает вполне конкретные проблемы. Эта заметка адресована программистам и, в меньшей степени, руководителям проектов.