Персональные инструменты
 

ADD 2011: Отчет Василия Маслова

Материал из CustisWiki

Версия от 11:10, 18 мая 2011; StasFomin (обсуждение | вклад) (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, но, к сожалению, процесс пошел еще медленнее, чем у нас.


Репликация: База Знаний «Заказных Информ Систем» → «ADD 2011: Отчет Василия Маслова»

Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».