Личный блог с мыслями и наблюдениями

The uWSGI Spooler

13.04.2017   техническое   код   uwsgi   spooler   3 мин.

Когда проектируешь масштабируемые системы, где приходится обращаться ко множеству внешних компонент, например, использование стороннего API, отправка почты или конвертация видео, лучшим способом реализации является асинхронная модель с системой очередей, которая является связующим звеном для взаимодействия всех компонент системы…

Самой популярной системой очередей в Python является Celery, она обладает широким набором возможностей по управлению задачами.

К сожалению, сложные системы на базе Celery сложно поддерживать в работоспособном состоянии и когда что-то идёт не так, то найти проблему бывает весьма не просто. Можете спросить любого девопса об опыте работы с Celery, но будьте готовы услышать не очень приятные слова.

К счастью, есть альтернативное решение и сейчас я расскажу о нём.

Читать далее →



nginx for frontenders

26.04.2016   техническое   код   nginx   frontend   3 мин.

Очень часто бывает, что фронтенд-разработчику необходимо добавить или изменить функционал сайта, но нет возможности получить его dev-версию, на которую можно повлиять. Обычно это пытаются обойти запуском браузера с отключенной безопасностью, но не всегда это помогает.

Я расскажу как при работе с «чёрным ящиком» иметь возможность воздействать на его ответы, а также как решать проблемы связанные с безопасностью.

Читать далее →




Postgresql reload

25.09.2015   техническое   postgres   1 мин.

Часто бывает, что после того как внесешь изменения в pg_hba.conf нужно сделать рестарт, чтобы изменения вступили в силу. Оказывается, можно не делать, а выполнить:

# pg_ctl reload

или

SELECT pg_reload_conf();

Логирование изменений в Postgresql

26.05.2015   техническое   код   полезное   postgres   logging   trigger   1 мин.

Иногда нужно добавить логирование изменений в некоторых таблицах, для этого приходится городить сложную систему, которая будет отслеживать изменения и записывать в нужное место что поменялось, и есть большой риск забыть добавить логирование в каком-то месте, эту проблему можно изящно решить сделав триггер на изменение таблицы (весь исходный код доступен на github или можно скопировать нажав на кнопку).

Читать далее →



OS X: поворот и ресайз фотографий

26.06.2014   photos   resize   OS X   1 мин.

Хотелось бы рассказать про две программки, которые сильно упрощают жизнь, когда имеется много фотографий, которые нужно повернуть и изменить размер: jhead и sips

sips — стандартная утилита OS X, scriptable image processing system. Кроме прочего, умеет изменять размер картинки по максимальной стороне.

jhead — Exif Jpeg header manipulation tool. Удобна для поворота картинки по данным EXIF. Для её работы нужен libjpeg (brew install libjpeg).

$ mkdir 1024 # создаем папку для готовых картинок
$ jhead -autorot source_images/* # поворачиваем картинки
$ sips -Z 1024 source_images/* --out 1024/ # изменяем размер

Восстановление "пропавших" заметок iCloud

18.05.2014   apple   icloud   1 мин.

Может быть я один такой, но похожие жалобы слышал от знакомых.

Суть в том, что когда пользуешься 2 и более устройствами на iOS и делаешь заметки на обоих, то в какой-то момент замечаешь, что заметка (приложение Notes или Заметки) пропала… Или, она есть на одном устройстве, но её нет на другом. В то же время эта заметка может быть на одном из устройств и отсутствовать на icloud.com или наоборот. Ясно что имеется какая-то проблема с синхронизацией.

Читать далее →