Category: Programming

Premature Cleverization

“Premature optimization is the root of all evil,” say Hoare and Knuth. I have determined that I suffer from a slightly different but related malady: premature cleverization. At the start of a programming task, before I’ve written any real code, I get some wacky idea like “I could do this all with binary XORs” or…

Read the full article

The Woz

I got to see Steve Wozniak speak at Columbia University last night, promoting his new book iWoz. Strongest impression: The man has an incredible amount of energy. He talked in a strong voice at high speed for nearly an hour before rushing off to tape a spot on The Colbert Report. Most interesting fact: he…

Read the full article

Project Posner: first look

Been too busy with work and class to post much, but here’s a link for all the IANALs out there: Project Posner. It’s an on-line database collecting the case opinions of Richard A. Posner, judge on the 7th Circuit Court of Appeals. This was the brainchild of law professor and former Posner clerk Tim Wu.…

Read the full article

Breadth-first and Depth-first Searching

I’m playing some more with the early chapters of Artificial Intelligence: A Modern Approach, looking at basic tree search techniques for the 8-puzzle. I wrote simple breadth-first and depth-first search algorithms for this puzzle in Common Lisp. Here’s the code. It’s an interesting demonstation of how inefficient these alogrithms really are. I represent the puzzle…

Read the full article

Property of Properties

I was looking at a problem in the early chapters of Artificial Intelligence: A Modern Approach. It’s called Vacuum World. This is a very simple agent problem consisting of a vacuum placed on a grid. The grid has only two squares, each of which is either dirty or clean. The vacuum has three actions: move…

Read the full article

Loggerheadache

I decide to play around with the Java logging facility. I write a simple test program: import java.util.logging.*; public class LoggingTest { public static void main(String[] args) { Logger log = Logger.getLogger(“com.stuartsierra”); log.entering(“LoggingTest”, “main”); log.info(“Info Message”); log.warning(“Warning Message”); log.exiting(“LoggingTest”, “main”); } } Compile, run, and I get this: Aug 30, 2006 10:48:45 AM LoggingTest main…

Read the full article

Indecent Indirection

“Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem.” —David Wheeler or Butler Lampson, depending on whom you ask I’ve seen a fair amount of press about Virtualization over the past year or so. For servers, I think it makes some sense: it would…

Read the full article

My Life As a Robot

This poster hangs in my cubicle. The caption reads, “If a pretty poster and a cute saying are all it takes to motivate you, you probably have a very easy job, the kind robots will be doing soon.” Besides saying “nyah nyah” to the superiors who never stay in my cubicle long enough to read…

Read the full article

Functional Programming a Foregone Conclusion

Steve Yegge, who spent 7 years working on distributed computing at Amazon, writes about a book called Purely Functional Data Structures. Yegge: “it’s abundantly clear that it’s time for us to move up to a higher level of abstraction. … Object-Oriented interfaces are failing us, and we need to turn today’s network into a computer…

Read the full article