вторник, 13 декабря 2016 г.

Пельмени

Все знают что такое спагетти-код.

Термин стал очень популярным. "Макароны" -- признак говнокода, да?

Сегодня Google меня удивил подкинув ссылку на равиоли-код.
Ravioli code is a type of computer program structure, characterized by a number of very small and (ideally) loosely coupled software components.
Очень хорошее определение. Единственная проблема -- название немного не родное.

Равиоли -- это те же крошечные пельмешки, но слово "пельмени" мне ближе.

Предлагаю такую стратегию:
  1. Пишем пельмени-код.
  2. Если получается перейти на уровень равиоли -- у нас всё отлично
  3. Выходят манты или хинкали -- повод уделить пристальное внимание но в целом тоже ничего
  4. Если творение невозможно представить в виде пельменных собратьев и оно по внутреннему ощущению больше похоже как минимум на тульский пряник а то и на полноценный каравай -- нужно бить тревогу.

среда, 30 ноября 2016 г.

Цены снизились на семинар по async/aiohttp

Как вы знаете в декабре я провожу семинар по aiohttp/asyncio в Москве:

Positive Technologies, которая взяла на себя всю организацию меропрития, изыскала возможность несколько снизить накладные расходы. Как следствие цена тоже понизилась.

В итоге сумма составляет:

  • Регулярный платеж 12,000 руб.
  • Студенческий пакет (требуется скан студенческого билета) -- 7,000 руб.

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

Как записаться?
Заполните форму.

пятница, 18 ноября 2016 г.

Семинар по async/aiohttp

Благодаря неоценимой организаторской помощи компании Positive Technologies я проведу семинар по asyncio/aiohttp в Москве 17-18 декабря (суббота-воскресенье).

Что в составе семинара?


  1. Базовые знания об asyncio. Из всего огромного набора функций для начала работы нужно знать всего десяток. На них и сосредоточимся.
  2. Получение данных по протоколу HTTP с помощью aiohttp (client API). Всё, что нужно знать для составления собственного бота-паука.
  3. Простейший web server на aiohttp. Советы по организации кода, работа с базами данных, шаблонизаторами, сессией пользователя и прочее.
  4. Продвинутые технологии в aiohttp: сигналы, middlewares, вложенные приложения.
  5. Возвращаемся к asyncio: Future object и streaming API.
  6. asyncio транспорт и протокол как низкоуровневые конструкторские блоки.
  7. Описание работы asyncio loop изнутри.

Об авторе (т.е. обо мне)

  • В профессии с 1999 года
  • Python Core Developer с 2012
  • aiohttp maintainer
  • asyncio соавтор

Как это всё выглядит?


  • Два полных выходных дня (суббота и воскресенье), с обедом и парой кофе-брейков в течении каждого дня.
  • Небольшая аудитория в несколько дестков человек.
  • Строгого расписания и бесконечного потока слайдов нет. Есть примерный план но я смогу легко его поменять на лету ориентирусь на понимание темы слушателями.
  • Свободный формат общения. Т.е. я рассказываю и показываю, пользуясь проектором, редактором для кода, браузером, доской с маркерами. В любой момент можно задать вопрос если что-то непонятно -- буду объяснять и показывать пока не станет окончательно ясно.

На какую аудиторию расчитан семинар?


  • На энтузиастов, жадных к новым технологиям.
  • Знание asyncio не обязательно, но слушатели должны уметь программировать на Python и создавать web сайты с использованием любого framework: Django, Flask, Tornado и т.д.
  • Если уже есть опыт работы с asyncio/aiohttp но хочется узнать тему лучше и глубже -- вам тоже будет полезно.
  • В конце концов я -- соавтор обоих библиотек. Поверьте, я знаю как они устроены и как их использовать правильно -- и на семинаре буду делиться этими знаниями.

Время и место проведения

Семинар проходит 17-18 декабря. Суббота-воскресенье, два полных дня.
Обеды и кофе-брейки прилагаются.

Начало в 9.30, окончание -- 17.30

Место проведения -- офис Positive Technologies, Москва, Преображенская площадь дом 8 (станция метро "Преображенская площадь).




Стоимость и оплата

Стоимость 12,000 руб, студентам -- 7,000 руб.

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

вторник, 11 октября 2016 г.

Курсы по Python

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

Они состоятся в ноябре 2016, каждое воскресенье месяца.

Программ будет три:

aiohttp для начинающих

Четыре занятия по два часа.

Мы научимся делать сайты на aiohttp.
Простейшие странички, формы, веб-сокеты и проч.
Подключим базы данных, авторизацию, шаблонизатор.
Немного коснемся asyncio в том объёме, который предназначен для "простого программиста".
В общем всё, что нужно знать чтобы уверенно работать с aiohttp и совместимыми библиотеками.

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

Ожидаемый уровень знаний слушателей: умение писать на Python, работа с asyncio не требуется но умение создавать веб-сайты на любом питоновском инструменте (Django, Flask и т.д.) очень пригодится.

Стоимость: 1200 грн за одно занятие или 3600 при оплате за весь курс сразу. Подробности по оплате -- в конце текста.

Когда: 6, 13, 20, 27 ноября в 11.00 в Прожекторе.

Для регистрации заполните форму.

asyncio в деталях

Четыре занятия по два часа.

Курс расчитан на тех, кто уже что-то попробовал с asyncio/aiohttp но хочет понять всю внутреннюю кухню:
  • Что такое event loop и как он работает
  • В чем отличие между Task и Future, когда что применять
  • Что такое транспорт и зачем он нужен
  • Как писать собственные библиотеки на базе aiohttp
  • Чем тесты для асинхронного кода отличаются от привычного подхода
Плюс, как обычно, описание подводных камней и выводы из собственного опыта

Ожидаемый уровень знаний слушателей: умение писать на Python, немного попробовали что-то сделать на asyncio но хочется знать больше.

Стоимость: 1200 грн за одно занятие или 3600 при оплате за весь курс сразу. Подробности по оплате -- в конце текста.

Когда: 6, 13, 20, 27 ноября в 13.00 в Прожекторе.

Для регистрации заполните форму.

google map

Python: внутреннее устройство и оптимизация

Четыре занятия по два часа.

95% борьбы за производительность программ сводятся к набору правильных инструментов и алгоритмов. Например, грамотная денормализация базы данных ускорит выдачу гораздо лучше чем даже мгновенная сортировка-фильтрация на стороне питоновского кода. А мгновенного ничего не бывает...
Тем не менее иногда приходится ускорять уже оптимальный алгоритм.

На занятиях мы:

  • рассмотрим основные структуры CPython
  • научимся создавать свои функции и классы используя Python C Extesions
  • и, наконец, поймём что это утомительное занятие не требуется в 95% случаев благодаря наличию Cython
Управление памятью, потоки и GIL прилагаются.

Ожидаемый уровень знаний слушателей: хороший уровень владения Python (собственно программирования на самом Python практически не будет). Хотя бы остаточные знания C/C++ очень пригодятся.

Когда: 6, 13, 20, 27 ноября в 16.00 в Прожекторе.

Стоимость: 1200 грн за одно занятие или 3600 при оплате за весь курс сразу. Подробности по оплате -- в конце текста.

Для регистрации заполните форму.

Где


Киев, Воздвиженская ул. 34А, Дизайн среда "Projector".
Ближайшие станции метро: "Контрактовая площадь", "Почтовая площадь".


Оплата

Я убедительно прошу оплачивать посредством банковского перевода на мой счет ФОП. Реквизиты вышлю тем, кто зарегистрируется.
Сейчас практически все оформлены как частные предприниматели, так что выполнить перевод со своего ноутбука не составит труда.
В случае полной невозможности так поступить -- готов рассмотреть альтернативы в индивидуальном порядке.

Стоимость одного двухчасового занятия 1200 грн. При оплате сразу за весь курс слушатель платит 3600 экономит 1200 грн.

Студентам скидка в 50% (потребуется выслать скан студенческого билета).

Занятия разнесены во времени, можно посетить сразу все три курса (если выдержите, конечно).
При оплате за два курса скидка 25%, за три курса сразу скидка 50% (действует только при оплате за весь курс, на вариант оплаты за занятие дисконты на посещение нескольких курсов одновременно не распространяются).

четверг, 28 июля 2016 г.

PyCon Hong Kong

Организаторы продлили период Calls For Proposals.

Никто не хочет поехать с докладом?

Я там был в прошлом году, очень понравилось.

К сожалению в этот раз вынужден пропустить -- даты пересекаются с другим мероприятием.

Sammy Fung попросил распространить эту информацию среди коллег.

Теперь вы, коллеги, в курсе :)


Hi all,

Calls for Proposals (CFP) of PyCon HK 2016 is now extended to 8/14.

PyCon HK 2016 will be hosted at Hong Kong Cyberport on 29-30 October. PyCon HK is a python community conference hosting in Hong Kong, which looks for overseas and local speakers.
PyCon HK 2016 provides English track and Cantonese/Mandarin track.
PyCon HK 2016 ticket sales on eventbrite: http://pyconhk2016.eventbrite.com/?aff=cfp
PyCon HK 2016 website: http://pycon.hk/2016

--
Yours Sincerely,
Sammy Fung
Conference Chair, Hong Kong Open Source Conference.
President, Open Source Hong Kong.
http://opensource.hk

суббота, 5 марта 2016 г.

Нужен совет по выбору платформы для постройки робота

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

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

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

Иногда у него возникают затыки -- в scratch нет debug mode, но с моей помощью находит решение.

В общем стало скучно, ничему по настоящему новому на scratch научиться уже невозможно. Дошли до scratch blocks если кто понимает -- но они не настоящие функции и предел достигнут.

Хочу переключиться на железяки -- это мальчика приводит в восторг.
Я управляю роботом -- офигенно круто!

Теперь собственно вопрос: что выбрать?

Не хочу брать Лего -- он тупой и дорогой. Цена меня мало волнует но желаю получить вещь, которую можно будет долго развивать и улучшать.

Arduino? Может что-то посовременней, на лучшем железе?

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

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

Управление через android планшет тоже желательно -- это дает +100 к привлекательности.

Паять я не люблю но умею -- лучше если это будет именно конструктор.
К которому можно будет докупать детальки и превратить его хоть в вертолёт -- но должно ездить и бибикать из коробки (управляясь смартфоном).

Программирование.

Мальчик освоил scratch. Это графический интерфейс, программа создается перетаскиванием блоков мышкой.

Хотелось бы сохранить эту возможность на первом этапе.

Потом, понятно, нужно переходить на текстовые файлы.
Если там будет Python -- это плюс.
Какой-то специфический язык -- не беда.
Есть возможность дописывать на С близко к железу -- плюс, я умею:)

Итог:

Мне нужно выбрать платформу.

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

Открытую -- чтобы можно было докупать детальки и создавать новые поделки. Как в детском конструкторе с гайками и болтиками, только еще и сенсоры-моторчики. В перспективе компас и GPS. WiFi и всё такое.

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

Завершение.

Коллеги. Я полный чайник в робототехнике для детей.
Надеюсь, вы мне подскажите годные варианты.
Цена особой роли не играет -- было бы удобно

среда, 2 марта 2016 г.

Разница менталитетов и национальных деловых культур

Увидел интересную статью:
Разница менталитетов и национальных деловых культур

Кажется, автор попал в точку.

По опыту работы могу сказать: да, так и есть. "Наши" заморочки отличаюстся от американских. Это нужно знать и учитывать.

Читайте и удивляйтесь.

суббота, 16 января 2016 г.

Слайды по py.test

Сегодня был Kyiv.py #17, как обычно было круто и интересно.

С тезисами Алексея Поправки на тему "почему Фласк плохой" согласен.

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

Те, кто с этим несогласен -- просто привыкли :) и научились обходить самые неприятные моменты используя техники, не показанные в flask tutorial.

Я рассказывал о py.test.

Fixtures и разные трюки с pytest hooks.

Презентация -- http://asvetlov.github.io/pytest-slides/