Advent of Code Day 20: a little bit of (re)vision

Coder’s log, AoC-stardate 2019.40. With help of the tractor beam we have managed to escape the security perimeter of the planet called Neptune. We have landed on Sol IX, nearby a donut-shaped structure. It appears to have a maze-like interior that we need to cross….

Except that I am terribly behind on collecting stars for the previous days, not to mention that our financial controller just mailed: “enter your expenses regarding 2019 as soon as possible . Time for… more procrastination, and a small look back and forth.

Read more →

Package management with Nix

As software engineers we use package managers on a daily basis. We use them to install dependencies we need to run and build software we write. Probably every software engineer can relate to the frustration that will eventually arise from using these package managers. Sometimes packages that seem to work on your colleagues machine just fine, are broken on yours. Even though package managers have improved substantially over time, issues like these still arise. Maybe there is some fundamental design flaw in the way we approach package management. There is a package manager that tries to do things different and it is called Nix. Let’s take a look at what Nix is and how you can use it on your machine today.

Read more →

How little green men helped me solve a puzzle

Okay, so first of all it is all Serge’s fault. On the train back from Schiphol he introduced me to and together we solved the first puzzle, which also marked my first steps into Python.

I was hooked instantly.

Every year I try to learn at least one new language or skill, but the last few years it felt like cheating. First I learned AppleScript then Blender and last summer I settled for kOS scripting, interesting, but not very deep and most of all not very practical. Python proved to be something else. It reminded me of C, Pascal, Bash and everything else. It seemed to come very naturally and at the same time it continued to surprise me with simple constructs that allow you to do things elegantly and efficiently.

Read more →

Advent of Code day 16: Curses!

I knew it had to come someday: those puzzles where you run around on a character-based grid. Day 15 was one of those. I’m definitely not one of those people who just pull maze traversal algorithms out of thin air, and to learn them I read an overview of the algorithm and then try to implement is. And then start with the headache of why things aren’t working, or your robot just walks up and down along 2 coordinates, etc. etc.

Read more →

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 →