Archive for the 'Workshops' Category

Highlights Of FOWA 2007

Monday, 26 February 2007

Last week I had the pleasure of attending Carson Systems‘ annual Future of Web Applications conference in London. This two day conference and day of workshops has expanded significantly since the single day conference held last February (which I wasn’t able to attend). The Carson Systems crew did their usual superb job of organising the event and of attracting a good mixture of industry heavyweights and up-and-comings as speakers. Digg founder Kevin Rose was arguably the star draw, but there were also representatives from Google, Amazon, Microsoft, Yahoo! and Adobe, to name a few household names.

The conference was made even more enjoyable for me because my good friend John Conners joined me in casting a somewhat cynical and perhaps slightly jaded eye over some of the things that we were being asked to buy into during some of the presentations. The thing about John is that he actually worked at a startup for a number of years and was involved with the Web the first time around when it was still 1.0, so he knows what he’s talking about. At various points we felt like dragons in the Dragons’ Den, exclaiming ideas as ridiculous in the style of Duncan Bannatyne. It was a real blast sharing the FOWA experience with John and comparing notes and swapping stories.

Lots of people got upset because a technical hitch meant that there wasn’t any free wi-fi in the venue, but Ryan Carson explained the reasons why and apologised for this several times. It didn’t bother me, as I was there to pay attention to what was being said up on the stage rather than writing e-mails or the multitude of other distractions that the laptop-wielding majority seemed to find to occupy themselves with. The only time it was annoying was when some of the speakers were giving live demonstrations using the Internet and appealed to the audience to lay off the Internet connection for a bit to help the demo go smoothly. Unfortunately some people were so engrossed with their laptops that they obviously didn’t hear the request, with the result that the demo was spoiled for everyone. Never mind. I’m sure next year’s event will have the most amazing connectivity of any conference, ever!

Rather than dwell on the negative, I thought I’d run down what my highlights of FOWA 2007 were. These weren’t necessarily the best presentations or the things to look out for, they’re simply what I found the most interesting.

Day One

  • Simon Wardley from Fotango gave a particularly inspired and entertaining ten minute presentation covering ducks, The Spice Girls, Tony Blair, the commoditisation of services and Zimki, which is an interesting server-side JavaScript platform. Worth keeping an eye on.
  • Matthew Ogle and Anil-Bawa-Cavia talked about Last.fm which I must admit I hadn’t heard of prior to the conference. It turns out it’s only the world’s largest social music platform! They presented information on the building of their platform and the growing pains of moving from four people working in a flat to thirty people working in a proper office. What I found particularly interesting and what became something of a theme for this year, was the idea of getting users to spy on themselves—so-called myware—in order to generate attention data which software can use to do something interesting. Last.fm use it to serve their users a streaming radio station that’s completely customised to that user’s taste, amongst other things. It’s intriguing.
  • Werner Vogels from Amazon plugged their S3 and EC2 computing services in an effective manner, in many ways following up on Simon Wardley’s point about the commoditisation of services. The point being that you don’t have to worry about (for example) building a storage infrastructure for your web application anymore—just pay to use S3 and let an Amazon-class company take care of all that hard stuff. There was a great moment when someone asked Werner where the data is physically located if you use S3. He answered that it’s replicated across several locations and that Amazon can afford to lose two entire data centres and not be affected! If losing one data centre might be considered careless then I don’t know what losing two is…

Day Two

  • Adobe’s Make Anders made a great pitch for Adobe’s various Flash-based technologies and gave an impressive demo illustrating significant speed improvements in the forthcoming Flash player.
  • Simon Willison explained what OpenID is and why you should be using it. Simon’s presentation was very fast-paced. I don’t know whether it’s because he was nervous or whether he’s like that anyway. I suspect the latter. Anyway, it was a thought-provoking talk and as a result of it I’m considering adding OpenID support to AssetsGraphed.
  • PHP creator Rasmus Lerdorf gave a very interesting and technical presentation covering some of the security problems that plague the Internet and also how to go about profiling a web application in order to improve its performance. He covered some really useful things and I know that John enjoyed this one in particular.
  • Richard Moross and Stefan Magdalinski gave a good presentation all about their online printing business, MOO. I felt that Richard was a little stilted as he paused whilst he turned the page in his notes, but overall they carried it off. What really came across was how they have executed perfectly on their great idea of printing high quality business cards featuring images from online services such as Flickr. Like Apple they understand that their customers’ satisfaction is a gestalt of the entire product experience. In other words, it’s not just the product that’s important—it’s the packaging, it’s the little touches that delight, it’s the fact that they use recyclable paper from sustainable sources and that they package their products by hand to improve the quality, whilst paying a decent wage to the people who do the packing. All of which makes you feel good about buying from them. I’ve just sent off for a pack of complimentary MOO MiniCards and plan on placing a paid order soon.

Day Three

  • The third day was an optional day of workshops. John and I attended Khoi Vinh’s morning session on designing using a grid-based layout. Although I’d read about this technique on Khoi’s blog, it was still great to hear it from the man himself. I particularly enjoyed the run through of grid-based designs throughout the years and also Khoi’s ground-up reworking of a couple of pages from a certain well-known site that begins with a “Y”. The results of which looked fantastic. I’m planning on redesigning the AssetsGraphed home page using a strict grid layout at some point, so watch out for that.
  • Finally we came to the last session of FOWA 2007. We opted to hear Stefan Magdalinski talk in a lot more depth about all things MOO, which he was certainly able to do in an entertaining and informative manner. Stefan is full of amusing war stories from the various ventures he’s been involved with. We learned how it’s apparently impossible to buy thousands of pounds worth of servers at list price from Dell and also how Adobe’s PDF specification possibly doesn’t support right-to-left languages such as Arabic. I can’t actually think of anything that I might have wanted to know about MOO’s technical architecture and journey from development to successful launch that wasn’t covered. It was a great talk about a great company from a great guy.

I’m really looking forward to seeing what FOWA 2008 will have in store!

Workshop Review: Professional CSS XHTML Techniques

Sunday, 14 May 2006

On Friday I attended a Professional CSS XHTML Techniques workshop given by Eric Meyer and organised by Carson Workshops. The event was superb; it’s clear that Eric has probably forgotten more about CSS than most of us will ever know, yet he was able to impart some of his vast knowledge and experience in a digestible and accessible manner. He was a pleasure to watch and listen to and a nice guy who answered everyone’s questions thoughtfully and patiently.

I learned lots of things about CSS that I didn’t know before or only vaguely understood, including:

  • The values of attributes within XHTML aren’t case-sensitive, apart from class and id attributes.
  • Everything looks like an element to CSS. It’s possible to write CSS that displays and styles elements that are normally supressed by browsers. For example, the head and title tags.
  • The content: declaration can be used to generate content. The print stylesheet at A List Apart uses this to good effect to display link URLs. This doesn’t work in IE though (including IE7).
  • The “Cascading” in Cascading Style Sheets refers to specificity processing, not to the inheritence of declared values across elements.
  • Inherited values have a null specificity.
  • The universal selector (*) has a specificity of 0 0 0 0. It’s equivalent to listing every XHTML selector explicitly in the stylesheet.
  • The universal selector is handy-dandy for stripping out browser defaults.
  • If selectors have equal specificity then the tiebreaker is the order listed in the stylesheet—last one wins.
  • !important trumps specificity, even for inline style declarations. IE7 supports it properly, whereas IE6 supports it but has a buggy implementation.
  • !important isn’t inherited.
  • !important can be used to diagnose specificity conflicts by temporarily boosting the specificity of a selector.
  • Link selectors have to be listed in a:link, a:visited, a:hover and a:active (LoVe HAte) order because all four selectors have the same specificity, so the selector order in the stylesheet comes into play.
  • Listing selectors in alphabetical order within a stylesheet is generally a bad idea because it can introduce specificity conflicts.
  • IE7 should be considered roughly equivalent to Firefox in terms of CSS rendering behaviour.
  • IE6 only sees the last class or pseudo-class when multiple classes are assigned to an element.
  • Absolutely positioned elements cannot affect other elements because they’re outside of the normal flow.
  • The order in which elements appear in the source is significant for floated elements.
  • Clearing an element resets the top margin for the cleared element.
  • Elements that are in the normal flow don’t establish position context for other elements, which is why container elements need to have position: relative in their declaration block.
  • Line height can be specified in the shorthand font declaration syntax e.g. font: 1em/1.2em Verdana, Arial, sans-serif; specifies a font with size 1em and line-height 1.2 em.