Require.js + Backbone.js = Robust Modular Application Development
Learn how Backbone.js applications are organized using modules, namespaces, reusable Views, and scalable frontend architecture patterns.
Crit-bit Trees: the best way to store sets
A crit-bit tree can be used as a high-speed associative array. For example, an array mapping 54 to 1, 19 to 2, 99 to 3, 85 to 4, and 88 to 5 can be stored as a crit-bit tree containing 54=1, 19=2, 99=3, 85=4, and 88=5. The smallest string in the crit-bit tree larger than 85= is 85=4.
WebGL + Node.js + WebSockets = A Web Technology Perfect Storm
Tech Nerd. CEO.
“Let's settle this in a Ruby programming contest”
Introducing Codebrawl, a Ruby and open source programming contest website
Comparing images in pure Ruby (and how Github's image diff works)
In this article, I’ll try to explain how an image diff could be built using pure Ruby and ChunkyPNG.
A Note About Git Commit Messages
I want to take a moment to elaborate on what makes a well formed commit message. I think the best practices for commit message formatting is one of the little details that makes Git great. Understandably, some of the first commits to rails.git have messages of the really-long-line variety, and I want to expand on why…
What Alan T. did for his PhD
We’ve all been there before: by the time you start graduate school in Princeton, you’ve already invented the Turing machine, pioneered the concept of computational universality, and pro…
Fuzzy string search
Intro Fuzzy search algorithms (also known as similarity search algorithms) are a basis of spell-checkers and full-fledged search engines lik...
Code School is Amazing
My thoughts on Code School, an interactive online marketplace where you can learn to code directly in the browser.
Strange line of Python
Hi 👋 you're reading a pretty old post! I started writing on here back in high school and this page may not reflect my current views. Recommend checking out related articles and categories down below, I've likely published more recent thoughts on this topic.
Beyond Exception Handling: Conditions and Restarts
One of Lisp's great features is its condition system. It serves a similar purpose to the exception handling systems in Java, Python, and C++ but is more flexible. In fact, its flexibility extends beyond error handling--conditions are more general than exceptions in that a condition can represent any occurrence during…
Agile Scrum: Delivering Broken Software Since 1991
Update: This is quite a long article. If you’re looking for a quick read, it breaks down a bit like this:
The 10 commandments of good source control management
Ah source control, if there’s a more essential tool which indiscriminately spans programming languages without favour, I’m yet to see it. It’s an essential component of how so many of us work; the lifeblood of many development teams, if you like. So why do we often get
Solving Tetris in C
Exactly one of the following statements is true. In Tetris, you can always get at least one line before losing. In Tetris, a sufficiently evil AI can always force you to lose without getting a single line, by providing bad pieces. Which one? Prove it. The setup I crea...