21 апр. 2009 г.

Александр Кошелев

Ого-го-шеньки! В моем блоге новый читатель - Александр Кошелев, которого я сам уже очень давно читаю - Александр ведет блог http://webnewage.org/, многие его посты можно было прочесть на http://djangosearch.com.

Также он активно участвует в обсуждениях на softwaremaniacs.org, собственно, он один из модераторов, в чем можно убедиться на странице его проектов http://webnewage.org/projects/.

Думаю, это далеко не полный список его заслуг, взять к примеру, djapian - “Интеграция полнотекстового индексера Xapian для джанги в виде приложения”.

Как говорил Джемс Бонд в последнем фильме бондиады “О величии человека судят по величию его врагов.”, если заменить “врагов” на “читателей” (надеюсь никто не решит, будто мои читатели мне враги :) ) получится что я невероятно крут.

Всем дружно завидовать до 15:30!

Слияние государственного и частного капитала на бытовом уровне

image0

Мне кажется, но возможно я и не прав, что подобные сервисы, одобренные Департаментом образования и науки ТО (!) – пример государственного бизнеса. Представьте ситуацию - маленькая компания приходит в выше обозначенный департамент и говорит: “у нас есть идея …” и т.д. и т.п. Департамент в этом случае пошлет малую фирму на 3 (или 5) букв, напишет программу, объявит конкурс. В конкурсе будет участвовать приближенное лицо с удивительно похожей идеей, а у остальных участников будут неправильно оформлены документы.

Помните загадку, про А и Б, которые сидели на трубе? Когда из трубы перестанет литься черная жидкость в стране должны произойти перемены, т.к. кризис, на который раньше надеялись - не помог.

20 апр. 2009 г.

Скринкаст “Using the Django Error Page”

В google reader’e периодически вижу непрочитанными посты, которые были прочитано очень давно. Видимо, id item’ов в rss ленте меняются, а может сам reader глючит.

Сегодня выпал очередной item со ссылкой на скринкаст “Using the Django Error Page” (от July 30th). Eric Holsher рассказывает о встроенных в django useful-фичах для отладки. Помню какое бурное обсуждение вызвал пост о django-debug-toolbar от Роба Хадсона на webnewage.org, но в этом видео полезного не меньше.

Я много нового узнал, думаю и вам будет полезно!

17 апр. 2009 г.

“Making User info available outside requests”

Сегодня шукал в интернете миделвару для джанго, через которую можно информацию о реквест-пользователе получить.

Нашел!

http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser

16 апр. 2009 г.

snippet 1437

Вчера был опубликован интересный сниппет http://www.djangosnippets.org/snippets/1437/. Позволяет, используя веб-сервис http://wapple.net/ без хлопот создать wap-версию сайта.
Чувствую, что начнутся нападки типа "кому теперь нужен вап?" и пр, но позволю себе с такими мнениями не согласиться.

Например, на тсогу за последний месяц 362 посещения (0,65% от общей доли) было с устройств с экраном 234x282 - бедные людишки ждали на своем асинхронном канале загрузки 400 кб главной страницы. В среднем до 3.3 минут проводили на сайте (видимо пытались найти то, что нужно), и уходил с первой же страницы в половине случаев.

Tsogu я взял лишь потому, что аудитория там достаточно большая и достаточно молодая, чтоб сравнивать её со средней "температурой" по рунету.

Короче, люди рады бы пользоваться, но никто не дает такой возможности. Причины 2: 
 - не хочется тратить время и силы на разработу и актуализацию второй версии сайта
 - доля по мнению ответствнных мала, а отдачи вовсе нет (реклама в вап-страницах выглядит плохо).

Сниппет, надеюсь, поменяет ситуацию для джанго сайтов. С плоном все останется по прежнему.

15 апр. 2009 г.

Олимпус Инферно

Посмотрели вчера этот замечательный фильм и теперь меня мучает вопрос: это только мне кажется, что фильм снят на деньги правительства РФ? Нет, художественной ценности фильм от этого не теряет, но, однако, прослеживаются некоторые забавные линии подтекста.

Так например, Россия (которую в фильме представляет девушка) – сострадательная, импульсивная, но всегда отзывчивая не жалеющая себя страна, готовая рискнуть всем, чтобы донести правду.

Америка – растерянная, чрезмерно уверенная в своих институтах страна, невероятно наивная, но с помощью России, опять же, способная творить добро.

Грузия – безбащенные агрессоры, разъезжающие по Осетии исключительно с национальными флагами, как на параде, расстреливающие всех и вся. Короче, абсолютное зло.

Сняли фильм быстро, с августа прошло чуть больше полугода. Обычно такие фильмы снимают менее расторопно. Видимо, надо было срочно формировать общественное мнение. Хотя, там особых спецэффектов и нет.

А вы что думаете?

14 апр. 2009 г.

Деинсталяция в setuptools/easy_install

Не секрет, что easy_install/setuptools можно использовать для удобной дестрибуции пакетов python.

easy_install PackageName - установит пакет,
easy_install -m PackageName - напротив, удалит пакет.
До недавнего времени я был уверен, что setuptools - чрезвычайно удобная, и единственная штука подобного рода. Но я был не прав:

http://softwaremaniacs.org/forum/django/7583/#30080 - тут обсуждали чем плох easy_install.

Самая очевидная альтернатива - http://pypi.python.org/pypi/pip/

Однако, easy_install остается чемпионом, т.к. работать с ним проще - http://tarekziade.wordpress.com/2009/03/26/packaging-survey-first-results/

Далее ссылки на документацию по созданию конфигов для setuptools и презентация:

http://peak.telecommunity.com/DevCenter/setuptools

http://ianbicking.org/docs/setuptools-presentation/

13 апр. 2009 г.

YUI calendar VS jQuery UI Datepicker


Итак, 3, 2, 1, бой начался! Ждете накал страстей, длинную битву с кровопролитием? - не дождетесь!

Резким ударом jquery datapicker отправляет yui в накаут! Как? Очень просто!

Пример с сайта yui:
// A DIV with id "cal1Container" should already exist on the page
var cal1 = new YAHOO.widget.Calendar("cal1Container");
cal1.render();
Всего 2 строки - не плолхо. Теперь пытаемся локализовать без заморочек: пример локализации на немецкий - не осилил, много букаф. На самом деле,  все не сложно, но это половина беды. В моем случае тут беды только начинались...

Пример с jquery несколько отличается. Вариант из коробки работает странно, но если подключить js с локализацией самостоятельно, то проблем не возникнет. Файл которые нужно подключить в этом случае:

 - jquery-1.3.2.min.js
 - jquery-ui-1.7.custom.min.js - custom, так как я его собираю под конкретную тему через http://jqueryui.com/themeroller/
 - ui.datepicker-ru.js - собственно файл локализации на русский.
Далее все по примеру:

$(document).ready(function() {
    $.datepicker.setDefaults($.datepicker.regional['ru']);
    $('#id_date').datepicker();
});

Вообще, yui в последнее время не приносит ничего кроме разочарования. На прошлой неделе например, пришлось откатиться с 2.7.0 на 2.6.0 так как без объяснения причин перестало работать дерево, построенное из разметки, хотя делал все точно по примеру.

6 апр. 2009 г.

О времена, о нравы!

Время меняется и вместе с ним изменяются нравы. Например, в детстве я с удовольствием смотрел "три мушкетера".Сегодня в этом фильме вижу кучу педиков и слабоватых на передок барышень, которые все время поют.

А как вам нравится песня капитана королевских мушкетёров Де Тревиля?

Шпаги наголо, дворяне.
Пыль Парижа - это прах.
Всюду кровь: на рильской ткани,
На брабанских кружевах.

Если сам вам шпаги дал,
Как могу остановить я
В грудь влетающий метал
Кровопролитья,
Кровопролитья,
Кровопролитья,
Кровопролитья!

Дуэлянты, забияки,
Вы клинки скрестили вновь!
Вы деретесь ради драки,
Ради смеха льете кровь.

И когда предсмертный крик
Затрепещет словно птица,
Ваша совесть ни на миг
Не пробудится,
Не пробудится,
Не пробудится,
Не пробудится!

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

Если сам вам шпаги дал,
Как могу остановить я
В грудь влетающий метал
Кровопролитья,
Кровопролитья,
Кровопролитья,
Кровопролитья!
 
Короче, это саундтрэк для Пила 4.
Ещё загадка замены смысла: "А и Б сидели на трубе, А - упала, Б - пропала. Кто остался на трубе?". Теперь это звучит как намек на нефтяную трубу. Осталось только разобраться кого с неё убрали, что б "И" смогла сидеть на трубе пока не наступит кризис и цены на нефть не начнут падать.
Можно представить, что "И" - это Америка, а "А", скажем, Ирак. В общем, смылсы поменялись, вам так не кажется?

5 апр. 2009 г.

Велосипед по мотивам django контриба sites

Django контриб sites можно использовать в 2 случаях, но оба варианта не вяжутся с концепцией "не повторяйся", т.к. подразумевают одну базу, но несколько отдельных проектов или приложении.

Мой велосипед для сайтов http://realtor-tyumen.ru и http://72arenda.ru использует одну базу для разных доменов в одном проекте:



rhost = request.get_host().strip('w.')
from models import Flat
flats1 = Flat.objects.filter(rooms=1, sites__domain=rhost).select_related().order_by('street__title')

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

Если есть вопросы ил упреки - пишите, попробую ответить или нахамить в ответ :).