Решил вот написать свой HTTP сниффер. Не то, чтобы существующие решения, всякие там FireBug, Wireshark, tcpdump и urlsnarf, плохо работали. Просто какие-то они не совсем удобные или не всегда делают то, что мне действительно нужно.
Совместное использование C++ и Haskell
23 мая 2012
Помните, я как-то писал про разработку GUI приложений на Haskell с использованием библиотеки wxWidgets? Мне стало интересно, а нельзя ли сгенерировать код GUI на языке C++ в wxGlade или Code::Blocks, а затем связать этот код с кодом на Haskell, реализующим собственно функционал приложения? Оказалось, что можно, и довольно просто.
Perl-скрипт для уведомления о новых письмах
17 мая 2012
Некоторое время назад мне захотелось очень простой вещи — чтобы при получении новой электронной почты где-то в углу экрана появлялось уведомление об этом. Притом мне нужны были только уведомления, а не полноценный почтовый клиент, поскольку почту я предпочитаю читать через веб-интерфейс. После непродолжительного поиска мне удалось найти парочку соответствующих приложений.
Тем временем я продолжаю почитывать книги по искусственному интеллекту и нахожу в них массу интересных вещей. В этой заметке я предлагаю вашему вниманию задачу о роботе-пылесосе, которая формулируется примерно следующим образом.
Прикупил себе Asus Eee PC 1215P
29 апреля 2012
Я давно хотел приобрести небольшой ноутбук. Знаете, такой, чтобы можно было всюду таскать с собой — на работу, в поездки, на конференции и так далее. Ну и, конечно же, чтобы на нем стояло что-нибудь юниксовое. А поскольку эксперимент с юниксами мог не удастся, хотелось чего-то недорогого. Поискав по Яндекс.Маркету и поспрашивав людей, решил брать Asus Eee PC 1215P.
Мини заметки — выпуск 6
20 апреля 2012
Главные темы шестого выпуска: комбинаторика на Haskell, исправление кодировки без использования iconv, полуавтоматическая поисковая оптимизация заголовков, настройка unbound и pptp, а также создание мгновенного снимка файловой системы под FreeBSD. Предыдущие выпуски: первый, второй, третий, четвертый и пятый.
Алгоритм поиска A* на Haskell и превращение мухи в слона
13 апреля 2012
Вы когда-нибудь пробовали написать программу, решающую судоку, задачу о волке, козе и капусте или головоломку вроде кубика Рубика? У этих задач есть кое-что общее — точно известно начальное условие и к какому условию требуется прийти, но придумать алгоритм решения задачи не так-то просто. Такие задачи решаются с помощью поиска на графах.
Шпаргалка по работе с DBIx::Class
28 марта 2012
Хорошо продуманный ORM может существенно упростить жизнь программисту. Но если это так, то откуда берутся крики, что «ORM — это антипаттерн»? Думается, дело в том, что не все ORM одинаково хороши (ORM для C++ из этой хабрастатьи просто ужасны). В этой заметке речь пойдет о DBIx::Class — хорошо продуманном и являющимся де-факто стандартным ORM для Perl.
Об использовании модульных тестов и TDD
20 марта 2012
На протяжении последних нескольких месяцев я практиковал TDD. Теперь я понимаю — эта техника (не путать технику и методологию!) работает. Ее легко использовать и она эффективно решает вполне конкретные проблемы. Эта заметка адресована программистам и, в меньшей степени, руководителям проектов.
Redis и области его применения
14 марта 2012
Redis (REmote DIctionary Server) — это нереляционная высокопроизводительная СУБД. Redis хранит все данные в памяти, доступ к данным осуществляется по ключу. Опционально копия данных может храниться на диске. Этот подход обеспечивает производительность, в десятки раз превосходящую производительность реляционных СУБД, а также упрощает секционирование (шардинг) данных.