"Joy of Programming" tag
Debugging introduces bug(s)?

Joy of Programming: How Debugging Can Result in Bugs!

We typically debug code to find and fix bugs. However, debugging itself can cause bugs. This is an interesting phenomenon that we cover in this month’s column. Consider the following simple Java example,…

Exception Safety

Joy of Programming: Levels of Exception Safety

The concept of “exception safety” is important for programming in the presence of exceptions. In this article, we’ll look at different levels of exception safety, with the help of an example. Let’s first…

Broken Window

Joy of Programming: The ‘Broken Window’ Theory

It is common to see software projects fail. One important cause is ‘design and code rot’. In this article, let’s try understanding the causes, in the light of a popular theory. Development projects…

Errors everywhere you go!

Joy of Programming: Abort, Retry, Fail?

Exception handling is tricky to get right. In this column, I present some guidelines for writing good exception handling code, by giving real-world (counter) examples. Guideline 1 Write descriptive error messages. Guideline 2…

Buggy Pentium processor

Joy of Programming: Bug Hunt

Every programmer knows that debugging is akin to a detective’s work. In this column, we’ll cover this “bug hunt” process with an example of how the Intel Pentium processor bug was discovered. Software…

Situation Normal, All Fouled Up!

Joy of Programming: SNAFU — Situation Normal, All Fouled Up!

The stories of software development projects in crisis are amazingly familiar to all experienced programmers and managers. In this column, we’ll look at some common aspects of projects in crisis and how they…

Subtle differences

Joy of Programming: Language Transition Bugs

There are subtle differences between languages like C, C++, Java and C#. Programmers transitioning from one language to another should beware of such differences. When I speak to my Tamil friends in English,…

A bug in my insurance renewal notice

Joy of Programming: Penny Wise and Pound Foolish!

We often try to use a smaller data type to save space. Though it looks like clever programming, it can cause nasty bugs. Let’s look at an example that demonstrates this. A few…

Logical Bugs and Intuitive Thinking

Joy of Programming: Logical Bugs and Intuitive Thinking

Logical bugs are very common in code and are often very difficult to find and fix. In this column, we’ll look at an example of a real-world logical bug, and explore how intuitive…

Types of bugs

Joy of Programming: Types of Bugs

In this column, we’ll look at four types of bugs, named after popular scientists. The classification is interesting — we’ll understand how strange bugs can be! Jim Gray, in his popular paper (see…

All published articles are released under Creative Commons Attribution-NonCommercial 3.0 Unported License, unless otherwise noted.
Open Source For You is powered by WordPress, which gladly sits on top of a CentOS-based LEMP stack.

Creative Commons License.