Java имеет огромное множество книг о том как правильно писать код на этом языке, какие практити стоит использовать из раза в раз для реализации стандартных паттернов программирования. За 25 лет своей истории Java накопила много проблем. Доклад проливает свет как Kotlin решает проблемы, которые есть в Java и делает программистов счастливыми снова.
«Опыт использования каналов в корутинах в боевом проекте» Григорий ФедоровMail.ru Group
Каналы — это способ передавать поток данных между корутинами.
В этом докладе пойдет речь об опыте применения корутин и каналов в нашем новом проекте “Маруся”:
- Почему мы решились использовать каналы, несмотря на экспериментальный статус, и были ли альтернативы?
- Как использовали каналы мы, и как использовать правильно?
- А также о том, как пришлось написать пару операторов из Rx, и чем их можно заменить?
PostgreSQL + PostGIS + TimescaleDB is a ready-to-use symbiosis from a reliable RDBMS, a powerful set of geographical objects and calculations, and work with time-series data. This bundle perfectly solves the problem of storing telemetry, while leaving the whole PostgreSQL ecosystem in your hands.
Реактивный двигатель вашего Android приложенияMatvey Malkov
Презентация, объясняющая концепцию реактивных потоков с использованием Android SDK и RxJavа. Рассчитано на программистов с любым стажем, которые жеалют начать использовать эту концепцию в своих программах.
Реактивные потоки -- это круто.
«Опыт использования каналов в корутинах в боевом проекте» Григорий ФедоровMail.ru Group
Каналы — это способ передавать поток данных между корутинами.
В этом докладе пойдет речь об опыте применения корутин и каналов в нашем новом проекте “Маруся”:
- Почему мы решились использовать каналы, несмотря на экспериментальный статус, и были ли альтернативы?
- Как использовали каналы мы, и как использовать правильно?
- А также о том, как пришлось написать пару операторов из Rx, и чем их можно заменить?
PostgreSQL + PostGIS + TimescaleDB is a ready-to-use symbiosis from a reliable RDBMS, a powerful set of geographical objects and calculations, and work with time-series data. This bundle perfectly solves the problem of storing telemetry, while leaving the whole PostgreSQL ecosystem in your hands.
Реактивный двигатель вашего Android приложенияMatvey Malkov
Презентация, объясняющая концепцию реактивных потоков с использованием Android SDK и RxJavа. Рассчитано на программистов с любым стажем, которые жеалют начать использовать эту концепцию в своих программах.
Реактивные потоки -- это круто.
Экстремальная оптимизация производительности на примере MongoDB Java DriverVitebsk DSC
При работе с базами данных мы часто сталкиваемся с тем, что ORM фреймворки, принося нам удобство и гибкость, требуют непомерную плату – серьезное падение производительности. Казалось бы, чтобы решить эту проблему, достаточно просто отказаться от ORM и использовать низкоуровневый API. Но иногда и этого бывает недостаточно…
Презентация подготовлена по материалам выступления Евгения Берлога на витебской конференции “Developer's Software Conference” (31.10.2015). Запись выступления: https://events.epam.com/events/dsc2015/talks/104.
Reactive programming для успеха вашего стартапаVitebsk DSC
Что такое реактивное программирование. Каким принципам оно следует. Как оно может помочь создать современную систему, особенно если вы разрабатываете "с нуля".
Презентация подготовлена по материалам выступления Кирилла Миловидова на витебской конференции “Developer's Software Conference” (31.10.2015). Запись выступления: https://events.epam.com/events/dsc2015/talks/105.
Service mesh - это выделенный слой в инфраструктуре компании, который призван упростить взаимодействие между сервисами, а также сделать его надежным и безопасным. В юрисдикцию service mesh, по разным мнениям, входят: маршрутизация запросов, service discovery, балансировка, обработка ошибок, мониторинг, трейсинг, авторизация и аутентификация и др. вещи. Реализация тоже варьируется от размазывания функционала по всему стеку до концентрации большей части его в одной точке.
В своем докладе я бы хотел затронуть тему построения service mesh на примере Booking.com в контексте перехода от монолитной к сервис-ориентированной архитектуре. Мы погрузимся в детали некоторых компонентов и рассмотрим примеры решений удачных и не очень. Также затронем начальный опыт внедрения и эксплуатации L7 proxy envoy и linkerd.
Пользователи ожидают обновление данных в реальном времени. Твиты должны появляться без задержек. Заказы должны быть подтверждены и обработаны мгновенно. Приложения должны быть отзывчивыми. Мы, как разработчики, не хотим блокировать потоки в ожидании результатов. Мы хотим чтобы результаты были переданы нам как только будут готовы. Более того - при работе с коллекциями данных каждый отдельный объект должен быть передан сразу как будет готов. У нас есть инструменты для создания уведомлений, это легко. Нам нужны удобные инструменты для реакции на оповещения.
Из доклада вы узнаете как создавать удобные, отзывчивые и тестируемые приложения при помощи Reactive Extensions, как многократно сократить код обработки событий, а также как совместить существующий код на основе событий с данным фреймворком
JavaScript является одни из самых популярных языков программирования. На сегодняшний день его можно использовать не только в браузере, но и на сервере, в системах управления баз данных, программировать микроконтроллеры, писать десктопные и мобильные приложения. В данном докладе я расскажу о современном JavaScript и его областях применения (Mongo, CouchDB, Node, Meteor, tessel, PhoneGap, ReactNative и так далее), а также загляну немного в будущее и покажу вам куда он движется (ES2015, ES2016 ... ESxxxx, WebAssembly). И много-много всего интересного с демками)
Слайды вебинара http://www.ptsecurity.ru/lab/webinars/#42235 :
"Каковы формальные признаки уязвимого и защищенного кода? Что такое уязвимость? Как разглядеть в коде уязвимость для атак, принадлежащих неизвестному классу? Чем уязвимости бизнес-логики отличаются от «традиционных» уязвимостей? Мы ответим на эти вопросы на вебинаре, посвященном теоретическому минимуму предметной области Application Security и практическому применению этих знаний в задачах анализа защищенности и при разработке защищенного кода"
Экстремальная оптимизация производительности на примере MongoDB Java DriverVitebsk DSC
При работе с базами данных мы часто сталкиваемся с тем, что ORM фреймворки, принося нам удобство и гибкость, требуют непомерную плату – серьезное падение производительности. Казалось бы, чтобы решить эту проблему, достаточно просто отказаться от ORM и использовать низкоуровневый API. Но иногда и этого бывает недостаточно…
Презентация подготовлена по материалам выступления Евгения Берлога на витебской конференции “Developer's Software Conference” (31.10.2015). Запись выступления: https://events.epam.com/events/dsc2015/talks/104.
Reactive programming для успеха вашего стартапаVitebsk DSC
Что такое реактивное программирование. Каким принципам оно следует. Как оно может помочь создать современную систему, особенно если вы разрабатываете "с нуля".
Презентация подготовлена по материалам выступления Кирилла Миловидова на витебской конференции “Developer's Software Conference” (31.10.2015). Запись выступления: https://events.epam.com/events/dsc2015/talks/105.
Service mesh - это выделенный слой в инфраструктуре компании, который призван упростить взаимодействие между сервисами, а также сделать его надежным и безопасным. В юрисдикцию service mesh, по разным мнениям, входят: маршрутизация запросов, service discovery, балансировка, обработка ошибок, мониторинг, трейсинг, авторизация и аутентификация и др. вещи. Реализация тоже варьируется от размазывания функционала по всему стеку до концентрации большей части его в одной точке.
В своем докладе я бы хотел затронуть тему построения service mesh на примере Booking.com в контексте перехода от монолитной к сервис-ориентированной архитектуре. Мы погрузимся в детали некоторых компонентов и рассмотрим примеры решений удачных и не очень. Также затронем начальный опыт внедрения и эксплуатации L7 proxy envoy и linkerd.
Пользователи ожидают обновление данных в реальном времени. Твиты должны появляться без задержек. Заказы должны быть подтверждены и обработаны мгновенно. Приложения должны быть отзывчивыми. Мы, как разработчики, не хотим блокировать потоки в ожидании результатов. Мы хотим чтобы результаты были переданы нам как только будут готовы. Более того - при работе с коллекциями данных каждый отдельный объект должен быть передан сразу как будет готов. У нас есть инструменты для создания уведомлений, это легко. Нам нужны удобные инструменты для реакции на оповещения.
Из доклада вы узнаете как создавать удобные, отзывчивые и тестируемые приложения при помощи Reactive Extensions, как многократно сократить код обработки событий, а также как совместить существующий код на основе событий с данным фреймворком
JavaScript является одни из самых популярных языков программирования. На сегодняшний день его можно использовать не только в браузере, но и на сервере, в системах управления баз данных, программировать микроконтроллеры, писать десктопные и мобильные приложения. В данном докладе я расскажу о современном JavaScript и его областях применения (Mongo, CouchDB, Node, Meteor, tessel, PhoneGap, ReactNative и так далее), а также загляну немного в будущее и покажу вам куда он движется (ES2015, ES2016 ... ESxxxx, WebAssembly). И много-много всего интересного с демками)
Слайды вебинара http://www.ptsecurity.ru/lab/webinars/#42235 :
"Каковы формальные признаки уязвимого и защищенного кода? Что такое уязвимость? Как разглядеть в коде уязвимость для атак, принадлежащих неизвестному классу? Чем уязвимости бизнес-логики отличаются от «традиционных» уязвимостей? Мы ответим на эти вопросы на вебинаре, посвященном теоретическому минимуму предметной области Application Security и практическому применению этих знаний в задачах анализа защищенности и при разработке защищенного кода"
Developers want to make very few errors in their code and to spot them as early as possible: with the help of unit tests, or earlier, during compilation, or best of all, immediately after they typed something wrong in their IDE. This is what static code analyzers are for. Some of them are built-in, others need to be run separately, some check just about any code, the others require it to be annotated first, and there are tools that are a little bit of all. Do the ends justify the means? Is it even worth trying? What kind of errors can be spotted by static code analysis? How sure can we be if what an analyzer gives us is a real error or a false positive? This talk hopefully helps you answer these questions.
Практические основы тестирования на php Unit-test: понятия, тонкости, пути решения, вопросы для проработки.
PHPUnittest fast start
Разработано http://webgloss.ru
As a part of kotlinx.coroutines 1.2 Flow was introduced as a cold asynchronous data stream. How does it work? What we can do with it? Is it that we waiting so long for replacing Rx? The talk has answers to them.
Best practises how to reduce Android application install size & improve your app install conversation rate. Video can be found here youtu.be/ksgW-VHH-Qo
ConstraintLayout. Fell the Power of constraintsKirill Rozov
Talk about ConstraintLayout and visual Layout Editor in Android Studio 3.0.
Project that was showed on talk https://github.com/kirich1409/ConstrinatLayoutIntro.
Kotlin 1.2: Sharing code between platformsKirill Rozov
Discover what's new in Kotlin 1.2: syntax, standard library, performance and , of course, "Multiplatform project". Take closer look at how Kotlin authors see way of reusing code between platforms.
19. Операции с коллекциями
List<Device> qualcommCpuDevices = new ArrayList<>();
for (Device device : devices)
if (device.getCpu().equals("Qualcomm"))
qualcommCpuDevices.add(device);
List<Device> largeRamQualcommDevices = new ArrayList<>();
for (Device device : qualcommCpuDevices)
if (isLargeRamDevice(device))
largeRamQualcommDevices.add(device);
List<String> deviceNames = new ArrayList<>();
for (Device device : largeRamQualcommDevices)
deviceNames.add(device.getName());
45. С чего начать изучение
• kotlinlang.org
На русском kotlinlang.ru
• Kotlin Koins: cерия заданий для изучения языка
• “Kotlin в действие” Жемеров, Исакова
Belarus Kotlin User Group