Following on from my Day 1 review of yesterday... Day 2 started with more of the same, another day packed full of talks - 5 sessions this time.


Internationalizing WPF and Silverlight Applications - Guy Smith-Ferrier
I've seen Guy speak before, and know him to be an engaging and enthusiastic speaker. I think he had probably one of the most difficult timeslots - first thing Friday morning, when judging by the tweets coming through the geek dinner had been quite alcohol friendly - and so there weren't a huge amount of people present. I own a copy of Guy's .Net Internationalization book and so was ready to learn more. I aren't in a position to need to internationalize WPF or Silverlight at the moment, but am working with a team who are doing it for .Net and so I thought I'd go and see what recommendations he had, and what I could learn to take back and apply to .Net.

One of the interesting takeaways was with regards to the subtle difference between CurrentUICulture and CurrentCulture. CurrentUICulture is about language, CurrentCulture is about date format, currency etc. I've since found an interesting post which explains in much greater detail than I noted down at the time.

One potential gotcha: when manipulating the CurrentUICulture in a multi-threaded environment, you need to set it on each thread - I know that this will come back to haunt me if I don't make a note somewhere :-)

Guy also introduced the concept of post-build localization - i.e. shipping the assemblies to a specialist team who are language specialists. There is a tool locBaml (which is not production ready, but which is used by Microsoft internally) which can be used to help manage this process. There seemed to be quite a few steps to the process involving msbuild, updating the csproj file and generating csv files.

Another takeaway point pertained to the inheritance of resources - if you're localizing an application into English and Dutch then there probably isn't much overlap in content, maybe except for Ok and a few similar words. If however you're localizing an application into English and American English then the majority of the words will be the same with the exception of colour/color, theatre/theater etc. It is easy to see that in a true multi-language environment having to define each resource for each language, even if they're the same content, will have an overhead in storage. So, he mentioned the concept of resource fallback - if the application can't find an exact match for a resource in a specific culture then it would fallback to the resource that most closely matches the users request. The post build tool locBaml doesn't have this inheritance and so would result in full storage of all words.

A brief mention was made about Silverlight 2 and internationalization - there is no flow direction support at the moment, so you can't switch right-to-left, up-to-down etc.

ASP.NET Front End Performance - Chris Hay
Another talk mentioning Fiddler as a great tool - but with a disclaimer - it doesn't work against localhost, but does against the machine name.

The first part of Chris's talk focussed on reducing the number of requests being made. He used Firebug and IBM Page Detailer to show the results in Firefox and IE respectively.

Some of his takeaways were:

  • Combine css files into one file to cut down the number of file requests being made
  • Combine js files into one file to cut down the number of file request being made
  • Make use of file compression - but be careful about what you compress - PDFs don't like being compressed
  • If possible use Server.Transfer instead of Response.Redirect as obviously this is done at server not client side saving a round-trip

He also talked briefly about improving back end performance via cacheing, and mentioned tools such as ASP.NET cacheing, nVelocity and Memcached and also hinted that the next version of ADO.NET might come with cacheprovider functionality built in.

A useful session with some food for thought.

No Silverlight App is an Island (of Richness) - Mike Taulty
Having seen Mike talk not long ago at a Brighton VBUG I had high expectations, and I wasn't disappointed.

This talk got into what you can and can't do to interact with HTML, javascript, the machine, HTTP, SOAP etc and was entertaining and thought-provoking.

One potential gotcha is that you can't make cross-scheme requests, i.e. HTTP to HTTPS or vice versa - another thing I'm noting down in case I ever stumble across such an issue.

Mike has blogged and provided sample code from his session here.

Robots and Beyond - See what you can do today - Paul Foster
I didn't know anything about the Microsoft Robotics Development Studio before this talk so was interested to find out about what it is (a pictorial drag and drop way to control robots), and what it can offer (a virtual environment to play with virtual robots - which reduces the barrier to entry rather). I was quite intrigued by the idea of the iRobot Roomba - a robot vacuum cleaner - shame it doesn't do stairs...

A good talk, but then again with a robot demo it would be hard for it not be captivating to some extent :-)

20/20 Talks - Phil Winstanley, Dave Sussman and more
A great final session - 20 slides, 20 seconds per slide, 6 speakers. I tried to note down who talked about what:

  • David Pugh Jones - Digital advertising
  • Sara Ford - 20 vs tool tips - some repetition from Thursday's session but most impressive to have a tool tip demo in 20 seconds
  • Richard Costall - Silverlight 20 Sliders - he had an mp3 of his kids counting down to mark end of slides which started off quite cute
  • Travis Leithead - IE8 Accelerators and web slices
  • Seb Lee-Delisle - Rich digital content although he cheated the format a little by having some flash samples/videos which lasted for 2 or 3 multiples of the allowed 20 seconds but as he said cutting the videos down to 20 seconds was going to be a lot of work
  • Dave McMahon - How to do a 20/20 session - based on observations from the previous speakers


The day ended with a Sneak Peeks session, showing new ideas, projects and potential products but the numbers were quite well down by this point. I quite liked the Family Archive device - a scanner, an interactive table (a bit like surface) - but there was a lot of advertising going on which was a bit of a sad way to close and otherwise good conference.