Joy of Programming: A Bug or a Feature?
A puzzling aspect of bugs is that they often turn out to be features (and vice versa)! Let’s explore this interesting topic with an example. In my experience working with enterprise software, I…
Joy of Programming: Fail Fast!
When a problem occurs in the software, it should fail immediately, in an easily noticeable way. This “fail fast” behaviour is desirable, and we’ll discuss this important concept in this column. At first,…
GDB: Logging Function Parameters, Part 1
Sometimes an application’s release version crashes in particular scenarios, but the debug version does not — and to make matters worse, the call-trace gets corrupted. It’s then very difficult to find the cause…
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…
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,…
Typo Bugs
[The Joy of Programming] Can typing mistakes (typos) cause bugs? Yes, they can! We’ll look at some common C programming mistakes in this column.
Joy of Programming: Silly Programming Mistakes => Serious Harm!
As programmers, we know that almost any software that we use (or write!) has bugs. What we might not be aware of is that many disasters occur because of silly mistakes. What can…
Joy of Programming: About the Java Overflow Bug
[The Joy of Programming] In this column, we’ll discuss a common overflow bug in JDK, which surprisingly occurs in the widely used algorithms like binary search and mergesort in C-based languages.





