If

The difference between an implication and a bi-implication is this:

I am a crazy cat lady. I just don’t have all the cats yet XD

Unit testing 001

“Man, I just love unit tests, I’ve just been able to make a bunch of changes to the way something works, and then was able to confirm I hadn’t broken anything by running the test over it again…” — http://stackoverflow.com/a/67500

The benefits of unit testing are well known, as are the many reasons that are offered when asked “Why don’t you do it?”. The arguments I hear over and over are:

  • “It takes too much time.”
  • “Our code isn’t suitable for unit testing.”

I’ve discussed unit testing with many people in the past years and at some point, I discovered one of the main reasons behind the arguments that were actually offered. We human beings find it much easier to say “It’s not possible”, “It’s too expensive”, “I don’t want to” or “I won’t start doing this until I’ve seen it work” (this one I encounter surprisingly often and makes me smile nowadays) than to admit:

  • “I don’t know how”

Continue reading

LEDWall proto 2

I just sent out an order to have my very first PCB design ever manufactured! 😀

brd

When I asked for feedback, they said it looked very neat for a first design 😀
Now all I have to do is wait for it and then I can solder on the components and see if it works 🙂

Edit: CRUD! Yep, forgot to model the resistors. Let’s see if I can modify the PCB after it arrives. If not, back to the drawing board.

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.

app_startScreenshot

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 🙂

Solution

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 😉

wpid-wp-1446325097733.png

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:

arduino

beardboard


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

beforeafter



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.