30 ноября 2014 г.

Программа для выбора цвета Color Picker на AIR

Когда-то давно я сделал на Flash-е программу для подбора цвета. Потом даже не поленился её переписать с ActionScript 2 на ActionScript 3. И вот, наконец-то, я сделал то, что запланировал еще тогда: собрал эту программу для desktop под AIR. Сделал это по двум причинам: работающая во флеш-плейере она выглядит не эстетично и сборка под AIR добавляет возможностей, которых у Flash Player попросту нет.

29 ноября 2014 г.

Способы упаковки приложений AIR для desktop

Замечательная технология AIR от Adobe позволяет собирать приложения под многие платформы (Windows, Linux, MacOS, Android, iOS и пр.). Это открывает действительно широкие возможности для дистрибуции программ. Но даже под desktop можно собрать приложение не одним способом.

4 ноября 2014 г.

Модуль выявления и обработки русской ненормативной лексики на Python

Вообще, пресечь мат (ненормативную лексику) в данных, поступающих от пользователя и никак не модерируемых — задача сложная и вряд ли решаемая. Пользователь для достижения цели (написания мата) может использовать как богатые возможности русского языка для словообразования, так и различные уловки: вставка каких-то символов между буквами, замена букв на похожие. Даже описать весь спектр возможностей — колоссальный труд. И, надо сказать, такие попытки предпринимались. Но я решил обойтись "малой кровью". Понятно, что бороться с матом сложно. Но можно помочь в модерации.

19 сентября 2014 г.

Выполнение задачи точно один раз в Celery

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

5 сентября 2014 г.

Основы Celery для Django

При создании некоторых web-приложений порой требуется выполнять задачи асинхронно запросу пользователя или периодически.

К первым можно, например, отнести отправку уведомлений по электронной почте. В этом случае невозможно гарантировать быструю обработку запроса. Поэтому отправку уведомления можно поместить в параллельный поток и запрос не будет зависеть от скорости этой самой отправки.

Ко вторым относятся задачи, обычно размещаемые в cron.

И здесь на помощь как раз может придти система типа Celery — асинхронная очередь задач, основанная на передаче сообщений. Надо сказать, что Celery можно и нужно использовать не только в web-приложениях. Но здесь я расскажу о ней применительно к популярному web-фреймверку Django. Еще стоит оговориться, что я раскрою лишь малую часть системы Celery (достаточную для использования в Django), потому как её возможности достаточно велики.