GeeCon 2017, Krakow

Every year, Krakow welcomes some of the biggest industry names to talk about Java and everything related. This time, we couldn’t miss it.

 

 

May 16th

The proverbial long and winding road does exist. It sits between Žilina in northern Slovakia and Polish Krakow. After a couple of hours of tiresome driving, we’ve safely arrived in the city. It was a lonesome journey with only radio Pogoda keeping us company by talking gibberish and playing some traditional Polish songs (also in gibberish). The city of Wypadki is surely a magical place. A place where trucks have voting rights and bikers outnumber pigeons 3 to 1. Unfortunately, there was no time to explore further. We checked-in with the cutest receptionist available and prepared a schedule of talks to visit.

 

May 17th

GeeCon took place in a well-equipped multiplex near the city centre. As it turned out, the venue was not built for this type of events. The corridors‘ bottleneck started to fill with attendees blocking the passage to talk rooms, and you could have spent the whole breaks standing in line in front of a bathroom.

However, the 2017 GeeCon brought out the big guns right at the beginning. David Moore from Sabre showed us the true meaning of “experience.” Although his talk had a rather bland title “Platform and Product Evolution at Sabre,” he touched a broad spectrum of topics – from organizational structures and their need to reflect the software architecture to his hatred towards “layered-cake” architecture designs.

Next on the schedule were some sub-par talks about Java 9 in general, mixed with some never-ending Docker hype, CUDA computing, and introductory profiling. And then we got the juicy stuff. Milen Dyankov from Liferay was not afraid to speak openly about the state and purpose of Jigsaw, the need for the OSGi, and where it all fits together. Great talk for an audience of all levels of familiarity with modular concepts in Java. And of all genders, of course.

We were really pumped up for Monica Beckwith’s talk boldly called “Java Performance Engineers’ Survival guide.” The abstract was attractive and her CV was, so to put it, quite impressive: JavaOne rock star, previously working in AMD as performance engineer, then Sun, later at Oracle working on GC… Suffice to say, the expectations were really high. However, this was probably the biggest disappointment of the entire event.

We ended the day with a dry sauna back at the hotel and went to sleep.

 

May 18th

After such an exhausting first day, we started with a well-prepared soft-skills talk promising to improve our client presentations, only to continue with the trend of microservices and reactive programming. Right before lunch, Jarosław Pałka showed us the magic of bytecode. It stood up to the high anticipations and made us want to –javaagent something.

Avast people demonstrated how to utilize Docker in production and Marcin Grzejszczak explained the idea behind consumer-driven contracts of APIs. This certainly got our attention and we will consider it for future projects.

After Steve Poole’s light talk about Java vulnerabilities, we headed back to the hotel to get ready for the biggest IT party of the year. A large club located inside an old fort hosted geeks the entire night and they seriously did show their mad dancing skills, as you can see in the photo.

 

May 19th

The morning after the party, waking up was a bit more painful. We ate the breakfast quickly. Another pretty receptionist did the checkout.


And back to the conference… Even though the party was hard, the audience listened carefully at the first presentation about interrupted exception. We decided to fork us and take a part at different presentations. To the roots of JVM – Java native runtime and another hype – Akka (full auditorium with no spare room left). Later on, we continued with some general JavaScript and JPA lectures. We joined together at the presentation called “Distributed systems explained (with NodeJS),” given by Bruno Bossola, also known as the “network is a bitch” guy. Our long-standing question of how to do testing properly was answered by Anton Arhipov – TestContainers.

There was a great presentation about code generation and the reasons why we should generate configurations instead of code at the very end of the conference. Here we felt as if the future was already here. Rod Johnson presented Atomist – a bot for Slack.

Big thanks goes to Pantheon Technologies and to the organizers of GeeCon for this amazing experience.

Martin Dindoffer

Milan Frátrik

ngPoland and beyond

In late November 2016 we visited one of the world’s biggest Angular conferences – ngPoland. Just two months before, Angular2 had been released, so all the sessions were more or less discussing it.

The first session was focused at Angular CLI. Tracy Lee showed us how to make a simple application and put it into Firebase in 30 minutes. All with the help of Angular CLI – a command line tool which helps build applications faster, since it prepares your dev environment and you can start coding right away.
We’ve already tried Angular CLI in our project and it’s great. Do you want to watch functionality with live reload, do unit testing with Karma, and end-to-end testing with Protractor? It’s all there, plus much more.

Shai Reznik told us the Legend Of ngModules, a pretty funny story with lot of interesting info on how to write, yes, modules. Seems like a skilled developer should know how to structure applications, but it’s nice to be reminded those best practices every now and then. Especially, when it’s your first try with Angular 2 and TypeScript.

There were few moments when we called „It‘s (put year here), so use (put library/pattern/language here).“ Like „It’s 2005, use asynchronous calls,“ or „It‘s 2015, use promises, callbacks are baaaad“. Now we have another one: „It’s 2016, use observables!“ On this topic, Ben Lesh had a good talk about the RxJS library, which implements the Observer pattern for composing asynchronous and event-base programs.
We’ve tried RxJS, and it works pretty well. We replaced promises in our AJAX calls and events in components. It needs some time to get used to, but it gets pretty straightforward then.

There were more good talks at the Ng Poland conference, so it’s awesome that we all can watch the recordings on YouTube.

 

I would like to conclude this article with some advice: in the case you are about to start a new project and are deciding between Angular 1, which you’ve used before, and have knowledge of, together with skills and code snippets, and Angular 2, use the second one. Angular 2 is simply better.

PS: If you choose to accept my advice, be prepared for lack of documentation. But it’s getting better every day, trust me.

 

Daniel Malachovský

Technical Leader in Pantheon Technologies