ADD 2011: Отчет Василия Маслова
Содержание
- 1 Общее
- 2 Доклады
- 2.1 Пример разработки высоконагруженной реляционной базы данных
- 2.2 Построение 3D модели сцены по одному фотоснимку
- 2.3 Техники и проблемы пэкеджинга бизнес-приложений для Windows
- 2.4 Разработка RealTime веб-приложений
- 2.5 Фриланс: будущее IT-разработки
- 2.6 JDK 7 and Java SE 7
- 2.7 Вымирают ли клиентские приложения? Браузер против клиента или что нас ждет в будущем
- 2.8 Статический анализ C++ кода
- 2.9 Производительность и энергопотребление мобильных приложений на примере Windows Phone 7
- 2.10 Mac AppStore — спасение небольших разработчиков под Мак?
- 2.11 Language Oriented Programming (LOP) в действии (или как мы это делаем в JetBrains)
- 2.12 NoSQL-практикум: Промышленная автоматизированная измерительная система на CouchDB
- 2.13 Мобильная веб-разработка
- 2.14 Разработка программного обеспечения для маленьких
- 2.15 MongoDB
- 2.16 Взаимодействие дизайнера и программиста
- 2.17 Оптимизация LAMP-приложения на примере OpenX: разгоняемся до 1000 запросов в секунду
- 2.18 Nemerle Deep Dive
Общее
В целом мероприятие понравилось. Особенно:
- разнообразие тем докладов
- поездка на Сапсане — быстро и комфортно
- проживание в месте проведения
- наличие бильярдного клуба
- приемлемое качество wifi в залах — можно сразу что-то посмотреть во время доклада или отвлечься, если неинтересно
- блокнот для заметок по докладам с аннотациями
Некоторые неудобства:
- далеко от метро
- выселение во второй день — пришлось таскаться с сумкой
Интересные факты:
- зарегился в твиттере
- когда проходил мимо стенда JetBrains, возникло импульсное желание напроситься на экскурсию к ним в офис, но энтузиазма с их стороны это желание не встретило
- кстати, кроме красивых магнитов они раздавали 50 % скидку на приобретение любых продуктов — у меня есть одна
Доклады
(в порядке перечисления в выданном блокноте)
Пример разработки высоконагруженной реляционной базы данных
История оптимизации работы с БД в одном проекте. Особенности: используются 2 БД — объектная и реляционная. Первая является основным хранилищем, с ней работают бизнес-операции. А вторая (в нее реплицируются данные из первой) используется для чтения во всяких отчетах (или даже вообще повсеместно). Для чего нужна вторая — то ли для скорости, то ли из-за бедности языка запросов в используемой объектной БД. По мере роста объема данных возникли 2 основные проблемы:
- долго выполняются запросы при интерактивной работе (> 3 минут)
- лаг чтения из-за репликации (> 1 часа)
Решали денормализацией, настройкой индексов, оптимизацией планов выполнения.
Построение 3D модели сцены по одному фотоснимку
Студент ГУ ВШЭ делал обзорный доклад про американскую университетскую разработку. Собственно, на хабре у него есть серия из 2 статей, содержание которых полностью соответствует докладу.
Техники и проблемы пэкеджинга бизнес-приложений для Windows
Есть такая профессия — packaging engineer (manager) (ну или типа того). Короче, он делает упаковывает релиз продукта для поставки (ну примерно как в TechEvol собирают поставку CustIS Forms для Спортмастера). Основная хрень — это, конечно же, инсталлятор. Причем, к сожалению или счастью, нормального стандартного продукта для изготовления инсталляций (кроме, разве что, InstallShield) нет, поэтому каждая уважающая себя компания-разработчик должна создать свой инструмент для этого. Притом к этому инструменту предъявляются повышенные требования по корректности работы. Ведь, как никак, инсталлятор — это лицо поставляемого продукта, а пользователи встречают по одежке. И вот у них тоже есть такой инструмент, сделанный как приложение Excel на VSTO.
В общем, хорошо, когда человек чувствует важность своей работы. Но мне это было совершенно неинтересно.
Разработка RealTime веб-приложений
Самый неординарный докладчик — толстый, в дредах и пьяный (ну, выпил перед докладом пару пива, а может и всю ночь квасил: он перед приездом искал в твиттере собутыльников). Живет и работает в Таиланде. Стас утверждает, что публично в интернетах предлагал на докладе набить ему морду. Выступал очень живо. В рамках доклада слушателям была предложена игра (boobs bingo): видишь сиськи на слайде — кричи «сиськи», получи банку пива.
Суть доклада — кагбэ ликбез по real-time операциям в web-приложениях. Зачем это нужно — ну понятно, трейдинг всякий. Тока зачем это делать через web? — ну наверно бывает удобно. Есть несколько подходов транспортного уровня — какой выбрать? а чтобы везде поддерживалось? На сервере нужно держать много соединений — есть несколько готовых решений, но они чем-то плохи. В итоге остается socket.io (прозрачно объединяет различные транспортные уровни, сам выбирая подходящий) + node.js (отлично масштабируемое сервер на JavaScript). Чем Никита сам пользуется и другим желает.
Фриланс: будущее IT-разработки
Зажигательный доклад доносил мысль, заявленную в названии. Стас Давыдов призывал уходить во freelance на примере сервиса oDesk. Даже захотелось попробовать :)
JDK 7 and Java SE 7
Представитель того, что раньше было Sun, пытался рассказывать, что будет нового в Java 7. Мне запомнился строковый switch, diamond operator, и что не будет лямбда-выражений. Показывал поддержку новых фич в NetBeans. Как минимум половина доклада была не по существу, например занимались заполнением списка «чем занимается разработчик».
Вымирают ли клиентские приложения? Браузер против клиента или что нас ждет в будущем
Хорошая подача, как и у всех евангелистов Microsoft. Пытался убедить в том, что web не пройдет, поскольку возможности устройств растут, и для их полного использования всегда будут нужны нативные (клиентские) приложения. А web-приложения хороши тем, что совместимы с большим количеством устройств благодаря стандартизованности (HTML5). Но стандарты всегда отстают от технологий и бизнес-потребностей. Но в обоих типах приложений (включая промежуточные типа RIA) налицо тенденция к упрощению распространения и обновления. Еще серверная часть современных приложений должна реализовывать 2 интерфейсных уровня — HTML и web-сервисы (для остальных типов приложений).
Статический анализ C++ кода
Продает свою систему для статической верификации C++ программ. Для того и ездит с этим докладом по всем конференциям и раздает брошюрки. Доклад заключается в описании примеров ошибок в исходниках известных продуктов («Return To Castle Wolfestein», «Miranda» и др.), которые он обнаружил, натравливая свою программу.
Производительность и энергопотребление мобильных приложений на примере Windows Phone 7
Представитель Microsoft рассказывал, какие механизмы предлагает Windows Phone 7 (точнее новая версия платформы) разработчикам, чтобы обеспечить оптимальную производительность своих приложений на устройствах. Среди них:
- background agents
- fast app switching
- background notifications
- background transfer
- push notifications
- periodic background agent
- background audio player
Mac AppStore — спасение небольших разработчиков под Мак?
Сергей Кудряшов рассказывал, как правильно пользоваться Mac AppStore, чтобы зарабатывать на этом деньги.
Есть неудобства при общении с Apple: регистрация по факсу, ужасный support (не отвечают на письма), 2 недели проверяют приложение перед публикацией.
Для продвижения надо использовать тизеры, красивые иконки и работать на повышение рейтинга. Нельзя делать скидки на комплекты ПО, зато можно сделать большую временную скидку для привлечения. Нормальный доход — до $6,000 в месяц за приложение. Интересный факт: русский AppStore на 5 месте по продажам в мире (обосновывает тем, что у нас все маководы богатые %-/)
Language Oriented Programming (LOP) в действии (или как мы это делаем в JetBrains)
Один из разработчиков Meta Programming System про нее и рассказывал.
Что было до этого для DSL:
- предметно-ориентированные конструкции в стандартных языках (например, synchronized в Java)
- языковые расширения (проблемы совместимости друг с другом и поддержки IDE)
В отличие от языковых расширений MPS работает на уровне абстрактного синтаксического дерева, а не текстовой грамматики, чем устраняет проблему совместимости. Редактор свой, проекционный (работает с АСТ, который проецируется в текст). Привыкание — 2 недели.
NoSQL-практикум: Промышленная автоматизированная измерительная система на CouchDB
Система учета электроэнергии собирает данных с измерительных приборов (в простонародье «счетчики»). Изначально система была вн РСУБД + python. Потом решили использовать CouchDB (почему? по-моему, их заели репликации, а тут значительно проще) В общем, рассказывал, что такое и как делать для него приложения. Очень симпатично: написана на Erlang, включает web-сервер, логика пишется на JavaScript и хранится особыми документами в БД, работа через REST API. Захотелось попробовать.
Мобильная веб-разработка
Андрей Ребров рассказывал об интересном подходе мобильной разработки, который практикует их компания. Приложения пишутся на HTML с использованием специлизированных JavaScript-библиотек
А потом конвертируются в нативные для нужных платформ с помощью:
Есть статья на хабре с кратким описанием всего этого добра.
Докладчик утверждает, что использование такого подхода позволяет создавать приложения за 1,5 недели, включая тестирование.
Разработка программного обеспечения для маленьких
Целостного впечатления не осталось. Что-то о том, в чем должна заключаться разработка ПО. Тезисно:
- Результат важнее процесса
- Нужно корректировать требования
- Обязательно выпускать продукт (+автоматизация выпуска)
- Не бояться ошибок в production
- Увеличение зарплаты приближает сотрудника к увольнению
- Исправление багов — главная ценность
- Не заниматься проектами > $100K
- Талантливые программисты есть везде
- Увольнение хороших сотрудников — обратная связь (что-то не так)
MongoDB
Еще одна документо-ориентированная СУБД. Про возможности можно почитать на официальном сайте. Докладчик особый упор сделал на архитектуру развертывания, балансировку, примеры выбора shard key.
Взаимодействие дизайнера и программиста
Показалось как-то совсем занудно. Наверно, я просто ушел с этого доклада.
Оптимизация LAMP-приложения на примере OpenX: разгоняемся до 1000 запросов в секунду
Сразу возник вопрос: кем докладчик — Александр Чистяков приходится Владиславу Чистякову (контрибутору Nemerle)? Насколько известно, они просто однофамильцы.
Очень бодро рассказывал про оптимизацию платформы OpenX. Доклад проходил в стиле «Такая-то проблема. OK. Пробуем то-то». Больше всего цепляет то, с какой легкостью в проекте опробуются и внедряются различные инструменты/технологии, без постоянного опасения рисков от «нового». В нашей жизни такой динамики, конечно, не хватает.
Nemerle Deep Dive
Думал узнать что-то новое сверх семинара ALT.NET, но, к сожалению, процесс пошел еще медленнее, чем у нас.
Внимание! Данная статья выбрана для репликации во внешнюю базу знаний компании. Пожалуйста, не допускайте в этой статье публикацию конфиденциальной информации, ведения обсуждений в теле статьи, и более ответственно относитесь к качеству самой статьи — проверяйте орфографию, пишите по-русски, избегайте непроверенной вами информации.