Kharkiv : Javaday
[https://twitter.com/JavaDayKiev ] September 17, 2016 Kharkiv JAVADAY KHARKIV The community-driven conference for Java developers. Stay geeky. Talks from 2015 Buy ticket Home Blog To the top Buy ticket About JavaDay Digital challenges. Awesome speakers. Experience worth bragging about. Listen Learn Have fun Deep Java talks Every JavaDay attendee is unique, but they all have one thing in common: the passion for knowledge and desire to learn new things. Here's the list of topics you will listen to. Core JVM platform and Java SE (Java 8) JVM languages and new programming paradigms Web development and Java Enterprise technologies Software engineering practices Architecture & Cloud BigData & NoSQL Workshops and hands-on labs We will let you know, when the agenda for these sessions will be filled. Traditionally, we welcomed workshops (charged additionally) on the next to conference day and announced schedule a month before the date or so. Networking & entertainment Enter the awesome world of JavaDay. Relax, eat, drink, refuel and network. Grab snacks Have lunch Enjoy after-party Share ideas in the interactive zone Use free unlimited wi-fi Build new connections 12 sessions Learn about the latest trends and get practical 12 keynotes Enjoy remarkable talks from world-known speakers 12 attendees Share ideas and network 12 amazing event Get to know the ultimate JavaDay experience Saturday September, 17 Track 1 Track 2 09:00 - 09:30 Registration & coffee Registration & coffee 09:30 - 10:00 Opening Opening 10:00 - 11:00 Java 8: The Good, the Bad and the Ugly ( Mikalai Alimenkou & Oleg Tsal-Tsalko ) Java 8: The Good, the Bad and the Ugly ( Mikalai Alimenkou & Oleg Tsal-Tsalko ) Java 8 is being around for a while already and lot of us are already using Java 8 features on our projects. But do we use these great Java 8 features correctly and efficiently? Having done lots of code reviews during last years we’ve seen some common antipatterns of Java 8 features usage. In this talk we want to show you some of the examples where Java 8 features were misused or poorly used and show you how certain things could have been better implemented. 11:00 - 11:20 Coffee-Break Coffee-Break 11:20 - 12:10 Magic AOP Magic AOP Demystify any secrets that AOP brings to Java world: how Hibernate/JPA do magic of fields mapping; how to leverage my own aspects with AspectJ; how to have a fun with absolutely useless library GAG. Maksym Voroniy Colliding worlds or bending Spark towards enterprise needs Colliding worlds or bending Spark towards enterprise needs People usually think that Big Data is something far outstanding from usual-scale projects. This story is about crossroads where Big Data and Enterprise can meet each other. Let's collide these worlds and break stereotypes. Boris Trofimov 12:20 - 13:10 Hibernate performance tuning Hibernate performance tuning Mikalai Alimenkou, Igor Dmitriev The ideal code. Fiction or reality The ideal code. Fiction or reality We often here about ideal (or perfect) code. However, what is it? Have anyone seen it? From my point of view ideal code is a code that meet all the software and programming requirements and standards and involves best development practices and techniques. However is it possible to achieve such code quality? What are the main rules of writing perfect code? I will explain this topic based on my developer and trainer experience. We will review a lot of practical cases and code samples. Sergey Morenets 13:10 - 14:00 Lunch Lunch 14:00 - 14:50 Integration Testing from the Trenches Integration Testing from the Trenches Years after Kent Beck provided JUnit, unit testing is part of most developer teams tooling. However, there's a trend that tends to threaten unit testing, claiming only integration testing can truly detects defects in software. In this talk, we will first define what unit testing and integration testing are, and their respective pros, cons and uses. Then, we will have a look at the unique challenges posed by integration testing. Finally, tools and techniques will be presented to somewhat remedy to that so that integration testing becomes a true asset in each software developer bag of tricks. Nicolas Frankel How we build InsightEdge: powerful Spark distribution How we build InsightEdge: powerful Spark distribution Will talk about how we build an open-source Spark distribution insightedge.io that runs on top of in-memory database. Convergence of transactional and analytical processing. How InsightEdge can run 30 times faster than regular Spark. Designing API with Scala. Extending Spark with geo spatial queries. Testing with Docker. Oleksiy Dyagilev 15:00 - 15:50 The modern view on implementation of classic design patterns in Java The modern view on implementation of classic design patterns in Java Almost every developer heard about design patterns. They was introduced long time ago to solve particular set of repeating problems in systems of different complexity level and size. But there is an opinion that many design patters just filled holes in the OOP languages of that time. Java as one of them has transformed and improved significantly in the last 10 years. So may be we could review design patterns implementation in modern Java world? Some of them are now may be easily replaced with language idioms, some others may be covered with existing libraries and frameworks. I'm sure you know some design patterns that are dead now or became anti-patterns in their initial implementation. Lets make this fun and useful review together. Mikalai Alimenkou LIFE: Serverless Architectures for True Hipsters LIFE: Serverless Architectures for True Hipsters Life coding session during which we will build and deploy a hipster web Portal that: ha, secure, scaleable, backed with CMS, costs less than 5USD to run and has no servers. Antons Kranga 16:00 - 16:50 What Mr. Spock would possibly say about modern unit testing: pragmatic and emotional overview What Mr. Spock would possibly say about modern unit testing: pragmatic and emotional overview In this talk we will go through spock-framework features and compare them with what JUnit and TestNG can offer instead. Together we will try to find out both pragmatic and emotional answer to the Ultimate Question of Unit Testing: finally, should one use spock-framework in the year of 2016? Finally, we will take a quick look on spock-framework ecosystem and examine what the hell is JUnit 5 (yes, it’s a thing). Yaroslav Yermilov Corporate Culture – how to build high performance teams Corporate Culture – how to build high performance teams Today most of us work in Agile/Lean/Scrum/another-cool-word organization. Reasons to create our software this way are many: it is fun, it develops what is needed, it’s competitive and so on… Even if you don’t Scrum, you definitely do have some experience or, at least theoretical knowledge of it, and decided not to go this way. Again, reasons may be many. The ultimate goal of all software development process is to create a piece of software that works as intended, is delivered on time with requested quality and within the budget. The way you do it is important, however of a second priority. The most important thing is to choose the way that fits most to your domain, knowledge, maturity and skills of people in the team, process and methodology. The real challenge, in fact, is to boost the team performance and bring it to the next level, despite the process you follow in the organization. How? Build a winning culture in your organization. Culture is what makes an organization ‘the’ organization and can have a great impact on its performance. It is the glue that binds an organization all together. A company may have the greatest product or service, but these can be easily copied. What cannot be is the culture: an unique mixture of company’s values and high performance behaviours which can be a lasting source of competitive advantage. Krzysztof Ras 16:50 - 17:10 Coffee-Break Coffee-Break 17:10 - 18:00 Hit-parade of clean code violations Hit-parade of clean code violations Everyone talking about clean code because it become buzz word nowdays but in reality only few are trying to follow clean code principles and of course it’s not easy to do. Having done lots of code reviews during last years I prepared hit-parade of 15 most widely seen and serious clean code violations. In this talk I want one more time to emphasise why it’s important to follow clean code rules and principles and outline most widely seen violations of these rules that should be avoided. Oleg Tsal-Tsalko Build, deploy and manage your releases like a boss Build, deploy and manage your releases like a boss Unfortunately, there are still a lot of projects where engineers deploy their apps using "Right click -> Deploy -> Production" approach. This is sad, but true. At some point we can face this just because no one knows how to configure a build server, how to automate deployment process. And, for some reason, a lot of engineers believe that it is some super complicated stuff. During my speech I will talk about general approaches for automating build, deployments and managing releases. After short talk we will go straight to the demos. In no more than 15 minutes I will configure automated build process for my app and automated deploy to several different environments. I will wrap all of this in release management pipeline and show how to make the entire release process transparent for all team members. Anton Boyko 18:10 - 19:00 Hot and spicy Java with Lombok. Live! Vladimir Tsukur Hot and spicy Java with Lombok. Live! Vladimir Tsukur Lombok is a small, but very useful library that helps to remove smelly Java boilerplate. Are you tired of writing getters and setters, builders or even constructors? Want to generate toString() / equals() / hashCode() or immutable class very fast? Lombok spices up these and many other experiences by allowing you to achieve small goals declaratively and effectively. We'll be coding live in this session, learn Lombok features, limitations and things to be aware of. Come over, sit on tight and enjoy the ride! 19:00 - 20:00 Closing Closing Schedule Schedule Minor changes may happen. Thursday October, 1 Java Track Green Track Oak Track 09:00 - 09:50 Morning coffee & Opening 09:50–10:50 The Ultimate Spring Configurations Faceoff Практически каждая новая версия Спринга превносила дополнительный способ конфигурации. XML, аннотации Java Config, Groovy Config. Что дальше? А главное зачем их так много? Как знать когда чем пользоваться? Хотите понаблюдать за настоящей битвой Баруха и Жени в попытке найти золотую середину? Хотите поставить ставки на победу Groovy конфига над XML-ом или наоборот (люди, между прочим, уже выигрывали реальное пиво!)? Тогда этот доклад - для вас! За отведённое нам время мы будем выявлять плюсы и минусы разных конфигураций на реальном проекте. Мы будем спорить, ругаться, бить друг друга (может быть, даже ногами) в попытке докопаться до истины. И наконец покажем вам наше видение будущего, в котором Spring Boot значительно упростит нам жизнь. Evgeny Borisov, Victor Polischuk, Baruch Sadogursky 11:20–12:10 Spring the Ripper Why should we know about Spring internals? It works! So use it and enjoy! However, as always, in order to use Spring in most efficient way, you must know, what is under the fork. Only in case you really understand its internals you will be able to use all power of Spring. You will be able to customize this framework according to challenges of your project, to achieve best performance and solve any problem without applying to Spring-support center. 😉 Here are several topics about Spring internals, which will be covered during this session (with examples for each one): What is Spring impact on the performance of your application? What are the phases of Spring lifecycle? What is ApplicationContext structure? “You can’t do it with Spring!” – or maybe you can? Evgeny Borisov 12:15–13:05 API first with Swagger and Scala How does one scale the development of a service landscape in a corporate enterprise environment utilizing Typesafe's Play and Akka software stack? How does one achieve API uniformity and coherence accross dozens of development teams, getting them and their subsequently developed subsystems to play together nicely? At Zalando we believe firmly in an API first approach, founded an API guild that ratifies and supports the development of APIs, and define them in a formal manner employing the Swagger API representation language. Slava Shmidt 13:10–14:00 Spring Puzzlers Evgeny Borisov, Baruch Sadogursky 14:00–15:00 Lunch 15:00–15:50 From REST to Hypermedia APIs with Spring Vladimir Tsukur 16:00–16:50 Everything you wanted to know about writing async, highconcurrency HTTP apps in Java, but were afraid to ask With tens of millions of clients continuously downloading binaries from our repositories, we decided to offer an OSS client that natively supports these downloads. In this talk, we will share the main challenges in developing a highly-concurrent, resumable, async download library on top of Apache HTTP client. We will cover other libraries we tested and why we decided to reinvent the wheel. We will see important pitfalls we came across when working with HTTP and how using the right combination of techniques can improve performance by an order of magnitude. We will also see why your initial assumptions may completely change when faced with other players on the network. Consider yourself forewarned: lots of HTTP internals, NIO and concurrency ahead! Baruch Sadogursky 16:50–17:00 Coffee break 17:00–17:50 JavaFX 8 everywhere; write once run anywhere With tens of millions of clients continuously downloading binaries from our repositories, we decided to offer an OSS client that natively supports these downloads. In this talk, we will share the main challenges in developing a highly-concurrent, resumable, async download library on top of Apache HTTP client. We will cover other libraries we tested and why we decided to reinvent the wheel. We will see important pitfalls we came across when working with HTTP and how using the right combination of techniques can improve performance by an order of magnitude. We will also see why your initial assumptions may completely change when faced with other players on the network. Consider yourself forewarned: lots of HTTP internals, NIO and concurrency ahead! Mohamed Taman 18:00–18:50 The Great Migration Micro-services have been getting a lot of attention in the past year, but is it really a viable solution or just a passing fad? In this presentation we'll look deep into Bintray.com 's service architecture and talk about how and why we found ourselves naturally migrating from a central web application to a flock of micro-services. Baruch Sadogursky 19:00–19:50 Java tricks for hipsters and rock stars Pavel Grushetzky 11:20–12:10 Nonblocking algorithms/CAS/Atomics Alexey Fyodorov 12:15–13:05 Showdown of the Asserts his talk is based on heated discussions about the syntax of asserts. Do you like the good old `assertNotEquals(id, c.getId())` or do you prefer something fancier like `assertThat(id, is(not(equalTo(c.getId()))))`? We will take a quick look at the differences between asserts in JUnit, TestNG, Hamcrest, fest, AssertJ, and Spock. This topic is at least as important as Vim vs Emacs and tabs vs spaces! Philipp Krenn 13:10–14:00 Spark-driven Audience counting The story about Ad world and real-time segments counting. Size of data does not allow doing straightforward calculations so we will dive into the solution step-by step involving some "secret" algorithms from Google. Boris Trofimov 14:00–15:00 Lunch 15:00–15:50 Apache Kafka Jacek Laskowski Stream-style messaging development with Rabbit, Active, ZeroMQ & Apache Kafka Vyacheslav Lapin 16:50–17:00 Coffee break 17:00–17:50 Web-application I have always dreamt of Through years of work have been trying many of Java frameworks which provides different level of abstractions on both server and client-side. Pure Servlet+JSP, JSF, GWT, Struts, Spring MVC, Vaadin, Play!, DWR, you name it. Sometimes it felt good, sometimes not, and with each year number of “good” applications reduced to the critical minimum. Later I tried to bring all the good points I had ever seen together to create “a perfect being” and after years of struggling I feel that I have reached the goal. Let me share it… Victor Polischuk 18:00–18:50 Monitoring for developers. The necessity or self-indulgence Мониторингом в первую очередь озабочены администраторы, а разработчики зачастую смотрят на него с усмешкой. Вообще нужен ли он для них? Oleksiy Dyomin 19:00–19:50 Monads & Monoids: from daily Java to Big Data analytics in Scala Finally, after two decades of evolution, Java 8 made a step towards functional programming. What can Java learn from other mature functional languages? How to leverage obscure mathematical abstractions such as Monad or Monoid in practice? Usually people find it scary and difficult to understand. Oleksiy will explain these concepts in simple words to give a feeling of powerful tool applicable in many domains, from daily Java and Scala routines to Big Data analytics with Storm or Hadoop. Oleksiy Dyagilev 11:20–12:10 Solution Architecture tips & tricks Roman Shramkov 12:15–13:05 Yeah, TRUE real time web apps, no more hacks - Hack session Part 1 Historically, creating web applications that need bidirectional communication between a client and a server (e.g., instant messaging & gaming applications) has required an abuse of HTTP to poll the server for updates while sending upstream notifications as distinct HTTP calls. Mohamed Taman 14:00–15:00 Lunch 15:00–15:50 Software Architecture Anti-Patterns Applications of different size, business domain and criticality suffer from a huge set of issues, be it boring enterprise software, “Highly-Loaded” social network or a cozy startup. In this talk Eduards will cover Software Architecture issues that he finds the most prevailing nowadays and what you can do with that. Think big! Eduards Sizovs 16:00–16:50 Painfree Object-Document Mapping for MongoDB This talk is based on heated discussions about the syntax of asserts. Do you like the good old `assertNotEquals(id, c.getId())` or do you prefer something fancier like `assertThat(id, is(not(equalTo(c.getId()))))`? We will take a quick look at the differences between asserts in JUnit, TestNG, Hamcrest, fest, AssertJ, and Spock. This topic is at least as important as Vim vs Emacs and tabs vs spaces! Philipp Krenn 16:50–17:00 Coffee break 17:00–17:50 Reactive programming and Hystrix fault tolerance Reactive programming is a new paradigm that provides asynchronous event-based flow control. Java implementation is called rxJava and is being developed by Netfix. They have also released Hystrix — a non-functional layer that provides fault tolerance and latency features which also exposes reactive API. Max Myslyvtsev 18:00–18:50 Apache Cassandra. Inception — all you need to know Cassandra is a powerful NoSql database based on solid fundamentals of distributed computing and fail-safe design, and it is well-tested by companies such as Facebook, Twitter, and Netflix. Unlike conventional databases and some of the modern databases that use the master-slave pattern, Cassandra uses the all-nodes-the-same pattern; this makes the system free from a single point of failure. Mikhail Dubkov 19:00–19:50 Testing in Legacy: From Rags to Riches In this presentation I'd like to share practical experience and techniques that were used for modernization and maintaining 10+ years old legacy system: pitfalls that we've faced during that process and conclusions that we'd made when we've successfully finished updating mission. Taras Slipets Download full schedule (PDF) Speakers Mikalai Alimenkou Senior Delivery Manager @EPAM Senior Delivery Manager, Java Tech Lead and experienced coach. Expert in Java development, scalable architecture, Agile engineering practices and project management. Having more than 12 years of development experience, specializes on complex distributed scalable systems. Active participant and speaker of many international conferences. Founder and coach in training center XP Injection. Organizer and founder ofSelenium Camp, JEEConf, XP Days Ukraine and IT Brunch conferences. Founder of active “Anonymous developers club” (uadevclub). Nicolas Frankel Senior Consultant @SAP Hybris Software Architect with 15 years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with narrower interests like Software Quality, Build Processes and Rich Internet Applications. Oleg Tsal-Tsalko Lead Software Engineer @EPAM Speaker, active member of Kiev JUG. Participates in different educational initiatives and JCP/AdoptJSR programs. Passionate developer. Looking forward to learning more from other professionals as well as sharing his knowledge with others. Boris Trofimov Solution Architect @Sigma Software Co-founder of Odessa JUG. Professional software engineer with 10+ years of experience in a wide range of expertise from mobile and enterprise to big data and high load distributed applications. Passionate follower of scalable architectures. Yaroslav Yermilov Senior Software Engineer @EPAM With 5+ years of experience in Java, most of time works in Big Data area, developing various extensions for Hadoop-family tools. Outside work, is inspired by Groovy language and data science. As a postgraduate, conducts researches of semantic web-services and possibilities of their automatic composition. Krzysztof Ras Managing Director @Grid Dynamics Poland Krzysztof Raś is an IT leader with several years of experience in general management, software development, project and portfolio management. Passionate about building and running high-performance teams of professionals that produce exceptional results in a global environment. Sergey Morenets Senior Java Developer @Provectus IT, Inc Java developer, trainer and evangelist. Founder of educational portal it-simulator.com. Speaker at more than 20 Java conferences. Author of the programming books: “Development of Java applications”, “Main errors in Java programming”, “Ideal code”. Igor Dmitriev Senior Software Engineer @Luxoft Igor loves to dig into details to find out how features work under the hood. Experienced in working on different software projects and can say for sure that if you are using Hibernate you have performance issues. Passionate about highload systems and performance tuning. Vladimir Tsukur Software Engineering Manager & Team Lead @Zoomdata Volodymyr is a software engineering manager @Zoomdata who takes care of the connectivity team. Before joining Zoomdata, he has been primarily focused on the development of a wide variety of distributed systems with an in-depth focus on platforms, APIs, and the Web. Passionately engaged in software development for over ten years striving to make engineering productive, open and transparent. Certified Scrum Master and XP practitioner. Tech speaker, program committee member of JEEConf and XP Days Ukraine. Outsourcing partner of Easyhunt.com in Ukraine. Co-author of the patent on electronic negotiation. REST API trainer. Antons Kranga Java Platform Lead / Technology Architect @Accenture On-field architect and full-stack developer is leading Java technology track @Accenture Latvia dedicated to innovation in Cloud Computing domain. Antons is Cloud and DevOps evangelist that continuously experimenting with latest technology and consulting Solution Architects and the projects. Oleksiy Dyagilev Chief Software Engineer @EPAM Oleksiy is helping companies to build a better software. During recent years is particularly focused on scalable computing and data grids. Oleksiy can be found blogging at http://dyagilev.org/ Maksym Voroniy Software Architect @GlobalLogic Maksym is a Software Architect in the world of distributed systems. His professional knowledge and skills were formed by participation in multiple projects of broad technology stacks of Java, C#, C++ and Python. Has a PhD on intersection of System Analyzes and AI discipline. Dreams about the World where people awake smarter than the previous day. Anton Boyko Founder, Senior Speaker @Ukrainian Microsoft Azure Community&DevOps Evangelist @Microsoft Microsoft Azure developer with 3+ years experience and Microsoft Azure platform technical expert. In his spare time actively fills his YouTube channel with cool video on cloud computing. Interested in everything connected with Microsoft Azure. Owner of Microsoft Azure MVP honorary title since 2014. Call for papers Apply Super early bird $75 1,898 UAH All day access Limited quantity Sold Out early bird $100 2,530 UAH All day access Limited quantity Sold Out regular $150 3,795 UAH All day access Limited quantity Sold Out last chance $170 4,301 UAH All day access Limited quantity Buy Organizer Title sponsor Partners Partnership proposal Info partners JavaDay Digest Signup We'll send you updates about new talks, changes in date and location (if any) and workshops announcements. Got Java? Let's talk! Premier Palace Hotel Kharkiv Conference Hall (2 Nezalezhnosti Av., Kharkiv 61058, Ukraine (former Pravdy Av.) contact@javaday.org.ua - general queries support@ticketforevent.com - ticket queries +38 (098) 264 0211; +38 (095) 090 8909 Organising Committee 10.00 - 19.00 © 2017 JavaDay