Advertisement

Customize

Squared

Jun. 4th, 2009 | 02:17 pm

Google запустил Squared. Например, о шаттлах:

Длина Атлантиса — 15,9 метра, а Колумбии — 8 минут.
Диаметр шаттла Челленджер — 39 миллиметров, а Дискавери &mdash 2300 километров.

Как видите, внешнее сходство ничего не значит.
Один шаттл шире другого в шестьдесят миллионов раз, а длина и вовсе несопоставима.
Tags:

Link | Leave a comment {6} | Add to Memories | Tell a Friend

Двести тысяч простывших следов

Jun. 3rd, 2009 | 05:24 pm

Стёр на одном сайте 209 144 просроченных сессии. Дамп уменьшился в 11 раз.

Граждане, не забывайте вешать клинап на крон.
Джанга сама не чистит...

Link | Leave a comment | Add to Memories | Tell a Friend

DataShaping

May. 31st, 2009 | 06:17 am

Занятно; вот недавно, казалось бы, на бессмысленную программку потратил несколько дней, а сейчас она вполне пригодилась для поиска битых данных в большом json-дампе. Ибо практически джанговый API + гибкий генератор отчетов. Правда, пришлось добавить поддержку вложенных структур, но (далее следует назидательный тон) аккуратно написанная программа с достаточным количеством regression tests расширяется легко и правильно.

Да, кстати, оно у меня в битбакете, если кому интересно.

Link | Leave a comment {2} | Add to Memories | Tell a Friend

Поклон профилировщику

May. 26th, 2009 | 01:06 am

1513477 function calls (1513395 primitive calls) in 29.910 CPU seconds

[...переписал менее 15 строк несложного кода...]

198411 function calls (198337 primitive calls) in 1.368 CPU seconds

аыы...

UPD )

Link | Leave a comment {2} | Add to Memories | Tell a Friend

Янковский

May. 21st, 2009 | 12:03 am

очень жаль.
Tags:

Link | Leave a comment | Add to Memories | Tell a Friend

стюардессы

May. 18th, 2009 | 03:36 am
music: какой-то чиллаут на янтарьнет-радиве

возобновили голодовку после вынужденного перерыва на обед

Link | Leave a comment | Add to Memories | Tell a Friend

Кратковременная встреча

May. 17th, 2009 | 08:19 pm

Петров: Господин Иванов!
Иванов: Я очень занят, товарищ Петров, не отвлекайте меня.
Петров: Господин Иванов, но минуточку!..
Иванов: Товарищ Петров, не отвлекайте меня, я очень занят, я иду в неизвестном направлении.
Петров: Однако, господин Иванов, я не отниму у Вас много времени!
Иванов: Что у вас ко мне?
Петров: Ну меня просто прислали Вас убить, это не займет много времени.
Иванов: Хорошо, но только быстро.
Петров: (прицеливается)
Поезд: бух! (стремительно выносит Иванова и Петрова из кадра)

Link | Leave a comment {1} | Add to Memories | Tell a Friend

Django patterns by Eldarion

May. 16th, 2009 | 10:04 am

Интересная подборка Django-паттернов:

http://eldarion.com/talks/2009/05/eurodjangocon_djangopatterns.pdf

(презентация Таубера и Роснера к EuroDjangoCon 2009)

Link | Leave a comment {2} | Add to Memories | Tell a Friend

Decorated signal callbacks in Django

May. 16th, 2009 | 04:31 am

Django will silently ignore decorated signal callbacks unless they are referenced in the client code or unless you force strong references.

OK:
def foo(sender, instance, **kw):
    print instance
pre_save.connect(foo, MyModel)

FAIL:
def deco(arg):
    def foo(sender, instance, **kw):
        print instance, arg
pre_save.connect(deco(123), MyModel)

OK:
def deco(arg):
    def foo(sender, instance, **kw):
        print instance, arg
c = deco(123)
pre_save.connect(c, MyModel)

OK:
def deco(arg):
    def foo(sender, instance, **kw):
        print instance, arg
pre_save.connect(deco(123), MyModel, weak=False)


(solution hinted by snippet#784 by Eric Moritz.)

Why would you need this? Real-life example:
Article(models.Model):
    author = models.ForeignKey(User, editable=False)

class LogMessage(models.Model):
    user = models.ForeignKey(User, editable=False)

pre_save.connect(record_user('author'), sender=Article, weak=False)
pre_save.connect(record_user('user'), sender=LogMessage, weak=False)

Link | Leave a comment {13} | Add to Memories | Tell a Friend

Django View Shortcuts -- Filters 1.1

May. 13th, 2009 | 11:07 pm

Вышел пакет django-view-shortcuts 1.1, над которым потихоньку работаю в рамках сразу нескольких сайтопроектов.

Начинал, как водится, с нескольких простых функций-оберток...

Декораторы

view_shortcuts.decorators.render_to -- развитие известного сниппета Пираньи.

view_shortcuts.decorators.cached_property -- кеширование результата вызова метода; полезно, если результат вычисляется или тяжело, или часто, но на протяжении жизни объекта не меняется. (вернее, это кешер геттера.)

Фильтры

view_shortcuts.filters -- похоже, скоро будут выделены в отдельное приложение.

Написаны с нуля, изначально как простенькие функции для DRY и просто читабельности. Сейчас "выросли".

Сразу пример.

Допустим, есть URL /books/?author=1&cat=sci-fi. Мы хотим показать все книги данного автора в данной категории, а также позволить юзеру выбрать другие значения фильтров. Пришем вьюху:

FILTER_MAP = (
    ('author_id', 'author'),    # ORM lookup, CGI param
    ('category__slug', 'cat'),
)
@render_to()
def book_list(request):
    qs = Entry.objects.filter(published=True)
    filters = FilterList(qs, request, FILTER_MAP)
    return dict(filters=filters)

Затем в шаблоне "book_list.html" (название соответствует имени view-функции) мы итерируем по переменным filters (там будут фильтры "Автор" и "Категория", красиво названные с i18n по field.verbose_name) и filters.object_list (собственно книги, отсеянные по текущим параметрам в URL'е). Для всех известных категорий и авторов будет показано количество книг. Причем оно будет отсеяно с учетом published=True (см. первую строку в view-функции). Каждый вариант легко делается щелкабельным.

Всё! Это так просто. =)

Поддерживаются все возможные поля моделей. Некоторые пока условно: например, drilldown для дат еще не сделан. Но это уже мелочи.

Да, и еще... в принципе, подобная штука в Джанге уже есть. Она называется django.contrib.admin.filterspecs. Я в нее "вчитался" уже после того, как моя была отлажена. Оказалось, что там одно преимущество: хорошая расширяемость. Минут за 20 плюс был портирован сюда. В остальном модули практически не пересекаются: у них разные ниши. Джанговый filterspecs заточен под админку и непригоден для обычных вьюшек.

Подробности тут: http://bitbucket.org/neithere/django-view-shortcuts/

UPD: Опаньки, нашелся django-filter, аналогичная разработка, причем довольно свежая (началась в январе, анонсирована в феврале). Черт, надо постоянно искать, отслеживать эти сверхновые :)
Конечно, мне было полезно, но мог бы сэкономить время.

Link | Leave a comment | Add to Memories | Tell a Friend

The Druid Autumn

Apr. 28th, 2009 | 05:25 pm

Ни с одним звуковым проектиком я столько не нянчился, сколько с кавером на песню Autumn. После месяца возни готовы три-четыре варианта на одной основе, но все они мне не нравятся, поэтому начат еще один, совершенно иной. При этом я нарочно взял песню, которая для меня ничего не значила, потому что самые любимые просто не осилил бы. Мде.
Tags:

Link | Leave a comment | Add to Memories | Tell a Friend

Курсовые и Ascore

Apr. 23rd, 2009 | 12:39 am
music: Ae — Tri Repetae

Разбираю сейчас каталог с текстами, в т.ч. свои старые курсовые. Боже мой, какой бред. Это даже хуже, чем Ascore, которую я писал на Perl в тот же период. А почему хуже? Потому что Ascore я проектировал от начала до конца сам и несколько раз всё бросал и начинал с нуля, когда начинал видеть ограничения, накладываемые выбранным путем. И это для меня оказалось очень-очень полезно и интересно. А курсовые — бессмысленная трата времени и бумаги. Смотрю на файлики и испытываю к ним безличную неприязнь.

шо такое Ascore? )
Tags:

Link | Leave a comment {2} | Add to Memories | Tell a Friend

Подземный башенный кран

Apr. 12th, 2009 | 03:48 am

Шагающий межзвёздный экскаватор.
Тятя, тятя, наши мертвецы притащили сети.
Смирррна. Налееевай.
Я помню чудное мгнгвнгвонв— простите, зажевало; Сашааау, быстро сюда, клещи прихвати, [...]
Передом ной, яви ласты

трясло хвостом?

Link | Leave a comment {6} | Add to Memories | Tell a Friend

syd

Apr. 6th, 2009 | 07:33 pm
music: the madcap laughs

the wall and the diamond as collective envy to the touch of madness that breaks patterns the way they couldn't afford; that lets him go the way they couldn't get used to nor adopt.
Tags: ,

Link | Leave a comment | Add to Memories | Tell a Friend

wan't

Apr. 5th, 2009 | 09:02 pm
music: Legendary Pink Dots — The Safe Way

мною обнаружен новый вариант казнить нельзя помиловать:

«If you wan't to run multiple instances [...]»

(источник)
Tags: ,

Link | Leave a comment | Add to Memories | Tell a Friend

аргхм

Apr. 2nd, 2009 | 01:03 pm

утро вечера мудряннее =(

Link | Leave a comment | Add to Memories | Tell a Friend

Django Harness

Mar. 30th, 2009 | 07:15 pm

Если кому надо, допилил django-harness. Это такая обертка для настроек джанго-сайтов, чтобы в ряде случаев было меньше возни и кода. Полезно не всегда. См. пример.

Link | Leave a comment | Add to Memories | Tell a Friend

La Cité des enfants perdus (Caro, Jeunet, 1995)

Mar. 22nd, 2009 | 01:29 pm

Это в высшей степени прекрасно.

Спасибо [info]kastaneda и [info]roh_roh за октябрьский совет :)

Вселенная Деликатесов развивается далее. Почерк режиссера узнаваем, ибо уникален. В этом фильме преобладает не столько гротескный индивидуальный идиотизм (как в Деликатесах), сколько социальная драма под капотом у сказочной комедии. Впрочем, нзвать это удовольствие трагикомедией язык не поворачивается.

P.S.: три ранних коротких фильма Артура Жоффе, в тч с Домиником Пиноном.
Tags:

Link | Leave a comment {5} | Add to Memories | Tell a Friend

Plasma + Python

Mar. 18th, 2009 | 04:48 am

Поскольку на игрушки времени нет, именно игрушкой и занялся в минуты чая...

http://bitbucket.org/neithere/plasma-test/

Там репозиторий с тестовым плазмоидом, написанным на Питоне. Прилагается краткая инструкция по установке, редактированию и тестированию. Проверено в KDE 4.2.1 (Kubuntu 9.04).

Да, я в курсе, что на Хабре недавно был об этом неплохой пост Михаила Кривушина. К сожалению, с того момента что-то уже сломали на вышестоящих уровнях (PyKDE4, etc.). Сначала у меня в openSUSE никак не работала питонья обвязка для Плазмы, теперь в Kubuntu 9.04 один из вариантов сработал, но пошли глюки с метаданными.

После сопоставления неработающего, но простого кода Михаила и работающего, но раздутого кода пары плазмоидов, идущих с кубунтовским KDE 4.2.1, получился такой вот простенький, предельно обглоданный пакет.

Кстати, оказалось, что установка/обновление даже проще, чем описано на Хабре.

Fork and enjoy ;)

Link | Leave a comment {1} | Add to Memories | Tell a Friend

Пушкин и пустота

Mar. 16th, 2009 | 01:55 pm

Занятные рассуждения о Пушкине как "нашем всём":

http://se-boy.livejournal.com/39264.html

Теперь я вполне осознал, почему всегда терпеть не мог "ЕО" и в принципе не мог читать произведения АСП, отдавая притом должное легкости восприятия... невыносимой легкости.

Парам-парам-парам-парам,
На то оно и утро!

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

Или вот, скажем, Джангиров... за время созерцания иного его верлибра можно облиться парой ведер ЕО.

У меня всегда возникал вопрос: а зачем столько писать, если впоследствии не возникает желания остановиться и обдумать?

Link | Leave a comment {5} | Add to Memories | Tell a Friend