Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
Docker-контейнеризация: от local до productionRoman Kudlay
Мы стремимся придерживаться подхода DevOps, и контейнеризация играет в этом не последнюю роль. В данном докладе я расскажу про то, как docker пронизывает жизненный цикл наших проектов, какие проблемы удалось решить, а какие остались.
Алексей Фомкин, Практическое применение Web WorkersAleksey Fomkin
WebWorkers имеют глобальное покрытие в 92% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
Docker-контейнеризация: от local до productionRoman Kudlay
Мы стремимся придерживаться подхода DevOps, и контейнеризация играет в этом не последнюю роль. В данном докладе я расскажу про то, как docker пронизывает жизненный цикл наших проектов, какие проблемы удалось решить, а какие остались.
Субъективная точка зрения на фронтенд разработку.
Площадка: IT-бар КЛЮЧ, https://vk.com/event69759919
Видео с доклада: https://www.youtube.com/watch?v=pyAYbbDJjPo
"Vue.js или как наконец отказаться от React"Fwdays
У каждой технологии есть свой жизненный цикл. Со временем повышается сложность задач и появляются новые, более удобные инструменты для решения этих задач. Настало время посмотреть на них.
В данном докладе мы постараемся разобраться, “а что же не так с React” и как может нам помочь Vuejs, который стремительно набирает популярность как новый трендовый фреймворк.
Make frontend development great again!
Материалы с доклада: http://getdev.net/Event/async-javascript
Рассказ о том, как работает асинхронность в JavaScript, кто стоит в очереди выполнения, почему в JavaScript никогда не будет процессорной гонки, как давать отсроченные обещания и что делать, если одна из ваших функций подхватила заразу асинхронности
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
Как создать Front End-команду для высоконагруженного проекта? Спикер расскажет, как можно выстроить эффективный процесс фронтенд-разработки с упором на технические аспекты: — Команда фронтенд-разработчиков. Зоны ответственности между теми, кто программирует UI (верстальщики), и теми, кто отвечает за бизнес-логику (Javascript-программисты). Идеальный состав команды. — Настроенный технологический процесс. Модульная организация (подготовка дизайна → разработка формата данных → создание шаблона → навешивание событий → тесты). — Разработка вместе с тестированием Unit-/DOM-тесты и подход PixelPerfect. — Вёрстка независимыми блоками и встроенный в приложение режим для вёрстки блоков.
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...Ontico
DOM - удобная абстракция, но обладая развесистой моделью, она медленна и ограничивает разработчика в применении эффектов. Тезис "DOM - это медленно" действительно справедлив - любое его изменение создает волну событий по документу и, если десктопные браузеры могут справиться с такой нагрузкой, то мобильные и встроенные системы зачастую буксуют. Именно сложность DOM-модели не позволяет достигнуть заветных 60 FPS, создает задержки при анимации и всячески расстраивает пользователей и разработчиков.
В докладе будет рассмотрен вывод HTML/CSS контента в "бездомном" режиме через WebGL, что позволяет веб-разработчикам использовать возможности современных 3D-ускорителей для реализации эффектов и производительности доступных современным игровым движкам.
В этом докладе:
- подходы к решению проблемы медленного DOM;
- существующие решения: react-canvas, методология Netflix;
- поиск идеального решения для оптимизации производительности;
- рендеринг HTML/CSS через WebGL, знакомство с HTML GL;
- ограничения и рекомендации.
JavaScript и инновации by Max Klymyshyn
Published July 5, 2014 in Technology
Как возникло то, что мы имеем в JavaScript, что уже существует и какие инновации нас ждут в ближайшем будущем
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Ontico
1. Типы шаблонизаторов DOM/innerHTML.
2. Внутренности AngularJS и почему он тормозит.
3. Внутренности ReactJS и почему он тормозит.
4. Менее раскрученные решения Blaze/PaperclipJS/Riot и что там сделано лучше.
5. Плюсы и минусы virtualdom.
6. Работа с DOM может быть быстрее, если:
6.1 Использовать одни и те-же участки DOM несколько раз.
6.2 Сокращать количество reflow с DocumentFragment.
6.3 Быстрое создание повторяющихся участков DOM с помощью cloneNode.
6.4 Создавать куски DOM ahead of time.
7. Встречаем temple - шаблонизатор, работающий в разы быстрее reactjs и не требующий загрузки 40k библиотеки времени исполнения.
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»Yandex
На примере карточек контактов мы покажем, как создать сайт на трехуровневой архитектуре с использованием полного стека БЭМ-технологий. Сервер мы реализуем на Express, а в качестве базовой библиотеки возьмем bem-core. Сырые данные будем преобразовывать во view-ориентированный BEMJSON с помощью декларативных шаблонов BEMTREE. При написании шаблонов BEMJSON → HTML применим новый JS-синтаксис BEMHTML. JavaScript на клиенте будет писаться с использованием блока i-bem.js.
The art of Node.js or how to do something cool using public data by Ilya Zapr...OdessaJS Conf
Today, economists believe that the most valuable resource is not oil, but data. The Internet, in turn, is the place where we can find any information, the main thing is to know where and what to look for.
During the report, I will tell how, having an original idea and a limited budget, make an application that will be really useful, and on which you can make money.
Сколько раз мы собираем ПО каждый день? Сколько раз за день код компилируется, тестируется и превращается в артефакты? Какие разнообразные сценарии возможны в казалось бы простой цепочке compile-test-assemble? Билд-системы из узкоспециализованных утилит превратились в мощный инструмент сборки, валидации, дистрибуции и автоматизации наших программных продуктов.
Это будет тематический доклад о том как настроить инструмент сборки для себя, а не против себя. Мы рассмотрим основные принципы работы Gradle DSL и возможности его расширения. Как и на чём их писать, как тестировать и как делиться результатами своего труда со своими коллегами.
Вместе с вами мы напишем автоматизированный сценарий сборки для проекта и покажем как ловко можно вставлять костыли всю силу и мощь Gradle 2.x.
Субъективная точка зрения на фронтенд разработку.
Площадка: IT-бар КЛЮЧ, https://vk.com/event69759919
Видео с доклада: https://www.youtube.com/watch?v=pyAYbbDJjPo
"Vue.js или как наконец отказаться от React"Fwdays
У каждой технологии есть свой жизненный цикл. Со временем повышается сложность задач и появляются новые, более удобные инструменты для решения этих задач. Настало время посмотреть на них.
В данном докладе мы постараемся разобраться, “а что же не так с React” и как может нам помочь Vuejs, который стремительно набирает популярность как новый трендовый фреймворк.
Make frontend development great again!
Материалы с доклада: http://getdev.net/Event/async-javascript
Рассказ о том, как работает асинхронность в JavaScript, кто стоит в очереди выполнения, почему в JavaScript никогда не будет процессорной гонки, как давать отсроченные обещания и что делать, если одна из ваших функций подхватила заразу асинхронности
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
Как создать Front End-команду для высоконагруженного проекта? Спикер расскажет, как можно выстроить эффективный процесс фронтенд-разработки с упором на технические аспекты: — Команда фронтенд-разработчиков. Зоны ответственности между теми, кто программирует UI (верстальщики), и теми, кто отвечает за бизнес-логику (Javascript-программисты). Идеальный состав команды. — Настроенный технологический процесс. Модульная организация (подготовка дизайна → разработка формата данных → создание шаблона → навешивание событий → тесты). — Разработка вместе с тестированием Unit-/DOM-тесты и подход PixelPerfect. — Вёрстка независимыми блоками и встроенный в приложение режим для вёрстки блоков.
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...Ontico
DOM - удобная абстракция, но обладая развесистой моделью, она медленна и ограничивает разработчика в применении эффектов. Тезис "DOM - это медленно" действительно справедлив - любое его изменение создает волну событий по документу и, если десктопные браузеры могут справиться с такой нагрузкой, то мобильные и встроенные системы зачастую буксуют. Именно сложность DOM-модели не позволяет достигнуть заветных 60 FPS, создает задержки при анимации и всячески расстраивает пользователей и разработчиков.
В докладе будет рассмотрен вывод HTML/CSS контента в "бездомном" режиме через WebGL, что позволяет веб-разработчикам использовать возможности современных 3D-ускорителей для реализации эффектов и производительности доступных современным игровым движкам.
В этом докладе:
- подходы к решению проблемы медленного DOM;
- существующие решения: react-canvas, методология Netflix;
- поиск идеального решения для оптимизации производительности;
- рендеринг HTML/CSS через WebGL, знакомство с HTML GL;
- ограничения и рекомендации.
JavaScript и инновации by Max Klymyshyn
Published July 5, 2014 in Technology
Как возникло то, что мы имеем в JavaScript, что уже существует и какие инновации нас ждут в ближайшем будущем
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Ontico
1. Типы шаблонизаторов DOM/innerHTML.
2. Внутренности AngularJS и почему он тормозит.
3. Внутренности ReactJS и почему он тормозит.
4. Менее раскрученные решения Blaze/PaperclipJS/Riot и что там сделано лучше.
5. Плюсы и минусы virtualdom.
6. Работа с DOM может быть быстрее, если:
6.1 Использовать одни и те-же участки DOM несколько раз.
6.2 Сокращать количество reflow с DocumentFragment.
6.3 Быстрое создание повторяющихся участков DOM с помощью cloneNode.
6.4 Создавать куски DOM ahead of time.
7. Встречаем temple - шаблонизатор, работающий в разы быстрее reactjs и не требующий загрузки 40k библиотеки времени исполнения.
Артем Курбатов — Мастер-класс «Динамический БЭМ-сайт на Node.js»Yandex
На примере карточек контактов мы покажем, как создать сайт на трехуровневой архитектуре с использованием полного стека БЭМ-технологий. Сервер мы реализуем на Express, а в качестве базовой библиотеки возьмем bem-core. Сырые данные будем преобразовывать во view-ориентированный BEMJSON с помощью декларативных шаблонов BEMTREE. При написании шаблонов BEMJSON → HTML применим новый JS-синтаксис BEMHTML. JavaScript на клиенте будет писаться с использованием блока i-bem.js.
The art of Node.js or how to do something cool using public data by Ilya Zapr...OdessaJS Conf
Today, economists believe that the most valuable resource is not oil, but data. The Internet, in turn, is the place where we can find any information, the main thing is to know where and what to look for.
During the report, I will tell how, having an original idea and a limited budget, make an application that will be really useful, and on which you can make money.
Сколько раз мы собираем ПО каждый день? Сколько раз за день код компилируется, тестируется и превращается в артефакты? Какие разнообразные сценарии возможны в казалось бы простой цепочке compile-test-assemble? Билд-системы из узкоспециализованных утилит превратились в мощный инструмент сборки, валидации, дистрибуции и автоматизации наших программных продуктов.
Это будет тематический доклад о том как настроить инструмент сборки для себя, а не против себя. Мы рассмотрим основные принципы работы Gradle DSL и возможности его расширения. Как и на чём их писать, как тестировать и как делиться результатами своего труда со своими коллегами.
Вместе с вами мы напишем автоматизированный сценарий сборки для проекта и покажем как ловко можно вставлять костыли всю силу и мощь Gradle 2.x.
With application and team growth such questions as keeping documentation up to date, sharing of the knowledge, communication between stakeholder and development team became more and more actual. BDD as methodology is aimed to minimize negative impact of those issues. Spock and Geb frameworks will help us to illustrate BDD implementation on specific example.
Micro-services have been getting a lot of attention in the past year, but is it really a viable solution or just a passing fad? In this presentation we'll look deep into Bintray.com 's service architecture and talk about how and why we found ourselves naturally migrating from a central web application to a flock of micro-services.
Docker в работе: взгляд на использование в Badoo через годBadoo Development
Мы в Badoo используем Docker больше года и на нашем примере попробуем поговорить о возможных моделях его применения.
- 85% наших сервисов работают в контейнерах: для чего и почему мы перенесли свои сервисы в контейнеры.
- Как мы подходим к сборке образов? Базовый образ: используем слои, следим за системными обновлениями.
- Автоматизация процесса сборки образов с нашими сервисами: Jira flow, Teamcity и другие страшные для админа слова.
- Лучшее ли место для тестирования production? Путь образа от сборки до Production.
- baDocker: webUI своими руками: зачем и почему?
- Как дать возможность управлять запущенными сервисами и их версиями разработчику.
- Docker: мониторинг и анализ работающих контейнеров.
Доклад Антона Турецкого на Highload 2015.
https://youtu.be/UgUuF_qZmWc
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
Мы в Badoo используем Docker больше года и на нашем примере попробуем поговорить о возможных моделях его применения.
+ 85% наших сервисов работают в контейнерах: для чего и почему мы перенесли свои сервисы в контейнеры.
+ Как мы подходим к сборке образов? Базовый образ: используем слои, следим за системными обновлениями.
+ Автоматизация процесса сборки образов с нашими сервисами: Jira flow, Teamcity и другие страшные для админа слова.
+ Лучшее ли место для тестирования production? Путь образа от сборки до Production.
+ baDocker: webUI своими руками: зачем и почему?
+ Как дать возможность управлять запущенными сервисами и их версиями разработчику.
+ Docker: мониторинг и анализ работающих контейнеров.
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ontico
РИТ++ 2017, AppsConf
Зал Найроби + Касабланка, 5 июня, 11:00
Тезисы:
http://appsconf.ru/2017/abstracts/2584.html
Большинство современных мобильных приложений так или иначе работает с каким-то API (а зачастую и не с одним). Количество запросов при этом может достигать десятков в минуту и понимание того, что сейчас происходит в сетевом слое вашего приложения, становится непростой задачей.
Я расскажу и покажу весь диапазон современных средств для мониторинга и отладки сетевых запросов: от самых простых до узкоспециальных - с плюсами/минусами каждого из инструментов и областями их применения.
— Реальная история из жизни о том, как мы внедряли Docker;
— Хочешь чтобы все коллеги узнавали тебя? Займись внедрением Docker в своей компании!;
— Собрать все шишки? Легко… или «Даунтайм, как неотъемлемая часть внедрения»;
— Будь сильным и смелым, если уверен в перспективах и необходимости своего внедрения;
— «Делать новое не ломая старого» – основная цель любого внедрения;
— Чекпоинт, как инструмент промежуточной оценки результатов;
— Как растут наши аппетиты или о новых инфраструктурных идеях;
— Мы сделали это, значит это вполне осуществимо;
— Самое сложное позади или какие приятные результаты вас ожидают, если все пошло правильно.
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Ontico
Взглянем ещё раз на концепцию изоморфных приложений. На первый взгляд, всё красиво — полный порядок, высокая организованность, быстрая выдача результата. Но так ли всё оптимистично? Что случится после того, как мы развернём приложение на сервере? Почему при росте нагрузки наше React-приложение начинает тормозить? Как масштабироваться? Купить ещё несколько серверов? Потом ещё немного? Есть способ лучше.
В рамках доклада рассмотрим следующие темы:
1. Что представляют собой изоморфные приложения?
2. Зачем они на самом деле нужны?
3. Рассмотрим варианты архитектуры.
4. Найдём слабые места (bottleneck).
5. Посмотрим на способы решения и оценим их эффективность.
6. Обсудим возможности масштабирования изоморфных приложений.
7. И, самое главное, ответим на вопрос — стоит ли игра свеч?
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)Ontico
WebWorkers имеют глобальное покрытие в 91% по данным http://caniuse.com. Тем не менее, не всякое современное веб-приложение использует их.
В своем докладе я постараюсь передать двухлетний опыт использования WebWorkers в нашей команде для написания веб-приложений с функциональностью, которая требует выполнения тяжелых вычислений, таких как преобразование бинарых файлов из одного формата в другой и шифрование.
Расскажу про эксперименты по переносу в воркер расчета diff'ов в React-подобной системе рендеринга и покажу наивную реализацию модели акторов на основе воркеров.
Также постараюсь подготовить слушателей к новым проблемам, которые могут возникнуть при использовании веб-воркеров.
Баба-Яга против! — Роман Дворнов, Ostrovok.ruYandex
В последнее время во фронтенде появляется столько нового и внедряется настолько быстро, что не все успевают осознать последствия. Хорошо это или плохо? Рассмотрим некоторые новинки с точки зрения «за», а главное – «против».
State of the Standardized Web
В 2014 году принципы Extensible Web начали воплощаться в новых стандартах. Поговорим о Web Crypto, Web Animations, Service Worker и других вещах, которые должны принципиально изменить веб-платформу в ближайшем будущем.
Сергей Константинов, Яндекс
Руководитель группы разработки API Яндекс.Карт. Окончил Южно-Уральский государственный университет. Разработкой API Яндекс.Карт занимается с 2008 года. С 2013 — участник Технической архитектурной группы Консорциума W3C.
В последнее время во фронтенде появляется столько нового и внедряется настолько быстро, что не все успевают осознать последствия. Хорошо это или плохо? Рассмотрим некоторые новинки с точки зрения «за», а главное – «против».
Конференция FrontTalks, Екатеринбург, 19 сентября
Видео: https://vimeo.com/107694664
Случалось ли, что вы видели (чужой) код и хотели все переписать? Бывало такое, что вы не могли понять, почему кем-то было принято конкретное решение, не другое? Хотели ли вы воскликнуть:«А я бы сделал еще круче!»?
Если вы задумывались об этом, вам будет интересно послушать историю о том, как эти вопросы возникали у Александра и Кирилла и как они решались в условиях большой компании.
Разработчики расскажут, как в самом начале пути вытаскивали шашки и шли в атаку на проблемную архитектуру. Но все оказалось не так просто, и по мере погружения в проект парни стали понимать, что архитектура большой системы — компромисс между различными подходами и решениями, инновациями и легаси (наследованным кодом), централизацией и децентрализацией компонентов. Докладчики наработали очень много опыта в решении архитектурных задач и поделятся опытом и выработанными принципами, которых придерживаются в настоящее время.
Во время доклада будут обсуждаться непростые вопросы, возникающие при принятии решений о том, как будет жить и эволюционировать система.
Вместе со слушателями Александр и Кирилл проделают упражнение по созданию «таблицы технологий» и её эволюции. Также они покажут, насколько важно инженерное решение на любой из стадий развития системы.
Web Components usher in a new era of web development based on encapsulated and interoperable custom elements that extend HTML itself. Built atop these new standards, Polymer makes it easier and faster to create anything from a button to a complete application across desktop, mobile, and beyond.
XSLT (eXtensible Stylesheet Language Transformations) is a language for transforming XML documents into other XML documents or HTML. It uses XPath to navigate XML documents and allows adding, removing, rearranging, and sorting elements in the output document. Some key points:
- XSLT transforms an XML source tree into an XML result tree
- It uses templates and applies templates to elements to transform the document
- Common elements include <xsl:template>, <xsl:value-of>, <xsl:for-each>, <xsl:if>, <xsl:choose>, and <xsl:apply-templates>
- XSLT is supported by browsers through built-in or third
9. Bowline
http://bowlineapp.com/
Все это - HTML
Ruby + WebKit + Javascript
и никакой магии!
10. Bowline
http://bowlineapp.com/
Все это - HTML
Ruby + WebKit + Javascript
и никакой магии!
11. Bowline
http://bowlineapp.com/
‣ Имеет MVC архитектуру
‣ Представления написаны на HTML/Javascript
‣ Binding HTML <-> Ruby
‣ Кроссплатформенный (OSX/Linux) (Windows... sorry...)
‣ Приложение можно упаковать (Portable)
12. Bowline
http://bowlineapp.com/
А где Ruby?
‣ Генерируем связь
>> bowline-gen binder users
‣ Получится что-то вроде
class UsersBinder < Bowline::Binders::Base
end
‣ И в представлении с помощью JS обращаемся
$('#users').bowlineChain('UsersBinder');
$('#users').invoke('admins');
$('#users div:first').invoke('instance_meth', 'arg1');
13. Bowline
http://bowlineapp.com/
‣ Проект на GitHub
https://github.com/maccman/bowline
‣ Пример Twitter клиента
https://github.com/maccman/bowline-twitter
15. TideSDK
‣ Бывший Titanium Desktop
‣ Возможность включения Ruby|Python|Php скриптов
‣ Полный доступ к файловой системе
‣ Кроме AJAX есть и низкоуровневый доступ к сети
‣ API для доступа к многим функциям рабочего стола и
окружения
19. ‣ Реализация Ruby 1.9.x для Mac Os X
‣ Интеграция Objective-C фреймворков и библиотек
‣ Интеграция с Xcode 4.3
‣ Just-in-time compilation (JIT, компиляция)
‣ Включение MacRuby(и гемов) в само приложение (bundle)
‣ Публикация приложений в AppStore
‣ Тестирование (MiniTest, DTrace)
23. MANNING
‣ Сайт проекта
https://github.com/MacRuby/MacRuby
‣ Много полезного...
https://github.com/MacRuby/MacRuby/wiki IN ACTION
‣ ... и примеров
https://github.com/MacRuby/MacRubySamples
Brendan G. Lim
WITH Jerry Cheung
AND Jeremy McAnally
24. MANNING
‣ Сайт проекта
https://github.com/MacRuby/MacRuby
‣ Много полезного...
https://github.com/MacRuby/MacRuby/wiki IN ACTION
‣ ... и примеров
https://github.com/MacRuby/MacRubySamples
Brendan G. Lim
WITH Jerry Cheung
AND Jeremy McAnally