« September 2008 | Main | November 2008 »

October 2008

Thursday, October 30, 2008

PDC is not all work and no play

photo (3) Even though the days are pretty long, and there’s a lot of sessions squeezed in and new information to absorb, there’s still some time to see a bit of LA.

Last night we made it to the rooftop of The Standard, where there was a Halloween party going on. Great place, great mood, great view, great drinks. I didn’t bring my camera, therefore all you get is a blurry mobile photo. Lots of funky costumes and I have to say that the view of the skyscrapers of downtown LA was really stunning.

Though, being geeks, we ended up talking a bit about Azure, Silverlight and stuff like that...

 

 

 

 

 

 

image The night before we went to the attendee party at Universal Studios, where they also had a Halloween-thing going on. Even though I’ve been to Universal Studios a couple of time (it’s the standard attendee party venue at TechEd and PDC) the Halloween stuff made it more fun than I expected.

They had a special Halloween show, “Bill & Ted’s Excellent Halloween Adventure”, and since I expected it to be rather stupid it ended up being quite entertaining. Definitely aimed at a mature audience, and it poked a lot of fun at celebrities and movie characters. Highlights included Sarah Palin showing her best side (pictured on the right) and Indiana Jones saying “Skanks. Why does it always have to be skanks?” in reference to the girls from Sex in the City entering the stage.

My cloud experience during the Ray Ozzie PDC Keynote

image A lot of people have already blogged about the keynote and commented on the applications shown, so I won’t go into that, apart from saying that I really believe in the model, but I wish they’d found better examples to illustrate it. However, the technology looks fantastic and I’m a big believer in cloud computing. But that’s not the topic of this post. I’ll post more about that later.

Anyway, I was having my own pretty good cloud experience during the keynote, but not on Microsoft Azure. For a while now we’ve been trying to figure out how we want to host our new Sproodle SaaS offering. We’ve been looking into different options ranging from hosting it ourselves (not a good idea) to hosting it as an application somewhere (now we’re getting into Azure-territory, but more on that in another post). One option we’ve explored is using one of several hosting companies that offer you virtual machines in their own hardware, thus saving you from having to invest in that yourself. One such company is Amazon, with their Elastic Compute Cloud (EC2) service. They recently started offering Windows-based virtual machines, which certainly is very interesting.

Amazon Web ServicesOn Sunday we decided we’d try to deploy our Sproodle product into EC2. We were all fired up and ready to go, but unfortunately our plan was foiled because the hotel bar didn’t have a wireless network. It’s kind of hard to put something up in the cloud without a network connection…

So, on Monday, before and during the Ray Ozzie keynote, I set up an EC2 account, created a Windows Server 2003 virtual machine with SQL Server, and deployed our application to it. Creating this machine in the cloud and getting our software up and running on it took 2,5 hours. Getting the Windows Server 2003 virtual box up and running took about 30 minutes. The reason deploying the software took 2 hours had more to do with having to mess around with some nasty config file insanity than with Amazon. Although having to copy files over a remote desktop connection is not exactly the fastest thing in the world. I should have set up some other deployment method, but since this was more of a trial than a real world deployment I decided not to bother with it.

To summarize I think it’s pretty cool to be able to set up a hosted virtual machine complete with our application in less than three hours. EC2 is a pretty cool service, very much oriented around pay-as-you-go (they charge for how long you have your machine running and for how much data you transfer).

Later you’ll find out how long it took us to deploy Sproodle on Microsoft Azure. Yes, we did it already :).

Sunday, October 26, 2008

Going to Microsoft PDC in Los Angeles

IMG_5141I’m on my way to PDC 2008 in Los Angeles, where I’ll be for the next week. Hopefully I’ll get a couple of blog posts together about it, and maybe even install Windows 7. The best before-date for my Vista has expired quite a while ago, and it’s been due for reinstallation for a few months already. Maybe it’s all that version 7-talk that’s gone and made it all insecure and everything. Right now it’s a very sad little computer.

Anyway, what’s not sad is our little three-person travel party. Pictured on the right is Mr. Johnny D., clearly looking forward to the trip. Mikael unfortunately doesn’t have a blog, so he will remain un-linked to.

IMG_5147 So far on this trip we’ve found that media players have really changed the dynamics of air travel, particularly the inter-continental, boring kind of air travel. As it turns out, we’re all decked out with iPhones, and we’ve all loaded up with a bunch of stuff to watch. Together with an iGO charger (eats 2 AA batteries) It sure beats the in-flight “entertainment” system. We used to all bring our laptops along to watch stuff on, but with battery times unfortunately still not being all it should be (at least we don’t have the fancy new Dells or HP:s or even Macs with close to a whole day of battery time), recharging an iPhone/iPod sure works well.

One problem that still needs solving is how to arrange a comfortable viewing environment. What you can do, and what I did, was use an ugly iPhone protection cover made of silicone or some other rubbery material, which in turn gives the case more friction and you can prop it up quite nicely on the cup-holder part of your tray.

IMG_5149 Or, you can do what Mikael (the eternal fixer/tinkerer) did, and make one yourself out of one of the complimentary vomit bags. Granted, the concept still needs some work, but there’s clearly some potential there. Maybe it could be sold as some kind of origami instruction set and packaged as an app on the iPhone app store?

On another note, this week I’ve had some problems with Silverlight 2.0 RTW and my Tablet PC (Silverlight apps crash in certain conditions), which has prevented me from posting at least one more sample relating to my DevDay-presentation. I hope to have that sorted out shortly, and the sample up immediately afterwards.

Sunday, October 19, 2008

Silverlight navigation patterns – what do users expect?

image During my presentation at Microsoft DevDay a few days ago I promised to share the code I was showing there. Here’s the first set, with more to follow (maybe in a few days, depending on my schedule).

During the presentation I was talking about how users do not care about what technology was used for making the application (obviously), and instead they just expect the application to behave like other similar or related applications. So, to a user, a Silverlight application is just like any other web application because they use a browser to access it. If the technology itself has certain limitations that is of no interest to the user.

Because Silverlight is heavily sandboxed you can only get access to some of the things going on in the browser, and the back- and forward-buttons (and history management) is not among those. Still, being able to use the back- and forward-buttons is something users expect to be able to do. There’s different ways to solve this, but many of them end up being either browser-specific in one way or the other. However, a month or so ago I came across a post by Jordan Knight that shows an implementation based on features introduced in ASP.NET as part of .NET 3.5 SP1. The code I showed in my presentation was more or less directly influenced/copied from his approach, so all the credit for this approach belongs to him.

image For the DevDay-presentation I made a simple sample application, pictured on the right. There are three buttons, with which the user moves to different parts (modules) of the application.

When the user presses one of the navigation buttons the new position gets added to the browser history.When the user clicks the forward- or back-buttons (or uses the browser history to select a previous position) the application is notified of this and shows the appropriate module.

So how does this work? For a full explanation I really recommend that you read Jordan Knight’s original post, as the sample I made doesn’t really add anything new to it and his explanation is very detailed and easy to follow.

The principle behind the technique Jordan describes is that a bit of JScript is used as glue between the browser and the Silverlight application, and this enables the Silverlight to react to history-related events in the browser.

text_binary

Download the code here.

 

The interesting parts are in the following files:

  • SilverlightBrowserNavigationTestPage.aspx
    Here the History.js is loaded, and the OnPluginLoaded-event on the Silverlight plugin is wired up to an event handler in History.js.
  • HistoryManager.cs
    Used for interfacing between JScript (History.js) and the rest of the Silverlight application.
  • App.xaml.cs
    Here the HistoryManager is instantiated, and a new property is introduced (History) to expose it to the rest of the application.
  • Page.xaml.cs
    Events fired by the HistoryManager when the user uses Back/Forward are handled here, and the appropriate module is shown.

Enjoy the sample.

Saturday, October 18, 2008

Silverlight Experiences at Microsoft WebDay

I gave a presentation on Thursday (the 16th of October) at Microsoft WebDay here in Helsinki. The presentation was about what we've learned while developing our new product Sproodle using Microsoft Silverlight. The focus was not so much on the technical details but on what kind of experiences we've had with the technology and what we've learned from using it.

The recording from the presentation (in Finnish) will be up on Codezone in a few days or so, but if you just want to have a look at the slides you can find them below.

I think the presentation went well, based on the feedback I got (hey, it was even called "epic" in a comment on this blog).

During the presentation I promised to post (at least some of) the samples I showed, and I'll try to get them up during the weekend.

Anyway, here are the slides:

 

View SlideShare presentation or Upload your own. (tags: microsoft silverlight)

I noticed that Slideshare butchered a couple of the slides a bit (fontsizes and such), but it's close enough.