Developing for Developers
Tools, techniques, and theory for measuring and improving the power and performance of developers and their code
New blog: Papers in Computer Science
Hey all - I apologize for the (extremely) long period of no updates, I've been prioritizing other...
Date: 02/28/2009
P-complete and the limits of parallelization
We're entering an era where CPU clock speeds will soon cease to scale upwards and instead CPU...
Date: 09/07/2007
Robin's theorem
Most computer scientists are familiar with the P = NP problem, which asks essentially whether we can...
Date: 07/16/2007
Cache-oblivious data structures
In most data structure and algorithms classes, the model used for basic analysis is the traditional...
Date: 06/12/2007
K-nearest neighbor spatial search
I apologize to everyone for the hiatus - I realise a post is more than a little overdue and will try...
Date: 06/07/2007
Functional list processing in C# 2.0 with anonymous delegates
One of the benefits of functional languages is their great flexibility in list manipulation, which...
Date: 06/30/2006
Factoring large numbers with quadratic sieve
Today I'm going to talk about how the quadratic sieve factoring algorithm works, giving a...
Date: 06/19/2006
Color quantization
If you've ever done work with Web graphics, I'm sure that at some point you reduced an image with...
Date: 05/09/2006
How does JPEG actually work?
JPEG is an image encoding designed to compress photographs and similar images effectively, often 5...
Date: 04/12/2006
Encoding correctness in types
This article will discuss effective use of types to catch some common problems at compile time not...
Date: 03/27/2006
LiteratePrograms wiki
Hi everybody. This is a short post, but I just wanted to tell you all about a new wiki I created...
Date: 03/03/2006
The nature of computing and infeasible machines
If asked what they do, some developers might say "I write code" or "I program computers". But more...
Date: 02/06/2006
Literate programming
Literate programming, invented in 1981 by the same Donald Knuth who wrote The Art of Computer...
Date: 01/23/2006
Efficient selection and partial sorting based on quicksort
Most people who have studied algorithms remember quicksort, the ubiquitous sorting algorithm...
Date: 01/18/2006
Integer division by constants
Today I'm going to discuss a few clever algorithms for dividing values by constant values known at...
Date: 12/12/2005
Succinct data structures
Sorry for the long hiatus, everyone. Today I'm going to talk about succinct data structures, which...
Date: 12/05/2005
Persistent data structures
When learning to program in a functional language such as Lisp, Ocaml, or Haskell, one of the most...
Date: 11/08/2005
Non-nullable types
If you write programs in C, C++, Java, or C#, you've gotten used to having the null value around....
Date: 10/10/2005
Secret sharing
One of the most difficult problems in cryptographic key management is keeping a secret key safe from...
Date: 10/02/2005
Custom building and code generators in Visual Studio 2005
I'm a fervent fan of using code generator tools wherever possible to make your life easier. Although...
Date: 09/13/2005
Modular arithmetic and primality testing
Number theory is, roughly speaking, the study of properties of integers. Often a problem which is...
Date: 09/07/2005
The Visitor pattern and multiple dispatch
Today I'll talk about multiple dispatch, a programming language feature that increases flexibility...
Date: 08/29/2005
Floating-point arithmetic
What's got a mantissa field, an exponent field, is included in nearly every major programming...
Date: 08/24/2005
Unrolled linked lists
Today I'll be discussing unrolled linked lists, a simple variant of the linked list which has many...
Date: 08/22/2005
Stop writing header files
Although one of my favorite languages, C++ has a number of issues that make it difficult to write...
Date: 08/19/2005
Bloom filters
Imagine you're writing a simple spell checker in C. You've already collected a dictionary of 100,000...
Date: 08/17/2005
Welcome!
Hi everybody. My name is Derrick Coetzee. I'm totally new to the blog scene - I've barely read any,...
Date: 08/16/2005