Units of Work

When I was a physics student one of the things that I learned to do was “unit analysis”. That’s where you simply consider what units an answer has: is it in meters, or meters squared? Surprisingly, there is an enormous amount that can be learned just by doing unit analysis. Recently, I applied unit analysis our scrum backlog (the process by which my company chooses what tasks to work on) and I learned something surprising. [More...]

How to talk about Data Structures

FizzBuzz.scalaI’ve been interviewing lately for “senior programmer” positions. I find it outright astonishing how many applicants for these positions lack what I would consider the most fundamental of programming skills. Some people have suggested using FizzBuzz (a trivial programming exercise) as a filter; what I use is a discussion of data structures. [More...]

A Creaky Old Man’s Defense of Creaky old Code

I’m beginning to wonder whether I’m turning into an “old fogey” of a computer programmer. You know, the elderly fellow who has an office near the server room; the one who always objects to the use of any new technology and goes on at length about “the good old days” — you know, back when Real Programmers punched their cards out by hand. [More...]

Immutable Trees and Threading Evil - Part 2

In part 1 I introduced immutable trees, this time I will talk about threading evil. If you haven’t yet read part 1, go back and do so now. [More...]

Immutable Trees and Threading Evil - Part 1

I was reading a post in Eric Lippert’s Blog and started to post a reply, but when I realized just how much I needed to say, I decided it should be it’s own post, nay: series of posts on my blog. Let me take you on an interesting tour of immutable data structures (good!) and threading behavior (scary!). [More...]

Treat Your Customers Well

Google, MySpace, Wikipedia, YouTube, facebook, craigslist, digg—what (besides runaway success) do these have in common? [More...]

It’s Not Exactly Artificial Intelligence

Edsger W. Dijkstra possessed an extraordinary ability to communicate elegantly and precisely. I admire, but could never emulate his ability to put an entire essay into a single statement. Yesterday I came across the following gem:

The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.

– E. W. Dijkstra [cite]

[More...]

Feast or Famine

About four weeks ago, the project that I was working on was abruptly canceled. It wasn’t that there was anything wrong with the way the project was going — there were lots of things wrong with the way the project was going, but the cancellation was due to a change in business direction. So for the past four weeks I’ve been trying to find something useful to do with myself. [More...]

Searching, Thread-count and a Thanksgiving Miracle

Suppose that you have a collection of numbers or perhaps of WidgetManagerHandles — could be most anything that can be sorted. We’ll suppose that these are stored in an array and that you can take as much time as you need beforehand to organize the array, after which we will try to locate objects in it many times. The question is: What is the minimum number of item-to-item comparisons (on average) that is needed to locate a given item? [More...]

When Spheres Collide

If I can’t use my own blog to post nicely worked out math problems, then what good is it?

[More...]