#ADDConf #Barcelona😍 #vismaux (at Barcelona, Spain)

seen from Lithuania
seen from China

seen from United States
seen from China

seen from United States
seen from Portugal
seen from India

seen from Brazil
seen from United States
seen from United States
seen from United States
seen from Macao SAR China
seen from China
seen from United States
seen from China
seen from Portugal
seen from China
seen from United Kingdom
seen from Russia

seen from United States
#ADDConf #Barcelona😍 #vismaux (at Barcelona, Spain)

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
#ADDConf #Barcelona😍 #vismaux (at Barcelona, Spain)
#ADDConf #Barcelona😍 #vismaux (at Barcelona, Spain)
#ADDConf #Barcelona😍 #vismaux (at Barcelona, Spain)
#ADDConf #Barcelona😍 #vismaux (at Barcelona, Spain)

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
GWT + mvp4g: видео доклада + отзыв о ADDConf'11 + пример с портлетами
Вступление
Несомненно, сейчас уже многие знают, что такое GWT. Многие знают, что за концепция — MVP. При этом, ещё не многие слышали о фреймворке mvp4g (облегчённая реализация MVP для GWT) — а я бы хотел, чтобы на него обратили внимание как можно больше GWT-программистов: фреймворк значительно упрощает написание MVP-кода и явно повышает его наглядность. По этой причине я делал о нём доклад на конференции ADDConf, видео которого представляю ниже.
В статью я добавил, кроме прочего, отзыв о конфренции и докладах которые я видел, а также ссылки/описание работающего примера создания системы портлетов/порталов на GWT+mvp4g, я его упоминал в докладе.
Видео
Собственно, вот видео доклада.
Часть 1. GWT, вступление
GWT + mvp4g Session from ADDConf 2011 (part 1/3, Ru) from Ulric Wilfred on Vimeo.
Часть 2. mvp4g и подробнее про GWT
GWT + mvp4g Session from ADDConf 2011 (part 2/3, Ru) from Ulric Wilfred on Vimeo.
Часть 3. Вопросы и ответы
GWT + mvp4g Session from ADDConf 2011 (part 3/3, Ru) from Ulric Wilfred on Vimeo.
P.S.
Если что-то невнятно или непонятно, пожалуйста пишите мне лично (касательно моих неразборчивых слов или объяснений) или (касательно вопросов по GWT и mvp4g) в нашу русскую google-группу о GWT.
Я буду готовить субтитры на русском, чтобы перевести их затем на английский. Если вдруг кому они нужны, пишите мне также лично.
Огромное спасибо Стасу Фомину за очень чрезвычайно сложный композитинг видео: во время доклада не записался скринкаст и ему пришлось вручную синхронизировать кадры (300 с лишним штук!) с моими словами — наверное, теперь он вынужденно знает, кроме всего прочего, очень много и о GWT. Причём он также подготовил мне видео и с английскими слайдами. На это ушло более трёх недель его труда и труда его компьютера.
Отзыв
Я посещал до этого не так много конференций (штук пять) и всё ещё не был на Google Developer Days, но я думаю организационно всё было близко именно к GDD :).
Изначально, когда мне предложили участвовать, хоть из меня выступатель был тогда вообще без какого-либо опыта, я посмотрел на сайт конференции и он мне скептически совсем не понравился — он на многое рассчитан (как я позже узнал), но дизайн почти что полностью ужасен. Логотип конференции в нём тоже не смотрится. Но это оказалась практически единственная претензия, Миша Кашкин настоятельно посоветовал мне участвовать, предложение и условия были интересными, мне дали аж два доклада, были заманчивые другие доклады, пару докладов читали мои знакомые и в результате я нисколько не расстроен, только обрадован и мне стыдно за мой скептизизм. А логотип мне, кстати, потом полюбился.
Ну и я лох, доклад по fluxus/Processing вышел почти что никаким, я почти не уделил ему внимания при подготовке в пользу текущего доклада и в результате не смог запустить звук и рассказать детально хотя бы только про fluxus (одна из проблем со звуком была в том, что я пытался настроить одновременно и fluxus и запись скринкаста со звуком, а они перемешались в требованиях к alsa / pulseaudio / sox...). И да, у меня Linux.
Организаторы
Андрей Майоров и Стас Фомин — организаторы конференции — отличные и отзывчивые собеседники по почте и в жизни, в подготовке доклада меня никто сильно не ограничивал и не подгонял, только помогал, в результате я за пол-месяца (или месяц?) наваял презентацию на 300 слайдов, но рассказал её всё равно довольно быстро :). На конференции они всем помогали и участвовали, организовывали вай-фай потерявшимся, контролировали видео-запись, поддерживали при необходимости докладчиков и многое-многое прочее.
Залы
Три больших зала, один (центральный) очень крупный с большой сценой, второй помельче (но с двумя экранами по разные стороны комнаты!), третий — в виде широкого коридора. Я за весь первый день (на втором я не смог быть) не видел ни одного "невольно непосаженного" человека. В первом и третьем зале все стулья (насколько я помню, если вру — по крайней мере 60%) были с подставками под ноутбук. Удобные настолько, что хотелось взять себе такой домой.
Со всех мест было слышно и видно. Технических неполадок не помню. Неудобств не помню, во втором зале точно были розетки (не на всех, но можно было достать), в первом и третьем — не знаю. Вай-фай у меня не терялся, всё было стабильно.
Организация
Расписание на самой конференции (висело только у главного зала) было очень симпатично оформлено, цветное и при этом понятное. Сама идея разделения на три зала, распределение по ним докладов у меня не вызвали нареканий, по-моему всё было честно.
Всегда были доступны вода и кофе (и для слушающих, в холле, и для докладчиков, на столах), обед насколько я слышал отзывы, был тоже хорош.
В холле стояли стенды JetBrains, e-Legion и других хороших фирм, где они давали комментарии к своим докладам и искали к себе хороших умных программистов.
Также в холле, около кофе-машины, было два монитора с вещанием из твиттера (небольших, правда).
При входе выдавали разноцветные симпатичные бейджи, пакетики с фирменной ручкой, расписанием и блокнотом, в котором на каждом развороте на половине одной стороны было описание доклада, а на остальной части — место для записей (для крупных докладов по-моему было больше страниц). В конце блокнота были цветные фотографии организаторов, обложка твёрдая и цветная — полиграфия безупречна :). А, ещё в пакетике была железная визитница, очень удобная, с предподготовленными (!) визитками, тоже весьма симпатичными.
Переключатель слайдов, кстати, работал вполне стабильно и на убунте.
Претензий к организации у меня в результате никаких не было, никакой лишней бюрократии, всё дружно и человечно.
Стас Фомин собрал, оформил и обработал (и продолжает это делать) кучу видео с докладов (немногие из видео с русских конференций, на которых слайды крупно отдельно, докладчик отдельно) и отдаёт их докладчикам безвозмездно.
Доклады
Ввиду того, что я готовился к докладам/докладывал и кроме этого не присутствовал второй день, я успел посмотреть немногое. Некоторые доклады я потом посмотрел/пересмотрел отдельно в записи, но про них рассказывать, видимо, не имею права. Посмотрите список видео Стаса Фомина, там очень много интересных вещей.
Также прошу нещадно критиковать мой доклад, чтобы я мог учитывать недостатки на будущее. Знаю, что сам мямлил и торопился. Может буду поначалу отмазываться, но в любом случае запомню и учту все ваши замечания :).
Максим Мазин и Language Oriented Programming
Видео
Может чуточку сумбурно, но сама тема настолько интересная, что после доклада все побежали смотреть ещё реальных примеров на ноутбуке в холле и смотрели их там около получаса (а кто-то остался у стенда JetBrains на весь день). LOP — Language Oriented Programming. MPS — система для написания собственных языков программирования от JetBrains. Её примерным конкурентом, получается, выступает XText от Eclipse. Как я понимаю, именно эта cистема использовалась и для создания нового языка (который, конечно, все обсудили) Kotlin. Это очень интересный доклад, советую не вчитываться в рецензии, а посмотреть его на видео. Кстати, в нём также было и про то, как "думает" и подбирает варианты ваша IDE при наборе вами программного кода.
Технически всё хорошо, поскольку доклад описывает настолько гиковую вещь, что для неё даже не нужно шуток и спецэффектов.
Алексей Какунин и LifeRay
Видео
Доклад о написании веб-приложений на LifeRay, чем это удобно и почему, а также как Liferay применяется в EmForge. Алексей был моим первым начальником и я ему многим обязан в своём опыте, поэтому не буду сильно описывать: могу быть предвзят :). Вкратце: живо и помянули Microsoft :).
Time Management by Михаил Гедзберг
Видео
Важные составляющие работы в команде, как её организовать, "вышколить" до блеска и правильно работать в дальнейшем, от проджект-менеджера из Luxoft. В описании по ссылке есть почти полные конспекты доклада. GTD, Scrum, Agile — здесь про это всё. Немного занудно, некоторые вещи банальны, некоторые были в новь. В принципе, в докладе всё было описано верно и правильно: что засевшим в одной задаче программистам нужно давать новую; слушать на стэнд-апах не только тех, кто много говорит, а даже затыкать их; что нужно следить за поведением и состоянием программиста; как заставить говорить тех, кто мямлит; как правильно составлять ТЗ; как звонить и сообщать об опоздании; что нужно отвечать на письма. Но уж очень монотонно расказывалось + слайды были почему-то на английском.
Графическая визуализация логов и Евгений Кирпичёв
Видео
Интересная, но очень по-математически изложенная тема о собственных разработках автора на Хаскеле timeplot и splot, звучала и смотрелась просто как неплохая лекция в институте. Тема очень интересная — про то, как через real-time парсинг текстовых логов можно делать разнообразнейшие цветные графики и в результате иметь воможность наглядно оценить время выполнения тех или иных задач и нагруженность процессора при их выполнении. Но эти ребята делают журнал про функциональное программирование и за это я готов простить им всё. Доклад был с картинками, всё чрезвычайно наглядно и подробно рассмотрено, наверное был разобран каждый кусок кода и способ использования.
CouchDB by Андрей Орлов
Видео
Этот доклад мне не понравился (единственный из всех) наверное потому, что визуально презентация не была подготовлена вообще никак. Times New Roman и серые таблицы при том, что CouchDB — это относительно свежая и отнюдь не бюрократичная тема: No-SQL это крутое течение, избавляющее нас от многих проблем, но здесь по-моему всё было именно что бюрократично. Проценты, на которые ускорились запросы. Дампы запросов. В качестве примера был приведён пример из опыта автора (ну, они все у нас из опыта) — промышленная АИС с электросчётчиками. Хотя это на практике показывает, что новые веяния применяются не только в молодых стартапах. Соседний доклад про MongoDB был значительно живее, насколько я понял по его видео. Но иногда серверные разработчики делают очень унылые доклады, но при этом являются отъявленными профессионалами, поэтому я говорю только про сам доклад и ни в коем случае не про личные или профессиональные качества автора.
Будущее ECMASCript и Андрей Сошников
Видео
Развитие JavaScript мне очень интересно (хотя оно зависит не только от спецификаций ECMASсript, но и от скорости развития браузерных движков), я очень уважаю этот язык и предан ему. Докладчик хорошо известен для тех, кто интересуется JavaScript. Сам доклад был хорош, только по делу, с большим количеством примеров и сравнений с тем, что было, и в результате ничего непонятного не было вообще. Лучше — смотреть.
Касательно самих нововведений у меня есть личное мнение. В новых стандартах вводят много заимствований из функциональных и динамически типизированных языков, вроде list comprehensions подобных питоновским, лямбд и прочего. Пусть так, хотя для меня это всё же потеря "духа" языка, получается что в сфере развития "старых" языков всё идёт к одному коммунистическому мета-языку. Тот же Гвидо в своё время отказался от внедрения java-подобных интерфейсов в питон, хотя его очень просили, и правильно, я считаю, сделал.
Чтобы "залатать" многие кривые моменты в новом стандарте выбран не очень привычный синтаксис: оператор # для оборачивания участков кода, которые должны сохранить в себе внешние переменные, замыканий; оператор let вместо var (я так понял, что планируется полная замена), специальный синтаксис для того самого this, который должен отнаследоваться от внешнего блока кода и т.п. Но возможно, просто не было выхода.
Тем не менее, недостатки
Потом уже, после приезда с конференции подумал о паре [незначительных] моментов:
Всё-таки, дизайн сайта плох — а это лицо конференции. Функциональность, при этом, у него хорошая (отдельные статьи про авторов и отдельные про их доклады, с комменариями фото и даже слайдами, ссылки в расписании, фейсбуковые лайки). Логотип сначала кажется странным, но потом привыкаешь и он становится довольно милым и приятным глазу (особенно на атрибутике). Но сайт — всё же нет.
Вход для вольных программистов очень дорогой. В феврале-марте это было 5000, в мае — 8000 (подталкивали раньше купить). Возможно это вполне оправдано, чрезвычайно много сделано для организации конференции, но многие (кого отправили не от компании и не смогли читать доклад) не пошли на неё именно из-за цены. С другой стороны, всё видео в свободном доступе, быстро и оперативно, а посетителей было вполне достаточно на все три зала. Тогда единственное, что нужно —агитировать компании, чтобы платили сотрудникам за походы эту на конференцию.
Расписание висело только у главного зала, между докладами там всем приходилось толпиться. Однако менее цветной вариант был ещё у каждого в пакетике.
Из-за того, что крупный зал был очень большой и приятный, в нём многие так и остались и не ходили на доклады в соседних залах. Хотя, может им и правда была интересна только программа первого зала и/или возможно в ней было сконцентрировано больше известных людей, чем в других залах.
Во время первого доклада в первом зале из проектора освещался только лоб Максима Мазина, наверное это недостаток освещения или расположения докладчика.
Нужна такая же простая, как под Windows, программа записи скринкастов под Linux :). Хотя само существование такой программы для конференции, которую кстати написал Стас, уже вызывает уважение.
Нужно (возможно) продумать сидячие места для докладчиков (для livecoding это нужно, и нужны микрофоны в ухо). Однако на докладе Fluxus во втором зале мне дали стул и микрофон в руки и я довольно спокойно с него вещал :).
Футболки, всё же, должны быть [почти] бесплатно, думаю дешевле 400 рублей. Это, всё же, пост-реклама конференции.
Итог отзыва
Всем рекомендую посетить эту конференцию в следующем году, организовано практически идеально, всем боссам и финансистам компаний настоятельно советую выделять программистам на неё бюджет! :)
Пример с портлетами
Фреймворк mvp4g сам по себе помогает писать приложения, в которых либо не происходит значительных изменений во внутренней части страницы, либо вообще сменяется только её центральная часть. Нельзя сказать, что фреймворк заточен на это — в ближайшем будущем эта ситуация может измениться, тем не менее на данный момент это так.
Однако в нашем проекте, в какой-то момент, накопилась критическая масса страниц с нескрываемо схожим расположением виджетов и мы с Виталием Гашок (который и познакомил меня с этим фреймворком) и Сергеем Дыниовским (верстальщиком, который разобрался в хитросплетениях виджетов GWT) решили, что пора эти вещи структурировать и генерализировать. Так родился набор лэйаутов, наречённых именами известных артистов, существующие страницы были распределены по этим лэйаутам и начался рефакторинг (который, конечно же, не только избавил нас от некоторых набивших оскомину костылей, но и добавил десяток новых багов). Кроме того, мы с удовольствием убрали повторяющиеся реализации виджетов, которые приходилось делать из-за их различного поведения на разных страницах. Квинтэссенция этого рефакторинга, полностью отделённая от логики проекта и тех багов, которые он от проекта получил в наследство, собственно, и описана в этой статье.
Где посмотреть?
Исходный код лежит на github: github.com/shamansir/gwt-mvp4g-layouting-demo.
В исполняемом и кликабельном состоянии (что называется in action) пример доступен на GAE: gwt-mvp4g-layouting-demo.appspot.com. Это чисто технический пример, поэтому в нём нет никакого дизайна.
Краткая документация по нему также располагается на github: shamansir.github.com/gwt-mvp4g-layouting-demo
Что ещё?
Добро пожаловать в нашу русскую группу о GWT на Google Groups: google-web-toolkit-ru. Нас там ещё немного, но давно пора собраться и задать жару :).