Changing an API in subtle, unpredictable ways

Many seasoned Windows systems programmers will know that you can wait for the death of a thread with WaitForSingleObject and for the deaths of multiple threads with its bigger brother, WaitForMultipleObjects. Big brother changes its behavior on some platforms, though — as I just found out myself, the hard way.
Continue reading

Posted in C & C++, Windows | Tagged , , | Leave a comment

Opening a support ticket with Microsoft (or: how not to support your customers)

I had to open a support ticket with Microsoft today: I found a bug in the TCP/IP stack of Windows Embedded Compact 7 that I wanted them to know about (and to fix). I also wanted to know when it would be fixed — after all, the bug is critical and the company I work for is a Microsoft Gold partner, so I had a reasonably high expectation of service.

Suffice it to say I was disappointed.
Continue reading

Posted in Opinions | Tagged | Leave a comment

Winter wallpapers

As has become my custom (at least since this summer) I’ve changed the theme a few days go, at the start of the season. Here are the associated wallpaper images…
Continue reading

Posted in Uncategorized | Leave a comment

Setting up a new skeleton: re-factoring

Before we go much further with our SOCKS server, we should do a bit of cleaning up in the project: we’ll move the Server and Observer classes to their own library, so we can more easily re-use them, and we’ll copy the Application class over to our new project — the one that will become our next step towards a fully functional SOCKS server: Episode35.
Continue reading

Posted in C++ for the self-taught | Leave a comment

Sleep(…)

For those of you waiting for the next installment of “C++ for the self-taught”: I’m on parental leave at the moment. The podcast (and the rest of the blog) will be back in a few weeks.

Posted in C++ for the self-taught, This blog | Leave a comment

Radix Sort

image
The Radix Sort algorithm is a stable sorting algorithm that allows you to sort a series of numerical values in linear time. What amazed me, however, is that it is also a natural approach to sorting: this is a picture of my daughter applying a radix sort to her homework (without knowing it’s a radix sort, of course, but after explaining the algorithm perfectly)!
Continue reading

Posted in Interesting stuff | Leave a comment

The underestimated legacy of Dennis Ritchie

Dennis Ritchie is the inventor of the C programming language, which is the ancestor of a whole family of programming languages that includes C++, Java and C# — probably the three most popular programming languages today — as well as D and Objective-C, which are less popular but significant nonetheless.

Ritchie is also one of the authors of the early UNIX kernel, which was the first significant program written in C and for which C was originally designed, and which is the ancestor of a whole family of operating systems that includes Linux, MacOS X, iOS, BSD and many others.

C was the first programming language that allowed the programmer to structure data and code, making it relatively easy to handle very large quantities of data while also maintaining full control of how the hardware is used. Most operating systems today, including significant parts of Windows, are written in C — and most OS designs are at least partly based on UNIX.

Everywhere you look, you can see the fruits of Dennis Ritchie’s labor — and by his fruits you shall know the man — but it seems this man is known only to those of us who either have an intimate knowledge of C and/or UNIX, or are more-than-usually interested in programming language design.

That is a real shame: I think there is a lot we can learn from his legacy — and a lot to be gained from continuing his work.

Posted in C & C++, Opinions | Leave a comment

Making the enabling of online copyright infringement itself an infringement of copyright

Bill C-11 amends the Copyright Act in several different ways. One of the states purposes of those amendments is to “make the enabling of online copyright infringement itself an infringement of copyright”. While I can understand that this adds significant new protections to copyrighted materials, I think this may quickly become either unenforceable, or introduce serious new restrictions on how communications over the Internet can legally take place. It all hinges on the definition of “enabling”, however.
Continue reading

Posted in Opinions | 4 Comments

Harper government reintroduces toughened online copyright law

In the Vancouver Sun: bill C-32 from last session has been re-introduced (probably with some modification — I haven’t had a chance to read the bill yet) and is far more likely to pass, now that there’s a conservative majority in Parliament.

Update Oct 8, 2008: the re-introduced Copyright Modernization Act is numbered C-11, and is available here.

Posted in Opinions | Tagged | Leave a comment

Autumn is here – and so is the autumn banner

OK, autumn has been here for about a week already, and the banner was ready two months ago, but I only now had both the time and the inclination to put it up…

You might remember that the corresponding desktop wallpapers are in the Canada Day post.

Posted in This blog | Leave a comment