April – a month in review

BronwenWeeGo.jpgBlogging has been a bit light on this month. As you may have noticed we spent a lot of time travelling this month.  We discovered it takes as long to get from Brisbane to Montreal as it does to get from Montreal to Seattle. So a summary of what we got up to this month.

May should have some exciting things.  We’re speaking at Remix in Sydney and Melbourne so if you’re going and want to catch up drop us a line.

Virtual Earth Birdseye Images come to Australia

johnWeeGo.jpgIts been a long time comming for us down under but today four major cities have been given the Virtual Earth Birdseye treatment. Click on the links to be taken to map.live.com and check them out in detail:

Sydney.jpg

Sydney Opera House, NSW

GoldCoast.jpg

The Gold Coast, Queensland

Hobart.jpg

Hobart, Tasmania

Wollongong.jpg

Wollongong, NSW

If you install the 3D plugin, small download, you can navigate these seemlessly. I’ll follow up with a little video later today to show you how.

Panorama from Olympic National Park – 106 MPixel, DeepZoom Silverlight

johnWeeGo.jpgYesterday I drove Bronwen crazy by trying to perfect a 270degree panarama of a lake about 30min from our lodge.

OlympicNPPan1.jpg

Its 106 MegaPixels when cropped. Best results where using F18 on a tripod but still had focus and whitebalance inconsistancy. I made some full 360 images also but photoshop can’t read the jpeg file – Is 38,500 pixels too wide for CS3?

Looks like I need to do some sort of sampling for the scene and then set it all manually. Thinking about building some sort of automated rig from a tripod, telescope mount and IR led to trigger the camera…

Fri 18 – Snow in the Spring!

BronwenWeeGo.jpgToday we grabbed our hire car…we upgraded to a bigger car to get the Sat Nav and it’s definatly worth it!

Spent the morning in more meetings at Microsoft before heading over to Bellvue to grab John some Bose Noice Cancelling headphones.  While we were there we played with an iPhone.  The interface is pretty slick, screen very crisp etc.  I think the Microsoft Surface is like a giant iPhone.

Also checked out the new 450D camera.  The new screen is VERY sweet and i managed to resist the temptation to buy a new camera body.

Then off to Edmonds for the night before we go to Olympic National Park for the w’end. On the way and even now it’s snowing! I can’t believe it’s snowing in spring.

Here’s a pic of a car we saw outside as we went to grab some food :

seattle 002.jpg

Thu 17 – End of the Summit

BronwenWeeGo.jpgToday was the last day of the summit.  The last session was the locknote with Steve Ballmer. The guy is truly amazing..so much energy! The MVPs got to ask questions/give feedback.  Steve was there writing notes and answering each question. I was honestly impressed with the way he handled the questions and the swag from the crowd.

We popped back out to campus for the afternoon for a couple of extra meetings with people we didn’t get to see at the summit.  These were really positive which leaves you feeling enthused.

Then we caught up with a bunch of the Aussies and Chuck in the bar at the Sheraton.

Overall, the summit was really good.  It was really well organised..buses, accommodation, information etc. Here’s hoping we get to go back next year.

Wed 17 – Access to the company store and some cool movie memorabillia

BronwenWeeGo.jpgOne of the “big things” about going to Microsoft Campus is the chance to visit the company store.  Here you have access to very cheap software/hardware aswell as an array of microsoft branded swag.

We popped in about 5pm on the final day and the store was packed.  Apparantly that was nothing..earlier there were queues out the door, down the stairs and round the building to get in.  So we made use of the opportunity and grabbed a couple of things to take home with us.

Then it was off to the closing party, held in the  Music Museum and Science Fiction Museum right next to the Space Needle was pretty cool.  They had a terminator, r2d2, teddy from ai etc.

Caught up with a few people and met Jamie Thompson who took pics of our mvp attendee map showed in the keynote.

 

Mon 14 Arrive in Seattle – 24 hrs late

BronwenWeeGo.jpgWell we made it onto the flight to Toronto, and 6 hrs later we’re in Seattle.  The best news is our bags have beaten us (probably made the plane they kicked us off of) and we can grab them and jump staight into a cab for our hotel (do a big dance).

We checkin, quick shower (oh how good a shower feels after a day of travel), change of clothes (feels even better to wear clean clothes) and we try to decide to catch the end of the MVP welcome reception.  Registration is closed so its a bit hard to get in without a badge. Eventually we get in, let ppl know we arrived etc.  Good to see some familiar faces.

So we’ve missed day 1, but are so glad to be here. Thanks to our MVP Lead Rose and the summit team for making sure our hotel room didn’t get given away! Also thx to all those who sent msgs of sympathy.

So what’d we miss?

MVP Girlz Meetup – I’d organised an open invite to any MVP ladies that wanted a coffee and to meet some other ladies to have a coffee at starbucks.  I missed my own party..but the show went on and sounds like about 12 ladies showed up.

mvpgirlz.JPG

Keynote – Our visualisation of the MVP attendees on a Virtual Earth map was shown and got a mention in the keynote today. Check it out at: http://mvp.soulclients.com

Virtual Earth 6.1 10min Map

johnWeeGo.jpgThis example comes from Steve Lombardi’s blog post last year and has been updated to the latest version of Virtual Earth at the time of writing. The code and collection was presented at the Museums and the Web conference in Montreal, Canada.

In the space of 10 minutes you can present a custom collection presented on the Virtual Earth platform within your own web site by leveraging http://maps.live.com as your content editor and storage and using the Virtual Earth API. Here we present the simple code to do this and some extra features like a map search, custom numbered icons and an outline text listing with clickable titles.

10minMap3D

To begin, navigate to http://maps.live.com. This is Microsoft’s consumer mapping site built on top of the Virtual Earth API but with many more features. Here you can sign in using live ID and add pushpins, polylines, polygons and even 3D models to a collection. For example add some pushpins of famous landmarks in your area, add textual description, an image and a link to further information. Now save your collection and make it public. Here is an example of some landmarks around Montreal:

http://maps.live.com/?v=2&encType=1&cid=5CB0B41C15FA0196!437

Most of the hard work is now done, you have an interface to create and edit your content and share it with the world via GeoRSS, KML or as a VE collection. We will use the last option for this example. In order to access the VE collection you have made we need the collection ID, I find the easiest way to retrieve this is from the Actions -> Send to -> email in the collections panel. The link provided in the email contains the collection ID we will need it will look something like this (Note the exclamation point and following digits are part of the ID):

http://maps.live.com/?v=2&encType=1&cid=5CB0B41C15FA0196!437

The Virtual Earth API is a JavaScript file, hosted by Microsoft. In order to be compatible with many of its features you must set your page doctype to XHTML and use UTF8 encoding. The following shows a complete HTML page, the import of our collection, creation of a text outline listing, custom icons and a custom location search. The important concept here is the asynchronous nature of this technology, you must hook into events that fire when actions complete. The sequence we will follow here is:

  1. Page Body loads -> load the map
  2. Map Loads -> load the collection
  3. Collection Loads -> change the icons and make the text outline with links

 

<!--Set the doctype to be XHTML-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>The 10 Minute Map</title>
    <!--Set the Character set to UTF8 -->
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--Add your style sheet to make it look pretty-->
    <link type="text/css" rel="stylesheet" href="styles.css" />
    <!--Include the latest Virtual Earth Control-->
    <script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1"></script>
    <script type="text/javascript">
        //Global varible for our map object
        var map = null;
        
        //Once the Page (DOM) has completly loaded we can create our map
        function Page_Load()
        {    
            //First we create our object passing the ID of the Div for our map
            map = new VEMap('mymapdiv');
            //Next we set the function to execute once the map has loaded
            map.onLoadMap = fnLoadCollection;
            //Now we load the map
            map.LoadMap();
        }
        
        //When the map has loaded we can load our collection
        function fnLoadCollection()
        {    
            //set a loading label
            document.getElementById('outline').innerHTML = "<b>Loading Collection...</b>";

            //import our layer
            //First we create a new layer
            var layer = new VEShapeLayer();
            //Then add this new blank layer to the map
            map.AddShapeLayer(layer);
            //Then we create a ShapeSourceSpecification, here we use a VECollection, pass its ID and our new layer.
            var veLayerSpec = new VEShapeSourceSpecification (VEDataType.VECollection, "5CB0B41C15FA0196!437", layer);
            //finally we call the import method, when it is finished we can access the data, we also set the map to show the best fit
            map.ImportShapeLayerData(veLayerSpec, fnLayerLoaded, true);                
        }
        
        //When our collection layer has loaded we can access its data
        function fnLayerLoaded(layer)
        {
            //build up a HTML string to give a text outline of all the items
            var outline = "";
            //how many items are in our collection?
            var totalShapes = layer.GetShapeCount();
            //loop through them all building our HTML and changing to a custom Icon based on their index
            for (var cnt=0;cnt < totalShapes; cnt++) {
                //get the actual shape object by its index
                var shape = layer.GetShapeByIndex(cnt);
                //create some HTML
                var lnk = "<a href='#' onclick='javascript:map.SetCenterAndZoom(new VELatLong(" + 
                    shape.GetPoints()[0].Latitude + "," + 
                    shape.GetPoints()[0].Longitude + "),16);'>";
                outline = outline + "<b>" + lnk + (cnt+1) + ". " + 
                    shape.GetTitle() + "</a></b><br><img src='" +
                    shape.GetPhotoURL() + "' style='width:200px' /><br />" +
                    shape.GetDescription() +  "<br><br>";
                //Update each Pushpins Icon to be a numbered circle.
                shape.SetCustomIcon("http://dev.virtualearth.net/legacyService/i/bin/1.3.1204222815.33/pins/RedCircle" + (cnt+1) + ".gif");
            }
            //set our outline text        
            document.getElementById('outline').innerHTML = outline;
        }

        //A simple event to trigger a map search
        function SearchClick() {
            //here we search for a location (where) so the first parameter (what) is null.
            map.Find(null, document.getElementById('txtFind').value);
        }
        
        //When the page unloads we dispose the map object to free up memory
        function Page_Unload()
        {    
            if (map) {map.Dispose();}
        }        
        
        //set page event handlers
        if (window.attachEvent) {
            window.attachEvent("onload", Page_Load);
            window.attachEvent("onunload", Page_Unload);
        } else {
            window.addEventListener("DOMContentLoaded", Page_Load, false);
            window.addEventListener("unload", Page_Unload, false);
        }        
    </script>
</head>

<body>
    <div class="title">The 10 Minute Map</div>
    <div>
        <input id="txtFind" type="text" name="Find" size="30"/> 
        <input id="btnSearch" type="button" value="Find Place" name="Search" onclick="return SearchClick()"/>
    </div>
    <div id="mymapdiv" style="height:500px;width:600px;overflow:hidden;position:relative"></div>
    <div id="outline"></div>
</body>
</html>

In your application move all the JavaScript code into another file, this will keep it tidy, maintainable and allow browsers to cache it on future requests.

See the final page in action here:

http://www.soulsolutions.com.au/legacyimages/10minmap/10minutemap61.htm

Mon 14 – Groundhog day – back to Toronto

BronwenWeeGo.jpgAfter the nightmare of yesterday..this is how we’re fairing…we got up really early and headed over to Air Canada to try and get out of Chicago. We were prepared to split up if it meant at least one of us made it to Seattle for the summit.  The news was not good.  They couldn’t get us out through any city on any airline that would get us there any time soon.  So they’ve sent us back to toronto and then seattle.  Only problem being is we won’t hit seattle till 7:30pm tonight…we miss the first day of the summit.

So we’ve jumped on the 7am flight from Chicago to Toronto, another completely full flight..we’re rows apart on the plane, and 22hrs later we’ve made it from Montreal to Toronto.  It’s so groundhog day here..back on the same sort of plane,  same security checkpoints.  This time we’ve got 7hrs till our flight (same flight number and everything).  So we’re in basically the same clothes with about 1 1/2 hours sleep and may or may not ever see our bags again.

So in the end we left montreal at 12pm on the 13th and will hopefully arrive in seattle at 7:30pm  14th, via Toronto, Chicago, Toronto, Seattle.  Will post again when we get to Seattle and have a hotel and internet.

Sun 13 – Air Canada strands us in Chicago

BronwenWeeGo.jpgSo after a long day of running around in circles we’re completely stranded in Chicago, with no way to get to Seattle for the Summit tomorrow.  So now you’ve got the headline you can choose whether or not to hear the day’s saga.

This morning I work up early..couldn’t sleep and packed up our things ready for our flight from Montreal, through Toronto to Seattle.  Wandered downstairs, checked out and had a nice breakfast in the restaurant to notice it snowing outside! So we mosied over to the Montreal airport as we were way early for our 3pm flight.  We checked in to both our Montreal and Toronto flights (boarding passes and all).  Must be a full flight on the Toronto to Seattle leg as we aren’t seated together.

We find our gate and chill for a few hours till our flight leaves. We leave on time and arrive on time in Toronto.  Here we have to go through US customs, quantine and pick up our bags and put on the conveyor to our next flight.  As usual, I get picked out for the “not so random screening” and they swab my camera bag.  I swear they regret picking on me everytime when they work out how many compartments the lowepro bag has.

So we finally get downstairs where we can look up which gate to go to as we’ve got 20 mins till the flight leaves.  We rock up at the gate as the last passengers are going through. 

Us: “We’re here to board the flight to Seattle”
Air Canada lady: (with a perplexed look) “We’re done, everyone’s on the plane and accounted for”
Us: “sorry? we have boarding passes and our bags have been checked through”

Still not convinced she assures us they have no record of us on the flight..looks us up and says we’ve be shifted to tomorrow’s flight.  Not impressed, we need to get in tonight so we’re there for the start of the MVP summit.

Air Canada lady: “The plane is completely full, let me see what i can do…..I can put you on a flight to Seattle through Chicago with United”
US: “Yes please”.

We get our boarding pass to chicago and a Flight Interuption manifest for United Airlines that we are to exchange for a boarding pass when we get there.

So we jump on the 6pm flight to Chicago, thinking we may never see our luggage again.

1/2 way throught the flight to Chicago, the steward gives us a message that the United flight is full but we now have seats on an Americal Airlines flight and to check at the service desk when we land.

We land, go see the lady at the desk who knows nothing about the American airlines flight and confirms we have “reservations” on the United flight and sends us off on a bus.

We go across the airport to the united flight, where the United guy says we don’t have a reservation on his system, and the flight is full and suggests we go back to Air Canada.  So back on the bus only to find the lady isn’t there any longer.  So they send us back out through security to the front desk who insists that we should have gotten an American Airlines ticket..they write us up a ticket, give us a special bit of paper to go through the express queue and instruct us to run as by now the plane is leaving in 8 minutes.  So we go back through security and bolt through the airport without shoes..it’s such a long way too.  We get to the gate where the guy almosts laughs when we say we’ve got tickets.  He puts us on the wait list..the plane boards and we dip out…so he tells us we’re not his problem and go back to Air Canada.

So we go all the way back only to find the all the desks are empty.  We go down to baggage claim to find they closed 20 mins earlier.  So it’s now 9pm, the airport is pretty much empty, we have no plane, and nowhere to stay.  So we call Air Canada..they say they can’t do anything and to try and find some ground staff..so we try to go back in again..security won’t let us through.

So we go to the nearest Hilton..just through a tunnel from the airport..stand in line and hope for a room.  They have a room – $300/night.  They don’t provide toothbrushes etc. so we go to the gift shop to get some toothpaste, toothbrush and a couple of tshirts.

So after about 4 hours of to and fro (and about $100 in calls) noone can help us..best bet is to turn up early and see if we can get on a flight out. We check online and everything outta Chicago is full..tried LAX, SFO, Portland etc..nothing available. 

So after lots of conversations it “appears” that Air Canada oversold our flight and just kicked us off cause they could. Then when they try to use these share code things with other airlines it lets them buy tickets that don’t exist i.e. all the airlines just oversell all their flights.  So when we rock up, they stick you on standby and all their paying passengers get dibs over you. Air Canada doesn’t do internal flights in the US, so to get to Seattle we’ve gotta either get on another airline with one of these share codes or go back through canada.

I’m really (insert lots of emotional words) they can kick  you off a connecting flight when you already have a boarding pass and you’re not running late. No-one seems to care either…it must happen ALL the time.  A lady behind us in a queue was waitlisted on 3 different flights to seattle.

So here’s hoping we can get out of this city tomorrow and make it to Seattle eventually and don’t lose our hotel we were supposed to check into.  So who knows where our luggage is and when we’ll see it again 🙁

Sat 12 April – Photo tour Montreal

BronwenWeeGo.jpgToday I battled the cold and did a photo walking tour.  Essentially, you wander around with a photographer and take photos. It was interesting, mainly because I took photos that I would never have thought to take before.

It was sooooo cold.  At points i couldn’t feel my fingers and i was wearing gloves.  Below are a few of the pics i took..bit different to my usual happy snaps.

montreal tour 2.jpgmontreal tour 1.jpg

montreal tour 3.jpg

montreal tour 4.jpgmontreal tour 5.jpg

thu 10 / fri 11 – time to catch up on some sleep

BronwenWeeGo.jpgHad the day to myself on thrusday as John was at the conference. Had every intention to do something…then the room got ridiculously cold, so I decided I was too much of a wuss to bear the cold by myself and caught up on some sleep.

Friday was much the same…I didn’t get to sleep till 7am, and John was really tired and fast asleep so I read for awhile and had a bit of a snooze.  Slack I know, but feel much better after sleep.

We went to the conference closing dinner tonight, and got a little disoriented on the way back to the hotel.  We had to stop at a coffee shop and get some hot chocolate to thore out a bit half way back. It’s freezing here tonight, and raining lightly.  I couldn’t feel my ears or lips for awhile after we got back to the hotel and then when I could, they were really sore 🙁

Hoping the weather is better tomorrow as I’m doing a walking photography tour…fingers need to be able to work the buttons on my camera 🙂

The great news from today, was the Prints and Printmaking site John has been working over a few years won the research category in Museum and Web 2008 Best of the Web Awards.

 

Wed 9 – Virtual Earth Workshop and Museums and Web

BronwenWeeGo.jpgToday was the start of the Museums and Web Conference.  So we wandered down to the Hilton to host a half day workshop on Virtual Earth. I think we could easily have made it a full day workshop as we were pressed for time.  We had a nice, small group who chatted through their break which I think shows they were interested in the topic.

museum and web workshop.jpg

Last part of the workshop we set them on their group activities, and I think they really enjoyed discussing ideas with each other and then presenting back to the group.  We let them pick their own topic and provided a few ideas and funnily enough, all groups came back with very similar concepts and had some interesting ideas on how to implement them.

I think the session went well and it was really good to see the high level of interest in using the mapping solutions to enhance different collections.

As you may notice from our blog..we also got some internet connection today! The hotel we’re staying in: Days Inn Downtown has free high speed internet (my main reason for booking this hotel) but we were close to the elevator and just couldn’t get a good connection.  The staff were really nice and we shifted rooms and tada..we have internet.

Tue 8 – A little walk up a bump

BronwenWeeGo.jpgToday we set off to walk up Mount Royal which the locals seem to call a bump.  It gives a great view of the city so we took some panorama shots and some zoomed in versions and will put up a deep zoom example of it.

There were a few squirrels around and boy are they really hard to photograph! The move so fast!

mt royal 1.jpg

It was pretty cold and ready to rain so we were on the lookout for a short cut down the mountain. Problem being everything was covered in snow, so attempts meant sinking in snow or slipping on ice. Lucky it was just a small shower so we didn’t get wet.

On the way to the moutain we passed an IGA … me half joking says “wonder if it’s a supermarket” .. thinking it’d actually be a bank or something but turned out to be a food store afterall.  Always nice to find familiar brands around the place.

Mon 7 – Tourist time in Montreal

BronwenWeeGo.jpgToday we did the tourist thing and checked out a few places.  Our first adventure was to catch the Metro to Olympic Stadium.  So we paid our money and went up the inclining tower to check out the awesome view over the city of Montreal.

montreal olympic 2.jpg

montreal olympic 1.jpg

 

The Metro is pretty cool, you pay a single price to go anywhere on the lines, so when I asked for a return ticket I got a really weird look from the ticket guy.

All the sidewalks etc. are covered in snow..which I find really strange as it’s Spring and I’m not used to seeing snow.  Apparantly they’ve had a really long winter, 40cm off the all time record of snow fall.

The we jump on the Metro out to the biosphere which is a cool structure.

montreal biosphere.jpg

After that jet lag kicked in, so we needed a snooze before going out to dinner.

I went to my first Girl Geek Dinner and was the “guest speaker”. Was a great night and met lots of interesting people..I’ll write another blog post about this a bit later when there’s some pics available.

Everyone is bi-lingual..which is really good cause my French is so bad..

Sun 6 – Off to Montreal

BronwenWeeGo.jpgBit of a delayed post..but we haven’t had internet connection…

We got up nice and early to set off on our long journey to Montreal.  The plane to LA had about 40 seats free but we didn’t get a spare seat in our row 🙁 We took off about 1/2 hour late and so the line through customs in the US was quite long.

Both of our bags made it to LAX yay..then we got to put them in the random bag queue and hope they make it to the next stop.

After finding power and a few hours in LAX if was off to Montreal.  I was surprised at the amount of snow on the ground as we flew into the airport in Montreal!

Both our bags had made it to Montreal (do a little dance).  Then off to the hotel to crash hard..amazing how good a shower can feel after a long journey.

Fixing “…not currently configured for integrated source control in Visual Studio” in VS2008

BronwenWeeGo.jpgHad one of those “moments” this morning where I opened up myVS2008 tfs project only to get the following message:

The solution you have opened is under source control but not currently configured for integrated source control in Visual Studio. Would you like to bind this solution to source control now?

I hit OK..try hitting the Bind button..nothing! So first thing’s first…i went and copied all my hard work to somewhere else “just incase”.

Turns out somehow, I manged to mark the server offline..and the message is a bug in VS2008 when you open Source Control Explorer when the server is marked offline.

The FIX: Mark the server ONLINE by taking the solution ONLINE.  There’s a Go Online button in Solution Explorer..either click the Go Online button or right-click in the menu.

So i’m now back online…can you hear the big sigh of relief 🙂

VE workshop and a conference paper in Montreal

BronwenWeeGo.jpgWe’re heading off to Montreal this weekend, to attend the Museums and Web Conference.  John has been going for a few years now, usually presenting on content managment, but this year he’s presenting a paper: Using the Microsoft Virtual Earth API to provide Geographical Access to Cultural Heritage and doing a half day workshop: Exploring the National Gallery of Australia online database for prints and printmaking spatially.  So I’m going along to help him out a bit with the workshop. I’ve armed myself with art paper and texters to keep the crowd amused and bring out some creative talent in our group activity.

Workshop Details:

Exploring the National Gallery of Australia online database for prints and printmaking spatially  

Online mapping is hot. The interface of maps provides an engaging mechanism to explore objects spatially, that is, view an object at its location on the earth. This paper explores the practical use of online mapping technologies at to provide an intuitive and engaging experience for the exploration of extensive collections at low cost to the institution. The National Gallery of Australia provides an online database for prints and printmaking in the Australian region – www.printsandprintmaking.gov.au.

 

 

 

What a year! My MVP has been renewed.

johnWeeGo.jpgIt has gone in a blur but it was exactly one year ago I was awarded an MVP for my community service to Windows Live Developers. Always fun to be awarded on April Fools Day. The name has changed, I’m now a Windows Live Platform MVP.

Since then we have had several releases of Virtual Earth (and PetaBytes of new data), a VE exam released, QuickApps with sample code to learn from, ASP.NET 3.5 controls and many a name change. 

I kept busy building the http://viawindowslive.com community site that so many of you have now contributed to with fellow MVP Bronwen Zande. We presented at various events in Australia, recently we travelled around Australia presenting 9 session on Virtual Earth and SQL 2008 Spatial. I took on the role of Moderator for the VE forums marking hundreds of posts as answered and clearing a few issues up here and there. Also there was a great community project to provide intellisence for Virtual Earth, I helped as much as I could. I’ve enjoyed helping people, meeting people and hearing your ideas and feedback.

Of coarse my year has had negatives as well. I’ve learnt an important lesson that there are people out there that like to exploit hard working developers for their personal gain, taking credit for other peoples work and adding no value themselves. It is a real shame.

So what lies ahead of us this year? Silverlight2 is going to play a huge part for many of us. Those that have come to know me will understand that I like new technology and visualisations of large data sets is a great challenge. With the news of a Silverlight version of Virtual Earth at Mix and tantalising deep zoom examples I hope to be sharing with all of you some very cool code this year. Will we see Photosynth this year? Will we have Silverlight Live controls? Will MSFT acquire Yahoo? A busy year it is sure to be.

Big thanks to Rose and the MVP team, it is a great program.