Advent of Code, day 14: Chain Reaction

Even though Eric Wastl’s creativity is large enough to regularly surprise the people at #XebiaAoC, there are some puzzles in #AdventOfCode that bring back memories to challenges seen before. Upon reading today’s Advent of Code puzzle, it immediately brought back memories to one of the harder puzzles in 2015.

Today’s puzzle was about finding the required source materials to end up with a sufficient amount of fuel. The puzzle input was a list of formulas describing chemical reactions, transforming source materials into other materials. The challenge was to find the right amount of source material to produce one unit of fuel, following the transformation of that source material through a series of chain reactions. Not completely original, but it definitely added a fun twist by requiring specific amounts of materials.

Read more →

Acing your pull requests with animated GIFs

As part of your continuous integration and delivery approach or even progressive delivery, if you will, you want your code to go live fast. To assure the quality and maintainability of your code you use pull requests. Another person needs to review and approve your changes. This process can take some time since the reviewer needs to visualize the result of your code in his/her mind. In this post, I will explain how to get your pull requests approved faster with animated GIFs.

Read more →

Advent of Code, day 12: Shooting for the moon

I won’t lie. I’m usually not the most competitive person out there. But when December nears, I’m getting a bit restless. And when I run into fellow players from previous year, the conversation quickly turns to the coming season of Advent of Code. “Will you be joining again this year?”, “Have you started preparing yet?”, “Which language will you use?” or “Going for the top position again this year?” are just some of the questions asked.

Read more →

6 reasons to learn Sketchnoting

“And that is what I love to do the most!” was the last sentence that Laurens said during his presentation at the Xebia Bootcamp, five years ago. I was surprised by the stuff he showed and said, I’ve seen so many presentations during the ‘Hi Welcome @ Xebia Bootcamp,’ but this one inspired me the most. Sure it has something to do with us both being creative people, but it mostly came from the passion and love for doing what you do, which Laurens showed us.

Read more →

Advent of Code, day 11: to be or not to be…

Though I’m not a fanatic participant in Advent of Code I still like to join in on the fun and challenge myself to solve the puzzles posted every day. I’m one of those players that plays whenever there is time, instead of the top players that set their alarm clocks to be at the ready when the assignment gets published.

When I opened up the assignment for this morning I was pleasantly surprised to see yet another one involving our beloved IntCode computer 😉 (As Jochem already predicted in his blog)
Today’s challenge involves moving a paint robot around using an IntCode program. There was just another twist. Now the IntCode’s program needed to output to a grid from which it read via the input operation. Fortunately for day 7 part 2 I already had to create a helper function that used a generator as input instead of a fixed set of values so I could easily reuse that again.

Read more →

Advent of Code, day 10: Space cowboys shooting pixels in the sky

First, find the song “Dead Pixels in the Sky” by Nigel Stanford. You can find it on his latest album Automatica. Press Play, as it will be a nice 4:30 backdrop while reading this post of 1,100+ words.

If you’re a slow reader — and you become one when participating in Advent of Code, trying to carefully parse all instructions to swat a final (?) bug in your code — continue with “Space Cowboy” by Jamiroquai. At the end of this blog post, it’ll be clear why these songs are so fitting for today.

Read more →

Building and Deploying Your First Cloudflow Application

Cloudflow is a relatively new framework that helps you build distributed streaming applications and deploy them on Kubernetes. Its powerful abstractions allow you to easily split your application into independent stream processing components, called streamlets. Streamlets can be developed using several runtimes such as Akka Streams and Flink. A streamlet can have one or more input streams, inlets, and one or more output streams, outlets. You deploy you application as a whole while Cloudflow deploys streamlets individually. Cloudflow ensures data flows between the inlets and outlets of your streamlets at runtime, through Kafka, corresponding to your Avro schemas and your pipeline definition, called a blueprint.

In this post we are going to build a simple application using the Cloudflow framework and Akka Streams. We are going to start off with a simple SBT project to setup a stream processing pipeline, run it locally and eventually deploy it to GKE using [more…]

Advent of Code Day 9: How I started enjoying solving programming puzzles

About 2 years ago I ran into Advent of Code for the first time. I got introduced by a friend who was a full-time web developer. As an information security advisor and pentester I didn’t write a lot of code. Here and there I had to modify a script to work properly, but that was about it. I managed to forget about it for a couple of days and started a few days late. But I did get excited when he showed me some challenges from the previous year.

As I mostly used Python for scripting I didn’t feel very proficient in it and thought it would be a good idea to learn more about it in a playful manner. After solving the first challenge, I still recall the feeling, it really was a fun way to learn about it. The storyline gave it something extra to.

I was very happy to learn after joining Xebia that Adent of Code was a thing! Quite a lot of people participated in it and they even had a competition going on internally last year. This got me looking forward to this years event. The days to the first of December were counting down and people where starting to get hyped in the office and sharing their goals with eachother.

Day 1 appeared and it was a Sunday. This year I just wanted to have fun in any way possible with like-minded people! Going back, I’m not a software developer and ran into some challenges tackling challenges. Also, after 2 days I was scraping time to try solving the puzzle, but I did read through all challenges first thing in the morning. This way I had some time to think about how I was going to approach the challenge. What is very enjoyable and motivating was arriving at work and a handful of people already having solved the puzzle of the day!

This speaks very much for the level of enthusiasm the puzzles are being solved at. The moment arrived I can work on my version of a solution. Decided to using Python for this year, got me writing code again. Solving the first day got my happy-bugs going even more.

As the days go by I’m reading more and more stories on how people solve the challenges in various ways of which some are even mind-boggling. This made me realize that participating in this annual event is more than just about writing code. It’s about having fun and writing code together, but in your own way. It’s about learning new things and sharing knowledge and enjoyment with the community.

We’re not even halfway the event and I’m already looking forward how Santa will get saved this year. Hope we will make it in time to save Christmas as we had to fly across the universe! Solving the puzzles result in an awesome animation which you can be proud of. Because Advent of Code is running a marathon with others, and not a sprint by yourself!

ResizeObserver – a new powerful tool for Responsive Web

The word “responsive” is something we don’t mention that often these days in web development, it’s a standard already. There is a vast and ever-growing variety of screens. We want to be able to support all the possible sizes and still keep a good user experience. And CSS media-queries are a great solution to this challenge. But how about responsive components? Modern web development is about components and we need a way to make them responsive as well. Today I want to talk about ResizeObserver API, a new powerful tool for Responsive Web, which in contrast to media-queries, allows detecting a size change of a particular element rather than a whole viewport.

Read more →

First class failure scenarios in Java

Checked exceptions were an effort by the designers of Java to express the possibility of failure in the type signature, aiding users of these methods in handling the failure scenario gracefully. While the intentions of the design were noble, the end result did not pan out as expected. Most Java programmers have dropped checked exceptions in favor of their unchecked counterparts. Contemporary Java allows us to express failure in the type signature in new and better ways. In this post I’ll explain why checked exceptions have fallen out of favor and what better approach there is to expressing the possibility of failure.

Read more →