## Things I never, ever, want to hear. Ever.

30/03/2010

Things I never, ever, want to hear. Ever.

• In theory,… No, I don’t want to know what you think the code does, I want to know that it actually does—especially if you’re the one that wrote the code. If you haven’t verified, validated by actually testing stuff in a systematic manner, you have failed. Have you validated the functions with stringent unit testing? No? then get out of my face and go write code to test your code. Validate your hypotheses. Always.

## Suggested Reading:Unix Systems for Modern Architectures

27/03/2010

Curt Schimmel — Unix Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers — Addison-Wesley, 1994, 396 pp. ISBN 0-201-6338-8

Schimmel proposes an introduction to cache hierarchies and their different technologies and the problems and complexities they incur for an operating system. The book starts off by presenting and comparing the various cache architectures—physical vs virtual caches, mostly. Another part is dedicated to the various locks and exclusion mechanisms such as spin locks, semaphores, etc., that may be found in Unix-type systems. He finishes with cache consistency problems for multiprocessors.

## Avoiding the Junkyard

23/03/2010

Developing software isn’t easy. No, I’m serious. It’s not. Every year that passes brings us more experience, and sometimes reality bites us real hard in the ‘rear.

For example, people do not always remain with a project until it completes. Often, people join a team for a summer, or for a year or two, then leave. That’s normal and expected. Of course, if the project is large, or the stay short, the code portion that was assigned to a particular individual may not be completed by the time he leaves. Can you manage to leave a team gracefully?

## Foiled!

16/03/2010

QuickSort, due to Hoare, is one of the best comparison-based sorting algorithms around. There are a number of variations, but the vanilla QuickSort does a great job… most of the times.

Indeed, there are occasions where QuickSort leaves its expected $O(n \lg n)$ run-time to reach $O(n^2)$ run-time, its worst case. But what does it take to push QuickSort into its worst behaviour?

## Wallpaper: Green/White

13/03/2010

Green/White, 1920×1200

## Wallpaper: After the rain

13/03/2010

After the Rain, 1920×1200

10/03/2010

## Radix Sort on Floating Point Numbers

09/03/2010

Phimuemue, in a recent post (at the time of writing, anyway) present his variation on sorting floating point values using radix sort. His implementation wasn’t dealing with the pesky sign bit so I offered a slight modification to his algorithm as a comment on his blog. But for some reason, he did not allow to post it.

So I’ll present my solution here.

## Suggested Reading: Algorithms for Memory Hierarchies

07/03/2010

Ulrich Meyer, Peter Sanders, Jop Sibeyn (eds.) — Algorithms for Memory Hierarchies — Springer, (Lectures Notes on Computer Science LNCS # 2625), 2003, 428 pp. ISBN 978-3540-00883-5