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 on Binary Compatibility

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 on The Importance of Patterns

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 [lib.global.names] 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 landheer-cieslak.com was down. Michel … Continue reading

Posted in Uncategorized | Comments Off on Mail down – and back up again

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 on Hiding Complexity in C++

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 on Crime, Debugging and the Broken Window Rule

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 on How Data Transport Should Work IMNSHO