Simon Willison’s Weblog

Subscribe

Items in Oct, 2010

Filters: Year: 2010 × Month: Oct × Sorted by date


JS had to “look like Java” only less so, be Java’s dumb kid brother or boy-hostage sidekick. Plus, I had to be done in ten days or something worse than JS would have happened.

Brendan Eich # 16th October 2010, 8:25 am

Did you mean rel=shortlink vs. rel=shorturl?

That was the cute trick in the initial proposal: it’s REV=canonical, not REL=canonical, suggesting a reverse relationship.

[... 29 words]

What are the main weaknesses of Java as a programming language?

A cultural bias towards over-engineering. In my experience Java code often ends up a huge network of Factories and AbstractFactories and Visitors and XML configuration files and every design pattern you care to mention, dozens of classes many of which contain hardly any procedural code at all. A lot of Java projects are essentially impossible to navigate without an IDE.

[... 77 words]

Is there any consensus yet on link rel=shorturl vs rev=canonical?

It’s pretty clear from the answers that rev=canonical v.s. rel=canonical is way too confusing—so it’s down to rel=shortlink v.s. rel=shorturl.

[... 38 words]

What are the main weaknesses of Ruby as a programming language?

Ruby still has a cultural tendency towards monkey-patching, aka action-at-a-distance. There are plenty of gems which modify existing classes—sometimes in ways that can break working code.

[... 45 words]

What are the best websites for finding out about events in San Francisco in advance, i.e., before they take place?

PlanCast is your best bet for general events, but if you’re interested in conferences we have a growing list on http://lanyrd.com/places/san-fra...

[... 48 words]

Twitter.com 2010 Redesign: What things don’t people like about #newTwitter?

I absolutely love the improved functionality, but I don’t like the way it’s implemented as a heavy single-page JavaScript application. It’s extremely slow to load, which is a big problem for me because I habitually open new tabs with e.g. twitter.com/username in them, and each of those tabs now takes far longer to load and show me information than old Twitter did (especially since I’ve been suffering on very slow hotel WiFi connections recently).

[... 133 words]

Who is the most recognizable person in the world (real or fictional; alive or dead)?

I’d guess Jesus, then Ronald McDonald, then Mickey Mouse.

[... 30 words]

Annotated backbone.js. Literate programming. # 13th October 2010, 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. # 13th October 2010, 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: http://www.facebook.com/notes/fa...—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: http://lanyrd.com/2010/failcon/ and http://failcon2010.com/

[... 36 words]

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

There’s a list on this page: https://github.com/joyent/node/w...

[... 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 Topix.net spent $1,000,000 buying the .com domain: http://www.skrenta.com/2007/03/k...

[... 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?

http://lanyrd.com/ does.

[... 19 words]

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

For wildlifenearyou.com and djangopeople.net 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. # 13th October 2010, 8:32 am

Why don’t more people use Google Web Toolkit for web development as opposed to scripting alternatives like JavaScript?

I’m morally opposed to GWT, because I don’t believe in building sites or applications that are entirely dependent on JavaScript to function. As someone who took the time to learn JavaScript, I’m also not at all convinced that Java is a more productive language.

[... 68 words]

When should one switch from MySQL to Oracle or PostgreSQL?

When your own benchmarks prove that your application’s particular load characteristics will perform better on another database—and the difference is large enough that it’s worth the cost involved in retargeting your code. If that cost is high (and it probably will be) it may be worth paying for some expert consultants to ensure that your implementations against the different databases are properly optimised.

[... 102 words]

Is the .ly domain unsafe? Why?

It’s always been unsafe in my opinion. Why build your company around a domain name that’s controlled by the Libyan government?

[... 33 words]

Where can I find a database of the cities in the United States, their populations, and square miles?

On Freebase: http://www.freebase.com/view/use...—if you sign up for a Freebase account you can further filter this report to include areas.

[... 46 words]

What are the advantages of running Apache behind nginx as opposed to just Apache by itself?

I do this for all of my Django stuff—I have Django running on modwsgi on a stripped down Apache (almost no configuration except for the modwsgi stuff), then I put an nginx on port 80 which serves the static files directly and proxies dynamic requests back to Apache.

[... 244 words]