Posts belonging to Category Кодинг



Bshellz shell autorenew — IRC-perl-скрипт для обновления аккаунта в Bshellz

Как-то я писал про бесплатный linux shell от провайдера Bshellz в заметке Бесплатный Linux-shell с Tmux на борту. Там же был приведён способ автоматического продления аккаунта — путём отправки (по расписанию) служебного сообщения боту Beschbot с помощью имеющегося на самом хостинге IRC-клиента irssi. Время показало, что способ, как и следовало ожидать, не лишён недостатков. А именно — периодически сервер Bshellz перезагружается, после чего настройка расписания в irssi слетает. Также — несколько раз наблюдались проблемы с подключением клиента к сети Freenode IRC. В результате возникло решение зарезервировать автообновление аккаунта в Bshellz путём использования дополнительного внешнего скрипта, также запускающегося по расписанию (раз в день в произвольное время, на домашней машине).
(далее…)

Массовое добавление и удаление друзей в LiveJournal через XML-RPC

Так как пользоваться консолью ЖЖ для добавления или удаления друзей стало невозможно (эти команды отключили) — сделал небольшой скрипт lj-edit-friends, который позволяет редактировать список друзей для указанного аккаунта через XML-RPC интерфейс ЖЖ. Пользоваться несложно — получить список друзей для добавления/удаления с помощью LJ Add/Remove Friends, сохранить его в файл и обработать через lj-edit-friends. Подробности — ниже.
(далее…)

Парсинг Яндекс ТИЦ на примере списка пользователей ЛиРу

В заметке рассмотрено использование многопоточного парсера Яндекс ТИЦ на примере обработки списка пользователей ЛиРу (Liveinternet). Для запуска понадобятся: bash (под Windows можно использовать cygwin), perl, wget и, для большего удобства представления результатов, — sort. Все эти утилиты присутствуют практически в любой *nix-ОС или могут быть установлены в cygwin.
(далее…)

Простой скрипт для увеличения посещаемости блога в Живом Журнале

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

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

О пользе тестирования, блин!

Напоролся на неприятную ошибку в модуле Time::Local (по-моему даже в кукбуке описан) — похоже, что номер месяца подставлялся в индкес элемента массива напрямую, вопреки тому, что нумерация начинается с нулевого элемента и вместо января выдавалось количество дне для февраля и т.д. Соответственно какие-то месяца обрабатывались корректно, а какие-то — вызывали ошибку вида Day ’31’ out of range 1..30, которую в силу редкости трудно было обнаружить.

А ведь что мешало автору проcтейшим образом сгенерировать тестовый календарь и прогнать на нём модуль? Ладно бы — «для себя» делал, так модуль на CPAN лежит, в литературе упомянут — и такие детские баги. Причём сообщение об ошибке на форуме CPAN было еще для версии 1.13, к версии 1.20 ничего не изменилось — так же перебирает с первого элемента…

Mojolicious — знакомство с «вебом из коробки»

Mojolicious - веб из коробки

Что такое Mojolicious. Введение

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

Итак, Mojolicious — фреймворк для разработки веб-приложений, основанный на «фреймворке для разработки фреймворков» Mojo, написанный на языке Perl человеком по имени Sebastian Riedel, одним из авторов Perl-веб-фреймворка Catalyst, фактически для его замены.

Чем мне показался особенно интересен Mojolicious? Во-первых тем, что он имеет встроенный веб-сервер, что в перспективе позволяет не только удобно разрабатывать и проверять приложение, но и распространять его для локального использования. При этом приложение получается универсальным и будет одинаково работоспособным как на локальной машине, так и на сервере. Во-вторых — Mojolicious зависит только от Perl, что также говорит в пользу «во-первых». В-третьих — наличием модуля Mojolicious::Lite, позволяющего создать лёгкие, маленькие, но полноценные приложения. И в-четвёртых — автоматической поддержкой разных режимов запуска (CGI, FastCGI, mod_perl, встроенный сервер и т.д.).
(далее…)

Сравнение производительности сетевых библиотек в Perl