Мы так сильно полагаемся на фреймворки, что уже забыли, как работают компьютеры. Когда что-то сильно тормозит и непонятно, как это решить, приходится учиться мыслить алгоритмически. Как анализировать "узкие" места в коде? Выполняет ли код лишнюю работу? Как можно достичь того же результата, делая меньше? Практикуя алгоритмическое мышление, отвечать на подобные вопросы становится гораздо легче, и рано или поздно вы научитесь писать код так, чтобы он был быстрым изначально, по умолчанию. Так что позвольте мне познакомить вас с алгоритмами еще раз, в практичном виде, применимом в вашей повседневной работе.
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
Евгений Крутько, НИЦ «Курчатовский институт».
В докладе на примере программы моделирования динамики движения конструкций по методу конечных элементов рассматриваются возможности и практика распараллеливания вычислений. Речь в нём пойдёт как о технике создания новых вычислительных потоков, так и об использовании стандартов openMP и MPI.
Правильная организация клиент-карточного взаимодействия — Антон КорзуновYandex
Как говорил один человек, нет данных — нет проблемы. Но проблема в том, что в современном мире данные есть, и их много . Ещё в современном мире очень любят данные отображать, например, на карте — только это не всегда хорошо получается.
Из доклада вы узнаете о типичных ошибках передачи данных на карту и простых способах этих ошибок избежать.
Из презентации вы узнаете:
— как работает database/sql;
— интерфейс и реализации database/sql/driver;
— обзор популярных ORM и что с ними не так;
— как мы делали свой лучший ORM;
— и почему столько раз его переделывали.
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
Евгений Крутько, НИЦ «Курчатовский институт».
В докладе на примере программы моделирования динамики движения конструкций по методу конечных элементов рассматриваются возможности и практика распараллеливания вычислений. Речь в нём пойдёт как о технике создания новых вычислительных потоков, так и об использовании стандартов openMP и MPI.
Правильная организация клиент-карточного взаимодействия — Антон КорзуновYandex
Как говорил один человек, нет данных — нет проблемы. Но проблема в том, что в современном мире данные есть, и их много . Ещё в современном мире очень любят данные отображать, например, на карте — только это не всегда хорошо получается.
Из доклада вы узнаете о типичных ошибках передачи данных на карту и простых способах этих ошибок избежать.
Из презентации вы узнаете:
— как работает database/sql;
— интерфейс и реализации database/sql/driver;
— обзор популярных ORM и что с ними не так;
— как мы делали свой лучший ORM;
— и почему столько раз его переделывали.
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Platonov Sergey
За время работы над проектом был разработан удобный фреймворк для написания асинхронного кода. В докладе будет рассмотрено то, как он устроен и как со временем эволюционировал. Разберемся, как с помощью наших примитивов решать проблемы, часто встречающиеся в асинхронном программирование; будут примеры удачного и неудачного использования. Отдельно остановимся на сравнении получившихся средств с тем, что было добавлено в С++11.
Что API Карт забыл на сервере — Антон КорзуновYandex
Принято считать, что API Карт — это JavaScript-библиотека, которая работает в браузере. Это утверждение верно ровно в той степени, в какой сферичен конь в вакууме.
Из доклада вы узнаете, зачем API нужен бэкенд, почему писать его придётся вам и как API Карт будет помогать этой задаче с фронтенда.
P.S. Будет интересно разным слоям населения.
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Yandex
Алексей Куканов, Intel.
Последняя версия стандарта С++ добавляет в язык и библиотеку поддержки средства для использования потоков исполнения (threads) и синхронизации между ними. Однако это лишь необходимая низкоуровневая база для внедрения параллелизма. Эффективная разработка параллельных программ требует высокоуровневого API, реализующего типичные шаблоны использования параллелизма в виде, пригодном для применения в широком спектре алгоритмов и приложений. В докладе речь пойдёт о наиболее часто встречающихся параллельных шаблонах, реализованных в программных моделях Intel® Threading Building Blocks и Intel® Cilk Plus, и о примерах их использования.
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
В своем докладе Олег расскажет о замене стандартных функций на более быстрые и об ускорении работы python. Также продемонстрирует несколько примеров быстрых конструкций python.
Python&Printer / Андрей Пучко / penta.byPython Meetup
Андрей рассказал о личном опыте сражений за печать отчетов из программ на Python. Речь шла о полезных инструментах и форматах документов (PDF, RTF, DOCX, XLS, ODT, HTML) которые можно готовить к печати при помощи Python.
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)IT-Доминанта
Алексей Малашкевич - Автор и разработчик Pony ORM / Pony ORM / Россия, Санкт-Петербург
Александр Козловский - Автор и разработчик Pony ORM / Pony ORM / Россия, Санкт-Петербург
Pony ORM - маппер, который позволяет работать с базой данных с помощью генераторных выражений языка Питон. С помощью такого подхода Pony позволяет формулировать очень компактные и понятные запросы, которые автоматически транслируются в оптимизированный SQL. Pony обладает графическим редактором ER диаграмм - удобным инструментом для создания и редактирования модели данных.
В докладе разработчики Pony ORM расскажут про процесс перевода объектно-ориентированного запроса в запрос на языке SQL, о том какие оптимизации Pony применяет на каждом этапе обработки запроса, какие сложности стояли при разработке высокопроизводительного ORM и как Pony ORM облегчает и ускоряет разработку приложений.
http://www.it-sobytie.ru/events/2040
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“Platonov Sergey
Предлагаемый подход позволяет без труда получить параллельную асинхронную обработку данных без явного использования средств синхронизации, по максимуму задействуя доступные вычислительные ресурсы. Использование сопрограмм значительно упрощает написание многопоточного кода. Это дает возможность сконцентрироваться непосредственно на задаче обработки данных, не занимаясь вопросами синхронизации различных операций, включая асинхронную работу с сетью.
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Ontico
Многие современные высоконагруженные системы построены с использованием очередей. Не является исключением и внутренний сервис обработки OAuth токенов, который создала наша команда. Исключением является то, что и в качестве основного хранилища, и в качестве всех очередей используется один и тот же продукт - Tarantool. Более того, мы поставили себе амбициозную цель по отказоустойчивости - полную доступность сервиса, когда уходят любые два из трёх датацентров, и успешно её достигли.
При решении мы столкнулись с массой интересных инженерных задач и в нашем докладе мы расскажем вам о том, какие технологии и подходы использовались. В частности, рассмотрим более детально такие вещи, как:
- создание deadline очереди и проблемы, с ней связанные;
- создание кольцевой очереди;
- интеграция между собой шардинга, Raft и очередей;
- как мы победили split brain ;)
Докладчик: Данил Руденко
О докладе:
У нашего зоопарка опять проблемы, которые необходимо решить максимально технологично!
На первом докладе мы поговорили о сверточных нейронных сетях, в этот раз рассмотрим такие виды нейронных сетей как автоэнкодеры и GAN’ы( генеративные состязательные сети). Также углубимся немного в Keras, напишем кастомный загрузчик данных и немного посмотрим на Jupyter Notebook.
Видео: https://youtu.be/tu-ee_4uAGY
«Парсим CSS», Роман Дворнов (Avito)
В ходе работы над CSSO мне пришлось погрузиться в процесс парсинга CSS. В результате парсер (тот, что в CSSO) был не раз переписан. Пришло время сделать его отдельным инструментом. Новый быстрый детальный парсер CSS, его AST, области применения и кое-что ещё.
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Fwdays
Let's calculate an average of one column for each key, like the following query: SELECT key, avg(value) FROM table GROUP BY key. What can be more simple? But the question is: what is the most efficient way to do it? How to write code to achieve maximum performance on a variety of hardware?
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
О докладе:
Про Python и Django: зачем нужна красота и простота перфекционистам с дедлайнами, на примере Яндекс.Погоды.
Когда число сервисов, которые делаются в Яндексе, стало возрастать, дедлайны — поджимать, а от процесса разработки требовалось стать более гибким, возникла потребность в свежих решениях. В докладе на примере Яндекс.Погоды рассказывается, как в Яндексе делают сервисы с помощью языка Python и веб-фреймворка Django.
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Platonov Sergey
За время работы над проектом был разработан удобный фреймворк для написания асинхронного кода. В докладе будет рассмотрено то, как он устроен и как со временем эволюционировал. Разберемся, как с помощью наших примитивов решать проблемы, часто встречающиеся в асинхронном программирование; будут примеры удачного и неудачного использования. Отдельно остановимся на сравнении получившихся средств с тем, что было добавлено в С++11.
Что API Карт забыл на сервере — Антон КорзуновYandex
Принято считать, что API Карт — это JavaScript-библиотека, которая работает в браузере. Это утверждение верно ровно в той степени, в какой сферичен конь в вакууме.
Из доклада вы узнаете, зачем API нужен бэкенд, почему писать его придётся вам и как API Карт будет помогать этой задаче с фронтенда.
P.S. Будет интересно разным слоям населения.
Алексей Куканов — Параллелизм в C++: управляйте приложением, а не потоками!Yandex
Алексей Куканов, Intel.
Последняя версия стандарта С++ добавляет в язык и библиотеку поддержки средства для использования потоков исполнения (threads) и синхронизации между ними. Однако это лишь необходимая низкоуровневая база для внедрения параллелизма. Эффективная разработка параллельных программ требует высокоуровневого API, реализующего типичные шаблоны использования параллелизма в виде, пригодном для применения в широком спектре алгоритмов и приложений. В докладе речь пойдёт о наиболее часто встречающихся параллельных шаблонах, реализованных в программных моделях Intel® Threading Building Blocks и Intel® Cilk Plus, и о примерах их использования.
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
В своем докладе Олег расскажет о замене стандартных функций на более быстрые и об ускорении работы python. Также продемонстрирует несколько примеров быстрых конструкций python.
Python&Printer / Андрей Пучко / penta.byPython Meetup
Андрей рассказал о личном опыте сражений за печать отчетов из программ на Python. Речь шла о полезных инструментах и форматах документов (PDF, RTF, DOCX, XLS, ODT, HTML) которые можно готовить к печати при помощи Python.
Pony ORM - маппер нового поколения (Алексей Малашкевич и Александр Козловский)IT-Доминанта
Алексей Малашкевич - Автор и разработчик Pony ORM / Pony ORM / Россия, Санкт-Петербург
Александр Козловский - Автор и разработчик Pony ORM / Pony ORM / Россия, Санкт-Петербург
Pony ORM - маппер, который позволяет работать с базой данных с помощью генераторных выражений языка Питон. С помощью такого подхода Pony позволяет формулировать очень компактные и понятные запросы, которые автоматически транслируются в оптимизированный SQL. Pony обладает графическим редактором ER диаграмм - удобным инструментом для создания и редактирования модели данных.
В докладе разработчики Pony ORM расскажут про процесс перевода объектно-ориентированного запроса в запрос на языке SQL, о том какие оптимизации Pony применяет на каждом этапе обработки запроса, какие сложности стояли при разработке высокопроизводительного ORM и как Pony ORM облегчает и ускоряет разработку приложений.
http://www.it-sobytie.ru/events/2040
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“Platonov Sergey
Предлагаемый подход позволяет без труда получить параллельную асинхронную обработку данных без явного использования средств синхронизации, по максимуму задействуя доступные вычислительные ресурсы. Использование сопрограмм значительно упрощает написание многопоточного кода. Это дает возможность сконцентрироваться непосредственно на задаче обработки данных, не занимаясь вопросами синхронизации различных операций, включая асинхронную работу с сетью.
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Ontico
Многие современные высоконагруженные системы построены с использованием очередей. Не является исключением и внутренний сервис обработки OAuth токенов, который создала наша команда. Исключением является то, что и в качестве основного хранилища, и в качестве всех очередей используется один и тот же продукт - Tarantool. Более того, мы поставили себе амбициозную цель по отказоустойчивости - полную доступность сервиса, когда уходят любые два из трёх датацентров, и успешно её достигли.
При решении мы столкнулись с массой интересных инженерных задач и в нашем докладе мы расскажем вам о том, какие технологии и подходы использовались. В частности, рассмотрим более детально такие вещи, как:
- создание deadline очереди и проблемы, с ней связанные;
- создание кольцевой очереди;
- интеграция между собой шардинга, Raft и очередей;
- как мы победили split brain ;)
Докладчик: Данил Руденко
О докладе:
У нашего зоопарка опять проблемы, которые необходимо решить максимально технологично!
На первом докладе мы поговорили о сверточных нейронных сетях, в этот раз рассмотрим такие виды нейронных сетей как автоэнкодеры и GAN’ы( генеративные состязательные сети). Также углубимся немного в Keras, напишем кастомный загрузчик данных и немного посмотрим на Jupyter Notebook.
Видео: https://youtu.be/tu-ee_4uAGY
«Парсим CSS», Роман Дворнов (Avito)
В ходе работы над CSSO мне пришлось погрузиться в процесс парсинга CSS. В результате парсер (тот, что в CSSO) был не раз переписан. Пришло время сделать его отдельным инструментом. Новый быстрый детальный парсер CSS, его AST, области применения и кое-что ещё.
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Fwdays
Let's calculate an average of one column for each key, like the following query: SELECT key, avg(value) FROM table GROUP BY key. What can be more simple? But the question is: what is the most efficient way to do it? How to write code to achieve maximum performance on a variety of hardware?
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
О докладе:
Про Python и Django: зачем нужна красота и простота перфекционистам с дедлайнами, на примере Яндекс.Погоды.
Когда число сервисов, которые делаются в Яндексе, стало возрастать, дедлайны — поджимать, а от процесса разработки требовалось стать более гибким, возникла потребность в свежих решениях. В докладе на примере Яндекс.Погоды рассказывается, как в Яндексе делают сервисы с помощью языка Python и веб-фреймворка Django.
Как впихнуть утро в сосновом лесу в 4 килобайта. Иван Авдеев. UNIGINE Open Ai...Unigine Corp.
Иван Авдеев, программист, 2ГИС (Новосибирск).
Расскажу о демосцене с картинками:
- Лайв-экшн на шейдерах
- Лекция про демомейкинг-сайзкодинг
- Демошоу-плейлист
Функциональное программирование в примерах.
Язык Haskell: характеристики, история, сильные и слабые стороны, истории успеха и неудач.
Спецификация Haskell’98: синтаксис, компиляторы, интепретаторы, документация, IDE.
Особенности языка: тип Maybe, списки, классы типов, основы монад.
Библиотеки и фреймворки: Parsec, GenXml, HaXml
DSL
На десерт что-то из Existential Types, State Monad, ST Monad, Monad Transformers.
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JSFestUA
During the presentation, we will consider what advantages a front-end developer will get from knowledge of algorithms and data structures.
We will analyze real-world examples where this knowledge simplified logic and accelerated applications dramatically.
And finally we will understand the most necessary things that will allow us to determine the effectiveness of the code and easily improve it.
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
http://techtalks.nsu.ru
Видеозапись: http://www.youtube.com/watch?v=v7uBLSm6ft8
06 октября 2015. Как приручить дракона: введение в LLVM (Дмитрий Кашицын, HDsoft)
«В этом докладе мы кратко расскажем о таком звере, о котором много кто слышал, но немногие щупали. Что такое компилятор на самом деле? Чем LLVM отличается от других компиляторов? Как в LLVM происходит компиляция программы, как работают оптимизации? Наконец, какой путь проходит программа от разбора исходного текста до генерации исполняемого файла?
Лекция будет обзорной и не потребует от слушателей глубоких знаний теории компиляторов.»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
10 июня 2015. Дмитрий Кашицын (HDsoft) дает обзор LLVM.
http://techtalks.nsu.ru
Видеозапись: https://plus.google.com/events/ctes98f7uhf19t5jlvlbk24dan4
В этом докладе мы кратко расскажем о таком звере, как LLVM, о котором много кто слышал, но немногие щупали. Что такое компилятор на самом деле? Чем LLVM отличается от других компиляторов? Как в LLVM происходит компиляция программы, как работают оптимизации? Наконец, какой путь проходит программа от разбора исходного текста до генерации исполняемого файла?
Лекция будет обзорной и не потребует от слушателей глубоких знаний теории компиляторов.
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Ontico
В эпоху распределённых архитектур и микросервисов как никогда актуальными становятся вопросы — как эффективно сериализовать и передать данные. Большинство решает данный вопрос просто — используют стандартный, универсальный и всем понятный формат JSON. Другие же, ориентируясь на производительность, ищут в интернете бенчмарки и выбирают protobuf или msgpack.
Мы протестировали разные реализации статически (thrift, protocol buffers) и динамически (json, msgpack) типизированных протоколов для python; сравнили их производительность в разных сценариях, возможности, внутреннее устройство, удобство разработки.
Я расскажу о результатах нашего исследования, особенностях "приготовления" библиотек и выявленных подводных камнях.
JS Fest 2019/Autumn. Роман Савіцький. Webcomponents & lit-element in productionJSFestUA
В далекому 2016 році світ почув про вебкомпоненти, а одна ще тоді не дуже розумна команда, якій приходилось верстати дуже багато, вирішила спробувати те все в продукті, який би допоміг зменшити верстку. Про біди вебкомпонентів відомо всім, але про те, як вижити і дійти з альфи до стабільної версії знають не багато. Використання lit-element & lit-html і вирішення наболілих проблем, ось справня ціль моєї доповіді. Happy end обіцяю.
In this talk, attendees will see examples to improve their Javascript Performance making a few changes in their existent application. We will talk about Cache, Node.js common flow, and best practices. They'll see how to avoid performance problems working in Javascript loops, tips to work with Web APIs and best practices javascript applications.
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JSFestUA
As a subset of the JS community, react has seen a lot of so-called ""good practices"" these last years, made out of libraries and design patterns. As if it wasn't hard enough to stay sane in a crazy JS world, we're now doing the same in react.
Together, let's explore how such abundance of new techniques can actually be embraced, without making you lose your mind !
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JSFestUA
When we developing a loosely coupled and reusable application, often arises the question: how to arrange to communicate between services or applications? To a large extent, it depends on the nature of the request and the granularity of your applications or services.
We will discuss the two classic microservice integration patterns: service choreography and orchestration.
What is the difference between these two modes of communication? Which one we should use? How to ensure data consistency? How to implement disturbed transactions?
We will discuss these issues, consider an example of implementing orchestration on nodejs, and of course we will not forget about logging, monitoring and alerting.
JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...JSFestUA
Did you know that the beginnings of data visualization are strongly tied to solving some of the biggest problems humanity has ever faced? Wouldn’t it be more interesting to say that you’re not a doctor, but you do save lives than to say you’re just a developer?
When talking about data visualization and JavaScript your mind usually goes to D3.js. But if our data has a location-based representation, we are faced with a limited choice. The main topic of this talk is to introduce the audience with deck.gl, an open-source WebGL-powered library developed by Uber that allows us to create beautiful data visualizations of large datasets and raise the level of interactivity for the user on a whole new level. We’ll see how our code can tell a story and how that story can potentially save lives. A short introduction to the library and it’s API will be demonstrated along with practical use-cases, live-code examples and it’s integration with popular frameworks such as Angular and React.
JS Fest 2019/Autumn. Александр Товмач. JAMstackJSFestUA
Вы уже слышали о JAMstack, который пришел на смену SSR и SPA? Подход, который оптимизирует веб приложения так, что они ограничены только скоростью вашего интернет соединения. Никаких просадок при рендере на клиенте, никаких падений серверов от нагрузки, только SEO-friendly приложения без проблем с масштабируемостью.
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...JSFestUA
Blockchain and decentralized applications are getting used more and more often. Many big enterprises like IBM, Walmart, Alibaba, FedX, British Airways, and others are already integrating blockchain into their ecosystems.
As most of the applications on the web, decentralized applications require a client to make interaction with them user-friendly. I would like to share how to connect/integrate JavaScript applications with decentralized, blockchain services. Take a look at what are the differences between decentralized and standard backends, what challenges and issues developers might meet.
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developersJSFestUA
Say hello to the Angular CLI from new perspective. Get to know what schematics are and how you can use them for your purpose. Make use of ng add, ng update, ng new command and much more. Learn how to create read update and delete files automatically in your project, and how to execute npm tasks such as installing dependencies.
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...JSFestUA
Want to make a WordPress blog using React instead of PHP? There is a new tool on the React scene that has been generating a lot of buzz recently. It’s called GatsbyJS. Come learn how Tinder used GatsbyJS to implement our heavy-traffic lifestyle blog. We will also explore the challenges we faced while using this cutting edge technology.
After attending this talk, you will be able to: - Empower non-engineering teams to create fabulous content without engineers. - Empower engineering teams to code in their favorite programming languages. - Empower users to surf your fast, static website. No real-time API calls. Automagically optimized images. Speedy load-times. - Convince your boss to give everyone raises.
Bring your humor, forget the PHP, & let’s have some nerdy fun together!
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?JSFestUA
Литеральные типы в TypeScript, которые появились несколько лет назад, на самом деле произвели мини-революцию в языке, которую многие не заметили. Сегодня сложно представить себе TypeScript без этих типов и механизмов, построеных поверх них: mapped, indexer, keyof types и многие другие. В докладе я расскажу, как и почему литеральные типы появились в TypeScript и какие концепции они привнесли в язык. Поговорим также о том, почему с точки зрения разработчика анализатора TypeScript литеральные типы — это по-настоящему сложная языковая фича. Ну и конечно коснемся вопроса, как это все согласуется с реальным миром, а именно с JavaScript.
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the ScaleJSFestUA
Times Square is the most visited place globally with about 380,000 pedestrian visitors a day - roughly the same amount of people which go to Wix’s dashboard. Building a page which receives such high traffic requires having great performance and intelligent architecture. In this talk, Eyal will go over the challenges of rebuilding Wix’s dashboard, the architecture and how we got it to load under 1 second.
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratchJSFestUA
We created CMS using React, Google Cloud Storage and Google Cloud Functions from scratch.
I'd like to share the knowledge of how to build serverless CMS from scratch.
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотятJSFestUA
Что имеется в виду, когда говорят: "С ним приятно работать"? Бывает и наоборот, когда говорят: "Она классный специалист, но работать с ней я бы не хотел". Приходите послушать как формируется отношение к человеку на основании его профессиональных качеств и сможете унести с собой список конкретных полезных советов на этот счет.
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for RustJSFestUA
There are plenty of use cases for native modules in Node.js. Most importantly, one might want to interface with third-party libraries or operating system services that provide functionality not available in Node.js core out-of-the-box. Another popular option is to use a compiled language for a computationally-heavy algorithm while still using JavaScript for application business logic (although care must be taken and no premature optimization be made as often the cost of crossing the boundary may be higher than performance increase, unless you are doing some kind of image processing or linear algebra, for example). For a long time C++ was the only option to write native addons for Node.js (technically, there were projects that allowed to use other languages, but they were merely second-level bridges, thus twice FFI overhead). In this talk we will look at the history of native modules in Node.js, what N-API is, which problems does it solve and how it enables to use other systems programming languages. We will also look at the future perspectives and briefly discuss in which cases WebAssembly and upcoming WASI can be used instead of native modules.
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...JSFestUA
Decorators are part of proposal TC39 (stage 2), this means that sooner or later decorators will become a part of the JS. However, there is no need to wait! We can use decorators in JavaScript (with babel) and in TypeScript. Let's see how decorators can extend the functionality of classes and methods in a clean and declarative fashion. And many other things which gives you more flexibility.
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проектіJSFestUA
Ідея гексагональної архітектури полягає в тому, щоб відділити зовнішні взаємодії від бізнес логіки задопомогою так званих портів. Мета - ізолювати центральну логіку вашої програми від зовнішніх залежностей.
Під час виступу хочу поділитися досвідом розробки Nodejs додатку з використанням гексагональної архітектури. Обговоримо підводні камені, з якими можна стикнулися під час розробки, основні перевагами та недолікі архітектури. На прикладі розглянемо, як саме організувати архітектуру в Nodejs середовищі, а також стек технологій, що ми використовували, та підходи до тестування.
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядроJSFestUA
Использование различных фреймворков дает нам возможность писать быстрые приложения с минимальными затратами времени. Но за это наши пользователи платят продолжительностью первой загрузки и трафиком. Я расскажу как можно писать быстрые приложения с гораздо меньшим размером исходного кода с той же удобностью.
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...JSFestUA
В этом докладе, я хочу сравнить кластеризацию HTTP, TCP, UDP на процессах и потоках в NodeJS. Оценить производительность и использование ресурсов при разных подходах.
Это будет 6 живых демо взлома. Идея не обсудить сухую теория, а увидеть на практике, как не всегда очевидные ошибки являются источником серьезных уязвимостей в твоем JavScript приложении.
26. В такой чудесный, светлый день
Мне хочется писать стихами...
Но, право, ведь порою лень
Вы не желали обуздать и сами?
Контрольная, смотрю, весьма сложна,
И отвечать совсем уж неохота,
Когда за окнами прекрасная весна,
И о ассемблере не мыслиться чего-то...
53. чорти б мене побрали!!!
хай йому грець!!
дідько!
if (j < 0) {
if (triangles.length === 0) triangles.push([i]);
return;
}
for (let n = triangles.length, a = 0; a < n; ++a) {
let sa = triangles[a];
if (sa[0] === j) {
for (let b = a + 1; b < n; ++b) {
let sb = triangles[b];
if (sb[sb.length - 1] === i) {
triangles.splice(b, 1);
triangles[a] = sa = sb.concat(sa);
return;
}
}
sa.unshift(i);
return;
}
d3/d3-delaunay#23
63. Rich-Harris/sourcemap-codec#71
const lines = input.split(';');
for (const line of lines) {
const segments = line.split(',');
for (const segment of segments) {
const decoded = decode(segment);
for (const i of decoded) {
...
}
}
}
64. Rich-Harris/sourcemap-codec#71
for (let i = 0; i < input.length; i++) {
const c = input.charCodeAt(i);
if (c === 44) { // ","
...
} else if (c === 59) { // ";"
...
в три раза быстрее
83. отсортировать вокруг элемента,
чтобы все слева были меньше
o(n)
github.com/mourner/quickselect
39, 28, 28, 33, 21, 12, 22, 50, 53, 56, 59, 65, 90, 77, 95
90. 1. думайте, как оно работает 🤔
2. не бойтесь лезть в чужой код +
3. не бойтесь изобретать велосипеды 🚴
4. участвуйте в open source ❤
5. постоянно упрощайте 🌱
6. практикуйте оптимизацию 🔄, и вы научитесь
писать код, который сразу работает быстро