ADD 2010: Отчет Титаренко Константина
На конференцию захватил с собой фотоаппарат-мыльницу, за два дня кое-что нафоткал. Как говорит старая поговорка: лучше один раз увидеть, чем сто раз услышать. Прикрепляю к отчету фотографии мероприятия.
Содержание
- 1 Организация конференции
- 2 Доклады
- 2.1 Что творится на рынке труда в сфере IT?
- 2.2 Сравнительный анализ хранилищ данных
- 2.3 На пороге дополненной реальности: к чему готовиться разработчикам
- 2.4 Дополненная реальность через веб-камеру
- 2.5 Разработка видеохостинга на Erlang
- 2.6 3D-графика на трех пальцах
- 2.7 Как прекратить писать
- 2.8 Предупреждение ошибок программиста с помощью статического анализа кода и доменной модели
- 2.9 Искусственный интеллект в играх
- 2.10 C++0x
- 2.11 Разработка для Windows Phone 7
- 2.12 Тестовая лаборатория для web-приложений
- 2.13 SQL vs. NOSQL
- 2.14 Удобная кросс-доменная авторизация
- 2.15 Как начать разрабатывать для iPhone
- 2.16 Как стать героем
- 3 Картинки
Организация конференции
Конференция проходила в Ярославле в Доме Культуры Железнодорожников, что напротив вокзала Ярославль-Главный. Расположения места проведения конференции удобное, добираться легко как автомобилем, так и поездом. А вот сочетание город-время_проведения были подобраны плохо, для удобства пришлось проделать «финт ушами» и остановиться на ночлег перед первым днем конференции в Ростове Великом, что в 60 км не доезжая Ярославля.
Дом Культуры советский, добротный, на офисы не распроданный. Во дворе-парке маленькая детская железная дорога, к сожалению, не функционирующая. В обычное время в здании шуршат детские кружки, подрастающее поколение получает знания по важным железнодорожным дисциплинам, истории железнодорожного транспорта, а также Северной железной дороги.
В ДК в течение двух дней исправно работал гардероб. Азимут на большой логотип конференции я взял сразу, регистрация для меня прошла быстро и безболезненно. В фойе присутствовал некий экспонат, видимо оставшийся от предыдущего мероприятия. Представитель бронзового партнера бесплатно раздавал тяжелые книжки про RUP и обменивал заполненные анкеты на забавные, но бесполезные гаджеты. В который раз удивляют меня подобные анкеты с вопросами: «какой годовой оборот компании», или «собираетесь ли вы закупать оборудование XXX» и т. п. Насочинял от души (скоро придут).
Открытие прошло довольно быстро, весело, без лишнего трепа непонятных людей из администрации района, города, спонсоров и т. п.
Организаторы конференции трудились непрерывно в течение двух дней: фарцевали майками, значками и прочей атрибутикой. Каждый доклад, представленный на конференции, был исправно зафиксирован профессиональным оператором на профессиональную камеру. Телевидение в перерывах между докладами спешило взять интервью у прогрессивно настроенных участников ADD.
Обеды проходили в забегаловке рядом с ДК, питание там было не супер. Но чай в холле с пирожками и приветливыми представителями организаторов с лихвой компенсировал недостаток калорий.
Гостиница обычная советская, без изысков, вполне подойдет, чтобы переночевать одну ночь.
Доклады
Что творится на рынке труда в сфере IT?
Директор ярославского филиала компании HeadHunter. Был очень заманчивый анонс доклада, на деле же он оказался обычной отпиской спонсора.
На таких данных можно было бы не напрягаясь подготовить что-нибудь поинтереснее. С одной стороны видно, что человек в теме и говорить привык, с другой перед каждым предложением звучало: «а-а-а..». Общий смысл доклада: товарищи, вы все жутко востребованы, рынок растет, не паникуйте. Приводила разную статистику в виде красивых временных диаграмм. В конце была совсем дурацкая шуточная викторина. Тезисы доклада, какие запомнил:
- мы вернулись на докризисный уровень
- 60 % рынка вакансий IT страны сосредоточены в Москве, потому что интернет в регионах еще довольно слаб
- самый емкий сектор IT — разработчики, около 60 %
- статистика популярных языков по версии TIOBE: Net, C, C++, PhP, VB, …
- победитель 2009 года язык Go
Сравнительный анализ хранилищ данных
Выступали вдвоем, друг друга перебивали, спорили, порой казалось, что сейчас подерутся. Слайды были без картинок, без уточнения определений, и вообще слабо понятны сходу. (Кстати, подобными слайдами грешили и другие докладчики на этой конференции. Порой возникало ощущение, что люди просто не пожелали хорошо подготовиться.)
Олег и Кирилл рассказывали об организации данных для соц-сетей на примере организации взаимодействия между участниками сети, рассматривали матрицу смежности и пытались подсчитать стоимость проекта, который эту задачу решит. Получалось, что при любом подходе нужно искать компромисс по трем осям:
- memory, CPU
- latency
- сложность кода
Возникают производные оси:
- бюджет проекта
- сроки
- лимит разработчиков
- аппаратура
- инструменты
Выводы:
- универсальных решений нет
- цель менеджера проекта — найти компромисс, локальный оптимум
- иногда задача неразрешима в заданных условиях
- обычно в итоге приходят к кластеру
Рассматривали партицирование данных:
- горизонтальное-вертикальное
- ручное
- автоматическое
Далее был рассказ про CAP-теорему, на середине которого я сбежал на другой доклад.
На пороге дополненной реальности: к чему готовиться разработчикам
Андрей, как всегда, рассказывал увлекательно: без лишнего загруза, с хорошими примерами и качественной презентацией. Приволок с собой реальные железки, которые тоже демонстрировал. Начал с определений, что такое дополненная реальность. Если виртуальная реальность — это то, что находится на выходе компьютера в виде output-девайсов, то дополненная — на входе в виде input-девайсов. Тема эта довольно новая и интересная, были показаны примеры применения дополненной реальности в настоящей и будущей жизни. Далее прошлись по input-девайсам, в качестве которых выступают специальные сенсоры и видеокамеры.
Сенсоры:
- гироскоп
- акселерометр
- магнитный компас
Видеокамеры:
- Специальные с маркерами: Vicon, OptiTrack
- Структурированный свет: Мелкософтовский стол
- Z-sensor: Natal project, kinect project
- True optical: Organic motion, iPiSoft
Итог
- «Будущее не определено» (C), прогнозируется рост интереса и капитала в отрасли, но до сих пор сомнительна полезность
Дополненная реальность через веб-камеру
У парня были реально прикольные примеры, но подача материала просто никакая. Презентация: текст и веб-ссылки (нерабочие), постоянно переключался в браузер и другие проги, демонстрировал, но мелькание это как-то няпрягало отсутствием гладкости изложения. Рассматривался софт:
- ARToolkit — библиотека Kato для обнаружения квадратных маркеров
- FLARToolkit — дальнейшее развитие, забавный пример на флеше
- SLARToolkit — silverlight
Вывод: квадратные маркеры некрасивы, надо искать что-нибудь другое. На финише демонстрировал интересную распознавалку на основе выделения особых точек — в которых максимальный градиент изменения яркости, называется SURF (Speeded Up Rubust Features). В камеру показывал разные предметы, распознавалка их запоминала и потом могла различать, что ей показывают.
Разработка видеохостинга на Erlang
Презентуха слабая, мелкий текст на белом фоне, но парень в теме, на вопросы из зала отвечал бойко и обстоятельно. Обсуждаемая проблема — веб-сервис видео, ломятся тысячи клиентов, сервак распухает, течет память и т. д. То есть задачи потокового видео сильно отличаются от классического веба. Утверждалось, что решение всех проблем — Erlang. Разделяемая память, перечислимые процессы, удачная инфраструктура для плагинов. В случае ошибки в одном из процессов, тот тихо прибивается следящим процессом, и всем, кому надо, рассылается отчет об убийстве. Обработка ошибок не нужна, так как процессы независимы. По ядрам процессора они хорошо шарятся. Применимость Erlang:
- потоковое видео
- jabber (пример — Yandex)
- банковские сервисы
- online игры
3D-графика на трех пальцах
Рассказывал основы 3D-графики. В презентации в большом количестве присутствовали красивые картинки, но они были совершенно не видны на экране (вывод — для конференций красивую графику в презентуху вставлять бессмысленно). Начальный тезис — весь виртуальный мир состоит из треугольничков. Показывал рисование: задаем сцену, камеру, плоскость камеры, проецируем — получаем изображение. Треугольнички, из которых состоит 3D-модель маленькие, их много, долго обсчитывать. К нашей радости современные видеокарты это умеют делать эффективно. Если поверхность модели гладкая, это плохо, возникает ощущение, что нарисованный объект состоит из пластика. Для реалистичности картинки очень важна неровность поверхностей и освещение. Далее рассматривались алгоритмы освещения:
- ambient/fifuse/specular
- непрямое (отраженное) освещение — в реальном времени считать невозможно
- карта освещения — предварительный обсчет
- PRT — метод динамического освещения
В конце большой пошаговый пример создания реалистичного изображения из HalfLife 2
Как прекратить писать
Второй доклад Андрея был последним для меня на конференции, ничего серьезного я слушать уже не мог, поэтому пошел к Андрею. Доклад был ни о чем — стеб на свободную тему. Автор ввел классификацию программистов:
- задушевник
- теоретик кайфа
- честный тормоз
- эмо-писатель
- непогрешимый
- twisted mind
- вумная вутка
- примадонна-истеричка
- системоид
- полпинка
Расписал всех, чистых типов не бывает — в каждом из нас есть что-то от каждого типа. Дальше была продемонстрирована классификация с udaff.com, и вообще, окончание доклада изобиловало ненормативной лексикой. Видимо, к концу второго дня устали уже все…
Андрей Аксенов
Предупреждение ошибок программиста с помощью статического анализа кода и доменной модели
| Докладывались наши парни, по сути ничего не буду писать, можно их здесь опросить в любое время. По форме. Материал, на котором базировался доклад был очень достойный, чувствовалась реальная работа за плечами. В конце вопросов народ назадавал, как ни у кого другого. Но доклад был не самый зажигательный, чувствовался недостаток опыта у выступающих. Подслушал случайно одного из посетителей конференции на следующий день, про этот доклад он говорил так: «много кода, маленькие буквы, ничего не понятно». |
Искусственный интеллект в играх
У Елены есть свой блог в сети, я его иногда почитываю. В жизни она оказалась выше, стройнее и симпатичнее :) В самом начале доклада у нее что-то не заладилось с презентацией, один из организаторов конференции тут же поспешил ей на помощь. В принципе, каждый из нас когда-нибудь в детстве писал игры, поэтому ничего особо нового она в своем докладе не открыла, но рассказывала интересно. Основная цель игры — проиграть пользователю, но проиграть надо красиво, иначе ему будет неинтересно. Откуда вывод: все эти нейронные сети, нечеткая логика, генетические алгоритмы хороши в науке и в теории, но мало применимы в реальной жизни. Цена их высока, пользы мало. Рассмотрели приемы красивого проигрыша.
- «Генератор случайных чисел с состояниями» — это генератор не совсем случайных чисел, так как люди очень плохо интуитивно оценивают вероятность. Пример Сида Мейера о дизайне игры Цивилизация.
- Проблема «одинокого гонщика» в гонках. В честной игре человек всегда будет ехать один, это неинтересно, должны быть догоняющие и догоняемые. Для решения применяется rubber banding.
- Телепорт (но только когда пользователь отвернулся).
Далее рассматривались честны алгоритмы:
- поиск пути
- сглаживание пути
- следование пути
В конце был показан steering behaviours — стайное поведение.
Елена Сагалаева (она же АленаC++)
C++0x
Второй доклад Елены был о нелегкой доле в современном мире мощнейшего языка C++. Стандарт давно морально устарел и требует доработок, есть большая проблема — обучение и обучаемость языку. Выпуск нового стандарта постоянно откладываются, так как процесс его проработки очень демократичен и занимает много времени. Последний анонс — 2011 год. Сейчас уже ясно, что в нем отказались от сборки мусора и от концепций, урезали потоки. Но разработчикам компиляторов надо как-то жить, они вынуждены реализовывать полезные фичи, не дожидаясь официального выпуска стандарта. Далее рассмотрели несколько фич в разрезе трех компиляторов: GCC 4.5.1, VC++2010, IntelC++ 11, кто и как эти фичи реализовал:
- auto
- списки инициализации
- лямбда-функции
- лямбда-capture
- замыкания
- nullptr
- атрибуты (никем не реализованы)
- long long int
Елена Сагалаева
Разработка для Windows Phone 7
| Обычный рекламный доклад в стиле Microsoft. Парень подготовлен хорошо и слайды были качественные. Рассказывал про новую мобильную платформу, чего в ней будет и как. Понятно, что M$ пытается догнать Apple с ее айпихоном, приходится пыжиться всем. Для разработчиков все с одной стороны хорошо, все новое, поле непаханое, быстро бежим занимать ниши. С другой как-то грустно все, централизованная продажа софта с бесконечными отстегиваниями процентов за каждый пук и т. д. и т. п. Вообще, мне этот доклад сильно напомнил рекламу МММ, а парень Леню Голубкова с указкой у стабильно растущего графика. |
Тестовая лаборатория для web-приложений
Дмитрий Лобасев
Довольно интересный, но узкоспецифичный доклад о построении конкретного решения для тестирования web-приложений. Можно покупать решения для тестирования, но выходит очень дорого, поэтому нужно максимально использовать возможности бесплатного софта (как везде). Какие используем технологии:
- WM Ware Player
- PSTools + bat-файлы
- Apache James
- .Net Framework + NUnit
- Watin + C#
- QA Liber
В итоге с минимальными затратами труда получаем среду автотестирования. Рассказ о том, как все это вместе связать, должен быть немаленький, поэтому пробежались по верхам. Вопросов никто не задавал, так как особой конкретики не было.
SQL vs. NOSQL
Круглый стол
| Чтобы проснуться окончательно, пошел на круглый стол. Занятие это довольно бесполезное, но бодрящее, парни порой серьезно распалялись. Вводная мысль: в России имеется забавный тренд — тянуть руки ко всему, что плохо лежит, или что интересно (имеется в виду NOSQL). Привели пример чувака, которого уволили за то, что он целый год вел контору не туда — переводил продукт с MySQL на Кассандру. Масштабирование и перегруппировка данных — основная задача в процессе роста любого проекта, автоматический это сделать очень дорого, так как важна структура данных, должен делать человек. |
Удобная кросс-доменная авторизация
Илья Кантор, основатель сайта javascript.ru
Илья — товарищ увлеченный, а увлеченных товарищей всегда интересно слушать. Тем более, что докладов вместо одного было целых три:
- DDOS-атаки
- Мультидоменный сайт (заявленная тема)
- Анонимность в Интеренет — «секретный доклад»
Пришлось пожертвовать обедом, чтобы дослушать все до конца.
DDOS-атаки
Это такая штука, когда с сайта запрашивают по 10000 страниц в секунду из разных мест одновременно. Если ваш сайт популярный, а бизнес успешный, то DDOS-атаки неизбежны. Далее рассматривалось несколько решений проблемы с их недостатками. Автор утверждал, что наилучшее решение — это комбинация:
- Varnish — прокси, кэширующий страницы (начальную — самое главное) в памяти
- Redis — NOSQL база данных для хранения авторизованных посетителей
Мультидоменный сайт
Такой сайт организуется в целях SEO, напр. продажа нескольких групп товаров. Как организовать общую авторизацию в таких условиях? Нужно, чтобы пользователь побывал на одном из сайтов, а все другие при этом о нем все узнали. Далее рассказ о том, как правильно ставить cookie, грузить их с сайта-мастера и обходить 3d-party cookie.
Анонимность в Интеренет
Доклад о том, что некоторые пользователи наивно полагают, что они анонимны. Привел целую россыпь технологических приемов отслеживания пользователей, рассказал как и которые из них работают при разных комбинациях сервисов у пользователя. Например, включен CSS, но выключен javascript, и т. п. Для чего все это нужно? Для того, чтобы следить за пользователем, собирать на него статистику и подсовывать ему правильную контекстную рекламу.
Как начать разрабатывать для iPhone
Терперь не могу Apple, сомневался, стоит ли идти на доклад, но в итоге не пожалел. Дело в том, что я за свою жизнь несколько раз довольно плотно сталкивался с различными продуктами от Apple в качестве пользователя и каждый раз неизменно приходил к мысли, что Apple делает не для людей. Успех данной конторы и ее красивых но бесполезных поделок — большая загадка для меня. Очень веселый доклад оказался, Никита вполне адекватно относится и к iPhone и к себе, и тем более к Apple. Основной тезис, который он регулярно повторял: Apple — корпорация зла, в ней всем правят дизайнеры, и жизни разработчикам там нет никакой (см. картинку справа). Показал образ типичного пользователя iPhone — Риз Уизерспун в фильме «Блондинка на юрфаке». (И попал не в бровь! Я ему напомнил, что как раз в этом фильме был кадр, где сидят студенты в аудитории, и у блондинки нашей, единственной на всем потоке, на столе стоит бук от Apple. Такой весь розовый и гламурный.) Рассмотрели кратко средства разработки для iPhone:
- Web Apps — пользователь не отличает реальное приложение от сайта, открытого в браузере на своем телефоне
- iPhone SDK — на Макинтоше от Apple
- Jailbreak — сторонний продукт, сплошной хакинг с запаздывающими библиотеками по отношению к iPhone SDK
Вывод — пользуемся iPhone SDK. Далее прошлись по iPhone SDK подробнее, с примерами кодирования. У Apple свой объектный язык, похожий на C++, но сильно корявый и непривычный. Выход новой версии SDK — всегда большое событие, потому что (вспоминаем основной тезис) раз он новый, то все в нем должно быть по новому: ключевые слова, функции и пр. И так далее все в таком же духе, народ выл в голос. Понравилось его выражение «православный язык C++» и еще запомнился один диалог во время лайфкодинга. Вопрос: а интеллисенс есть? Ответ: есть, только я ему не доверяю.
Как стать героем
Яков Сироткин, участвовал в разработке Яндекс.Деньги
| Малополезный доклад. Яков, с видом умудреного жизнью старца, ходил по сцене и рассказывал всякую банальщину. Нет смысла разрабатывать ПО без своих мозгов. Глядя из Сан-Франциско, разница между Бобруйском и СПб ничтожно мала. Нельзя сделать проект, если в нем заинтересованы только вы, но не тот, кто реально выделяет ресурсы. Формулируйте, что вы делаете и для кого. И т.п. В конце рассмотрели 12 критериев Joel Test. |
Картинки
Тому, кто досмотрел до конца, бонус — еще несколько картинок.
Репликация: База Знаний «Заказных Информ Систем» → «ADD 2010: Отчет Титаренко Константина»
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».