Hanno Embregts

Java Developer & Speaker, strong with the Force - full bio

Keynotes

When Music and Software Come Together

“Can you perform under pressure?” the interviewer asked. I had to resist the urge to sing “PRESSURE! PUSHING DOWN ON ME!” at the top of my lungs. Instead I absent-mindedly said “Sure” and provided a few dull examples to back the claim up.

Still, when you love doing what you do, you’ll be happier and your performance will benefit. Being both a developer and a musician, I am happiest when I see music and software come together. When I do a ‘git push’, I hum “push it to the limit”. And when I hear a pop song, I believe the lyrics are actually about software development.

This talk takes you on a journey throughout a typical software development process, showing you where music and software cross paths. And because I’ll perform the songs myself, the talk doubles as a mini-concert - featuring songs by Coldplay, Oasis, Imagine Dragons and many more.

Appearances (3)

Regular Talks

Pattern Matching: From Small Enhancement To Major Language Feature

At first it seemed to be just a small enhancement: the addition of “Pattern Matching for instanceof” (JEP 305) in Java 14. No more unnecessary casting after an instanceof, that ought to save us a few seconds a day! However, upon further investigation you’ll quickly discover that pattern matching is not just an enhancement, but rather a vital puzzle piece in the grander scheme of things.

Why were switch expressions added to Java, for example? To make them support pattern matching in a later release! And why did Java 14 bring us records and will Java 15 contain sealed types? Because they could work really well with pattern matching in a later release! These new concepts are the foundation upon which advanced pattern matching features will be built.

So attend this session to get all caught up! You’ll hear about type patterns, deconstruction patterns, nested patterns and even how pattern matching could improve serialization in the future. Live coding included, of course!

Appearances (1)

Will Git Be Around Forever? A List of Possible Successors

What source control software did you use in 2010? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?

In this talk we will think about what features we want from our source control software in 2030. More speed? Better collaboration support? No merge conflicts ever?

I’ll also discuss a few products that have been published after Git emerged, including Plastic, Fossil and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2030 (all information is provided “as is”, no guarantees etc. etc.).

So attend this session if you’re excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first. 😀

Appearances (1)

Building a Spring Boot Application: Ask the Audience!

Spring Boot makes it easy to create stand-alone Spring-based applications that you can ‘just run’. It uses a ‘convention over configuration’ approach to get you up and running in no-time. And with the release of Spring Boot 2 in February 2018 all Spring 5.0 features will be available for Spring Boot users, as well as Kotlin support. In this session I will demonstrate this by live-coding a Spring Boot 2 application that will ‘just work’.

But audience beware, this is not your standard ‘live-coding session’. Attendees will have a vital say in the session’s content by defining the application’s requirements. Do you want a simple task planner? Or track your favourite movies? It’s up to you! Should it use MongoDB or JPA? You decide! Built with Java or Kotlin? I don’t care! Do you want an Angular front-end with a RESTful back-end or do you prefer a classic web app with Thymeleaf templates? It’s your call! Seriously.

During the session you get to make these decisions by participating in an online vote. And you will discover that Spring Boot is up to the task no matter what choices you make.

So what are you waiting for? Bring your own device, help shape the application that we’re building and learn lots about Spring Boot in the process.

This session is intended for Java software engineers with an interest in Spring Boot. Some Spring experience could come in handy, but is not strictly necessary. After this session, you will know enough to start your own Spring Boot project.

Appearances (6)

Entering the Fourth Dimension of OCR with Tesseract

Optical Character Recognition has evolved into a mature computer science field, with applications in financial transfers, book digitisation and passport scanning. Now if you would want to add OCR to your Java application, you have lots of options; one of which is Tesseract.

Tesseract has become quite popular amongst software developers because of its accuracy, its open-source status and its active development by Google. By using the Tess4J JNA wrapper it is easily integrated into your Java project.

During this session, I will introduce Tesseract, its pros and cons and how & when to use it. I will compare it to its competitors and I will explain why and how we used it in a case study. To top it off I will live-code a Java application that uses Tesseract and Tess4J to process some example images, so you’ll be able to assess its accuracy for yourself.

Now in geometry, a ‘tesseract’ is the four-dimensional analog of a cube. So will Tesseract live up to its name and help your project to ‘enter the fourth dimension’? Attend this session and find out!

Appearances (1)

Migrating 25K lines of Ant scripting to Gradle

Most developers prefer to spend their time writing code instead of performing build script maintenance. Build scripting may be an essential part of the software development process, but it often lacks maintainability which makes applying and deploying changes a tedious job. So it’s important to make sure your build system encourages simplicity and that changes can be made in a fast and straightforward way. Industry standards Ant and Maven are not quite up to the task; Gradle is a better alternative.

This presentation introduces Gradle – a modern build system that supports all JVM Languages – and shares the result of the Ant-to-Gradle migration that was performed at ‘Nederlandse Spoorwegen’ (or NS - Dutch Railways). The session will focus on the challenges we faced while trying to replace Ant scripting with the Gradle equivalent and how we handled them.

After attending this session, you will have a good understanding of Gradle, its possibilities and its pros and cons compared to Ant and Maven. On top of that, you will be able to migrate your own project to Gradle, even if your project has a huge code base or relies on ancient technologies. The lessons we learnt at NS could be very helpful to your own situation.

Appearances (3)

Beware Of Survivorship Bias!

Most talks on a typical conference schedule contain success stories of technology. This could lead to survivorship bias. Survivorship bias causes you to draw false conclusions because you mostly heard about successes, but hardly ever about failures. Yet failures provide us with lots of valuable knowledge: when not to apply a certain technique, pattern or process.

So no success stories in this talk! Just some ‘silver bullets’ we tried to use to solve our problems, but turned out to be Very Bad Ideas™. We’ll share how survivorship bias can easily influence your ideas and cloud your judgement.

After attending this talk you’ll be more aware of survivorship bias and what you can do to keep your head cool, no matter how many ‘silver bullets’ are fired at you.

Appearances (2)

Lightning Talks

QWERTY or DVORAK? Debunking the Keyboard Layout Myths

If you’re reading this summary on a computer, chances are there is a QWERTY keyboard on your desk. This keyboard layout has been around since 1873, and it has been widely adopted ever since. However, its popularity has always remained a mystery to me. Why is everyone using a keyboard layout that doesn’t look that efficient on first sight?

I’m not the only one asking this question. A lot of myths exist on the QWERTY keyboard layout, including the one that it was specifically designed to slow down typists. In preparation for a switch to the DVORAK layout, I did some research and found out that a lot of these myths are riddled with factual errors. Also, I started learning DVORAK and kept track of my progress and what I thought were the pros and cons.

So was QWERTY designed to slow us down? Is it feasible to adopt an alternative layout like DVORAK? If so, how long will it take you to learn it, and should everyone consider it? Join this session to have your questions answered, and feel free to bring your keyboard layout of choice. :-)

Appearances (3)

These Songs Would Make Some Great Code Comments

Besides being useful, comments in source code can also be fun! This legendary StackOverflow post tells me that sometimes a well-chosen joke put into source code can lighten the mood at work and make your developer life just a bit better.

Now, because I am both a developer and a musician, I tend to use song lyrics to lighten up my code. So in this Ignite talk, I’ll demonstrate this by showing a few typical code fragments that could use some musical quality. And of course I’ll perform bits of the songs that go with it.

So are you in for a light-hearted talk on code comments - slash - a mini-concert featuring songs by Coldplay, Oasis, Adam Lambert, Imagine Dragons and many more? Please join in and feel free to sing along!

Appearances (4)

Unconference Talks

The Soft Side of Software Development

Great to have you at the conference! By now you’ve probably heard about a lot of new tools, and chances are you’re already looking forward to trying them out at work. Then it’s just a simple matter of convincing everyone that the new stuff trumps the old in every way, right?

Turns out just knowing about the latest technical stuff will only get you so far. Your ‘soft skills’ play a vital part in the process of developing a great product. You need to be able to convince people, motivate them, listen to them and treat them with respect. So how do you learn this stuff?

After struggling with this question for a long time I discovered two things: 1) You can learn from your successes, and even more from your failures; 2) You can learn from the way other people handled their situations.

So in this BOF session I’m happy to tell you some of my successes and failures. But I’m also curious about the way you handled your own situations. In fact, just bring your splendid self and a few questions and I’ll do my best to make sure we all learn from it.

Possible topics:

Appearances (2)

Ignites

JEPardy!

This… is… JEPardy! In this special edition of America’s favorite quiz show, the contestants will match various Java Enhancement Proposals (JEPs) to their proper descriptions. Instead of money, something far better can be won here today: improvements on their ready knowledge and understanding of the JEPs that drive the innovation in our favorite programming language.

Appearances (1)

Slide Deck Version Management: The Good, The Bad and the Ugly

After speaking at a few conferences, I’ve noticed that as a conference speaker you need to provide session content that is both challenging and versatile. On top of that, your content should be able to fit into different time slots. Whether you are given 35, 45 or 60 minutes of speaking time, your story should remain clear and appealing to the attendees. To make matters worse, in some occasions you are dealing with multiple speakers and / or different languages. And managing the different versions of your slide deck has officially become a challenge!

Analogous to the plot of Sergio Leone’s spaghetti western classic, three possible solutions exist: a good one, a bad one and a plain ugly one. I will demonstrate these solutions in reverse order and let you decide for yourself which one you prefer.

So are you a speaker or are you thinking about starting out? Or are you simply a fan of spaghetti westerns? Join me in this Ignite session to get some tips on slide deck version management! And discover that after attending this session, you can avoid spending your valuable time on version management and instead spend it on coming up with some great new session content!

Appearances (2)