Антон Тюрин — Облачная платформа Cocaine — облако своими рукамиYandex
Облачные технологии шагают вперед семимильными шагами, количество компаний, переносящих свои бизнес-приложения в облака, увеличивается. В тоже время не все готовы доверить свои приложения и данные сторонней компании, предоставляющей облачную инфраструктуру. В этом случае отличным решением будет использование нашей открытой облачной платформы Cocaine, которую вы можете развернуть сами.
Платформа активно развивается, и мы хотим поделиться новыми интересными возможностями, которые в ней появились за последнее время. Например, рассказывая о сервисах, которые нужны практически каждому облачному приложению: о том, как пользоваться уже существующими и как написать свои.
“Чем хорош Erlang вообще и для веб-разработки в частности?” Olga Lavrentieva
Юрий Жлоба (TvZavr.ru, Москва)
Доклад: “Чем хорош Erlang вообще и для веб-разработки в частности?”
О чем: Для какого именно веба хорош Erlang? Он не имеет ничего, сопоставимого с Ruby on Rails, тогда зачем его использовать в вебе? Вносим ясность. Примеры успешных веб-проектов на Erlang.
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решенияFProg
В докладе рассматривается мотивация и опыт перехода процесса разработки API с большим количеством внутренней логики с Python на сочетание Erlang и Haskell, проблемы в процессе разработки и способы их решения.
Что такое REPL, как он устроен и какие крутые возможности в нём заложены. Поговорим о выполнении кода в REPL и о том как работает автокомплит в динамических языках. Ответим на вопрос что такое vm.runInContext, перехватим парочку промисов, сделаем вывод результатов действительно приятным и даже узнаем как подгрузить нужные модули и не подать виду. В заключение рассмотрим потрясающие возможности, которые даёт нам инфраструктура npm и как это всё можно использовать в работе.
Доклад ориентирован на тех, кому небезынтересен мир Node.js, но будет доступен также и более широкому кругу JS-разработчиков. Надеюсь, для кого-нибудь этот доклад станет очередной ступенькой в изучении любимого языка.
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Serguei Gitinsky
30 мая состоялся большой съезд всех питерских айтишных митапов (регулярно встречающихся групп по той или иной IT теме). Наш ГИ (Главный Инженер) представлял там митап DevOps-40, который родился с участием нашей компании. Презентация была посвящена языку Perl и нашим двум крупным клиентам, которые используют приложения на нем в production…
Модным ныне словом «виртуализация» сейчас называют различные обёртки аппаратной виртуализации, однако этот термин намного старше и более всеохватывающий. На уровне ознакомления с технологией мы поговорим о виртуализации ресурсов в кластере и на примере pacemaker.
Поговорим, как и зачем функционально тестировать хайлоад, получать от тестов больше, чем «прошёл/не прошёл», а их количество превратить в качество продукта.
Фреймворк Slot, Good Parts, Александр БирюковDevDay
Расскажу о ключевых особенностях продукта: о какой изоморфности идёт речь, как мы управляем состоянием SinglePage-приложения и какой профит для SEO извлекли, с примерами кода. Посмотрим как быстро начать свой проект на Slot.
Рендеринг может больше: vue.js vs React, Андрей СолодовниковDevDay
О том, как перестать вручную контролировать DOM, писать логику навигаций и почему DOM-шаблонизация — это классно, а так же немного самокритики и сравнительных тест-кейсов.
Inversion of Control в деталях, Дмитрий КожевниковDevDay
Казалось бы всё сказано об инверсии управления, особенно в .NET. Но нетривиальные квесты вокруг дизайна, построенного на DI, продолжают возникать из проекта в проект. Предлагаю поговорить немного о прописных истинах, а потом перейти к более любопытным вещам и болезненным вопросам.
Чем плох ServiceLocator? Почему IoC-контейнер — это фреймворк, а не библиотека? Как быть с множественными реализациями? Convention over configuration?
Отдельно поговорим об архитектуре enterprise решений в свете возможностей IoC-контейнеров.
Год от года многие программисты решают одни и те же задачи, но не всегда среди огромного многообразия решений можно найти что-то подходящее. Вот и мы не смогли найти ни одной библиотеки логирования для C++, которая удовлетворяла бы всем нашим требованиям. Теперь у нас есть свой велосипед, и мы расскажем, чем он лучше других.
Манипулятор на Ti Stellaris Launchpad, Лёша РоманенкоDevDay
За последние несколько десятков лет робототехника стала очень доступной. Настолько, что можно собрать робота и запрограммировать его даже в домашних условиях, имея подходящий инструментарий. С чего начать? Как попробовать? Именно об этом мы и поговорим на докладе на примере контроллера TI Stellaris Launchpad (аналог Arduino), управляемого с Android-смартфона.
Все мы привыкли писать программы, результаты работы которых можно увидеть и услышать. Хотите, чтобы их можно было ещё и потрогать? На примере создания электронной игры «Лабиринт» вы увидите, как не имея знаний и опыта сделать первый шаг в мир hardware.
Расскажу про первый продукт 2ГИС, который не совсем про организации – 2GIS Dialer. О трудностях создания, и почему их не нужно бояться. Делая что-то новое, вы обязательно с ними столкнетесь:
— Команда будет меняться.
— Конкуренты будут поджимать и опережать.
— Промо-кампании не будут стрелять.
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев DevDay
С чего начинается проектирование и дизайн новых продуктов — со сценариев. Продуктовые сценарии работы — ключевой элемент в пазле проектирования новых взаимодействий. В докладе покажу какое место сценарии занимают в 2ГИСе, почему они важны и какие сценарии бывают.
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...DevDay
В своем докладе я расскажу о постановке цели и подготовительном этапе при проведении продуктовых исследований. Мы рассмотрим наиболее популярные виды исследований. Специфику исследований на локальном и междунароных рынках. Прикладную ценность результатов исследований. И это всё на примерах продуктов компании 2ГИС.
Матвей Мальков «Ещё один поиск контактов на Android»DevDay
Многие дайлеры не умеют делать поиск по Т9 клавиатуре. Те, что умеют, в большинстве своем делают поиск только по имени/фамилии контакта или по началу номера, а кто-то только с использованием английского алфавита. В 2GIS Dialer нам хотелось искать все контакты по имени, фамилии, телефону (любому из списка и с любого символа), а так же по должности и месту работу (опционально: e-mail и вебсайт, адрес и группы контактов). Кроме того, нам хотелось, чтобы пользователь на любом языке мог найти свои контакты. И в завершение необходимо было, чтобы весь этот поиск работал быстро. О том, как мы добились прогресса в этом деле я и расскажу.
Олег Годовых «Страх и ненависть в Event Bus»DevDay
У нас было 500 страниц спецификаций, 40000 строк кода, 2 офиса, полдюжины разработчиков, а также целое множество андроидов всех сортов и расцветок. Не то, чтобы это был необходимый запас для приложения крупной торговой сети. Но если начал собирать софт, становится трудно остановиться. Единственное, что вызвало у меня опасение — это сетевая библиотека. Нет ничего более беспомощного, безответственного и испорченного, чем писать AsyncTask на каждый вызов. Я знал, что рано или поздно мы перейдём на Event Bus.
1. С-extensions в Erlang
Щербак Илья
инженер-программист
Февраль 2013 www.eltex.nsk.ru
суббота, 9 февраля 13 г.
2. Что делаем?
или сервер видеоконференций (VCS) без батхерта
суббота, 9 февраля 13 г.
3. Задачи VCS
• Обработка сигнальных потоков
• Обработка медиа потоков (media processing)
суббота, 9 февраля 13 г.
4. Обработка медиа потока
• депакетизация
• декодирование
• процессинг
• кодирование
• пакетизация
суббота, 9 февраля 13 г.
5. Потоки данных в
mp
VCS одного потока
H264/AVC
720p@30
decoder encoder
депакетизатор-декодер ~2mbit/s
декодер-микшер ~320mbit/s
микшер-енкодер ~320mbit/s
енкодер-пакетизатор ~2mbit/s
rtpdepay rtppay
Video mixer
суббота, 9 февраля 13 г.
6. Erlang OTP
Erlang?
а почему бы и нет...
суббота, 9 февраля 13 г.
7. Erlang это
• легкие, изолированные процессы (~600 байт)
• иммутабельность данных
• распределенность
• Soft Realtime System
• SMP
суббота, 9 февраля 13 г.
8. Erlang – не панацея
а жаль...
суббота, 9 февраля 13 г.
9. Си как средство для
реализации
вычислительных задач
или средство реализации интерфейса к вычислителю
суббота, 9 февраля 13 г.
10. Erlang как средство
управления абстрактными
вычислителями
суббота, 9 февраля 13 г.
11. Методы Erlang
extensions
• port extensions
• Erlang Distribution Protocol (EDP)
• Native Implemented Function (NIF)
суббота, 9 февраля 13 г.
12. Методы взаимодействия
через port
• взаимодействие с внешним приложением
• кастомный протокол или erl_interfaces
• port driver
суббота, 9 февраля 13 г.
13. Методы взаимодействия
через Erlang DP
• C-node
• Go-node :)
суббота, 9 февраля 13 г.
15. Взаимодействие с кодом
vs
взаимодействие с приложением
скорость
vs
безопасность Erlang VM
суббота, 9 февраля 13 г.
16. Взаимодействие с
приложением
process
port
data flow
OS
process
Erlang VM
суббота, 9 февраля 13 г.
17. Взаимодействие с
кодом
process
shared library
port
Erlang VM
суббота, 9 февраля 13 г.
18. Методы вызова Си кода
Driver vs NIF
NIF Driver
контекст исполнение в исполнение в
контексте контексте
исполнения процесса порта
представление internal external term
данных structures format
исполнения по обратному
нативное
вызову от
кода исполнение
события
доступ к памяти прямой доступ через
процесса к куче механизмы VM
суббота, 9 февраля 13 г.
19. NIF & Driver &
Scherduler
NIF и Driver блокируют планировщик
суббота, 9 февраля 13 г.
20. Что плохого в долгой
блокировке
• появляется латентность при реакции на события
у процессов находящихся на планировщике
• нагрузка становится менее равномерной
• наблюдается лавинообразный рост памяти при
разблокировке
• архитектура Erlang VM подразумевает довольно
частое переключение контекстов erlang
процессов (reduction budget 2000 и не все BIF
атомарны)
суббота, 9 февраля 13 г.
21. Борьба с long execution
NIF Driver
сделать выполнение долгой задачи прерываемым
выносить исполнение в отдельную нить
async thread pool
суббота, 9 февраля 13 г.
22. NIF preemptable
Erlang side
large_workload(Arg) ->
case large_workload_nif(Arg) of
{continue, Reductions, NewState} ->
erlang:bump_reductions(Reductions),
large_workload(NewState);
{done, Reductions, Result} ->
erlang:bump_reductions(Reductions),
Result
end.
суббота, 9 февраля 13 г.
23. Асинхронные NIF
Erlang side
large_workload(Arg) ->
case large_workload_nif(Arg) of
{ok,wait}->
wait_result();
busy ->
{error,resource_busy}
end.
wait_result()->
receive
{done,Result}->
Result;
end;
суббота, 9 февраля 13 г.
24. NIF – самый быстрый
способ вызова Си кода
суббота, 9 февраля 13 г.