Fork me on GitHub
23/11/2006

Интересные статьи-2

Небольшой обзор заинтересовавших меня статей:

Работа с текстом

Давно присматриваюсь к стеку технологий divmod, но как то модуль для работы с байесовским классификатором Reverend (назван модуль с изрядной долей юмора - если переводить строчку импорта, получится "из преподобного.томаса импортировать байес" (-: ) не удостаивался моего внимания. А зря. Пост в блоге Jkx@Home - хороший пример использования Reverend. Естественно, что можно классифицировать не только письма или комментарии к блогу, и не только в категории спам/не-спам, но и по другим, например деловое/личное, и т.д. Главное натренировать. Недавно вышла новая версия (0.14.5) набора библиотек itools. Я пока только присматриваюсь к itools и меня заинтересовал полнотекстовый поиск itools.catalog. Насколько он "дружит" с уникодом - не знаю, пока руки не доходят его опробовать в деле.

Тестирование

Интересный и элегантный подход к тестированию WSGI-совместимых веб приложений: вместо того, чтобы запускать веб-сервер и тест-клиентом "ходить" по страницам, предлагается "перехватывать" запросы и перенаправлять их к WSGI-приложению, напрямую, без веб-сервера. Приводится пример использования wsgi_intercept совместно с twill для тестирования Quixote и CherryPy приложений. Еще один пример - тестирование XML-RPC API средствами wsgi_intercept.

Разное

Введен в строй проект MochiAds. Интересен же он в первую очередь технической стороной: "он сделан на всем чем можно, разве что, кроме кухонной раковины":
Для заинтересованных в технической стороне: UI для MochiAds сделан при помощи Pylons, Genshi и SQLAlchemy. Секрет соуса в комбинации Python и Erlang кода, а nginx у нас в качестве "раздающего". Обо всем стеке я могу сказать только хорошие слова. Перезагрузка Erlang-модулей, ориентированное на паралельное программирование модель разработки, поиск по шаблону - прям мечта.
На вопрос Дункана МакГреггора, как же удалось совместить Python и Erlang, Боб ответил:
Здесь нет ничего особо интересного. Python и Erlang "общаются" между собой по HTTP и через обычные текстовые файлы. Некоторые коммуникации идут в JSON, но в большинстве своем это либо Erlang-синтаксис (от Python к Erlang), либо Python-синтаксис (от Erlang к Python). Причина, по которой я выбрал родной синтаксис, а не остановился на JSON - удобство (разбирать JSON из Erlang достаточно тяжко) и эффективность (eval намного быстрей, чем JSON-парсер на чистом Python). Хотя "говорят" они не слишком много, иначе я бы выбрал более удобный или компактный вариант... но стратегия была очень проста - связать вместе - и это замечательно работает.
И на последок, небольшая зарисовка, как питонист пишет на Java:
Только что я написал код (в одну строку) на Java:
  1. Я забыл точку с запятой в конце строки
  2. Я забыл объявить тип переменной
Ух... классические признаки Python-программиста. Я не на столько универсален.
От себя добавлю, что третьей ошибкой было бы отсутствие фигурных скобок (-:

Комментарии

Все статьи