|
Персональные инструменты |
![]() |
||
|
![]() |
![]() ADD 2010: Отчет Глеба ТарасоваМатериал из CustisWiki
Содержание
ВпечатленияНачиналось все неутешительно — проблемы с заездом, гостиницами, обещанное Стасом малое количество народу. Но все это были мелочи. Съездить в Ярославль — отличное дополнение к конференции, съездить на машине намного приятнее, чем на поезде. Идея ехать через Ростов — еще один плюс. В итоге ночевать в Ростове мне понравилось намного больше, причем это еще и в два раза дешевле. Побродить по городам особо не удалось (по часу и там и там), так что решил еще раз съездить на ближайших выходных тем же маршрутом с ночевкой именно в Ростове, уже на погулять. Сама конференция оставила исключительно положительные эмоции. Совсем немного рекламной мишуры в виде Микрософта и IBM-а, которой легко удалось избежать. В остальном все люди достойные и уважаемые, слушать которых полезно и интересно. Хотя для программистской конференции исключительно технических докладов, полезных в работе в первом приближении, было очень мало. Лешин с Колей доклад на этом фоне сильно выделялся. Большинство докладов было либо «научно-популярными», либо «философски-рефлексивными». Я пытался делать какие-то заметки во время прослушивания, пройдусь по ним вкратце. СтасСтас рассказывал свою обычную телегу про Svn + Bugzilla + Wiki. Причем рассказывал не по презентации, а по майндмапу. Смотрелось необычно, но впечатление ухудшали недостатки в инструментах. Проблемы с зумом, скроллингом, видимо не очень удобным трекболом отняли достаточно времени, поэтому на самую сердцевину доклада осталось очень мало времени, и Стас начал рассказывать со скоростью, достойной девушки с большой грудью из телевизора, которая загадывает ребусы. Тематика доклада всем была интересна, плюс еще и Стасовая всем известная манера рассказывать, так что впечатления в любом случае у всех, думаю, остались исключительно положительные. Правда не знаю, что о нашей компании подумают студенты и особо продвинутые гики, после фразы, что Subversion рулит, и не нужно никаких гитов и базаров. Хранилища данныхДумал, что будет интересно про «Sql vs NoSql». Начало было очень жиденькое. Целый час два человека с запинками и перебивая друг друга рассказывали, что Facebook ну никак физически не поместится на одном сервере БД. Очень странно. Всем, кто слушает Радио-Т, давно известно, что любой сайт может поместиться на одном сервере с Internet Information Server, надо его только правильно настроить (ну и MSSQL поставить). Доклад был длинный, на вторую часть я не мог остаться, так как параллельно был доклад Андрея. Возможно, во второй части и было что-то содержательное. Очень интересно негодовал в процессе доклада Андрей Аксенов, он даже в процессе написал на ноутбуке тест за 15 минут, чтобы опровергнуть на два порядка оценки докладчиков о производительности памяти.
Андрей про дополненную реальностьДоклад был научно-популярного типа. Шикарность презентации заметили все. В этом плане Андрей достиг настоящего Мастерства. Про пульт Wii написали уже тоже все. Меня удивило, что до сих пор нет нормальных фреймворков (возможно нет только под .Net, а под Wii уже можно писать нормально) для работы с датчиками пульта. Андрей рассказал, как нужно работать со всеми этими датчиками вручную. Затем был рассказ про распознование движения, чем он занимается сейчас. Видно, что индустрия развивается, но прогресс не велик. Возможно, тут как и в распозновании речи, ничего особо не получится. А может индустрия и выстрелит. Очень интересное в конце было видео про то, как снимали Аватар. Я думал его полностью прорисовывали на компьютере, как мультфильмы от Pixar. Но тут было именно распознавание движения актеров. Завалишин про JavaДумал будет что-то из приемов разработки на Java. Были общие слова. Про то, что идентичные программы на Java и С++ работают с одинаковой скоростью. Возможно, Java жрет побольше памяти на инфраструктуру, но так как основная память чаще всего используется под большие объемы данных, то эта накладка и не заметна. Все это, потому что JIT рулит. Были совершенно ужасные антислайды, мелкий текст. Вся информация поверхностная, без конкретики. Итог ясен, Java рулит, но в каждой задаче нужно с умом выбирать подход. Упоминания про C# не было. Потом станет понятно почему. Еще заинтересовало упоминание Real Time Java. Видео-хостинг на ErlangЯ был совершенно убежден, что на свете есть только один программист на Erlang (который написал jabber-сервер). В одном зале на ADD-2010 их было как минимум два! Уже ради этого можно было сходить на этот доклад. Идея преимущества Erlang-а простая. В его внутренних «процессах» выполняются задачи над иммутабельными данными. Работа идет в PHP-стиле. Если что-то пошло не так — просто убиваем процесс и все. Прелесть в том, что все ресурсы этот процесс освободит. Там же в рантайме можно посмотреть какой процесс отжирает слишком много памяти и тоже просто его прибить. Но если на PHP в таком стиле можно написать только короткие обработки request-ов, а что-то с долгим uptime-ом будет безудержно кушать память, то на Erlang-е как раз можно в этом стиле написать приложение с аптаймом в несколько месяцев. Этому способствует еще и возможность изменять код на лету, без разрыва соединения с клиентом. Во время вопросов оказалось, что обновлять код на лету умеет еще и Lisp. И эта его особенность используется на марсоходах, где перезапускать сессию просто нельзя. Соединение с Марсом восстановить проблематично. Цимус доклада еще в том, что Erlang-у может быстро научиться любой здравомыслящий программист, так что проблем с поиском кадров быть не должно. С# vs JavaВсю интригу дискуссии отрезал Завалишин, высказав простую и здравую мысль: «С# как язык гораздо интереснее, но Java запускается не только на винде». Выбор остается только в том, согласны вы прогибаться и писать только под Микрософт, чтобы пользоваться всеми рюшечками, или не согласны. Он не готов. Спорить тут глупо, все так и есть. Если вы изначально и бесповоротно хотите писать под винду, то писать на Java глупо. Если вам нужна гибкость, то извращаться c Mono и подобными штуками тоже не стоит. Леша и КоляПо сравнению с первым прогоном на нашей демонстрации прогресс был просто огромный. Доклад прошел практически без накладок. Единственное, что Леша забыл рассказать, как структура Крипке разворачивается в бесконечное дерево, поэтому дальше народ немного перестал понимать суть, но те кто понял — прониклись. Недостатком было, что рассказывали про абстрактный «наш фреймворк» без ссылок, где он выложен в OpenSource. К SECR-у если его уже не выложим, будет совсем глупо. Алена C++ про искусственный интеллект в играхКак и ожидалось, практически ни в каких играх сейчас нет хоть какого-то искуственного интеллекта. Его сложно писать, его сложно патчить и т. д. Так что все действия ботов программируются обычными алгоритмами. Интересные фишечки про вероятность с состояниями, подкрутку поведения для более интересной игры и т. п. Про алгоритмы было только в поисках пути, причем вся информация примерно как в Википедии. Статический анализ в С++Вывод один — бедные сиплюсплюсники. У них столько проблем, что даже статическими анализаторами тут не поможешь. Еще у них нет решарпера, жалко их. Apache HadoopСначала было введение про MapReduce. Потом был рассказ как оно в Apache Hadoop работает. Работает не очень стабильно, подглючивает. Так что пользоваться этим можно только в вебе. Еще есть интересный проект по трансляции SQL в MapReduce запросы — Apache Hive. И свой язык запросов в Apache Pig. Так как после MapReduce результаты логично хранить в базах «ключ-значение», то есть еще и БД HBase. SQL vs NoSQLПо горячим следам был круглый стол по БД. NoSQL базы бывают двух видов.
Причем кто из них кто — непонятно. Вроде как действительно быстро работает только MongoDB. Хотя в Facebook, Twitter работает Cassandra. Андрей про DDDЗачем-то пошел на начало доклада Андрея про DDD. Хотя я был на внутреннем тренинге. В итоге попал на рассказ про UML. Надо было на иерархические структуры данных сходить. С++0xТак как многопоточное программирование было очень длинным докладом, решил забежать на Алену про новый стандарт C++. Сейчас все пишут на стандарте, написанном в 1998 году. Это о многом говорит. Новый должен был появиться в 200x году, но появится не раньше 2011го. Основная цель — уменьшить порог входа, сделать удобнее для написания системных библиотек, оставить по максимуму обратную совместимость. Что будет:
Программирование под iPhoneЗдесь полдоклада я негодовал в твиттере. Суровый рыбинский программист (видевший мак впервые в жизни после того, как его заставили писать под iPhone) с черно-белой нокией и пользующийся на Маке файрфоксом рассказывал, как это ужасно и неудобно — писать на Objective-C. Причем большинство издевательств были по делу, но знаний у докладчика по теме было ровно столько, сколько нужно, чтобы написать нужную ему программу. Мое мнение, что конечные пользовательские (хотя бы не бизнес) приложения должны писать люди, которые пользуются тем, подо что пишут. Есть очень много мелочей в приложениях для телефона, которые сильно раздражают и которые не сделали бы программисты, пользующиеся этим телефоном в жизни. Но, мы живем не в идеальном мире. В любом случае доклад был полезен. Увидел, как можно нормально пользоваться редактором форм (я все через код до этого делал). А сам докладчик по юмору и подаче материала не уступает Стасу. Как стать героемДоклад был глубоко рефлексивный, интересный, но не запоминающийся. Видимо потому что ничего особого нового сказано не было. Просто систематизация опыта программиста — как стать нужным человеком. Как прекратить писатьАндрей Аксенов в своем стиле рассказывал про то, как делать не надо. Не надо писать пузырек внутри цикла, не надо оптимизировать конкатенацию, не надо много рефакторить, не надо мало рефакторить и кучу подобных дуализмов. Опять же ничего нового, но интересно.
Внимание! Эта статья была создана путем автоматического реплицирования из внутренней базы знаний компании Заказные Информ Системы. Любые правки этой статьи могут быть перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion». |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |