Давным давно, еще в те времена когда на персональных компьютерах жил MsDOS довелось играть в игру Settlers II. Игра меня тронула, и я с удовольствием провел наедине с ней несколько дней. Много позже прошел ее повторно, а затем и еще раз, и каждый раз несмотря на древность этой игры с удовольствием проводил время играя в нее. Не так давно увидел рекламу онлайн игры The Settlers Online и поддавшись ностальгии зарегистрировался в ней. Первым впечатлением был восторг, настолько все было похоже на полюбившееся мне Settlers II. Но радужная эйфория быстро прошла. Я не буду рассказывать в этой статье о всех плюсах и минусах, расскажу только об одном минусе — торговле. О самой игре более подробно вы можете прочитать в статье The Settlers: теперь Online.

0.39
Рейтинг
Perl *
Высокоуровневый интерпретируемый динамический язык
Сначала показывать
Порог рейтинга
Уровень сложности
Риалтайм дашборд
7 мин
5.7K
Однажды, сидя поздним вечером на работе, захотелось сделать простенький шустренький дашборд, который бы отрисовывал графики ошибок или других варнингов из логов Apache или Ngnix. Термин Realtime слегка льстит, в действительности мы видим обновление на графике каждые 3 секунды. Такого плана дашборд, очень полезен особенно когда идет выкатка новой версии в бой, сидишь и смотришь как она тихонечко расползается по серверам, изменяя направления кривых на графике.
+36
Термометр с прогнозом погоды
4 мин
14K
С рождением ребёнка существенно повышается внимание, уделяемое погоде на улице: если сам ты можешь выйти на улицу в чём придётся, и немножко помёрзнуть или промокнуть, не взяв зонтик, то родительский инстинкт просто не даст причинить неудобство твоему ребёнку. Спасибо современным технологиям, — температуру на улице и прогноз погоды можно в любой момент посмотреть на специальных сайтах (вроде pogoda.mail.ru или pogoda.yandex.ru).
И всё было бы хорошо, но в один прекрасный день я пообещал своей супруге повесить за окно обычный термометр — ей было неудобно открывать ноутбук, заходить на сайт и смотреть погоду там.
Как говорится в известной пословице: мужик сказал, женщина напомнила, женщина напомнила, женщина напомнила, женщина задолбала, — мужик сделал.
+66
Эпиграф к perl 5.16.0
3 мин
1KПеревод
По традиции каждый релиз perl`а анонсируется письмом, начинающимся с цитаты, выбранной релиз-инженером. Для версии Perl 5.16.0 я выбрал предпоследнюю строфу из стиха Уистена Хью Одена “1 сентября 1939 года”.
Текст стихотворения легко найти, так что я не буду воспроизводить его здесь полностью.
Стихотворение было написано сразу после начала Второй Мировой Войны и отражает всю ту кровавую кашу, которая началась. Оно рассказывает о чувствах людей вокруг поэта: их жизнями завладело тихое отчаяние, подобного которому они никогда не видели. Не только из-за надвигающегося хаоса, но и из-за борьбы, которая будет все так же продолжаться: за то, чтобы жить честно, быть счастливым и быть любимым.
Текст стихотворения легко найти, так что я не буду воспроизводить его здесь полностью.
Стихотворение было написано сразу после начала Второй Мировой Войны и отражает всю ту кровавую кашу, которая началась. Оно рассказывает о чувствах людей вокруг поэта: их жизнями завладело тихое отчаяние, подобного которому они никогда не видели. Не только из-за надвигающегося хаоса, но и из-за борьбы, которая будет все так же продолжаться: за то, чтобы жить честно, быть счастливым и быть любимым.
Каждое существо
Хочет не всех любить,
Скорее наоборот —
Чтобы все любили его.
+5
Шпаргалка по mock-объектам в Perl
3 мин
3.8KВ богатом русском языке к сожалению нет некоторых слов, поэтому вместо того чтобы начать заметку словами «Пися/Пиша модульные тесты», я вынужден удлинить фразу.
В процессе написания модульных тестов часто приходится заглядывать в старые тесты, чтобы быстро вспомнить как подменить тот или иной объект, поэтому я решил что пришло время набросать небольшую шпаргалку, авось и кому-то ещё сгодится.
Сразу прошу сильно не пинать, это шпаргалка, а не руководство, поэтому всё предельно кратко.
В процессе написания модульных тестов часто приходится заглядывать в старые тесты, чтобы быстро вспомнить как подменить тот или иной объект, поэтому я решил что пришло время набросать небольшую шпаргалку, авось и кому-то ещё сгодится.
Сразу прошу сильно не пинать, это шпаргалка, а не руководство, поэтому всё предельно кратко.
+11
Конечные автоматы. Пишем ДКА
7 мин
90KЕсли вы когда-нибудь пытались написать своего бота, программу-переговорщик (negotiator), интерпретатор протокола связи и тому подобные вещи, то наверняка сталкивались с конечными автоматами. Данная тема в принципе не представляет большой сложности, но если вдруг у вас не было курса «теории автоматов», милости прошу под кат.
Сегодня мы попытаемся создать простой детерминированный конечный автомат. Мне вдруг захотелось написать его на Perl'е, но так как мы не будем использовать никаких специфических трюков, перенести общую концепцию на любой другой императивный язык не составит большого труда.
Сегодня мы попытаемся создать простой детерминированный конечный автомат. Мне вдруг захотелось написать его на Perl'е, но так как мы не будем использовать никаких специфических трюков, перенести общую концепцию на любой другой императивный язык не составит большого труда.
+13
Справочник email адресов компании или репликация данных в нестабильной сети
12 мин
3.9KВведение
Довелось мне работать админом в крупной компании, имеющей более 10-ти филиалов в разных городах, объединенных достаточно нестабильными и медленными каналами. Как и во многих других, основу обмена информацией в компании представляла электронная почта. Следует отметить что на каждом филиале, как и в головной конторе имеется свой почтовый сервер, управление почтовыми аккаунтами производится местным админом. Все почтовые сервера работают под управлением FreeBSD + Postfix + SpamAssassin + amavisd-new + Courier-IMAP.
Задача основная — поддержка актуального справочника email адресов всех пользователей компании для внутреннего использования, второстепенная — список имеющихся email адресов для основного почтового сервера, дабы он проверял есть ли такой адрес в компании перед тем как переслать письмо на нужный филиал.
Каналы нестабильны, частенько «падают», скорость их работы вообще непредсказуема. Кому интересно как была решена задача приглашаю под кат.
+5
Komodo IDE 6 Settings
2 мин
5.7K
Хотя (Active)Perl, Python, Tcl интерпретаторы от компании ActiveState достаточно популярны, почему то о самой среде разработки Komodo IDE мало чего прочитаешь на просторах интернета, кроме как на официальном сайте. Увы, т.к. я не силен в английском, то некоторые моменты мне было бы легче понять на картинках или переводе. Не найдя развернутых ответов (на русском) на периодически встающие вопросы настройки и оптимизации, хочу поделиться личным опытом тыканий и смыканий, в надежде найти таких же как я, начинающих пользователей Komodo IDE. Сам я пишу на Perl скрипты для работы с БД. Итак, что же я использую?
+3
Развитие модуля FCGI::ProcManager
2 мин
2.1K
В процессе решения данной задачи мною был написан модуль-наследник от модуля FCGI::ProcManager. В него был добавлен функционал по контролю над количеством рабочих процессов в зависимости от нагрузки и ограничение времени жизни рабочих процессов определенным количеством запросов.
+13
Вариация на тему: прогноз погоды по телефону
9 мин
6KРешил поделиться ещё одним способом организации сервиса прогноза погоды по телефону. Здесь, по сравнению с этим постом, больше интеллекта перенесено в Asterisk.


+8
Краткий обзор качества коммерческой CMS на Perl
3 мин
5KВ процессе занятия фрилансом мне периодически попадаются на препарирование сайты написанные на Perl. Глядя на код, я понимаю, откуда появилась дурная слава Perl в области Web разработки. Но не будем углубляться в холивар.
Вчера мне в руки попал движок X1-forge. Надо особо отметить что он активно продаётся и весьма нескромно расхваливается на сайте. Итак, что же с ним не так?
Вчера мне в руки попал движок X1-forge. Надо особо отметить что он активно продаётся и весьма нескромно расхваливается на сайте. Итак, что же с ним не так?
+39
Благотворительный Фонд craigslist пожертвовал $100,000 языку программирования Perl
3 мин
1.6KПеревод
От меня: во-первых, я не знал, что craigslist работает на Perl (чем я увлечен на данный момент). Во-вторых, такое большое и важное пожертвование во благо всему и всех мотивировало меня «отдать должное» craigslist, распространив эту новость. Надеюсь, Вам всем будет интересно. P.S. Я не обладаю должным опытом переводчика. Я разработчик. Поэтому прошу быть чуть полегче с критикой перевода.
Фонд Perl с гордостью сообщает, что Благотворительный Фонд craigslist оказал поддержку Perl сообщества, сделав пожертвование в размере 100,000 долларов на поддержку Perl5, которые могут быть также использованы в общих целях Фонда Perl.
По словам генерального директора craigslist и бывшего Perl хакера Джима Бакмастера: «craigslist получил большую популярность, в то время как большинство его программного обеспечения разрабатываются на Perl уже более чем десять лет. Благотворительный Фонд craigslist с гордостью признает волшебство и щедрость всего сообщества Perl, и посему готов гарантировать дальнейшую поддержку Perl5, внеся вклад в будущее развитие Perl». Он также добавил: «Поначалу не было ясно, как и что можно лучше всего дать взамен Perl. К счастью, было несколько способов, как можно это сделать.»
Карен Поули, Президент Фонда Perl заявила: «Я чрезмерно благодарна Благотворительному Фонду craigslist за их невероятно щедрое пожертвование. Какой же фантастический способ для Perl Foundation начать 2012 год!»
Фонд Perl с гордостью сообщает, что Благотворительный Фонд craigslist оказал поддержку Perl сообщества, сделав пожертвование в размере 100,000 долларов на поддержку Perl5, которые могут быть также использованы в общих целях Фонда Perl.
По словам генерального директора craigslist и бывшего Perl хакера Джима Бакмастера: «craigslist получил большую популярность, в то время как большинство его программного обеспечения разрабатываются на Perl уже более чем десять лет. Благотворительный Фонд craigslist с гордостью признает волшебство и щедрость всего сообщества Perl, и посему готов гарантировать дальнейшую поддержку Perl5, внеся вклад в будущее развитие Perl». Он также добавил: «Поначалу не было ясно, как и что можно лучше всего дать взамен Perl. К счастью, было несколько способов, как можно это сделать.»
Карен Поули, Президент Фонда Perl заявила: «Я чрезмерно благодарна Благотворительному Фонду craigslist за их невероятно щедрое пожертвование. Какой же фантастический способ для Perl Foundation начать 2012 год!»
+31
Почему в Perl так редко используется IoC, DI и магическая пилюля Kaiten::Container
3 мин
1.9KДумаю многие понимают значение баззвордов Inversion of Control (Ioc) и Dependency Injection (DI). Если не очень, но интересно — на хабре было несколько статей на эту тему, очень познaвательно и доступно изложено.
Методики отличные, но применить их в настоящей жизни как-то не получалось.
Под катом — небольшой обзор плачевного состояния дел в Perl и самостийное «кажется» решение.
Методики отличные, но применить их в настоящей жизни как-то не получалось.
Под катом — небольшой обзор плачевного состояния дел в Perl и самостийное «кажется» решение.
+13
Ближайшие события
Успокаиваем нервы при помощи Perl и GD
2 мин
3KПредисловие
Я один из тех людей, которые часто подвержены стрессовым ситуациям. Избавиться от стресса можно разными способами. В данном топике я покажу вам, как это делаю я.
+27
Легкий PERL-скрипт для отправки и приема SMS через мобильный телефон
8 мин
7.7KПреамбула
В процессе самостоятельной разработки «Умного дома» ( далее по тексту УД) периодически возникала необходимость в написании небольших, но очень нужных утилит-программ-скриптов, в том или ином виде уже написанных и доступных на просторах интернет, но по тем или иным причинам непригодных для использования в проекте. «Почему непригодных?», спросит опытный Разработчик, может я просто «Не люблю кошек, потому, что не умею их готовить?».
+11
Установка Perl-модулей в Gentoo
8 мин
5.5KТуториал

Богатство выбора… или очередное TIMTOWTDI

Итак, у нас может быть:
- Несколько версий самого perl (разумеется, каждая со своими глобальными модулями), в т.ч. установленные в домашний каталог юзера (см. perlbrew).
- Глобальные (доступные при запуске perl) и локальные (подключаемые из любого каталога/каталогов, обычно располагающиеся внутри отдельного проекта или в домашнем каталоге пользователя) модули.
- Глобальные модули бывают трёх типов: core (идущие вместе с perl), site (устанавливаемые вручную админом) и vendor (устанавливаемые менеджером пакетов вашей ОС).
- Все глобальные модули находятся в подкаталогах «номер.версии.perl/», и эти каталоги никто автоматически не чистит. А при установке новой версии perl создаются новые аналогичные каталоги. И perl подгружает модули из каталогов всех доступных предыдущих версий. Так что умножьте core+site+vendor на количество обновлений perl — вот в таком количестве каталогов/вариантов находятся ваши глобальные модули.
- Источники модулей тоже бывают разные: CPAN, локальные зеркала-оверлеи CPAN с приватными модулями, просто свои или скачанные из инета модули отсутствующие в CPAN-совместимой системе.
+30
Производительность пакетов ООП в Perl
5 мин
5.8KКак известно в Perl не очень удобная поддержка объектно-ориентированного программирования. Если хочется программировать с классами, то многое приходится делать вручную. Однако у Perl'а есть очень богатые возможности расширения, поэтому со временем появилось много библиотек (пакетов) обеспечивающих поддержку классов, методов и свойств с синтаксисом различной степени удобности. Но как оказалось, эти пакеты проигрывают в производительности по сравнению с ручной реализацией конструкций ООП. Т.е. с одной стороны, их приятно использовать, а с другой, они делают код медленнее. Мне всегда хотелось узнать насколько медленее становится код, и какие из этих пакетов стоит применять, а какие нет. Поэтому я решил провести небольшое исследование.
+37
Многопоточность в Perl, или Как я посмотрел ролик о съёмках Warehouse 13
6 мин
16K
Всё началось с того, что я наткнулся на видео, которое рассказывало о съёмках одного из моих любимых сериалов, Warehouse 13:
www.aoltv.com/2009/07/10/behind-the-scenes-of-warehouse-13
Клёвые штуковины в стиле «стимпанк», рассказ о взаимовыручке и дружбе, и лёгкая волшебная атмосфера, уводящая от серых будней — вот, чем мне нравится этот сериал. И вообще мне не менее интересно, чем сам фильм, бывает смотреть, как снимают этот фильм.
Но, как принято на сайте AOL TV, видео оказалось доступно только жителям US. Зачем накладывать такие ограничения — я не могу взять в толк. Где и какая жаба их душит, непонятно.
Но такая мелочь меня не могла остановить.
+23
Используем Flickr API из Perl
5 мин
5KДобрый день, уважаемый %habr_username% !
Если кто не знает — речь идёт об одном из самых популярных в мире фотохостингов — Flickr (wiki про Flickr).
Вкратце о Flickr API, ибо на хабре присутствуют только краткие упоминания о нём.
Разработчики Flickr дают возможность всем страждущим использовать мощный API, предоставляющий доступ ко всем мыслимым и немыслимым функциям, данным, возможностям. Flickr API отлично документирован, есть полное описание всех запросов (пример), есть FAQ, есть «быстрый старт», это основные источники познаний о Flickr API, их вполне достаточно для начала разработки вашего приложения. Модули для облегчения использования Flickr API есть для большинства популярных языков программирования, в том числе для Objective-C и Java, которые в настоящее время широко используются в разработке для IOS и Android, список с ссылками можно посмотреть тут (Прокрутив страничку вниз).
+12
Общение с fastcgi менеджером
3 мин
3KОписание
Маленькое расширение для FCGI::ProcManager, позволяющее обращаться к менеджеру fcgi процессов. Для связи сторонней программы с менеджером используется сокет.
Подводные камни
Модуль FCGI::ProcManager используется для порождения обработчиков входящих запросов. Текущий процесс является менеджером. Со старта он порождает обработчиков (n_processes штук), далее он поддерживает их количество, следя за погибшими в бою. Для этих целей он использует wait. Тут и кроется проблемка. После того, как запущены потоки, менеджер, вызывая wait, блокируется. Достучаться до него можно только через сигналы. Исполнять в обработчике сигнала код нужно с умом и аккуратно, гонять там говнокод — нехорошо. А значит необходимо наладить другой канал связи.
+14