«Бутылочное горлышко многопоточных программ – кто виноват, и что делать. Мастер-класс.»
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/
2 июля 2011, Я.Субботник в Екатеринбурге
Алексей Андросов "HTML5 в Я.Почте"
О докладе:
Вопросы практического применения современных технологий передачи и хранения данных в браузере на примере Яндекс.Почты, проблемы и ограничения, с которыми можно столкнуться, а также способы их решения.
Для чего нужны WebSocket, localStorage и кроссдоменные AJAX запросы? Как реализовать их поддержку с учетом старых браузеров, которые не поддерживают эти технологии? Как обойти проблемы и баги в этих технологиях?
The document discusses several new features in Java 8 including lambda expressions, default methods in interfaces, and type annotations. It provides examples of using the new date/time API, annotations on types, and default methods in interfaces. It also summarizes features like Java profiles, parallel collections, and improvements to the Java Virtual Machine.
«История строителя: Maven - от новичка до мастера. Сборка простых и сложных Java- проектов.»
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/
The document summarizes a presentation about the Phoenix framework. It includes:
1. An introduction from Chris McCord, inventor of Phoenix, about how Phoenix is similar to and different from Ruby on Rails.
2. Sections discussing how Phoenix draws inspiration from Rails but is optimized for concurrency using the Erlang VM and functional programming principles like immutability.
3. Advice that incremental adoption of Phoenix for new features or rewrites is better than sudden wholesale changes, to minimize disruption for developers and users.
This is a presentation given on October 24 by Michael Uzquiano of Cloud CMS (http://www.cloudcms.com) at the MongoDB Boston conference.
In this presentation, we cover Hazelcast - an in-memory data grid that provides distributed object persistence across multiple nodes in a cluster. When backed by MongoDB, objects are naturally written to Mongo by Hazelcast. The integration points are clean and easy to implement.
We cover a few simple cases along with code samples to provide the MongoDB community with some ideas of how to integrate Hazelcast into their own MongoDB Java applications.
In this webinar we will compare the complexities involved in Terracotta with the code/configuration changes to migrate to Hazelcast. You will learn about important features of Hazelcast such as IMDG capabilities, off-heap data storage, distributed collections, etc. and the feature-rich product portfolio of Hazelcast. We will cover how Hazelcast can scale up and out dynamically and without downtime against the static configuration of Terracotta. Expect to leave the webinar being more educated about Hazelcast in terms of architecture, important features and best practices.
We’ll cover these topics:
- Hazelcast architecture and features
- Terracotta distributed architecture
- Scale – Vertical + Horizontal = Showcase no downtime feature in Hazelcast
- BigMemory vs. HDC
- Ease of installation – two jars against multiple jars
- Config and Code changes – cache vs. maps, off-heap vs. HDC
- Portability of Client APIs – IMap, IQueue, Topics, etc.
- Added functionalities – Showcase IExecutorService, EntryProcessors, Multimap, etc.
- DSO – Showcase EntryProcessors taking place of DSO
- Live Q&A
Presenter:
Rahul Gupta, Senior Solutions Architect
Rahul is a technology-driven professional with 12+ years of experience in building and architecting highly scalable and concurrent, low latency business critical distributed infrastructure. His expertise lies in Big Data and Real Time Analytics space where he specializes in big data governing technologies and Enterprise Architecture. Rahul is an expert in working with decision makers across different business verticals within an organization and guiding them in right decision making through in-depth technical understanding, analysis and evaluation procedures to bring home critical deals with high business values.
When you work in a small collocated team many engineering practices and approaches are relatively easy to use and adapt. In large project with many teams working on the same product this task is not so simple. I want to share experience report in implementing Code Review practice in big product development team (more than 150 people, 10+ feature teams). In this talk we will review what approaches works in such setup and what don’t work, what tools and additional practices are needed to support Code Review and make it more effective, what difficulties and blockers will you probably see in the real life cases, what useful metrics could be produced by this practice.
Of course Java 8 is all about lambda expressions and this new wonderful Stream API. Now the question is, what's left in Java 8, once we've removed everything : lambdas, streams, collectors, java FX and Nashorn ? This presentation gathered all these new diamonds, scattered all around the JDK, brand new classes, and new methods in existing classes.
The document discusses new features in Java related to numbers and strings. It describes new methods like max(), min(), and sum() that are available on number wrapper classes. It also discusses improved ways to concatenate strings in Java 8 using StringJoiner and the join() method on the String class. The document notes how these features can make code more readable by allowing method references.
Gamification in outsourcing company: experience report.Mikalai Alimenkou
Most of us used to hear word gamification only for end user engagement into product usage. Some of us know about usage of similar approaches in product development teams to improve and tune development process. But almost nobody believes that gamification is possible in the context of outsourcing companies and teams. This talk is experience report of gamification usage on very large project with detailed reusable framework demonstration. If you want to bring some fun and really engage your team, then this talk is for you.
This document discusses Java 8 features including Optional, lambdas, and Stream API. It provides advice on properly using Optional to avoid null checks, keeping lambda expressions simple, and only using streams for functional-style operations without side effects. The document recommends using method references when possible and external libraries like jOOL and StreamEx that extend the stream functionality. It concludes by providing contact information for the authors to ask additional questions.
Guava - open-source библиотека, разработанная в основном инженерами компании Google, в которой есть множество полезных утилит для написания эффективного и красивого кода. В Guava решено множество типичных задач, которые часто возникают при работе с примитивами, строками, коллекциями, параллельными вычислениями, кэшированием данных и многим другим. В докладе поговорим о возможностях, которые предоставляет Guava, рассмотрим примеры использования утилит библиотеки.
ArrayList et LinkedList sont dans un bateauJosé Paumard
Slides de mon université à Devoxx France 2016. Le sujet est la performance des algorithmes d'implémentation de List et leur adéquation avec la structure des CPU actuels.
Many Java developers use ORM in their projects but most of them don’t do deep dive into configuration, settings and tuning to achieve really good performance. What is worse most of them even don’t know what options do they have to improve performance. In this talk we will review them on practical samples and give concrete recommendations how to make your Hibernate work much better in real projects.
Code samples can be found here: https://github.com/xpinjection/hibernate-performance
.
The document discusses Java 8 streams and reactive programming. It covers:
1) An overview of Java 8 streams, including how they are implemented using spliterators and pipelines and do not store data;
2) Common patterns for creating and using streams to map, filter, and reduce data;
3) How stream characteristics are used for optimizations;
4) How spliterators can be overridden to support non-standard data sources and enable operations like grouping and rolling streams.
D2D DevPro 2017: Golang — опыт промышленной разработкиYuriy Vasiyarov
Golang – опыт промышленной разработки
Три года в бою
Фреймворк;
Управление зависимостями;
CI;
Профилирование;
Конфигурирование;
Code style;
Статический анализ кода;
Типичные ошибки;
Производительность Golang приложений;
The document discusses several new features in Java 8 including lambda expressions, default methods in interfaces, and type annotations. It provides examples of using the new date/time API, annotations on types, and default methods in interfaces. It also summarizes features like Java profiles, parallel collections, and improvements to the Java Virtual Machine.
«История строителя: Maven - от новичка до мастера. Сборка простых и сложных Java- проектов.»
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/
The document summarizes a presentation about the Phoenix framework. It includes:
1. An introduction from Chris McCord, inventor of Phoenix, about how Phoenix is similar to and different from Ruby on Rails.
2. Sections discussing how Phoenix draws inspiration from Rails but is optimized for concurrency using the Erlang VM and functional programming principles like immutability.
3. Advice that incremental adoption of Phoenix for new features or rewrites is better than sudden wholesale changes, to minimize disruption for developers and users.
This is a presentation given on October 24 by Michael Uzquiano of Cloud CMS (http://www.cloudcms.com) at the MongoDB Boston conference.
In this presentation, we cover Hazelcast - an in-memory data grid that provides distributed object persistence across multiple nodes in a cluster. When backed by MongoDB, objects are naturally written to Mongo by Hazelcast. The integration points are clean and easy to implement.
We cover a few simple cases along with code samples to provide the MongoDB community with some ideas of how to integrate Hazelcast into their own MongoDB Java applications.
In this webinar we will compare the complexities involved in Terracotta with the code/configuration changes to migrate to Hazelcast. You will learn about important features of Hazelcast such as IMDG capabilities, off-heap data storage, distributed collections, etc. and the feature-rich product portfolio of Hazelcast. We will cover how Hazelcast can scale up and out dynamically and without downtime against the static configuration of Terracotta. Expect to leave the webinar being more educated about Hazelcast in terms of architecture, important features and best practices.
We’ll cover these topics:
- Hazelcast architecture and features
- Terracotta distributed architecture
- Scale – Vertical + Horizontal = Showcase no downtime feature in Hazelcast
- BigMemory vs. HDC
- Ease of installation – two jars against multiple jars
- Config and Code changes – cache vs. maps, off-heap vs. HDC
- Portability of Client APIs – IMap, IQueue, Topics, etc.
- Added functionalities – Showcase IExecutorService, EntryProcessors, Multimap, etc.
- DSO – Showcase EntryProcessors taking place of DSO
- Live Q&A
Presenter:
Rahul Gupta, Senior Solutions Architect
Rahul is a technology-driven professional with 12+ years of experience in building and architecting highly scalable and concurrent, low latency business critical distributed infrastructure. His expertise lies in Big Data and Real Time Analytics space where he specializes in big data governing technologies and Enterprise Architecture. Rahul is an expert in working with decision makers across different business verticals within an organization and guiding them in right decision making through in-depth technical understanding, analysis and evaluation procedures to bring home critical deals with high business values.
When you work in a small collocated team many engineering practices and approaches are relatively easy to use and adapt. In large project with many teams working on the same product this task is not so simple. I want to share experience report in implementing Code Review practice in big product development team (more than 150 people, 10+ feature teams). In this talk we will review what approaches works in such setup and what don’t work, what tools and additional practices are needed to support Code Review and make it more effective, what difficulties and blockers will you probably see in the real life cases, what useful metrics could be produced by this practice.
Of course Java 8 is all about lambda expressions and this new wonderful Stream API. Now the question is, what's left in Java 8, once we've removed everything : lambdas, streams, collectors, java FX and Nashorn ? This presentation gathered all these new diamonds, scattered all around the JDK, brand new classes, and new methods in existing classes.
The document discusses new features in Java related to numbers and strings. It describes new methods like max(), min(), and sum() that are available on number wrapper classes. It also discusses improved ways to concatenate strings in Java 8 using StringJoiner and the join() method on the String class. The document notes how these features can make code more readable by allowing method references.
Gamification in outsourcing company: experience report.Mikalai Alimenkou
Most of us used to hear word gamification only for end user engagement into product usage. Some of us know about usage of similar approaches in product development teams to improve and tune development process. But almost nobody believes that gamification is possible in the context of outsourcing companies and teams. This talk is experience report of gamification usage on very large project with detailed reusable framework demonstration. If you want to bring some fun and really engage your team, then this talk is for you.
This document discusses Java 8 features including Optional, lambdas, and Stream API. It provides advice on properly using Optional to avoid null checks, keeping lambda expressions simple, and only using streams for functional-style operations without side effects. The document recommends using method references when possible and external libraries like jOOL and StreamEx that extend the stream functionality. It concludes by providing contact information for the authors to ask additional questions.
Guava - open-source библиотека, разработанная в основном инженерами компании Google, в которой есть множество полезных утилит для написания эффективного и красивого кода. В Guava решено множество типичных задач, которые часто возникают при работе с примитивами, строками, коллекциями, параллельными вычислениями, кэшированием данных и многим другим. В докладе поговорим о возможностях, которые предоставляет Guava, рассмотрим примеры использования утилит библиотеки.
ArrayList et LinkedList sont dans un bateauJosé Paumard
Slides de mon université à Devoxx France 2016. Le sujet est la performance des algorithmes d'implémentation de List et leur adéquation avec la structure des CPU actuels.
Many Java developers use ORM in their projects but most of them don’t do deep dive into configuration, settings and tuning to achieve really good performance. What is worse most of them even don’t know what options do they have to improve performance. In this talk we will review them on practical samples and give concrete recommendations how to make your Hibernate work much better in real projects.
Code samples can be found here: https://github.com/xpinjection/hibernate-performance
.
The document discusses Java 8 streams and reactive programming. It covers:
1) An overview of Java 8 streams, including how they are implemented using spliterators and pipelines and do not store data;
2) Common patterns for creating and using streams to map, filter, and reduce data;
3) How stream characteristics are used for optimizations;
4) How spliterators can be overridden to support non-standard data sources and enable operations like grouping and rolling streams.
D2D DevPro 2017: Golang — опыт промышленной разработкиYuriy Vasiyarov
Golang – опыт промышленной разработки
Три года в бою
Фреймворк;
Управление зависимостями;
CI;
Профилирование;
Конфигурирование;
Code style;
Статический анализ кода;
Типичные ошибки;
Производительность Golang приложений;
Доклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
Олег Лексунин, Михаил Белов "Яндекс.Диск. Эксплуатация и разработка быстрорас...Yandex
Яндекс.Диск — это новый, стремительно развивающийся сервис Яндекса. При этом он уже хранит в себе более миллиарда файлов и обслуживает миллионы пользователей. В таких условиях особенно остро встает вопрос об организации эксплуатации, разработки, их взаимодействия, а также взаимопонимания между командами.
Группа докладчиков из эксплуатации и разработки рассказала о том, какие задачи мы решаем и почему, в какой архитектуре живем, какие технологии используем и как взаимодействуем и еще много интересного!
Why do we need ORM? The difference between ActiveRecord and DataMapper patterns. The practical appliance of Iterative deepening depth-first search algo for topological sort of ORM relations.
Review of Cycle ORM and it features.
Максим Трегубов, CUSTIS. Миграция данных из Oracle в Postgres. Доклад о том, как мы для одного из заказчиков тестировали переход с СУБД Oracle на Postgres. Расскажем о выборе инструмента миграции данных, настройке тестовой среды и о полученных результатах. Также немного затронем модную тему DevOps и покажем роль Ansible в миграции данных.
Технические аспекты блокировки интернета в России. Проблемы и перспективыPhilipp Kulin
Технические детали блокировок. Как сейчас организован механизм блокировок. Кто, что, где, когда и как. Почему он так организован. Почему РКН блокирует сетями. В чем проблема текущего механизма блокировок с технической точки зрения. В каком направлении надо двигаться с технической точки зрения в рамках минимальных изменений сегодняшней нормативной правовой базы.
HighLoad++ 2018 http://www.highload.ru/moscow/2018/abstracts/4280
История небольшого успеха с PostgreSQL – Владимир БородинYandex
В докладе речь пойдёт о том, как в Яндекс.Почту для хранения метаданных сборщиков внедрили PostgreSQL. Владимир расскажет, зачем и почему это сделали и каким образом решили масштабироваться. А также о репликации и средствах обеспечения отказоустойчивости, о возникших проблемах и способах их решения.
There are a lot of things in multi-threading world, which we, as engineers, have to consider while developing applications. During Golang Odesa #TechTalks we will talk about three main problems – data races, race conditions, and deadlocks. Also, we will discuss how to avoid fantom bugs and do not shoot yourself in the foot while developing Golang applications
About speaker:
Oleksandr Karlov is Golang Team Lead at Lohika. Currently, Oleksandr is working on SLO project, which helps engineers to control reliability of their services. Before that he worked on CDN and statistics platform.
Производительность параметрического поиска на основе опенсорс-платформыYandex
В докладе рассматриваются особенности системы параметрического поиска, построенной на базе опенсорс-плаформы Apache Solr. Речь пойдёт о проблемах производительности такой системы и некоторых методах их решения — в том числе о применении различных способов построения запросов для уменьшения времени ответа системы.
«Собеседования: что сделать, чтобы точно его не пройти и как определиться с работой мечты»
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/
«Зачем рекрутеры сидят во Вконтакте. Как формируется имидж соискателя в социальных сетях?»
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/
«Через тернии к качеству Java или простые герои для непростых задач»
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/
"Эффективные техники, которые помогут увеличить продажи в 2 раза"
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/
2. 18.04.2013 2
«Ситуация с таможенным досмотром отправлений
остается сложной. В целом 41 таможенник (против
384 сотрудников Почты) в четырех основных
международных местах почтового обмена России (...)
в сутки может досмотреть менее 33 тонн, в то время
как, только на аэропорты московского узла за
минувшие сутки прибыло почти 39 тонн почты.
Распределяй не распределяй, ежедневно
недосмотренные таможней 6 тонн оседает
в терминалах».
«ПОЧТОВЫЕ ЗАВАЛЫ ТАЮТ под стахановским напором почтовиков»
15.04.2013 ФГУП «Почта России». Орфография и пунктуация авторские.
19. Платформа предоставляет стандартную
реализацию – ArrayBlockingQueue
• «Обычный» ограниченный буфер на основе
массива
• При конструировании указывается размер
буфера, который не меняется
• Предусмотрено два индекса на выбор и
вставку элементов
• Для управления многопоточностью
используется одна общая блокировка
Ограниченный буфер
20. Платформа предоставляет стандартную
реализацию – LinkedBlockingQueue
• Обычный односвязный список
• Две «блокировки»: на вставку и на выбор
• В большинстве случаев необходимо брать
только одну из блокировок (обе требуют такие
операции как remove и contains. Take/offer-
работают независимо)
Неограниченный буфер
26. - свободный график работы
- своя столовая
- комфортные рабочие места
- корпоративные мероприятия
- командировки по всему миру
- курсы английского языка
- неполная занятость и поддержка
в написании научных работ
Отличные условия работы!
27. Если Вам захотелось присоединиться к команде Devexperts,
пишите и звоните нам:
Тел.: (812) 438-16-26
E-mail: [email protected]
Вакансии: hh.ru и itmozg.ru.
Наши новости: devexperts.com и ВКонтакте.
Контакты