Welcome to MSDN Blogs Sign in | Join | Help

Developing for Developers

Tools, techniques, and theory for measuring and improving the power and performance of developers and their code

Browse by Tags

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 manufacturers are planning to put more and more independent cores on a chip. Intel plans to release an 80-core chip within 5 years . Consequently the research Read More...

Posted Friday, September 07, 2007 8:11 PM by dcoetzee | 3 Comments

Filed under:

Robin's theorem
Most computer scientists are familiar with the P = NP problem, which asks essentially whether we can verify more problems in polynomial time than we can solve. So fundamentally does complexity theory hinge on this result that the Clay Mathematics Institute Read More...

Posted Monday, July 16, 2007 2:12 PM by dcoetzee | 2 Comments

Filed under:

Cache-oblivious data structures
In most data structure and algorithms classes, the model used for basic analysis is the traditional RAM model: we assume that we have a large, random-access array of memory, and count the number of simple reads/writes needed to perform the algorithm. Read More...

Posted Tuesday, June 12, 2007 1:54 PM by dcoetzee | 10 Comments

Filed under:

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 to be more regular in the future. I appreciate the support that I've received for the blog and continuing it. Consider the following problem: you're starting Read More...

Posted Thursday, June 07, 2007 5:23 PM by dcoetzee | 7 Comments

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 enables them to express certain computations concisely that would require one or more verbose loops in procedural languages. Many of the features that functional Read More...

Posted Friday, June 30, 2006 3:16 PM by dcoetzee | 10 Comments

Factoring large numbers with quadratic sieve
Today I'm going to talk about how the quadratic sieve factoring algorithm works, giving a comprehensive description assuming knowledge of only basic university-level mathematics. The foundation of the most popular public-key cryptography algorithm in Read More...

Posted Monday, June 19, 2006 12:13 PM by dcoetzee | 14 Comments

Color quantization
If you've ever done work with Web graphics, I'm sure that at some point you reduced an image with thousands of colors, such as a screenshot or photograph, to an image with only 256 colors, for example to store the image in the GIF format. Remarkably, Read More...

Posted Tuesday, May 09, 2006 5:57 PM by dcoetzee | 8 Comments

How does JPEG actually work?
JPEG is an image encoding designed to compress photographs and similar images effectively, often 5 to 15 times over a raw bitmap format. It's a lossy format that exploits properties of human vision to eliminate information that is difficult to distinguish. Read More...

Posted Wednesday, April 12, 2006 4:33 PM by dcoetzee | 5 Comments

Encoding correctness in types
This article will discuss effective use of types to catch some common problems at compile time not normally found by the typechecker. The typechecker is the most important tool in the programmer's arsenal. Types enable you to structure code in a more Read More...

Posted Monday, March 27, 2006 1:52 PM by dcoetzee | 0 Comments

LiteratePrograms wiki
Hi everybody. This is a short post, but I just wanted to tell you all about a new wiki I created called LiteratePrograms , based on an extension of the same MediaWiki software used by Wikipedia . Some of you read my earlier post about literate programming Read More...

Posted Friday, March 03, 2006 5:54 PM by dcoetzee | 0 Comments

Dependency tracking in builds
Happy Valentine's Day, everyone! Today I'm going to talk about the important problem of successfully tracking dependencies in builds in an automatic manner. In short, there are two kinds of build systems: the ones where all dependencies are tracked successfully Read More...

Posted Tuesday, February 14, 2006 7:20 PM by dcoetzee | 5 Comments

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 fundamentally, what is computing really about? After all, Euclid's algorithm for computing the greatest common denominator of two numbers in polynomial Read More...

Posted Monday, February 06, 2006 6:44 PM by dcoetzee | 1 Comments

Literate programming
Literate programming , invented in 1981 by the same Donald Knuth who wrote The Art of Computer Programming and the document language TeX, is a technique in which a program is written as a human-oriented document interspersing discussion and code. The Read More...

Posted Monday, January 23, 2006 1:53 PM by dcoetzee | 7 Comments

Efficient selection and partial sorting based on quicksort
Most people who have studied algorithms remember quicksort, the ubiquitous sorting algorithm available in the standard library of nearly every programming language implementation in existence, including C, C++, Java, and the .NET Framework. Quicksort Read More...

Posted Wednesday, January 18, 2006 12:26 PM by dcoetzee | 6 Comments

Integer division by constants
Today I'm going to discuss a few clever algorithms for dividing values by constant values known at compile-time, without the use of the division instruction. In compiler optimization theory, the basic problem we attempt to solve is to create algorithms Read More...

Posted Monday, December 12, 2005 5:07 PM by dcoetzee | 8 Comments

More Posts Next page »
Page view tracker