Спустя некоторое время после знакомства с Haskell, я заметил, что некоторые задачи уж больно легко решаются при помощи функционального подхода. Возник вполне закономерный (для меня) вопрос. А можно ли применить этот подход в Perl?
Есть такой модуль на CPAN’е, называется Modern::Perl. В настоящее время его подключение эквивалентно написанию строк «use strict» и «use warnings», а также приводит к активации еще нескольких полезных фич перла. Мне стало интересно, а можно ли пойти дальше и написать модуль, подгружающий, к примеру, Try::Tiny и Moose? Оказалось, что написать такой модуль довольно просто.
Некоторое время назад я занимался одной любопытной задачкой. Нужно было написать скрипт, который по доменному имени определяет, продаются на сайте ссылки в биржах типа SAPE и TrustLink или не продаются.
Одна из проблем интерпретируемых языков заключается в зависимости скриптов от наличия у пользователя соответствующего интерпретатора и модулей, используемых в коде скрипта. В мире UNIX эти проблемы никого не беспокоят благодаря менеджерам пакетов. К сожалению, 90% наших потенциальных пользователей сидят не под UNIX.
Mojolicious (произносится «моджолишес») — это новый и активно развивающийся веб-фреймворк, написанный на Perl. И написал его не абы кто, а Sebastian Riedel, который является одним из разработчиков Catalyst. В последнее время Mojolicious стал темой активного обсуждения в сообществе Perl-программистов — в блогах, YAPP и на недавнем YAPC::Russia, так что я просто не мог его не попробовать.
Когда создавался Perl, ООП еще не был моден. Сейчас он моден, в связи с чем некоторые граждане, не обнаружив в этом языке любимых классов, испытывают культурный шок, плюются и идут учить модные PHP и Python. Тем не менее, если вы используете в своей работе Perl и хотите программировать в ООП стиле, язык не будет стоять у вас на пути. Единственная проблема, с которой вам предстоит столкнутся — это проблема выбора, потому что в Perl, как обычно, «there’s more than one way to do it».
В сети есть много сервисов для скачивания mp3 из Вконтакта, но мне они не нравятся. Например, vMuke.ru часто возвращает пустой результат, а MP3-Search.su постоянно перегружен (и недавно затребовал регистрацию). Поэтому мне кажется, что юниксоиды оценят следующий скрипт.
Мне не нравится Flash. Очень не нравится. Потому что ничего полезного, кроме баннеров и игр, на нем не делают. Потому что Adobe не беспокоится о выпуске флэш-плагина для 64-х разрядных браузеров. К тому же, все мы прекрасно знаем, насколько он дырявый и тормознутый.
В этой заметке вы найдете мои наброски поискового робота, то есть набор скриптов, предназначенный для обхода сайтов… в каких-то целях. Это может быть индексация страниц поисковой системой, поиск какой-то информации, которой в этих самых поисковиках почему-то нет, попытка создать резервную копию World Wide Web и прочее, для чего пишутся пауки.
Для тех кто не в теме, обфускация — это когда у нас есть код программы, и мы хотим сделать этот код нечитаемым. Как правило, обфусцировать (или все-таки обфускировать?) пытаются разные скрипты (на javascript, php и тд), потому что если программа написана на компилируемом языке, можно не извращаться и распространять только бинарники. Производить обфускацию руками долго и неприятно, потому пишутся специальные программы — обфускаторы. Дальше речь пойдет о том, как их собственно делают.