Skip navigation.

Eclectic Brain Salad

Chris Mills' thoughts on the web, music, life, and more

The Highland Fling 2008

, , , , , ,

This was an exciting conference for me - not only was it held in Edinburgh, one of my favourite cities, but it was also the first real proper conference I have ever spoken at! I would like to say a big thank you from the heart to Alan, Dave, Roan, and everyone else who helped pull this together, for looking after us so well. It was a really great conference, and I think the discussions were very useful and rewarding. I would also like to say a big thanks to the other speakers - Paul, Norm, Christian, Gareth, Aral and Simon - for being such lovely people and giving me encouragement and support (well, Christian mainly mocked me and told bad jokes, but I know he means well ;-)

Wednesday April 4th

After getting some work done and dropping our son off at his grandparents house for few days, we (we being the delectable Kirsty and I) made our way up to Edinburgh on the train. I fortunately managed to find a seat with a power socket, so I could do some more work on my presentation. It is amazing how many mistakes there are to fix and tweaks there are to make, even after going through the presentation material several times!

After getting to Edinburgh, we got a taxi over to the wonderful luxury apartment (bigger than our whole house...) that we shared with Simon, and Aral and Stephanie for the duration. After saying hi and stopping for a brew, we made our way over to a really nice curry house for the speakers dinner, where we ate an enormous amount of spicy food with the organizers and the other speakers. Yum.

Thursday April 5th

The big day! We got there with a few minutes to spare, got settled in, listened to Alan introduce the day, and then it was time for our compère, Mr Paul Boag, to take the stage. He explained the format for the day, which really worked in my opinion - I'd like to see it used more at future conferences. Basically, each talk lasted for about 40 minutes. During this time, Paul wrote down some of his own thoughts and questions, and also collected questions from the audience via paper, text, and Twitter. At the end of the sessions, he interviewed each speaker using those questions. It made for some really nice discussions, and also cut out that horrible thing you normally get at conferences where someone will stand up and ask a painfully specific long winded question that is not of much interest to anyone else except them, and lasts half as long as the whole talk itself!

The first speaker up was Norm.

Mark Norman Francis - The browser and before

Norm gave a very interesting account of the history of the web, leading up to the present day. It was a very fitting first talk for the day, which set the scene nicely. He went through the really early days of the Internet, including ARPANET, early work by Joseph Lechleider, Tim Berners Lee and his work at CERN, early clients such as Gopher and NCSA Mosaic, and how Netscape and MS started and finished the browser wars. He also looked at more recent developments, including Firefox, Ajax, and frameworks and libraries. A very interesting statement that he rounded off his talk with is "The Web IS change" - referring to developer knowledge and skillsets. One very amusing piece of information that I never knew before is that Joseph Lechleider's original name for what became the Internet was "The Intergalactic Computer Network" - this guy certainly aimed high ;-)

Christian Heilmann - Sharing the joy; building badges for distribution

Christian always managed to deliver a good talk; today was certainly no exception. His talk mostly centered on how we can improve distribution of data through badges and APIs. The success of a lot of modern web apps is down to how you can distribute your data on to other sites by use of badges, eg Flickr and Youtube. The modern web is a web of data, and people want to be free to distribute their data. He talked about how we can use this data better, and how we should think about allowing people more power to do this more easily, if we are actually involved in creating APIs.

Gareth Rushgrove - Being a first class web citizen

Gareth's talk was a very interesting step through how to take advantage of some of the lesser known features of the Web, as well as some good tips for maximising efficiency of APIs. He started by stating that some people browse the Web using a web browser, but somme people don't - they use code. Some people aren't even people - they are robots (either physical robots, or automated programs such as web spiders) or even rabbits (the Nabaztag, anyone?) So what is a designer to do?

The answer - Understand APIs, to make it as easy as possible for you to manipulate the web of data we now deal with. "The API is the product."

First of all, make better use of HTTP. There are the GET and POST methods that everyone knows, but what about HEAD, PUT, TRACE, DELETE and OPTIONS? These could do some work for you (eg authentication) that you'd otherwise have to put on a higher layer of the stack. Why do this work twice?

Next, understand status codes better. Everyone knows 404 and 500, but what about the 200 success code, or the 503 service unavailable code?

Next he covered understanding URLs, and the fact that URL design is becoming more important. URLs are an important part of the UI of your application - they are the entry point to a site for a visitor, and are also a logical navigation tool if done right.

Lastly, he gave some rules for APIS. They should be:

  1. Proddable - eg you can use Curl to query APIs, to find out things about the data they carry, etc.
  2. Hackable - eg can you replace parts of the URL to get to different pages?
  3. Multilingual - some you can convert between different data types etc
  4. Open
  5. Transparent
  6. Obvious - document your APIs! Don't make people guess how to use them.

Lunch

Lunch was fairly uneventful, and it gave me some time to gather up some courage for my talk, which was coming next!

Me! - The mobile perspective

I think my talk went fairly well, especially for my first conference speaking engagement, and a few people said they though it went great afterwards. Everyone laughed at my jokes, and I didn't seem to stumble on my words, or forget anything. Plus it was entertaining freaking Paul out during the interview section, by lounging on the sofa in a kind of pseudo-porn star pose ;-)

I went through the basics of how the mobile web development landscape differs from "normal" web development, and what extra considerations you need to make, then I looked at device constraints and advantages, and some techniques for optimizing mobile sites. It gave me lots of good opportunities to plug Opera products, and the Web standards curriculum. And the interview section afterwards was useful, with some good discussion going about how to sell the mobile web to clients.

If you want a copy of my slides, e-mail me at cmills [at] opera [dot] com. Also check out my Think Vitamin article on mobile web development.

Aral Balkan - Barenaked Flash: Dispelling myths and building bridges

As always, Aral proved to be a very entertaining speaker, full of charisma and insight. I've seen him speak many times, and never seen him give a bad talk. Aral shares my interest in trying to get the Flash and standards communities to work more closely together, and that was the basic gist of this talk - he showed what is available in the Flash world these days, and debunked a load of myths, for example Flash being inaccessible (there are steps you can take these days to make Flash more accessible) and Flash being proprietary/closed (it start off like that, but with the amount of open source tools available these days, it is anything but - the actual Flash player is the only thing Adobe strictly controls.) He ended with a nice comment about how to teach Flashers better practices learned from the standards world - don't just stand around and moan at them - engage and educate them, and hopefully they can do the same to you.

Simon Willison - Comet: Moving towards a real time web

To round off the day, Simon presented on Comet which is a blanket term for any technique that involves the server pushing events on to connected browsers. Examples you can see today include Google Mail, the Google Chat browser window, and Google Spreadsheets (try opening two instances of a Google spreadsheet on different computers and making some updates, and you'll see the updates occur on both instances in real time.)

There was early Comet style functionality as far back as Netscape 1.1, in the form of client pull and server push, but achieving Comet across the Web wasn't really explored until later on. Simon explained that achieving it really was a grim, harsh battle between the developers and the browser - to illustrate this, he used a hilarious movie poster of "Zeppelin versus Pterodactyls"!

There were a series of problems in winning the battle:

  1. The first major issue is IE not making xhr:responseText available until after the page has finished loading. This was overcome using a hidden iFrame.
  2. The next two problems were the throbber (ie the graphic that pulses while a request is loading - this never seems to stop if you are you are doing Comet-style activity) and the click (ie the click that happens after a request loads.) These were overcome using a COMPLETELY undocumented ActiveX extendsion called htmlfile. Not sure how - I was a bit lost by this point in the presentation!
  3. Next problem - proxies/firewalls stopping the flow of the requests. This is overcome using the long polling technique, which keeps pinging the server, and then intermittantly closing and reopening the connection, to keep the data flowing.
  4. Lastly, there is a problem caused by the 2 connection limit inherent in IE (IE8 apparently will have a 6 connection limit, making this problem go away.)

And this is just on the client-side. The server-side problems are much worse! Standard servers such as IIS and Apache are just not set up to handle thousands of requests at once, but there are solutions available to this in various languages, such as Twisted in Python. And there are also standard protocols created for Comet, such as Bayeux and cometd. The future is looking bright for Comet too, with built in support for it in HTML5 - <event-source src="/comet">

Simon rounded off the talk by showing a demo of how you can build up a Comet application in under 5 minutes. Great talk.

Media query exampleStop using Ajax ... and start using Opera Kestrel beta 2!

Write a comment

You must be logged in to write a comment. If you're not a registered member, please sign up.