The Grid Master

On holiday this year, same as last year, I downloaded a few puzzle games for my phone. One of them was Einstein Grid Master by Kerelize. (You can find it in the Android Play Store.)

The game consists of a 10 by 10 grid in which the user clicks on various cells to place the next digit, starting at 1. The goal of the game is to fill the entire grid with numbers 1 through 100. However, you can’t just place the digits anywhere, you have limited possibilities to place the next digit.


After playing for a while, I decided that instead of endlessly trying various possibilities, I’d write a little program to do this for me :)


The program is a little bare bones and only does some basic checking to determine whether continuing the chosen path has a possibility of coming to a solution, but it was fun to do anyway. On to the next puzzle I’m too lazy to solve by hand 😉


The xkcd surey

Have you ever thrown out all your different pairs of socks/underwear, bought a bunch of replacements that were all one kind, and then told all your friends how great it was and how they should do it too?

This made my day. Yes, definitely yes! XD

On rediscovering painting

When I was a child, I was once asked to create a painting for a church. I don’t remember exactly what the event was, but I ended up creating a painting of a huge colorful mosque. After secondary school, I followed an art class and during my studies in Computer Science and Engineering, I also once took up a painting class. Although painting hasn’t been a constant hobby of mine, I do return to it from time to time. In the past year, I did quite a few paintings from photographs, as gifts for friends or friends of friends.

Continue reading

LEDWall prototype 1

A year or so ago, my partner and I said to eachother “Wouldn’t it be cool to create a LED wall for our living room?”. We then set about to buy an Arduino and some required components for the first prototype. It took a while for us to actually get started, but my phone tells me that on the 7th of June I sent my technogeeky friends a photo over WhatsApp of my breadboard experiment:



Continue reading

Build dependencies and hardcoded paths to shared network drives

Frankly, I’m surprised that I can’t find more blog posts on this topic.

I can’t imagine that I’m the only software engineer who has encountered dependency management of the form “it’s somewhere on the K: drive”. And yet, when I search online, I can’t find anyone griping about this. All I can find is this one blog post by Sonatype that goes on to advertise their Nexus repository manager.

In this case, we use environment variables for all our builds.. or so I thought. Last week, I encountered one project that was making an exception and doing its own thing: It was explicitly calling a tool on the K: drive and linking against libraries on that drive. Not only that, it didn’t use environment variables but hardcoded the path to the network drive in the build script and VS project settings.

Continue reading

Expressing ownership in a solution

I prefer expressing the difference between project a solution owns and projects it does not own (dependencies) with the help of Visual Studio’s solution folders. It’s a trick I didn’t come up with myself, I’ve deftly stolen it from a former colleague.

There are four categories:

  • The main project (in most cases a library or application)
  • Other projects the solution owns, that the main project depends on.
  • Test projects
  • Dependencies: projects the solution does not own


For a little dummy project like this it seems like a lot of overhead, but I’ve experienced that the list of dependencies can become quite large and the number of test projects grows with the number of projects under 1. and 2. What I like most about this approach, is that if you consistently apply this across your solutions, you always know what to expect when opening a solution; at a glance you’ll see what it’s all about. All in all I find it worthwhile to apply this grouping.

Category Posts in Custom Menu now works with wp_nav_menu_item_custom_fields hook

A issue that occurred has been fixed with some help from other plugin developers. This problem was that WordPress doesn’t have a hook to add fields to the Appearance > Menus page. I used to fix this by just overriding the function that created this page, but this way of working means more risk of conflicts with WordPress (updates / changes to the markup) and other plugins (only one can ultimately create the HTML that way). Thanks to the plugin author of Max Mega Menu, who pointed out a workaround other plugin developers have been using, this is no longer such an issue. I intended to implement their suggestion for some time now, and today I got around to it.

In the next release, my plugin now supports the wp_nav_menu_item_custom_fields hook and should be compatible with other plugins. See original support question here: Is there any way to use this with Max Mega Menus?

Those who need this functionality right away can grab the latest development version at the plugin page on


“Jensen discovered (and many subsequent experiments confirmed) that many animals — including fish, birds, gerbils, rats, mice, monkeys, and chimpanzees — tend to prefer a longer, more indirect route to food than a shorter, more direct one. That is, as long as fish, bids, gerbils, rats, mice, monkeys, and chimpanzees don’t have to work too hard, they frequently prefer to earn their food. In fact, among all the animals tested so far the only species that prefer the lazy route is — you guessed it — the commendably rational cat.”

— Dan Ariely, The Upside of Irrationality (62)

Project management quadriliteral

Laatst had ik een interessant gesprek met een oud-studiegenoot, die aangaf onder druk te staan om een product af te leveren van hoge kwaliteit, binnen te korte tijd en met te weinig resources. De bekende driehoek van tijd-geld-kwaliteit. Tijdens ons gesprek poneerde ik de stelling dat wanneer er geen concessies gedaan worden op tijd, geld of kwaliteit, er een concessie moet worden gedaan op een vierde parameter: verantwoordelijkheid.

Continue reading