Слайды с конференции Devconf 2014. Рассказывается, как производительность влияет на конверсию, приводится 8 тонкостей языка, которые нужно знать, чтобы писать самый быстрый код из возможного.
Лекция для студентов АлтГТУ, проведенная 04.03.2015. В ходе лекции рассматривались следующие ключевые моменты:
1) Lambda project
2) Steam API
3) Date API
Лекция для сотрудников фирмы Soft-logic, проведенная 13.11.2014. В ходе лекции рассматривались следующие ключевые моменты:
1. Назначение lambda-выражений
2. Синтаксис lambda-выражений
3. Функциональные интерфейсы
4. Default и статические методы в интерфейсах
5. Ссылки на методы
6. Область действия переменных
7. Трансляция lambda-выражений
8. Сериализация lambda-выражений
Слайды с конференции Devconf 2014. Рассказывается, как производительность влияет на конверсию, приводится 8 тонкостей языка, которые нужно знать, чтобы писать самый быстрый код из возможного.
Лекция для студентов АлтГТУ, проведенная 04.03.2015. В ходе лекции рассматривались следующие ключевые моменты:
1) Lambda project
2) Steam API
3) Date API
Лекция для сотрудников фирмы Soft-logic, проведенная 13.11.2014. В ходе лекции рассматривались следующие ключевые моменты:
1. Назначение lambda-выражений
2. Синтаксис lambda-выражений
3. Функциональные интерфейсы
4. Default и статические методы в интерфейсах
5. Ссылки на методы
6. Область действия переменных
7. Трансляция lambda-выражений
8. Сериализация lambda-выражений
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Alexander Borzunov
Описание декоратора для автоматической оптимизации алгоритмов с помощью быстрого возведения матриц в степень в Python.
Смотрите подробнее:
GitHub: https://github.com/borzunov/cpmoptimize
Хабрахабр: http://habrahabr.ru/post/236689/
Python Package Index: https://pypi.python.org/pypi/cpmoptimize
Рассмотрены известные автору подходы к реализации как lock-free, так и fine-grained lock-based set/map: хеш-таблицы, деревья. Что из подходов STL может быть реализовано в lock-free манере, а что принципиально нет. Подводные камни lock-free и их нейтрализация.
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Platonov Sergey
За время работы над проектом был разработан удобный фреймворк для написания асинхронного кода. В докладе будет рассмотрено то, как он устроен и как со временем эволюционировал. Разберемся, как с помощью наших примитивов решать проблемы, часто встречающиеся в асинхронном программирование; будут примеры удачного и неудачного использования. Отдельно остановимся на сравнении получившихся средств с тем, что было добавлено в С++11.
A story of how we have implemented our own autoscaling for real-time data processing on AWS with help of Apache Kafka, Apache Samza, Druid and bits of game theory and achieved almost 2x hardware use reduction.
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Alexander Borzunov
Описание декоратора для автоматической оптимизации алгоритмов с помощью быстрого возведения матриц в степень в Python.
Смотрите подробнее:
GitHub: https://github.com/borzunov/cpmoptimize
Хабрахабр: http://habrahabr.ru/post/236689/
Python Package Index: https://pypi.python.org/pypi/cpmoptimize
Рассмотрены известные автору подходы к реализации как lock-free, так и fine-grained lock-based set/map: хеш-таблицы, деревья. Что из подходов STL может быть реализовано в lock-free манере, а что принципиально нет. Подводные камни lock-free и их нейтрализация.
Павел Сушин «Асинхронное программирование на С++: callbacks, futures, fibers»Platonov Sergey
За время работы над проектом был разработан удобный фреймворк для написания асинхронного кода. В докладе будет рассмотрено то, как он устроен и как со временем эволюционировал. Разберемся, как с помощью наших примитивов решать проблемы, часто встречающиеся в асинхронном программирование; будут примеры удачного и неудачного использования. Отдельно остановимся на сравнении получившихся средств с тем, что было добавлено в С++11.
A story of how we have implemented our own autoscaling for real-time data processing on AWS with help of Apache Kafka, Apache Samza, Druid and bits of game theory and achieved almost 2x hardware use reduction.
The Massif typeface family, designed by Steve Matteson, is rugged yet refined – and distinctly organic. “It’s my response to the uniformity and neutrality of so many sans serif typefaces being Matteson’s inspiration for Massif came from the rocky features found throughout the Sierra Nevada Mountains. Glacial activity both polishes and erodes fissures, which contrast in texture creating distinct patterns of light and shadow. His initial drawings for the design include sketches of Half Dome in Yosemite National Park. With 12 designs, Massif’s range of usage is deep and wide. its distinctive design traits, large family size, and extensive character-set make the design an excellent choice for a variety of branding, advertising and publication design projects. The Massif family is available as desktop fonts from the Fonts.com, Linotype.com and ITCFonts.com websites. It is also available as Web fonts from WebFonts.Fonts.com.
In the space between technical communication and localization lies global content strategy. The skills required by localization and technical communication complement each other, but it can be a bit confusing to know when to engage which team. After this session, you will have a better understanding of when to engage with localization and what questions to ask as you develop your global content strategy.
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
Scala-библиотека Slick прекрасно зарекомендовала себя как развитый и удобный инструмент работы с базами данных. Поддерживаются и простейшие текстовые SQL-запросы, и строго типизированные join’ы нескольких таблиц. Для построения запросов Slick предоставляет DSL, код на котором выглядит как обработка коллекций. Причем простые подзапросы могут использоваться для конструирования более сложных.
Slick имеет весьма любопытную внутреннюю архитектуру, которая делает возможным не только продвинутое использование, но и расширение библиотеки несколькими способами, о которых и пойдет речь в докладе.
(see also video: https://youtu.be/9n1zzwOGado)
Компилируемые в реальном времени DSL для С++corehard_by
В последнее время в промышленной разработке особую популярность обретают предметно-ориентированные языки программирования (Domain-Specific Lanugages, DSL). Они драматически упрощают разработку и дают возможность “программировать” не только инжеренерам, но и пользователям прикладных программ. В своем докладе я расскажу об опыте использования DSL применительно к С++, причем упор будет сделан на производительность кода DSL, и его мгновенную “встраиваемость” в запущенную программу путем компиляции DSL-кода в нативный код с помощью инструментария LLVM.
В последнее время в промышленной разработке особую популярность обретают предметно-ориентированные языки программирования (Domain-Specific Lanugages, DSL). Они драматически упрощают разработку и дают возможность “программировать” не только инжеренерам, но и пользователям прикладных программ. В своем докладе я расскажу об опыте использования DSL применительно к С++, причем упор будет сделан на производительность кода DSL, и его мгновенную “встраиваемость” в запущенную программу путем компиляции DSL-кода в нативный код с помощью инструментария LLVM.