Мини заметки — выпуск 5

Основные темы пятого выпуска: FreeBSD, Haskell, парное программирование, алгоритм шифрования lameCrypt на Perl и отрывки кода на PHP, имеющие отношение к поисковой оптимизации. Предыдущие выпуски: первый, второй, третий и четвертый.

Реализация хэш-таблиц, почти как в Perl

Мне почему-то всегда казалось, что хэши в Perl, несмотря на название, реализованы в виде бинарных деревьев, а не хэш-таблиц. Как бы дико это ни звучало. Вероятно, это связано с тем, что в STL контейнер std::map обычно реализуется в виде красно-черного дерева, и я ошибочно предположил, что в Perl сделано так же. Но недавно я обнаружил, что в книге «Programming Perl» недвусмысленно утверждается обратное.

Решение задачи о кодировании цифр на Haskell и Perl

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

Пишем на Perl в функциональном стиле

Спустя некоторое время после знакомства с Haskell, я заметил, что некоторые задачи уж больно легко решаются при помощи функционального подхода. Возник вполне закономерный (для меня) вопрос. А можно ли применить этот подход в Perl?

Как изменить синтаксис Perl на свой вкус

Есть такой модуль на CPAN’е, называется Modern::Perl. В настоящее время его подключение эквивалентно написанию строк «use strict» и «use warnings», а также приводит к активации еще нескольких полезных фич перла. Мне стало интересно, а можно ли пойти дальше и написать модуль, подгружающий, к примеру, Try::Tiny и Moose? Оказалось, что написать такой модуль довольно просто.

На чем палятся сайты, добавленные в SAPE

Некоторое время назад я занимался одной любопытной задачкой. Нужно было написать скрипт, который по доменному имени определяет, продаются на сайте ссылки в биржах типа SAPE и TrustLink или не продаются.

Как создать портабельное GUI приложение на wxPerl

Одна из проблем интерпретируемых языков заключается в зависимости скриптов от наличия у пользователя соответствующего интерпретатора и модулей, используемых в коде скрипта. В мире UNIX эти проблемы никого не беспокоят благодаря менеджерам пакетов. К сожалению, 90% наших потенциальных пользователей сидят не под UNIX.

Мини заметки – выпуск 4

Пришло время для очередного выпуска мини-заметок. Вас ждут парочка полезных фильтров для WordPress, несколько Perl-скрипов и другие приятные мелочи. Предыдущие выпуски мини-заметок можно найти здесь (#3) и там (#2).

Мой первый опыт работы с Subversion

Я давно знал, что пользоваться системой контроля версий — правильно и полезно. Но все было как-то неохота. Ну вы в курсе, как это бывает. И вот, некоторое время назад, лень удалось побороть. Выбор был сделан в пользу subversion, несмотря на преимущества альтернативных систем. Видимо, чтобы по-настоящему понять преимущества Git/Darcs/Bazaar/Mercurial, нужно какое-то время поработать с SVN. А иначе — с чем сравнивать? К тому же, subversion кажется наиболее «каноничной» системой контроля версий.

Тест производительности скриптов на Python

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