New

The latest blog posts to take off on Hacker News. 14,544 posts.

Software Engineering
Any year
11591

2D gaming using Processing.js

We had a look at some of the basics of making a game using the Processing.js game library, so let's kick it up a notch by just getting down and making our own Super Mario game. When we're done with this part of the tutorial, we'll have a game with koopa troopers, platforms that we can jump up through but not fall down…

11597

Terminals Are Weird

Terminals 1 are quite weird. Most modern users assume that they can just have straightfoward keybindings. Right? To bind Ctrl+i to something, they listen for Ctrl+i in their application. If they want to bind Ctrl+Shift+i to something different, they certainly can, they just listen for Ctrl+Shift+i as well. Naturally…

11599

Rewriting Reddit (2005)

2012 note: This article was first published in 2005. After it was published, Django launched a RemovingTheMagic project to address some of my criticisms (though personally I still find it unusable), web.py inspired FriendFeed’s tornado.web and Google’s gae.webapp and others (though I still prefer web.py), and this…

11600

Planjure: A* and Dijkstra's in Om

I wrote Planjure to learn ClojureScript and Om. It’s a fun little program. You paint islands on a canvas and run path-planning algorithms to find the optimal path for your ship to traverse from start to finish. Sailing across blue ocean is faster than hiking through green islands. The three algorithms implemented are…

11603

Will It Optimize? (2010)

See how well you know (or can anticipate) gcc's optimizer. For each question, the left box contains some code, while the right box contains code that purports to do the same thing, but that illustrates a particular optimization. Will gcc apply that optimization? Put another way, will the code on the left be as fast as…

11609

Hints for writing Unix tools

The workaday world of a modern programmer abounds with Unix tools, stitched together in myriad ways. While good tools integrate seamlessly with your own environment, bad ones will constantly frustrate your efforts. Good tools have a seemingly limitless application, constrained only by your own imagination. Bad tools…