Mindblown: a blog about philosophy.
-
Hello world!
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
-
Django New Relic uWSGI
Устанавливаем New Relic pip install newrelic Лицензионный ключ берем из личного кабинета, генерируем конфигурацию newrelic-admin generate-config LICENSE-KEY newrelic.ini В конфигурации правим название приложения # The appplication name. Set this to be the name of your # application as you would like it to show up in New Relic UI. # The UI will then auto-map […]
-
sql_joined_field sphinx Django m2m
Необходимо включить результаты поиска по полю name, связанной m2m модели Category. Модели: class Category(models.Model): name = models.CharField(_(u’Название категории’), max_length=60, unique=True) … class Product(models.Model): … category = models.ManyToManyField(Category, verbose_name=u’Категория’, related_name=’products’) … Конфиг сфинкса: sql_attr_multi = uint category from query; SELECT product_id, category_id FROM core_product_category sql_joined_field = category from query; SELECT core_product_category.product_id, name \ FROM core_category join […]
-
ascii codec can’t encode characters in position “” Django Supervisor
В конфиг supervisor добавляем environment=LANG=”ru_RU.utf8″, LC_ALL=”ru_RU.UTF-8″, LC_LANG=”ru_RU.UTF-8″ При обновлении MySQL миниатюры изображений, отрисованные с помощью Pillow и easy_thumbnails для Django, могут перестать работать, рецепт такой же, добавить локаль в конфиг supervisor и перезапустить его.
-
Django Ajax
Нашел чудесную библиотеку django-ajax, берет на себя всю рутину, связанную с ajax во вьюшках Django. Вьюшка теперь может выглядеть так: from django_ajax.decorators import ajax from models import Product from cart.cart import Cart @ajax def ajax_add_to_cart(request): if ‘product_id’ in request.GET and request.GET[‘product_id’]: product_id = request.GET[‘product_id’] product = Product.objects.get(id=product_id) cart = Cart(request) cart.add(product, product.price, quantity=1) items_in_cart = […]
-
Rsync via ssh
Настраиваем ssh по ключу Добавляем в крон rsync –delete -crpz -e “ssh -i /path/to/private_key -p <ssh_port>” user@example.com:/path/to/dir/ /path/to/dir
-
BG, FG, %, &, JOBS, CTRL+Z, DISOWN
Запуск процесса в фоновом режиме Амперсанд & после команды запустит ее в фоновом режиме. cp -pR /home/ /mnt/bacup/ & С работающей командой тоже самое можно сделать так: нажать CTRL+Z :~$ cp -pR /home/ /mnt/backup/ ^Z [1]+ Stopped cp -pR /home/ /mnt/backup/ :~$ ps ax | grep cp | grep -v grep 4833 2.9 0.0 14184 […]
-
logrotate зависает в STAT D
По неизвестной причине logrotate перестал удалять старые архивы журналов, в результате образовалась директория размером в 160M и logrotate просто зависал в STAT D (ожидание системы ввода/вывода), отъедая весь процессор и большую часть оперативной памяти. Удалил директорию через rm -r, удалялось часа 4. logrotate продолжал виснуть, но теперь уже в STAT R, спотыкаясь на ротации btmp. […]
-
Sysstat мониторинг производительности системы
sysstat – удобная утилита для измерения и анализа производительности системы. Можно получить доступ к системным характеристикам (загруженность процессора, i/o wait, использование памяти и прочее) указав в качестве параметра временной интервал, например статистику за последний день можно получить так. sar -u Linux 2.6.32-5-686 (debian.server) 21.11.2013 _i686_ (1 CPU) 13:05:01 CPU %user %nice %system %iowait %steal %idle […]
-
django-simple-history трекинг истории изменения объекта
В джанго есть встроенный трекер истории, но он не позволяет откатиться на предыдущее состояние. Решить эту задачу можно с помощью удобного инструмента django-simple-history. pip install django-simple-history В settings.py INSTALLED_APPS = (… ‘simple_history’, …) В models.py from simple_history.models import HistoricalRecords class Product(models.Model): … history = HistoricalRecords() Выполняем миграцию ./manage.py schemamigration <app_name> –auto ./manage.py migrate <app_name> Далее […]
Got any book recommendations?