Previous Page Page 2 of 5 in the Silverlight category Next Page
# Saturday, 11 April 2009

I was in the middle of writing a sample page to create a compeling Silverlight install experience (ie. anything better than the plain Install Silverlight Now button that appears in Silverlight Streaming hosted apps) so I can show how well the user can be guided to install Silverlight for a project we're working on.

As I hunkered down and got ready to hit the code, I find a link to... a white paper and sample code on how to make great Silverlight install experiences.

Well.. that sure saved me a lot of trouble! :P

Saturday, 11 April 2009 16:58:32 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
# Sunday, 22 March 2009

Here's a preview of the what I've been working on during my free time. It's basically the next version of my YTBNSystem which I use for my video postings. It now contains a navigation system, allowing multiple short videos to be viewed sequentially, and also allows navigation menus to be built so you can have sort of a DVD like experience.

I encoded the video at a rather HIGH bitrate though, we're talking 400k ~ 450k. Cause I wanted to test out the data transmission performance. Let me know how it works out for you.

ps. As usual.. the UI design sucks ass because I'm a software programmer, not a graphics designer!

Sunday, 22 March 2009 16:16:38 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
# Monday, 29 December 2008

I've made a few references to the Silverlight Streaming Service a few times before on my website but I never quite explained what it is before. A lot of people thinks that the Silverlight Streaming service (SLS) is meant for hosting and streaming videos that are delivered via a Silverlight based video player. And thus when people go to the website they're expecting to see something like YouTube or some other video service.

But SLS is NOT JUST for hosting videos, it's meant for hosting Silverlight Applications. With Silverlight, a content creator is able to create rich interactive applications and media experiences which of course can be hosted on their own server of choice. But then, bandwidth issues come into play. Take for examples the various video podcasts/reviews/shows  and deepzoom albums I have on my site. Like any other web content I could have just hosted the files on the server itself. And that would mean that people from around the region would be able to retrieve and view the files very quickly because the server is close to them.

But... what if the viewer was from another geographical region? What if my webhost's network pipe is being throttled or consumed by someone else who is being hosted on the same server network? As an independent developer while I am able to make rich media content, I do not have the ability to host the content on some super fast, globally distributed server network.

And that's where SLS comes into the picture. As I mentioned it's not just meant for videos but entire Silverlight Applications (this includes everything on the client side ie. Your XAP file, any additional resource files, images, sounds, etc. etc. The service is not for hosting backend applications such as ASP.Net)

How SLS works is that first you upload your application files to the service and then you use the HTML tags (typically an iframe) to refer to your application. Then when a browser requests for the application, that's when the magic happens, SLS has a bunch of distribution nodes around the globe, when a request for content comes in the content is blasted via a high speed network into the distribution node closest to where the request is coming from and the content is served from that node.

This technique in theory allows most users to be able to grab the content at an efficient rate since the content will be coming from a server that's closer to the user.

There are 2 problems with this approach though, the first is a minor issue. Because the content is cached in the distribution node, any changes that you might upload (ie, replacing the XAP or an image file) might not be immediately visible to you.

The 2nd problem is much more of a headache that someone realized over at the Silverlight forums. Because the distribution nodes are given unique URLs and identifiers, if you use Isolated Storage in your Silverlight application, it's very likely that everytime a user hits the page, they'll never be able to read back their previous settings.

But other than those 2 problems, I'm happy with SLS. I'm glad that it is able to deliver my video shows on a steady bitrate. Though I do wonder what's the experience like for people outside of our region?

Monday, 29 December 2008 22:32:50 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
# Sunday, 30 November 2008

A new version of the Microsoft Deep Zoom Composer has been released, one of the cool things that it can now do is generate a Javascript Deep Zoom viewing client! Which is great when you want to allow people to view Deep Zoom images when you can't install a Silverlight client. The Javascript version is a bit slow though but I guess that's mainly because it's displaying images with the web browser's IMG display algos. But hey.. it's an alternative if you want to use it.

The other interesting tidbit is that the image generation tools is now a .Net ASSEMBLY!!! So no more hacking command line tools to generate your DeepZoom images, this opens up a LOT of doors for future integration and expansion.

Let me just insert this into my Deep Zoom Album creator program... hmmm.. oh oh.. what's the redistribution rights of the DLL?

Sunday, 30 November 2008 22:00:02 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [1]  | 
# Sunday, 02 November 2008

Finally!! The Silverlight Streaming Service is now ready and compatible with Silverlight 2.0 Release version! To celebrate.. let's have a quick deep zoom album…. hmmm.. maybe I should just throw images in without worrying about how well they look?

Hmmm.. maybe I should make one of the panoramas I made. So here they are.

Sunday, 02 November 2008 20:48:25 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [4]  | 
# Tuesday, 14 October 2008

Silverlight 2.0 has left Beta and is RELEASED!!! Get your development tools over at the official site!

One thing of note that I must mention is that Visual Web Developer Express 2008 SP1 is now a SUPPORTED development environment! So you can now develop for Silverlight with the FREE tool!

Although I must say it's gonna hurt a lot since the XAML designer in Visual Studio is definetly not as powerful as Blend itself. Unless they've made some changes to it! I wouldn't know yet, still downloading and installing the new dev bits as I type this in.

Also.. hope the Silverlight Streaming Service gets upgraded soon too.

Tuesday, 14 October 2008 21:24:26 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
# Thursday, 21 August 2008

I was pointed to the Singtel Grid Girls competition website as an example of how Silverlight is being used in the real world. It uses a lot of short small video clips, well encoded so that they're nice and clean. So I went poking around the site, then I went through this girl compatibility questionnaire and at the end of it the site presented me with a surprise!

It allowed me to get a closer look at the girl which I chosen, by presenting me with a Deep Zoom image of the girl. Now THAT'S an interesting use of Deep Zoom I thought, but it didn't take long for me to realize that the image they feed through the Deep Zoom image generator was a sized for web image, so zooming in you just saw pixels instead of detail.

I managed to get in touch with the people who made the site and the response to the question of "Why didn't you people use the RAW shots for the Deep Zoom images?" was...

"I don't think the girls would appreciate being scrutinized up close."

Then it dawned on me, the advantages of making a Deep Zoom image was that it allowed you to put online the detailed image of whatever you captured. But for every hidden detail of a landscape photo which you discover, you can also pretty much see every detail of the person whose closeup your camera took. Maybe even minute details like the bumps on their face, or other things like that.

I asked the SemiPro about it and he told me he wouldn't want his pics to be able to be viewed like that by Pixel Peepers. I think it's because Pixel Peepers would just want to find fault in any small imperfection or something, I guess that's reasonable.

I'd put an example up to explain what I'm talking about but I guess I'd be dead after I do so. :P

Thursday, 21 August 2008 22:13:03 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
# Monday, 18 August 2008

Ever since Beta 2 of Silverlight was released all of my previous Deep Zoom albums stopped working because of the incompatibilities between Beta 1 and Beta 2. And of course for the past few weeks I was working on the YTBN video system.

But finally.. here it is.. the return of the DeepZoom Album Creator!

Why go through the trouble of uploading 45MBs of photos instead of just a plain slideshow? Because of the detail you can see in the pictures, zoom in on the right end of the tree in the field, and you can see some unexpected details!

It's mostly the same code as previously, with some upgrades to the system. Most notably is that if the source picture contains EXIF info it'll now be placed into the album for those who are interested in such information. The UI is a bit clutter because of the additional EXIF panel so I guess I'll need to fix it later.

Hopefully this time I'll be able to sort out the code to be uploaded to CodePlex properly this time.

Monday, 18 August 2008 01:36:04 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
# Monday, 07 July 2008

You basically have 2 options of uploading files to the Silverlight Streaming services, either you use the application management page over at or you could use the WebDAV API and upload files via your own code.

To upload through the website you need to zip up the contents of your application and upload the entire zip file in one go. It's an absolute nail biting experience when trying to upload a 50MB file from my connection cause I know that all it takes is one little hiccup and I have to reupload EVERYTHING again.

Using the WebDAV API you can basically write a program that can upload all the files in your Silverlight application one by one onto the services, the advantage of doing so is of course you only have to reupload failed files in case of failure.

But one problem which I was having was that I kept getting an idle disconnection error whenever my upload took more than 5 minutes, and since I'm now uploading video files which are much much bigger than 2MB this was a problem. I thought it was my code but after refering to the WebDAV sample I realised that my code was similar to the sample.

Finally after testing out some more fixes and theories I think I finally found out what the problem was. So in relation to the sample provided I did the following changes.

  • Instead of reading the entire file and then writing it to the request stream in one go, I pushed chunks of it say... 64kB chunks at a time.
  • Set readwritetimeout  and timeout of the HTTPWebRequest object to integer.maxvalue (which basically means infinite timeout..... somehow I don't think this is such a good idea or really has anything to do with the actual problem, will test it with a more practical value and see)
  • and most importantly HTTPWebRequest.SendChunked  was set to true.

Setting SendChunked to true immediatelly allowed me to spend 80 minutes uploading a 25MB file so I think that should be the main thing to concentrate on.


After some discussions with Bill Reiss over at the Silverlight forums it seems like SendChunked is not the best way to get it to work. Setting AllowWriteStreamBuffering to FALSE and Preauthenticate to TRUE seems to work just as well, and seems to be faster too!

Monday, 07 July 2008 10:10:17 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
# Sunday, 29 June 2008

So I finally was able to put in the finishing touches on the little Silverlight thingy that I've been working on. Basically it's something to help make video podcasts a little more interesting. Do remember you need to install Silverlight 2 Beta 2 to view this. But if you don't have it installed you'll see a nice little button to install it anyway.

The whole backend that runs this system is an interesting item for discussion at a future date.

Sunday, 29 June 2008 11:56:55 (Malay Peninsula Standard Time, UTC+08:00)  #    Comments [0]  | 
Previous Page Page 2 of 5 in the Silverlight category Next Page