DevConf 2010
Надо бы уже записать впечатления от DevConf‘а, пока окончательно всё не забыл
Приехал я в Крокус Экспо, к сожалению, не к самому началу — поезд пришёл немного позже чем мне хотелось бы ) К счастью, регистрация продолжалась, видимо, до последнего, и свои бейджик и пакет я получил. В пакете оказалось много бумажного спама, программка, блокнот и ручка (очень кстати — я свои забыл
).
Первый день
Посещал я только секцию PHP, так что тут будет только о ней. На доклад о MooSQL я не попал совсем, на Badoo — попал не полностью. С Badoo запомнились рассуждения “скорость VS масштабируемость” и призыв всегда разбираться с ошибками, даже самыми мелкими E_NOTICE и E_STRICT — они могут тормозить выполнение. Собственно, остальную часть доклада я пропустил
Программка, кстати, мне пригодилась: я прямо на ней ставил оценки прослушанным докладам
Остаток доклада по Badoo например получил 4+ по пятибалльной шкале
Создание демонов на PHP
Товарищ из компании AGUNGA рассказывал о том что данные можно держать прямо в висящих в памяти PHP-демонах. Подход интересный, конечно, и его можно понять. Основное преимущество — уже есть готовые структуры, к которым можно обращаться, нет затрат на инициализацию (впрочем, постоянное хранилище типа Redis тоже подошло бы по этому критерию, думаю). Демоны построены в evented-стиле вокруг библиотеки libevent, набор событий ограничен READ, WRITE и SIGNAL. В общем-то, для активно изменяющихся данных, с которыми нужно взаимодействовать, это интересный подход (компания занимается играми, так что как раз их сценарий).
Правда, с сохранностью данных пока так себе — используется некоторое подобие самодельного snapshotting’а: данные периодически сбрасываются в базу (раз в секунду). Выступающий товарищ показывал код —x там жонглирование очередью обработки событий происходит явно и прямо в коде. После Node.js конечно выглядит несколько громоздко, но работает. Чтение потоковое, через while(true)
Кстати, к асинхронным функциям всегда передаётся таймаут, по истечении которого функция завершается с ошибкой. Правда, таймауты реализованы как то странно — через открытие временного файла.
Основные подводные камни, о которых упомянул докладчик:
- Очень мало информации и примеров таких установок
- Необходимо следить за ресурсами (ну ещё бы)
- Хитрости при чтении данных, превышающих размер буфера (тут я не очень понял какие)
- Проблемы с отслеживанием сигналов (опять же, непонятно какие)
Памяти эта штука потребляет 1 мегабайт на пользователя, что для демона как то многовато имхо. Впрочем, возможно тут я не знаю всех деталей.
Моя оценка: 5
Redis
Этот доклад был мне интересен тем что Redis’ом я и сам планировал заняться в ближайшем будущем. В принципе доклад пересказывать мало смысла — перечисление типов данных, примерные бенчмарки, всё это можно найти в Интернете. Но рассказано было очень здорово, с примерами и объяснением. Также рассказали про атомарность транзакций и разные режимы репликации, функционал publish/subscribe и pipeline (отправка набора команд и отложенное получение ответа).
Моя оценка: 4
После Redis’а был обед, который получил от меня четвёрку ))) Покормили нас довольно неплохо. Кроме обеда были ещё несколько кофебрейков со вкусными булочками
Кроме того, между докладами можно было посидеть в холле и купить там же книги соответствующей эвенту тематики
Я там раздобыл “Джоэл о программировании” Спольски и “IT-проекты” Джо Мараско.
В ожидании PostgreSQL 9.0
Хоть Postgres я не интересуюсь (пока), доклад был очень интересным. Правда, записей от него осталось не очень много: в основном я слушал.
Оценка: 5.
Классификация систем хранения данных
Супер-доклад о целом зоопарке систем хранения: от Redis до распределённой GlasterFS, сравнение их по разным признакам. Большая часть доклада — таблицы сравнения хранилищ, перерисовывать которые было бессмысленно. Но сама методология сравнения и большое количество охваченных систем — очень здорово
Когда найду ссылку на презентацию, выложу сюда. Словами пересказывать очень долго
Моя оценка: 5+
PHP+REST: универсальная архитектура контроллера
Довольно интересный доклад про построение REST-контроллера на PHP. В принципе, вполне можно где нибудь потом реализовать. Интересное использование вложенных ресурсов для дополнительных действий, не предусмотренных обычными GET/PUT/DELETE, разделение на HTTP-методы (непосредственно обрабатывающие запрос и возвращающие отклик) и сублокаторы, порождающие вложенные ресурсы. Тут стоит найти презентацию и почитать ещё раз.
Моя оценка: 4
С последнего доклада (про особенности PHP 5.3) почти не осталось записей и совсем не осталось оценки. Видимо, уставший за день мозг уже отказывался что-либо воспринимать. В конце концов всем раздали пиво (тем кто не пьёт достались чай и кофе), обещанного в программке торжественного закрытия так и не было. Когда все выходили, лил достаточно неплохой дождь, но даже это не подпортило впечатлений от первого дня конференции
Второй день: RichClient
Второй день проходил уже возле ВДНХ, в гостинице “Оксана”. Здесь я уже не ставил оценки и даже почти не записывал. Запомнились доклад Yehuda Katz про абстрагирование в JavaScript одних событий другими (надо будет попробовать), и доклад о JS-составляющей системы постановки задач, написанной на серверном V8. С докладчиком, который о ней рассказывал, мы впоследствии отлично побеседовали о перспективах серверного JavaScript. Понравилось модульное построение клиентской части — проект разделён на эдакие виджеты, которые довольно легко комбинируются и расширяются.
Обед во второй день тоже был, в ресторане на первом этаже гостиницы, не хуже чем в первый день
Вообще во второй день одновременно проходило очень много разных мастер-классов, и все их к сожалению посетить не удалось. Запомнился докладчик по Silverlight, который рассказывал и отвечал на вопросы о Microsoft с юмором
Наш доклад (про Node.js) прошёл в принципе для первого раза неплохо, хотя и немного скомканно на мой взгляд. Зато вопросы после доклада были очень хорошими, да и побеседовали мы потом с некоторыми слушателями неплохо. Думаю, в будущем лучше уже выступать не с обзорным докладом а с конкретным приложением, уже с опытом и готовыми данными. Жаль, но записать наше выступление не получилось (места не было ни на фотоаппарате, ни на телефоне).
Здесь мои остальные фото (хотя этого добра в Интернете должно быть навалом).
UPD: выложил наши слайды:

Если не ошибаюсь, здесь тебя спалил на многих фотках =)
http://picasaweb.google.com/Dmitry.Bykadorov/DevConf
Угу, я там есть, правда не то чтобы очень на многих фотках )
На первой вроде есть, где на эскалаторе, не?
Ага, это я ) С недосыпа )
Не понимаю, чем заинтересовал этот вот последний человек, у которого JavaScript на сервере и странные, очень странные виджеты на клиенте. При том, что до этого был ваш рассказ про node.js и отличный доклад про Dojo. Человеки просто страдают синдромом not invented here. Гордиться тут нечем.
Заинтересовал тем, что я и сам занимаюсь серверным JS ) А эти товарищи начали строить свою систему вокруг V8 еще до того, как Node.js стала юзабельной. Мне было интересно что они сделали.
А что касается NIH: если при этом получаются интересные решения, то почему бы и нет)
Кстати, про доклад о Dojo я почему то забыл, действительно )