Graham King

Solvitas perambulum

Cal Henderson – Building Flickr

These are the notes I took during Cal Henderson’s talk on Building Flickr at the Future of Web Applications conference in London on Wednesday 8th February.

Lars Ploughman posted a great mind map of the talk.

Collaboration

  • Try and figure out what people need; this is not always what they say they need.
  • Network effect: When people get their friends to sign up, it makes their experience better.

Aggregation

  • Instead of always grouping data by user, we can slice it in other interesting ways:
    • Most recently uploaded
    • Most popular
    • By tag
    • By weighted ‘interestingness’ algorithm

Open APIs

By API the Web 2.0 people mean a web service API: REST, SOAP, XML RPC, etc. You need an API to for your web client anyway, so clean it up and make it public.

The evolution is: web site -> web application -> web service

Clean URLs

Don’t expose internals or physical structure on the URL. They should reflect a consistent, logical structure, the way the user thinks about it. mod_rewrite enables this. URLs should never change, otherwise you break links.

AJAX

It’s Asynchronous. It streamlines user interactions.

Unicode

Internationalisation and Localisation. Store, present and receive all textual data as UTF-8.

Desktop / Platform integration

Backed by the API. With an API for your app, you can write desktop apps. Some interactions on the web are difficult and/or slow (such as uploading lots of pictures). Desktop apps can have drag and drop for example.

It doesn’t have to be a full fledged desktop app – use Bookmarklets, Firefox plugins, etc.

Integrate with e-mail; every user has it and uses it daily. It’s often difficult to get data off mobile phones, but they can do e-mail, so provide an e-mail uploader. Send e-mail notifications.

Mobile phones

They mostly support XHTML-Mobile, a cut down version of XHTML. Build custom pages for mobiles because the screens are so small. Re-think what is on the page. Cut down as much as possible.

Open data

Allow users to import / export their data. Include the meta-data as well. This makes people feel safer about using your service.

Open content

When a user uploads something, they still own it. They still control the licensing.

http://www.flickr.com