All of the things labelled as Posts, so that crawlers have a place to find them.
How Polymorphism Works: Part 1
Polymorphism: the core of object oriented programming. Most modern languages have some concept of interfaces, virtual functions, and classes. Though each language differs in details,
No new language will stop your program from crashing
New languages try to improve the lives of programmers by simplifying some aspect of programming. Many make bold claims about eliminating certain types of errors,
The Ideal Lanuage has a way to format strings
Ultimately any program must communicate with the outside world. Be it showing the user data or sending a text based protocol, the need to format
Why Garbage Collection is not Necessary and actually Harmful
In the world of new languages it seems like garbage collection is standard feature. A way for the runtime to locate unused bits of memory
What is an atomic operation?
We all know that operations in a computer happen one after the other. Having multiple CPUs and instruction reordering tends to obfuscate the issue. Technically
The ideal language must be automatically typed
A bane of programming is repeating code and dealing with a myriad of types. The natural response to type overload is to limit the number
The Ideal Language cannot leak resources
The ideal programming language should not leak resources. Resources include not just memory, but also files, network connections, device locks, sound buffers, and anything needing
CPU Reordering – What is actually being reordered?
We’ve all heard that a CPU may reorder access to memory. Yet if you’ve looked further you’d also see that cache coherence ensures the memory
CPU Memory – Why do I need a mutex?
Multi-threaded programming calls for semaphores, synchronized blocks, mutexes, or whatever your language happens to call them. Most of us basically understand why we need them:
The Cost – A Function Call
In the grand scheme of execution costs function calls come very close to the bottom of the list. They don’t cost very much at all
The Cost – Instantiation and the hidden enemy “new”
Whether C++, Java or any other language, we are all familiar with instantiating an object. In those aforementioned languages the operator new happens to do
The Cost – Programming Performance and Efficiency
As high level languages become more abstract, and offer more convenience features, it is easy to lose track of what the computer is actually doing.
The Evil and Joy of Overloading
Is overloading a bad thing? Despite a wide variety of new languages supporting some form of it I continue to find articles that say overloading
Lingering Spaces and the Problems of Overformatting
Recently I started a new project and was surprised to hear my colleague express his desire to use spaces for indentation. I assumed this problem
Curiously protective C++
Working with a bit of code last week I stumbled into something unusual. I was working on something quite basic so kind of surprised when
Rules for Framework Development
Each time I start a new project I find myself looking at the latest batch of frameworks. Lately those are web frameworks, such as CakePHP,
Sessionless Authentication with Encrypted Tokens
Storing user credentials is one of the key roadblocks in creating a sessionless web application. Somehow you need to safely identify the user without storing
The 2 Most Important Equivalence Classes for Application Testing
One of the most common testing tools is equivalence classes. Most testers generally understand what they are and how to use them. They allow us to do full coverage of an application without needing to test every possible permutation of input. Yet, despite their popularity I find that the two most important, the two most vital classes, get overlooked. Here I’ll cover these two classes and their implications on testing.

The 5 Ways to Test a Web Application – How They Work and How They Fail
Despite a huge push for more testing of applications, online or off, there is actually not a lot of standardized systems for doing it. This is not to say there aren’t a lot of standard techniques, there simply lacks unifying by-the-book approaches which yield solid results. A lack of standards should however be no reason not to test your web application. Yet without clear guidance most providers kind of just try things thereby wasting a lot of effort and still ending up with a poor quality product. Here is a general overview of the five basic approaches to testing.