Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2008 23:52:02

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Exception master class #9

Иван Пирог предложил мне провести мастер по twisted. В самом twisted я разбираюсь довольно неплохо. Но есть проблемы в подаче материала. Предлагаю желающим (а каждому настоящему мужчине есть что сказать:) помочь мне сделать этот мастер как можно лучше.

Предупреждаю: у меня демократии нет. Все предложения рассматриваются, но выбор делаю лично я.

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

—————————–

Андрей Светлов
27.03.2008 21:49

А подскажи-ка все-таки как twisted и ipython дружить? Мне сегодня Иван Пирог предложил сделать мастер-класс по нему. Я обдумываю способ подачи материала.

—————————–

Burus
28.03.2008 9:47

Хорошо дружит =) (http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/410670). Я постоянно Ipython использую, но скорее для маленьких тестиков и интроспекции по модулям и классам, а вот запускать примеры на твистеде не пробовал.

Вообще мастер класс было бы круто сделать, только вот что показать? Думаю стоит вычленить одну тему.

Многим интересно понять, как вообще работает реактор и что на самом деле делает Twisted. Тогда было бы круто показать примеры работы с poll и select ядра linux.

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

Еще чуть не забыл, manhole можно показать. Где на просторах инета видел готовый скринкаст с примерами. Хотя бы вот Плумберовский пример(http://blog.vrplumber.com/349)
———————————
Андрей Светлов
29.03.2008 0:11

Спасибо за ссылки. Интересные.

На мастер 30 минут (плюс сколько-то на вопросы).

Сразу всё показать не получится. (Впрочем, если бы я захотел рассказать все, что знаю о метаклассах и дескрипторах - не успел бы и за 3 часа).

Мастер-класс - наглядное обучение, прежде всего. А что, на твой взгляд, основное в twisted?

Как по мне (и мои ребята согласны) - именно Deferred.

Следовательно:

о реакторе - в двух словах. Детали не нужны. По сути даже транспорт интересен не очень-то… Зато с ситуацией “deferred, вложенный в deferred” сталкивался довольно часто. На распределенных системах.

select/poll и прочие реакторы - для самостоятельного изучения.

сравнения в скорости - туда же.

Все это хорошо для доклада но плохо для мастер-класса.

И примеры должны быть соответствующие.

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

Но twisted реактивный, и остается вопрос: как совместить мою прошлую подачу: “я все печатаю в консоли прямо перед вами” с этими самыми реактивными системами?

Остается основа: deferred в его ипостасях, цепочки вызовов и проч. При этом нужно быстро объяснить, зачем этот цирк и почему привычный код нужно раскладывать на серии невразумительных callback/errback

P.S.Сам печатать не буду - найду помощника

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

————————————

Yury Yurevich
29.03.2008 19:12

КМК, основные проблемы возникают с Deferred. Понимание “вот то что ты сейчас получил от вызова функции/метода - это не результат, а отложенный результат и к нему нужно цеплять колбэки/еррбэки” приходит когда пятый раз это говоришь.

Мне в свое время понравился подход в Untwisting Python network programming(http://www.onlamp.com/pub/a/python/2006/08/10/untwisting-python-network-programming.html): проводятся аналогии между традиционным синхронным и асинхронным подходами.

В общем, если бы я делал что-то подобное, то я бы постарался максимально просто, “на пальцах” и в картинках изобразить что такое асинхронное программирование, зачем оно нужно, как строятся цепочки колбэков/еррбэков и показать простенький пример с нуля: вот есть задача, вот так бы мы ее решали обычно, а вот так - twisted-way.

———————————

Спасибо, Юра. Ты еще раз подтвердил - в twisted все становится просто, если вы поняли, как работает Deferred.

Сам хочу сделать что-то “на пальцах”.
В “метаклассах и дескрипторах” (основа - тут: http://exception.org.ua/media/materials/exception-conference-07/andrey_svetlov_-_metaclasses.py) я мог вбивать код и постоянно показывать, что получается. Просто представь, что ты вколачиваешь этот файл в питоновской консоли, комментируя процесс.

Для twidted такой вариант уже не подходит - просто в силу особенностей реактивных систем. Попробую предложение Буруса о интерактивной консоли.

———————————-

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



Отредактировано (Март 30, 2008 00:03:48)

Офлайн

#2 Март 30, 2008 00:14:18

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Exception master class #9

http://www.amk.ca/diary/2008/03/pycon_2008_a_look_back.html
см. секцию What Did Work, абзац Teach Me Twisted



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version