JQuery 1.5 promises a better future.
One of the new features of the unreleased JQuery 1.5 is a new $.ajax module. Apart from many bug fixes, the most interesting, and useful par...
Why code review beats testing: evidence from decades of programming research
tl;dr If you want to ship high quality code, you should invest in more than one of formal code review, design inspection, testing, and quality assurance. Testing catches fewer bugs per hour than human inspection of code, but it might be catching different types of bugs.
Five bugs in a single line of JavaScript
Today I've been working with a piece of third-party software. I was having big problems getting it working and decided to delve into its ...
Visualizing dynamic programming
I’ve always thought dynamic programming was a pretty crummy name for the practice of storing sub-calculations to be used later. Why not call it table-filling algorithms , because indeed, thinking of a dynamic programming algorithm as one that fills in a table is a quite good way of thinking about it.
Stop hating Java
I noticed that in the Ruby community “Java” is a synonym of pure evilness. It’s often used as an argument against some techniques. “It’s J...
Ten Ways to Check if an Integer Is a Power Of Two in C
To write a program to check if an integer is a power of two, you could follow two basic strategies: check the number based on its decimal value, or check it based on its binary representation. The former approach is more human-friendly but generally less efficient; the latter approach is more machine-friendly but…
Compiling to λ-calculus
Though it contains forms only for function applications, variable references and anonymous functions, it is equivalent to a Turing machine.
The myth of the Lisp genius
I'm fascinated by the myth of the Lisp genius, the eccentric programmer who accomplishes super-human feats writing Lisp. I'm not saying that such geniuses don't exist; they do. Here I'm using "myth" in the sense of a story with archetypical characters that fuels the imagination. I'm thinking myth in the sense of…
Don't Forget Your Logged Out Users
I find myself saying this quite often these days to entrepreneurs and their product teams. It's something that I've noticed working with leading social platforms like Etsy, Twitter, Tumblr, and others. Services such as these have a large number of their users accessing the service regularly on a logged out basis. I…
V8: a tale of two compilers
wingolog: article: v8: a tale of two compilers
How the Winning Tron Bot Works
[ Update 8/2/2011 : you can play against a dumbed-down Javascript version of the bot here .]
Working with git? These aliases will save you hours
I was just watching a friend of mine work with git, and he'd always type all the git commands in full, like git status and git push. I realized that he must not be the only one to do so, so I decided to write this quick blog post and encourage everyone to create Huffman coded aliases for the most commonly used...
Skip Lists are Fascinating
Skip lists are a fascinating data structure: very simple, and yet have the same asymptotic efficiency as much more complicated AVL trees and red-black trees.
Python, the Web and Little Things on my Mind
A bunch of things currently on my mind regarding web development with Python and future directions.