Отчет о конференции ADD-2010 - Владислав Иофе
Содержание
- 1 Общее впечатление
- 2 День первый
- 2.1 Что творится на рынке труда в сфере IT
- 2.2 Сравнительный анализ хранилищ данных
- 2.3 На пороге дополненной реальности: к чему готовиться разработчикам
- 2.4 Дополненная реальность через веб-камеру
- 2.5 Conflux: GPGPU для .NET
- 2.6 Адаптивная архитектура
- 2.7 Предупреждение ошибок программиста… Или cis-uni.net под новым соусом
- 2.8 Искусственный интеллект в играх
- 3 День второй
Общее впечатление
Выехали накануне вечером, остановились в Ростове, гостиница была супер и дешево.
Мероприятие проходило в ДК железнодорожников. При регистрации раздали блокноты, программу, ручки.
Большой зал мало приспособлен для проектора, экран маловат, задвинут в глубину сцены — мало что видно. Во втором зале было куча мониторов по периметру «круглого» стола, очень удобно, если успел занять «тепленькое» местечко, а вот с галерки ничего не видать.
Кофе для программистской тусовки было мало.
Гостиница в Ярославле — совок.
В целом — сильно лучше и интереснее, чем SECR-2009.
День первый
Что творится на рынке труда в сфере IT
Рынок IT-вакансии сейчас составляет примерно 2/3 от 2008 года, однако по некоторым направлениям (веб-разработка и IT-управленцы) уже практически восстановился. И у докладчика есть основания предполагать, что до конца текущего года рынок в целом восстановиться до уровня 2008.
В среднем ожидание и предложение зарплат в IT совпадают в Москве, Питере. А вот на периферии разработчики просят столько сколько дают, а вот менеджерам предлагают меньше их запросов.
В докладе было еще много каких-то графиков и цифр и скучных пояснений к ним.
Зачем-то была рассмотрена статистика распространенности языков программирования от европейского исследователя. Пьяному ежу понятно, что в России другое распределение, но вопросов в зале это почему-то не вызвало. Наверное, потому что было слишком скучно. Ну, и не понятно, почему Head Hunter не мог собрать собственную статистику.
Оценка: :-(
Сравнительный анализ хранилищ данных
Тонкий (Царев) и толстый (Коринский) не торопясь, даже сонно по очереди вещали о проблемах хранения данных.
Центральный тезис доклада — универсального хранилища нет. Начали с простого примера: получение списка друзей в социальной сети на примере Facebook, ВКонтакте, еще чего-то и игрушечной соц. сети. Докладчики приводили оптимистические оценки объемов данных матрицы смежности. Из расчета, что среднем один пользователь имеет 150 «друзей» для Facebook’а получилось около 2800 ПБ.
Далее докладчики примерялись к производительности топового сервера, учитывая жуткие технические подробности скорости доступа к оперативной памяти. И пришли к выводу, что такой сервер сможет обработать всего 14 тысяч запросов в сек. А надо 500 млн. Ну, значит, надо замутить распределенную систему… Еще немного порассуждали о четырехугольнике CPU-memory-latency-сложность кода.
Кто-то в зале (кажется, Андрей Аксенов) громко заявил, что докладчики ошиблись на два порядка, и все не так уж плохо.
Затем поговорили о partitioning и перешли к CAP-теореме. Все шло медленно, с подробным объяснением элементарных и не очень вещей.
Доклад был рассчитан на полтора-два часа, и я сбежал послушать Бибичева.
Оценка: нормально, но можно и лучше (динамичнее).
На пороге дополненной реальности: к чему готовиться разработчикам
Раньше была виртуальная реальность: 80 % мира нарисовано и 20 % настоящего. Сейчас наступает время дополненной реальности: подлинный мир чуть-чуть дорисовывается.
Был показан ролик, на котором ребенок в магазине берет коробку с игрушкой (замком, конструктором, …) и подходит к специальному экрану. На экране как в зеркале отражается ребенок с коробкой, а на коробке… собранный замок (конструктор). Ребенок вертит коробку со всех сторон и рассматривает в «зеркале» все подробности. В общем, интереснее смотреть, чем описывать. Вот нашел ролик, не тот, но похож.
- Стас Фомин 16:45, 29 сентября 2010 (UTC): Вот тот ролик
Дополненная реальность используется уже давно: с 1984 пилоты вертолетов Apache используют специальные шлемы с очками, на которые что-там проецируется.
- Стас Фомин 16:45, 29 сентября 2010 (UTC): А здесь описано, к чему это приводило уже тогда.
Если виртуальная реальность была нацелена вывод информации, то дополненная — на ввод. Например, чтобы понять, куда смотрит человек (тот самый пилот Apache), нужно иметь три сенсора: гироскоп, акселерометр и компас. Первые два дополняют друг друга, так как у электронного гироскопа быстро накапливается погрешность.
Чтобы внести долю научности в научно-популярный доклад, Андрей упомянул альфа-бета фильтр и фильтр Калмана, используемые для подавления шумов гироскопа. Хорошо работающий фильтр Калмана вычислительно дорог, поэтому большинство производителей приборов, измеряющих ориентацию в пространстве, использует простой альфа-бета фильтр — главное подобрать параметры.
Еще было рассказано о motion capture. Например, Аватар снимался с помощью маркеров. Актер облепляется маркерами (в том числе и лицо), данные маркеров создают трехмерный «скелет», на который можно нарастить любое «мясо». Есть еще безмаркерный захват. Именно этим занимается компания iπ Soft, в которой сейчас работает Андрей.
Оценка: :) Очень живо и интересно
Дополненная реальность через веб-камеру
Рассматривалась open source библиотека ARToolKit для построение приложений дополненной реальности и её порты на всевозможные языки/платформы. Есть реализации на C#, Flash, Silverlight и пр. Библиотеки воспринимают очень маленькое количество маркеров. Было много демонстраций. Но сам доклад показался невнятным.
Оценка: :-| Невнятно
Conflux: GPGPU для .NET
Энтузиаст Женя (молодой толковый парень с хвостиком) захотел для матричной арифметики на C# поюзать возможности графического процессора от nVidia. Но вот беда: для программирования графических процессоров создан специальных стек CUDA со своим си-подобным языком.
Для решения задачи Женя разработал инфраструктуру C#-ных классов. Простой программист должен всего лишь унаследоваться от нужного класса, реализовать пару методов, и дело в шляпе. На выходе — обычная .NET-сборка. Дальше это сборка дизассемблируется, строиться синтаксическое дерево, которое превращается (ну, если возможно :-) в набор команд CUDA-драйвера.
Путь, конечно, обходной, но по словам докладчика, зато нет затрат на Interop.
Рассматривалась проблема отладки: на графическом процессоре ничего не отладишь, но библиотека имеет специальный режим для выполнения кода на обычном CPU.
Доклад отлично структурирован. Было демо. Глаза у докладичка горят. Ну, ценность у библиотеки чисто исследовательская.
Оценка: :-)
Адаптивная архитектура
Товарищи занимаются заказной разработкой. Основные мысли:
- Не доверяйтесь авторитетному мнению, все равно проверяйте даже непопулярные решения сами.
- Архитектура должна быть итеративной (Continuous design).
- Оценку трудоемкости нового проекта можно/нужно проводить по аналогии со сделанными, но делать новый проект по аналогии совсем не нужно.
- Жесткие рамки «спущенной» архитектуры служат демотиватором для разработчика (хм, смотря для какого).
- После оценки проекта домножает на 1.4 и выкатывает оценку заказчику.
Докладчик спокойный, умный, но скучный. Слайды - как любит Стас: только ключевые слова.
По ходу доклада у аудитории сложилось впечатление, что FogSoft-овцы не боятся кардинально архитектуру по ходу проекта. Это не так: речь шла о том, что не стоит паниковать, если в середине проекта обнаружилось, что у вас не предусмотрена система логирования или разграничения прав.
Оценка: :-|
Предупреждение ошибок программиста… Или cis-uni.net под новым соусом
Речь шла cis-uni.net, но под соусом DDD-фреймворка. Кстати, мне кажется, выигрышный ход. Это вам не еще один какой-то там ORM.
Полностью пересказывать не буду, проще спросить у докладчиков презентацию, да почитать категорию CustIS_Uni.Net: Атрибуты-состояния_CIS-Uni.Net и CISUniNet:Model_Checking.
Сложилось впечатление, что доклад перегружен, Linq там было лишним. Вместо этого стоило четче рассказать про состояния и проверки: у слушателей сложились непонятки по поводу того, какие проверки compile-time, а какие run-time.
Искусственный интеллект в играх
Елена Сагалаева. Организаторы конференции решили не писать, где работает Алена, справедливо решив, что блог известнее.
Для начала Алена честно предупредила, что чем больше узнаешь об играх изнутри, тем неинтереснее потом играть. Так что заядлые игроки имели возможность уйти :)
Какие особенности у ИИ в играх? Вот:
- Цель — развлечь, а не выиграть. Поэтому поддаваться надо, но незаметно.
- Трудно отлаживать
- ИИ — набор разрозненных алгоритмов
Вопреки распространенному мнения, ИИ в играх в большинстве случаев достаточно туп и не использует:
- нейронные сети
- нечеткую логику
- генетические алгоритмы
Есть исключения, но на то они и исключения…
Затем рассказывалось о нечестных приемах, которые, на самом деле, правила:
- Генератор случайных чисел генерирует не совсем случайные числа
- Нельзя оставлять пользователя-гонщика одного. Если пользователь отстает, надо придержать всех и наоборот. Поддаваться надо, но незаметно.
- Подкрутить что-то, пока пользователь отвернулся. Например, вбросить войcка из ниоткуда.
Еще докладчик рассказала об алгоритмах поиска пути, обхода препятствий с примерами из разных игрушек.
Оценка: :-)
День второй
Современный статический анализ кода
С первых слов вспомнил докладчика, он был на SECR 2009. Тогда доклад назывался Ранняя диагностика ошибок в параллельных программах, но общее ощущение, что новый доклад о том же.
В общем, компания разрабатывает статический анализатор кода для C/C++. И в основном рассказывают, какие ошибки умеют ловить на примерах.
Оценка: :-|
Apache Hadoop
Было рассказано о NoSQL-платформе Apache Hadoop. Платформа позволяет отложенно распределенно обрабатывать большие объемы данных. Обработка состоит из двух шагов: Map — представление исходных данных (любых, хоть из текстовых файлов) в виде ключ-значение, и Reduce — обработка, например, агрегирование. Шаги описываются на Java.
Были приведены примеры использования.
Хотя система нестабильна (да, много багов!) и дорога в обслуживании (найди дурака за этим следить на fulltime), даже крупные компании не гнушаются ее использовать (Google, Yahoo, Facebook). Мало того, платформа обросла сопутствующими технологиями. Например, трансляция SQL-запросов в MapReduce-задачи.
Оценка: :)
HTML 5, CSS 3 и новый IE 9
Ээ-э-э… Вышел новый IE 9 бета, и он очень быстрый, и JavaScript на нем исполняется быстрее, чем на Google Chrome.
Оценка: Не верю
Мастер-класс по Domain Driven Design
Андрей Бибичев
Был только на начале, так что особо писать нечего.
C++0x
Текущий стандарт C++ аж 98-го года и давно морально устарел.
Зачем что менять? Вот:
- Сделать язык лучше для системного программирования
- Облегчить обучение языку
Но при этом сохранить обратную совместимость по максимуму.
В марте 2010 вышел draft нового стандарта C++, принятие которого ожидали еще в двухтысячные годы (потому и 0x). Но в стандарт не вошли некоторые ожидаемые вещи, например сборка мусора.
Производители компиляторов не стали дожидаться выхода стандарта и уже частично его поддерживают. В докладе показывались новые возможности языка и поддержка этих возможностей компиляторами GCC 4.5.1, MS VC++ и Intel C++.
Как стать героем
Яков Сироткин, как написано в программе, известный блогер и разработчик
Центральный тезис: «Нельзя разрабатывать свой софт без своих мозгов». Много было про опасные вопросы, которые нельзя задавать начальству. Видать доклад наболел, когда докладчик в очередной раз уволился.
Есть авторская песня. На любителя. А это был авторский доклад. Про что-то свое, вроде и понятное, но…
Оценка: Не понравилось
Как прекратить писать
Андрей Аксенов
Надо было уезжать с двух последних докладов :)
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».
Репликация: База Знаний «Заказных Информ Систем» → «Отчет о конференции ADD-2010 - Владислав Иофе»