Архив за [undefined]

qs-refactor уже в транке!

Наконец-то! Уверен, что я не один воскликнул это слово, когда узнал что долгожданная queryset-refactor ветка влилась в транк и теперь ORM в джанго стал ещё лучше и удобней! Этого момента ждали долга, поскольку это один из самых больших шагов по направлению к 1.0 версии джанги. Итак, что же мы получили.

Начну с основных изменения уже имеющегося функционала:

  • Указание сортировки по при-join-ненным моделям теперь стало более логичным и совпадает с фильтрами lookup'ов. Просто пример:

    Order.objects.all().order_by( "product__price" )
    
  • Обновлена реализация __iter__ метода queryset'a. И не грузит все строки результат в память сразу.

  • Особенно меня радует: сделана нормальная обработка None значения в lookup'ах. Т.е. если раньше приходилось писать писать воркэраунды для случая когда селект осуществлялся по NULL значениям, например так:

    if value is None:
        queryset = queryset.filter( field__isnull = True )
    else:
        queryset = queryset.filter( field = value )
    

    То теперь эта проверка лишняя не нужна. Ура!)

  • Есть ещё некоторое количество изменений, но они на низко уровне и на прямую не влияют на использование. Хотя именно они окончательно убивают некоторые баги, которые были в джанговском ORM до сего момента.

Помимо изменений, есть ещё и целый ряд дополнений к возможностям ORM. Вот основные из них:

  • Добавлена возможность производить обновление(UPDATE) нескольких ...

svn:externals и django - дружба на век

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

Я всегда использую транк джанги, поскольку релизится она не часто, а для примера можете сравнить насколько отличается текущая её версия от последнего релиза. Ага, как-будто вообще разные фреймворки в некоторых местах:)

Ну транк, так транк. Все хорошо, проект пишется какое-то время со свежим транком. Потом к счастью проект релизится и выходит в продакшн. И вот через некоторое время нужно либо что-то дописать, либо что-то исправить. Ну а почему бы и джангу не обновить под шумок и ещё несколько очередных плюшек новых использовать. Не проблема, обновили, код подправили и живем дальше. Но!

Обычно я устанавливаю джангу в общедоступный PYTHONPATH, например /usr/lib/python/site-packages/ и все проекты используют именно этот, один инстанс. И тут ключевое слово все. Когда на одном хосте расположены несколько проектов, то сценарий описанный мною ранее, перестает радовать и практически не возможен.

В чем же дело? Да ...

Где мобильная версия?!

Этим вопросом я задаюсь очень часто последнее время. И чаще всего получаю на него ответ - "нету". Да, многие сайты, которые я регулярно посещаю, не имеют версию для мобильных устройств. Это очень разочаровывает.

nokia n95 8gb

Недавно я обзавелся новым мобильным телефоном. Это моё первое устройство, которое имеет GPRS/EDGE. И я сразу же стал активным потребителем беспроводного трафика.

По первости очень порадовал Google который имеет упрощенные версии своих сервисов. От почты до работы с документами. Для почты, карт и поиска есть даже J2ME приложения, которые делают ещё более удобным работу с сервисами.

Ещё Яндекс имеет некоторое количество сервисов заточенных под мобильные устройства. Это тоже радует.

Но вот другие сайты такой заботой к клиентам не отличаются. Увы.

В эти дни я также пожалел, что и мой блог тоже не адаптирован к подобному использования. Надо будет этот вопрос продумать.

А вообще впечатление моё от интернета в мобильном телефоне - супер! Да, я в восторге. Теперь я могу быть на связи через IM клиент почти круглые сутки. Установив программу ssh клиента, я могу контролировать работу серверов и даже производить минимальное обслуживание. Это шикарно.

Теперь время в транспорте и на скучных лекциях пролетает более продуктивно и интересно. Класс. Я давно об этом мечтал. А теперь вообще не понимаю ...

Python и Django - платформа для фрилансера. Часть 1

Данный материал не является текстовой перепечаткой моего доклада на Exception #07. Это повторное изложение мыслей на заданную тему. Полная версия слайдов в формате odp - 21кб

Я имею некоторый опыт во фриланс-веб разработке. И большая его часть связана с питоном и джангой. Это сайты средней сложности, в основном контент ориентированные. По прошествии времени, я могу смело утверждать что Python и Django - это отличная связка для тех, кто хочет чего-то добиться в этой сфере быстро и с удовольствием:)

слайд 1 - титул

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

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

Все без ума от GAE

Это безумие не только положительно, но и отрицательное, что очень хорошо. Ведь это значит, что людей заинтересовало, а уж какие они выводы делают - это уже другой вопрос.

Всю неделю сообщество бурлило новостями и первыми откликами на Google App Engine. Такой информационный волны я уже давно не припомню. Но волна уже схлынула и тут у меня появилось время тоже чуть-чуть высказать свои мысли на этот счет.

Google App Engine

Я почему-то не удивлен, что на первых порах выбор гугл пал на python, а не на другой язык. Гвидо уже давно проводит просветительскую деятельность по внедрению в умы гугловцев питонистических идей. Это можно сказать их апогей. Там уже давно применяется разработка Гвидо - Mondrian. Приложение написанное на django для внутреннего core-review. Но это уже следующий шаг. Роман Гугла с джанго уже давнишний и продолжается, хотя сейчас он только набирает обороты.

То, что в коробке с GAE идет джанга - это супер. Это бальзам на сердце тем, кто продвигает её идеи в массы. Такой мощный соратник как google поможет внушать скептически настроенным гражданам её идеологию и область применения.

Да! YAML! Я долго ждал, чтобы кто-нибудь из крупных игроков питон-сообщества обратил внимание и стал применять YAML как декларативное средство описания данных. Это же мега удобно по сравнению с xml ...