Opera talks at Dundee university, November 9th 2009
Monday, 9. November 2009, 15:02:52
Opera Dundee University slides Nov 2009 (ZIP file, 9.2MB)
More information about how the day went to follow later on.
Chris Mills' thoughts on the web, music, life, and more
Monday, 9. November 2009, 15:02:52
Friday, 9. October 2009, 23:31:19
Thursday, 8. October 2009, 21:51:55
Thursday, 7. August 2008, 17:20:20
Thursday, 17. July 2008, 08:50:37
Thursday, 29. May 2008, 09:51:24
Friday, 25. April 2008, 11:10:28
Tuesday, 8. April 2008, 08:45:56
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 ;-)
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.
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.
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 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'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:
Lunch was fairly uneventful, and it gave me some time to gather up some courage for my talk, which was coming next!
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.
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.
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:
xhr:responseText available until after the page has finished loading. This was overcome using a hidden iFrame.htmlfile. Not sure how - I was a bit lost by this point in the presentation!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.
Tuesday, 18. March 2008, 07:30:45
This is a modified version of a media query example I originally posted along with my mobile Think Vitamin article. I'm currently doing some debugging, trying to get it to work across devices a bit better, as currently there is some confusion as to how the max-width and max-device-width properties are interpreted by various browsers.
Test bed for some more recent media queries examples, and a few more besides, for a new Opera Mobile article.
Media query and Web Font example: world-news.html
Transparency (RGBA) example: world-news_rgba.html
Monday, 10. March 2008, 21:11:46
Showing posts 1 - 10 of 15.
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
|
| ||||||
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||