Simon Willison’s Weblog


Wednesday, 13th October 2010

Annotated backbone.js. Literate programming. # 5:24 pm

Backbone.js. As should be expected for a DocumentCloud project, Backbone is a concise, elegant and educational take on the JavaScript MVC pattern. Depends on Underscore.js and plays well with jQuery. # 5:23 pm

Why is software effort estimation still based on thumb rules and gut feels? How come no one has come up with an accurate estimation model?

For a truly accurate estimation, you need to have built the software before. If you’ve built it before, why are you building it again?

[... 55 words]

Simon Willison: How do you configure the Apache server you describe in What are the advantages of running Apache behind nginx as opposed to just Apache by itself?

It took me a while to figure out the single threaded bit (Andrew Godwin helped me sort that out)—on an Ubuntu system, you need to run “apt-get install -y apache2-mpm-prefork” to ensure you’re running the prefork Apache MPM.

[... 82 words]

To what extent is it still valid to assume that your web app users are stupid?

They’re not stupid, but they’re probably WAY less web literate than you might expect—unlike you, they haven’t spent their entire career learning how the web works. See the famous “What is a browser?” video the Google Chrome team released:

[... 71 words]

Why doesn’t Facebook use nicer URLs?

Just noticed this link:—so it looks like things are beginning to improve.

[... 28 words]

What was programming use Myspace?

Originally ColdFusion, but then a small army of consultants from Microsoft helped rewrite it in .NET.

[... 27 words]

What would the level of interest be in a “FailConf” where people shared their business and technology epic failures and lessons learned?

It already exists: and

[... 36 words]

What companies are using Node.js in production in Texas?

There’s a list on this page:

[... 23 words]

Why don’t more websites use alternative domains?

Because regular human beings don’t understand them, and expect everything to be a .com. Here’s an interesting post from 2007 on why spent $1,000,000 buying the .com domain:

[... 45 words]

Is there a way to learn Ruby in one hour?

Not unless you already know a bunch of other languages and are well versed in programming language theory. Even then, that might be long enough to get your head around Ruby syntax and semantics but it will still take weeks or months of study to get truly comfortable with the language idioms.

[... 76 words]

What are your best backpacking (world travel) tips?

If you take an iPhone, Dropbox + Instapaper are an amazing combination. Every time I book a hotel I drop the confirmation in to Dropbox (using “Print -> Save as PDF”), then sync it on to my iPhone. I’ve recently taken to grabbing screenshots of Google Maps and putting those in to Dropbox as well. I use Instapaper to grab offline copies of Wikipedia and WikiTravel pages about the places we are going to.

[... 88 words]

What startups host 100% of their private code on GitHub? does.

[... 19 words]

How do sites prevent vanity URLs from colliding with future features ?

For and I used the same trick as described by others in this list—an enormous blacklist of everything I could possibly want to use for a future feature.

[... 157 words]

How much does it cost to develop a website like Yelp or Groupon?

You’re probably asking the wrong question. The initial build phase of a site like Yelp (the bit before launch) is just the start of the process—once the site has launched, it will certainly need to evolve based on how the site’s users are using it. You can’t just pay a bunch of developers to build it and then launch it without expecting to keep working on it.

[... 136 words]

Tuning Canabalt. Fascinating insight in to the game parameter tuning needed to make a game feel just right. # 8:32 am

2010 » October