DigiGirlz, Deep Zoom and Azure

April 7, 2010

A few weeks ago I was tasked with coming up with something for the attendees at the first ever DigiGirlz event in Australia to play with. Something to get them a little excited about technology. Catherine Eibner came to me with some ideas that she thought would make for a compelling exercise and we came up with a cool Azure based Deep Zoom app!

We decided to take the Eventr (Codeplex | Blog | Blog) open source project I worked on last year for ReMIX Australia 09 and make it more accessible and dynamic (and brand it a little for the event).

What came out the other side was a dynamic Azure based DeepZoom creation application with auto updating Silverlight front end!

What does it do?

Firstly, check out the running application here!.

The Silverlight application shows a DeepZoom composition of all the photos that were taken at the DigiGirlz event.

The photos were all added to a Flickr Group which the Eventr application automatically scans. When new photos are added, the photos are downloaded in to Azure and processed in to a new DeepZoom composition.

The Silverlight client is notified that new images are available – it then highlights the new images and automatically reloads the DeepZoom composition from the server.

The system is configurable to scan a Flickr Group, perform a Flickr full text search or perform a Flickr tag search (or a combination of these).

The system has been designed to be “multi-tenanted” which means it can host more than one group of images… I.e. it could do DigiGirlz and another collection – all the images would be separated depending on the URL entered.

How does it work?

The application is hosted in Windows Azure and utilises a lot of what Azure has to offer.

  • It uses a WebRole to host the Silverlight application and services (which read from the DataBase).
  • All data is stored in a SQL Azure database. The data stored includes information about which images have been downloaded from Flickr, their metadata (title, description etc.) and their processed state (have they been included in the DeepZoom composition yet?).
  • Linq to SQL is used to access the SQL Azure database. You can access SQL Azure in the exact same way that you would access a normal SQL database. In fact when in development mode (local) I used SQL Express, and during deployment I changed my config to point to a SQL Azure instance… too easy.
  • WCF RIA Services was used to communicate from Silverlight to the server (where Linq to SQL is used to then go up to SQL Azure). The Silverlight client is very easily then able to get the metadata (title, description) from the database, as well as send data back (like view counts etc). All in all, it was a very simple task to get data from SQL Azure into Silverlight.
  • Azure Blob Storage is used to store the generated DeepZoom files. Blob storage is great because you can access the files directly using a URL, as well as get programmatic access to them to CRUD(create read update and delete) them.
  • To fire commands based on events from the user, the system uses Azure Queue Storage. Queues allow you to add an item in one place, and read it in another (only one thing can read an item)… so it’s great to fire a command once, and pick it up once to execute it. An example command in this system is “Clear”. Admins can clear out all the images/collections and data and start again.
  • To build the Deep Zoom collection, the system utilises an Azure Worker Role. The worker role polls the database every few seconds to get out the Flickr search configuration (i.e. which group or text search to scan). It then performs this search against Flickr. New images are downloaded and added to the SQL Azure database for later processing.
  • When the Azure Worker Role downloads an image, it is stored in a Windows Azure Drive. Once stored, it is processed using DeepZoomTools (a part of Deep Zoom Composer.

    Windows Azure Drive is important as DeepZoomComposer doesn’t work with streams (which is how Azure Blobs work)… it needs a drive letter. Azure Drive is great as it provides drive letter access to a special type of blob storage – meaning it will work in Azure!

    Once the composition has been built it is uploaded to Azure Blob storage for access from Silverlight (you cannot access Azure Drive files from outside the Windows Azure hosting platform – they are a special type of storage).

  • Can I test it out??

    Unfortunately at this stage I cannot release the code for this stuff, but – you can have a go at using this project yourself…

    Head over to the test Flickr group here. Add a photo the the group (KEEP IT CLEAN PLEASE!!).

    Then head over to the test URL and keep watching… your new images will show up in no time (under 2 mins)!

    Resources

    Azure Team Blog: http://blogs.msdn.com/windowsazure/
    Azure Storage Intro: http://msdn.microsoft.com/en-us/azure/cc994380.aspx
    SQL Azure Overview: http://www.microsoft.com/windowsazure/sqlazure/
    Windows Azure Overview: http://www.microsoft.com/windowsazure/windowsazure/
    WCF RIA Services Overview: http://www.silverlight.net/getstarted/riaservices/
    Get Started with Silverlight: http://www.silverlight.net/getstarted/
    Eventr DigiGirlz Demo: http://jak.cloudapp.net/Default.aspx?guid=764fbcd0-c15f-45f3-bda5-de3ed9081ce8

    Eventr Codeplex project: http://eventr.clodeplex.com


SDDN Tonight in Sydney

April 6, 2010

From Chris Anderson

“Just a reminder that the Sydney SDDN meeting is tonight at 6pm (for 6:30). If you haven’t done so, please register on the Facebook event here: SDDN Sydney on Facebook so we can order enough pizza. I’ll give a bit of a rundown of the outcomes from MIX10, and Jose will talk about developing for Windows Phone 7 (or the Zune Phone as I prefer to call it).

Oh, and bring your external HD / USB keys / laptops / (trying to think of something suitably silly for this entry, but got nothing at this time of night), as thanks to Justin King who consumed great slabs of bandwidth to download all the MIX10 videos (16GB worth apparently, so come prepared) will have them all available for download off an external HD. If Justin doesn’t make it then we have a backup of Ewen Wallace (aka @CADbloke) who has already grabbed them from Justin and will also bring them on an external HD. There is a ton of great content there, and is is your best chance to get them if you haven’t got them already and want to reserve your bandwidth for other potentially less reputable purposes.

And hey, if none of that got your attention, there’s free pizza! See you then!

Chris Anderson
Resident Sydney SDDN Rambler”


Silverlight Code Camp 30/31 Jan 2010 – Melbourne

November 24, 2009

The first Silverlight Code Camp is being held in Melbourne on the weekend of Jan 30 and 31 2010 in Melbourne!

Split in to two distinct tracks, Beginner and Advanced there will be something for everyone. Each track will contain 10 sessions split over the two days, for a massive total of 20 unique sessions all based on Silverlight!

For more information see http://sddn.org.au/news/silverlight-code-camp-30-31-jan-2010-melbourne/

See you there!


Tech.Ed 2009 – Gold Coast and Auckland

September 1, 2009

Well it’s that time of year again when we get the chance to hang out with like minded geeks in conference mode!

I was very lucky this year to be selected to present a couple of break out session in both Gold Coast and Auckland – WOOT!

My sessions are:

Australia

ARC401 Architectural considerations for creating Silverlight Applications
Thu 9/10 | 17:00-18:15 | Arena 1B

This session has actually been dropped to level 300 now, but it’s still awesome :)

- and –

WEB309 Going deeper in Silverlight 3
Fri 9/11 | 13:45-15:00 | Meeting Room 5

New Zealand

ARC301 Architectural considerations for creating Silverlight Applications
Tue 9/15 | 14:20-15:35 | New Zealand Room 2

- and –

WUX301 Going Deeper in Silverlight 3
Wed 9/16 | 9:00-10:15 | Ballroom 2

Also cool is that we are holding a special lunch for Silverlight geeks on Wednesday (Gold Coast) from 12:45 – 1:45 in Meeting Room 6. You can add it to your session planners via session code BOF001. The topic: “Smash lunch -> talk Silverlight. Join moi and other members of the local community for an hour of Silverlight discussion. You drive – no slides welcome.”

Come along to the lunch so we can all identify each other as Silverlight geeks throughout the conference!

Last year was my first taste of Tech.Ed and boy I didn’t know what I was missing! Suffice it to say I’m looking forward very much to Tech.Ed this year – perhaps ever have a beer or two here or there :)

Make sure you come and say hello!


Artists in Residence Down Under

December 8, 2008

Last week Microsoft ran the first Artists in Residence program outside of Redmond. Seven designer and developer pairs from various companies gathered at the Microsoft offices in Melbourne to learn to use Silverlight and related tools like Expression Blend and Visual Studio. Importantly there was also a large focus on designer developer workflows that Silverlight offers in spades.

Microsoft was nice enough ask me to help out and boy did I have fun! With me were Shane Morris and Michael Kordahi – there’s always action going on when you get these two in the same room.

The training was structured differently from a usual boring old course – we kicked off with a day and half of lab based work. Each attendee received a copy of the course material including labs and sample projects, links and a cheat sheet. Each of the labs where stepped through on the big screen by the instructor (that would be me). This was a great way to process the large amount of work and we had some fun with it – I am the worst for getting bored in a course and there was no way in hell that was going to happen on my watch.

Once the attendees had been blasted with a day and a half of hard core Silverlight training they where given half a day to come up with an idea to work on for the rest of the week… during this time they where asked to produce a wire frame and prototype. They then presented their fledgling projects to the group.

The presentations where fantastic and got the group really engaged – the ideas where really flowing now. Ideas, techniques, tool kits and discoveries where shared for all to see. Some groups even altered their plans based on what they saw (e.g. integrating the Silverlight Toolkit and other things).

For the rest of the week they would work on their own projects with the three of us lurking around in the background to provide guidance as needed. I ran a couple of deep dive session on topics like binding, Model-View-ViewModel and some Dependency Injection. A couple of the groups actually went down the path of M-V-VM which was really cool!

On the final day the groups where shepherded in to the meeting room to present their final work. A couple of beers where consumed as the last minute changes where made.

As the presentations where being made I was hit with a huge sense of pride… earlier in the week these guys didn’t know a thing about Silverlight and now they had made some awesome projects! A testament to the Silverlight platform and tools probably more so than my training excellence :)

After all said and done some of the feedback from the attendees was that they didn’t realise just what Silverlight had going for it. Before enlightenment it was just another way to make “Flash like content”. However this view dramatically changed once they saw that Silverlight is far more than just another Flash competitor… it’s designer/developer work flows are far superior to anything else available at this time – the attendees where rather impressed with the separation of concerns and clear cut work flows which was great to see. This was evidenced by the projects they where able to produce in under a week (from scratch, with no prior Silverlight knowledge!!!).

I’d like to finish up by sending out a huge thanks to the attendees and also to Shane and Michael – together we all made the week rock!

John and Bronwen from Soul Solutions have a great writeup and some fantastic imagery from the week (including a great DeepZoom composition). http://www.soulsolutions.com.au/Blog/tabid/73/EntryID/537/Default.aspx.

Cheers!


Introducing the Silverlight Designer and Developer Network

October 20, 2008

It gives me great pleasure to announce the Silverlight Designer and Developer Network, a new community group in Melbourne for Silverlight designers and developers alike!

Lets meet!

The group’s first meeting is on Thursday November 27 at 5:30 PM for a 6:00 PM start. The venue is Microsoft Theatre, Level 5, 4 Freshwater Place, Southbank.

We have some great speakers lined up for you: Shane Morris from Microsoft and Jonas Follesø from Capgemini. These guys have tons of experience in Silverlight and have presented many times on the subject, including fantastic talks at TechEd.

To register interest head over to http://www.sddn.org.au. Registering your interest helps us organise the meetings!

Who will this group interest?

The focus of the group is not just on developers. Traditionally developers have had great community support, whereas designers not so much… now that Silverlight 2 is out we plan to change this.

Silverlight is as interesting for developers as it is for designers. Due in part to Silverlight’s excellent separation of design and development concerns we have new problems to solve around finding the best ways to work together.

To this end the SDDN will facilitate an ongoing discussion and promote the development of ideas and best practices for anyone who works with Silverlight.

Meetings will also include specialist topics targeted at designers or developers at a range of levels.

It’s got something for everyone :)

The Site

A big part of the group is the site, which will include all sorts of goodies once we launch it later in the year, including blog syndication and more importantly all the presentations will be available for download! Stay tuned for more updates at a later stage.

And.. please note that the current site is just a temporary site!


Follow

Get every new post delivered to your Inbox.

Join 32 other followers