Нет, пока не устанавливал, я все время с транком twisted работаю, а внутренние проекты имеют свои версии пакетов TwistedCore. Это не очень хорошо, но разработчики twisted так долго тянули с релизом, пришлось самому действовать.
Я спрашивал разработчиков о версии, мне сказали что только SUMO будет придерживаться Ubuntu стиля, все пакеты как и раньше будут нумероваться. Видимо обманули. Решили применить новые возможности автоматизации релизов ко всем пакетам.
А подскажи-ка все-таки как twisted и ipython дружить?
Мне сегодня Иван Пирог предложил сделать мастер-класс по нему. Я обдумываю способ подачи материала.
Хорошо дружит =). Я постоянно Ipython использую, но скорее для маленьких тестиков и интроспекции по модулям и классам, а вот запускать примеры на твистеде не пробовал.
Вообще мастер класс было бы круто сделать, только вот что показать?
Думаю стоит вычленить одну тему.
Многим интересно понять, как вообще работает реактор и что на самом деле делает Twisted. Тогда было бы круто показать примеры работы с poll и select ядра linux.
Сделать тестовые примеры на тредах в питоне, твистед питоне и на С процессах. Тогда было бы видно где и почему выигрыш в выборе инструмента. Ну и закончить это все тем, что все это процессы и IPC позволяет сделать очень много вкусного, главное без фанатизма относиться к технологиям и инструментарию. В общем такой же вывод, как и в предыдущем твоем мастер классе!
Еще чуть не забыл, manhole можно показать. Где на просторах инета видел готовый скринкаст с примерами. Хотя бы вот Плумберовский пример
Сразу всё показать не получится. (Впрочем, если бы я захотел рассказать все, что знаю о метаклассах и дескрипторах - не успел бы и за 3 часа).
Мастер-класс - наглядное обучение, прежде всего. А что, на твой взгляд, основное в twisted?
Как по мне (и мои ребята согласны) - именно Deferred.
Следовательно:
о реакторе - в двух словах. Детали не нужны. По сути даже транспорт интересен не очень-то… Зато с ситуацией “deferred, вложенный в deferred” сталкивался довольно часто. На распределенных системах.
select/poll и прочие реакторы - для самостоятельного изучения.
сравнения в скорости - туда же.
Все это хорошо для доклада но плохо для мастер-класса.
И примеры должны быть соответствующие.
На данный момент меня больше всего интересует именно интерактивность. Будь мастер о чем-нибудь другом - знал бы, как построить.
Но twisted реактивный, и остается вопрос: как совместить мою прошлую подачу: “я все печатаю в консоли прямо перед вами” с этими самыми реактивными системами?
Остается основа: deferred в его ипостасях, цепочки вызовов и проч. При этом нужно быстро объяснить, зачем этот цирк и почему привычный код нужно раскладывать на серии невразумительных callback/errback
P.S.Сам печатать не буду - найду помощника
P.P.S.Конечно же, напечатанные листинги будут в раздаточных материалах - теперь я понял, как их нужно готовить.
КМК, основные проблемы возникают с Deferred. Понимание “вот то что ты сейчас получил от вызова функции/метода - это не результат, а отложенный результат и к нему нужно цеплять колбэки/еррбэки” приходит когда пятый раз это говоришь.
Мне в свое время понравился подход в Untwisting Python network programming: проводятся аналогии между традиционным синхронным и асинхронным подходами.
В общем, если бы я делал что-то подобное, то я бы постарался максимально просто, “на пальцах” и в картинках изобразить что такое асинхронное программирование, зачем оно нужно, как строятся цепочки колбэков/еррбэков и показать простенький пример с нуля: вот есть задача, вот так бы мы ее решали обычно, а вот так - twisted-way.
Comments
Кстати, ты заметил, что они все компоненты перенумеровали в 8.0.0/8.0.1?
Нет, пока не устанавливал, я все время с транком twisted работаю, а внутренние проекты имеют свои версии пакетов TwistedCore. Это не очень хорошо, но разработчики twisted так долго тянули с релизом, пришлось самому действовать.
Я спрашивал разработчиков о версии, мне сказали что только SUMO будет придерживаться Ubuntu стиля, все пакеты как и раньше будут нумероваться. Видимо обманули. Решили применить новые возможности автоматизации релизов ко всем пакетам.
Посмотрел.. Фи… Не кашерно по-моему.
А почему вдруг 8.0? Мне казалось логичнее 2.6.
..bw
А подскажи-ка все-таки как twisted и ipython дружить? Мне сегодня Иван Пирог предложил сделать мастер-класс по нему. Я обдумываю способ подачи материала.
Хорошо дружит =). Я постоянно Ipython использую, но скорее для маленьких тестиков и интроспекции по модулям и классам, а вот запускать примеры на твистеде не пробовал.
Вообще мастер класс было бы круто сделать, только вот что показать? Думаю стоит вычленить одну тему.
Многим интересно понять, как вообще работает реактор и что на самом деле делает Twisted. Тогда было бы круто показать примеры работы с poll и select ядра linux.
Сделать тестовые примеры на тредах в питоне, твистед питоне и на С процессах. Тогда было бы видно где и почему выигрыш в выборе инструмента. Ну и закончить это все тем, что все это процессы и IPC позволяет сделать очень много вкусного, главное без фанатизма относиться к технологиям и инструментарию. В общем такой же вывод, как и в предыдущем твоем мастер классе!
Еще чуть не забыл, manhole можно показать. Где на просторах инета видел готовый скринкаст с примерами. Хотя бы вот Плумберовский пример
Спасибо за ссылки. Интересные.
На мастер 30 минут (плюс сколько-то на вопросы).
Сразу всё показать не получится. (Впрочем, если бы я захотел рассказать все, что знаю о метаклассах и дескрипторах - не успел бы и за 3 часа).
Мастер-класс - наглядное обучение, прежде всего. А что, на твой взгляд, основное в twisted?
Как по мне (и мои ребята согласны) - именно Deferred.
Следовательно:
о реакторе - в двух словах. Детали не нужны. По сути даже транспорт интересен не очень-то… Зато с ситуацией “deferred, вложенный в deferred” сталкивался довольно часто. На распределенных системах.
select/poll и прочие реакторы - для самостоятельного изучения.
сравнения в скорости - туда же.
Все это хорошо для доклада но плохо для мастер-класса.
И примеры должны быть соответствующие.
На данный момент меня больше всего интересует именно интерактивность. Будь мастер о чем-нибудь другом - знал бы, как построить.
Но twisted реактивный, и остается вопрос: как совместить мою прошлую подачу: “я все печатаю в консоли прямо перед вами” с этими самыми реактивными системами?
Остается основа: deferred в его ипостасях, цепочки вызовов и проч. При этом нужно быстро объяснить, зачем этот цирк и почему привычный код нужно раскладывать на серии невразумительных callback/errback
P.S.Сам печатать не буду - найду помощника
P.P.S.Конечно же, напечатанные листинги будут в раздаточных материалах - теперь я понял, как их нужно готовить.
КМК, основные проблемы возникают с Deferred. Понимание “вот то что ты сейчас получил от вызова функции/метода - это не результат, а отложенный результат и к нему нужно цеплять колбэки/еррбэки” приходит когда пятый раз это говоришь.
Мне в свое время понравился подход в Untwisting Python network programming: проводятся аналогии между традиционным синхронным и асинхронным подходами.
В общем, если бы я делал что-то подобное, то я бы постарался максимально просто, “на пальцах” и в картинках изобразить что такое асинхронное программирование, зачем оно нужно, как строятся цепочки колбэков/еррбэков и показать простенький пример с нуля: вот есть задача, вот так бы мы ее решали обычно, а вот так - twisted-way.
Хорошая статья, как и все предыдущие были. Буду теперь и дальше следить .
Без дела жить — только небо коптить. :)
Последних двух ботов решил оставить, не наглые =)