Wednesday, 31 December 2008

Azure Blobs - Container names must be lower case

I've just noticed that container names must be lower case in Azure Blob Storage.

In-fact it will blow up and exception if you try and create a container name with a capital letter.

Be aware of that if you use my Azure Blob Browser I do not handle the exception (infact there is no exception handling whatsoever.  I will put a fix out later for it.

Sunday, 28 December 2008

Windows Azure Blob Storage - uri's are case sensitive

This was driving me batty for about 10 minutes.

If you click on the following link it will return a pretty picture of the Acropolis

If you click on this link it will return a not so pretty 404

Please note the only difference is the capital letter in Acropolis

Azure Storage + Replication

This came into my head last night when uploading a couple of blobs into the cloud.

Since I developed my blob browser, I've found myself using it to transfer files from one machine to another.

For the sake of efficiency I found myself with one remote desktop connection to one machine, and me being on my main machine.  Since this was an update to an existing file that I was transferring, I copied over the existing zip file in the cloud.  I was being particularly lazy, and I just used a public uri to get the file at the other side (rather than using a private uri, and my browser).

The interesting thing is that when I retrieved the file at the remote site, i didn't get the update version of the file, it served me up the previous version. 

At first I thought there was something odd with the replication mechanism, session affinity with the posting machine, now I just think that I had some caching getting in the way, as I can't seem to reproduce what i saw last night.

If I post a file into blob storage services, I should be able to retrieve the file straight away.   This is different to Amazon's model which is that the file might not be there when you attempt to access it (as it hasn't been replicated yet).

To be honest I'm not quite sure how this is achieved in Azure.  I know that data must be replicated at least 3 times.  I don't know if it has to replicate 3 times before a response is given, replicated to all participating machines or whether the replication is completely loosely coupled. (I will try and do some digging).

I guess my point here is that I need to look a bit more into the workings of replication with Azure

Saturday, 27 December 2008

Windows Azure Blob Browser

So I've just released version 0.1 of my Windows Azure Blob Browser / Viewer.

This is a little WPF application that allows you to browse / download blobs residing in Windows Azure Blob storage services.  This works against the current CTP release.

You can download the application from here

This gives the following functionality

  • List Containers
  • Add / Delete Containers
  • View Container Properties
  • List Blobs in Container
  • Add / Delete Blob in container
  • View Blob Properties
  • Download Blob

There is still a bunch of stuff that I want to include in future versions

  • Set content type
  • View / Set Metadata for container / blob

All you need to get started is your Azure Storage account name + Shared Key (this should also work against your dev account)

Tuesday, 23 December 2008

Silverlight: Sky Player has no adaptive streaming

So looking at the Sky Player a little closer, I am very disappointed to see that there is no adaptive streaming solution (like the olympics), but they have opted for the easier solution of offering high, medium, low quality dropdown instead.


Silverlight: + Sky Television

So Sky Television have just launched their own Web Based TV Service developed with Silverlight 2 + PlayReady.

The following channels are available:

  • Sky Sports 1
  • Sky Sports 2
  • MTV
  • Eurosport
  • National Geographic
  • Nickelodeon
  • Nick Jr
  • Disney Channel

No existing Sky Connection / Dish necessary.

Supports up to 1.8Mb, which interestingly enough (if you watch the PDC Olympics and Silverlight session) is the optimal limit they found during Olympics + Democratic National Convention

I'm pretty excited about this as it should increase the Silverlight install base in the UK and it really shows that Silverlight (especially in the UK) is making its name in media.  BBC, Sky + ITV (UK's biggest networks) all have (or about to have) Silverlight based Internet TV Offerings.  Very cool.

I know this has been out for a few weeks now (i'm not the quickest off the mark, but it's still

Check out more about Sky's offering below:

Windows Azure Table Browser

I had this discussion last week and may’be if I have time over Christmas, I might build one.

What would be really cool if someone built a little tool to allow you to browse / view data held in a table in Windows Azure Storage Services.

I don’t think this would take long to build, would be pretty simple and would be incredibly useful.

All the browser would need to do really is take the serialized data, and extract it out to equivalent rows and columns.

Maybe one exists already?  If so, let me know.

Tuesday, 16 December 2008

Silverlight: REST API Microformat

So my question is how about a Microformat for when describing REST API's?

I've been wanting to create lots of cool little Silverlight applications against all the various cool api's that have sprung up over the years (and more frequently recently).  An example list is below.

  • Blogger
  • You Tube
  • MTV
  • Twitter
  • and many many more

All of these API's are REST / Simple HTTP based protocols, not SOAP.

Very quickly, I have got annoyed with the API's as it's been to much of a pain, trying to get a decent client library to work with the API's.  All have different flavors, support different features, not supported any more, lots of assemblies and integration, a real pain.

Even if you do find a decent client library, it might not work with Silverlight and even if it does, you end up with API assembly bloat.

Client Proxies

The big issue as far as I can see it is that decent client proxy generators don't seem to exist.  You either have to download a client library built by the developer / an open source project / build one yourself.

This issue is being tackled in many places trying to simplify the issue

  • WCF REST Starter Kit
  • DSL's (OSLO)
  • C# 4.0 (dynamic)

From my point of view, I really want to just fire visual studio at a url, let it generate me a proxy, and then start working with it.

SOAP Proxies

One of the real advantages of SOAP based web services is that you can do just that, you point Visual Studio at the service and it will generate a nice little proxy with some lovely intellisense and you can work with the service very quickly.

This is great for enterprise / internal projects, not so great for Internet based projects, as REST is generally the chosen way forward.

The reason it's easy to generate a proxy with SOAP is that SOAP based Web Services have a WSDL document that describes the service interface.


So in the Java world, they are trying to push a similar concept to WSDL which is WADL.  The WADL document will describe your service interface (just like WSDL).  I don't personally like WADL and I don't think it will catch on, it doesn't really fit well with REST (in my opinion).  This hasn't seemed to have taken off in the .NET world, and I don't expect it to either.


So why do I think there should be a Microformat for REST / simple http based API's.  Well pretty much of these API companies seem to write lots of html based documentation on  how to use their lovely new api.  Pretty much of all of these companies have pretty much the same sort of descriptions / formats.

Therefore it isn't too much of a pain to use a Microformat within the html.  This would allow me to point Visual Studio straight at the documentation, and have it generate me a proxy, bizarre I know.

This would also allow all the existing api's to support it, with very  little effort, not get in the way of any other service definition standardization etc, etc.

It would also be platform / language agnostic.

I know it seems a little crazy but how long would it take these companies to mark up their existing documents with the Microformat (not very long), you could then use whatever mechanism in your toolset to autogenerate docs.

So this is my crazy idea for the day, feel free to slate it.

The following is a sample address microformat

<div class="adr">
<div class="street-address">665 3rd St.</div>
<div class="extended-address">Suite 207</div>
<span class="locality">San Francisco</span>,
<span class="region">CA</span>
<span class="postal-code">94107</span>
<div class="country-name">U.S.A.</div>

Tha type of format could be easily modified to suit description of services, which ultimately would mean that a human could read it, and Visual Studio could generate a proxy from it.

Query parameters could be marked up with their type, their description.  Base Uri's could be marked up.

Anways, let the slating begin :)

If it seems a reasonable suggestion however, then I think its something that could be done quickly and could work with todays toolsets.

Sunday, 14 December 2008

My Technical Highlights of 2008

So it's coming to the end of the year, and I'm taking the time to reflect, and plan out the year ahead (as much as it can be).

For me technically, it has been a great year.  My highlights have been

  • Presenting at Remix08 UK
  • Presenting at DDD7
  • PDC 2008 (attending, hanging out with friends, interviewing so many cool people)
  • Watching NxtGenUG Cambridge grow to an unbelievable level
  • Advancing my knowledge of SQL Server (I'm not an out and out SQL Developer) to a level that I was happy to present at SQLBits
  • Silverlight Spectrum Emulator on PDC 2008 Show Off
  • Silverlight Assault Course
  • Various gallery entries on (throughout course of year)
  • Meeting so many great people

My new technology highlights have been:

  • Silverlight 2
  • Windows Azure
  • Microsoft Small Basic (I love it)

I really have loved this year in the community, I really hope next year goes half as well.

My favourite sessions of 2008

So in the past year, I have been at various conferences (Remix08, DDD7, SQLBits 2&3, NxtGenUG Fest08), been to various user groups (not as much as I would have liked), and watched many sessions online (Mix08, Channel9).

I thought I'd take the time out to call out the sessions I have enjoyed the most (all for very different reasons) in 2008.

  • The back of the napkin, Dan Roam, Mix08
  • ADO.Net Entity Framework, Mike Taulty, NxtGenUG Cambridge
  • Micropresentations, (especially the Sara Ford one), Remix08 UK
  • Silverlight as a Gaming Platform, Joel Neubeck, Mix08
  • Windows Azure, Cloud Service Development Best Practices, Sriram Krishnan, PDC08
  • Remix08 UK Keynote, Bill Buxton, Remix08 UK
  • Lap around Windows Azure, Steve Marx, PDC08
  • The Expert Panel Thing, Scott Guthrie & Co, Remix08 UK
  • F#, Oliver Sturm, NxtGenUG Fest08
  • Whose session is it anyways, Loads of folk, NxtGenUG Fest08

This list is a made up for very different reaons, a great inspiring presenter, a great session in a particular area of interest, or a session that was just a lot of fun.  I've only included sessions that I have watched in whole (I don't see to many sessions in full at Cambridge)

If you weren't on this list, this is no reflection on you or your session (please note that my all time favourite speaker, Chris Anderson is not on this list).

There is still loads of sessions from Mix08, Remix08 UK, DDD7, SQLBits 3, Channel 9 that I haven't yet watched, may'be this would have changed the list, may'be not.

Saturday, 13 December 2008

Silverlight: PDC Podcast (Part 2)

So when we were across at the PDC myself and John McLoughlin did a bunch of podcast interviews.  We replaced regular hosts Rich & Dave for one week only, we had such a blast and thanks to the guys for letting us guest host.  Also massive thanks to everyone we interviewed.

We've just released the second part of our PDC podcast.  In this interview we talk about Day 3 of the PDC, and we have interviews with:

  • Shawn Burke (Silverlight & WPF Controls Team)
  • Tim Sneath (PDC Keynote Technical Content owner)  &
  • Mike Swanson (PDC Technical Content Owner)

If you missed the first part of the podcast, we interviewed:

  • Daniel Moth
  • Dan Fernandez & Brian Keller
  • Martin Gudgin
  • Chris Anderson
  • Don Box

There is one more PDC podcast to go featuring (will let you know when it is up).

In the meantime go check out other NxtGenUG Podcasts, which include the fabulous series of podcasts at TechEd Europe 2008

Classic ASP.NET

On Tuesday night at NxtGenUG Cambridge, Mel Harbour was doing a nugget on ASP.NET MVC, in which he used the term "Classic ASP.NET".

As someone who quite likes "Classic ASP.NET", and is not a big fan of ASP.NET MVC, I am not convinced by this new terminology.

May I suggest "Traditional ASP.NET", or "Standard ASP.NET" as more acceptable terms :)

Thursday, 11 December 2008

Silverlight: and Google Chrome

So Google Chrome has now been released and it seems to be playing nicely with Silverlight now.

Previously you had to constantly resize your browser to use Silverlight, now seems to be working fine :)

Tuesday, 9 December 2008

Introduction to Windows Azure session in Cambridge

Big thanks to everyone who attended my "Introduction to Windows Azure" session in Cambridge.

As one of co-founders / coordinators of the Cambridge region of NxtGenUG it's always nice to do a session in my home turf, and this is the second year that I have now done the Christmas session.

The slides and demos are now available to download on my skydrive.

Thanks again for coming!

Friday, 5 December 2008

NxtGenUG – Cambridge – Introduction to Windows Azure

I’m doing the same session that I did at DDD7 for NxtGenUG Cambridge (which I run with Allister Frost).

So if you are based in Cambridgeshire, want an introduction to Microsoft’s Cloud Platform, a small nugget on ASP.NET MVC (Mel Harbour from Red-Gate is doing this one), Pizza and Swag, then I’ll see you there.

You can register here.