Searchable User Interfaces are the Future

TL;DR: Mammoth software with tons of features are not uncommon nowadays. However, the interfaces for these software have not matured. They are not scalable enough to support efficient usage »

The Sands of Code: Reverse Debugging in GDB

Today I had the opportunity to use an amazing feature in GDB -- "reverse debugging". Actually, 'amazing' is probably an understatement. Think of the following scenarios in a »

A Magit Tutorial: Part II

In Part I, we saw how to open up the Magit status buffer, view unstaged changes and untracked files, stage changes and commit them. The next thing you should learn »

Simplifying Memory Allocation in C using Macros

This is a tip showing a clever little use-case for macros in C. How many times have you typed char *s = (char *) malloc(x*sizeof(char)); in C and not »

A Magit Tutorial: Part I

I love Emacs. I only started using it a few months ago, but I'm already hopelessly in love with its (unapparent) simplicity and crazy extensibility. Perhaps my custom hand-crafted .emacs, »