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

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

Недавно я наткнулся на один любопытный проект. Он называется Berp и представляет собой транслятор скриптов на языке Python в программы на Haskell. Со стороны пользователя Berp выглядит как интерпретатор и компилятор Python, поскольку вся трансляция происходит «в бэкенде».

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

Несколько лет назад, будучи молодым, наивным и впечатлительным (в большей степени, нежели сейчас), я имел неосторожность начитаться различных сео-форумов и сео-блогов. Оттуда я узнал о заработке в сети, биржах SAPE и GoGetLinks, и, чего уж греха таить, о ведении блогов. Много времени было потрачено на работу с различными биржами ссылок и партнерками. Надо отметить, я немного преуспел в этом деле. Но в последнее время у меня сильно поубавилось оптимизма по отношению к этому вашему «интернет-бизнесу».

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

Прикупил себе недавно новый смартфон. Предыдущий, Nokia N97, в последнее время стал сильно глючить. Например, он начал самопроизвольно закрывать программы во время работы с ними. Впрочем, если учесть, сколько раз я ронял телефон, удивительно, что он вообще еще жив. После непродолжительных поисков по Яндекс.Маркету и ближайшим салонам связи, была найдена достойная замена в лице Samsung Galaxy R.

Со временем взгляды на некоторые вещи меняются. Лет шесть назад я писал на C++ (а фактически — на чистом Си) с использованием Windows API и для меня это было «наше все». Да-да, я уже тогда был редкостным ботаником :) А потом я попробовал Perl и вся эта возня с указателями и ручным управлением памятью стала казаться мне странной и ненужной. Еще недавно я плевался от Flash, а теперь спокойно пользуюсь им. Самое интересное, что я все еще понимаю, чем плох Flash. Просто мне намного удобнее поставить его и спокойно смотреть видео на Ютубе, чем делать это через самопальный скрипт.

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

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