Warning this is a very long post so get yourself a coffee and come on in :)
It is Sunday evening in some timezone and I'm handwriting this blog post using Windows Live Writer on board a 747 inbound to Seattle for a week long technical briefing. I have spent my weekend at Baa Camp (a kiwi version of the O'Reilly Foo Conference). The event was organised and tirelessly run by Nathan Torkington and his family. Nat briefly introduced the event on the Friday afternoon, "Hi I'm Nat I work for O'Reilly we organise foo to bring you together to invoke conversation so that we can learn about the next trends as you create them", he then went on to say "although I think you'll take more away than we do from talking to each other this weekend and that's ok too".
It was the ultimate anti conference, at the start of the conference very few sessions were organised... half an hour later a full weekend worth of six simultaneous sessions were locked into the A3 paper on the walls. Everything from "Ambient Signifiers" to "body modification and enhancement".
The conference was a melting pot of business leaders, politicians, designers and of course heaps of open source developers.
Being one of the few Microsoft developers at the event (and the only one there that works for the company) it felt like the ultimate "cross pollination" opportunity. I was able to get an insight from some of the brightest thinkers that Mozilla, Google, Rails, Php & Java has to offer.
I had a conversation over dinner about working for Microsoft and attending a conference like foo I likened it to playing a game of sport... We play hard against our competition and we play to win, while others in the crowd fight with each other about who has the better team. After the game we socialise with each other are in amid of each others top players and share a common interest which is the love for the game. Nothing calls this out more than the recent ralying of Silicon Valley's greatest to search for missing Microsoft Researcher and legend Dr James Gray.
It was for this reason that I was disapointed to see Kathy Sierra's recent post on the difference between Jeff Bezos and Bill Gates. The talk Jeff Bezos came to was at O'Reilly's Foo Camp... I think given the opportunity anyone at Microsoft (including Bill Gates and Ray Ozzie) would consider attending Foo, did anyone bother to invite Bill along?
The first session that I attended on Friday was conducted by David Cunliff on the state of broadband in New Zealand. Unfortunately there was nobody from telecom invited to the conference as they really got a going over. At one point the room even joked that Rod Drury should take the job of Telecom's new CEO. When David was questioned about the time it would take to force the unbundling, the minister joked "we thought of a number and added a zero and that will be the fine per day". David claimed "I want this to be the year of IT!". David elicited some feedback on the unbundling process and was surprised to hear that the people in the room, especially Andy Linton (citylink) valued "peering" as a more important problem to solve than unbundling. Andy likened it to forcing ISP's to dump their money offshore. He also claimed that local peering gives you reliability. David's response... "Thank you for helping me write my action plan for 2007... As of tonight peering is an important issue".
I organised a session in the car park Friday night... I wanted this session to be devoid at technology and instead a voyage of audible discovery. We setup 4 cars in each corner of the netball court and enjoyed the quadraphonic sounds of Zaireeka (no format shifting here). The vospertron team provided the visual effects.
The next day I presented a session on "What the hell is XAML?" A guide to presentation on windows. There were only a few people that came along amongst them was Robert O'Callahan an Auckland based developer who works on the core engine in firefox. Robert has recently left Novell to set up a small mozilla office in Auckland, Asa Dotzler even joked (?) to me that he liked NZ so much that he might even move here! I organised a lunch with Robert last year after reading this post he did on the New York times reader. It was hard to explain that XAML was a platform technology that doesn't really have that much to do with HTML on the web aside from binding to web based apis & feeds. Robert was asking how WPF renders HTML that may be mixed in with the feed data? Robert cautioned that there is alot of feeds out there that contain presentation markup in amongst their data. I guess in a WPF world you simply strip off that mark-up & render the data & images themselves using a document flow control :) Anyone out there doing this? As an aside I did notice a nice client visualisation app of Wikipedia pop up recently using some of these WPF controls that you might like to try out (.Net 3.0 runtime required).
Rod's & Phil did a great job spreading the word about their new xero project (Phil told me that Rod originally wanted to call it Accounting 2.0). All through the weekend they had made some eye catching shirts that even Ben Goodger was wearing one on the last day.
Ben Goodger & Robert O'Callahan (Rod's got ben in Xero)...
Unfortunately I didn't attend Roberts session on what's coming in Gecko 1.9 but I did read Rod Drury, Juha and Robert's (thanks for the plug) blog posts on the offline application support that is coming in this version. Since I didn't attend the session I don't really have a grasp on what exactly is being proposed here but if I understand correctly from Rod's post Robert is proposing an engine to support caching a website client-side through the browser and providing a method to interact with that cached site to perform tasks such as filling out forms and pushing that data to persistent local storage that will be "posted" when the browser next goes online... a bit like a live cache. I implemented similar solutions to this back in 2000 when I was building HTML based email survey applications and delivering them to respondents with email but no Internet access. I used cookies to allow people to go back to their partially completed forms and I created client side caches of post data that I could hash using a client side JScript based MD5 algorithm. I'd then queue up these results to be submitted via an IMAPI interface when the machine was next online or with email access, once the "email" with the post data was received I would compare the hashes to confirm that the data hadn't be manipulated enroute and process the information on the server. This system worked flawlessly (while until at least the first email based jscript virus was created ;).
I'm not convinced that creating an offline engine is going to be easy for modern web applications to adopt. More and more websites are being written using (AJAX) to over come the stateless nature of the HTTP protocol and create a synchronised experience for your site users. Any smart client developer knows that you write your site/ transactions differently to address contention issues that can result from having and changing data that may have also changed on the server during the time in which you are working offline. Of course contention is an issue on live websites that have many users updating the same data at potentially the same time but during development assumptions may have been made relating to the fact that the site was expected only to be used online. In most cases I perceive that redevelopment would be required by the website creator to support an offline web model. Further to this I also attended Judith Tizard's session on the proposed changes to NZ copyright law where she talked of potential copyright implications of saving webpages to your local machine without the sites knowledge or permission. I image interacting with a companies website offline without their permission might fall into a copyright grey area that static caching manages to avoid.
Another session that I enjoyed was Justine's session on "Faceted Navigation". I have had a few conversations with Justine at the Auckland UPA user group meetings and she really knows her stuff. The people attending was a good spread of kiwis with an interest in User Experience. Natasha (TradeMe), Tomek (Project x), Rod Drury (xero), Philip (xero), Che (shift), Tim, Rowan (TradeMe), John Clegg (Project x), Ross Howard (shift), Don Christie (Catalyst IT), Lulu (Hansel), Martin Sidoruk. I didn't really get the concept at first. Justine explained... think of it like removable breadcrumbs; where the facets are user-editable values.
Rowan asked "What is broken with hierarchies?"
Justine responded "Heirarchies are like dead-end garden paths... hierarchies are personal to whoever creates them."
To learn more check out facetmap.com... very cool.
The surprise gadget success for the conference was the Nintendo Wii. It was the first time I had tried one & I had a great game of tennis against Rowan. Someone had an application on their mac that picked up the feed from the wireless Wii handset & turned it into a light-saber.
Juha tries bowling
Natasha & Rowan were also sporting some t-shirts that he had made with huffer (like we did for webstock last year) for staff Xmas presents at TradeMe, they sported Sam's original TradeMe logo and were also very cool.
I enjoyed Pete Yandell's rails session where we dug a little into the guts of the language. I didn't realise rails spawned from a language that was created in Japan. Pete explained why Japan doesn't like Unicode and the Multibyte for Rails Project. We explored how flexible a framework rails really is and explored an interesting concept of overwriting the system time in a running rails instance, I was left the notion just because you can do it doesn't necessarily mean it's a good idea ;)
That night it was time for another social dinner followed by a spot of cricket...
Then later Chris DiBona rolled out a game of Werewolf (what a great game!)
Pia Walsh (linux Australia) couldn't get over how dodgy she thought I was eventually leading to us both losing the game to the convincing Lulu (there are no werewolves in India, yeah right!?)
On Sunday Chris DiBona held his session on One Laptop Per Child.
Kelly Goto asked Bill Gates his thoughts on this project last December.
The final session that I attended was a bit of a think tank on the next Webstock conference to take place from the 11-15 February 2008. This session was organised by Natasha Hall (Trade Me) and Mike Brown (Signify), there were only a few of us there due to the fact that other popular sessions were on at the same time.
Of the people involved in the conversation where Chris Shiflett of PHP fame and Pia Walsh (linux Australia). We got talking about accessibility then open source projects then JAWS and how necessary and expensive it is as a screen reader application. I got thinking about the screen reading technology inside of Vista that is tied into the speech recognition piece and the new speech SDK that is part of .NET 3.0... now that could be a valuable open source codeplex project for some .NET developers to get their teeth into.
All in all kiwifoo was a great conference and I am very happy that I was invited along. I hope I contributed enough to get another invite next year. Great work Nat and Russell.
Russell Brown has also done a great write up on the conference here and people are sharing their photos here and here.
I'll leave you with a little video mashup (mostly cellphone footage) of my time at foo. Nathan has inadvertently provided the Bango music! enjoy.
Tags: kiwifoo, baacamp
This posting is provided "AS IS" with no warranties, and confers no rights.
It was tennis after errm, a little too much wine at dinner. Nice clip :)
Hey Nigel, let me clarify about our offline apps story. The #1 thing is that it is NOT meant to be transparent to applications; applications must be modified to take advantage of our offline features. Trying to make existing applications work offline without modification is not generally feasible in my opinion (and I think you agree).
The trend towards AJAX apps actually makes our approach easier, not harder. When you're offline you have no server access and therefore any application logic that you need while offline must be implemented in the client. AJAX tends to move logic from the server to the client, so it helps us.
Thanks Robert, as I said unfortunately I wasn't at your session... incidently I was reading this article - http://www.eweek.com/article2/0,1895,2080295,00.asp - on the Dojo Offline Toolkit, somewhat clarifies what you are saying about the trend to AJAX apps making it easier.
I had a chat will some of the IE team this week up here in Settle and they mentioned that they too are working with the standards bodies on what offline storage looks like... no promises but at least they are thinking of the same problem domain.
-did you say mashup?
It took me a bit longer-
stay Octophonic ; )