Изменения

Перейти к: навигация, поиск

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

25 112 байтов добавлено, 12:11, 30 октября 2013
Новая страница: «* Сайт: http://addconf.ru/add_2011 * Место проведения: Санкт-Петербург, гостиница «Карелия» * Время про…»
* Сайт: http://addconf.ru/add_2011
* Место проведения: Санкт-Петербург, гостиница «Карелия»
* Время проведения: 29-30 апреля 2011

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

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

День первый я слушал и мигрировал между залами нормально, а вот второй частично прошёл мимо меня, потому что:
* Пилил свой «блиц» доклад, получившийся не совсем блиц (или совсем не блиц) [http://yourcmc.ru/wiki/Архитектура_MediaWiki про архитектуру MediaWiki] с рассказом под длинный-длинный скроллящийся список, потому что в последний момент было уже не до презентации.
* Уже в 18:00 надо было уходить, в 19:45 на Сапсан, а до вокзала ещё доехать надо.

== День первый ==

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

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

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

=== Processing и Fluxus ===

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

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

Аудитория, по ходу, в итоге вообще не особо вкурила, зачем он нужен, а всё потому, что как раз этому надо и было уделить пристальное внимание — например, объяснить, что такое [[rupedia:Демосцена|Демосцена]]. Особенно в части Intro, когда есть от силы 64кб пространства, а в него надо упихнуть красивый видеоряд и музыку, и чтобы это всё и быстро вертелось, и красиво сочеталось. Вообще Fluxus позиционируется также для прототипирования игр (тут тоже было непонимание в глазах — типа нахрен это надо, когда есть готовые коммерческие движки), но просто основная фишка Fluxusа — это ФАН и это развивающийся продукт, а не готовый движок для игры. По мне, ещё надо было хотя бы кратко показать [http://www.pawfal.org/fluxus/projects-using-fluxus/ стандартные демо-ролики] и сделать обзор возможностей, а не пытаться настрочить тривиальности в режиме лайв-кодинга.
<hr />
[[Участник:GlebTarasov|GlebTarasov]] 20:15, 4 мая 2011 (MSD) Про эти демосцены была [http://www.afisha.ru/article/8612/ выставка] в Гараже. Выставка, состоящая из волпейперов, полный отстой)

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

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

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

Ещё один макофил, рассказ про дизайн программки под айфон. Ясно что используется куча разного софта (А'''б'''о'''д'''е и не только), хотя местами даже бесплатного ([http://sketchup.google.com/ 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 ===

А не было их. Вадим Макеев ([http://pepelsbey.net/ pepelsbey]) то ли заболел, то ли испугался, что его порвут озлобленные количеством багов пользователи Оперы (типа меня). Баги типа:
* Во ВСЕХ билдах Оперы под Linux новее 10.63 разломаны настройки шрифтов — либо они вообще не учитываются, либо учитываются, только если их передёргивать каждый раз при старте браузера
* [http://vmx.yourcmc.ru/var/slow-opera-10.6/slow-opera.htm Странные Баги с зависанием (скринкаст)].
* Отсутствие публичного баг-трекера и какой-либо реакции на баг-репорты в комментах к их блогу
Поменьше бы им писать, а побольше тестить.

== День второй ==

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

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

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

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

[[Категория:Отчёты о конференциях]]

Навигация