Monthly Archives: August 2009

Binary Compatibility

When writing library code, one of the snares to watch out for is binary compatibility. I have already talked about the dangers of breaking binary – and API – compatibility but I had neither defined what binary compatibility is, now … Continue reading

Posted in C & C++, Software Design | Comments Off

The Danger of Breaking Changes

Xerces-C is without a doubt one of the most popular DOM implementations in C++ (and its Java sibling undoubtedly the most popular implementation for Java). As with any project that lives under the banner of the Apache Foundation the project … Continue reading

Posted in C & C++, Opinions, Software, Software Design | 1 Comment

The Importance of Patterns

When explaining the design of some application to some-one, I find the use of analogies is one of the best tools available to me – better than diagrams and much better than technical terms: when using technical terms, the listener … Continue reading

Posted in Software Design, Technology | Tagged , | Comments Off

Naming conventions and name mangling

In C++, any name that starts with and underscore followed by an uppercase letter and any name that contains two consecutive underscores is reserved for any use [] and any name that begins with an underscore is reserved in the … Continue reading

Posted in C & C++ | 1 Comment

Using Four-Letter Words In Code

When writing firmware and device drivers, it is useful, sometimes, to have human-readable integer values – i.e. integer values that, when you read them in a debugger, mean something distinctive. This is different from using integers that have a distinctive … Continue reading

Posted in C & C++, Software Design | 1 Comment

Mail down – and back up again

I changed my hosting provider a few days ago, which implied changing the DNS provider as well. As a result of this – and my forgetting to set the MX entry correctly, the mail service for was down. Michel … Continue reading

Posted in Uncategorized | Comments Off

Name For Functionality, Not Type

I just read a blog by Michel Fortin, where he quotes Joel On Software regarding Hungarian notation, or rather, Hungarian WartHogs. Naming a variable for its type, or a type for its location or namespace, is a mistake. I agree … Continue reading

Posted in Opinions, Software, Software Design | 4 Comments

Hiding Complexity in C++

C++ is a programming language that, aside from staying as close to the machine as possible (but no closer) and as close to C as possible (but no closer), allows the programmer to express abstraction if a few very elegant … Continue reading

Posted in C & C++ | Comments Off

Crime, Debugging and the Broken Window Rule

In the late 1980s New York City was cleaned up from under the ground up: from 1984 to 1990, the New York subway was cleaned of its grafiti, then of its non-paying passengers. After that, when the chief of tge … Continue reading

Posted in Software Design | Comments Off

How Data Transport Should Work IMNSHO

One of the most ubiquitous problems in software design is to get data from one place to another. When some-one starts coding code that does that, you seem to inevitably end up with spaghetti code that mixes the higher-level code, … Continue reading

Posted in Software Design | Tagged | Comments Off