Designing for the device

I just attended the Web Standards Group Sydney meetup and saw another set of great presentations. The two on mobile development were of particular interest, though – a) because I’m presenting at Web Directions South in the same session time as Tim and Pete’s ‘Developing for the iPhone’ presentation (of which tonight’s was a preview); and b) because I’m interested in developing for the new breed of browsers coming on the market.

Ever since the iPhone was released my interest has focused around how the change in context will impact behaviour and usage of such a device (Tim and Pete’s presentation had some interesting stats on this front – tease). The iPhone is not just a phone – and it’s the context of use of having a usable, internet enabled device with a well designed and innovative interface (the multi-touch screen) that I’m really keen to both experience and design/develop for.

Tim, Pete and the team at have done a great job with the iPhone specific UI for News Limited – I really appreciate the iterative approach they outlined and how that has resulted in quite a nice interpretation.

During both mobile related presentations tonight the idea of developing a UI for a specific device was raised as both essential – to leverage the capabilities native to the device, such as the multi-touch screen and click to call in the iPhone’s case – and problematic – from the standpoint of standards-based development and the overhead of developing for multiple platforms.

I think that the experience demonstrates that standards will still play an important role – peeking under the hood of the iPhone version still shows an awful lot of standards-savvy markup, and from the sound of things it should be possible to “port” the iPhone version to other enhanced mobile browsers in due course.

But I suspect it will be some time before mobile-oriented development will standardise to the point of traditional web browsers. With a PC/Mac/Linux etc. there’s a core, dominant interaction paradigm in place – a mouse, a window, a browser, common UI elements. With mobile devices, that completely changes. The interaction paradigms are quite different between platforms – using a joystick vs. buttons vs. a numeric keypad vs. a QWERTY keyboard vs. a touch-screen etc.

Some level of customisation will be required to make the user experience a positive one on different classes of devices. Hopefully, though, these different classes will start to consolidate fairly quickly, so we can target groups of devices – i.e. multi-touch (see the Nokia iPhone for example) vs. QWERTY vs. tradition – rather than having to support each individual device from each manufacturer.


Chinese Internet Censorship Index

I’ve mentioned a few times that I’ve been working on part of the Uncensor [site no longer available] project for Amnesty International Australia.

Well, the main feature I’ve been working is partially live now – so I have something to point to :) – and given today is the Day of protest [site no longer available] it seems fitting that I should talk a little bit more about the project.


The Chinese Internet Censorship Index [site no longer available] (or the short version: CICI – pron. chi-chi) is a symbolic visual representation of the level of internet censorship in China at any time. It collects data about sites that have been reported as blocked and presents them as a pseudo “stock index” – if the index is up, it means that more sites are accessible, down means more sites are blocked.

I was responsible for defining the methodology (some of which is outlined in a PDF [266 KB] on the site [site no longer available]) and building the data collection tools for the index. I also built some of the registration features, integrated the site with my favourite email management tool, Campaign Monitor, and a REST+JSON API to support the Flash visualisation and an AJAX testing application (more on that in a sec).

For the technically inclined – i.e. the folks for whom all those acronyms actually mean something ;) – all the components were developed in Django (a Python-based framework).

Getting the data

Data for the index is collected by testing sites via proxies that are hosted within China, and also via the in-browser testing application that volunteers can run from within China. We have some tricks up our sleeve for ensuring that the test app isn’t blocked for participants – so you if happen to be visiting China in a period around the Olympics, you may want to register as a CICI tester [site no longer available].

The hope is that by testing in the lead-up to, during and after the Olympics in August, we can evaluate if the Chinese government lives up to its promises about lifting the measures of internet censorship that have become known as the Great Firewall of China.

Sites will be added to the index over time, as they are reported (in places like the Twitter #gfwlist). My personal hope is that the data collected may also help initiatives like the Open Internet Initiative – but we’ll see about that in due course…

Anyways – check it out and spread the word. I’m a big fan of Amnesty and the campaign, and I’m stoked to have been able to participate. I hope that the campaign can continue to build in the coming weeks and play a role in lifting internet repression in China.

NGOs & Nonprofits, Social media & networking

Uncensor Day of Protest

Uncensor Day of Protest screenshot example

The Uncensor campaign recently launched an online protest [site no longer available] to take place on 30 July.

The action page contains instructions on how to add a small bit of code to your blog theme to participate in the protest – which will activate automatically on 30 July.

The page explains in more detail and includes a way of previewing what your blog will look like on the day (the screenshot above shows the banner on the Amnesty website).

Disclosure: I’m working on the Uncensor project, but this action is not my work. My bit will be launched real soon now :)