8 февраля 2015 г.
4 ноября 2014 г.
Модуль выявления и обработки русской ненормативной лексики на Python
Вообще, пресечь мат (ненормативную лексику) в данных, поступающих от пользователя и никак не модерируемых — задача сложная и вряд ли решаемая. Пользователь для достижения цели (написания мата) может использовать как богатые возможности русского языка для словообразования, так и различные уловки: вставка каких-то символов между буквами, замена букв на похожие. Даже описать весь спектр возможностей — колоссальный труд. И, надо сказать, такие попытки предпринимались. Но я решил обойтись "малой кровью". Понятно, что бороться с матом сложно. Но можно помочь в модерации.
19 сентября 2014 г.
Выполнение задачи точно один раз в Celery
При количестве используемых веркеров больше одного, задача может отработать несколько раз. Порой такое поведение не нужно. И для такого случая Celery даже предлагает решение.
5 сентября 2014 г.
Основы Celery для Django

При создании некоторых web-приложений порой требуется выполнять задачи асинхронно запросу пользователя или периодически.
К первым можно, например, отнести отправку уведомлений по электронной почте. В этом случае невозможно гарантировать быструю обработку запроса. Поэтому отправку уведомления можно поместить в параллельный поток и запрос не будет зависеть от скорости этой самой отправки.
Ко вторым относятся задачи, обычно размещаемые в cron
.
И здесь на помощь как раз может придти система типа Celery — асинхронная очередь задач, основанная на передаче сообщений. Надо сказать, что Celery можно и нужно использовать не только в web-приложениях. Но здесь я расскажу о ней применительно к популярному web-фреймверку Django. Еще стоит оговориться, что я раскрою лишь малую часть системы Celery (достаточную для использования в Django), потому как её возможности достаточно велики.
25 июля 2013 г.
Обработчик данных сервиса Gismeteo на Python
9 июля 2013 г.
HTML purifier на Python. Обновление до 0.1.3
К модулю удаления тегов и атрибутов из HTML добавил Django-поля модели и Django-поля форм.
5 июля 2013 г.
HTML purifier на Python
Для чистки HTML-кода от тегов, сущностей и/или комментариев на Python можно использовать различные подходы. Можно использовать, например, замечательную библиотеку bleach. Но мне не хватило его гибкости и смущает производительность.
7 ноября 2011 г.
Хранение булевых полей в базе данных
Очень часто встречается ситуация, когда в базе данных необходимо хранить уйму битовых полей. Банальными решениями, конечно же, будут вставка необходимых колонок, несущих булевый смысл или хранение строки с перечислением всех необходимых сущностей. Но оба решения видятся мне громоздкими, не производительными и не гибкими. Более элегантным видится хранение булевых значений в одном целочисленном поле. Идея, конечно же, далеко не нова, но опишу её по-своему.
8 сентября 2011 г.
Использование компилятора ресурсов pyrcc4 в PyQt
При использовании замечательной питоновской библиотеки PyQT для компиляции ресурсов (например файлов изображений) в код модуля применяется утилита, поставляемая вместе с библиотекой. Находится она в папке bin (а иногда в корне библиотеки) и называется pyrcc4.
30 мая 2011 г.
Как сделать Captcha для Django
Посмотрев примеры CAPTCHA для Django в сети, не нашел понравившийся. Поэтому решил набросать не сложную свою.
11 апреля 2011 г.
Расширение класса при создании свойствами метакласса в Python 2.6
Во вновь создаваемые классы порой требуется добавить одни и те же атрибуты. Безусловно, это можно решить в ручную, используя механизм наследования. Но тогда код будет разбросан по определениям расширяемых классов. Понятно, что это не совсем удобно. Начиная с версии 2.6 в Python можно решить элегантно эту задачу, используя метаклассы.