Pull to refresh
  • by relevance
  • by date
  • by rating

Неизвестные украли домен Perl.com

Information SecurityDomain names administrating

Брайан Фой, эксперт по Perl, сообщил, что домен сайта Perl.com был захвачен неизвестными хакерами.

Он опубликовал сообщение на Reddit: «Мы все еще пытаемся разобраться, и я не могу вдаваться в подробности. Однако, похоже, что это был взлом аккаунта».

Читать далее
Total votes 12: ↑12 and ↓0+12
Views4.2K
Comments 11

RAdmin. Знаете ли вы что…

Information Security
Знаете ли вы, что radmin версий до 2.2 позволяет делать перебор паролей по сети со скоростью, ограниченной каналом и мощностью машины? Говорят, в 2.2 исправили, не проверял.

Знаете ли вы, что в radmin версий до 2.2 при авторизации по паролю, клиент передаёт на самом деле хэш пароля, который сервер хранит открытым в реестре, поэтому «подпатченный» клиент может соединяться по украденному ключу.

Знаете ли вы, что в radmin версии 2.1 (дальше не знаю) используется библиотека zlib с древней дырявой версией?

Знаете ли вы, что radmin пользуется собственными алгоритмами шифрования, чудесным образом совпадающими с Twofish?

Знаете ли вы, что реально существуют (и можно нарыть, чуток поискав) компоненты ActiveX, которые осуществляют перебор пароля radmin на произвольном количестве IP и проверку реестра компьютера на наличие хэша пароля radmin, на котором исполняются?

Знаете ли вы, что есть готовые perl-скрипты, осуществляющие перебор пароля к radmin?

Вот так вот.
Total votes 10: ↑6 and ↓4+2
Views6.9K
Comments 18

Jevix

Lumber room


Jevix — средство автоматического применения правил набора текстов, наделённое способностью унифицировать разметку HTML/XML документов.

Исходный код открыт для свободного использования.
Total votes 6: ↑2 and ↓4-2
Views281
Comments 2

Второе знакомство с OS Inferno

Software
Когда не работается, многие читают bash.org.ru или anekdot.ru… а я этой зимой полез от скуки перечитывать сайт OS Inferno. Полез с тоской, потому что хотя меня к Inferno давно тянуло, практической пользы я от чтения доки по Inferno ожидал сколько же, сколько и от вышеупомянутых сайтов.

Но произошло нечто неожиданное — в процессе чтения на меня снизошло озарение: я понял, что OS Inferno это не операционная система, а среда разработки!
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Views4.7K
Comments 27

Сравнение способов присваивания в perl

Perl
Последнее время я стал исследовать вопросы производительности и эффективности perl-программ, и появилась идея опубликовать цикл простых, но наглядных тестов-сравнений. Начну с самого простого и типичного — с присваиваний. Если тема интересна — буду продолжать.

Ни одна большая программа не обходится без присваиваний. В программах на perl (да и не только на нем) данные часто хранят в структурах хэшей, и обновление полей этих хэшей — очень типичная задача. Разумеется, в perl существует множество способов написать код для этого — и все они различаются как по читабельности и красоте, так и по скорости. Мне стало интересно, каковы эти различия — и я провел небольшое исследование.

Пусть у нас есть $hash — ссылка на хэш с несколькими полями, и мы хотим обновить три из них. Банальный способ записать это:
<font color="gray">$hash->{foo} = 456;
$hash->{bar} = $bar;
$hash->{baz} = 'baz';

</font>


Можно воспользоваться hash slice — и вместо трех операторов скалярного присваивания достичь того же эффекта одним оператором присваивания списков:
Читать дальше →
Total votes 28: ↑19 and ↓9+10
Views1.9K
Comments 38

Любовь — предвестник технологического успеха

Lumber room
На конференции Supernova 2007 известный сетевой мыслитель, профессор Клэй Ширки выступил с очередной провокационной речью. Он огласил очень интересный и, похоже, справедливый тезис о том, что любовь является обязательным предвестником коммерческого успеха технологии.

В качестве примера Клэй Ширки говорит о языке Perl (см. видео начиная с 4 мин 20 сек.), который пользуется безусловной любовью миллионов разработчиков во всём мире. И, что более важно, все эти люди любят друг друга в связи со своим общим технологическим увлечением. Они готовы активно общаться и помогать друг другу, даже делиться кодом. Забота пользователей друг о друге — самый точный признак коммерческого успеха технологии.

Хотя Ширки говорит о Perl и Linux, но сформулированный им закон можно считать универсальным. Речь идёт о любой технологии.
Смотреть видео
Total votes 13: ↑12 and ↓1+11
Views240
Comments 14

Как вызвать метод, которого нет

Perl
Некоторые модули имеют привычку создавать объекты из динамических классов, например, ООкнутые интерфейсы к базам любят делать классы из имён полей таблиц. Кроме того, частенько хочется обратиться к элементу структуры, которой может не существовать. Пёрл переносит обращение к элементам, которых нет, но к элементам таких элеметов уже нет. Как это
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Views722
Comments 11

POE — portable multitasking and networking framework for Perl.

Perl
А по-русски, платформонезависимый фреймворк для создания многозадачных и сетевых приложений на Perl.

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

Читать далее...
Total votes 4: ↑3 and ↓1+2
Views972
Comments 2

goto в CORE:: GLOBAL:: exit — где грабли?

Perl
У меня есть CGIшка, которую хочется запустить под FastCGI.

Она использует фреймвок, который обрабатывает html-шаблоны, выводит ошибки (die) в браузер, делает всяческие редиректы, отдаёт файлы, etc. — всё как обычно. Этот фреймвок, после формирования и вывода ответа на STDOUT, делает exit() — что тоже, в общем, не оригинально.

Этот exit() может быть вызван внутри eval(), а то и нескольких вложенных eval-ов — к примеру, если где-то, в глубине вычислений, CGIшка решает выдать юзеру редирект. Она при этом вызывает функцию фреймвока, он делает print "Location: ..." и exit().

Но под FastCGI exit() делать нельзя.
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Views866
Comments 31

Perl vs C в веб-приложениях, результаты теста

Lumber room
Я давно хотел проверить, насколько больше запросов сможет обработать C-процесс, в сравнении с Perl-скриптом.
Проверял на простом скрипте с одним SQL-запросом, дабы избежать влияния mysql. Веб-сервер nginx, использовалось FastCGI.
Читать дальше →
Total votes 13: ↑10 and ↓3+7
Views637
Comments 26

Fork в приложениях использующих event loop

Perl
Существуют разные способы реализовать одновременную обработку данных: fork, threads, event loop… и, насколько я понимаю, вместе они уживаются довольно паршиво.

Давайте возьмём event loop и fork. Есть ли смысл использовать их в одном приложении? На первый взгляд — конечно, есть! Event loop будет нормально работать только при условии, что обработчики событий отрабатывают достаточно быстро. И как только какой-то обработчик начинает требовать много времени для работы, первое что приходит в голову — отforkнуть его в отдельный процесс (в принципе есть ещё и нити, но в perl с ними туго, так что этот вариант даже не рассматриваем).

Но это на первый взгляд. А если копнуть глубже…
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Views3.5K
Comments 12

Прощай, if $DEBUG!

Perl
Думаю, любой программист на Perl довольно регулярно добавляет в программу вспомогательный код, который не должен выполняться всегда. Это может быть отладочный код, сбор статистики о скорости работы разных частей кода, вывод в лог, и т.д. С этим кодом связано сразу несколько проблем:
  1. Он мешает читать основной код.Он замедляет выполнение программы.Из-за первых двух причин его зачастую удаляют, как только необходимость в нём пропадает… только, к сожалению, необходимость в нём регулярно возникает снова, и этот код, матерясь, снова пишут… чтобы через несколько часов снова удалить.Борьба с первой проблемой, как правило, обречена на неудачу. Ибо если код должен выполняться, то он должен быть написан. А если он написан, то он царапает глаза, разрывает основной код, раздувает код, отвлекает и раздражает. Решить эту проблему, как правило, удаётся только тогда, когда этот код должен быть написан в самом начале и/или конце функции — тогда можно автоматически сгенерировать функцию-обёртку, которая спрячет внутри себя этот код.

    А вот со второй проблемой бороться можно вполне успешно:
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Views2.8K
Comments 36

Правильный способ реализации таймеров и таймаутов.

Perl
А вы знаете, что в 99% приложений и абсолютно всех CPAN-модулях таймеры и таймауты реализованы неправильно? Не верите? Правильно не верите! Есть, есть один CPAN-модуль, с корректной реализацией таймеров: EV. :) (Кстати, это, похоже, единственный CPAN-модуль из всех, реализующих event loop, который знает о проблеме использования fork вместе с event loop, описывает её в документации и даже пытается как-то решать!)

Проблема в том, что для реализации таймеров и таймаутов используются функции, возвращающие текущее время. А текущее время может быть изменено в любой момент в любую сторону на любую величину — админом или NTP-демоном. Поэтому получается так, что, например, таймаут установленный программой на 30 секунд, может сработать либо через 2 секунды, либо через пару суток — смотря как изменится текущее время после установки таймаута (а в особо запущенных случаях может не сработать никогда).

Единственный надёжный способ работать с таймерами и таймаутами — использовать монотонное время:
use Time::HiRes qw( clock_gettime CLOCK_MONOTONIC );
$now = clock_gettime(CLOCK_MONOTONIC);

Поддержка CLOCK_MONOTONIC была добавлена в Time::HiRes (по моей инициативе :)) два года назад. И вот сегодня я снова, как и два года назад, поискал на CPAN модули с правильной реализацией таймеров и таймаутов… и нашёл только один. :(
Total votes 11: ↑10 and ↓1+9
Views3.6K
Comments 22

Cache:: Memcached:: Fast 0.08

Perl
Сегодня зарелизили версию перлового клиента для memcached близкую к окончательной. Багов не замечено. Работает на боевых серверах beon.ru. По бенчам превосходит по скорости все аналогичные модули (как пишут в рекламе, «до десяти раз быстрее»)

wiki проекта

Приятно, когда коммерческие проекты выкладывают хорошую работу в open source!
Total votes 24: ↑21 and ↓3+18
Views1.6K
Comments 8

Знаете как узнать сколько сейчас минут? ( на разных языках).Альтернатива Hello World.

Lumber room
Проблема «Hello World» — в том что непонятно заранее куда будет выведен этот самый «Hello World». То ли в консоль, то ли в Браузерное окно, то ли в MessageBox, то ли в отладочное окно.
Задачка — «Минутка» показывает именно объектное представление языка. Насколько просто обратиться к значению минутки текущего времени на разных языках.
Поэтому ниже привожу примеры именно получения текущей минутки. Если время например: 8:26:30, то в итоге мы должны получить 26.
Не важно числом или цифрой.
Хочется добавить ограничение: без использования дополнительных библиотек.

Читать дальше →
Total votes 20: ↑4 and ↓16-12
Views461
Comments 32