| Comments

someone asked if would work in an ...interesting thought i felt.  after all, the dashboard widget concept is similar to the sidebar gadget feature in vista in that it is essentially a packaged file with html, javascript, images, etc.  so i went to task and tried it out.

i first started with a media player that i had been working on and it didn't go so well...more on that at a later time (startup javascripts, etc.).  after that i just dumbed it down to a simple sample that had some animation and stuff.

packaged it up, deploy to dashboard...and...

nothing.

hmm...what is going on here.  ah, yes, there is a setting in the dashboard widget that requires you to turn it on to allow internet plugins to work...modify to enable, redeploy.

nothing.  blech.  actually, not "nothing" but the default install prompt for silverlight -- which upon clicking did nothing.

with some pointers, i started realizing that the dashboard is likely not registering as "safari" or "firefox" or anything of the like.  it's built using , but perhaps that is the problem.  some others pointed me to that it is likely a conflict with the detection script in silverlight.js and not being able to figure something out.

so i changed to hard-code in the embed/object tag and then was able to get it working like this:

<div id="SilverlightControlHost" class="silverlightHost">

    <object type="application/ag-plugin" id="SilverlightControl" height="100%" width="100%">
        <param name="source" value="Scene.xaml">
        <param name="onError" value="default_error_handler">
        <param name="onLoad" value="javascript:_sl0">

    </object>
    
</div>

i wouldn't necessarily recommend using the object tag as the detection script works perfectly in typical browser situations (typical meaning != dashboards or other hosted models).  i'm going to take a look at the detection script next to see if hacking it up might make this work easier.

i can't figure out how to take a screenshot of a dashboard gadget working (capture doesn't work in the dashboard view), so you'll have to take my word for it.  if you want to try it out on your osx dashboard yourself, the test file is at the end of this post.  I also did a quick and dirty wrapper of lutz roeder's digger to see if it would work.  the keyboard interaction doesn't, but again i suspect that is some javascript hacking that needs to be modified in the engine script (of digger) to enable it working in webkit.

File: SLDash.zip
File: Digger.zip

| Comments

one of the most asked questions i've been getting lately has to do with the provided by the windows live services.  i think microsoft may have done ourselves a naming disservice with including "streaming" in the title.  i think to most in the tech world, the "streaming" term implies a media file streaming like .asx files or streaming audio files, etc. that are consumed by some type of player.

well, is a bit different in my opinion.  first, the services hosts applications.  the whole thing...xaml, media, etc.  so it isn't streaming your media directly, versus streaming/hosting your entire silverlight application.  sure, your application may include media, but it will also include xaml, etc.  if you are hoping to upload a wmv or mp3 only to the service, you are in for a surprise...it isn't a youtube, soapbox, viddler thing.

let's say you have a wicked cool silverlight game you developed...you could put it up on silverlight streaming and enable people to embed it into their sites using the provided scripts.  you can read an example about it on a previous blog post here.

one of microsoft's program manager's i think put it best...

Another major difference is that Silverlight Streaming is not designed nor tailored for end users. It is for web designers and Silverlight developers who wish to create 3rd party web sites taking benefit of the Silverlight capabilities on their site.  They own the end user experience 100% (unlike Soapbox where whatever video uploaded to Soapbox has to be player in a Soapbox-branded wrapper/player). They create the end user interaction, the branding experience, the richness and interactivity, etc.  You can also think of Silverlight Streaming as a platform to create end user-targeted services like Soapbox or MSN Video.

so take a look at the service and play around with it if you are a developer with silverlight applications.

| Comments

okay, are you coming off of a high of MIX (or the information surrounding it)?  i know i am, heck i've seen a lot of the stuff and i was still amazed at things that i saw.  there are some great designers and developers building fantastic user experiences with windows presentation foundation (wpf) and silverlight...i was impressed.

if you are like me and searching for the best way to get a leg up on this technology and the tools, you're probably hunting around for the opportunity to learn some more.  there is currently an expression blend tour that is coming across the country (US) starting May 29.  it is only $175 to attend for a 2-day training course where you will learn:

    • expression design and blend training
    • xaml
    • vector drawing and transformations
    • end-to-end design activities
    • controls and layouts in blend
    • triggers and animations
    • media integration
    • data binding
    • custom windows
    • working with visual studio and blend together
    • end-to-end WPF solution scenario of a retail store implementation

it should be a great opportunity to learn...the shows are coming up quick with las vegas being the first followed by san francisco.  see the schedule and register here...reserve your seat now!

| Comments

they keep coming don't they.  personally, i crack up when i see them.  i, like others, share some feelings that i wish they would be more accurate in their advertising comparisons (like the fact that apple has a UAC feature themselves!...or perhaps that some hackers feel vista is more secure).

i just saw on adwatch that three more just came out -- again with some inaccuracies -- so i went and saw them online...got a chuckle again.  i was *very* surprised with the comments on the post though...people basically telling apple to start to "think different" as their ads are getting stale, only attacking vista and not really talking about why a mac is better, etc.

anyhow, interesting reads on the comments.

| Comments

now that the virtual earth version 5 sdk/control is out and available, some that may want to quickly move to v5 may find some refactoring required.  for me, it was pushpins.  when using v4 of vritual earth, i would normally create a VEPushpin first like this:

var pin = new VEPushpin(
        someId, // unique identifier of the pin 
        latLon, // a VELatLong object
        "images/custompin.png", // custom pin object
        "some title", // title
        "some details", // details
        "pinIcon", // icon style
        "pinTitle", // pin title style
        "pinDetails"); // pin details style
    
map.AddPushpin(pin);

when i changed my app to use the v5 control, that instantly broke.  in v5 the pushpin is elevated to the same level as other shapes (or other shapes are downleveled to the same place, whatever you want to think of it).  now when you want to add a pin with some customization, you will want to create a shape like this:

var shape = new VEShape(
                  VEShapeType.Pushpin, // the type of shape
                  [latLong] // a VELatLong object
                 );

shape.SetCustomIcon(pinIcon); // if you wanted to set a custom icon

shape.SetTitle("<div class=\"pinTitle\">" + title + "</div>");
shape.SetDescription("<div class=\"pinDetails\">" + details + "</div>");

map.AddShape(shape);

as you can see basically it isn't too much work, but essentially everything you add is a "shape" (either a pushpin, polyline, polygon).  the only thing i don't like about the new v5 way of doing things is in the v4 way, you could set the css class of the icon, title, details and it would apply it.  i think that was very simplified and allowed me greater control and separation of my styles from my code.  in v5 i now have to do that within my script.  :-( -- hey VE guys, can we change this?

of course, all this is documented in the updated , but i thought it might find it helpful real quick-like for those who may happen to read this :-)