Simon Willison’s Weblog

Subscribe

April 2008

April 1, 2008

Find Your Friends. Flickr have added a characteristically classy friend import feature, pulling from Gmail, Yahoo! and Hotmail address books without any unhygienic password sharing. It’s a crying shame that the Yahoo! contacts API they are using isn’t available outside the company.

# 1:01 am / flickr, portablesocialnetworks, passwordantipattern, gmail, yahoo, hotmail

Classy Query. Beautifully implemented parody of class-based JavaScript and verbose namespacing as a jQuery extension, from John Resig. The source code has some neat tricks in it, in particular the buildClass() function.

# 9:48 am / john-resig, namespacing, jquery, javascript, parody, funny, aprilfools

Welcome to Game Neverending. It really is back! Hot tip: start by taking the survey, then sell the five pieces of blue paper at the bank with the pig on the roof.

# 9:15 pm / gne, flickr, gameneverending, fun

NOTE TO INTERNATIONAL DEVELOPERS: PLEASE DO NOT MAKE SERIOUS ANNOUNCEMENTS ON INTERNET JACKASS DAY.

Mark Pilgrim

# 10:58 pm / aprilfools, mark-pilgrim

April 2, 2008

What’s New in Edge Rails: Easier Timezones (via) Time zones can be a nightmare to get right—if this works well it’s going to make a lot of people’s lives a whole bunch easier.

# 3:39 pm / timezones, rails

Python-by-example. “This guide aims to show examples of use of all Python Library Reference functions, methods and classes”, thus addressing my number one complaint about Python’s standard library documentation.

# 3:42 pm / python, documentation, stdlib

OpenID and Spam. Matt Mullenweg: “OpenID has a ton of promise for the web—let’s not hurt it by setting people up for disappointment by telling them it’s a spam blocker when it’s not.” True for the case of general registration, but I still believe whitelisting known OpenIDs could be a powerful tool for fighting spam on personal sites.

# 7:33 pm / whitelisting, spam, socialwhitelisting, openid, matt-mullenweg

CSS Compatibility and Internet Explorer (via) Official Microsoft guide to which CSS properties are supported by which versions of IE. This is the kind of documentation browser vendors should be providing as a matter of course.

# 8:05 pm / css, microsoft, ie, documentation, standards

Firefox 3’s password remembering. I’m loving Firefox 3, and the way it does password remembering (with a non-modal toolbar so you can tell if your password worked before deciding to save it) is just one of the major improvements. Opera gets this right as well.

# 8:24 pm / opera, passwordsaving, firefox3, mozilla, nelsonminar

The ISO are now calling a "standard" the Microsoft Office format [...] What is interesting is that TeX, LaTeX, OGG/Vorbis, OGG/Theora, Perl, Python, PHP, Ruby, OCaml, are not standardized by any organization. [...] This shows that standardization organizations are no longer relevant in the software field. What really matters is free full documentation, free full implementation source code, and of course the absence of any patent risk. [...] In other words, what matters is evidence that any independent third-party can create and distribute a fully-conforming implementation.

Benoît Jacob

# 8:30 pm / benoit-jacob, standards, iso

London Connections. Marvellously obsessive blog about the vagaries of London transport, including some really nice custom created maps. I love detailed maps of tube stations; anyone know a good place to find them?

# 8:53 pm / londonconnections, maps, mapping, london, transport

April 4, 2008

Brendan Eich: Popularity. I never knew that Brendan went to Netscape on the promise of “doing Scheme in the browser”.

# 7:30 am / brendan-eich, javascript, scheme, netscape

The Royal Mint: The New Designs Revealed. Matthew Dent’s design for the new UK coinage is inspired—absolutely beautiful. Can’t wait to get my hands on some of these.

# 7:42 am / design, mint, matthew-dent, royalmint, uk, coins

Advanced JavaScript Debugging Techniques. There’s more to JavaScript debugging than just Firebug.

# 7:51 am / firebug, javascript, debugging, sitepen

i am near (via) Inspired by wikinear.com and powered by FireEagle, currently just showing nearby pubs from OpenStreetMap but with more stuff planned. I love the URL scheme—pubs.iamnear.net.

# 7:53 am / pubs, fireeagle, openstreetmap, iamnear, tom-taylor, urls, wikinear

Implementing a syntax-higlighting JavaScript editor in JavaScript. Appropriately subtitled “a brutal odyssey to the dark side of the DOM tree”. Some seriously clever trickery going on here.

# 8:27 am / javascript, syntaxhighlighting, dom

Why the webstandards world appears to be choosing Django. I’m not convinced that this is a definite trend, but it certainly makes for an interesting discussion.

# 8:33 am / django, web-standards, gareth-rushgrove, python

Comet at the Highland Fling. I thoroughly enjoyed the Highland Fling yesterday. Here are the slides from my talk on Comet.

# 10:13 am / comet, highlandfling08, talks, conferences, javascript

Hash Collisions (The Poisoned Message Attack). Demonstrates the MD5 weakness by providing two deliberately engineered PostScript documents with the same MD5 hash but radically different rendered output.

# 7:24 pm / md5, postscript, hashing, security, collisions

April 7, 2008

Ignoring reality in favour of what we would like to be true doesn't actually work. This simple axiom probably underlies almost everything the WHATWG has done so far, and it has so far served us well.

Ian Hickson

# 7:24 am / annevankesteren, whatwg, ian-hickson

April 8, 2008

Google App Engine. Write applications in Python using a WSGI compatible application framework, then host them on Google’s highly scalable infrastructure. The most exciting part is probably the Datastore API, which provides external developers with access to Bigtable for the first time.

# 7:25 am / googleappengine, python, bigtable, google, scaling, virtualisation, wsgi

Running Django on Google App Engine. Django 0.96 is included, but you need to disable the ORM related parts and use the Google App Engine Bigtable interface instead.

# 1:15 pm / django, python, google, googleappengine

The Google App Engine model class, db.Model, is not the same as the model class used by Django. As a result, you cannot directly use the Django forms framework with Google App Engine. However, Google App Engine includes a module, db.djangoforms, which casts between the datastore models used with Google App Engine and the Django models specification. In most cases, you can use db.djangoforms.ModelForm in the same manner as the Django framework.

Google App Engine docs

# 1:48 pm / django, google, python, newforms, modelforms, googleappengine

April 9, 2008

OpenID for Google Accounts. Google App Engine integrates with Google’s user accounts, so Ryan Barrett (of Google) used it to build an idproxy.net style OpenID provider.

# 1:09 am / openid, idproxy, ryan-barrett, google, googleappengine

A List Apart: Issue 256. The EveryBlock issue. Paul Smith on EveryBlock’s tasty custom maps, and Wilson Miner on EveryBlock’s tasty accessible data charts.

# 12:21 pm / maps, paul-smith, wilson-miner, everyblock, alistapart

Video on Flickr! There’s a 90 second length limit, because “... Flickr is all about sharing photos that you yourself have taken. Video will be no different and so what quickly bubbled up was the idea of long photos, of capturing slices of life to share.”

# 1:16 pm / flickr, photos, video

April 10, 2008

Google App Engine for developers. Best in-depth coverage so far, from Niall Kennedy. I didn’t know that Guido had worked on the Django compatibility layer.

# 11:14 pm / niallkennedy, guido-van-rossum, python, django, googleappengine

April 11, 2008

django-rosetta—Google Code. Very classy Django-powered interface for both reading and writing your project’s gettext catalog files, hence allowing application translators to work through a web interface.

# 7:31 am / django, gettext, internationalisation, i18n, djangorosetta

April 12, 2008

Active on IRC in the past hour. New Django People feature in collaboration with Brian Rosner—DjangoBot now provides information on currently active IRC participants. There’s an opt-out privacy control and the bot sends you a message about it the first time it logs your activity.

# 12:58 am / django-people, django, python, irc

Sharedance (via) “Sharedance is a high-performance server that centralize ephemeral key/data pairs on remote hosts, without the overhead and the complexity of an SQL database.”—ideally suited to session data, which is a poor fit for a full relational database.

# 10:39 am / sharedance, sessions, django

2008 » April

MTWTFSS
 123456
78910111213
14151617181920
21222324252627
282930