Squared
Jun. 4th, 2009 | 02:17 pm
Google запустил Squared. Например, о шаттлах:
Длина Атлантиса — 15,9 метра, а Колумбии — 8 минут.
Диаметр шаттла Челленджер — 39 миллиметров, а Дискавери &mdash 2300 километров.
Как видите, внешнее сходство ничего не значит.
Один шаттл шире другого в шестьдесят миллионов раз, а длина и вовсе несопоставима.
Длина Атлантиса — 15,9 метра, а Колумбии — 8 минут.
Диаметр шаттла Челленджер — 39 миллиметров, а Дискавери &mdash 2300 километров.
Как видите, внешнее сходство ничего не значит.
Один шаттл шире другого в шестьдесят миллионов раз, а длина и вовсе несопоставима.
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 )
[...переписал менее 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. 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/eurod jangocon_djangopatterns.pdf
(презентация Таубера и Роснера к EuroDjangoCon 2009)
http://eldarion.com/talks/2009/05/eurod
(презентация Таубера и Роснера к 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:
FAIL:
OK:
OK:
(solution hinted by snippet#784 by Eric Moritz.)
Why would you need this? Real-life example:
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, над которым потихоньку работаю в рамках сразу нескольких сайтопроектов.
Начинал, как водится, с нескольких простых функций-оберток...
Декораторы
Фильтры
Написаны с нуля, изначально как простенькие функции для DRY и просто читабельности. Сейчас "выросли".
Сразу пример.
Допустим, есть URL
Затем в шаблоне "book_list.html" (название соответствует имени view-функции) мы итерируем по переменным
Всё! Это так просто. =)
Поддерживаются все возможные поля моделей. Некоторые пока условно: например, drilldown для дат еще не сделан. Но это уже мелочи.
Да, и еще... в принципе, подобная штука в Джанге уже есть. Она называется
Подробности тут: http://bitbucket.org/neithere/django-vi ew-shortcuts/
UPD: Опаньки, нашелся django-filter, аналогичная разработка, причем довольно свежая (началась в январе, анонсирована в феврале). Черт, надо постоянно искать, отслеживать эти сверхновые :)
Конечно, мне было полезно, но мог бы сэкономить время.
Начинал, как водится, с нескольких простых функций-оберток...
Декораторы
view_shortcuts.decorators.render_to -- развитие известного сниппета Пираньи.view_shortcuts.decorators.cached_propert y -- кеширование результата вызова метода; полезно, если результат вычисляется или тяжело, или часто, но на протяжении жизни объекта не меняется. (вернее, это кешер геттера.)Фильтры
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-vi
UPD: Опаньки, нашелся django-filter, аналогичная разработка, причем довольно свежая (началась в январе, анонсирована в феврале). Черт, надо постоянно искать, отслеживать эти сверхновые :)
Конечно, мне было полезно, но мог бы сэкономить время.
Link | Leave a comment | Add to Memories | Tell a Friend
The Druid Autumn
Apr. 28th, 2009 | 05:25 pm
Ни с одним звуковым проектиком я столько не нянчился, сколько с кавером на песню Autumn. После месяца возни готовы три-четыре варианта на одной основе, но все они мне не нравятся, поэтому начат еще один, совершенно иной. При этом я нарочно взял песню, которая для меня ничего не значила, потому что самые любимые просто не осилил бы. Мде.
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? )
( шо такое Ascore? )
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.
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 [...]»
(источник)
«If you wan't to run multiple instances [...]»
(источник)
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
Это в высшей степени прекрасно.
Спасибо
kastaneda и
roh_roh за октябрьский совет :)
Вселенная Деликатесов развивается далее. Почерк режиссера узнаваем, ибо уникален. В этом фильме преобладает не столько гротескный индивидуальный идиотизм (как в Деликатесах), сколько социальная драма под капотом у сказочной комедии. Впрочем, нзвать это удовольствие трагикомедией язык не поворачивается.
P.S.: три ранних коротких фильма Артура Жоффе, в тч с Домиником Пиноном.
Спасибо
Вселенная Деликатесов развивается далее. Почерк режиссера узнаваем, ибо уникален. В этом фильме преобладает не столько гротескный индивидуальный идиотизм (как в Деликатесах), сколько социальная драма под капотом у сказочной комедии. Впрочем, нзвать это удовольствие трагикомедией язык не поворачивается.
P.S.: три ранних коротких фильма Артура Жоффе, в тч с Домиником Пиноном.
Link | Leave a comment {5} | Add to Memories | Tell a Friend
Plasma + Python
Mar. 18th, 2009 | 04:48 am
Поскольку на игрушки времени нет, именно игрушкой и занялся в минуты чая...
http://bitbucket.org/neithere/plasma-te st/
Там репозиторий с тестовым плазмоидом, написанным на Питоне. Прилагается краткая инструкция по установке, редактированию и тестированию. Проверено в KDE 4.2.1 (Kubuntu 9.04).
Да, я в курсе, что на Хабре недавно был об этом неплохой пост Михаила Кривушина. К сожалению, с того момента что-то уже сломали на вышестоящих уровнях (PyKDE4, etc.). Сначала у меня в openSUSE никак не работала питонья обвязка для Плазмы, теперь в Kubuntu 9.04 один из вариантов сработал, но пошли глюки с метаданными.
После сопоставления неработающего, но простого кода Михаила и работающего, но раздутого кода пары плазмоидов, идущих с кубунтовским KDE 4.2.1, получился такой вот простенький, предельно обглоданный пакет.
Кстати, оказалось, что установка/обновление даже проще, чем описано на Хабре.
Fork and enjoy ;)
http://bitbucket.org/neithere/plasma-te
Там репозиторий с тестовым плазмоидом, написанным на Питоне. Прилагается краткая инструкция по установке, редактированию и тестированию. Проверено в 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.htm l
Теперь я вполне осознал, почему всегда терпеть не мог "ЕО" и в принципе не мог читать произведения АСП, отдавая притом должное легкости восприятия... невыносимой легкости.
Парам-парам-парам-парам,
На то оно и утро!
Занятно, что у Окуджавы встречаются не менее примитивные рифмы и простой слог, но за ними явственно чувствуется мудрость.
Или вот, скажем, Джангиров... за время созерцания иного его верлибра можно облиться парой ведер ЕО.
У меня всегда возникал вопрос: а зачем столько писать, если впоследствии не возникает желания остановиться и обдумать?
http://se-boy.livejournal.com/39264.htm
Теперь я вполне осознал, почему всегда терпеть не мог "ЕО" и в принципе не мог читать произведения АСП, отдавая притом должное легкости восприятия... невыносимой легкости.
Парам-парам-парам-парам,
На то оно и утро!
Занятно, что у Окуджавы встречаются не менее примитивные рифмы и простой слог, но за ними явственно чувствуется мудрость.
Или вот, скажем, Джангиров... за время созерцания иного его верлибра можно облиться парой ведер ЕО.
У меня всегда возникал вопрос: а зачем столько писать, если впоследствии не возникает желания остановиться и обдумать?