Pycon 2011. Краткие Итоги Выступлений

Известно, что с 11 по 13 марта в Атланте (Джорджия) прошла конференция разработчиков PyCon 2011. Ниже в статье будет краткое изложение большинства докладов со ссылками на видео (на английском языке).

Для удобства пользования отчеты разделены на категории.

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



Общий

Написание отличной документации Лекция Джейкоба Каплана-Мосса.

Речь идет не о том, зачем нужна документация.

О тех, кого вдохновила документация в духе Django. О культуре документации.

Зачем люди читают документацию? Документация как инструмент коммуникации заключается в документировании одного и того же объекта под разными углами для увеличения коэффициента полезности.

Зачем разработчику писать документацию? Несколько слов о разработке с использованием документации - DDD. О видах документации: руководства, тематические руководства, справочники, часто задаваемые вопросы.

О вспомогательных средствах документирования.

Ответы на вопросы.

Разнообразие в технологиях: улучшение нашего набора инструментов Звоню Дженнифер Лич.

О непохожести в целом.

Почему в технологиях мало женщин: об ожиданиях и [само]вдохновении на примере женщин и пива.

К чему вообще приводит непохожесть (при плавном переходе к женщинам в мужском коллективе).

Три правила снисхождения к другим.

В целом доклад о толерантности к таким людям.

Ответы на вопросы.

Получение работы: что можно и чего нельзя делать при получении работы на Python Инструкции от Брайана Морони.

Обо мне.



Пример мировоззрения HR с упоминанием Microsoft и PHP.

Набор правил для кандидата: 1) сохранять стиль; 2) следовать инструкциям работодателя по написанию, обращать внимание на содержание письма с приложенным резюме; 3) не беспокойтесь; 4) отслеживать информацию о вас в Интернете; 5) меньше о себе; 6) прийти подготовленным; 7) воспользоваться возможностью обратной связи.

Пример используемой формы оценки кандидата.

Чего еще хочет HR? Ответы на вопросы.

Разработка на основе документации Отчет Кори Урдта.

О том, как появился подход «разработка по документации» и чем он хорош.

Притча об инженере Microsoft. Почему разработчики не любят документировать код. Чем может помочь Sphinx (с примерами настройки).

Пара примеров РПД и логики мышления в этом ключе.

Ответы на вопросы.

Лучшие практики для невозможных сроков Отчет Кристофера Гроскопфа.

О технике, которую можно использовать в ситуациях с непредсказуемыми сроками, на примере Chicago Tribune. Ответы на вопросы зрителей.

Переход на полный Python — без потоков Отчет Криса Маквоя.

О футболках на PyCon, из-под которых видно твою попу.

Кто такие Threadless, чем они занимаются и где находятся? О том, какое отношение к этому имеют Python и Django, и почему PHP не имеет к этому никакого отношения.

Чем PHP похож на эпитипическую смоковницу.

Python.MiroCommunity.org + UniversalSubtitles.org Мини-презентация Уильяма Кан-Грина и Карла Карстена.

Что такое MiroCommunity и Python.MiroCommunity.org. Что такое UniversalSubtitles и как они работают.



Наука и исследования

Лингвистика Твиттера Отчет Майкла Хили.

Обо мне.

О проблеме сложности лингвистического анализа, о региональных различиях в выборе слов, о распространении диалектов на территории США.

Исторический контекст: вехи развития американского английского, вектор развития языка.



О возможностях приведения разных диалектов к общему виду: 1) модуль enchant плюс модуль nltk; 2) замена из словаря с использованием регулярных выражений; 3) Байесовская вероятность на примере языкового корпуса с использованием модуля nltk; 4) использование географического индекса модуля simplegeo.

О составлении образца языкового корпуса с использованием simplegeo и данных из твитов.

Ответы на вопросы.

Смазка колес исследований с помощью Python Отчет Майкла Симса.

Обо мне.

О роли роботов в освоении других планет. О марсоходах, исследующих Марс.

Исследование кратеров, создание геологических и топологических карт. Как Python используется для генерации и отправки команд марсоходам, делая их автономными.

Почему используется Python? О программах НАСА.

Ответы на вопросы.

Запуск сверхбольших телескопов на Python Репортаж Масьеса Фиалковски.

О разных телескопах и для чего они используются.

Примеры получения данных с телескопов и управления ими с помощью консоли IPython. Пример кода с использованием Twisted. Ответы на вопросы: о производительности Python для этой задачи, о переходе с Java на Python, о спутниках и овцах, можно ли управлять обычной спутниковой антенной.

Как убить патент с помощью Python Отчет Ван Линдберга.

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

К вопросу о разделении патентов на категории.

Применение принципов обработки естественного языка к поиску данных, проблема шумоподавления при определении релевантности данных.

Использование экстрактора терминов Yahoo. Как векторы и графики помогли в анализе патентов.

Ответы на вопросы.

Обработка нелепых объемов данных с помощью вероятностных структур данных Отчет Си Титуса Брауна.

О себе и моей ненависти к C++.

Как росла мощь секвенирования.

Сравнение задач анализа больших объемов данных в биологии и физике.

О сегодняшних ограничениях секвенирования и анализа данных.

Почему облака не помогут. Краткое введение в метод дробовика.

Пример алгоритма секвенирования на Python и на что нужно обратить внимание при расчете последовательностей ДНК.

О работоспособности описанного подхода и качестве представленных графиков.

Мысли на будущее.

Пример визуализации графика.

Ответ на вопрос.





Образование

Панельная дискуссия: Python в школах: преподавание и преподавание с его помощью Доклад Джоэла Закари Миллера, Марии Литвин, Джеффри Лкнера, Верна Сайдера и Баяна Брамли.

Введение Закари Миллера.



Брэмли: как строится процесс обучения; какие проблемы решает преподавание информатики? почему Питон; что они изучают.

Литвин: о себе; о решении преподавать математику и информатику; почему Питон; о курсе дискретной математики с информатикой и обучением алгоритмическому мышлению на примере решения задачи о лестнице.

ЭЛкнер: о себе; о курсах информатики в Вирджинии.

Сайдер: о себе; о курсах информатики в Северо-Западной Индиане; почему Питон.

Ответы на вопросы и почему учителя не любят Java. Python и роботы: преподавание программирования в старшей школе Лекция Верна Сидера.

Обо мне.

Почему дети не хотят изучать программирование – ошибки учителей: начинать обучение с правил языка; злоупотреблять абстракциями и деталями; дать скучное или отстраненное задание.

О мини-роботах и о том, как они могут заинтересовать детей.

Для управления роботами на старые планшеты устанавливался Debian. Примеры простых задач (с решением) по программированию роботов.

Методика: как стимулировать интерес к возможностям языка каждым последующим заданием.

Ещё задания: преодоление препятствий, управление камерой на роботе, управление динамиками.

Узкие места предлагаемого курса: аккумуляторы, «застревание» роботов на низком напряжении; подготовка оборудования, необходимого для занятий; сложность определения объема необходимого лекционного материала.

Отзывы студентов.

Ответы на вопросы, в том числе, сколько стоят такие роботы.





Сообщество

Обращение председателя Фонда программного обеспечения Python Сообщение от Стива Холдена.

О сообществе Python. О конференциях PyCon. О поддержке проектов Python (включая конференции и программное обеспечение) от Python Software Foundation. Звонок в ПСФ.

Привлекайте новых участников (и разнообразие) посредством информационно-просветительской работы Репортаж Ашиша Ларойи.

Обо мне.

О проблеме малых сообществ.

Примеры подхода Fedora к построению сообщества, подхода Rails. О пользе неформальных встреч.

Что хорошо и что плохо в формировании сообществ на примере сообществ Debian и Thunderbird. Как привлечь женщин в проект. Ответы на вопросы.

Montreal-Python — уроки, извлеченные из создания сообщества Python Репортаж Янника Гинграса.

Как возникла группа пользователей Montreal Python. Анализ существующих групп пользователей.

Все началось с обычного электронного письма.



Советы по построению групп: 1) Задача организатора – не просто собрать людей, а создать условия для их общения; 2) Блиц-отчеты – это именно то; 3) Выбор места встречи – важный вопрос; 4) Один на поле организации не воин; 5) Вам понадобятся деньги, а значит спонсоры; 6) нужно экспериментировать; 7) Поддерживайте связь с другими группами пользователей.

Ответы на вопросы.





Бизнес

Серьезный бизнес: Python предназначен не только для инженеров Отчет Зака Стейндлера.

О том, как поставить бизнес-стратегию на первый план, о крутости KPI и построении различных графиков (визуализации), а также с помощью каких технических средств можно получить эти показатели и какие аспекты веб-проекта можно проанализировать.

Как продать Питон Круглый стол.

Председательствует Дэниел Гринфилд. Представляем участников: Титус Браун, Дэн Меш, Кристианант, Фрэнк Ваэлс, Джейс Терк.

Истории успеха: некоммерческие организации, государственные организации, малые и крупные организации, образовательные учреждения.

Как они преодолели страх, неуверенность и сомнения и почему используют Python, плюс ответы на нападки в стиле «ваш опенсорс дырявый» и разговор о том, как легко перейти на Python, если знаешь другой язык.

О маркетинговых инструментах, которые могут помочь в продвижении.

О стоимости разработки на Python (на примере сравнения с PHP, Java); как убедить заказчика, который диктует выбор языка реализации.

О рынке труда.





язык Python

Питон, которого не было Лекция Ларри Гастингса.

Про изменения в языке — почему легко предложить, но сложно реализовать из базы, а также почему Python стабилен, плюс булыжник в сторону PHP. Что делать, если идея еще чешется и требует реализации.



Примеры нереализованных идей: протокол замораживания (PEP 351), матричные операторы (PEP 211, PEP 225), вызываемый None (PEP 336), конструкция переключателя/регистра (PEP 275, PEP 3103) и люди, отвергающие свои собственные PEP.

диапазон как литерал (PEP 204), динамический доступ к атрибутам (без PEP).

Кто еще смелый? Полезные пространства имен: менеджеры контекста и декораторы Отчет Джека Дидериха.

Давайте вспомним Дзен.

Типы пространств имен: 1) лексические; 2) модульный/пакетный; 3) внутриобъектный/классовый; 4) «рабочий».

О синтаксическом сахаре, в частности о декораторах, контекстных менеджерах и их смесях.

Примеры оформления с использованием functools.wraps. Оформление классов с помощью functools.total_ordering. Контекстные менеджеры, «декораторы наоборот».

О подменах и подменах (monkey patching), и еще раз о них с использованием декораторов и контекстных менеджеров.

Пример замен: библиотека юникоденази.

Пример менеджера контекста с использованием contextlib.contextmanager. Как совместить декоратор с контекстным менеджером.

Ответы на вопросы.

Взгляд со стороны на сопрограммы Отчет Питера Портанте.

Шумиха вокруг сопрограмм: как выдержать более 10 000 одновременных запросов, почему потоки — не вариант. Диаграммы результатов стресс-тестов Tornado, uWSGI, Gevent и почему Gevent вышел на первое место.

Определение сопрограмм по Кнуту.

Сопрограммы в Python и их ограничения.

Пакеты, которые предоставляют реализации сопрограмм в отличие от сопрограмм в Python. О механизме работы Greenlet. Определения потоков.

Абстрагирование потоков и их связь с сопрограммами.

О необходимости неблокирующего API. О движке событий libevent и обертках над ним.

Ответы на вопросы.

Портирование на Python 3 Лекция Леннарта Регебро.

Введение о продвижении Python. О выборе стратегии портирования: о поддержке кода для разных версий Python, о модели распространения, о единой кодовой базе.

По поводу утилиты 2to3. Когда стоит начать портирование? Этапы портирования: подготовка (рекомендации по первичной обработке кода), тестирование (опционально), портирование (2to3 и 2to3 с Distribute).

Общие проблемы, в том числе связанные с байтами, строками и Unicode. Портирование без 2to3. О расширениях на C. О шестом модуле.

О ресурсах по теме.

Ответы на вопросы.

Статус Unicode в Python 3 Доклад Виктора Стиннера.

История Unicode в Python. Юникод в Python 3. Данные, которые невозможно декодировать, и PEP 383, а также что такое суррогаты (surrogareescape).

О преобразовании байтовых строк в Unicode и новом API для суррогатов в Python 3.2. О переоборудовании импортной техники.

Об аргументах командной строки.

Об именах объектов файловой системы.

О символах, отличных от BMP. О кодировке исходного кода.

Несколько слов о бесплатной книге «Программирование с использованием Unicode».

О трудностях, возникших при реализации поддержки Unicode. Новые функции Unicode в модулях C. Ответы на вопросы.

Структуры данных Python Репортаж Алекса Гейнора.

О чем доклад. Почему Python — это круто.

О встроенных типах данных.

30 секунд для большого О и маленького О.

Сравнение разных типов последовательностей — использовать ту или другую: 1) списки против кортежей; 2) наборы против списков; 3) множества против неизменяемых множеств и почему не существует неизменяемых словарей.

Обзор дополнительных типов из стандартной библиотеки: 1) Collections.OrderedDict; 2) коллекции.

дек.

Как и когда Collections.abc может помочь.

Ответы на вопросы.

Выставка злодеяний Репортаж Майка Пирната.

Об ошибках, которые удалось допустить автору за 11 лет работы с Python. Венгерская нотация – страшная ложь и глупость.

О преступлениях против ПЭП-8 (пришедшим из других языков посвящается).

Однобуквенные имена переменных как средство запутывания.

Одержимость лямбда-функциями.

Перебор с пониманием списков.

Жутко ветвящийся элиф.

Угроза со стороны изменяемых типов в значениях аргументов функций по умолчанию.

Свойства заменяют геттеры и сеттеры.

Метаклассы как замена черной магии.

Божественные объекты и методы подлежат рефакторингу.

Зло в глобальных переменных.

Анти-паттерн подгузник (глушилка-исключение).

О том, как забить утку до неузнаваемости в рантайме (monkey-patching).

Новое изобретение колес в лесозаготовках.

Как написать запутанный Python Репортаж Реврона Джонни Хили.

То, насколько сложно писать на Python, сбивает с толку (с уколом в Ruby).

где можно спутать дорожки: 1) оператор присваивания; 2) операторы сравнения; 3) редактирование байт-кода (объекты типа code, упоминание о модуле dis); 4) декораторы (и реализация с их помощью чего-то типа Brainfuck); 5) оптимизация хвостовой рекурсии (с лямбдами и декораторами).

Ответы на вопросы.

Javascript для людей, знающих Python Лекция Эна Байкинга.

Почему JavaScript кажется странным питонистам.

О том, как понять странность.



Краткий обзор-сравнение языков: объекты, функции, переменные, аргументы функций, неопределённый тип, объекты с прототипированием и с self, механизм определения this, пародия на модули, this и self в замыканиях, func.call() и func.apply(), типы данных и ошибки при прямом создании их объектов, операторы + и ==, жуткие массивы JavaScript.

Несколько слов об отношении JS к DOM.

Как развивается JS. О CoffeeScript, который может быть интересен питонистам.

Ответы на вопросы.

Скрытые сокровища в стандартной библиотеке Отчет Дуга Хеллмана.

Интересное в модулях стандартной библиотеки: csv, sqlite3, hmac, json, sys.excepthook, logging. Ответы на вопросы.

Развлекайтесь с новыми инструментами Python Отчет Раймонда Хеттингера.

Счетчики как словари с использованием Collections.counter с примерами.

Математика счетчиков.

Именованные кортежи из коллекции.

namedtuple с примерами и особым вниманием к вспомогательным методам _asdict() и _replace().

Несколько интересных сценариев использования именованных кортежей.

Подходы к кэшированию результатов функций — классический кэш против кэша от lru_cache с примерами.

Новый синтаксис форматирования строк .

format().

Ответы на вопросы.

Переводчики Панель: Виртуальные машины Python Круглый стол.

Председательствует Джейкоб Каплан-Мосс.

Дино Виланд об Iron Python и интеграции в .

Net. Мацеж Фиалковски о PyPy — «как CPython, только круче».

Фрэнк Вежбицки о Jython и о том, насколько крута JVM. Бретт Кэннон о CPython в качестве флагмана.



Вопросы: 1) Представление ВМ; 2) продуктивность; 3) что произошло во внедрениях за последний год (Фрэнк о ситуации с Sun-> Oracle; Дино о лицензиях от Microsoft, которые заставляют людей нервничать; Бретт и другие об окончании моратория); 4) Питон 3; 5) вопрос от Мацежа о том, на что они потратят полученные от PSF деньги; 6) о песочницах и подходе к их реализации; 7) как поживает Unladen Swallow (вопрос Бретту); 8) о поддержке модуля ctypes; 9) что будет ко времени PyCon 2012. Развитие Python и вы Лекция Баяна Куртина.

Несколько слов о себе.

Какие люди, где и почему участвуют в разработке CPython. С чего начать участие: руководство разработчика, обзор разделов репозитория, заметки по сборке, запуск тестов.

О том, что делать, если ошибку исправили, и чем отличается хороший патч от плохого.

О работе с баг-трекером.

Какие инструменты используются при разработке.

Ответы на вопросы.

Поддержка CPython на неподдерживаемых платформах Отчет Тима Лешера.

Постановка задачи на примере устройства Vocollect (под управлением Windows CE).

Выбор между встроенными скриптами Java, Lua и Python был выбран в пользу последнего.

Почему они вообще создали форк и какие уроки они из этого извлекли: 1) не форкнитесь; 2) следует использовать поперечную обрезку или карантин; 3) придерживаться одной C-нотации.

Ответы на вопросы.

Прототипирование Go’s Select с помощью stackless.py для Stackless Python Отчет Эндрю Фрэнсиса.

Откуда пришла идея подражать Го? О передаче сообщений по синхронным каналам stackless.py в текущей реализации.

Где может быть полезен select (примеры с супервизорами), а также сравнение тасклетов и реактора от витого.

Пример выбора из Go, объясняющий функциональность.

О различиях stackless на C и stackless.py, о планировщике, о каналах и их балансировке.

Как в stackless.py был реализован select, как появились операции над каналами, как очередь тасклетов была заменена очередью операций.

Доклад не уложился в отведенное время и был прерван.

Анализ кода Python, поддерживающий Python Отчет Неда Батчелдера.

Введение: о том, как некоторые программы на Python могут анализировать другие программы на Python (пример — Coverage.py).

Что такое код: виды кода.

Исходный код -> абстрактное синтаксическое дерево (AST) -> объект кода (включая байт-код, файл .

pyc) -> объект функции, объект кадра -> выполнение -> стек кадров.

Отслеживайте код с помощью sys.settrace().

Пример трассировки.

модуль линейного кэша.

Отслеживание подводных камней.

О работе с AST — поиск выражений, модуль ast. О мощности модуля проверки.

Несколько слов о модулях tokenize, dis, opcode. О проблемах динамического языка.

Примеры кода, который невозможно проанализировать.

Ответы на вопросы.

Что бы вы сделали с астом? Отчет Мэтью Демарэ.

Чем занимался Мэтью, когда был тестировщиком: ручное тестирование, тестирование с помощью инструментов, предполагающих анализ кода.

Что такое АСТ, пример дерева, определение понятий.

Атрибуты узла, поля узла.

Пример создания дерева.

Пример автоматического перевода кода Python в JavaScript. Пример слежки за переводчиком.

Какие утилиты могут использовать AST. Когда АСТ необходим, а когда нет? Ответы на вопросы.





Сканировать

Реверс-инжиниринг мозга Яна Бикинга: внутри pip и virtualenv Исследования Карла Мейера.

Как устроена изолированная среда.

Что такое сайт-пакеты и как они работают? Как работают sys.prefix и sys.exec_prefix. Как стандартная библиотека подключается к виртуальной среде.

Как связаны глобальные сайт-пакеты.

Что такое bin/activate на самом деле? Что делать, если вы не можете напрямую использовать virtualenv (mod_wsgi).

Проблемы с форками site.py и их решения.

Что такое пип на самом деле? Использование pip API. О возможном будущем virtualenv и pip. Ответы на вопросы (внезапно появились Ларри Гастингс и Эйн Байкинг).

Развертывание приложений с помощью zc.buildout Отчет Джима Фултона.

Как началась сборка в Zope. Задача: объединить два этапа развертывания (развертывания) — установку и настройку программного обеспечения.

Решение: примеры конфигураций сборки для создания релиза с исходниками, архивом, пакетом (rpm) и финальной конфигурацией приложения.

О мета-рецептах сборки.

О дальнейшем развитии проекта.

Управление зависимостями с помощью Puppet Отчет Ричарда Кроули.

Почему бы не пип заморозить, почему Puppet. Управление зависимостями и настройка приложений с помощью Puppet. Понятие ресурсов в Puppet и их типы: пакеты, группы, пользователи, ssh-ключи, службы, exec, файл и т.д. Объединение ресурсов в классы (это тип ресурса), а также в свои типы ресурсов.

Использование puppet-pip. Механизм автоматической загрузки модулей.

Настройка узлов — отправка модулей на серверы.

Пример модуля для Django и подводные камни.

Пример модуля для Apache с декларацией сервиса.

Развертывание с использованием Fabric или Puppet master. Несколько слов о проекте blueprint от devstructure для автоматической генерации puppet-кода.

Ответы на вопросы.

TUF: безопасные обновления программного обеспечения в Python Презентация Джереми Кондры.

Что такое программа обновления программного обеспечения в целом и какие риски она несет? Инструменты, которые можно использовать в качестве обновлений, и их слабые стороны (с описанием методов атаки, их выявляющих): PyPi, менеджеры пакетов.

Что умеет TUF (это фреймворк для обновлений) и как он работает. Ответы на вопросы.

Демонстрация интеграции TUF в скрипт distutils. Непрерывное развертывание Отчет Лоуренса Ван Гутвена.

Обо мне.

О связи непрерывной интеграции с непрерывным развертыванием.

Критика водопадной модели в разработке и противопоставление ее Agine/Scrum/EXP. Соединение непрерывной разработки с короткими циклами разработки.

Определение непрерывной развертки.

Как не сделать из разработки событие.

Тестирование, автоматизация, измерения, аудит кода.

Подводные камни различных механизмов сканирования.

Стратегии развертывания: в частности, о «разумном» развертывании.

О необходимости здравого смысла при увеличении функциональности систем развертывания.

Ответы на вопросы.

Упаковка: от Distutils до Distutils2 Репортаж Тарека Зиаде.



Несколько слов о талисмане distutils.

Проблемы Distutils и их решение в distutils2: 1) зависимости и их решение с использованием метаданных из PEP 345; 2) setup.py похож на гигантский швейцарский нож, а его заменой является setup.cfg (а также пример использования pysetup); 3) проблема удаления и ее решение с помощью PEP 376 (пример с pysetup); 4) проблема с чужими номерами версий и ее решение в PEP 386 (а также пример нормализации номера версии в distutils2); 5) дополнительные файлы данных и директива files.resources в distutils2. О взаимодействии distutils2 с различными системами сборки.

distutils2 под именем package. Ответы на вопросы.





Дизайн приложений

Антишаблоны проектирования API Лекция Алекса Мартелли.

О типичных ошибках, допускаемых при проектировании и внедрении API. Проектирование API: извлеченные уроки Лекция Раймонда Хеттингера.



Несколько общих советов по хорошему API.

Подробности: 1) При сведении эквивалентных типов к одному (например, индексы массива к целым числам) следует четко указывать типы, которые можно сокращать; 2) В классах, поддерживающих наследование, все внутренние вызовы защищены от изменений; 3) Там, где необходима гибкость (в отличие от простоты), следует избегать предустановленных параметров и лучше использовать необязательные аргументы; 4) Если вам нужна возможность обрабатывать как позиционные, так и итерируемые аргументы, не следует обрабатывать в конструкторе разные сигнатуры; для этих нужд лучше определить отдельные методы; 5) Лучше использовать аргументы-ключевые слова, чем менять сигнатуры, добавляя новые позиционные аргументы; 6) Чтобы подпись конструктора наследуемого класса не конфликтовала с подписью конструктора наследуемого класса, последнюю можно определить косвенно - в одном из методов.

Ошибки, допущенные при создании API и решений на примере asyncore.py и глобальных настроек.

О том, какие проблемы приносит категоризация и иерархия в модулях и как с ними бороться.





Оптимизация

«Чувак, где моя оперативная памятьЭ» — Глубокое погружение в то, как Python использует память.



Доклад-презентация Дэйва Малкольма.

Краткий обзор отчета.

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

) и способы их устранения.

Пример объекта и его размещение в памяти.

Размеры базовых типов данных в памяти, полученные с помощью sys.getsizeof().



Оптимизация с использованием __slots__. Несколько слов об инструменте профилирования ссылочного уровня объектов Meliae.

Что проходит через PYMALLOC и что отправляется в malloc.

Об инструментах профилирования уровня размещения объектов в памяти: 1) Valgrind; 2) куча GDB.

Презентация gdb-heap: принцип работы, пример вывода данных, язык запросов, подводные камни использования, история успеха в проекте Fedora, будущее проекта.

Ответы на вопросы.

Почему Python медленный и как PyPy может помочь? Репортаж Алекса Гейнора, Масьера Фиалковски и Армина Риго.

Что такое PyPy и насколько он быстрый? Что такое JIT и джитинг? Джиттинг на примере мини-приложения.

Грабли семантического разбора языка, ящики, самоанализ фреймов.

Отличные ответы на вопросы.

Роение в сети: разработка идеального файла конфигурации Репортаж Курта Грандиса.



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

Оптимизация роя частиц в Python (ecspy) и его использование в качестве контроллера для создания файлов конфигурации.

Вариант алгоритма тестирования конфигурации.

Оптимизация тестирования и ее результаты.

Ответы на вопросы.





Тестирование и отладка

Юниты тоже нуждаются в тестировании Отчет Гэри Бенхардта.

Что мы тестируем и с какими проблемами сталкиваемся: 1) исчерпывающее тестирование недостижимо; 2) время выполнения теста линейно увеличивается с увеличением объема системы; 3) представление результатов выполнения тестов неинформативно из-за двоичной природы.

О недостатках терминологии.

Определения модуля и модульного теста.

Корректные тесты (с использованием поддельных объектов — макет, стаб) на примере Django. Об интеграционных тестах.

Рекомендации по написанию тестов.

Пример набора тестов (510 тестов) на 10 000 строк кода, выполняемого чуть более секунды.

Ответы на вопросы (в том числе о разумном размере класса в строках).

Тестирование мобильного (и настольного) Интернета с помощью Selenium 2.0 — лучше, быстрее и более Pythonicly Презентация Джейсона Гаггинса.

Что такое Selenium, какие проблемы он решает? О Selenium IDE, Builder, Remote Control. Примеры тестов на Java и C#.

О проекте Selenium Grid. Рекомендуется запускать тесты параллельно, а не последовательно.



Новое в Selenium 2: обзор компонентов для тестирования мобильных платформ (Android и iOS); встроенная обработка событий клавиатуры и мыши; XSS-проверка; поддержка диалоговых окон и т. д. Пример использования нового API с использованием привязок Python.

О том, как получилось исключить Selenium RC Java Server и как вместо него можно подключить Grid.

Пример (пошаговый) запуска тестов для iPhone, Android.

Тестирование с помощью макета Отчет Майкла Фурда.

Обо мне.

Знакомство с библиотекой макетов, для чего используется макет. Фиктивный объект хранит информацию о том, как он был вызван.

Особенности класса MagicMock. Подстановка объектов на лету и откат замены с помощью Mock.patch. Примеры использования библиотеки, включая подстановку объектов и их атрибутов.

Несколько предостережений: не переусердствуйте с насмешкой.

Ответы на вопросы.

Использование Python для отладки кода C и C++ (с использованием GDB) Отчет Дэйва Малкольма.



О встроенной поддержке Python в gdb версии 7+, о том, почему это круто, рассказ об отладке установщика Red Hat, написанного на Python.

Примеры использования Python внутри gdb — отладка приложения на языке C — а) длинный классический путь к gdb с примечаниями о том, на что следует обращать внимание при определении типов и получении значений; б) ярлык с использованием Python.

Обход массивов и структур.

И снова о том, почему такая отладка удобна.

Пример перехватчика обработки строк (prettyprinter) для одного из типов строк в LibreOffice и подключения его к классу в gdb. На что следует обратить внимание при работе.

Сопутствующие ресурсы.

Ответы на вопросы.





Интернет

HTTP в Python: какая библиотека для какой задачи? Отчет Оги Феклера.

Краткий обзор httplib, httplib2, pycURL,wwisted.web.http. О поддержке HTTP 1.1 этими библиотеками.

Представление py-nonblocking-http. WSGI: Совместная работа над решением проблем Интернета Круглый стол.

О PEP 4444, чего не хватает wsgi. О том, что такое wsgi, а что нет. Перспективы развития wsgi. HTSQL-ан Теги: #python #pycon2011 #python

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2011-05-01 10:16:29
Баллов опыта: 644
Всего постов на сайте: 4
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.