четверг, 30 сентября 2010 г.

ADD отзыв от Максима Цепкова

Конференция Application Developer Days 2010 проходила 23-24.09 в Ярославле. Общее впечатление - конференция удалась. Она живая, было интересное общение, были доклады на которых я узнавал новое. И очень существенно - были доклады, натолкнувшие на размышления и новые мысли, которые дальше буду обдумывать, обсуждать и как-то применять в работе, и это - несмотря на то, что в целом поле деятельности участников конференции и особенно докладчиков с сегментом работы нашей компании пересекается слабо. А еще конференция действительно преимущественно разработческая, а не менеджерско-тестировочная, и это - хорошо. Так что большое спасибо организаторам конференции и, особено, Стасу за отбор докладов.
И хочется отметить отдельные доклады, которые запомнились. Не все из них слушал полностью.
  • Константин Кичинский. Прототипирование приложений с Expression Blend + SketchFlow. Может быть, доклад и не интересен для знакомых с этими инструментами, но именно на нем мне пришла мысль о сфере возможного применения у нас в компании - макет на псевдореальных данных, который можно посмотреть на мониторах с разным разрешением и разными фонтами - чтобы все это приемлемо влезало на экран. И чтобы накидать формы за 2-4 часа. Спасибо докладчику за live coding, в котором все это было показано. И спасибо Сергею Пугачеву, у которого был доклад вечером на близкую тему и с которым мы обсуждали детали инструмента (Константина я не успел поймать для разговора).
  • Андрей Майоров. Об удобстве иерархических структур данных. Описана интересная конструкция, сформулированная как архитектурный шаблон, используемый для приличного класса приложений. У них есть фреймворк для реализации этого под web, но доклад был именно об архитектуре. Мне она показалась интересной, у нас в некоторых системах был реализован частный вариант, а другие системы, на мой взгляд, оказались бы лучше при использовании идей этого архитектурного шаблона. Ну и в будущем буду держать этот шаблон в голове при проектировании новых систем. За что спасибо докладчику, надеюсь мы продолжим общение и сможем обмениваться опытом.
  • Антон Овчинников. Деньги и внутренние часы разработчика. Рассказ не теоретиков, а практиков об управлении компанией с применением методик, регламентов и нормативов. Весьма высокого уровня. Этим и интересен, а некоторые мысли могут быть применимы у нас. Мне слушать доклад было очень интересно.
  • Круглый стол SQL/NoSQL. Хотя с точки зрения концепций верхнего уровня ничего нового не узнал, возникло несколько частных идей по конкретным решениям, навеянных обсуждениями - по хранению разнородных атрибутов, ведению лога. За что спасибо участникам обсуждения.
  • Андрей Аксенов. Как прекратить писать. В докладе эмоционально рассмотрено множество известных граблей. И это у меня вызывает рефлексию по поводу собственных неправильных действий и таким образом стимулирует меняться к лучшему. Понятно, что у некоторых людей доклад может вызвать раздражение - зачем рассказывать об известных граблях. Но периодическое повторение как раз помогает. Так что - спасибо докладчику.
  • Олег Аксенов. Адаптивная архитектура. Предмет доклада очень близок к моей деятельности - речь шла про разнообразные шаблоны приложений, с различными примерами. Но основная мысль доклада, что архитектура может быть очень разной, решение может определяться как общими принципами, так и ситуацией - сроками, персоналом. Для меня эта мысль достаточно очевидна. И связанные мысли, про итеративность архитектуры - тоже понятны. Практики у них близки к нашим, но не раскрывались настолько детально, чтобы можно было критично сопоставить. В целом было интересно.
  • Андрей Бибичев. Мастер-класс Domain-Driven Design. Реально был на фрагменте, когда Андрей говорил об общих положениях, хотя заходил и раньше, в процессе. Шаблоны мне достаточно известны, так как многое вынесено из работы внутри компании. Но в мастер-классе они позиционированы в контексте мировых представлений и это интересно.
  • Евгений Кирпичёв. Многопоточное программирование. Много интересных проблем и шаблонов их решения. А еще после доклада мы обсудили, что такое монада, и как linq связан с функциональным програмированием. За что докладчику - отдельное спасибо.
  • Дмитрий Завалишин. Фантом-ОС. Об этом интересном проекте знал раньше, сейчас актуализировал для себя текущее состояние.
  • Елена Сагалаева. Искусственный интеллект в играх и C++0x. Узнал много интересного для себя по этим областям. Доклады - очень живые и это прекрасно.
  • Олег Царев, Кирилл Коринский. Сравнительный анализ хранилищ данных. К сожалению, это было разочарование конференции. Тема хранилищ даных мне близка и, собственно, сначала я пошел именно на этот доклад, а потом ужшел на параллельный - потому что шли какие-то примеры структур, которые очевидно не проходят по объему хранимых данных, не было сравнительного анализа, а плотность информационного потока была очень низкая. При этом, судя по круглому столу, докладчикам есть что сказать. Просто не получилось. Обидно.
О круглых столах стоит сказать отдельно. Все-таки их надо жестче модерировать. Потому что по многим вопросам от отдельных участников был активно повторяющийся негатив в стиле «X плохо потому что не дает решения для Y». В одних случаях это было актуально, в других - относилось к устаревшим версиям, с которыми человек имел дело. Естественно, это актуальная информация, однако относительно часто подразумевался вывод - "а поэтому X не стоит обсуждать", поэтому тезис повторялся при почти каждом упоминании X уже в других аспектах. А это - мешало пойти дальше. В качестве позитивной идеи - наглядно фиксировать тезисы, с которыми участники согласились и дальше не давать повторяться, направляя дискуссию вперед.
Увы, не все интересные смог послушать из-за пересечений по времени. И местами я сознательно выбирал новых, неизвестных докладчиков как шанс пообщаться и завязать контакты. Поэтому на доклады Стаса Фомина и других сотрудников CUSTIS (благо есть информационный обмен внутри), а также докладов Андрея Бибичева и круглого стола Java vs C# я не пошел - я решил посмотреть презентацию, а вопросы всегда смогу обсудить. Поэтому отзывов у меня нет.

ADD отзыв от Кирилла Коринского

Микро-отзыв о конференции (именно орг. составляющей).

1) Не равномерные слушатели (по уровню) и их мало. Помещение расчитанно на больше людей, из-за этого создавалось ощущение пустоты.
2) Было три зала. В зале A был унылый проектор и не видно, в зале B было просто жарко и сложно находиться + размер. В зале C читать что-то было не возможно. Для круглых столов он был идеален, но нужен был бы рефери с выключателем микрофона.
3) По залу надо пускать микрофон для вопросов.
4) Навигации по помещению не было. Лучше было бы вложить в раздаточную информацию бумажку с картой.
5) Еда. Вариант кафе наверное был не плох, но формат шведский стол, где люди ходят и общаются на интересные темы был бы лучше.
6) Дорога. Я ехал из питера и был не очень счастлив. Те, кто ехал с Москвы, были тоже не очень счастливы.
7) Цена. Конференция реально дорогая. Если сравнивать ее с бунинским хайлоадом, то она проигрывает. Разница в цене минимальна (13 и 15 тысяч рублей), и цена была не совсем понятна (в случае highload приглашают именитых людей + она в Москве)

ADD отзыв от Константина Кичинского

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

Это также позволило заранее начать привлекать к конференции большое внимание и подогревать интерес, во всяком случае, по моим впечатлениям о ней «шумели» больше, чем о других конференциях для разработчиков.

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

В программе есть люди как весьма известные в определенных кругах, так и менее известные, доклады разного уровня сложности и интересности. Местами проскакивает то, что можно отнести скорее к категории Coding4Fun, чем к реальной практике.

Тем не менее, это конференция именно для разработчиков, а тематика в значительной степени затрагивает различные «модные» или нишевые направления: wiki, AR, erlang, conflux, trike, nosql и т.д. (один фантом-ос Завалишина чего стоит!). По моим впечатлениям это полезно даже не столько «прокачиванием скиллов» в каком-то направлении, сколько расширением сознания — узнать, а чего вообще в мире творится.

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

Участники
Прежде всего, конференция платная, что само по себе задает некоторую планку, причем скорее в позитивном смысле. Но в то же время, у меня было впечатление, что было заметное количество студентов из ярославских вузов.

В первый день было, думаю, около 150-200 человек, во всяком случае большой зал на открытии не выглядел сильно полным, хотя маленькие залы на секциях забивались почти полностью, что несомненно приятно J

Как это характерно для большинства конференций, большинство участников — местные. Хотя, были люди из Москвы, Санкт-Петербурга и, возможно, других городов (это не считая докладчиков).

Место проведения и логистика
Конференция проходила в Ярославле, что само по себе накладывает некоторые ограничения. Одна из проблем Ярославля с точки хрения привлечения участников, к примеру, из Москвы — слишком близко или недостаточно далеко. Как было сказано, Москва — это большой город недалеко от Ярославля J Поезд едет всего 4 часа, соответственно, ты приезжаешь, либо в 4 утра, либо в 12 днем, либо в 20 вечером, либо около полуночи. Обратно примерно также.

Конференция проходила в ДК «Железнодорожника», который удачно расположен прямо на площади вокзала.

Организаторы заблаговременно подготовили карту с местом проведения и ближайшими гостиницами (и их контактами). Впрочем, тут так сложилось, что в эти же дни в Ярославле проходили две другие не it-конференции, поэтому мест в гостиницах не было. Правда, организаторы предупреждали участников об этом заранее.

(Еще один интересный момент — на практике оказалось, что в Ярославле два вокзала и разные поезда приходят на разные.)

В самом ДК кормили пирожками, кофем, чаем и водой + отдельно обед.

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

Большой проблемой были маленькие экраны, особенно в случае демонстрации кода (да, не все знают про ZoomIt) и особенно в большом зале. Отчасти компенсировалось интересностью самого рассказа докладчика.

За временем следили в пределах слота, но не очень четко в течение доклада. Фактически, расписание говорило о часовых слотах без перерывов, хотя в теории предполагались 45мин + 15мин на QA и смену докладчика. Многие захватывали эти 15 минут на доклад ( я тоже).

Также было несколько круглых столов с обсуждениями (не видел, но по отзывам в твиттере довольно интересно).

Твиттер использовался, но не очень активно. Интернет был и очень хороший, но было мало розеток ;)

ADD отзыв от Андрея Козлова

Если бы не настойчивые приглашения Андрея Майорова (за что ему отдельное спасибо), вряд ли бы я поехал на эту конференцию. Причины меркантильны - большинство докладов имеют довольно далекие от моего профиля тематики, а цены не маленькие. Но Андрей сделал мне предложение, от которого я не смог отказаться. И не пожалел. Если до конференции я скептически относился к идее слушать "не нужные" доклады в сферах, где никогда не ступала и, скорее всего, не ступит моя нога, то на деле два дня пролетели как "на духу". Докладчики, видимо догадываясь, что большинство в зале "не в теме", подавали материал в виде некоего обзора, введения, рассказа о той или иной области программирования. И это оказалось именно то, что надо. При этом большинство докладов были сделаны с изрядной долей юмора.
 
Вообще доклады (во всяком случае те, которые я посетил) можно разделить на три группы.
Первая группа - доклады для "тех кто в курсе". Самые неинтересные доклады - непосвященному их слушать было тяжело.
- "Сравнительный анализ хранилищ данных" Олега Царева и Кирилла Коринского - сам доклад, как мне показалось должен был по идее попасть во вторую, а может и в первую группу, но способ подачи материала был скучноват, сух и слишком медленный.
- "Предупреждение ошибок программиста с помощью статического анализа кода" Алексея Алексеева и Николая Гребнева - слушать доклад "с нуля" было очень сложно. Только в самом конце доклада я понял о чем идет разговор. Идею в конце концов понял. Возможно, после просмотра видео, пойму и детали.
 
Вторая, наоборот - общепросветительная, предназначенная для любого человека интересующегося компьютерами и всем, что с ними связано. К таким докладам можно отнести:
- "На пороге дополненной реальности" Андрея Бибичева - этот доклад вообще можно показывать по телевизору как общеобразовательную программу;
- "3D графика на трех пальцах" Андрея Аксенова - хотя ничего нового я не услышал, но доклад был сделан живо, интересно;
- "Искусственный интеллект в играх" Елены Салагаевой - я бы заставил этот доклад послушать всем любителям компьютерных игр :).
- "Об удобствах иерархических структур" Андрея Майоров - на мой взгляд, доклад для студентов. Но я был удивлен возникновением небольшой полемики.
- "Как стать героем" Якова Сироткина - честно, вообще не понял о чем доклад.
- "Как прекратить писать" Андрея Аксенова - завершающий конференцию, расслабляющий доклад ни о чем.
 
Третья группа - вводные в тему. Эти доклады были самыми интересными, поскольку именно на них можно было получить максимум информации как начинающему программисту, так и тем, кто никогда этой темы не касался.
- "Разработка видеохостинга на Erlang" Максима Лапшина - ранее краем уха слышал об этом языке, но "был не в теме". После доклада стало ясно что это за зверь и с чем его едят.
- "Apache Hadoop" Владимира Климонтовича - до конференции ничего не слышал о Hadoop. Получил достаточно полное представление что это такое и как его используют.
- "HTML5 и IE9" Михаила Черномордикова - на IE махнул рукой уже достаточно давно, еще когда он был 6 версии - дебажить скрипты и получать нормальную информацию об ошибкам с его помощью было невозможно. Перешел на мозиллу. Но этот доклад, возможно, вернет меня в стан любителей IE :).
- "С++0X" Елены Салагаевой - доклад скорее познавательный, чем практический.
- "Разработка для Windows Phone 7" Михаила Черномордикова
- "Как начать разрабатывать для iPhone" Никиты Фролова - Последние два доклада полностью закрыли для меня вопрос - что я тут делаю. Как раз накануне поездки, начальник сказал мне, что бы я собирал информацию по программированию телефонов - в его ближайших планах был перевод мультимедиа-энциклопедий на платформу мобильных систем. И тут эти два доклада - как по заказу. За 2 часа времени я получил качественной информации по интересующему меня вопросу больше, чем за неделю лазаний по интернету.
 
В целом конференция удалась. С нетерпением жду обещанного видео.

ADD отзыв от Дениса Гладких

Оригинал отзыва http://outcoldman.ru/ru/blog/show/244
Если вкратце – это было незабываемо! Конференция проходила в два дня в Ярославле 23-24 сентября (четверг и пятницу) – может быть, эти даты служат причиной, почему многие кто “хотел” не попали на конференцию, все-таки два рабочих дня. По мне так, ну и хорошо, нам больше пирожков досталось.
Давайте о главном, о докладах. Столько ненужной и неполезной мне на данный момент информации я не получал никогда, но в то же время столько интересной информации я тоже не получил никогда (кто знает, может, пригодятся мне когда-нибудь эти знания). Именно так можно охарактеризовать конференцию. Темы докладов были настолько разрозненные, что иногда просто было сложно переключаться. Люди уже просто терялись, было два доклада с одинаковым набором слов “Статический анализатор кода”, один в первый день, другой во второй день. И тот народ, который был на первом докладе, во второй день мне явно говорил – “неее, туда мы не пойдем, нас там, в прошлый раз загрузили этим анализатором”, и благо я объяснил сомневающемуся народу, что доклад будет совсем не про то, что тема-то совершенно другая. 
Главное, что я получил с этой конференции – это новые знакомства. Столько новых лиц, интересных личностей. Я наконец-то увидел кто это - Алёна C++. Кстати, ее доклад, раскрывающий простые принципы разработки AI в компьютерных играх – неописуемо интересный. Про каждый доклад, на котором я был, мне писать не хочется, каждый был в той или иной мере интересным и познавательным, посмотрите просто в твиттере тред с #ADD2010 и вы все поймете, ну и само собой про каждый доклад можно было бы немного понудить, вроде: это очевидно, а тут можно было остановиться и т.п.. После мероприятий в оба дня были небольшие afterparty, на которых очень хорошо пообщались с докладчиками и организаторами конференции. Знаете, так и хочется перечислить все доклады, на которых я был, поблагодарить каждого, не обойти стороной одного очень эксцентричного человека (думаю тут ясно про кого я), но я все-таки не буду вас нагружать этим. Попробуйте приехать на следующую такую конференцию, пока правда не понятно где она будет и когда именно. Я чуть-чуть застал это обсуждение, но в то afterparty, понятное дело, точного решения пока выявлено не было.
Теперь собственно про мой доклад. Мне предстояло биться за аудиторию с Мишей Черномордиковым, немного опасался, что ко мне может вообще никто не прийти на доклад с темой “Silverlight/WPF: возврат от паттерна MVVM to MVP”, опасения не оправдались – народ был, наверняка не столько, как было у Миши, но мне хватило аудитории. После доклада подарил подписку MSDN Ultimate одному из слушателей, ну и вопросов было предостаточно, что очень порадовало – это все-таки самая весомая оценка для меня. И простит меня Стас Фомин, который написал чудо программку, которая записывала все доклады, и который объяснял мне как этой программкой пользоваться, я тупо забыл включить запись. Саму презентацию я выложил Add2010 - Silverlight/WPF: MVP&MVVM, но больше у меня было, конечно же, слов, чем слайдов. Запись выступления будет, но вот последние 10 минут, где я знакомлю с примером – не знаю в каком качестве будут. Если есть желающие – могу безвозмездно рассчитаться с вами в виде LiveMeeting с прочтением полностью моего доклада.
Следующий абзац раньше был в самом верху моего отзыва, но потом понял, что не о том я пишу, это же была конференция, а не в пирожковую мы ходили, организаторы молодцы бесспорно, но нужно сначала было поговорить о докладчиках.
Вроде как, ходила информация, что на конференции в целом примерно было 250 уников. Из них приглашенных 50 студентов, которых не кормили обедом, но никто не запрещал им питаться пирожками, которых было просто в избытке. Как кто-то написал у себя в отзыве о конференции: кормили на обеде мало, хорошо что можно было дозаправляться пирожками. Вообще, я понял, что раньше я неправильно ставил высокие оценки за организацию мероприятий. На ADD2010: у нас был работающий WiFi, который справлялся без проблем с нагрузкой, даже умудрялись публиковать в онлайн видеопоток с конференции (первый кто это сделал был@force_net) – это плюс D-Link. Первый час, правда, были накладки, поставили сначала не очень хорошее оборудование, но потом быстро исправились. Второй плюс на конференции было то, что везде были пирожки, чай, кофе, и даже борды, на которых можно было что-то порисовать и обсудить какую-нибудь идею (кстати, ими пользовались!). Последние слова насчет пирожков: не нужно было ждать кофе брейков, следить за временем, когда пирожки еще не доели, они были всегда – не нравится доклад или докладчик, хочется поболтать – иди пожуй пирожков и посиди в интернете. Были конечно и мелочи, но тут вина не организаторов, а нашей провинции, компания которая занималась едой и не думали, что нужно расставить мусорки, из-за чего бутылки от воды к концу дня валялись везде.
Спасибо организаторам и докладчикам!

ADD отзыв от Сергея Прохорова

Оригинал отзыва http://seriyps.ru/blog/2010/09/29/otchet-o-konferencii-add2010-v-yaroslavle/

Побывал 23-24 сентября на конференции Application developer days в Ярославле. Вот решил написать краткий отчет. Сперва об организационных моментах.

Организация

В целом организация неплохая. Неудобно было только то, что добираться в Ярославль к началу конференции было практически не на чем (не считая собственного транспорта). Поэтому пришлось выезжать за день до начала конференции. С жильем решили не выпендриваться и поселились в Профилактории Железнодорожник, который расположен в пяти минутах ходьбы от места проведения конференции и ЖД вокзала (и в 2-х минутах от кладбища).
Само мероприятие проходило в ДК Железнодорожник.
Профилакторий «Железнодорожник»ДК «Железнодорожник»
ДК изнутри. Холл перед секцией АДК изнутри. Холл перед секцией А

Доклады

Сама по себе конференция общего профиля, т.е. не тематическая. Просто посвящена программированию и программистам. Доклады шли в три потока, соответственно по секциям A, B и C. Зал секции A раза в 3 больше других, в нем предполагается проводить доклады, на которые придет больше всего слушателей (почему-то все время был заполнен процентов на 10-20). Секция B — секция для докладов с аудиторией поменьше (тут места практически всегда не хватало) и секция C — это зал совещаний с круглым столом, здесь читали некоторые доклады и проводили непосредственно круглые столы.
С программой конференции можно ознакомиться по ссылке http://it-conf.ru/ru/content/331.htm

День первый

После церемонии открытия конференции и отпаивания кофе с пирожками, первый доклад на который мы решили пойти:

Стас Фомин, «Золотая середина. Открытые системы поддержки разработки»

Вообще, докладчик довольно примечательный, эмоциональный. Для иллюстрации доклада использовал не презентацию PP а какие-то Mind Maps, было немного непривычно.
Рассматривал варианты выбора систем поддержки разработки (багтрекеры, Wiki, VCS). Противопоставлялись коммерческие системы и открытые. Плюсы коммерческих систем — коммерческая поддержка и, как правило, более широкий функционал, у открытых — открытый код и возможность расширять и дописывать системы самостоятельно.
Так же обсуждался выбор между интегрированными системами — комбайн «все в одном», когда и Wiki и трекер и прочие компоненты это один проект (такие как Redmine, Trac и т.п.) и специализированные системы собранные и собственноручно склееные из отдельных компонентов. В первом варианте указывают на то, что компоненты такого «комбайна» будут уступать по функционалу специализированным решениям (Wiki редмайна будет уступать Mediawiki а трекер BugZill-е). Таким образом докладчик высказался в пользу последнего варианта, рассказал как в своей компании они связывали MediaWiki, BugZilla и SVN, сказал, что эту связку они планируют выложить на SourceForge в свободный доступ.
От себя/вывод: я все же считаю, что объем работы по интеграции отдельных систем будет довольно большой и оправдан только для действительно крупных команд. Лично меня Redmine устраивает абсолютно всем.

Олег царев, Кирилл Коринский, «Сравнительный анализ хранилищ данных»

Выступление примечательно тем, что его читают два докладчика (когда по очереди, когда одновременно).
Начали с оценки требований к серверу на котором может храниться база графа друзей на FaceBook, Vkontakte и Мой мир. Пришли к выводу, что на одном сервере такая база не сможет храниться физически из-за ограничений на пропускную способность RAM, соответственно не обойтись без распределения БД… и через несколько минут кто-то из слушателей сообщил, что только что написал на коленке программу-эмулятор, прогнал ее и получил результат в 200 раз отличающийся от результатов докладчика. Забавно.
Далее лично я (как, думаю и все остальные) ожидали какого-то реального сравнительного обзора существующих решений хранилищ данных, холиваров SQL/NoSQL, рекомендаций в каких случаях какую БД стоит использовать, но на самом деле я даже не понял, что происходило на второй части доклада — докладчики постоянно друг друга перебивали, немного обсудили CAP теорему, толком не рассмотрели ни одной БД и пришли к выводу, что « серебрянной пули нет, для каждой проблемы нужно подбирать свое решение». Привет Капитану Очевидность ((.
От себя/вывод: для меня доклад запомнился как «разочарование конференции». Все-таки ожидал какого-то практического обзора, опыта внедрения, конкретики короче,а получил абстрактного коня в вакууме и вывод от КО. К тому же докладчики постоянно друг друга перебивали, что только еще больше портило впечатление. Все надежды на круглый стол SQL vs NoSQL…

Круглый стол, «Системы управления версиями»

Первый круглый стол. Обсуждаем системы контроля версий. Вспомнили наиболее популярные сейчас системы: Subversion, GIT, Mercurial, Bazaar и даже коллекции патчей. Обсуджали модели разработки с блокировкой доступа к файлам ( locking) и со слиянием ( merging). Дискуссия завязалась довольно живая, мне даже показалось, что не обошлось без троллинга, т.к. 90% времени говорили 2 или 3 человека.
Насчет merging vs locking: метод с блокировкой неудобен тем, что над файлом одновременно может работать только один человек. Если он вдруг заболеет/уйдет в отпуск и забудет снять блокировку, то доступ к файлу кому-то еще получить будет проблематично. В то же время о merging говорили, что сам процесс слияния довольно сложный и может стать причиной множества багов. Проскользнула мысль, что locking эффективен в команде низкоквалифицированных разработчиков/Junior Developer-ов или студентов, т.к. меньше шанс что-то сломать при слиянии.
Subversion ругали за то, что в нем особенно сильно проявляются проблемы слияния ветвей и что реализовано это в нем крайне примитивно. На этом фоне GIT смотрится гораздо приятнее. Из плюсов Subversion/централизованных VCS — централизованный контроль прав доступа, удобство составления плана релизов и то, что централизованные репозитории не дают разработчикам расслабиться (т.к. все коммиты попадают в центральный репозиторий и за этим процессом может наблюдать начальство). Таким образом Subversion хорош в основном для корпоративных разработок.
Распределенные системы хороши простотой установки и использования, концепцией локальных ветвей и микрокоммитов, более продвинутым слиянием веток, высокой скоростью работы за счет уменьшения работы с сетью и взаимодействия с центральным репозиторием ну и возможность коммитить даже не имея интернета. Из минусов отметили… отсутствие центрального репозитория. Отметили что DVCS лучше подходят для OpenSource и некоммерческой разработки.
Немного касались платформ для разработки. Поговорили о Launchpad, GitHub, GoogleCode.
От себя/вывод: еще раз подтвердилась мысль о том, что использовать Git в качестве основного репозитория в компании не очень удобно, SVN с этой задачей справляется достаточно хорошо. А для своих проектиков Git и другие DVCS — самое то. Хотя на работе я все равно использую git-svn: на рабочем месте использую Git, а потом экспортирую коммиты в корпоративный SVN. Довольно удобно, я уже привык.

Максим Лапшин, «Разработка видеохостинга на Erlang»

Пожалуй этот доклад мне понравился больше всего. Хороший докладчик, рассказывал о разработанном им сервере для потокового вещания аудио/видео ErlyVideo http://erlyvideo.org/ и о языке Erlang в целом.
Erlang — функциональный интерпретируемый язык программирования enterprise уровня с динамической типизацией и простым синтаксисом. Основные преимущества — легковесные независимые потоки/нити, простота создания параллельных программ и поддержка горячего обновления кода. На нем написан самый популярный Jabber сервер ejabberd и еще множество различных хорошо масштабируемых отказоустойчивых сервисов. В частности, докладчик разрабатывал на Erlang бэкенд для лидирующей в рейтинге приложений Вконтакте игры "Лицемер".
Сам видеосервер успешно работает на нескольких видеохостингах и уделывает всех конкурентов по производительности и стабильности.
От себя/вывод: все-таки разрабатывать параллельные и асинхронные программы на объектно ориентированных языках менее эффективно, чем на функциональных. Думаю в ближайшем будущем попробовать поучить Erlang. Заинтересовало. До этого из функциональных ЯП работал только с XSLT и впечатления остались исключительно положительные.

Андрей Аксенов, «3D — графика на трех пальцах»

Андрей Аксенов больше всего прославился как разработчик поискового сервера Sphinx, на этой конференции про Sphinx не прочитал ни одного доклада, зато рассказал об основах 3D графики.
Андрей Аксенов, «3D — графика на трех пальцах»
Основная идея — все улучшения в современных техниках рендеринга представляют из себя микрооптимизации направленные не столько на реалистичность, сколько на улучшение восприятия. « Главное не чтобы было реалистично, главное чтобы было красиво».
От себя/вывод: В вопросах 3D графики разбираюсь слабо, но для общего развития послушать можно.

Алексей Алексеев, Николай Гребнев, «Предупреждение ошибок программиста с помощью статического анализа кода и доменной модели»

Докладчики разрабатывают на C# или .NET с которыми я не знаком, поэтому понимал о чем говорят с трудом. Обсуждали ORM, Linq и еще что-то. Так ничего и не поняв, решил переместиться на параллельный доклад.

Кирилл Коринский, «Информирование о загрузке базовых станций Yota»

К сожалению, когда мы подошли доклад уже заканчивался. Что успел понять: нагрузки в их системе огромные, они написали и внедрили свою InMemory базу данных, которая отлично справляется с возложенными на нее задачами, и за время эксплуатации не было ни одного сбоя. Ну что ж, замечательно. Остается порадоваться.

Елена Сагалаева, «Искусственный интеллект в играх»

Елена Сагалаева ведет довольно популярный блог посвященный разработке на C++ http://alenacpp.blogpost.com/, прочитала доклад о том, как создаются боты в компьютерных играх. Хоть игрушки и не мой профиль, но было довольно интересно.
Елена Сагалаева, «Искусственный интеллект в играх»
Узнал что по настоящему «Искусственный интеллект» – нейронные сети в играх не используются, т.к. это не удобно по ряду причин. Основная — поведение обученной сети довольно трудно менять, поэтому в играх сейчас используют ботов работающих на обычных алгоритмах. Рассказали об алгоритмах поиска оптимального пути бота на карте, об алгоритмах следования за лидером, о приемах применяемых в компьютерных гонках.
Интересный вывод — бота надо сделать таким, чтобы человек у него все же выигрывал. Т.е. бот должен поддаваться, но делать это незаметно.
От себя/вывод: просто довольно интересный обзорный доклад. В принципе получился коротковатый, можно было сделать подлиннее.

День второй

Думали на первую линейку докладов не ходить, но пересилили соблазн. Заинтересовал:

Андрей Карпов, «Современный статический анализ кода»

Андрей Карпов — разработчик статического анализатора кода C++ для 64-битных и многопоточных программ PVS-studio. Много статей писал на Хабре о разработке на 64-битной платформе и параллельном программировании http://habrahabr.ru/search/?q=viva64
Прочитал доклад о современном статическом анализе, о возможностях анализаторов кода, сделал краткий обзор современных анализаторов, приводил примеры нетривиальных ошибок в C++ коде. В целом весьма интересно. Только говорит очень быстро, такой поток слов мозг не всегда успевал обработать))
От себя/вывод: как я понимаю, во все современные IDE встроен статический анализатор, так что его работу как-то не замечаешь и не задумываешься. А ведь без него было бы гораздо тяжелее. Открыл для себя, что статические анализаторы бывают и отдельно от IDE. Надо будет поискать какие решения существуют для PHP, Python, JavaScript. А ведь они помимо поиска ошибок умеют еще и за стилем кода следить (всякие там отступы/табуляции, где ставить открывающую скобку и т.п.) и отслеживать неоптимальные решения.

Владимир Климонтович, «Apache Hadoop»

Здесь рассказали о запатентованном Google алгоритме Map-Reduce и основанной на нем распределенной базе данных Apache Hadoop
Владимир Климонтович, «Apache Hadoop»
Сам алгоритм Map-reduce довольно прост, но чтобы понять всю его мощность и потенциал, надо немного вникнуть. Основное его преимущество — легкость масштабирования. Т.е. написав задачу для обсчета на map-reduce можно запустить ее хоть на одном, хоть на любом другом количестве серверов без изменения кода. Еще интересно было увидеть как SQL запросы выражаются с помощью map-reduce. Жаль что сам map-reduce в докладе был рассмотрен не так подробно — непосвященным было бы трудно понять. Неплохо было бы добавить несколько примеров и картинок и было бы вообще отлично.
Apache Hadoop — нереляционная распределенная база данных основанная на принципе map-reduce. Для хранения своих баз использует собственную распределенную файловую систему. Предназначена для обработки огромных объемов данных на кластерах. На устраиваемом Yahoo соревновании по скоростной сортировке 100GB массива заняла первое место. На практике эта БД применялась в поисковике Yahoo для создания поискового индекса; на last.fm для подсчета рейтинга композиций (чартов) и еще много где. Сам докладчик сказал, что они успешно используют эту БД для анализа (на кластере) логов показов в сети контекстной рекламы, которых накапливается под сотню Гб в сутки.
От себя/вывод: вообще map-reduce довольно интересная технология но, как я понимаю, реальные ее преимущества можно почувствовать только при больших объемах данных и распределенной архитектуре. Так что по мере появления необходимости буду вникать, а пока отложу на будущее. Опять же, процедуры для hadoop пишут на Java, с которой я на Вы.

Круглый стол, «SQL vs NoSQL»

Вот он, долгожданный холивар.
Круглый стол, «SQL vs NoSQL»
Обсуждение было довольно сбивчивым и к какому-то однозначному выводу прийти не смогли. Но все же, как мне показалось, верх одержали реляционные базы данных как более надежные, ынтырпрайзные и привычные. Прежде чем решаться использовать какую-то новую/экзотическую БД нужно 10 раз подумать. В качестве примера вспоминали уволенного начальника отдела разработки digg.com, т.к. под его руководством целый год безуспешно пытались перевести digg на Cassandra.
Вообще, основной аргумент против нереляционных бд была их недопиленность, недостаточная надежность, склонность падать и терять данные.
Довольно часто упоминался Яндекс маркет, т.к. у него довольно сложная структура данных со множеством различных атрибутов товаров, по которым необходимо делать фильтрацию, сортировку и пр., что довольно проблематично реализуется в рамках реляционных SQL БД. Представители Яндекса сознались, что в Маркете действительно используется самописная InMemory база данных.
Андрей Майоров рассказал об успешном использовании XML полей в MSSQL (оказывается по ним можно строить индексы и делать выборки/фильтрации с помощью XPath). XML поля имеются в MSSQL и Oracle.
От себя/вывод: ждем когда допилят нереляционные БД до enterprise уровня, а пока продолжаем использовать старый добрый MySQL/Postgres. Хотя, конечно, в не самых ответственных или очень специфических случаях можно и пробовать прикручивать экзотику, но только если это на самом деле оправдано. Например Redis рекомендуют использовать в качестве менеджера очередей, Hadoop для распределенной обработки больших объемов информации. И еще — создание собственной БД для своего специфического проекта вполне реально и иногда оправдано (на примере Яндекс Маркета и Yota).

Илья Кантор, «Удобная кросс-доменная авторизация»

Илья Кантор — создатель сайта http://javascript.ru. Проводит мастер-классы по JavaScript и основанных на нем технологиях. Рассказал одновременно и как противостоять DDOS атакам, и как организовать кроссдоменную авторизацию и как реализовать персонализацию сайта для незарегистрированных пользователей.
Для отражения DDOS предлагается использовать связку Varnish и Redis. Varnish — это быстрый кеширующий прокси-сервер, позволяющий подключать свои модули, Redis — нереляционная key-value база данных, преимущественно InMemory. Суть трюка в том, что версия сайта для незарегистрированных пользователей (и, соответственно, ботов) загоняется в глубокий кеш Varnish-а, а персональные версии для зарегистрированных пользователей уже генерирует бэкенд. Главная хитрость заключается в том, что авторизация проверяется не на бэкенде, а непосредственно в Varnish. Клиент обращается к Varnish, varnish обращается к Redis (в котором хранятся сессии пользователей) для проверки залогинен ли пользователь. Если да — перенаправляет к бэкенду, если нет — отдает версию из своего кеша. Нагрузка на бэкенд снята, DDOS отражен.
Персонализация достигается за счет хранения сессий и прочих персональных данных на основе сессионной куки в Redis.
А кросс-доменная авторизация работает с использованием мастер-сервера авторизации с которого подключается специальный JavaScript файл, выставляющий авторизационную Cookie. Не все браузеры позволяют выставлять cookie с другого домена, для регулирования этих политик используются P3P HTTP заголовки. Но Safari не всегда доверяет этим заголовкам. В таком случае используется хак с отправкой POST запроса через IFRAME на мастер-домен.
От себя/вывод: технологии довольно интересные и прогрессивные, думаю найдут применение в наших проектах. Насколько я помню, кросс-доменная авторизация используется на vkontakte.ru и vk.com.

Илья Кантор, «Приватности в интернете нет» (секретный доклад)

Доклад не анонсированный в программе конференции, занял половину обеденного времени). Было рассказано о способах идентификации в интернете не только с помощью Cookie. Довольно интересные и неочевидные способы идентификации через комбинации HTTP заголовков браузера, через Flash, Java, HTML5 LocalStorage и прочее.
От себя/вывод: может пригодиться как для защиты от идентификации, так и для отслеживания или надежного «забанивания» пользователя.

Евгений Кирпичев, «Многопоточное программирование»

Рассказали о Линейной темпоральной логике ( LTL), следование которой позволяет писать корректные параллельные программы. Есть анализаторы кода, позволяющие выявлять, используя LTL, потенциальные проблемы в параллельных программах (deadlocks etc.). Рассмотрены подходы и основные паттерны параллельной разработки (семафоры, мьютексы, блокировки). Не обошли стороной и асинхронное программирование. Мне показалось, что многовато математической теории, поэтому не все моменты были понятны.
Далее были рассмотрены возможности реализации параллельных программ на языках программирования Haskell, Erlang, Clojure, F#.
От себя/вывод: все-таки параллельные и асинхронные программы гораздо аккуратнее выглядят и легче пишутся на языках, которые специально предназначены для написания таких программ. Приведенный пример на F# это наглядно подтвердил. Пожалуй, функциональные ЯП для параллельного программирования подходят больше других. Хотя есть и такие паттерны как, например, Deferred, которые позволяют довольно успешно писать параллельные программы на ОО языках без потери читаемости.

Домой

После было еще две линейки докладов, розыгрыши призов и закрытие конференции, но у нас были куплены билеты на поезд, так что на этом месте наше пребывание на конференции заканчивается. Всем спасибо, мы едем домой!

Общие впечатления

Понравилось что вокзал, гостиница и место проведения конференции расположены максимально близко, так что во время обеда успевали дойти до номера и передохнуть. Так же приятно порадовало что нас обеспечивали стабильным WiFi интернетом на протяжении всей конференции. Сам ДК Железнодорожник оказался весьма удачным местом для мероприятия — чистенькие отремонтированные залы, много свободного места, где можно пообщаться, пирожки и чай/кофе в неограниченном количестве. В общем атмосфера была дружелюбной и располагающей к общению.
Теперь негатив. Мне не понравилось то, что конференция была уж очень широкого профиля. Каждый рассказывал о том, о чем хотел. Секции тоже не тематические. На любой секции могли расказывать про БД, потом про Java, после про разработку игр, поэтому приходилось часто бегать из зала в зал.
На круглых столах не понравилось, что не было какого-то плана обсуждений, в результате дискуссия нередко переходила в область флейма на отвлеченные темы.
Еще немного подвел слабенький проектор в секции А — на многих интересных докладах трудно было разглядеть иллюстрации. Мелочь конечно, но отметить стоит.
Далее, обеды были ну совсем никакие. Спасли ситуацию только пирожки с кофе.
В общем и целом считаю, что конференция прошла удачно, но хотелось бы больше тематичности. Спасибо!

вторник, 28 сентября 2010 г.

ADD отзыв от Елены Сагалаевой

Оригинал отчета http://alenacpp.blogspot.com/2010/09/add-2010.html

Итак, 23-24 сентября прошла конференция ADD-2010, на которой я выступала с двумя докладами. Давайте я расскажу как все прошло, начну с себя, любимой.

Первым в расписании стоял доклад "Искусственный интеллект в играх". Доклад прошел бодро, отзывы в целом хорошие. Плохо было видно мой видеоролик, его можно посмотреть здесь. Это видео из библиотеки OpenSteer, поэтому лучше прямо на их сайте смотреть Java-демки.
Была любительская прямая видеотрансляция. А я и не знала, что есть такие сервисы... Ее делал Максим Высоких, она доступна в записи. Там плохо видно и плохо слышно. :-)
Слайды можно посмотреть тут.

Второй доклад - "С++0х" был менее популярен. Отзывы о нем тоже хорошие.
Слайды тут, любительской записи не было.

На всех докладах была профессиональная видеозапись и, честно говоря, я не вижу особого смысла смотреть слайды без видео. Лучше всего подождите видео, я напишу отдельный пост когда оно будет готово. Стас Фомин, это один из организаторов, честно сказал, что не знает когда именно это будет.

Дальше про доклады, на которых я побывала. Поскольку я выступала сама, докладов этих немного.

Доклады
Все началось с того, что я опоздала на доклад Евгения Бурмако, где он на глазах у изумленной публики писал код на C# для CUDA. Интересно с технологической точки зрения, сомнительно с практической. Опять же есть любительская запись. Подробнее можно почитать тут: Conflux: GPGPU для .NET
В зале, где читался этот доклад, было несколько мониторов, никогда такого не видела. Удобно код показывать.

Андрей Карпов читал доклад на тему "Устаревание стандартов кодирования и статический анализ кода". Он представляет разработчиков PVS-Studio, реклама которой висит у меня тут сверху. Начало доклада было несколько затянуто. Рассказывал о типичных ошибках программистов, которые они могут своим анализатором обнаружить. Гордятся свой работой с С++0х. Собираются выпускать бесплатную версию. Приятно было узнать, что в Туле ведутся разработки подобного уровня.

Яков Сироткин, доклад "Как стать героем". Рассказал несколько бородатых шуток, получится веселый доклад ни о чем.

Николай Мациевский, "Лицензии для Open-Source". Интересный доклад, основанный на собственном опыте. Тут было про лицензии вообще, а также про специфику, связанную с российским законодательством. Также была затронута скользкая тема про обходы проблем с лицензированием. Добротный подготовленный рассказ, вызвал бурную дискуссию в зале. Статья по этому докладу: Насколько открыт Open Source.

Пара слов про доклады, на которых мне побывать не удалось. Очень все хвалили доклад Никиты Фролова про iPhone. Ну а я собираюсь смотреть в записи доклады про дополненную реальность.

Организация конференции
Все было сделано по уму.

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

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

WiFi был, ловился везде, работал бесперебойно. Розетки были не только в коридоре, но и даже в залах.

Были флипчарты. Там были флипчарт доклады, фотография как раз с одного такого доклада. Но там постоянно кто-то зависал, не только на докладах.

Был организован обед в соседнем ресторанчике и это очень правильно. Потому что забегаловок где можно поесть в окрестностях ДК было мало. С едой в этом ресторанчике пожадничали. Но столы были накрыты заранее и можно было нормально посидеть и поесть, давки не было.

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

Замечания
Ну давайте придеремся к чему-нибудь.

Быстро стало понятно, что круглый стол без жесткого модерирования превращается в вечеринку троллей.

Туалеты было непросто найти, на это многие жаловались. Я не смогла это сделать без посторонней помощи, мне подсказали.

В конце было затянутое закрытие с вручением призов. Многие уехали к тому моменту, народу было мало.

Размещение. Это общероссийская беда, никто ее не решил. Мне, как докладчику, гостиница была оплачена, это обычная практика. Качество не то чтобы кошмар-кошмар, но цене не соответсвует. Для студентов цены недостижимые просто. Европейцы любят кооперироваться, снимать один номер на двоих. Где-то, по-моему это был QuakeCon, народ спал в спальных мешках прямо в здании конференции. Но, я думаю, такой поворот событий несколько расстроит ДК Железнодорожный :-).

Блокнот в раздаточных материалах был, но был неудобный, с рекламой внутри. Он был мягкий, формат A4, нельзя на коленке в него что-то записывать. Я человек подготовленный, у меня был свой правильный блокнот с собой, я пользовалась им. Программа конференции была напечатана внутри блокнота, это неудобно. На обложку ее лучше вынести. Или отдельно положить.

ADD позиционировалась как конференция на которой специалисты разных специализаций могут узнать чем занимаются другие. Мы с мужем поймали себя на том, что ходим слушать доклады по нашим специализациям. У меня сложилось впечатление, что ADD хорошо подходит для тех, кто хочет сменить специализацию, кто временно сидит без работы. Ну и ADD - идеальное место для студентов. Вы сможете поговорить с самыми разными специалистами и выбрать что-то для себя.

На конференции слышала фразу "У нас тут конечно не Москва...". Это прекрасно, что не Москва. В Москве любая конференция вырождается в конференцию понтов.