Programming Rants

Windows: Getting callback on child process exit in C++
07 Aug 2014
In my current capacity I sometimes descend into the virtually forgotten depths of C++ desktop programming. One interesting problem I needed to solve is how to get notified about a process exit. My program can create potentially unlimited number of child processes, and I need to know when they die. In the .NET world I […]

Program to restart Belkin – N300 Wireless-N Router
01 Jun 2014
Various Wi-Fi devices, especially mobile ones, started to “lose” the router. They can easily find the network, but then are stuck on obtaining the IP address. I guess this is some bug in the DHCP server. Restarting the router usually helps. I ended up writing a little C# program (binaries, full source, Program.cs) to automate […]

Android OS eats the battery
04 May 2014
My Motorola Droid RAZR MAXX suddenly started eating the battery much faster than it did just a couple of days ago. I went to System Settings->Battery and discovered that the main consumer of power is now the Android OS, which has left Screen, the traditional battery hog, far behind. I tapped on the “Android OS” […]

WPF: Editable ComboBox Text Disappears
30 Apr 2014
ComboBox looks like a simple thing, but it’s surprisingly hard to get right. Today I bumped into another bug (or feature) of the WPF combo-box. I am recording it here, so I don’t forget the details. Suppose you have a ComboBox. The user selects an item in the combo box. ComboBox’s ItemSource then changes. If […]

Staying on hold: why background music is better than chatter
21 Feb 2014
US Mail lost my package. Trying to call them, I am waiting on hold for 25 minutes and counting. But that’s not the most annoying part. The most annoying part is that they use constant chatter about their excellent services instead of background music. A male and a female announcer alternate talking about how priority […]

Changing order of enum values in C# breaks binary compatibility badly
27 Jan 2014
Suppose I have a public interface that uses this enum: public enum LogLevel // v1 { Info, Warning, Error, Debug } There is a problem with this enum: the values are not in the order of increasing severity. Let’s say we want to fix this like so: public enum LogLevel // v2 { Debug, Info, […]

Boost log
02 Jan 2014
I was doing some googling around the Boost log library, and here’s what came up: U.S. House backs bill to boost logging in national forests.…‎ Sep 22, 2013 – Greg Walden, R-Ore., said many rural counties in Oregon and other states … rural West, Matson said, adding that an increase in logging jobs … […]

Molecular communication for closed environments
20 Dec 2013
Many of us heard about transmitting Internet traffic via avian carriers. While avian carriers have definite advantages, they cannot be used in small scale confined environments. Researches from Canada came up with a new, revolutionary communication channel based on stimulated molecular diffusion. In other words, they were able to send a text message using a […]

How to disable secure boot: a play in 14 acts with two intermissions
04 Dec 2013
I have just got a new laptop: it comes with Windows 8, but it does not have a touch screen. So, naturally, I am throwing out Windows 8 and replacing it with Windows 7. Unfortunately, Windows 8 won’t give up easily: you need to disable Secure Boot first. Fortunately, I already did it for a […]

Why I would not recommend SSRS
06 Sep 2013
I’ve been putting this off for a while, and it’s been a couple of months since I had actively worked with SSRS reports on a daily basis. Here are my main points of frustration with the product. This was and older version of SQL Server (2008R2, if I remember correctly), but I don’t believe the […]