Я таки добрался, спустя четыре дня, написать свой отчет про 6-й киевский Exception, на котором я выступал с докладом о Джанго.

Начать хочу с резюме: мне очень понравилось! Огромное спасибо организаторам — Ивану Пирогу, Максу Ищенко и Дмитрию Кожевину (Дима, заведи блог, ссылку некуда ставить!) за то, что такая замечательная штука имеет место быть!

Дальше — подробности.

Поездка

Расквитюсь сразу с отрицательными впечатлениями. Как выяснилось, за последние лет 15 в поездах лучше ездить не стало. Маленький столик, некуда повесить одежду, большая качка, отсутствие электрических розеток, убогий интерьер, отсутствие еды, побудка два раза за ночь на таможне и наконец просто фантасмагорически ужасные туалеты... Это, кстати, был "фирменный" поезд :-)

Погода

Оба дня в Киеве была замечательная летняя погода. Ясно и солнечно — очень радостный контраст после Москвы, где уже стало ощутимо холодать.

Киев

В Киеве я был впервые, и до этого слышал, что это очень красивый и приятный город. У меня даже есть друзья-москвичи, которые не раз говорили, что Киев — самый лучший город на Земле :-). Не знаю насчет самого лучшего, но мне он определенно тоже понравился. Архитектурная красота бесспорна, но главное — это давно забытый в Москве умеренный ритм жизни. Никакой оголтелости, люди неспешно ходят, центральную улицу на выходные перекрывают для гуляний, водители тормозят перед пешеходными переходами. Плюс еда хорошая и достаточно недорогая.

В эти выходные на Украине были парламентские (если я не путаю) выборы. Так вот, если, насмотревшись телевизора, вы думаете, что там напряженная политическая обстановка, граничащая с кризисом, то значит телевизор вас победил. На Майдане люди загорают на травке, а про выборы особенно никто и не вспоминает.

Единственный неприятно резавший глаз контраст: в городе, где подавляющее большинство говорит по-русски, нет ни одной русской надписи. Все рекламы, указатели и даже меню в ресторанах — на украинском. Мне, кстати, нравится украинский язык, но явное активное официальное сопротивление русскому печалит.

Пользуясь случаем хочу особо еще раз поблагодарить Диму Кожевина и Ваню Пирога за то, что были нашими гидами в Киеве. Спасибо!

Exception

Иван Пирог — страшно энергичный организатор! Я, признаться, думал, что семинар очень камерный, поэтому был приятно удивлен, когда узнал, что туда собралось 160 человек. Причем, это количество плавно растет уже на протяжении шести собраний. Все действо происходило в стенах Международного выставочного центра, места всем хватало, и все это при достаточно скромной цене приблизительно в 100 рублей (хотя, чего лукавить, по московским меркам для конференции это вообще никак не деньги).

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

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

Доклады

На конференции было три доклада: Макс Ищенко про Pylons, я про Джанго и Дмитрий Кожевин про web.py. Максу, правда, сильно не повезло с тем, что его ноутбук отказался дружить с проектором, поэтому его рассказ был менее насыщенным, чем планировалось. Особенно мне было бы интересно посмотреть на то место, где в Pylons прямо на веб-странице с ошибками работает отладочный shell!

Дмитрий же очень повеселил своим выступлением :-). Как-то очень просто и без затей, с фразами типа "это какая-то магия, но мне очень нравится, что она работает" рассказал про то, как быстро он сваял решение на базе web.py и нескольких других готовых компонентов. Особенно интересным показалось, что он вообще не использует никакого шаблонного движка, а отдает на веб JSON, на основании которого потом меняет страницу своего приложения (по сути единственную) с помощью jQuery.

А вот по поводу моего собственного доклада хочу рассказать побольше. Он назывался "2 года с Джанго" и был сводным обзором практических аспектов того, что я смог вспомнить за время своей с ним активной работы. Как водится, выкладываю слайды, которые немножко подправлены в смысле орфографии.

Видимо, я все таки ошибся с оценкой аудитории. Мне казалось, что придут сплошь матерые джангисты, которым не интересно слушать вводную теорию, но таких я насчитал где-то треть от аудитории (что, кстати, само по себе очень приятно). А потому для остальных многие вещи в моем рассказе не содержали нужного контекста. Так, например, я как-то очень красочно описал минусы фреймворка, в результате чего многих напугал, и слышал отзывы, что на Джанго они теперь писать точно не будут :-). Плюс в сети нашел несколько отзывов о том, что Django — это, мол, "очередная негибкая CMS типа Joomla". Такого странного сравнения, честно говоря, я совсем не ожидал.

Особенно показательным мне кажется отзыв ребят-Zope'овцев, на который я набрел вчера:

Воспользуюсь случаем, чтобы таки разъяснить, что там имелось в виду :-).

  1. Я говорил, что проблема не в использовании нестандартных компонентов, а в том, что заменяя стандартные компоненты, вы теряете плюсы от интеграции, а поэтому смысла это делать просто нет. Кроме того, речь шла (что я действительно не разъяснил), о конкретных ключевых компонентах — ORM, шаблоны, urlconf. А вот например прикручивать всеразличные дополнительные компоненты проблем нет никаких.

  2. Я не имел в виду "огромных проблем" в прикручивании авторизации. Я имел в виду, что это получается недостаточно красиво на вкус человека, который ожидает от этой части фреймворка такого же классного исполнения, как и от остальных. А чисто технически все вполне работает. Например в Cicero есть OpenID-авторизация, а в Яндексе мы используем в Джанго-проектах яндексовую авторизацию.

  3. Проблем с обработкой форм особенно никогда и не было, я лишь упомянул, что раньше они были архитектурно не очень удачно сделаны (манипуляторы), а сейчас гораздо лучше (newforms).

  4. Про распределение нагрузки я говорил конкретно, что Джанго не поддерживает репликации. И поэтому распределение нагрузки решается там по-другому — кешированием. А не то, что эта вообще никак не делается.

Но в целом я подозреваю, что Zope'овцы просто услышали то, что хотели услышать :-).

Фотки

Фотки из поездки я разбил на два альбома: Exception #06 и Киев `07. Прошу комментировать!

Комментарии: 24 (feed)

  1. Роман Чепляка

    Жаль, у меня не получилось попасть на афтепати.

  2. FX Poster

    Эх, не сложилось с поездкой в Киев... :(

    явное активное официальное сопротивление русскому печалит

    Вань, ну Украина все-таки. :)

    По поводу конфы - а видео никто не снимал, не видел? А то слайды посмотреть - это, конечно, хорошо, но посмотреть, как это было вживую - было бы лучше.

  3. Leonya

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

  4. Александр Козловский

    Ссылка на качественное видео с выступлением Ивана есть здесь

    [http://w2.com.ua/analytics/seminar/python\_seminar\_exception\_6](http://w2.com.ua/analytics/seminar/python_seminar_exception_6)
    
  5. ulmen

    Был, очень интересно, понравилось :) Спасибо за доклад! :)

    FX Poster,
    Видео есть тут

  6. voronizer

    Нескромный вопрос: а видео будут?

    PS. Недавно выставил в Гноме темную тему (все панели темные, а шрифт - белый). Так вот при такой раскладке шрифт на сайте - белый и на белом фоне. Это в Firefox. Видимо по умолчанию - в "тон" Гному.

  7. Александр Соловьёв

    Это, кстати, был “фирменный” поезд :-)

    Я ездил в Москву этим летом, и могу сказать, что вот русский поезд крайне не понравился полками. Если ты ехал на таком же, с такими хитрыми толстыми полками - то это просто ахтунг, а не поезд. ;)

    Архитектурная красота бесспорна, но главное — это давно забытый в Москве умеренный ритм жизни. Никакой оголтелости, люди неспешно ходят

    Хехе, а у меня остались аналогичные впечатления о Москве. Темп объявлений в метро ниже раза в три, машины оставляют между собой зазоры в 3-4 раза больше, перед перестроением большая часть народу включает поворотник, люди действуют вообще медленнее... Рекламы меньше в Москве, а? Меня это поразило, просто пусто так без неё. :)

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

    :D Вот у меня куча знакомых в России, которым с трудом приходится доказывать, что у нас тут всё ок и не надо срочно готовить нам укрытие на случай бегства. ;)

    явное активное официальное сопротивление русскому печалит.

    :P! ;) На тему явно большего количества русского языка - это ты мало Киев видел. Сейчас его больше, кстати, стало - панаехали из Харькова/Донецка/Днепра, а ещё 5 лет назад, когда я только сюда приехал - было украинского больше. Сейчас по ощущениям 50/50. Многие, кстати, говорят дома на украинском, а на работе/улице - на русском. Привычка из далёких советских времён.

    все это при достаточно скромной цене приблизительно в 100 рублей

    Да ну какая это цена... Эксепшен как был бесплатный, так и остался, а эти символические 20 грн появились из-за добросовестности спонсора... Ну т.е. на тему стоимости конференции - это к <a href="http://uaweb.in.ua " rel="nofollow" title="200 баксаф, а шо!">уавеб</a>. Вот это - платное. O_O

    Очень рад был познакомиться

    Йатожэ. :D

    Но в целом я подозреваю, что Zope’овцы просто услышали то, что хотели услышать :-).

    +\1. Послушали, но не услышали. ;)

  8. Андрей Хаврюченко

    А вот изложение того способа использования mysql репликации, который я тебе предложил: http://a.khavr.com/2007/10/01/how-to-use-mysql-replication-in-django/

  9. Иван Сагалаев

    Да, Андрей, это примерно то, что и мне в голову приходило. Но я пока еще не отчаялся найти решение, которое бы не было завязано на переключение состояния...

  10. dobrych

    Блин оч жаль что не был на конфе, обязательно гляну видео.

    Иван, оч надеюсь еще пересечся в реале :-)

  11. Mourner

    Мне, кстати, нравится украинский язык, но явное активное официальное сопротивление русскому печалит.

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

  12. Андрей Дмитренко

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

  13. Андрей Хаврюченко

    Иван, "без переключения состояния" - это как? Где унутре будет неонка, решающая куда запрос пойдёт?

  14. Иван Сагалаев

    Вот это и есть основная загвоздка :-).

    Смысл-то простой: если нет глобального состояния, решение передается в параметры вызова. Например:

    MyModel.objects.read_only().filter(...)
    

    Но это плохая идея, потому что очень неавтоматическая и просится на ошибки. Еще я вчера раздумывал над чем-то похожим на TransactionMiddleware. Но тут надо как-то извратиться, чтобы всякие сторонние вещи типа записи в сессию выполнялись за пределами влияния состояния "работаем с репликой".

  15. mojo

    слайды:
    опечатка на 18-м "app/setings.py"

  16. rushman

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

    По поводу уровня презентации я не согласен абсолютно.

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

    PS: Хотя сделаю оговорку что я всё-таки из тех «матерых джангистов»

  17. Daevaorn

    слайды:
    опечатка на 18-м “app/setings.py”
    почему опечатка?

  18. Zigzag

    Приезжайте к нам в Минск и узнаете, что такое по-настоящему неспешная и размеренная жизнь (когда не проходят какие-нить политические события) =)

  19. Dmitry

    “app/setings.py”

    setTTings

  20. Max Ischenko

    Я выложил свои заметки на своем блоге (новом): http://maxischenko.in.ua/notebook/4.

    Иван, можешь обновить ссылку на меня в "Читаю" (там стоит древний max.textdriven.com)?

  21. [...] описание можно посмотреть здесь: Exception Log.Официальные фотографии и видеозапись пока вроде не [...]

  22. Андрей Хаврюченко

    Смысл-то простой: если нет глобального состояния, решение передается в параметры вызова. Например:

    MyModel.objects.read_only().filter(...)

    Но это плохая идея, потому что очень неавтоматическая и просится на ошибки. Еще я вчера раздумывал над чем-то похожим на TransactionMiddleware.

    Всё равно не понял. Пример, есть у нас такая транзакция (код из головы):

    if User.objects.count(pk=something) == 0:
      User.objects.create(**userdata)
    

    Нам нужно чтобы запрос для User.objects.count пошёл на тот же сервер, что и User.objects.create. Соответственно и вопрос:

    Кто и где будет решать куда этот запрос идёт?

    Мой вариант ответа: разработчик, указывать в декораторе.

    Хотя я уже, почитав про репликацию в постгрессе, меньше настроен заниматься прикручиванием поддержки MySql Replication в django :)

  23. Николасс

    Спасибо за выступление, очень понравилось. А языку у нас противится мер, котрый запретил русский язык для «официальных дел». Но о том что думают жители о мере можно поискать и в гугле :)

    Еще раз спасибо за доклад и организаторам &mdash за конференцию,

  24. Андрей Хаврюченко

    А языку у нас противится мер, котрый запретил русский язык для «официальных дел». Но о том что думают жители о мере можно поискать и в гугле :)

    У мене є невеличке прохання - обговорювати смак продукту з тим, хто його їсть. І якщо я розмовляю з людиною, що знає російську - російською, це не означає що я не розмовляю українською будь де інде.

    Тема закрыта?

Добавить комментарий

Format with markdown