JPoint 2015

April 20 2015
Москва, Россия
View
To favorites

Никита Сальников-Тарновский

Co-founder at Plumbr

Антон Кекс

Сооснователь at Codeborne

Антон Архипов

Разработчик и менеджер продукта XRebel at ZeroTurnaround

Яков Сироткин

Разработчик at Sidenis

Алексей Шипилёв

Разработчик Java at Oracle

About event

Topic: IT

JPoint — Java-конференция только для опытных Java-разработчиков и только про разработку. Это уже четвертая по счету конференция JPoint: с каждым годом она получается еще больше, еще интереснее и еще хардкорнее!

Audience

  • Техническим директорам
  • Тим лидам
  • Инженерам
  • Программистам
  • Разработчикам
Share

Schedule

Show all
Monday, April 20
Day 1
Get access to all talks
Purchased
In cart
Free
Free
Free
Free
Free
Free

Где моя память, чувак?!

Утечки памяти и другие ситуации истощения памяти — частые враги Java-разработчиков и системных администраторов. Они могут привести к падению приложения или сделать его недопустимо медленным.

Этот доклад рассказывает о различных способах наблюдения за использованием памяти со стороны Java-приложения и о том, как различить нормальные и потенциально критические ситуации. Также мы поговорим о том, какую информация и когда надо собрать, чтобы приступить к решения проблем, относящихся к использованию памяти приложением. Никита расскажет о том, что такое memory dump и зачем он нужен. Доклад кратко коснется утечек загрузчиков классов и их особенностей.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Антон Кекс

Сооснователь at Codeborne

Архитектура интернет-банка без Enterprise

В данном докладе речь пойдет об архитектуре интернет-банка на базе Play Framework и Plain Simple Java. Покажу, почему такой выбор лучше, быстрее и дешевле, чем архитектура на базе Enterprise-решений. Интернет-банки на этой платформе сейчас обслуживают в России Банк Санкт-Петербург и УБРиР в Екатеринбурге, оба завоевали первые строки во всевозможных рейтингах сразу после запуска.

Play Framework сильно помог сделать быстрый старт и направил архитектуру на правильный путь, но, конечно же, реальная жизнь сделала свои корректировки, особенно в интеграционной части: интернет-банк отвечает за User Experience, поэтому должен скрывать от пользователя все недочеты IT-систем банка. Расскажу, чего в Play Framework есть особенно хорошего, а что нам пришлось делать по-другому, и как Agile помогает нам боротся с backend-системами.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Антон Архипов

Разработчик и менеджер продукта XRebel at ZeroTurnaround

Javassist на службе у Java-разработчика

Javassist — замечательная библиотека для работы с байткодом в Java. Основная задача таких инструментов, как Javassist — это анализ и динамическое создание/изменение class-файлов Java. Спросите, зачем? Об этом и пойдёт речь!

В ZeroTurnaround мы используем Javassist практически для всего. Мы рассмотрим примеры, максимально приближенные к тому, что нам приходится делать в наших продуктах JRebel и XRebel для манипуляции байткода и интеграции с серверами приложений и всевозможными Java-фреймворками.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Яков Сироткин

Разработчик at Sidenis

Миграция с PL/SQL на Java

PL/SQL предоставляет широкий спектр возможностей для работы с Oracle, но в большинстве случаев использование PL/SQL можно смело назвать архитектурной ошибкой. Большие объемы кода на PL/SQL мешают адаптировать систему к меняющимся бизнес-требованиям и не позволяют осуществить быстрый переход на Java. Однако, в нашем проекте мы смогли переписать на Java 20 тысяч строк кода PL/SQL, в том числе и процедуру на 1000 строк.

В докладе рассказывается, почему это было необходимо, как это было сделано и что это дало бизнесу.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Алексей Шипилёв

Разработчик Java at Oracle

Катехизис java.lang.String

В приложениях кровавого энтерпрайза и прочих продуктах, что так или иначе связаны с обработкой текстовых данных, порядочное количество памяти и времени тратится на возню со строками. Оптимизации работы со строками часто дают немедленный выигрыш, а то и уворачивание от OutOfMemoryError.

В этом докладе будут рассмотрены основные пороки работы со строками: чревоугодие конкатенации, блуд подстрок, корыстолюбие интернирования, гордыню дедупликации и прочее. Кроме того, речь пойдет о том, чего стоит излишняя надежда на JDK и JVM.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Евгений Борисов

Разработчик Java at InWhite

Spring Puzzlers — Начало

Вряд кто-то будет спорить с тем, что Spring является одним из самых распространённых фреймворков сегодня. Но на сколько хорошо вы с ним знакомы?

Первый уровень — это умение пользоваться Spring, не сильно заморачиваясь, как он там работает. Второй уровень — это понимание кишок, что даёт вам возможность кастомизировать его под ваши нужды. Мы предлагаем вам выйти на третий уровень и освоить тонкости о работе со Spring.

Этот доклад включает много очень заковыристых и забавных загадок по Spring, взятых из реальной жизни. Полученные знания помогут вам освоить тонкости Spring-a и защититься от всяких мистических багов.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Volker Simonis

OpenJDK contributor at SAP

Packed Objects, Object Layout & Value Types — a Survey

Java is often criticized for not supporting C-style structs. This makes it hard to efficiently implement certain types of data structures like for example arrays of small objects.

However, recently this problem has been addressed by several different approaches. My talk will briefly introduce Packed Objects , an extension available in IBM's Java SDK 8, Object Layout , a layout-optimized Java data structure package proposed by Gil Tene and Value Types , an OpenJDK proposal for small, immutable, identityless value types.

I will describe the commonalities and differences of the three approaches and explain how they can improve the memory overhead and locality of Java objects. Finally I will deep-dive into the implementation of the Object Layout library and explain how it can be transparently intrinsified and optimized in the HotSpot VM.

Attendees of my talk will become familiar with the development of an emerging Java technology. The will also get a good impression of what it means to implement such an extension in the Java Virtual machine and gain some insights into the HotSpot VM.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Aleksandr Belokryilov

Менеджер продукта at Oracle

Восстание машин: в энтерпрайз с 256 КБ RAM.

Вселенная неуклонно расширяется. Образовавшиеся пустоты заполняются новыми технологиями и системами, автоматизируя задачи, которые ещё 10 лет назад казались нерешаемыми. Растущий интерес компаний к Интернету Вещей заставляет искать новые технологии и методы разработки программного обеспечения.

Из этого доклада вы узнаете, как Oracle видит эту проблематику. Будут рассмотрены возможные решения с помощью таких технологий как mbed, is2t и Java ME Embedded. На реальном примере проверим, как Java ME Embedded помогает управлять периферией, удаленно изменять бизнес-логику на устройстве и, используя безопасные протоколы, подключаться к Сети. Все это не было бы так интересно, если бы не сверхмалые требования к аппаратной платформе. Мы запустим стандартизированный Java runtime вместе с приложениями на устройстве с 256 килобайтами RAM.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Барух Садогурский

Developer advocate at JFrog

Не всё, но многое о том, что вы хотели знать о том, как написать асинхронные многопоточные HTTP приложения, но боялись спросить

Из репозиториев JFrog народ скачивает файлы: часто, много и одновременно. В какой-то момент ребята из JFrog решили, что пора бы написать свою библиотеку для скачивания файлов, чтобы использовать ее во всевозможных клиентских приложениях типа плагинов для инструментов сборки.

В этом докладе будет рассказано, как JFrog-овцы искали такую библиотеку, какие рассматривались варианты, что мы в итоге решили и почему. Кроме этого, Барух поделится забавными и не очень байками о том, что пошло не так, и покажет много картинок медведей.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Алексей Рагозин

Lead Solution Architect at Технологический Центр Дойче Банка

Непрерывное профилирование Java-приложений в ходе эксплуатации

Экосистема Java предоставляет широкий выбор профилировщиков. Большинство из них, тем не менее, требуют «тепличных условий» для проведения сеанса профилирования. Однако, воспроизведение условий близких к реальным зачастую является наиболее сложным аспектом профилировании. Можно ли профилировать приложение под реальной нагрузкой в ходе реальной эксплуатации?

В докладе пойдёт речь о:

  • сборе телеметрии приложений и последующем анализе этих данных;
  • различиях между мониторингом и телеметрией
  • выборе параметров телеметрии;
  • накоплении данных телеметрии;
  • сэмплировании снимков стека и их анализ;
  • Flight recorder — инструменте телеметрии, встроенном в JVM.
Purchased
In cart
Free
Free
Free
Free
Free
Free
Get access to all talks
Purchased
In cart
Free
Free
Free
Free
Free
Free

Алексей Зиновьев

Java-разработчик at Тамтэк

Мама, я так хочу Hibernate для NoSQL, ну или что там у вас есть на примете…

Среди американских стартапов считается нормальным использовать в качестве базы данных для проекта NoSQL. Под это выделяются бюджеты, про это потом показывают слайды в презентациях.

Обычного Java-программиста ни жизнь, ни универ, ни типичный веб-проект не готовят к низкоуровневому взаимодействию через Java-драйверы. Через 15 минут кодинга он, словно маленький ребенок, начинает требовать Hibernate или его подобие для элементарного маппинга бесчисленных (на этапе построения прототипа, особенно) сущностей на гхм.. таблицы в новой базе данных.

Однако, в высоконагруженных проектах свои требования. Зачастую приходится считать каждый лишний байт метаинформации, рефлексия может стать неуемной тратой расточительной JVM. Morphia для Mongo, Hector и Easy-Cassandra для Cassandra, безымянные жонглеры аннотациями для Hbase, Kundera для всего подряд.. Вы можете погрязнуть во всем этом головой и никогда не вынырнуть.

Однако свет в конце тоннеля есть! В докладе будут даны железные аргументы для использования того или иного инструмента в ваши усталые от маппинга руки… Доклад сэкономит массу времени тем, кто оказался в описанной выше ситуации.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Дмитрий Нестерук

Технический евангелист at JetBrains
and 1 more
speaker

Инструменты для командной разработки

Эффективность работы программистов зависит не только от знания алгоритмов и технологий, но и от инструментов, которые они применяют в разработке. Мы давно привыкли полагаться на правильную IDE, использовать профилировщики и, конечно же, любимые фреймворки и билд-тулы. Но на конечный результат влияет ряд дополнительных факторов, связанных с работой команды в целом: управление проектом, планирование релизов и майлстоунов, сборка и тестирование изменений, ревью кода и многое другое. Правильное использование инструментов командной разработки может значительно упростить вашу жизнь и повысить качество конечного продукта.

В этом коротком докладе Андрей и Дмитрий "галопом по европам" пройдутся по инструментам командной разработки, которые создают в JetBrains, и расскажут, чем они могут помочь вашим командам и как их использовать.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Андрей Паньгин

Разработчик at Одноклассники

Лучший отладчик — сделанный своими руками

Java-разработчики привыкли: утекает память — запускай Eclipse Memory Analyzer, проблемы с производительностью — профилируй с YourKit. Но зачастую стандартных средств не хватает, например, когда ошибка проявляется только в production, куда и дебаггером не подключиться, и 10-гигабайтный Heap Dump не снять без перебоев в обслуживании.

Сделать собственный инструмент, заточенный под конкретную проблему, не так уж и трудно! Порой даже быстрее, чем найти готовое решение в интернете. JDK включает богатый инструментарий для написания всевозможных средств отладки и мониторинга: JVMTI, Dynamic Attach Mechanism, Serviceability Agent, Instrumentation API и т.п. В докладе будет показано, как ими пользоваться, будет рассмотрено, как устроены изнутри jstack, jmap и jstat. Кроме того, подобная утилита будет написана прямо во время доклада! За основу примеров взяты случаи из практики в «Одноклассниках», а также реальные проблемы разработчиков, обсуждаемые на Stack Overflow.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Александр Подхалюзин

Руководитель группы разработчиков at JetBrains

Производительность разработки на Scala

Scala — довольно сложный язык программирования, и зачастую не очень понятно, с чего начинать его освоение. Часто люди упускают возможность с самого начала программировать на Scala эффективно. Главная причина заключается в том, что большинство дискуссий в экосистеме Scala сосредоточены именно на языке и его возможностях, а не на простых и полезных аспектах.

Из доклада вы узнаете о том, какие практики и инструменты могут быть использованы при обучении и дальнейшем программировании на Scala. Будут рассмотрены Scala Worksheet и его прикладное использование. Будет сделан обзор некоторых распространенных ошибок в Scala-коде. Кроме того, будут рассмотрены возможные рефакторинги языка Scala, и инструменты для дебага implicits. Доклад будет сопровождаться небольшим введением в язык, поэтому знания Scala слушателю не требуется.

Все это поможет желающим освоить Scala научится осваивать его быстрее и эффективнее, а уже продвинутым программистам на Scala научится эффективнее использовать всю мощь языка.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Барух Садогурский

Developer advocate at JFrog
and 1 more
speaker

Эпичные Groovy Puzzlers — Месть Скобок

Ещё страннее, ещё удивительней, ещё веселее! Groovy Puzzlers возвращаются во втором сезоне, чтобы делать то, что так хорошо пошло в первом. Как и в прошлом году, мы покажем вам новые грабли, на которые наступили сами и которые прислали нам по почте. Еще больше «ОГО!», «Ничего себе!» и «ДА НУ!», еще больше швыряния призов, и еще больше темных тайн Груви, которые станут явью!

Purchased
In cart
Free
Free
Free
Free
Free
Free

Яков Сироткин

Разработчик at Sidenis
and 3 more
speakers

Круглый стол. Рефакторинги и технический долг

Темы для обсуждения:

  • управление техническим долгом
  • взаимодействие с бизнесом
  • новые версии браузеров и платформ как триггер для рефаторинга
  • мотивация разработчиков изучать legacy
  • технический долг и legacy
Purchased
In cart
Free
Free
Free
Free
Free
Free

Дмитрий Чуйко

Performance-инженер at Oracle

CompletableFuture уже здесь

2015? Многие говорили, что у Java нет будущего. Но ведь всё это время существовали Future и ExecutorSevice для асинхронного выполнения задач. И ну его к чёрту, этот континуум — с появлением CompletableFutire в Java 8 открылся простой выход из ада коллбэков в мир простого и функционального Java-кода. Там, куда мы направляемся, блокирующие вызовы не нужны. Мы попробуем на практике CompletableFuture «со стримами и лямбдами» и посмотрим, насколько его применение эффективно. Кроме того, мы коснемся следующих тем:

  • Переход от блокирующегося исполнения на основе Future к подходу без блокировок на основе CompletableFuture;
  • Разбор API;
  • Накладные расходы;
  • Простое руководство для многоуровневых систем (на примере веб-сервера).
Purchased
In cart
Free
Free
Free
Free
Free
Free

Яков Файн

Сооснователь at Farata Systems

RESTful-сервисы и протокол OAuth в IoT

С точки зрения разработки ПО, Internet of Things (IoT) — это программирование сенсоров и гаджетов, организация их взаимодействия и интеграция с существующими приложениями.

Гаджеты, поддерживающие IoT, могут использовать различное закрытое ПО, однако RESTful-сервисы и протокол OAuth являются связующим звеном во взаимодействии различных устройств с жизненным циклом приложения. Этот доклад продемонстрирует пример подобной архитектуры. Вы узнаете, как авторизовывать пользователей и интегрировать IoT–устройства.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Сергей Куксенко

Java Performance Engineer at Oracle

Железные счётчики на страже производительности

Нередко при анализе производительности приложений приходится много копать. Но просто копать недостаточно, нужно еще разгребать накопанное. Железный век настал более 3000 лет назад, и было бы удивительно, если бы за это время человечество не создало кучу разнообразных железных приспособлений для копания и разгребания.

В данном докладе мы узнаем, что же такое «Hardware Performance Counters», где их найти и как их можно использовать для анализа производительности.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Андрей Чепцов

Менеджер по маркетингу at JetBrains
and 2 more
speakers

Круглый стол. Рабочие инструменты Java-разработчика

емы для обсуждения:

  • IDE
  • profiler-ы
  • CI
  • системы сборки
  • code quality (sonar, code coverage tools, static analysis)
  • Бинарные репозитории - куда без них!?
  • code review
  • database tools
  • reverse engineering
Purchased
In cart
Free
Free
Free
Free
Free
Free
Get access to all talks
Purchased
In cart
Free
Free
Free
Free
Free
Free

Алексей Шипилёв

Разработчик Java at Oracle

Сжимай меня полностью

Контроль над использованием памяти — это ключ к написанию высокопроизводительного софта. В этом докладе мы покопаемся в кишках JVM и JDK, в поисках того, как платформа пытается сэкономить на памяти. Посмотрим на упаковку заголовков и полей объектов, сжатие указателей, учёт ссылок между поколениями в куче, кэш автобоксинга и т.п.

В качестве бонуса подглядим, как разработчики JDK пытаются незаметно сжать пользовательские стринги. Всё это обильно сдобрим описанием возможных граблей и измерениями производительности.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Николай Гарбузов

Разработчик at ДонРивер

Аспектно-ориентированное решение классических проблем

Вам часто приходится менять модули системы, добавляя в них поддержку очередной фичи? Например, новую систему логирования, систему валидации объектов или обработки исключений. А как много сил уходит на модификацию таких систем после их внедрения! Не говоря уже о том, что иногда хочется расширить возможности Java и добавить, например, миксины!

В докладе я расскажу об аспектно-ориентированном подходе к решению такого рода проблем. Кроме этого, мы рассмотрим основные реализации АОП в Java и их отличительные особенности.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Владимир Ситников

Разработчик at Netcracker OSS

Выражаемся регулярно

Регулярные выражения прочно вошли в обиход программистов. Однако если вы собираетесь решать свою проблему с помощью регулярных выражений, то к первоначальной проблеме сразу прибавляется еще одна — сами регулярные выражения.

В докладе мы разберемся с тем, что делать, если регулярное выражение работает 30 секунд на строке в 50'000 символов? Как предотвратить StackOverflowError из RegExp'а на стадии code review? Например, мы разберемся почему в коде ниже:

String schedule;
StringBuilder sb = new StringBuilder();
for (int count = 1; count <= 2015; count++) {
    sb.append("JokerJPoint");
}
schedule = sb.toString();
boolean nirvana = schedule.matches("(Joker|JPoint)*");

Может произойти вот такая ошибка:

java.lang.StackOverflowError
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
at java.util.regex.Pattern$Slice.match(Pattern.java:3972)
at java.util.regex.Pattern$Branch.match(Pattern.java:4604)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4658)
at java.util.regex.Pattern$Loop.match(Pattern.java:4785)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4717)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4568)
at java.util.regex.Pattern$Slice.match(Pattern.java:3972)
at java.util.regex.Pattern$Branch.match(Pattern.java:4604)

Мы также научимся обходить узкие места стандартной библиотеки java.util.regex, рассмотрим альтернативные реализации, и научимся с первого взгляда отличать плохое выражение от хорошего.

Не останутся без ответа и вопросы из серии RegExp vs. XPath:

  • Стоит ли парcить xml и использовать xpath, если нужно выбрать всего одно простое поле? А если 2 или 5?
  • RegExp vs. SQL: Мы кратко пройдемся по некоторым проблемам с регулярными выражениями в других языках (например, SQL, Python).
Purchased
In cart
Free
Free
Free
Free
Free
Free

Иван Крылов

Senior Software Engineer at Azul Systems
and 3 more
speakers

Круглый стол. Будущее Java-платформы

Темы для обсуждения:

  • развитие языка Java,
  • новые аппаратные платформ,
  • оптимизации на уровне VM,
  • различные варианты виртуальных машин,
  • развитие JVM (новая функциональность, а не просто оптимизации),
  • поддержка альтернативных языков на Java платформе.
  • вызовы, стоящие перед Java платформой
  • 20 лет Java: "вино 20 летней выдержки” или "страшное legacy”
  • Java для мобильных девайсов
  • Javа для десктопа и браузеров
  • Java для IoT (embedded)
  • Server side Java
Purchased
In cart
Free
Free
Free
Free
Free
Free

Nikolay Alimenkov

Java-техлид at EPAM

Нужен ли нам JMS в мире современных Java-технологий?

JMS известен в Java-мире как стандартное решение для реализации распределенной работы с помощью обмена сообщениями. Существует множество JMS провайдеров, как бесплатных, так и коммерческих. Большой процент разработчиков используют JMS везде, где нужно послать сообщение и обработать его на другом конце. Но существует множество альтернативных решений организовать эффективные очереди сообщений: AMQP, Redis, ZooKeeper, Apache Kafka или даже самописные очереди на Cassandra. Почему не использовать их вместо JMS?

В этом докладе мы обсудим краеугольные проблемы любой распределенной системы, основанной на обмене сообщениями, и уже с этими знаниями взглянем еще разок на JMS и альтернативы с точки зрения практических сценариев из реальной жизни.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Глеб Смирнов

Разработчик at Plumbr

Тайны — в наших головах, а не в JVM

Каждый инженер рано или поздно столкнётся с совершенно новой для себя проблемой. Зачастую от решения его отделяет лишь быстрый поиск в интернете. Иногда достаточно задать правильный вопрос правильному человеку. Но иногда нужно копать глубже самому. Когда корни проблемы уходят в JVM, многие из нас отступают.

Зря! HotSpot — не загадочная шайтан-машина. Пользуясь её открытым исходным кодом, мы можем разобраться с чем угодно. Нужно только больше настойчивости. В этом докладе мы разберём несколько казалось-бы-загадочных проблем, окунувшись в увлекательный мир С-кода.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Роман Гребенников

Разработчик распределенных систем at Findify

Scala под капотом

Язык Scala нынче модный: тут вам и паттерн матчинг, и рекурсия, и коллекции, обильно приправленные лямбдами, а также много других страшных слов из мира функционального программирования. И все эти плюшки органично переплетены в такой язык, начав писать на котором, очень тяжело остановиться.

Но волшебство функциональной легкости заканчивается с фразой «а почему я переписал 100 строк лапши на Java в однострочник на Scala, но оно стало работать в 3 раза медленнее?», и мечта о прекрасном языке превращается в тыкву. Суровая реальность грязным сапогом как бы говорит нам, что абстракции языков высокого уровня могут скрывать монстров и все удобства имеют свою цену. И если вы делаете на Scala не простое CRUD-приложение, а что-то, хоть отдаленно связанное с нагрузкой, необходимо хорошо понимать, во что именно вам обходятся все эти монады.

Этот доклад поведает вам о магии, которую творит компилятор скалы под капотом, расскажет об ужасах scala-коллекций, рекурсии и паттерн-матчинга, а также о том, почему же так происходит.

Доклад может открыть глаза на возможные подводные камни производительности людям, практикующим программирование на Scala. В процессе будет рассказано:

  • об интеграции jmh и sbt;
  • о том, как заставить scalac рассказывать о том, что он там наоптимизировал;
  • о тайнах паттерн-матчинга, хвостовой рекурсии и scala-коллекций;
  • об умном HotSpot, который геройски все это оптимизирует.

Для полноценного осознания доклада рекомендуется заранее ознакомиться с докладами Алексея Шипилёва об исследованиях производительности в Java.

Purchased
In cart
Free
Free
Free
Free
Free
Free

Олег Бунин

Генереральный директор at Онтико
and 3 more
speakers

Круглый стол. HighLoad

Purchased
In cart
Free
Free
Free
Free
Free
Free

Tickets

Video
Access to all videos
Purchased
In cart
Free
Free
Free
Free
Free
Free

Organizer

JUG.ru
https://jugru.org

Organizer committee: JUG.ru, info@jugru.org, 78126802918

Similar events

October 16-17 2015
Talks 37
Views 174.62 K
dev, development, java, по, программирование, разработка, язык программирования
October 19-20 2017
Talks 90
Views 65
dev, development, по, программирование, разработка, софт, технологии
September 23 2017
Talks 15
Views 2.08 K
.net, .net, dev, development, dotnet, qa, по, программирование, разработка, софт
more