Joy of Programming: Understanding Bit-fields in C
One important feature that distinguishes C as a systems programming language is its support for bit-fields. Let us explore this feature in this column. In C, structure members can be specified with size…
Lisp: Tears of Joy, Part 7
Lisp has been hailed as the world’s most powerful programming language. But only the top percentile of programmers use it because of its cryptic syntax and academic reputation. This is rather unfortunate, since…
CodeIgniter: Form APIs, Validations & Pagination Techniques
In the previous article on CodeIgniter, we discussed the concept of the MVC structure used in CodeIgniter, did a “Hello world” program, and a simple program with database connectivity. Now, let’s take a…
Device Drivers, Part 13: Data Transfer to and from USB Devices
This article, which is part of the series on Linux device drivers, continues from the previous two articles. It details the ultimate step of data transfer to and from a USB device, using…
Loading Library Files in C++
This article demonstrates how to load shared or dynamic library files in programs written in C++, which is not as straightforward as in C. Device drivers and library files have always been associated…
GDB Logging Function Parameters, Part 2
In this second part on the topic, let us write a GDB script to log the parameters of a desired function, and also see how the application state can be modified by changing…
The Socket API, Part 5: SCTP
This article on socket programming deals with the Stream Control Transmission Protocol (SCTP). Similar to TCP and UDP, SCTP provides some features of both. It is message-oriented, and provides a reliable sequenced delivery…
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,…
CodeSport (December 2011)
In this month’s column, we will continue our discussion of compiler optimisations, and focus on compiler analyses and optimisations that require inter-procedural analysis and inter-procedural code transformation. In last month’s column, we had…
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…




