Только что столкнулся с малоприятным багом в одном клиенте для протокола AMQP - пакет amqp (версии 1.0.13, но и в 1.2.1 этот баг имеется). Этот клиент по умолчанию используется во фреймворке kombu, на базе которого основана реализация очереди задач - Celery. В простых случаях вы вероятно даже не столкнётесь с этим багом, но знать про него будет полезно.
Мысли, идеи, удачи и провалы. Всё что можно забыть, но надо вспомнить потом. То, чем не жалко поделиться с другими.
Показаны сообщения с ярлыком python. Показать все сообщения
Показаны сообщения с ярлыком python. Показать все сообщения
четверг, 5 сентября 2013 г.
пятница, 26 июля 2013 г.
Выполнение заданного кода при старте Django-приложения или management команды.
Иногда возникает необходимость выполнить некую инициализацию при запуске Django-проекта. Например зарегистрировать обработчики сигналов, создать подключения к внешним сервисам и др. Поскольку в самом Django нет специального сигнала сообщающего например о том, что настройки проекта были загружены и инициализированы, то приходится прибегать к другим методам запуска своего кода.
пятница, 13 января 2012 г.
Прощай исключение NotYet
Рано или поздно наступает такой момент, когда уже нет возможности мириться с тем или иным косяком (фичей) и ты берёшь в руки чужие исходники и ковыряешь их до посинения. Вот так и у меня случилось с пакетом zope.intid. Меня в конец задолбало исключение NotYet вызываемое по его вине и я просто взял и сделал ему инъекцию стероидов.
пятница, 16 сентября 2011 г.
Как установить PIL из исходников в Ubuntu 11.04
PIL (Python Image Library) - это библиотека для работы с изображениями в Python.
В Ubuntu эту библиотеку можно установить из репазитория. Но т.к. я использую в разработке zc.buildout и стараюсь создавать пакеты для деплоя максимально независимые от того, что установлено в системном Python-е , то убунтовский репазиторий мне не подходит. Следовательно PIL у меня собирается из исходников.
Начиная с Ubuntu 11.04 в системе произошли некоторые изменения, в результате которых установка PIL из исходников несколько затруднилась.
В Ubuntu эту библиотеку можно установить из репазитория. Но т.к. я использую в разработке zc.buildout и стараюсь создавать пакеты для деплоя максимально независимые от того, что установлено в системном Python-е , то убунтовский репазиторий мне не подходит. Следовательно PIL у меня собирается из исходников.
Начиная с Ubuntu 11.04 в системе произошли некоторые изменения, в результате которых установка PIL из исходников несколько затруднилась.
понедельник, 8 августа 2011 г.
Что такое исключение NotYet и с чем его едят
Надо сказать, что исключение NotYet штука не частая, но от того и менее понятная начинающим (и не очень начинающим) разработчикам использующим в работе ZTK и ZODB.
вторник, 26 июля 2011 г.
OpenID провайдер для BlueBream: Начало
При выборе решения для создания SSO аутентификации мой окончательный выбор пал на OpenID.
пятница, 1 июля 2011 г.
Scribe - сервер логирования в реальном времени
Не давно я запустил в продакшене приложение для сбора статистики прочтений авторских материалов и расчёта гонорара. Собственно счётчик показов был стандартный JavaScript + img. На стороне сервера данные фиксируются в лог-файле и раз в час производится обработка логов.
Исходя из особенностей обработки статистики и удобства работы с логами к ним предъявлялись следующие требования:
Исходя из особенностей обработки статистики и удобства работы с логами к ним предъявлялись следующие требования:
- логи должны ротироватся ровно в полночь
- в имени лог-файла должна быть соответствующая дата
- в лог можно писать одновременно из нескольких процессов
Ярлыки:
logging,
python,
scribe,
syslog,
zc.buildout
пятница, 18 февраля 2011 г.
Buildout-рецепт для создания Django проекта
На днях опубликовал в "сырной лавке" свой buildout-рецепт для создания Django проекта - cykooz.djangorecipe. Рецепт основан на коде давно не обновляющегося рецепта от Jeroen Vloothuis - djangorecipe.
Ярлыки:
django,
python,
recipe,
zc.buildout
понедельник, 14 февраля 2011 г.
Напутствие для начинающих изучать BlueBream
Для меня в своё время наиболее сложным в изучении Zope3 (BB) было перейти на другой способ абстракции, который предоставляется базовым и вездесущим для ZCA паттерном "Адаптер". Около года я в вялотекущем режиме переваривал мануалы, изучал примеры и пытался, что то делать сам, но с трудом понимал - как все те кусочки, из которых состоит Zope3 и описаны в книге Филиппа, объединить в один работающий сайт.
четверг, 9 сентября 2010 г.
Делаем из Plone 4 сервер CAS
Идея центрального сервиса авторизации (CAS) интересует меня довольно давно - с тех пор как я начал задумываться о том, как сделать удобнее авторизацию пользователей на нашем интернет-портале, состоящем из нескольких сайтов.
среда, 8 октября 2008 г.
Особености работы IntIds при создании объекта "сайт".
Вот решил тут перейти от теории к практике и написать небольшую CMS-ку. Написал скин использующий z3c.layer.pagelett. Написал объект "Сайт". Сделал форму для его добавления используя z3c.forms. Естественно любой сайт должен содержать стандартный набор утилит, которые надо в нём создать и зарегистрировать. И первая из этих утилит это генератор уникальных числовых идентификаторов для объектов сайта - IntIds. Эта утилита обрабатывает событие добавления объекта в контейнер, тем самым регистрируя добавленный объект. Вот тут я и натолкнулся на мистику.
Подписаться на:
Сообщения (Atom)