Category Archives: Software Design

Run-time composed predicates and Code generation

While working on Arachnida, preparing version 2.2 due out this fall, one of the things we’ll be introducing is a hardened OpenSSL transport-layer-security plug-in, to replace the one we’ve had for the last seven or so years. One of the … Continue reading

Posted in C & C++, C++ for the self-taught, Software Design | Comments Off

What happens if structures aren’t well-designed

In my previous post, I explained how to design a structure for persisting and communicating. I didn’t say why I explained it — just that things get frustrating if these simple rules aren’t followed. In this post, I will tell … Continue reading

Posted in C & C++, C++ for the self-taught, Embedded software development, Software Design | Comments Off

How to design a struct for storage or communicating

One of the most common ways of “persisting” or communicating data in an embedded device is to just dump it into persistent storage or onto the wire: rather than generating XML, JSON or some other format which would later have … Continue reading

Posted in C & C++, C++ for the self-taught, Embedded software development, Software Design | 5 Comments

Eclipse: kudos

One of the things I like about Eclipse is the way it is designed. I’m not talking about the GUI when I say that – although the GUI is arguably well-designed as well: I mean the way hundreds of pieces … Continue reading

Posted in Software Design, Software Engineering | Comments Off

More than the absence of problems

Quality can be defined in many ways: ISO defines quality relative to requirements as a measure of how well the object’s characteristics meet those requirements. Those requirements can be specified (documented) or implied (customary). This has the advantage of making … Continue reading

Posted in Software Design, Software Development, Software Engineering | Comments Off

Error handling in C++

As far as error handling is concerned, C++ has all of the features and capabilities of C, but they are wholly inadequate in an object-oriented language. One very evident way in which C-style error handling is inadequate in an object-oriented … Continue reading

Posted in C & C++, C++ for the self-taught, Software Design, Software Development | 2 Comments

Tell me twice

A few days ago, I explained to a colleague why certain communications protocols have a “tell me twice” policy – i.e. to allow for any command to have any effect, the same command – or a command to the same … Continue reading

Posted in Reasons, Software, Software Design, Software Development, Technology | Comments Off

Socks 5: Starting GSS-API – The Factory Pattern

In this installment, we’ll be doing a final bit of clean-up and starting to implement a GSS-API/SSPI client program, while focusing on the Abstract Factory Pattern

Posted in C++ for the self-taught, Software Design | Comments Off

Binary Search

While going through some old code, for another article I’m writing that will come up on the blog, I came across an implementation of binary search in C. While the implementation itself was certainly OK, it wasn’t exactly a general-purpose … Continue reading

Posted in C & C++, C++ for the self-taught, Science, Software, Software Design, Software Development | 1 Comment

Use-Cases Part 1: Introduction & Ingredients

In the “C++ for the self-taught” series, we’re about to embark on a new project. In order to describe that project and in order to figure out what we want the result of that project will be, we will be … Continue reading

Posted in C++ for the self-taught, Software Design, Software Development, Use-Cases | 3 Comments