Simon Willison’s Weblog

140 items tagged “programming”


Blocks in Objective-C. Closures are coming soon to Objective-C—interesting syntax, a regular curly brace block preceded by a caret ^{ ... }. # 29th December 2008, 7:38 pm

The Universal Design Pattern. Steve Yegge presents a small book on key/value pairs and prototypal inheritance. “I call it the Universal design pattern because it is (by far) the best known solution to the problem of designing open-ended systems, which in turn translates to long-lived systems.” # 20th October 2008, 11:13 pm

Reia. The most common complaint I see about Erlang is the syntax. Reia is a Python-style scripting language (with a dash of Ruby) that runs on the Erlang virtual machine. Looks promising. # 25th September 2008, 6:12 pm

Core Techniques and Algorithms in Game Programming. Scarily detailed online book on games programming, including 2D and 3D graphics, AI, multiplayer network code, indoor and outdoor rendering, character animation and much more. UPDATE: Removed the original link, which appeared to be a pirated copy. # 1st May 2008, 12:26 am

Good architectural layering, and Bzr 1.1. Mark Shuttleworth on the growing importance of plug-in architectures as an open source project evolves, as they allow new developers to release their own components without needing commit access to the project. Django is pretty good for this, but more hooks (and a faster event dispatch system) would be useful. # 9th January 2008, 2:06 pm

Naming twins in Python and Perl. Simple anagram problem solved in Perl and Python, with a bunch more solutions in the comments. The C# solution provides an interesting example of LINQ in action. # 7th January 2008, 11:03 am


Don’t EVER make the mistake that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That’s giving your intelligence _much_ too much credit.

Linus Torvalds # 16th December 2007, 9:53 pm

The D Language and Server Logs. Neat example of a simple D program for crunching log files. # 3rd December 2007, 9:02 pm

Bit Twiddling Hacks. I’ve never been much of a bit twiddler, but I’ve always felt I should learn. # 2nd November 2007, 6:49 am

The Web Application Scale of Stupidity goes from OGF (One Giant Function) to OOP (Object Oriented Programming), like this: OGF ——– sanity ——— OOP

Cal Henderson (paraphrased) # 2nd November 2007, 6:23 am

Programming Nu (via) Interesting new programming language—Lisp style syntax, Ruby style semantics, built in Objective C bridge so you can access Cocoa APIs directly. # 1st October 2007, 9:49 pm

Large codebases are the problem, not the language they’re written in. Find a way to break/decompose big codebases into little ones.

Bill de hÓra # 27th September 2007, 3:11 pm

Want To Learn Web Programming? Write A Blog Engine. I couldn’t agree more. Weblogs are an ideal starter project—simple enough to get your head around, complex enough to teach you a bunch of important lessons, ideally suited for eating your own dog food. # 20th September 2007, 1:17 pm

An Introduction to Erlang. Erlang gets the ONLamp tutorial treatment from Gregory Brown. # 13th September 2007, 5:47 pm

Brad Neuberg’s Personal Research Agenda. Inspiring; lots of interesting problems to solve. I also liked the idea of moving to Thailand during a tech downturn and hacking on interesting projects while spending $200/month on living costs. # 23rd August 2007, 1:40 am

Erlang fits all the characteristics of an OO system, even though sequential Erlang is a functional language, not an OO language

Ralph Johnson # 8th August 2007, 7:47 pm

19 Eponymous Laws Of Software Development. I normally loathe anything that’s bundled up as a numbered list, but this one is actually really useful. # 18th July 2007, 12:29 am

Understanding Engineers: Feasibility. Charles Miller provides smart definitions of what programmers mean when they say “impossible”, “trivial”, “unfeasible”, “non-trivial”, “hard” and “very hard”. # 17th July 2007, 10:24 am

Introduction to Abject-Oriented Programming. The best part is the comments, where several people completely fail to get the joke. # 8th July 2007, 6:24 am


A General Theory of Programming Language Relativity. Functional languages have clearer levels of indirection. # 12th December 2006, 8:56 am