ADD-2011: Отчёт Виталия Филиппова

Версия от 15:11, 30 октября 2013; VitaliyFilippov (обсуждение | вклад) (Новая страница: «* Сайт: http://addconf.ru/add_2011 * Место проведения: Санкт-Петербург, гостиница «Карелия» * Время про…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Версия от 15:11, 30 октября 2013; VitaliyFilippov (обсуждение | вклад) (Новая страница: «* Сайт: http://addconf.ru/add_2011 * Место проведения: Санкт-Петербург, гостиница «Карелия» * Время про…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
  • Сайт: http://addconf.ru/add_2011
  • Место проведения: Санкт-Петербург, гостиница «Карелия»
  • Время проведения: 29-30 апреля 2011

Общие слова: за организацию «плюс», местами даже «большой плюс». Конкретные плюсы:

  • Вкусная еда и бутербродики, повсеместно разложенные на столах, в процессе и вне процесса кофе-брейка. Очень удобно. Я, например, оба дня таки не осилил встать к началу, соответственно, пропустил оба завтрака и догонялся бутербродиками.
  • Несколько Йот, разложенных в разных местах, потому что интернет от гостиницы был ужасен — то ли миллион точек доступа на 6-ом канале, забивающих друг друга, то ли просто канал отстойный.
  • Во всех залах всё отлично видно и слышно, потому что один большой, а в двух других стояло по два экрана и проектора, особенно это было актуально для длинного зала-"кишки".
  • Нормальная гостиница, всё отлично с размещением. Даже аэрохоккей в бильярдной был :) взрослый который, где шайба бешено летает, мы в него порубились.

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

День первый я слушал и мигрировал между залами нормально, а вот второй частично прошёл мимо меня, потому что:

  • Пилил свой «блиц» доклад, получившийся не совсем блиц (или совсем не блиц) про архитектуру MediaWiki с рассказом под длинный-длинный скроллящийся список, потому что в последний момент было уже не до презентации.
  • Уже в 18:00 надо было уходить, в 19:45 на Сапсан, а до вокзала ещё доехать надо.

Do you want to try some new features? By joining the beta, you will get access to experimental features, at the risk of encountering bugs and issues.

Ок Нет, спасибо

День первый

Облачная инфраструктура AWS

Добротный рассказ про устройство популярного облака Amazon Web Services с точки зрения его пользователя. Хорошая оговорка была — …вы платите microsoftу… тьфу амазону… Позабавила реализация «невиртуализированных» («настоящих») дисков — они, типа, ненадёжные, и содержимое гробится при перезапуске. А виртуальные, типа, надёжные, но зато медленные, потому что по сети. Есть там и CDN. Есть готовые образы машин, триггеры (чтобы отлавливать ЛОР-эффект, он же хабраэффект), автоскейлинг и так далее.

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

Processing и Fluxus

Незачёт, к сожалению, не потому, что тема плохая, а потому, что рассказана слабо. Докладчик (Антон Котенко, iPark Ventures) слабовато подготовился, выбрал нетривиальную тему и самый сложный формат — live-coding. Ещё у него под убунтой глючило JackAudio и т. п., а он это был не в силах разрулить, в итоге зал, полный вендузятнегов, получил повод для насмешек. А на самом деле это могло бы решиться, если подойти и подготовиться заранее.

Processing’а не было вообще, был Fluxus. Fluxus — это такая среда live-coding’а для 3D графики и функционального языка Racket, выросшего из Scheme (всё — список, куча скобочек и т. п.). Консоль для ввода команд накладывается прямо на 3D-изображение, а само оно рендерится с помощью машины состояний, то есть, очень прикольно, что при внесении изменений они просто плавно «включаются» со следующего кадра без сброса текущего состояния сцены.

Аудитория, по ходу, в итоге вообще не особо вкурила, зачем он нужен, а всё потому, что как раз этому надо и было уделить пристальное внимание — например, объяснить, что такое Демосцена. Особенно в части Intro, когда есть от силы 64кб пространства, а в него надо упихнуть красивый видеоряд и музыку, и чтобы это всё и быстро вертелось, и красиво сочеталось. Вообще Fluxus позиционируется также для прототипирования игр (тут тоже было непонимание в глазах — типа нахрен это надо, когда есть готовые коммерческие движки), но просто основная фишка Fluxusа — это ФАН и это развивающийся продукт, а не готовый движок для игры. По мне, ещё надо было хотя бы кратко показать стандартные демо-ролики и сделать обзор возможностей, а не пытаться настрочить тривиальности в режиме лайв-кодинга.


GlebTarasov 20:15, 4 мая 2011 (MSD) Про эти демосцены была выставка в Гараже. Выставка, состоящая из волпейперов, полный отстой)

Веб-приложения на HTML5, как альтернатива нативным приложениям

Презентация в 14 слайдов из Google Docs, в принципе, просто попытка рассказать о базовых возможностях HTML5, о которых по-моему уже все слышали много раз — аудио-видео, геолокация, оффлайн, WebSQL, Indexed (вот разве что про оффлайн и базы эти было любопытно). А про, скажем, грид (<datagrid>), draggable, menu он не говорил. А под нативными приложениями понимаются в основном приложения для мобилок (и угадайте с трёх раз, каких). Они используют какой-то сервис по заворачиванию HTML5 в нативное приложение, пашет и там, и там. Одно и то же написать нативно и на HTML5 не пробовали, так что сравнения нет. Почему? Потому что выбор такой не вставал — типа я вебщик, нафига мне смотреть в сторону нативного софта. Ну и вывод соответствующий — типа, можно писать, да.

Взаимодействие дизайнера и программиста

Ещё один макофил, рассказ про дизайн программки под айфон. Ясно что используется куча разного софта (Абоде и не только), хотя местами даже бесплатного (Google SketchUp). Были некоторые рекомендации:

  • Дизайн по почте must die, будет длинное и бесполезное обсуждение
  • Самое классное взаимодействие — когда его нет :) когда дизайнер, он же и программист, и он знает минимум одного такого человека
  • Точнее специфицировать и лучше чтобы дизайнер сам использовал то, под что дизайнит. Например экран 320х480, но 20 пикселей — это же строчка сверху! Но это не только к телефонам относится, а также и к сайтам, например, если он не сидит в контактах, то скорее всего пропустит какие-нибудь фишки использования.

Свободные лицензии: улыбнись тому, кто сидит в пруду

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

Ох, блин! Как же я его забыл спросить про его видение «свободного ПО && игр» — того, чего пока нет.

Классификация:

  • Proprietary: ничего нельзя делать, полное г***о.
  • Shareware: можно только распространять, но свободно использовать нельзя, и всё остальное тоже нельзя.
  • Freeware: можно распространять и свободно использовать.
  • Public Domain: типа «отказа» от авторских прав. Свободно, но не обязательно распространять с исходниками, и в части стран «отсутствие прав» не работает.
  • Free/Permissive (BSD, MIT, Apache и т.д): BSD/MIT свободная, но не вирусная (разрешает линковаться с проприетарщиной) и очень кастрированная, не всё чётко регламентирует. Последнее немного исправлено в лицензии Apache.
  • Copyleft (GPL): гарантия свободы. Нельзя распространять, сужая права получателя (например, обязательно по первому требованию давать исходники). Нельзя линковать с проприетарщиной. GPLv3: нельзя тивоизировать, нельзя устраивать патентное преследование. Тивоизация — если кто не знает, это встраивание в устройство, на котором софт должен запускаться, проверки ЭЦП, запрещающей прошивку модифицированного софта. Называется так, потому что первыми до этого додумались TiVo, а сейчас активно пытаются использовать различные производители смартфонов. У-Р-О-Д-Ы. Надо было Торвальдсу в 2006 году перевести-таки ядро Linux под GPLv3. :(. Ещё есть MPL, которая обеспечивает нестрогий копилефт, разрешает линковку с проприетарщиной, но зато из-за каких-то извращений несовместима с GPL.

Заблуждение главное — это «Закрыть, а то сопрут». Позиция «грёбаных менеджеров», которые хотят сесть жопой на своё ПО и рубить бабло. И в конце концов стать ненужными, проиграть на рынке и замедлить его развитие (заодно и снизив свою прибыль). Только они-то этого не понимают. А на самом деле код, который можно, в их терминах, «спереть», мало что значит. Главное — это видение развития, клиентская база, доверие, поддержка, know-how, сервисная модель. Без всего этого ваш код всё равно скорее всего станет никому не нужен.

Был вопрос про VLC в AppStore, ну ха-ха, конечно все ябблофилы ругают автора VLC, потому что он мог и не говорить «вас тут не сидело, не нарушайте GPL», и тогда до поры до времени порт VLC оставался бы в AppStore, но лично моё мнение — правильно сделал. Потому что для ябблофилов хорошая демонстрация того, чем является то, что они так любят. Яббл вообще вон «чёрный экран» и «скруглённые углы» своими патентами считают ;) не пойму я ни их пользователей, ни разработчиков (не пойму, почему они до сих пор есть!)

Технологии улучшения взаимодействия между разработкой и тестированием (реклама)

Адова дрянь, реклама совершенно уродского продукта, когда слышишь слово «бизнес-процессы», уже почти пора валить. Реклама какого-то инструмента. Тьфу.

MongoDB

Не «много», а «монго». (Не дибил, а диби…) =) MongoDB — это NoSQL-база, хранит хеши, ну в смысле вообще объекты с произвольным набором полей/вложенных структур данных (типа JSON). Был на небольшом кусочке, услышал в основном про автоматический шардинг — то есть масштабирование БД на набор серверов. Заключение — ну, оно это умеет и умеет прекрасно.

Будущее ECMAScript

Пришёл в середину, успел послушать про:

  • let (вместо var), кстати, уже есть в SpiderMonkey в 4-ом Firefox’е.
  • Pattern Matching — удобная «распаковка» структур данных.
  • #-функции (sharp-функции). Типа, всё то же самое, но return не пишем (возвращаем а-ля перл последнее вычисленное значение), а this наследуется.
  • Оператор rest (…), то есть переменное количество параметров функций.
  • Модули — то есть «use …», автоматически с учётом зависимостей подключающий библиотеку. Актуально в общем-то скорее для node.js, чем для веба.
  • Всё это будет через пару лет минимум, хотя в альфа-альфа режиме разные вещи то тут, то там появляются.

Вообще забавно наблюдать, как современные языки перемешиваются между собой и Perl’ом. В C# вон тоже что-то похожее происходит. :)

NoSQL-практикум: Промышленная автоматизированая измерительная система на CouchDB

Докладчик — с одной стороны, Капитан Очевидность, видимо не так давно открывший для себя базы данных. Создавайте индексы, смотрите планы запросов. O_o

Но зато рассказал про реализацию системы учёта показаний электросчётчиков на CouchDB — ещё одной NoSQL-базе. CouchDB — это не просто NoSQL-база данных, написанная на Erlang’е, она также содержит внутри себя сервер приложений, который может выполнять javascript, и благодаря этому оно простое и быстрое. Интерфейс к CouchDB — HTTP-запросы (методы GET, PUT, POST, DELETE). Правда, это вам не Mongo и масштабирование — не её сильная сторона — всё масштабирование сводится к мастер-мастер репликации. Но они и не масштабировались, по оценкам им надолго текущей архитектуры хватит.

Кратенько: там есть документы (просто хэш/словарь, какой термин кто больше любит), и дизайн-документы, которые представляют из себя какой-то код, который может, например, что-то агрегировать с помощью map-reduce (получится как бы «view»). Хранит всю историю изменений, вся БД в одном файле, который только растёт вперёд и его нужно время от времени перепаковывать — привет, ACID и MVCC (да, таки оно и есть), PostgreSQL и VACUUM. Есть индексы, правда, их заполнение происходит по требованию и поэтому если накапливается много обновлений — первый запрос будет подтормаживать. Это решается, по-видимому, просто регулярным дёрганьем view по расписанию. Ещё есть простой интерфейс типа «запросить все изменения с момента заданного sequence number», что позволяет легко делать всякие онлайн-обновляемые твиттеры-странички.

Прикольная штука, короче.

Расширения в Opera 11

А не было их. Вадим Макеев (pepelsbey) то ли заболел, то ли испугался, что его порвут озлобленные количеством багов пользователи Оперы (типа меня). Баги типа:

  • Во ВСЕХ билдах Оперы под Linux новее 10.63 разломаны настройки шрифтов — либо они вообще не учитываются, либо учитываются, только если их передёргивать каждый раз при старте браузера
  • Странные Баги с зависанием (скринкаст).
  • Отсутствие публичного баг-трекера и какой-либо реакции на баг-репорты в комментах к их блогу

Поменьше бы им писать, а побольше тестить.

День второй

«70 % чего?» или различные метрики измерения тестового покрытия
Строки кода vs функции; какие подводные камни у каждого подхода; лучше комбинированный; у них в Oracle 70 % строк.
Статический анализ C++ кода
Опять этот лысый мужик, который на каждой конференции под видом чего-то полезного пиарит свой инструмент, который платный и только для Visual Studio. Презентация состояла из примеров ошибок, которые ловит статический анализ, в открытых проектах, и рекомендации «используйте это».
Особенности масштабирования систем планирования и управления поставками
То самое случайное 100 % попадание — компания делает почти то же, что и мы, только круче :) обслуживает крупные западные сети, планирует им поставки с помощью купленных библиотек с алгоритмами. Тоже используют этот дурацкий Oracle, который масштабировать настолько дорого, что проще перейти на MySQL, и кучу Java-серверов приложений, которые как раз добавить дешевле. Собственно, заказчики консервативные и это предпочитают тоже. И объёмы данных у них огромные. И библиотеки прогнозные только под винду.
Автоматизированный ALM
Ещё один рекламщик, на этот раз реклама какого-то инструмента для работы с баг-трекерами (прокся к баг-трекеру — сильно, ага?), который работает через BPEL BPMN и поэтому «сильно гибкий» (не смешите мои подковы).
JDK 7 and Java SE 7
Товарищ из Oracle, а соответственно раньше из Sun, долго общался с залом в режиме дискуссии на тему JDK, и что-то как-то совсем не результативно. Но, в общем-то, lambda-функции они сделать так и не осилили. Снова обещают в будущей версии.

Жалею, что не послушал

Жалею, что не послушал, и буду смотреть видео:

  • (проспал) Language Oriented Programming (LOP) в действии
  • (пилил свой доклад) Оптимизация LAMP-приложения на примере OpenX: разгоняемся до 1000 запросов в секунду
  • (пилил свой доклад) Увеличиваем производительность MySQL в десятки раз используя HandlerSocket