Simon Willison’s Weblog

Subscribe

May 2008

May 1, 2008

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.

# 12:26 am / games, programming, algorithms

It's Groove, rewritten from scratch, one more time. Ray Ozzie just can't stop rewriting this damn app, again and again and again, and taking 5-7 years each time.

Joel Spolsky

# 9:03 am / windowslivemesh, livemesh, joel-spolsky, rayozzie, groove

Adobe and Industry Leaders Establish Open Screen Project (via) Talk about burying the lede... the real story is that Adobe are going to drop the license restriction that prevents other people from implementing SWF players. They’re also publishing the AMF and Flash Cast protocols and removing licensing fees for Flash Player on devices.

# 9:43 am / flash, adobe, swf, amf, flashcast

Load Balancer Update. WordPress.com has switched from Pound to nginx for load balancing, resulting in a significant drop in CPU usage. I’ve been using nginx on my little VPS for over a year now with no complaints, nice to know it scales up as well as down.

# 10:06 am / nginx, load-balancing, pound, wordpress, wordpresscom

so-you-wanna-see-an-image (via) WordPress.com use Amazon S3 to store images (presumably to save having to create a massive scalable redundant filesystem themselves) but the images are served via a load balanced memcached / varnishd caching system that they control.

# 10:13 am / wordpresscom, caching, amazon-s3, s3, memcached, varnishd

jQuery style chaining with the Django ORM

Django’s ORM is, in my opinion, the unsung gem of the framework. For the subset of SQL that’s used in most web applications it’s very hard to beat. It’s a beautiful piece of API design, and I tip my hat to the people who designed and built it.

[... 820 words]

Consumption is also about choice. Tom Armitage’s thoughtful response to Clay Shirky’s Web 2.0 talk on television as “cognitive surplus”.

# 1:01 pm / tom-armitage, clay-shirky, tv, consumption, cognitivesurplus

SourceForge Allows OpenID Logins. Excellent—SourceForge is the kind of site that I log in to infrequently enough to always forget my password (and indeed username) making OpenID a great fit.

# 1:05 pm / sourceforge, openid

May 2, 2008

Django Users Group London meetup, 19th of May. The inaugural meeting of DJUGL will be on the 19th of May at the Capital Radio building in Leicester Square, sponsored by GCap Media. Three presentations starting at 7pm (I’ll be giving one of them), then on to the pub. Sign up on EventWax; there are only 70 places.

# 12:19 pm / django, python, london, djugl, gcap, gcapmedia, events

How one site dealt with SQL injection attack (via) Horrifying story of developer incompetence from Autoweb: “The contractor had no idea how to find and fix the Web page vulnerability that allowed the SQL injection attack code to execute successfully.”

# 9:01 pm / sql-injection, security, incompetence, autoweb

James B. on Pownce (via) James Bennett has started using Pownce for sort of medium-format blog entries, longer than a tweet but shorter than a blog essay and delivered with a healthy dose of snark.

# 9:15 pm / snark, james-bennett, pownce, blogging

May 4, 2008

twistori. Lovely implementation of a neat idea for a Twitter app from Amy Hoy and Thomas Fuchs.

# 8:20 am / twitter, amyhoy, thomas-fuchs, twistori

Making Time Machine work with the ReadyNAS. Finally, a decent set of instructions on using a ReadyNAS with Time Machine. The trick is to create a local sparse disk image with a magic name (based on hostname and eth0 MAC address), then move it to the NAS.

# 5:55 pm / osx, timemachine, backups, readynas

May 5, 2008

Sneaking Ruby Through Google App Engine (and Other Strictly Python Places). In a characteristic stroke of genius, _why makes a solid initial attempt at compiling Ruby 1.9 source to Python 2.5 bytecode.

# 10:13 pm / bytecode, ruby, python, whytheluckystiff, googleappengine

What amazes me is how close Ruby 1.9 bytecode and Python 2.5 bytecode are. Some things translate almost directly. [...] And, really, if that's true (and I vouch that it is truly, truly true,) then how are Python and Ruby still on separate runtimes?

Why the lucky stiff

# 10:14 pm / python, ruby, whytheluckystiff

May 6, 2008

Unobtrusive JavaScript with jQuery. The online handout for the tutorial I gave this morning at XTech.

# 6:53 pm / jquery, javascript, handout, xtech, xtech08, unobtrusive-javascript

Opera Dragonfly. Opera’s new Firebug-style developer console. Out in alpha and it shows (slow to load and the interactive console leaves a lot to be desired) but still looks incredibly promising, especially the remote debugging tools for working with Opera on phones and games consoles.

# 7:04 pm / opera, firebug, debugging, dragonfly

May 9, 2008

Processing.js. John Resig’s outstanding port of the Processing visualisation language to JavaScript and Canvas. Runs amazingly well in Firefox 3. One hell of a hack.

# 8:24 am / processing, john-resig, javascript, canvas

May 11, 2008

Byteflow Blog Engine. This looks like the most full-featured of the Django blog engines by a pretty big margin, including OpenID client and server support. A product of the growing Russian/Ukrainian Django community.

# 7:41 pm / openid, byteflow, django, python, russia

May 12, 2008

Python with a modular IDE (Vim). Great tips—I’d use these if I wasn’t still scarred from the time vim encrypted my file instead of saving it because I had caps lock on by mistake.

# 7:09 am / capslock, vim, python, ide

I think there's a great danger that, as a result of framing the current opportunity around "data portability", the story that will get picked up and retold will be the about copying data between social networks, rather than the more compelling, more future-facing, and frankly more likely situation of data streaming from trusted brokered sources to downstream authorized consumers.

Chris Messina

# 8:13 am / chris-messina, data-portability, socialnetworkportability

Beanstalkd. This is the light-weight cross-language queue I’ve been waiting for. Similar to Starling but your workers don’t need to poll for new jobs; you can call the blocking “reserve” call instead.

# 9:12 am / starling, beanstalkd, queue, lightweightqueue

Airship Ventures (via) New startup providing tours of Silicon Valley in a frickin’ Zeppelin. Strangely enough I’ve been complaining about the lack of Zeppelins over Silicon Valley for several years. Really.

# 6:41 pm / zeppelins, airships, siliconvalley, pubchat

Yahoo! Internet Location Platform. As an ex-Yahoo! this is really exciting—WhereOnEarth (a London company acquired by Yahoo! in 2005) provide the incredibly detailed geographical data used by Flickr, Upcoming and FireEagle—and now it’s available as an external API.

# 9:02 pm / fireeagle, apis, location, flickr, geocoding, upcoming, whereonearth, yahoo

May 13, 2008

Something you had, Something you forgot, Something you were

Nick Mathewson

# 8:06 am / security, authentication, nickmathewson

django-db-log. Middleware that logs Django exceptions to the database, using a clever scheme based on an MD5 of the traceback text to group duplicate errors in to batches.

# 8:07 am / david-cramer, django, exceptions, logging, middleware, djangodblog

Persevere adds Comet Support. Persevere sounds neat: a RESTful HTTP/JSON data store (the interface reminds me of CouchDB) which recently gained the ability to “subscribe” to a resource and receive notifications of updates via comet.

# 8:09 am / persevere, comet, javascript, json, rest, restful, couchdb

Hey Google: any chance we can all build the social web together without requiring JavaScript?

Me

# 1:49 pm / me, twitter, google, javascript

Django admin OmniGraffle stencil. Alex Lee put together a beautiful stencil for OmniGraffle containing all of the common UI elements seen in the Django admin interface, as a tool for wireframing.

# 5:58 pm / alex-lee, omnigraffle, django

Graffletopia. Huge collection of free OmniGraffle stencils.

# 5:58 pm / omnigraffle

2008 » May

MTWTFSS
   1234
567891011
12131415161718
19202122232425
262728293031