Как стать автором
Обновить
0

Perl *

Высокоуровневый интерпретируемый динамический язык

Сначала показывать
Порог рейтинга
Уровень сложности

Модуль Net::Ethereum для работы с контрактами Solidity

Время на прочтение11 мин
Количество просмотров5.5K


Обычно когда мне нужно использовать какой-то новый сервис или технологию из скриптов Perl, я захожу на CPAN, и там уже есть один или несколько подходящих модулей. Однако в случае фреймворков для работы с узлами блокчейна Ethereum и контрактами Solidity, к сожалению, мне не удалось найти нужного модуля.

Мы планируем в ближайшее время использовать смарт-контракты Solidity сети Ethereum в нашем SAAS-сервисе интернет-магазинов, написанном на Perl. Поэтому мне ничего не оставалось, как написать свой модуль Net::Ethereum (этот модуль уже доступен на CPAN, хотя и в виде альфа-версии).

Надеюсь, что модуль Net::Ethereum будет полезен тем, кто хочет интегрировать свои Perl-системы с контрактами блокчейна Ethereum. Буду очень благодарен тем, кто воспользуется этим модулем и пришлет мне свои соображения по его доработке, а также информацию о найденных ошибках.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии15

К вопросу о принципах работы асинхронных решений

Время на прочтение6 мин
Количество просмотров18K
Предлагаем вашему вниманию отличное новогоднее чтение для программистов :) Статью Александра Чистякова ( alexclear ), которую тот написал, вдохновившись тезисами доклада Mons Anderson ( codesign ) на HighLoad++ 2017.

Александр Чистяков

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

Для того, чтобы классифицировать существующие решения, придумаем сначала оси координат. С точки зрения инженера-разработчика "синхронная" и "асинхронная" парадигмы основаны на абстракциях, различающихся как сложностью применения, так и «эффективностью» (что такое «эффективность», нам еще предстоит определить).

Осторожно, под катом жёсткий хардкор!
Читать дальше →
Всего голосов 44: ↑28 и ↓16+12
Комментарии28

Новый выпуск Oh, My Code — Облако, Perl и хорошие программисты

Время на прочтение2 мин
Количество просмотров7K

Несколько месяцев назад мы запустили серию интервью Oh, My Code на канале Технострим. Пришло время нового выпуска. На этот раз мы расскажем о том, как сделано Облако Mail.Ru, почему Perl не умер и что такое хороший программист.



Ведущий программы — технический директор медиапроектов Павел Щербинин, гость — архитектор Облака Mail.Ru Владимир Перепелица. Ниже перечислены ключевые вопросы, ответы на которые вы найдете в очередном выпуске Oh, My Code:


  • Умер ли Perl?
  • Как написать крутое резюме?
  • Каких программистов берут в Облако?
  • Как пройти собеседование, чтобы получать 200 000 рублей?
  • Зачем становиться техническим директором и снова уходить в разработку?
Всего голосов 29: ↑27 и ↓2+25
Комментарии15

Обзор плагинов SparrowHub

Время на прочтение3 мин
Количество просмотров1.7K

image


Всем привет! В этом посте я хочу сделать краткий обзор некоторых плагинов SparrowHub — репозитария пользовательских скриптов для выполнения различных задач. Данные плагины могут быть полезны тому, кто просто хочет запустить с консоли готовые утилиты и решить свою задачу, фактически, не написав ни строчки кода.


Добавление новых плагинов происходит постоянно, если вас заинтересовал проект, вы можете легко и просто добавить свои плагины, поделившись полезными скриптами с сообществом.

Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

Истории

Приглашаем на конференцию YAPC::Russia 4 ноября

Время на прочтение2 мин
Количество просмотров2.6K


В эту субботу мы приглашаем всех Perl’оводов и им сочувствующих на ежегодную конференцию YAPC::Russia, посвящённую языку Perl и его сообществу. Она проводится в Москве и Санкт-Петербурге под названием May Perl, а в Киеве — под названием Perl Mova.


«Столичная» часть конференции пройдёт 4 ноября в московском офисе Mail.Ru Group. Здесь соберутся Perl-профессионалы из разных уголков земного шара, чтобы обменяться опытом, завести новые знакомства и пообщаться с единомышленниками в неформальной и приятной обстановке.

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии2

Рекомендательная система на коленке как средство против экзистенциального кризиса

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

image

Рекомендательные системы сильно помогают в выборе, но не везде и не всегда так как хотелось бы. Часто не учитывается семантика содержания. Кроме того, во весь рост встает проблема "длинного хвоста", когда рекомендации сосредоточены только на самых популярных позициях, а интересные, но не очень популярные в массе вещи ими не охвачены.

Cвой эксперимент в этом направлении я решил начать с поиска интересных текстов взяв для этого довольно небольшое, но пишущее сообщество авторов, которые еще остались на блоговой платформе Живой Журнал. О том как сделать собственную рекомендательную систему а в результате получить еще и помощник в выборе вина на вечер — под катом.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии7

Поиск файлов по тэгам в XMP / IPTC и операции с найденным

Время на прочтение5 мин
Количество просмотров3.9K
Сначала может показаться, что пост о «ещё одном медиаплеере», и вот уже паникующий хабровчанин бежит с выпученными глазами прочь, кидаясь минусами в людей, животных и программистов. Ну, в общем и целом, да, пост примерно об этом. Но. Есть, на мой взгляд, одно весомое Но, о котором ниже.

Поиск файлов по тэгам в XMP / IPTC и операции с найденным
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии11

Быстрая разработка скриптов мониторинга с помощью Bash, Outthentic и Sparrow

Время на прочтение7 мин
Количество просмотров7.2K

Доброе время суток!


В данном посте я расскажу о том, как просто и быстро писать различные скрипты проверки состояния инфраструктуры с помощью инструментов Bash, Outthentic и Sparrow ...

Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Простенький скрипт поиска возможно осиротевших файлов проекта

Время на прочтение3 мин
Количество просмотров5.7K
Леность ли моя тому причиной или болезненная неприязнь к комбайнам, но у меня как-то не сложились отношения с большими толстыми довольными IDE. Довольствуюсь простым ламповым Geany и несколькими самописными скриптами, количество коих растёт по мере необходимости.

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

О некоторых таких скриптах решил попробовать писать сюда. Может, кому пригодятся (да и заточить под себя какой-нибудь из них всегда можно). Если нет — ругайтесь в комментариях, учту. Итак.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии7

Скрипт на Perl в помощь HTML-верстальщику

Время на прочтение3 мин
Количество просмотров8.3K
Привет! Я веб-разработчик, и при вёрстке того или иного HTML-шаблона постоянно приходится проверять пиксельные расстояния, соотношения, углы и пр. ненужные мелочи. Разумеется, есть всевозможные dev-тулзы, экранные лупы, скриншоты с графическим редактором, наконец, прости Господи. Но это всё не то. И тут мне пришла в голову идея. На что нам композитные менеджеры и мышка? Почему бы не мерять прямо поверх страницы браузера? Загвоздка была лишь в том, что кроме Perl, JavaScript, и прочих пхп и башей я толком никаких языков не знаю. Но я упорный. В результате я-таки написал нечто.


Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии8

Бот для Telegram за 48 часов на Perl или как купить кошачий корм не выходя из чата

Время на прочтение4 мин
Количество просмотров15K


Давно поглядывая в сторону темы ботов для Telegram и Facebook всё не находил времени взглянуть что же это за звери. А главное — не было внятной идеи зачем может понадобиться такой бот в реальной жизни, учитывая что ни Tg ни Fb Messanger в жизни я активно не пользуюсь.

И совершенно случайно представилась возможность немного погрузиться в эту область и решить вполне себе прикладную задачу. Например, купить корм для кота не выходя из чата )
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии22

Разработка скриптов-обёрток с помощью инструмента Sparrow

Время на прочтение5 мин
Количество просмотров4.7K

Доброе время суток! В данном посте я хочу рассказать как с помощью инструмента Sparrow лёгко и просто писать собственные обёртки к существующим скриптам и утилитам, а так же зачем вам это может понадобиться.

Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии3

Почему я больше не хочу програмировать на Perl

Время на прочтение3 мин
Количество просмотров13K
Про недостатки перла как языка и платформы сказано многое, например, про то, что нет спецификации языка, про то, что странный синтаксис к которому нужно долго привыкать и т.д.

Достаточно того, что авторы языка, задумывая новые версию, по сути создали новый язык мало похожий на исходный (Perl 6), тем самым признали что текущий перл вышел не очень удачным, что в принципе понятно т.к. язык создавался как замена shell'у, а потом оброс фичами.

Я бы хотел сказать о своих личных наблюдениях, которые привели меня к тому, что работать на перле я пойду только в крайнем случае, несмотря на то, что этой мой основной язык.
Читать дальше →
Всего голосов 19: ↑10 и ↓9+1
Комментарии227

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

«Почему вы просто не перепишете это на язык X?»

Время на прочтение3 мин
Количество просмотров19K
Каждый раз, как какой-нибудь новый язык программирования становится популярным его преданные фанаты превозносят его достоинства до небес и пытаются обратить людей в свой культ, отправляя существующим проектам отчет о багах примерно следующего содержания:

«Привет, я тут заметил, что ваш проект написан на [языке программирования X]. Вам бы стоило все переписать на языке Y, потому что он лучше в плане функции Z. Спасибо-до свидания!»

Изложенное в таком виде, предложение кажется совсем не трудным. Раз функция Z лучше, то, конечно, всем следует тут же переписать свои проекты на Y.


Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии91

Аудит актуальных уязвимостей без регистрации и смс

Время на прочтение8 мин
Количество просмотров9.9K

Вступление


Как известно каждому, кто хоть раз подписывался на рассылки по ИБ, количество найденных за день уязвимостей часто превышает возможности человека по их разбору. Особенно, если серверов — много, особенно если там зоопарк из ОС и версий.

В этом топике я расскажу о том, как мы решили эту проблему. И да, Perl* жив :)
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии8

Функциональное программирование на Perl в примерах

Время на прочтение15 мин
Количество просмотров10K

В данной статье будет рассмотрено функциональное программирование на примере скрипта поиска битых ссылок с использованием AnyEvent::HTTP. Будут рассмотрены следующие темы:


  • анонимные подпрограммы;
  • замыкания (closures);
  • функции обратного вызова (callbacks);
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии6

Разработка и тестирование chef кукбуков с помощью инструмента Sparrowdo v2

Время на прочтение5 мин
Количество просмотров3K

Здравствуйте! Об инструменте sparrowdo и его применение в разработке сценариев конфигурации chef я писал уже ранее.


Что ж, за это время утекло много воды и я хотел снова немного раскрыть данную тему, собственно поэтому заголовок статьи содержит версию два.


Итак — sparrowdo — система управления конфигурациями написанная на замечательном языке Perl6, активно развивающимся в последнее время. В своей лично работе я нахожу sparrowdo очень удобным и органично сосуществующим с более мощной платформой управления конфигурация — opscode chef. На нескольких конкретных примерах я покажу как я использую chef вместе со sparrowdo. Это пост не будет очень длинным, но надеюсь даст понимание о чем идет речь.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии21

Отказоустойчивая обработка 10M OAuth-токенов на Tarantool

Время на прочтение13 мин
Количество просмотров9.9K

image


Многие уже наслышаны о производительности СУБД Tarantool, её возможностях и особенностях. Например, у него есть классное дисковое хранилище — Vinyl, кроме того, он умеет работать с JSON-документами. Но в многочисленных публикациях обходят стороной одну важную особенность. Обычно БД рассматривают просто как хранилище, но всё же отличительная черта Tarantool — это возможность писать код внутри и очень эффективно работать с этими данными. Под катом рассказ, как мы строили одну систему почти полностью внутри Tarantool, написанный в соавторстве с Игорем igorcoding Латкиным.

Читать дальше →
Всего голосов 58: ↑55 и ↓3+52
Комментарии2

Отчет с Moscow.pm 2 февраля

Время на прочтение1 мин
Количество просмотров3.5K


2 февраля в нашем московском офисе прошла встреча Perl-программистов Moscow.pm, ставшая уже традиционной на протяжении 10 лет. Под катом вы сможете найти видео и презентации трех докладов:

  • «Автотесты», Вадим Пуштаев, программист отдела внутренней разработки Поиска Mail.Ru
  • «Введение в асинхронно-событийное программирование на Perl», Андрей Еньшин, младший программист команды разработки веб-бэкенда Облака Mail.Ru
  • «Coro. Intro», Евгений Вансевич, программист Почты Mail.Ru
Всего голосов 20: ↑17 и ↓3+14
Комментарии2

Модуль HTML::Phl для обработки HTML-документов, содержащих инструкции с кодом Perl

Время на прочтение21 мин
Количество просмотров2.9K


В статье приведена спецификация модуля HTML::Phl для работы с HTML-документами, содержащими код языка программирования Perl.

Задача модуля HTML::Phl — выбрать из текстового документа формата HTML, размещенный в нем особым образом perl-код, выполнить кое-какие манипуляции над ним и остальным кодом, объединить полученное в единый код perl и «скормить» всё это 'eval', получая на выходе сгенерированную HTML-страницу, воспроизводимую веб-браузером.

Пример
1   <HTML>
2   <HEAD>
3   <META content="text/html; charset=UTF-8" http-equiv="Content-Type">
4   <TITLE>Пример PHL</TITLE>
5   </HEAD>
6   
7   Создаем два дочерних процесса f1 и f2<br>
8
9   %pl  include("process_win.phl", "fork decode=cp1251", "f1");
10  %pl  include("process_utf.phl", "fork decode=utf8", "f2");
11
12  Ждем завершения процессов<br>
13
14  <%pl my %join = include("JOIN", "f1 f2"); %>
15
16  Результаты выполнения процессов<br>
17
18  <%pl
19     foreach my $key(keys(%join)) {
20        if (ref $join{$key}) {
21           print "процесс '$key' - результат: ";
22           for (my $i = 0; $i <= $#{$join{$key}}; $i++) {
23              print "'${$join{$key}}[$i]' ";
24           }
25           print "<br>";
26        } else {
27           print "процесс '$key' - результат: '$join{$key}'<br>";
28        }
29     }
30  %>
31   
32  </HTML>


Статья написана в ознакомительных целях, разработка модуля носит концептуальный характер, и его надежное применение нуждается в дополнительном тестировании.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии7

Вклад авторов