1. Доклады
1.1. Олег Царев, Кирилл Коринский
1.2. Кирилл Коринский
1.3. Владимир Климонтович
1.4. Андрей Аксенов
1.5. Максим Лапшин
1.6. Андрей Бибичев
1.7. Андрей Бибичев - мастер-класс по Domain-Driven Design
1.8. Илья Кантор
1.9. Михаил Черномордиков
1.10. Дмитрий Лобасев
1.11. Виталий Филиппов
1.12. Дмитрий Завалишин
1.13. Ольга Кочкина
1.14. Денис Гладких
1.15. Макс Высоких
1.16. Константин Кичинский
1.17. Ник Мациевский
1.18. Елена Сагалаева
1.19. Алексей Алексеев, Николай Гребнев
1.20. Никита Фролов
1.21. Яков Сироткин
1.22. Максим Цепков
1.23. Олег Аксенов
1.24. Андрей Карпов
1.25. Дмитрий Ханецкий
1.26. Антон Овчинников
1.27. Евгений Кирпичёв
1.28. Андрей Майоров
1.29. Сергей Полаженко
1.30. Сергей Пугачев
1.31. Евгений Савицкий
1.32. Евгений Бурмако
1.33. Стас Фомин
1.34. Михаил Кокорев 2. Флип-чарты
2.1. Борис Тарелкин 3. Круглые столы
3.1. SQL vs. NOSQL
Олег Царев, Кирилл КоринскийИзвестные эксперты по высоким нагрузкам, - Коринский Кирилл — R&D компании Yota, nginx-хакер, эксперт NoSQL хранилищ, и
- Олег Царев — Software Engineer компании Percona, MySQL хакер, эсперт SQL баз данных.
выступят с большим совместным докладом «Сравнительный анализ хранилищ данных». Существует разные системы для хранения данных: как классические SQL решения, так и модные NoSQL. Поиск серебряной пули вытекает из ограничений реального проекта. Ограничения зависят как от окружения проекта (кадры, бюджет, сроки), так и от формулировки задачи.
Мы продемонстрируем связь между ограничениями, структурами, алгоритмами, и реализациями различных хранилищ данных. Когда нужно брать Riak? Чем силён Hadoop? Когда не обойтись без MySQL? А может просто купить Oracle? Любой highload-проект складывается с одними и теми же проблемами. - Всегда органичен бюджет
- Пользователи имеют свои ожидания
- Вычислительные мощности ограничены
- Сроки ограничены
- Квалификация кадров влияет на все остальные параметры.
Особняком стоят инженерные проблемы - именно они ключевые. Для подавляющего большинства людей эти проблемы являются "чёрной магией". Для менеджеров: Почему существенно увеличив бюджет на железо получили не значительный прирост? Для программистов: В каком хранилище сделано "нормальное" шардирование?
Большинство проблем решаются просто:
- Инвесторов можно привлечь
- Целевую аудиторию можно привлечь и удержать.
- Железо можно проапгрейдить
- Сроки передвинуть
- Кадров купить
Инженерные проблемы - это притча во языцах любого массовго проекта. Постоянно, вновь и вновь, находят "серебрянные пули"... Но серебро оказывается сусальным, а то и вовсе медью.
Кирилл Коринский (RooX) и Олег Царев (Percona) - мы не ищем серебрянную пулю. Цель нашего доклада — продемонстрировать, доказать почему её НЕТ. Каждый со своей стороны и одновременно - с одной и той же.
Кирилл КоринскийКирилл Коринский (R&D компании Roox, nginx-хакер, эксперт NoSQL хранилищ), кроме совместного доклада с Олегом Царевым, выступит также и соло с одной историей успеха): «Информирование о загрузке базовых станций для Yota».
Сетью Yota пользуются уже больше 600 тысяч человек. Часто люди хотят знать не только качество радио-сигнала (RSSI/CNIR), но и о загрузку базовой станции, услугами которой они пользуются. Я расскажу как создавался и работает данный сервис.
Речь пойдет о таких технологиях, как перспективная in-memory database TimesTen и вебсервер nginx.
Владимир КлимонтовичВладимир Климонтович поделится своим опытом обработки ОЧЕНЬ БОЛЬШИХ объемов данных, и использование для этого NOSQL-подходов, в частности Apache Hadoop.
- История вопроса.
- Почему проблема обработки большего объема данных становится все
более актуальный (пример роста количества данных в разных областях). - Статья от компании Google про парадигму MapReduce. Краткое описание парадигмы.
- Краткое описание смежных областей (distributed file system, bigtable-like storage).
- История и краткое описание платформы Apache Hadoop.
- Примеры использования.
- Использование платформы hadoop в трех отдельно взятых областях: в
last.fm (построение charts), в online-advertising'e (построение
статистики), в Yahoo (построение поискового индекса). - Описание традиционного подхода (SQL базы данных) и похода с
использованием Hadoop для каждой из вышеобозначенных проблем.
Достоинства и недостатки SQL/Hadoop подхода - Общий принцип трансляции некоторого подтипа SQL запросов в MapReduce job'ы.
- Платформы, построенные поверх Hadoop.
- Краткое описание ETL-framework'а Hive and Pig, построенных на базе Hadoop.
- Примеры использования (на примере facebook.com и Yahoo); сравнение со стандартным SQL походом
- Проблемы с real-time доступом к данным при использовании Apache Hadoop.
- Описания случаев, когда real-time нужен, а когда нет.
- Описание решения простых проблем с realtime: кэширование в памяти (memcached), симбиоз со SQL
- Симбиоз с bigtable-like БД на примере HBase. Краткое описание HBase.
- Hadoop как тренд.
- Краткий обзор технических и бизнес проблем, возникающих при использовании Hadoop
- Шумиха вокруг Hadoop и NoSQL подхода. Описание случаев, когда SQL оказывается удобным.
Андрей АксеновАндрей Аксенов, бывший игродел, сейчас известный своим движком полнотекстового поиска Sphinx и зажигательными выступлениями на конференциях, поделится своими мыслями на тему «Как прекратить писать» — в частности, слушатели узнают, как устроен идеальный код, чем оптимальный SQL-запрос отличается от оптимального 3D-полигона, и зачем программисту голова. Для любопытных, интересующихся разработкой игр, он также представит лекцию «3D-графика на трех пальцах», в которой кратко введет в курс устройства конвейера GPU, а также (еще короче) нескольких современных и не очень техник рендера.
Максим ЛапшинМаксим Лапшин, разработчик масштабируемых веб-сервисов, расскажет о разработке сервера видеостриминга на Erlang. Речь идет об open-source проекте ErlyVideo — набирающем популярность надежном, масштабируемом и бесплатном сервере для трансляции любого видео — от охранных камер до видеоконференций. Особый интерес представляет именно технология, ведь именно выбор такого малоизвестного языка как Erlang, обеспечил высокую надежность, масштабируемость и скорость разработки.
Erlang — надежный объектный язык для создания сетевых сервисов. Принятые в нём концепции процессов и немутабельности данных, делают его единственной платформой в которой одновременно существует и сборка мусора, и фиксированное время смерти объекта. Семантика языка одна из самых простейших среди распространенных на рынке.
Эти особенности делают Erlang прекрасным выбором для обслуживания statefull клиентов: видеостриминговый сервер (erlyvideo), самый распространенный jabber-сервер (ejabberd), покерные серверы (OpenPoker) и т.п. В докладе будет подробнее рассмотрено, почему же именно на Erlang такое делать очень удобно.
Андрей БибичевАндрей Бибичев, сейчас разрабатывающий в компании iPiSoft, как модно говорить, инновационно-прорывной продукт в области машинной графики и обработки видео, продукт, который сделает общедоступной технологию Motion Capture, выступит с докладом "На пороге дополненной реальности: к чему готовиться разработчикам".
Взаимодействие человека с цифровым миром претерпевает серьезные изменения прямо здесь и прямо сейчас: не успели до конца осознать чем нам, как разработчикам, грозит приход multi-touch устройств ввода, как на дворе мода на 3D-видео, а в двери во всю стучится новый тренд - дополненная реальность (Augmented Reality). В докладе после краткого экскурса в историю будет рассмотрено текущее состояние дел в освоении дополненной реальности: - использование датчиков: акселерометры, гироскопы, магнитные компасы, GPS
o это различные мобильные телефоны, Wii, Sony Move
o XSens
- использование маркеров: с инфракрасной подстветкой, в видимом диапазоне
o Sony Move, OptiTrack, Vicon
- использование структурированной подсветки
o на примере Microsoft Surface
- Z-камеры, выдающие картику + расстояние до объекта
o Microsoft Kinect (project "Natal"), её предшественники и аналоги
- безмаркерный захват движений
o OrganicMotion, iPi Soft Desktop Motion Capture
- сканирование 3d-поверхности по набору изображений:
o стереокамеры, 3d-сканеры
o воссоздание 3d-сцены с движущейся камеры
За каждой из технологий стоят определенные алгоритмы и области Computer Science. Чтобы создавать успешные приложения такого класса, надо в них если и не досконально разбираться, то хотя бы ориентироваться. Для примера в докладе достаточно подробно будут рассмотрены вопросы обработки данных поступающих с гироскопов и акселерометров. Не смотря на кажущуюся простоту, даже здесь есть трудности и место не совсем банальной математике. Остальные алгоритмы будут рассмотрены поверхностно и сильно упрощенно, но со ссылками где и что можно почитать дополнительно.
Все технологии будут продемонстрированы: какие-то на видеороликах, какие-то "живьем". В заключение мы попытаемся заглянуть в будущее и разобраться в перспективах разных подходов, проанализировать области применимости. Живая подача материала гарантируется!
Андрей Бибичев - мастер-класс по Domain-Driven DesignВ рамках конференции Андрей Бибичев проведет чытерехчасовой мастер-класс, где поделится большим опытом использования и преподавания такой важной для разработчика и архитектора инженерной практики, как Domain-Driven Design.
Мастер-класс состоит из двух частей:
- Интерактивный практикум по моделированию предметной области.
- Варианты архитектуры для реализации с обсуждением плюсов и минусов каждой и ответами на вопросы.
Для первой части понадобятся три добровольца, которые поучаствуют в выполнении веселого упражнения.
Содержание второй части: - Беглый обзор базовых шаблонов реализации доменной модели:
o Entities,
o Value Objects,
o Repositories,
o Factories,
o Services,
o Aggregates.
- Три варианта архитектуры
o Anemic Domain Model,
o Rich Domain Model,
o Pure Domain Model.
- другие альтернативы:
o Представление ссылок в модели: Id, типизированная ссылка на объект, Lazy-ссылка.
o Транзакционность: Unit-of-work или Active-record или сообщения
- Использование DSL и метаданных.
- Плохо развитые подтемы: разграничение прав доступа, универсальный GUI и API и так далее.
Чего не будет: - Живого кодирования (live coding).
- Готового каркаса приложения.
- Рекомендаций по использованию конкретных ORM-библиотек.
Что точно будет:
- Здравая доля ненапрягающего интерактив.
- Примеры кода.
- Авторское мнение по поводу различных подходов и архитектур, с указанием альтернативных точек зрения.
- Раздаточный материал.
Илья КанторИлья Кантор, основатель javascript.ru, поднимет тему удобной кросс-доменной авторизации и персонализации для DDOS-устойчивого сайта.
Доклад о сочетании технологий Varnish + Redis + JavaScript для разработки сайта со следующими требованиями:
- Устойчивость к DDOS-атаке, при которой на сайт приходят тысячи HTTP-запросов в секунду.
- Поддержка "анонимной" авторизации, при которой каждый посетитель отслеживается независимо от того, зарегистрирован он или нет, для него работают некоторые сервисы.
- Сайт и система авторизации работают на нескольких доменов 2го уровня одновременно - site.com, site.ru, site-anything.ru. Это нужно для SEO.
Будут разобраны основные компоненты системы, приемы реализации, которые позволяют им работать вместе и то, как компоненты могут быть использованы по-отдельности.
Илья также проведет двухдневные тренинги по профессиональному Javascript, AJAX/COMET, jQuery. Записывайтесь, они того стоят!
Записаться на тренинг по Javascript
Михаил ЧерномордиковВ рамках доклада Михаила Черномордикова Microsoft Architect Evangelist) "Windows Phone 7 - Обзор возможностей новой платформы разработки" состоится одна из первых в России демонстрация аппарата-прототипа на базе новой операционной системы Windows Phone 7. За несколько дней до этого выйдет финальная версия бесплатных средств разработки, а вскоре после конференции откроется новый магазин приложений Windows Marketplace, в котором российские разработчики смогут продавать свои приложения.
Презентация Михаила будет посвящена обзору технологических возможностей новой платформы для разработчиков, процессу создания приложений и игр на базе Silverlight и XNA, и размещения приложений для конечных пользователей.
Если у вас есть какие-то готовые приложения, то можно будет протестировать их на реальном устройстве. В своем втором докладе Михаил расскажет про текущий статус стандартов HTML5, CSS3 и SVG и их поддержку новым браузером Internet Explorer 9. Также разработчикам будут продемонстрированы дополнительные возможности по интеграции с браузером и операционной системой. Будет большая дискуссионная часть с ответами на вопросы разработчиков.
Дмитрий ЛобасевДмитрий Лобасев расскажет об вебинструментах поддержки разработки — про систему управления проектами DEVPROM — интегрированном комбайне из трекера задач, вики-системы и поддержки систем контроля версий.
Виталий ФилипповВиталий Филиппов, ведущий веб-программист отдела технологического развития компании CustIS, представит набор разработанного и доработанного интранет-groupware для быстрой, эффективной и радостной командной работы. Множество плагинов к MediaWiki, система викиблогов, интранет RSS-агрегатор, учет багов, задач, тесткейсов и многое, многое другое.
Дмитрий ЗавалишинДмитрий Завалишин:
Расскажет о текущем состоянии в разработке своего любимого детища — оригинальной операционной системы PhantomOS, близкой по концепции Microsoft Singularity, но при этом open-source (недавно была опубликована большая часть исходных кодов этой операционной системы). Микроядерная операционная система без файлов и процессов, только с вечно живущими объектами/нитями/тредами, привлекала любопытных даже на уровне концепции, а теперь она стала оживать, загружаться, и готова превратиться в настоящий коллективный проект.
Поделится опытом разработки широкого спектра заказных систем на Java, как высоконагруженных, так и систем с минимальными задержками. Ведь не секрет, что с одной стороны, Javа-стек критикуется, как излишне «тяжелый» (по сравнению, скажем, с стеком «PHP+система кеширования») для разработки высоконагруженных вебсервисов, с другой стороны, считается, что при необходимости системы с быстрой реакцией, сборщик мусора и «тормознутость» байткода гарантирует проигрыш аналогичной системе, написанной например на C/C++.
Ольга КочкинаОльга Кочкина, поделится тем, что творится на рынке труда в сфере IT. Кто «охотится» за IT-специалистами? Кто пользуется особой популярностью и имеет все шанс продать себя подороже? Сколько хотят и реально могут получить IT-специалисты? Вся правда о построении карьеры CIO? Ольга раскроет много тайн. И, наконец, вы сможете узнать и проверить на что же, на самом деле, способны профи из IT.
Денис ГладкихДенис Гладких в докладе "Silverlight/WPF: возврат от паттерна MVVM к MVP" на примерах обрисует особенности реализации знаменитых паттернов MVP и MVVM, применяемых при разработке приложений на WPF и Silverlight. Даст их подробное сравнение на примере данных технологий, укажет основные плюсы и минусы реализаций данных паттернов, а так же обрисует доработанный паттерн MVP с облегченной моделью представления, который является синтезом паттернов MVP и MVVM для разработки приложений на данных технологиях.
Макс ВысокихМакс Высоких в докладе "Использование сертификатов для web-приложений" приведет базовые сведения о шифровании, https о сертификатах, зачем их стоит применять. Затем расскажет о возможностях авторизации при помощи сертификатов в любых браузерах, без паролей и других сложных схем, использовании ЭЦП с помощью javascript и ActiveX для того, чтобы получить проверяемое подтверждение от клиента, также немного расскажет про OID’ы сертификатов, о том, как проверить сертификат на корректное использование для целей приложения.
Константин КичинскийОсновная цель доклада Константина Кичинского — показать, что прототипы приложений/сайтов можно делать быстро и эффективно, а хороший прототип позволяет наглядно обозначить функциональность приложения с точки зрения пользователя. При этом прототип сам по себе может выступать хорошим направляющим поводом для обсуждения приложения с заказчиком или внутри команды.
Прототипирование приложений с помощью Expression Blend + SketchFlow
- Место прототипирования в дизайне и разработке приложений. Важность быстрой разработки прототипа и получения обратной связи. Существующие подходы: бумажные прототипы, wireframes, html, интерактивные прототипы.
- Использование Expression Blend + Sketchflow для быстрой разработки прототипов. Основные концепции: экраны, компоненты, состояния.
- Использование готовых контролов и компонент.
- Генерация и использование образцов данных для наполнения прототипа содержанием.
- Задание поведений с помощью "Behaviours", расширение инструментария дизайнера путем программирования новых поведений.
- Получение обратной связи, версионность и генерация документации/отчетов.
- Цикл прототипирования и когда все же начинать переходить к разработке.
Ник МациевскийНик Мациевский попытается дать ответ на вопрос: "Насколько открыт Open Source?".
Существующие способы лицензирования ПО разделяются на закрытые (коммерческие), открытые и совсем открытые. К последним относятся GPL-типы лицензий, которые, фактически, блокируют любое другое лицензирования для ПО. Как с этим бороться?
Существует несколько вариантов поведения при лицензирования своего ПО или использовании чужого Open Source. Во-первых, можно разбить код на функциональные модули, независимые друг от друга. Во-вторых, возможно множественное лицензирование кода. При использовании стороннего кода необходимо либо четко соблюдать его лицензию, либо использовать его только как стороннего приложение со своим API.
При создании нового проекта лучше сразу использовать двойное или тройное лицензирование (GPL, MIT / BSD / Apache, коммерческая лицензия). Это оградит от ряда проблем в будущем.
Елена СагалаеваЕлена Сагалаева, ведущая известный блог alenacpp.blogspot.com, представит два доклада:
«C++0x» Доклад о разработке нового стандарта языка С++, чего хотели добиться, чего получилось, от чего пришлось отказаться.
Разработчики компиляторов GCC и MSVC++ не стали дожидаться выхода стандарта и уже много чего реализовали. Рассказ о некоторых наиболее интересных вещах из С++0х, которые можно использовать уже сейчас.
«Искусственный интеллект в играх». Доклад ориентирован на тех, кто вообще никогда не занимался ИИ в играх и хочет получить об этой области общее представление. Рассказ о задачах, которые стоят перед программистом ИИ в играх. О вечном споре с теоретиками по поводу нейронных сетей, об алгоритмах поиска пути, о некоторых не очень честных приемах и о вполне честных часто используемых подходах.
Алексей Алексеев, Николай ГребневАлексей Алексеев и Николай Гребнев расскажут как при разработке бизнес-приложений в модели Domain-driven design они предупреждают ошибки программиста с помощью статического анализа кода и доменной модели. А именно: возможности ORM-платформы по статическому анализу, преимущества широкого использования Linq, декларативных ограничений, модель состояний и формальной верификации элементов доменной модели.
Они разберут, в чем заключается удобство разработчика по использованию статического анализа и простота применения механизмов для задания формальных ограничений на модель предметной области. Интеграция средств статического анализа ORM в среду разработки, невозможность игнорирования ошибок, гарантия прохождения всех статических проверок до первого запуска программы. Ограниченные возможности запросов Linq к модели предметной области по сравнению с Linq to Objects и пути их преодоления.
Они расскажут, как обстоят дела с аналогичными механизмами в других ORM-системах и почему они решили реализовать собственную платформу для поддержки разработки в рамках DDD.
Никита ФроловНикита Фролов расскажет про разработку приложений под Apple iPhone. Что необходимо знать, чтобы начать работу над коммерческим приложением под iPhone или MacOS? Работа с XCode и iPhone SDK. Вопросы продажи приложения и работы с онлайн-магазином Apple.
- Почему вам может понадобиться писать под iPhone - для интереса или по работе.
- Общий взгляд на политику Apple в сравнении с Linux-системами и Microsoft - Apple не стремится упрощать жизнь разработчику, а вместо этого концентрируется на нуждах пользователя.
- Подходы к разработке приложений под iPhone - Веб-приложения, неофициальный способ разработки (jailbreak) и официальный (SDK). При разработке коммерческого приложения нужно использовать официальный.
- Пример Hello World в XCode (демонстрация)
- Кодовая часть: XCode
- Интерфейсная часть: Interface builder
- Отладка приложения на телефоне
- Работа с appstore (слайды)
- Получение лицензии
- Регистрация тестового телефона
- Получение и использование provisioning profiles
- Отправка приложения в appstore, вопросы approval'а.
Яков СироткинЯков Сироткин, известный блогер и разработчик программного обеспечения расскажет о проблемах, про которые не любят говорить на интервью, но с которыми приходится сталкиваться.
Как успешно разрабатывать программное обеспечение вопреки трудностям? Понравится ли это начальству? Что за это будет? Как жить дальше?
Максим ЦепковМаксим Цепков, технический директор компании CUSTIS расскажет о паттернах в реализации учетных систем.
Учетный функционал является непременной частью большого количества систем, играя во многих ведущую роль. Вместе с тем, не существует распространенных шаблонов его проектирования и реализации, в отличие от многих других распространенных классов задач. Исключение составляют лишь Patterns for Accounting от Мартина Фаулера (http://martinfowler.com/apsupp/accounting.pdf и http://martinfowler.com/eaaDev/AccountingNarrative.html), однако они ориентированы на относительно узкий класс систем и не завершены. За время существования нашей компании мы разработали множество учетно-аналитических систем и выработали свой шаблон их реализации — учетную машину. Он включает в себя не только бухгалтерский учет, но и широкий спектр задач, таких как ведение остатков на складе, или текущих долгов клиентов. Более подробную аннотацию, см. по ссылке.
Олег АксеновОлег Аксенов - архитектор и менеджер проектов в компании FogSoft, Microsoft MVP (Solution Architect 2005-2007, ASP/ASP.NET 2008-2010) -
поделится личным опытом в решении архитектурных проблем: - Необходимость выхода за рамки стереотипного мышления (всегда ли хороша многоуровневая архитектура).
- Факторы, влияющие на выбор технологий и методологий (плюсы и минусы консерватизма).
- Практические иллюстрации на основе разнообразных проектов (зависимости от бюджета/размера проекта).
- Набор рекомендаций.
Андрей КарповАндрей Карпов, сотрудник компании "Системы программной верификации",расскажет о пользе от использования инструментов статического анализа кода. Статический анализ - это методология выявления ошибок в исходном тексте программы, основанная на просмотре кода программистом, помеченного статическим анализатором там, где потенциально может находиться ошибка. Многие относятся к статическому анализу как к устаревшему и не актуальному методу. Действительно, существует ряд моментов, из-за которых кажется, что статический анализ приносил пользу раньше, когда средства разработки были намного менее функциональны. Однако если отбросить устаревшее, то оказывается, что методология статического анализа по-прежнему позволят существенно сократить цену устранения многих дефектов, за счет их обнаружения еще на стадии конструирования (кодирования). Более того, развитие языков, появление таких технологий программирования как OpenMP, увеличение среднего размера проекта делают применение статических анализаторов все более привлекательным для контроля качества проекта.
Дмитрий ХанецкийДмитрий Ханецкий (IBM), расскажет про автоматизации управления жизненным циклом программного обеспечения с технологией IBM Rational Jazz. Будут раскрыты темы: - Управления процессами разработки и модификации ПО на всех этапах жизненного цикла.
- Автоматизации всех этапов жизненного цикла приложений.
- Организации работы команды для достижения максимальной производительности и эффективности.
- Улучшения процессов разработки ПО.
- Оперативного реагирования на запросы бизнес- и функциональных заказчиков.
Антон ОвчинниковАнтон Овчинников, вице-президент по операциям компании Individ представит доклад "Деньги и внутренние часы компании-разработчика".
Большинство специалистов-разработчиков в компаниях по производству ПО не понимают, каким образом соответствует друг другу внутренняя и внешняя стоимость заказных проектов. При виде отличия внутренней и внешней ставки в 3-10 раз, возникает недоверие к работодателю и чувство собственной недооцененности, которое выливается в снижение продуктивности и высокую текучку кадров.
- Сколько денег тратится еще до начала проекта?
- Сколько денег тратится на удовлетворенность клиента, не описываемую в ТЗ?
- Как соотносятся друг с другом микро- и макроэкономика разработчика?
- Как работодатель оценивает эффективность всех и каждого в денежном выражении?
- Когда нужно бояться, что тебя заменят на субподрядчика?
Ответы на эти и другие вопросы в выступлении представителя компании, управляющей рисками на основе стандарта ISO 9001:2000.
Евгений КирпичёвЕвгений Кирпичёв из компании Grid Dynamics поделится своими знаниями, опытом и мыслями о многопоточном и распределенном программировании.
Доклад будет состоять из двух блоков:
- Корректность: Формальные методы (и хорошо забытая, но очень полезная "линейная темпоральная логика"), а также несколько паттернов, помогающих порою резко упростить разработку и повысить корректность многопоточных и распределенных систем.
- Cutting-edge технологии: Что интересного и революционного есть в некоторых современных функциональных языках (Haskell, Erlang, Clojure, F#), и что уже стало или вот-вот станет мейнстримом.
Андрей МайоровАндрей Майоров, директор компании BYTE-force расскажет об удобстве использования иерархических структур данных в своих приложениях.
С иерархическими структурами данных сталкивался каждый пользователь компьютера: диски, папки, файлы - все это привычно и понятно почти каждому. Что если пойти дальше и применить ту же концепцию иерархической организации для произвольных объектов вашего приложения? Любой объект - это аналог файла на диске. Объекты можно класть в контейнеры - в "папки". Контейнеры и сами по себе являются объектами, и их тоже можно положить в другие объекты, и так далее. Получается глобальная структура объектов, которая не только хорошо понятна пользователю на уровне концепции, но и очень устойчива к изменениям требований. Зачастую для добавления нового функционала в систему перепроектирования не требуется.
Сергей ПолаженкоСергей Полаженко рассмотрит проблему оценки рисков информационной безопасности и построение модели угроз в соответствии с методологией TRIKE v. 1.0. Кратко расскажет об актуальности и типовых проблемах безопасности современных приложений (вторичность, удорожание стоимости и усложнения разработки и т.п.). Кратко о терминологии: риски информационной безопасности, угрозы, аудит безопасности и т.п. И, наконец, даст обзор методологии TRIKE v. 1.0 на примере простого приложения.
Сергей ПугачевСергей Пугачев - Microsoft Silverlight MVP - выступит с докладом "Продвинутая разработка Silverlight-приложений". Доклад будет полезен для тех, кто уже имел опыт разработки Silverlight-приложений или RIA (RIA – Rich Internet Applications) на других платформах. Затрагиваются такие темы, как производительность Silverlight-приложений, модульное тестирование, поисковая оптимизация и т.д.
Евгений СавицкийЕвгений Савицкий расскажет о доступном каждой команде, будь то стартап или зрелая компания, способе построить инфраструктуру тестирования произвольных web-приложений. Всего один разработчик, используя набор бесплатных инструментов, способен за короткий срок реализовать автоматическую проверку работы приложения на различных платформах, с несколькими версиями связанных компонент, в различных браузерах, установленным различными способами (через инсталлятор, путем подкладывания скриптов самого приложения и т.п.).
Получается так: нажали одну кнопку и через некоторое время получили отчеты о прохождении тестов на всех нужных окружениях и вариантах развертывания. Более того, можно ничего и не нажимать, тесты запускются по расписанию.
Евгений БурмакоЕвгений Бурмако, энтузиаст опен-сорс движения, расскажет про проект Conflux - GPGPU для .NET Framework.
Параллелизм сегодня в моде, а программирование графических процессоров (GPGPU) находится на самом острие этой моды. Несмотря на ажиотаж, на этом поприще простора еще много – на сегодняшний день промышленные библиотеки для GPGPU есть только для C/C++.
В докладе пойдет речь об опыте разработки решения для GPGPU в экосистеме .NET – исследовательского проекта Conflux. Главная идея Конфлакса – достичь полной интеграции в хостовый язык C# и избавить программиста от необходимости явно использовать стек инструментов CUDA. Первая альфа-версия успешно этого достигла, скомпилировав C# код умножения матриц в ассемблер графических процессоров NVIDIA и успешно его исполнив. Интересным артефактом разработки Конфлакса явился декомпилятор и построенная вокруг него инфраструктура метапрограммирования. Сам по себе C# не очень приспособлен для этих целей, но и на нем получилось достичь интересных результатов.
Стас ФоминСтас Фомин, заместитель директора по информационным технологиям в компании CustIS, выступит с темой про системы поддержки разработки. Коллективная разработка всегда сталкивается с одними и теми же проблемами групповой работы - над кодом, документацией, тестами, ошибками и требованиями, корпоративными знаниями, и каждый решает эти проблемы по-своему. Кто-то увлекается изобретением систем собственной разработки ("изобретают велосипед"), кто-то идёт к вендорам, кто-то покупает платные специализированные узконаправленные системы.
С нашей точки зрения, разумный подход состоит в выборе, интеграции и доработке широкоизвестных систем, при этом важно учитывать не только функционал, но и открытость исходного кода.
К сожалению, интегрированность закрытых инструментов обычно означает страшную негибкость и неудобства, если отклонится от магистральных сценариев. Плюс, конечно, дороговизна.
Интегрировать разрозненные закрытые инструменты для создания удобного фреймворка сложно и неинтересно — разумно только в очень редких случаях, когда у платной системы нет альтернативного аналога с открытым исходным кодом. А сейчас такую область найти трудно - и в системах управления версиями, и в трекерах, и в вики-системах доминируют свободные решения.
Можно взять интегрированные системы с открытым исходным кодом: поставил и работает, нужно адаптировать — внес изменения. Однако существующие системы-комбайны проигрывают по функционалу отдельным проектам: слабые трекер и вики, недостаточная для коммерческой компании система прав. Они как швейцарский нож — вроде бы умеет все, но слабо.
Остается вариант с интеграцией разрозненных, но очень мощных и популярных систем с открытыми исходным кодом. Да, объем таких доработок будет относительно ничтожным, по сравнению с общим объемом системы, однако все равно эти затраты чувствительные, на что справедливо указывают продавцы платных решений.
В нашем докладе мы не просто расскажем об опыте интеграции («Talk is cheap, show me the code» © Линус Торвальдс), мы идем на большее, — мы публикуем в open-source полностью все используемые нами системы, с доработками и расширениями. Мы предлагаем сообществу совершенно бесплатно установить все это у себя, и возможно, присоединиться к развитию этого инструментального фреймворка. Более подробно про этот доклад можно узнать здесь.
Михаил КокоревМихаил Кокорев, ведущий разработчик в компании BYTE-force расскажет о некоторых доступных сейчас реализациях эффекта "волшебного зеркала" - дополненной реальности через веб-камеру. Будет рассмотрено, как устроены приложения, использующие дополненную реальность, на каком принципе работают и чем отличаются друг от друга. Продемонстрировано несколько различных методик распознавания изображений и соответствующих им программных решений.
Флип-чарты
Борис ТарелкинБорис Тарелкин - "Внешнее расширение подсистемы логгирования Java-приложений".
Подсистема логгирования имеет очень важное значение в процессе сопровождения программного обеспечения. При возникновении неисправностей в работе ПО, как правило, разработчикам предоставляется лог, по которому и производится поиск причин некорректной работы. Однако этой информации зачастую не хватает.
В докладе пойдет речь о реализации программы, расширяющей подсистему логгирования Java приложений в соответствии с нуждами разработчиков. Особенностью данного приложения является то, что оно может работать в нескольких режимах: параллельный - целевое ПО и дополнительный логгер работают параллельно, используя различные выходные потоки; удаленный - логгер работает на удаленной рабочей станции; интеграция с приложением - в этом режиме логгер работает как отдельный поток целевого приложения. Для этого режима характерна возможность использования внутреннего логгера приложения, что позволяет использовать одно и тоже форматирование сообщений, а также общий выходной поток.
Круглые столы
SQL vs. NOSQLНа конференции запланирован круглый стол/дискуссия на актуальную тему «SQL vs. NOSQL», чтобы выяснить, что вообще стоит за шумихой вокруг buzzword NOSQL, ведь сейчас под этой «маркой» скрываются огромный спектр разных баз данных. Там и простые распределенные словари («ключ→значение»), старинные сетевые БД, и реляционные БД без SQL → целый зоопарк, хотя обычно к NOSQL-базам причисляют те, кто жертвует целостностью и гибкостью в угоду производительности (ну и в CAP-теореме «играет» за A и немного за P, жертвуя C).
Так что интересно разобраться, когда NOSQL необходимо применять, а когда от SQL-баз отказываются от невежества и недостатка знаний об всех возможностях реляционных СУБД. ————————
На основании конкурсного отбора выбираются лучшие работы, которые демонстрируются докладчиками в течение дней конференции. |