• zip zip

    Прикольный пример из книги Лутца(“Изучаем Python”). >>> X = (1, 2) >>> Y = (3, 4) >>> A, B = zip(*zip(X, Y)) >>> A (1, 2) >>> B (3, 4) Распаковываем запакованные кортежи запаковыванием.
  • hibernate через pm-utils

    В русской вики arch в статье о pm-utils там где описывается настройка hibernate, почему то не указано что нужно прописывать hook: resume для в mkinitcpio. Поэтому у меня в hibernate уходил комп нормально, но не возвращался из него. Рекомендую читать английский вариант статьи там все прописано. В итоге все выглядит так: В файл /boot/grub/menu.lst добавляется resume=/path/to/swap/drive # (0) Arch Linux title Arch Linux root (hd0,0) kernel /vmlinuz26 root=/dev/sda3 resume=/dev/sda2 ro vga=0 initrd /kernel26.
  • Экспериментирую с кэшем

    Добавил кэширование страниц в блоге. Нагрузки конечно нет никакой, просто ради эксперимента. Почитать о том как это работает можно здесь: http://djbook.ru/ch13.html
  • Django Aggregation

    ORM это всегда баланс между производительностью и переносимостью. Наткнулся на очень интересную тему. Расширение функционала ORM джанги. Изучив материал, переделал и оптимизировал модели блога. Коротко в примерах. Есть модель: class Author(models.Model): name = models.CharField(max_length=100) age = models.IntegerField() friends = models.ManyToManyField('self', blank=True) class Publisher(models.Model): name = models.CharField(max_length=300) num_awards = models.IntegerField() class Book(models.Model): isbn = models.CharField(max_length=9) name = models.CharField(max_length=300) pages = models.IntegerField() price = models.DecimalField(max_digits=10, decimal_places=2) rating = models.FloatField() authors = models.ManyToManyField(Author) publisher = models.
  • PEP8 коротко и по-русски

    Взято отсюда Полезно знать как писать в python стиле: используйте 4 пробела для отступа и не используйте табы, не смешивайте их максимальная длина строки 79 символов; для разрыва строки используйте отступы или бэкслеш функции верхнего уровня и определения классов отделяйте двумя пустыми строками определения методов внутри класса отделяйте одной пустой строкой дополнительные пустые строки используйте для логической группировки методов кодировка файлов должна быть Latin-1, а в Питоне 3 и выше - utf-8 каждый импортируемый модуль с новой строки порядок импортов: стандартные модули, third-party модули, локальные модули приложения пустая строка между каждой группой импортов избегайте лишних пробелов внутри скобок; перед запятыми, точкой с запятой и двоеточиями избегайте лишних пробелов перед скобками с аргументами функций и скобками с индексами избегайте больше чем одного пробела между операторами (= - + итд) используйте одиночный пробел для выделения операторов избегайте пробелов вокруг ‘=’, который используется для параметров по-умолчанию и keyword аргументов обновляйте комментарии вместе с кодом пишите комментарии по-английски избегайте имён из одиночных l, O, I для модулей и пакетов используйте короткие всестрочные имена для классов используйте СловаНачинаютсяЗаглавными имена для функций используйте слова_с_подчёркиваниями (или смешанныйРегистр если так получилось исторически) для методов используйте слова_с_подчёркиваниями имена для внутренних методов и переменных _подчёркивание_перед_словом для проверки на None используйте is или is not, не используйте операторы сравнения используйте исключения основанные на классах – наследованные от Exception используйте методы класса string вместо строковых функций используйте “.