Слайды презентации к докладу "Анонс OpenSource библиотеки для создания и изменения документов в формате OpenXml через Fluent-интерфейс" со второй конферции .NETConf
Росрезерв - система электронного документооборотаКРОК
Подсистема «Делопроизводство» ЕАСУ Федерального агентства по государственным резервам (далее – СЭД, Система) предназначена для поддержки работы с документами и позволяет вести учет и регистрацию документов, размещать электронные образы документов, организовывать и контролировать ознакомление и исполнение документов, формировать резолюции и поручения и отслеживать их исполнение, а также размещать документы в дела.
Росрезерв - система электронного документооборотаКРОК
Подсистема «Делопроизводство» ЕАСУ Федерального агентства по государственным резервам (далее – СЭД, Система) предназначена для поддержки работы с документами и позволяет вести учет и регистрацию документов, размещать электронные образы документов, организовывать и контролировать ознакомление и исполнение документов, формировать резолюции и поручения и отслеживать их исполнение, а также размещать документы в дела.
В докладе будет рассказано и показано, как расширить возможности стандартного ASP.NET MVC3 web-приложения, используя браузерный native-плагин, написанный на языке C++. Будет показано применение фреймворка FireBreath, позволяющего легко создавать гибкие, кроссплатформенные и кроссбраузерные плагины. Будут затронуты вопросы взаимодействия managed-кода на C# с native-кодом на C++, а также показаны возможности по вызову кода на C++/C# из клиентского JavaScript-кода web-страницы. Применение вышеназванных технологий будет показано на примерах, одним из которых является разработанный для нужд системы электронного документооборота плагин, позволяющий осуществлять взаимодействие со сканером документов, подключенным к компьютеру клиента, из кода на JavaScript.
Также будет даваться краткое описание других технологий, связанных с выполнением браузером не специфичных для него функций: NaCl, Pepper, и приведено сравнение этих технологий.
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)Ontico
Расскажем об архитектуре системы А/Б тестирования в нагруженном проекте:
• как сегментировать пользователей и собирать метрики на разных платформах;
• где хранить и как анализировать бизнес-показатели, статистическую значимость и практики проведения тестирования;
• как и зачем внедрять тесты в процессы принятия решений и развития продукта.
A/B тесты в Superjob это:
• более миллиона пользователей ежедневно;
• десятки тестов “на бою”;
• несколько платформ: десктопная и мобильные версии сайта, почтовые рассылки;
• единая система хранения на основе аналитической БД HP Vertica;
• показатели и бизнес-метрики в реальном времени.
В данном выступлении будет рассказно об общих принципах организации систем полнотекстового поиска на примере движка Sphinx. Будут рассмотрены структура и организация поискового индекса, на примере разобраны различные механимзы индексирования. Речь пойдет также и о продвинутых методиках работы со Sphinx: индексы реального времени, атрибуты с несколькими значениями, дельта-индексирование. Все это будет не только описано но и продемонстрировано, а желающие смогут проделывать все операции у себя на ноутбуках параллельно с докладчиком (см. описание программных требований).
Вторая часть будет посвящена непосредственно поиску и взаимодействию с движком Sphinx из программного кода на языке C#. Будут использованы механизмы обращения к Sphinx как используя нативный протокол, так и через MySQL-адаптер. Будет показано применение библиотек Sphinx.Client, Scarab и ByndyuSoft.Infrastructure.Sphinx, две из которых созданы автором мастер-класса. Также будут рассмотрены типовые ситуации использования Sphinx и шаблоны организации поиска.
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Ontico
В данном докладе я расскажу о том, как Lua помогает расширять функционал Rspamd, позволяя людям без особых знаний С писать эффективные правила фильтрации спама. Также будут рассмотрены особенности внедрения Lua в C код и основные приемы, применяемые при написании API для Lua приложений. Отдельное внимание будет уделено документации к Lua API, которая является одним из необходимых компонентов для opensource приложения.
Кроме этого, отдельная часть доклада посвящена анализу производительности Lua: использованию LuaJIT, сравнению вызовов C функций через FFI с традиционным вызовом, оптимизации строковых операций и таблиц в Lua.
В заключение будут рассмотрены некоторые открытые вопросы: будущее языка, наличие нескольких диалектов, статический анализ Lua стека, а также вопросы безопасности при JIT компиляции.
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)Ontico
- Use cases: спутниковое TV; десятки тысяч мониторов в клиниках; медиапланирование в телевизионных сетях с десятком поставщиков данных о зрителях.
- Еще кратко о том, почему появилось RTB, почему появились коннекторы между SSP и DSP (хорошо знаю про case 3 млн. транзакций в секунду), почему появились SSP и DSP "в одном флаконе".
- Основы планирования показов на TV в разных странах.
- Специфика TV по сравнению с Digital (модерация креативов, аудитория одного показа, вероятности показа, отсутствие cookies, большие задержки и ненадежные каналы, разнообразие форматов, разметка аудитории).
- Вызовы, которые стоят перед "традиционными" медиа (TV, DOOH - Digital out of home).
- Run-time технологии и offline сигналы - проблемы и решения.
- Интеграция и использование существующих подходов и технологий.
- Масштабирование и горизонты развития.
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Ontico
Images are a crucial component of all websites. They evoke emotions and prompt actions. They also form 64% of website data and have the highest correlation to page-load time. While modern image compression techniques can alleviate some of the negative impact of image loading, key web performance metrics such as the Speed Index and Time to Interact suffer due to our need for images.
HTTP2 puts a powerful tool at our disposal to address these issues for image loading. Tobias Baldauf explains how to use HTTP2’s superpowers to optimize image delivery, thereby increasing the perceived performance of your page, reducing load times, and driving conversions. Tobias explores the details of HTTP2’s multiplexing in depth and demonstrates how to leverage it to address image loading. Following Tobias' unique research, you’ll learn how to take granular control of the encoding process for progressive images to improve both performance and users’ emotional response time to page visuals.
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
Все мы знаем, что NGINX – отличный прокси, который может качественно и эффективно распределять нагрузку между бэкендами и фильтровать запросы по определенным условиям. Но при этом часто на практике возникают задачи, которые не решаются его декларативной моделью описания конфигурации: иногда для принятия решения нам нужно сходить в базу данных (в Redis или даже в MySQL), другой сервис или произвести какую-то более сложную обработку запроса/ответа. Именно здесь к нам на помощь приходит мощь Lua и OpenResty.
Из доклада вы узнаете:
* зачем нам Lua внутри NGINX, и почему из седьмого айфона убрали разъем под наушники;
* в каких ситуациях NGINX в паре с Lua справятся с задачей лучше вашего любимого PHP/NodeJS/Ruby/Python/Visual Basic и о прелестях асинхронного ввода-вывода без callback'ов;
* как залезть к NGINX под капот, используя только высокоуровневый язык;
* при чем здесь Openresty, или как упростить себе жизнь;
* примеры бизнес-кейсов: от "умного" прокси до самостоятельного веб-приложения;
* как оно ведет себя в продакшне под большой нагрузкой.
Семинар «ITSM и частное «облако» — просто созданы друг для друга!» http://www.croc.ru/action/detail/23917/
Презентация Романа Лимбергера, технического менеджера компании КРОК
Continuous Integration на стероидах / Александр Акбашев (HERE)Ontico
Доклад об одном из самых больших монолитных инстансов Jenkins в мире: один мастер переваривает больше 100 тысяч билдов в день и управляет в пике ~2500 executor'ов.
В докладе будут подняты следующие вопросы:
* Как развернуть CI в облаке?
* Как с помощью memcache экономить на железе для CI?
* Тормозит ли Jenkins сам по себе?
* Лайфхаки по использованию разных плагинов.
* Нужно ли мониторить GC у Jenkins?
* Какие плагины делают жизнь лучше, а какие - сильно хуже?
* Как сделать мониторинг Jenkins'a ~из скотча и линейки~ с FluentD + InfluxDB + Grafana.
И наверняка что-то еще...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Ontico
Клиентская производительность – бесконечный процесс. Разрабатываются новые фичи, меняется дизайн, технологии, браузеры – контролировать скорость нужно постоянно.
В этих условиях требуется автоматизированный процесс тестирования скорости клиентской части приложения. При этом тестировать нужно в настоящих браузерах, в максимально похожем на реальность окружении.
В этом докладе будем говорить о том, как совместить все эти требования и не потратить много месяцев на построение собственного "велосипеда". Предлагается рабочее решение задачи с использованием open source решения WebPagetest Private Instance. Рассмотрим основные достоинства и проблемы решения, а также способы использования этого инструмента.
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)Ontico
Я расскажу, как мы разочаровались в софтверных метриках энергопотребления на мобильных и собрали свое устройство для измерения потребления тока с батарейки.
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Ontico
Во вступлении мы рассмотрим, какие виды фрода существуют в RTB (bots, ad stacking, spoof sites).
Далее поговорим о том, что из вышеперечисленного мы умеем ловить алгоритмически, и дадим общее описание подхода к кластеризации бид-реквестов на "хорошие" (люди) и "плохие" (боты) с использованием методов machine learning. Обсудим, какой из способов обучения лучше подходит для данной задачи, по каким ключевым признакам кластеризуем, каким методом.
В технической части обсудим область параметров, при которых решалась задача, а именно: размер learning sample 200 млрд. строк бид запросов, при реализации на Hadoop расчет велся в GCE на 140 машинах класса n1-highmem-8 и занимал 22 расчетных часа. Реализация достаточно ресурсозатратная как с точки зрения времени, так и денег, поэтому встал запрос на вычислительную оптимизацию.
В оптимизационной части мы обсудим, как при переходе на Spark framework уже на первой фазе получилось достигнуть выигрыша в производительности в 3 раза по сравнению с Hadoop framework и это далеко не предел. Сейчас проект перехода в активной фазе и к моменту доклада мы ожидаем довести этот показатель до ~10 раз.
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Ontico
Jet Propulsion Laboratory – научная организация, производящая большое количество исследований и разрабатывающая ПО для большинства беспилотных программ NASA в области исследования дальнего космоса. В портфолио JPL такие проекты как марсоход Curiosity и зонд Voyager, покинувший солнечную систему после 25 лет полета и до сих пор поставляющий научную информацию. Высокий уровень автоматизации миссий и продолжительность явились основанием для беспримерных требований к качеству ПО, следствием которых стали недавно опубликованные рекомендации по написанию кода для проектов JPL.
Так как требования к веб-приложениям постоянно растут, а задачи, доверяемые им, становятся все более критическими, давайте применим стандарты кодирования NASA/JPL к JavaScript для повышения надежности, производительности и во имя лучшего мира.
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Ontico
Идея: обеспечить реально высокую скорость загрузки нагруженного сайта (от 100 тысяч посетителей в день) для всех пользователей, ничего не сломав и уложившись в бюджет.
Введение. Подходы к оптимизации фронтенда:
* Классический: делаем по GPSI или WPT.
* Самостоятельный: прикрутили PageSpeed и CDN.
* Промышленный: PDSA (попробовали, измерили, внедрили, подсчитали).
* Кейс: открытие новостного сайта за 1 секунду на любом устройстве.
Часть 1. Мониторинг клиентской производительности
* Google Analytics / Яндекс.Метрика / Битрикс.
* New Relic / mPulse / Айри / Navigation Timing API.
* Resource Timing API / User Timing Api: собственные метрики.
* Кейс: как понять из метрик сайта, что и где тормозит.
Часть 2. Внедрение ускорения
* Как выбрать KPI скорости сайта.
* Базовые правила: как автоматизировать, внедрить, раскатать.
* "Бюджет" на ускорение страницы: как распределить.
* Поточное и отложенное ускорение: как выбрать.
* Некоторые типичные ошибки "оптимизации".
* Кейс: нестандартные подходы к оптимизации производительности.
Часть 3. Узкое профилирование
* Тестируем CDN: что смотрим, как измеряем.
* Тестируем мобильные устройства: тормозит CPU или GPRS ?
* Тестируем асинхронную загрузку: подводные камни.
* Кейс: сколько "стоит" ошибка в клиентской производительности.
Заключение. Промышленное внедрение
* Кейс: "швейцарский нож" для оптимизации изображений.
* Кейс: когда реально работает отложенная загрузка.
* Кейс: HTTP/2. Реальные данные.
* Кейс: как ускорить 2000 ресурсов в секунду?
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Ontico
Здесь мы поговорим о производительности в браузере, а особенно об производительных анимациях и внутреннем устройстве браузера.
Основные тезисы выступления:
- Что такое лаги, и почему они происходят.
- Как браузер отрисовывает сайт.
- Что такое Vsync, и почему наша цель ~60fps.
- Как сделать анимацию плавной.
- Как браузер "ускоряется" при помощи GPU.
- Как браузеру помочь "правильно" ускориться.
- Основные ошибки при анимации (антипаттерны производительной анимации).
- CSS анимации vs JS анимации.
- Инструментарий для высокопроизводительных анимаций.
- Анимация на мобильных устройствах.
- Блокировка интерфейса, откуда берется и как избежать.
- Психология пользователя:
-- Мертвый интерфейс (почему критически важно, чтобы интерфейс реагировал).
-- Излишне быстрая реакция интерфейса.
-- Фиксация изменений (кейс от 37signals).
-- Почему индикаторы прогресса важны.
-- Нативный индикатор против собственного (кейс от facebook).
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
Это реальный рассказ об архитектуре Единой Фронтальной Системы (ЕФС) - системы, которая будет обслуживать абсолютно всех клиентов Сбербанка во всех каналах (отделения, интернет-банки, мобильные приложения, АТМ и т.д.). Это означает: десятки миллионов активных клиентов, 24х7, и еще пара NFR'ов, от которых порой вздрагиваешь по ночам :)
С одной стороны мы должны гарантировать 99.99% доступность, с другой стороны мы должны сокращать time-to-market для новых продуктов и быть готовыми обновлять ЕФС очень часто и по кусочкам – и это малая часть вызовов, с которыми нам приходиться сталкиваться.
В моем докладе я расскажу:
· Как мы гарантируем 99.99% доступности для всего ЕФС, включая хранилище (и особенно включая хранилище).
· Как мы масштабируемся на миллионы пользователей, оставаясь внешнее единой системой.
· Как мы реализуем zero downtime deployment, чтобы оставаться в 99.99% в условиях частых обновлений.
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
Достаточно давно уже был какой-то доклад о том, что собой представляет Вконтакте изнутри. В своем докладе я хотел быть отчасти обновить те знания и рассказать, какие из общедоступных инструментов есть в руках системных администраторов социальной сети. Разумеется, кроме чистой головы и прямых рук (лишнее зачеркнуть).
Я намереваюсь коснуться таких вопросов, как:
- Управление конфигурацией на очень большом числе серверов.
- Разграничение доступа.
- Развертывание кода на рабочей площадке.
- Мониторинг.
- Как мы, вообще, справляемся с таким гигантом малым числом людей?
Краткая история автоматизации тестирования с использованием Selenium RC и Python. Выбор способа организации тестов (Selenium IDE, Page Object модель и ее модификация). Преимущества и недостатки от использования каждого из способов. Способы хранения локаторов и их сравнение. Описание фреймворка py.test, базовый пример интеграции тестов и их использования.
В докладе будет рассказано и показано, как расширить возможности стандартного ASP.NET MVC3 web-приложения, используя браузерный native-плагин, написанный на языке C++. Будет показано применение фреймворка FireBreath, позволяющего легко создавать гибкие, кроссплатформенные и кроссбраузерные плагины. Будут затронуты вопросы взаимодействия managed-кода на C# с native-кодом на C++, а также показаны возможности по вызову кода на C++/C# из клиентского JavaScript-кода web-страницы. Применение вышеназванных технологий будет показано на примерах, одним из которых является разработанный для нужд системы электронного документооборота плагин, позволяющий осуществлять взаимодействие со сканером документов, подключенным к компьютеру клиента, из кода на JavaScript.
Также будет даваться краткое описание других технологий, связанных с выполнением браузером не специфичных для него функций: NaCl, Pepper, и приведено сравнение этих технологий.
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)Ontico
Расскажем об архитектуре системы А/Б тестирования в нагруженном проекте:
• как сегментировать пользователей и собирать метрики на разных платформах;
• где хранить и как анализировать бизнес-показатели, статистическую значимость и практики проведения тестирования;
• как и зачем внедрять тесты в процессы принятия решений и развития продукта.
A/B тесты в Superjob это:
• более миллиона пользователей ежедневно;
• десятки тестов “на бою”;
• несколько платформ: десктопная и мобильные версии сайта, почтовые рассылки;
• единая система хранения на основе аналитической БД HP Vertica;
• показатели и бизнес-метрики в реальном времени.
В данном выступлении будет рассказно об общих принципах организации систем полнотекстового поиска на примере движка Sphinx. Будут рассмотрены структура и организация поискового индекса, на примере разобраны различные механимзы индексирования. Речь пойдет также и о продвинутых методиках работы со Sphinx: индексы реального времени, атрибуты с несколькими значениями, дельта-индексирование. Все это будет не только описано но и продемонстрировано, а желающие смогут проделывать все операции у себя на ноутбуках параллельно с докладчиком (см. описание программных требований).
Вторая часть будет посвящена непосредственно поиску и взаимодействию с движком Sphinx из программного кода на языке C#. Будут использованы механизмы обращения к Sphinx как используя нативный протокол, так и через MySQL-адаптер. Будет показано применение библиотек Sphinx.Client, Scarab и ByndyuSoft.Infrastructure.Sphinx, две из которых созданы автором мастер-класса. Также будут рассмотрены типовые ситуации использования Sphinx и шаблоны организации поиска.
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Ontico
В данном докладе я расскажу о том, как Lua помогает расширять функционал Rspamd, позволяя людям без особых знаний С писать эффективные правила фильтрации спама. Также будут рассмотрены особенности внедрения Lua в C код и основные приемы, применяемые при написании API для Lua приложений. Отдельное внимание будет уделено документации к Lua API, которая является одним из необходимых компонентов для opensource приложения.
Кроме этого, отдельная часть доклада посвящена анализу производительности Lua: использованию LuaJIT, сравнению вызовов C функций через FFI с традиционным вызовом, оптимизации строковых операций и таблиц в Lua.
В заключение будут рассмотрены некоторые открытые вопросы: будущее языка, наличие нескольких диалектов, статический анализ Lua стека, а также вопросы безопасности при JIT компиляции.
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)Ontico
- Use cases: спутниковое TV; десятки тысяч мониторов в клиниках; медиапланирование в телевизионных сетях с десятком поставщиков данных о зрителях.
- Еще кратко о том, почему появилось RTB, почему появились коннекторы между SSP и DSP (хорошо знаю про case 3 млн. транзакций в секунду), почему появились SSP и DSP "в одном флаконе".
- Основы планирования показов на TV в разных странах.
- Специфика TV по сравнению с Digital (модерация креативов, аудитория одного показа, вероятности показа, отсутствие cookies, большие задержки и ненадежные каналы, разнообразие форматов, разметка аудитории).
- Вызовы, которые стоят перед "традиционными" медиа (TV, DOOH - Digital out of home).
- Run-time технологии и offline сигналы - проблемы и решения.
- Интеграция и использование существующих подходов и технологий.
- Масштабирование и горизонты развития.
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Ontico
Images are a crucial component of all websites. They evoke emotions and prompt actions. They also form 64% of website data and have the highest correlation to page-load time. While modern image compression techniques can alleviate some of the negative impact of image loading, key web performance metrics such as the Speed Index and Time to Interact suffer due to our need for images.
HTTP2 puts a powerful tool at our disposal to address these issues for image loading. Tobias Baldauf explains how to use HTTP2’s superpowers to optimize image delivery, thereby increasing the perceived performance of your page, reducing load times, and driving conversions. Tobias explores the details of HTTP2’s multiplexing in depth and demonstrates how to leverage it to address image loading. Following Tobias' unique research, you’ll learn how to take granular control of the encoding process for progressive images to improve both performance and users’ emotional response time to page visuals.
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
Все мы знаем, что NGINX – отличный прокси, который может качественно и эффективно распределять нагрузку между бэкендами и фильтровать запросы по определенным условиям. Но при этом часто на практике возникают задачи, которые не решаются его декларативной моделью описания конфигурации: иногда для принятия решения нам нужно сходить в базу данных (в Redis или даже в MySQL), другой сервис или произвести какую-то более сложную обработку запроса/ответа. Именно здесь к нам на помощь приходит мощь Lua и OpenResty.
Из доклада вы узнаете:
* зачем нам Lua внутри NGINX, и почему из седьмого айфона убрали разъем под наушники;
* в каких ситуациях NGINX в паре с Lua справятся с задачей лучше вашего любимого PHP/NodeJS/Ruby/Python/Visual Basic и о прелестях асинхронного ввода-вывода без callback'ов;
* как залезть к NGINX под капот, используя только высокоуровневый язык;
* при чем здесь Openresty, или как упростить себе жизнь;
* примеры бизнес-кейсов: от "умного" прокси до самостоятельного веб-приложения;
* как оно ведет себя в продакшне под большой нагрузкой.
Семинар «ITSM и частное «облако» — просто созданы друг для друга!» http://www.croc.ru/action/detail/23917/
Презентация Романа Лимбергера, технического менеджера компании КРОК
Continuous Integration на стероидах / Александр Акбашев (HERE)Ontico
Доклад об одном из самых больших монолитных инстансов Jenkins в мире: один мастер переваривает больше 100 тысяч билдов в день и управляет в пике ~2500 executor'ов.
В докладе будут подняты следующие вопросы:
* Как развернуть CI в облаке?
* Как с помощью memcache экономить на железе для CI?
* Тормозит ли Jenkins сам по себе?
* Лайфхаки по использованию разных плагинов.
* Нужно ли мониторить GC у Jenkins?
* Какие плагины делают жизнь лучше, а какие - сильно хуже?
* Как сделать мониторинг Jenkins'a ~из скотча и линейки~ с FluentD + InfluxDB + Grafana.
И наверняка что-то еще...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Ontico
Клиентская производительность – бесконечный процесс. Разрабатываются новые фичи, меняется дизайн, технологии, браузеры – контролировать скорость нужно постоянно.
В этих условиях требуется автоматизированный процесс тестирования скорости клиентской части приложения. При этом тестировать нужно в настоящих браузерах, в максимально похожем на реальность окружении.
В этом докладе будем говорить о том, как совместить все эти требования и не потратить много месяцев на построение собственного "велосипеда". Предлагается рабочее решение задачи с использованием open source решения WebPagetest Private Instance. Рассмотрим основные достоинства и проблемы решения, а также способы использования этого инструмента.
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)Ontico
Я расскажу, как мы разочаровались в софтверных метриках энергопотребления на мобильных и собрали свое устройство для измерения потребления тока с батарейки.
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Ontico
Во вступлении мы рассмотрим, какие виды фрода существуют в RTB (bots, ad stacking, spoof sites).
Далее поговорим о том, что из вышеперечисленного мы умеем ловить алгоритмически, и дадим общее описание подхода к кластеризации бид-реквестов на "хорошие" (люди) и "плохие" (боты) с использованием методов machine learning. Обсудим, какой из способов обучения лучше подходит для данной задачи, по каким ключевым признакам кластеризуем, каким методом.
В технической части обсудим область параметров, при которых решалась задача, а именно: размер learning sample 200 млрд. строк бид запросов, при реализации на Hadoop расчет велся в GCE на 140 машинах класса n1-highmem-8 и занимал 22 расчетных часа. Реализация достаточно ресурсозатратная как с точки зрения времени, так и денег, поэтому встал запрос на вычислительную оптимизацию.
В оптимизационной части мы обсудим, как при переходе на Spark framework уже на первой фазе получилось достигнуть выигрыша в производительности в 3 раза по сравнению с Hadoop framework и это далеко не предел. Сейчас проект перехода в активной фазе и к моменту доклада мы ожидаем довести этот показатель до ~10 раз.
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Ontico
Jet Propulsion Laboratory – научная организация, производящая большое количество исследований и разрабатывающая ПО для большинства беспилотных программ NASA в области исследования дальнего космоса. В портфолио JPL такие проекты как марсоход Curiosity и зонд Voyager, покинувший солнечную систему после 25 лет полета и до сих пор поставляющий научную информацию. Высокий уровень автоматизации миссий и продолжительность явились основанием для беспримерных требований к качеству ПО, следствием которых стали недавно опубликованные рекомендации по написанию кода для проектов JPL.
Так как требования к веб-приложениям постоянно растут, а задачи, доверяемые им, становятся все более критическими, давайте применим стандарты кодирования NASA/JPL к JavaScript для повышения надежности, производительности и во имя лучшего мира.
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Ontico
Идея: обеспечить реально высокую скорость загрузки нагруженного сайта (от 100 тысяч посетителей в день) для всех пользователей, ничего не сломав и уложившись в бюджет.
Введение. Подходы к оптимизации фронтенда:
* Классический: делаем по GPSI или WPT.
* Самостоятельный: прикрутили PageSpeed и CDN.
* Промышленный: PDSA (попробовали, измерили, внедрили, подсчитали).
* Кейс: открытие новостного сайта за 1 секунду на любом устройстве.
Часть 1. Мониторинг клиентской производительности
* Google Analytics / Яндекс.Метрика / Битрикс.
* New Relic / mPulse / Айри / Navigation Timing API.
* Resource Timing API / User Timing Api: собственные метрики.
* Кейс: как понять из метрик сайта, что и где тормозит.
Часть 2. Внедрение ускорения
* Как выбрать KPI скорости сайта.
* Базовые правила: как автоматизировать, внедрить, раскатать.
* "Бюджет" на ускорение страницы: как распределить.
* Поточное и отложенное ускорение: как выбрать.
* Некоторые типичные ошибки "оптимизации".
* Кейс: нестандартные подходы к оптимизации производительности.
Часть 3. Узкое профилирование
* Тестируем CDN: что смотрим, как измеряем.
* Тестируем мобильные устройства: тормозит CPU или GPRS ?
* Тестируем асинхронную загрузку: подводные камни.
* Кейс: сколько "стоит" ошибка в клиентской производительности.
Заключение. Промышленное внедрение
* Кейс: "швейцарский нож" для оптимизации изображений.
* Кейс: когда реально работает отложенная загрузка.
* Кейс: HTTP/2. Реальные данные.
* Кейс: как ускорить 2000 ресурсов в секунду?
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Ontico
Здесь мы поговорим о производительности в браузере, а особенно об производительных анимациях и внутреннем устройстве браузера.
Основные тезисы выступления:
- Что такое лаги, и почему они происходят.
- Как браузер отрисовывает сайт.
- Что такое Vsync, и почему наша цель ~60fps.
- Как сделать анимацию плавной.
- Как браузер "ускоряется" при помощи GPU.
- Как браузеру помочь "правильно" ускориться.
- Основные ошибки при анимации (антипаттерны производительной анимации).
- CSS анимации vs JS анимации.
- Инструментарий для высокопроизводительных анимаций.
- Анимация на мобильных устройствах.
- Блокировка интерфейса, откуда берется и как избежать.
- Психология пользователя:
-- Мертвый интерфейс (почему критически важно, чтобы интерфейс реагировал).
-- Излишне быстрая реакция интерфейса.
-- Фиксация изменений (кейс от 37signals).
-- Почему индикаторы прогресса важны.
-- Нативный индикатор против собственного (кейс от facebook).
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
Это реальный рассказ об архитектуре Единой Фронтальной Системы (ЕФС) - системы, которая будет обслуживать абсолютно всех клиентов Сбербанка во всех каналах (отделения, интернет-банки, мобильные приложения, АТМ и т.д.). Это означает: десятки миллионов активных клиентов, 24х7, и еще пара NFR'ов, от которых порой вздрагиваешь по ночам :)
С одной стороны мы должны гарантировать 99.99% доступность, с другой стороны мы должны сокращать time-to-market для новых продуктов и быть готовыми обновлять ЕФС очень часто и по кусочкам – и это малая часть вызовов, с которыми нам приходиться сталкиваться.
В моем докладе я расскажу:
· Как мы гарантируем 99.99% доступности для всего ЕФС, включая хранилище (и особенно включая хранилище).
· Как мы масштабируемся на миллионы пользователей, оставаясь внешнее единой системой.
· Как мы реализуем zero downtime deployment, чтобы оставаться в 99.99% в условиях частых обновлений.
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
Достаточно давно уже был какой-то доклад о том, что собой представляет Вконтакте изнутри. В своем докладе я хотел быть отчасти обновить те знания и рассказать, какие из общедоступных инструментов есть в руках системных администраторов социальной сети. Разумеется, кроме чистой головы и прямых рук (лишнее зачеркнуть).
Я намереваюсь коснуться таких вопросов, как:
- Управление конфигурацией на очень большом числе серверов.
- Разграничение доступа.
- Развертывание кода на рабочей площадке.
- Мониторинг.
- Как мы, вообще, справляемся с таким гигантом малым числом людей?
Краткая история автоматизации тестирования с использованием Selenium RC и Python. Выбор способа организации тестов (Selenium IDE, Page Object модель и ее модификация). Преимущества и недостатки от использования каждого из способов. Способы хранения локаторов и их сравнение. Описание фреймворка py.test, базовый пример интеграции тестов и их использования.
Клочков А. Автоматизация рассылки запросов потенциальным поставщикам средст...FMTeam
Конференция разработчиков на платформе FileMaker 2015. Выступление было посвящено демонстрации решений применяемых в разработанной системе закупок: формирование заказа, подготовка электронных писем и т.д.
Лекция #3. Введение в языки разметки web-страницЯковенко Кирилл
Web-программирование
Лекция #3. Введение в языки разметки web-страниц
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Web-программирование
Лекция #6. Введение в Django web-framework
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
1. Вторая конференция .NET разработчиков Анонс OpenSource библиотеки для создания и изменения документов в формате OpenXml через Fluent-интерфейс Тимур Рахматиллаев IndyCode twitter.com/eskat0n
2. Пользовательский сценарий Шаблон Пользователь скачивает документ Пользователь редактирует документ Генерация документа Обновление некоторых значений в документе Документ закачивается на сервер