Cal Henderson – Building Flickr
Summary
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.