Recent Posts

Debugging the broken SQL Server 2017 installer

Today I tried installing the latest Express Edition of SQL Server: version 2017. Sadly, Microsoft no longer seems to offer offline installers. If you look at their download page, you'll only find the option for downloading a small, 5 MB bootstrapper that will then take care of downloading the actual installation files. Even Scott Hanselman's ... read full post

ESA Open Day 2017

So, I attended the ESA Open Day this year, at ESTEC in Noordwijk (The Netherlands). As someone with a casual interest in astronomy, I suppose it was inevitable that I would visit ESA eventually, especially considering it's only a 1,5 hour drive away from where I live. I brought my camera, along with my new ... read full post

Solving Einstein's Riddle the lazy way

There's a logic puzzle called Einstein's Riddle (originally known as the Zebra Puzzle) which is supposedly pretty well-known, as far as logic puzzles are concerned. It's also claimed to be quite difficult, with only 2% of people capable of solving it, although that sounds pretty sensationalist and I can't find a source for that figure. Anyway, here's the puzzle as it is ... read full post

Intercepting interpolated strings in C#

If you use C#, you're probably familiar with interpolated strings, introduced in C# 6. In case you're not, this: string.Format("Hello, {0}! The year is {1}.", name, DateTime.Now.Year) equivalent to this: $"Hello, {name}! The year is ... read full post

Entity Framework conditional includes

If you've ever worked with Entity Framework, then you're probably familiar with the .Include(...) function. You've probably also wondered if it's possible to perform a conditional include (i.e. including only those entities that match a certain predicate). The include function itself doesn't allow for this, and I thought it simply wasn't possible until a coworker ... read full post

More Windows Phone annoyances

There's lots to love about Windows Phone, but since I'm nitpicking stuff anyway I figure I might as well rant about the rest of my annoyances. 1. Headphone volume The EU has some dumb rule about audio devices not being allowed to output more than a certain dB level without nagging you every 20 hours. My Windows Phone ... read full post

PIN required: a Windows Phone usability annoyance

When you power on your Windows Phone, it automatically prompts you for your SIM PIN to unlock, well, the phone part of the phone. Of course it's possible to cancel out of this dialog, because unlocking the phone is not required to access the rest of the device. When you do this, the OS will indicate that the phone hasn't been unlocked yet: There's nothing wrong with any of this. The ... read full post

Sony MDR-1000X first impressions

The Sony MDR-1000X are wireless, over-ear headphones with support for active noise cancelling. I've owned them for a few weeks now and want to share some of my first impressions. This won't be a formal review; I'll just talk about my own, subjective experiences with these headphones. Active Noise Cancelling The reason I bought these headphones is for their Active ... read full post

Targeting multiple .NET platforms in a single NuGet package with Visual Studio 2017

As the proud owner of a NuGet package (72 downloads and counting!), I'm interested in targeting the new .NET Standard, in order to make my package available on a wider variety of platforms. In a previous post, I showed how to create and publish a simple NuGet package. However, this only covered the ... read full post

C# 7: what's new?

Visual Studio 2017 hit RTM this week, so it's time to take a look at all the new features that made it into C# version 7. There's quite a lot to get through, so let's dive right in... Tuples The .NET framework has known tuples through the System.Tuple type since .NET 4. In C# 7, tuples are made an actual language feature. This is done through the new System.ValueTuple type, which is a mutable struct (System.Tuple is a class). This type is not part of the ... read full post