S.G. Ganesh

Joy of Programming: Scope, Lifetime and Visibility in C

Often, programmers confuse the scope, lifetime and visibility of variables. So I’ll cover these three important concepts in this month’s column. Whenever you declare a variable, you determine its scope, lifetime and visibility….

Let's analyse this code

Joy of Programming: The Technology Behind Static Analysis Tools

There are a wide range of static analysers available today — both commercial as well as open source. Have you ever wondered how static analysers magically detect difficult-to-find bugs in code? And why…

Time to program

Joy of Programming: Calling Virtual Functions from Constructors

Calling virtual functions from constructors is problematic, and this problem can manifest itself in many ways. In this column, we’ll take a look at this problem, with specific examples. Last year, I bought…

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,…

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.