| Comments

It’s that time again…beginning of a new month!  That means that Smashing Magazine has released their monthly wallpaper pictures again.

Not as many St. Patrick’s themed ones as I would have expected.  Here are your March 2010 Windows 7 Theme Packs for the wallpapers though…including all images (note: some ‘without calendar’ images are not provided by the authors) unfiltered.

For details on these and to see past ones, visit the Smashing Magazine Windows 7 Theme information for the specifications I used for the theme pack as well as previous themes.  Want to participate and submit yours?  Join in!

NOTE: I know last month had some issues with the .themepack files.  I tested these ones on 2 computers and was able to install them.  My previous issue appears to have been with creating the packs on a 64-bit machine which I’m investigating with the Windows team.

Special thanks to the Windows Team Blog for hosting these theme packs for us all!


This work is licensed under a Creative Commons Attribution By license.

| Comments

This week at Microsoft we are hosting roughly 1,300 of our top community experts around the world in various technical competencies.  For Silverlight, we have about 80% of our group in attendance from all over the world.

Microsoft Most Valuable Professional logo

At the beginning of the year the Silverlight team asked our MVP group to identify the individuals within their group have done a lot for Silverlight community and that they would consider worthy of being named an ‘MVP of the year’ award.

First to be clear, ALL of our MVPs are top notch and all have contributed significantly to the Silverlight community both professionally and personally.  It is really exciting to see this level of commitment to community these folks have.  You should take a moment and check out these folks using the Twitter list that John Papa has put together.

Out of this group of experts, they have peer selected the following individuals for 2009 as their ‘Silverlight MVPs of the Year’ – please join me in congratulating:

These two were identified by their peers and the Silverlight team as contributing significantly to the Silverlight community/ecosystem over this past year.  Laurent has one of the most definitive books on Silverlight (and is working on an updated edition) as well as releasing one of his projects, MVVM Light – a Model-View-ViewModel framework for Silverlight developers to help them get quickly started with MVVM pattern development.  Dave has saved us all the searching in the world and continues to scour, validate and surface some of the best Silverlight content around the world in his Silverlight Cream blog – providing a daily post of aggregation of all the cool things happening in the Silverlight community.

Take a moment to subscribe/read/whatever to our Silveright MVPs – they are the folks keeping us honest :-)

Congratulations Laurent, Dave and all the MVPs for the efforts you have accomplished over this past year – looking forward to continued efforts this year!


| Comments

Something has been bugging me lately.  I feel I’ve become complacent.  And I think you have as well.  We all are surrounded by advertising daily.  Whether it be in print, audio or video, it is always near us in everything we do.  You cannot escape it…nobody can escape it.

Not even our children.

Perhaps this is what is driving my frustration anger.  You see, I have two kids ages 7 and 3.  My daughter (7) is in her second year of elementary school.  My son (3) is in pre-school.  Both are learning various things.  But learning also means questioning…A LOT!  Sometimes as a parent it can actually be frustrating the amount of questions you get!  But it is an opportunity to help my kids’ education and supplement with my own assistance, beliefs and perhaps help them further understand the things they are learning.

Ask yourself this…if your kids came to you and asked Daddy, what does ‘free’ mean? how would you define it?  What about unlimited?  My guess is that you will revert back to your own education and answer accordingly.  My guess is that you would not use the term ‘sometimes’ when defining these terms.  In fact, I would guess you’d follow that giant book of definitions we call the dictionary to assist you.

Here is how the term ‘unlimited’ is defined:

unlimited:

  1. not limited; unrestricted; unconfined
  2. boundless; infinite; vast
  3. without any qualification or exception

And here is ‘free’:

free:

  1. provided without, or not subject to, a charge or payment
  2. given without consideration of a return or reward
  3. not costing or charging anything
  4. not subject to rules, set forms, etc

Now I think any reasonable adult would agree as to this is your understanding of these terms.  I think you know where I’m going here.  We’re constantly surrounded by things that contradict not only our teachings to our children, but the literally meaning of things.  I’m not complaining about belief systems and things that are subjective in nature…I’m talking about the definition of words here.

The problem is that we and the elected government we have are allowing this to occur.

WHY?

Allow me to provide some examples.

Recently on the radio I heard an advertisement for getting a free laptop.  It was surrounded by all sorts of testimonials of people who have gotten their laptop.  I was waiting for the hitch.  You know the fast speak at the end that tells you all the terms and you can’t decipher them because you couldn’t possibly hear them how fast they talk (the audio equivalent of ‘fine print’).  There was none.  Of course I was suspicious.  Of course I knew it wasn’t free…but my daughter heard the same ad as well and said Dad, it’s free, I want a laptop.  I was stuck.  In reviewing their site, freeuslaptop.com you see the banner add with ‘participation required’ listed.

freeuslaptop.com banner image

Then in the fine print you read:

In order to receive your gift you must: (1) Meet the eligibility requirements (2) complete the rewards bonus survey (3) complete a total of 13 Sponsor Offers as stated in the Gift Rules (4) Follow redemption instructions.

The ‘Sponsor Offers’ of which you have to complete a total of 13 of them are things that are not free (one exception I could see).  Completing 13 of these would surely cost you a couple hundred dollars at least…maybe even enough to buy a decent used laptop on craigslist.

There is nothing that matches the English language of free in here at all.  The ‘free’ is bound to so many offers that are, in fact, bound to costs, subject to rules, charge payment.  There is no way anyone can look at me with a straight face and tell me that this is free at all.

You see these ‘free’ deals all over the place.  Mobile telephone carriers use this tactic as well with offering ‘free’ phones (in exchange for your commitment to a 2-year cost contract – again, ‘subject to rules’). 

Now let’s talk about ‘unlimited’ – this one also points most recently to the mobile phone industry for me.  I’ve been seeing advertisements on television about unlimited internet plans.  Of course television advertisements are the worst because of the fine print.  I have a large 50” HD screen and I still can’t read the paragraph of text in 4px blurred font that is displayed on the screen.  Why we feel this is an acceptable advertising practice is beyond me.

Of course, as a tech savvy person, you know that there is no such thing as ‘unlimited’ broadband.  It is another advertising shield for a bait to get you.  Unlimited to mobile carriers in the US is now defined as 5GB of usage.  Granted for most that should be way more than enough…but is that unrestricted as the definition of unlimited suggests?  Absolutely not – in fact they are defining the restriction of the unlimited deal.

Now all the online terms for the plans clearly spell this out (and not in fine print) so that is great.  But they are preying on the fact that people don’t pay attention to that.  I was trying to find one of the recent advertisements TV add on YouTube, but couldn’t (if someone finds one post it below).  One of my local carriers, Cricket, has a data plan that reads:

Now your laptop or desktop computer can have unlimited high-speed wireless Internet access on Cricket's 3G network.

However, here’s their lovely footnote at the very bottom:

Throughput speed may be limited if usage adversely impacts our network, service levels or exceeds 5 GB per month.

Hmm, sounds an awful lot like a restriction to me.

So what can be done?  Doesn’t seem like a lot without significant pressure to the FTC about these practices.  The FTC web site and process for complaining isn’t intuitive and isn’t really consumer friendly either.  A lot has been done about the mobile carrier ‘unlimited’ stuff – I see online the more prominent placement of specific data plans and very few are using the term unlimited anymore.  Still, this hasn’t changed their mainstream advertising channels like audio/video outlets.

I just hope that we’d all stop being so complacent about how we look at these things.  It’s becoming hard to explain to my children the oddities of how companies are redefining words and what my kids know to be true.

Rant over…had to get it off my chest how frustrated I am at these types of deceptive practices.  If you can’t succeed with your product by being honest, then your product sucks.



This work is licensed under a Creative Commons Attribution By license.

| Comments

If you aren’t aware of the Silverlight Media Framework, you should take a look.  This is a media playback framework for Silverlight that is based off of a lot of best practices from such implementations as the NBC Olympics, Sunday Night Football and others. 

Silverlight Media Framework screenshot

It has a lot of features built-in to the framework such as:

  • Logging
  • DVR-style features
  • Fast forward
  • Slow motion
  • Media Markers
  • etc

Basic stuff plus some great included features and extensibility points.

Missing Features – Part 1

What I didn’t like in v1 was two things: it was only for Smooth Streaming and it was a framework versus just a XAP I could use in a web application.  After some successful complaining :-) and an opportunity to get into a milestone build, the progressive download feature was added which enabled non-Smooth Streaming people to use it.

I’m wanting to standardize on what our teams are providing for best practices, so I’ve started using this player. 

NOTE: Does SL Video Player still live?  Yes, and it has VERY basic features.  It is super small and simple, but may not be for everyone’s liking.

So I started to solve the other problem, primarily for my use, of having essentially a stand-alone player using this framework. 

Extending the Silverlight Media Framework

You see, the SMF itself is essentially a set of controls…but not an ‘app’ itself that you can just consume the binary.  What I did was basically create a new Silverlight application myself with one simple element: Player.  This way I could implement what I needed for my use.  The first thing I wanted was to have a simple XAP that I’d be able to load parameters in…very much like we did for SL Video Player on codeplex.  To make essentially the player have a flexible use model.  I could host the player anywhere and just feed it media to play.

I used the InitParams feature of the Silverlight plugin model to enable me to pass in parameters to the application.  I wanted a simple parameter ‘media’ that basically was a URI to my media.  For most of my needs this would be a progressive download situation.  I added the simple feature using InitParams, and passed that URI to the MediaElement of the player framework.  All was well.

Missing Features – Part 2

I then realized two features that I love about the Expression Encoder templates: AutoLoad and ThumbnailImage.  These two features are pretty much essential for a bandwidth saving playback experience.  AutoLoad basically disables the media from starting to be fetched until the user clicks play.  The ThumbnailImage enables a static screenshot view to be displayed until a media frame could be captured.  These two features work well together.

The AutoLoad (cueing) was critical for me.  I didn’t want media to start downloading until the user said so.  This saves me bandwidth as well as doesn’t annoy the user if there is a ton of media on one page (which might not be a good UX to begin with, but I digress).

I saw an event PlayControlClicked in the framework that I felt I could tap into.  I figured I’d just wire up to that event and set the MediaElement.Source when the user clicked that.  FAIL.  The problem was that the play control in the current framework isn’t even enabled until the media source is set.  This defeated my whole purpose.

After some spelunking in the source – did I mention that SMF is Open Source? – I found the culprit functions.  Disabling them made everything work but it just didn’t feel right.  Luckily one of the developers of the framework, Kevin from Vertigo, and I start chatting (virtually of course, after all nobody ‘talks’ anymore for real right?).  I told him of my findings and hacks and he educated me that I didn’t even need to mess with the source, but could accomplish my needs by subclassing the Player.  Kevin sent me some sample code for what he called a DeferredSource, which is what I wanted.

After some quick tests, I realized that I should keep all scenarios enabled:

  • Deferred loading (AutoLoad=false)
  • Normal progressive playback (AutoLoad=true)
  • Windows Streaming
  • IIS Smooth Streaming

I modified Kevin’s source a bit and got everything working.  Now I have 3 parameters:

  • media – the URI of the stream, IIS Smooth Streaming manifest, or media file for progressive download
  • autoload – used really only for progressive download, would enable/disable cueing of the video upon load
  • ss – to specify if the URI indicated in ‘media’ is an IIS Smooth Streaming implementation

With this done I can now do something as simple as:

   1: <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="320" height="240">
   2:   <param name="source" value="/ClientBin/SmfSimplePlayer.xap"/>
   3:   <param name="background" value="white" />
   4:   <param name="minRuntimeVersion" value="3.0.40818.0" />
   5:   <param name="initParams" value="media=URL_TO_YOUR_VIDEO" />
   6:   <param name="autoUpgrade" value="true" />
   7:   <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
   8:           <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
   9:   </a>
  10: </object>

Boom, done.  Now I had a player based on SMF that served my needs.

Wishlist

I still didn’t implement the ThumbnailImage in my player.  This is a wishlist item for me…it isn’t critical but nice for when AutoLoad=false so it isn’t just a blank screen!  Additionally, the one thing I have to admit I’m not wild about is the overall size.  The compiled XAP is 230K.  In contrast my SL Video Player is 16K.  Why the big size?  Well, the SMF today is intended for someone who really wants to implement all the features it provides, including Smooth Streaming.  If you aren’t using Smooth Streaming, then you still have those dependencies with you…not ideal.

In talking with the dev team and framework team, I know their plans for updated milestones of SMF and am pleased with the roadmap.  They have taken a lot of feedback of how mainstream uses might be implemented and will make it continue to be awesome with a bit more flexibility of taking what you need!

Summary

If you need a solid, basic player take a look at SMF.  There are other players out there of course, but this one is based on proven best practices in the toughest situations.  And it is only getting better.  There is a lot of room for improvement for the ‘YouTube’ style simplicity of playback for medium-low quality video playback for your personal sites showing home movies, etc. – and I know that scenario will improve, because I’m pushing for it as well.

If you want to use what I’ve done here, feel free – here are the files:

There are also a bunch of videos for working with the Silverlight Media Framework beyond the basics.  Be sure to check them out!

Hope this helps!



This work is licensed under a Creative Commons Attribution By license.

| Comments

Yesterday Microsoft announced that Visual Studio 2010 Release Candidate was available for MSDN subscribers and would be generally available on 10 February 2010 for the public.  This release represents a significant improvement in the overall Visual Studio product and a lot was based on beta tester feedback.

Of course, as a Silverlight developer you will be wondering: Can I still develop Silverlight 4 applications with the VS2010 RC?

Here’s the simplest form of a FAQ I could provide for you:

Q: What was released this week for Visual Studio 2010?
A: The Visual Studio team released Visual Studio 2010 and .NET Framework 4 Release Candidate builds.

Q: When can I download them?
A: If you are an MSDN subscriber, you can today (8 FEB).  Generally availability will be 10 FEB.

Q: Can I developer Silverlight applications?
A: Yes, you can develop Silverlight 3 applications with the release candidate of Visual Studio 2010.

Q: What about Silverlight 4 applications?
Q: Is there an updated Silverlight 4 Tools installer?
Q: Is there an updated
WCF RIA Services build for VS2010?
Q: Is there an updated
Silverlight Toolkit build for VS2010/Silverlight 4?
Q: Is there an updated Blend for .NET 4 Preview build?

A: At this time, VS2010 RC does not support developing Silverlight 4 applications.  This means that at this time there is no update for Silverlight 4 runtime/tools or the WCF RIA Services or other companion frameworks (toolkit controls, etc.).  This will not be enabled until the next public build of Silverlight 4 and companion frameworks.

Q: If I want to develop Silverlight 4 applications, what should I do?
A: You should stick on the public Beta 2 build of Visual Studio for now with the companion tools/framework builds.

Q: You mentioned ‘next public build’ so when will that be for Silverlight 4?
A: We haven’t released a timeframe on that availability right now. :-(

Q: Can I run Visual Studio 2010 Beta 2 and Visual Studio RC side-by-side?
A: No.

Q: Are there hacks to make Silverlight 4 tools work with the VS2010 RC? 
A: I’m sure someone might cobble something together, but frankly there are issues between the two and the combination isn’t supported.

Q: What is wrong with you people?  Why don’t you release things at the same time?!
A: If everyone could intern for a week in the developer division at Microsoft you’d see the challenges faced with various products innovating on different time schedules and resources and teams managing as best they can.  Frankly, Visual Studio is on a path.  Silverlight 4 as a not-yet-released-product has to wait for VS milestones to ensure SL tools work well with our builds.  This same holds true for the companion frameworks and Blend.  It is not a fun place to be as we are all moving targets for each other with varying dependencies.  The Silverlight and RIA Services teams are working hard to finish a product.  That is our goal.  We want to make sure not to distract resources from adding support to interim builds that we simply can’t handle right now in order to deliver a quality FINAL product for you.

Hopefully this helps, even if it isn’t what you wanted to hear for Silverlight development at this time.