Silverlight MVPs at MIX 10

Like every year, MIX will prove to be another big one for Silverlight. All the Silverlight MVP’s will be watching in some form or fashion. Unfortunately, all the Silverlight MVP’s won’t be able to make it (work, vacations, etc.) , but a number of us will be there, and some speaking. Here’s a list of the Silverlight MVP’s at MIX.

Alex Golesh
Andy Beaulieu
Corey Schuman
Dan Wahlin (speaking) - Syncing Audio, Video and Animations in Microsoft Silverlight Applications
Daron Yöndem
Dave Cambell
David J Kelley
Emil Stoychev
Eric Ambrosi
Erik Mork
Jeff Paries (speaking) - Principles of Microsoft Silverlight Graphics and Animations
Joel Neubeck
John Stockton
Jordan Knight
Koen Zwikstra
Laurent Bugnion (speaking) - Understanding the Model-View-ViewModel Pattern
Laurent Duveau
Page Brooks
Richard Costall
Rick Barraza
Rob Eisenberg (speaking) - Build Your Own MVVM Framework
Robby Ingebretsen (speaking) -Design Fundamentals for Developers (and Other Non-Designers) & 10 WAYS TO ATTACK A DESIGN PROBLEM AND COME OUT WINNING
Thierry Bouquain

Also, there will be a Silverlight MVP Breakfast on Tuesday morning at 8am. Come join us.

MIX 10 resources

clip_image001

Only days away and MIX 2010 will be upon us. Here is my compellation of links and resources to get ready for MIX.

Links

The Devil’s Field Guide to MIX10 - http://thespiderking.com/wordpress/the-devils-field-guide-to-mix10/

SKETCHFLOW AND BLEND AT MIX 2010 - http://electricbeach.org/?p=421

Silverlight Sesion - http://team.silverlight.net/events/silverlight-mix10-ndash-the-next-web-now/

Schedule

The MIX team has put together a very nicely done Silverlight Session Planner (http://live.visitmix.com/SyncClient).

Here is what my initial schedule looks like. Each session is Silverlight focused. Unfortunately there’s no way I’ll be able to be four places at once, but I intend to come back and watch each session online once they’re available.

clip_image002

Social events

In addition to the sessions, MIX is about networking and spending time with new and old friends. There are many events taking place, like the attendee party at LAX, however that’s not the only one. Check out the site MIX 10 Events for a list of some of the free events taking place.

I’m planning on being at the Tweetup, Silverlight MVP breakfast, and the UserGroup Leader Dinner.

Reblog this post [with Zemanta]

Business cards

The other day I was reading Do You Still Carry Business Cards? on Lifehacker and immediately answered "Ha, NO". I just don’t see a need for business cards. If you want someone’s contact information, then you either know mutual friend or you enter their info in your phone. That said, I figured I would begrudgingly get some business cards made for MIX next week. Below are what they look like.

Initially I was going to order from Moo cards, however they require a four day processing. In true procrastinating fashion, I waited until the last minute to order. Thankfully Zazzle pulled through for me.

As for the creative, I completely bummed the idea from the Lifehacker article. Instead of using Google, I decided to use Bing. After all MIX is a Microsoft conference. Creating this card was one of the first times I’ve used Bing. Searching on Google, the first result is my site. Alternatively, on Bing the first result was my About page.

clip_image001

clip_image002

Out of hibernation

clip_image001

The past few months I’ve been flying under the radar, taking much needed rest and time with the family. Spending four months in another country was amazing but exhausting.

Since being home I was fortunate enough to go to the MVP Summit in Redmond in late February. Met many of the very talented people involved in the MVP program, as well as met many of the Silverlight product team and MVP. Also had the chance to spend time with a couple guys in the Cider team: Karl Shifflet (of Xaml Power Toys fame) and Nokola (you MUST check out his Silverlight work, truly amazing).

Now that I’m settled back in, I’m coming out of hibernation and have a few things planned that I’m ultra excited to blog about.

Simple EventArgs in Silverlight

In my previous post, I talked about the Silverlight Media Framework (SMF).  As the name implies, SMF is so much more than a video player, it’s a framework.  The project is rich with nuggets of Silverlight goodness; today I would like to pay homage to one of my favorite classes: the SimpleEventArgs (in Microsoft.SilverlightMediaFramework).

Have you ever been in a scenario where you just want to pass an object through an event the EventArgs without having to create custom EventArgs for each type of event?  SimpleEventArgs solves this by using generics, and asks only for the class.  This one class has saved me countless amounts of time by not having to code up custom EventArgs.

Almost forgot…SimpleEventArgs are Scriptable by default, making this class available from JavaScript.

Thanks guys SMF team.

FULL DISCLOSURE: This code comes directly from the Silverlight Media Framework (http://smf.codeplex.com) project.  Visit the project to get the complete source.

image

Open Source Silverlight video players

image Lately I’ve been spending a lot of time in the Silverlight video space.  Both with writing the video chapter for my Silverlight 4 book as well as at work.  Creating a basic video player is straight forward (link 1 | link 2), have a button to play, a way to control the volume, a scrubber to show the position of playback, and of course an area to view the video. 

Once you get beyond the basic requirements, the “basic video player” becomes very involved.  A few questions that will need attention are:

  • “How do you handler markers?”
  • “How is streaming video handled?”
  • “What do you do an an error?”
  • “What’s the strategy for buffering?”
  • “Can the video player support Smooth Streaming content?” (this is a whole different conversation)
  • “How does the video player handle Closed captioning?”

And on and on the list goes.  At some point (hopefully in the analysis phase) you should ask is it better to build or buy.  If you decide to build, give me a call ;), but before you do I would encourage you to take a look at the following open-source (free) Silverlight video player options.  If nothing else, these players are great place to start.

I’ll start off with the three best options, then highlight other projects I am less familiar with.

Silverlight Media Framework (SMF)

http://smf.codeplex.com/

This is so much more than a video player, it’s an entire framework.  Developed by Vertigo in coordination with Microsoft, SMF has been used on the largest, most watched, Silverlight video players to date.  Wimbledon, NFL’s Sunday Night Football, PDC live keynote, and the NBC’s Vancouver Olympics video players, to name a few, all use SMF.  To say it’s robust would be an understatement.

Other than the standard video player controls, here are additional highlights of SMF:

  • Smooth Streaming support – includes the Microsoft.Web.Media.SmoothStreaming.dll
  • Great base classes like MergeableCollection, SimpleEventArgs and ObservableObject
  • A light weight data project
  • Logging
  • Blendability – the player is easily skinned
  • InStream markers
  • Bitrate – the ability to show bitrate

For a more detailed list of features, and the code, check out SMF’s site.

Silverlight Video Player

http://slvideoplayer.codeplex.com/

If you have ever watched a video on Channel 9 (if you haven’t check out Silverlight TV) the player being used is this video player.  It was developed by Tim Heuer (Microsoft) and Joel Nuebeck (Silverlight MVP).  Although SVP does not the feature set the SMF player has, this is still a solid and proven video player.  It’s is probably the best option for a standard, light weight, feature rich video player.

Silverlight HyperVideo player (HVP)

http://slhvp.com/

A new video player to the scene is the Silverlight Hyper-Video Player (HVP).  This offering is from Jesse Liberty (Microsoft) and the Community.  Targeting Silverlight 4, HVP takes advantage of the MEF framework and is rooted in best development practices.  Although the project is young, there is a lot of traction and Jesse is doing an amazing job of documenting each step.  Keep on eye on HVP as this maybe the most scalable offering.

Others

The above three video players I have personally used, dug through the code, and/or evaluated.  The following projects I am not as familiar with, but could be possible options for your scenario:

Sharepoint video player - http://svp.codeplex.com/

Silverlight Media Player http://silverlight30.codeplex.com/

xLite player - http://xliteplayer.codeplex.com/

Atlanta Silverlight – Jan 20, 2010

image

Two night and two user groups.  Last night we had the Atlanta Silverlight User Group featuring Jeremy Likeness , senior consultant with Wintellect, presenting on Silverlight Line of Business applications.  Jeremy’s session highlighted on Silverlight frameworks, MEF, Unit testing, services, and briefly on Blend.  We did do a screen capture of the session; as those details become available I’ll post more.

The turn out for the group was amazing.  All in all we had almost 50 people.  Thank you all for coming out.  Next month Roger Peters will be presenting on Building a Compelling UX with Silverlight.

If you have a topic that you would like to present on, visit the Meetup page and drop me an e-mail.

See you next month.

Silverlight and Drupal

image 

Last night, Jan 19th, I attended the Atlanta Drupal User Group (ADUG), http://www.drupalatlanta.com/,  with Glen Gordon.  The talk, presented by Steve Jaffe of IBM, was about “Integrating Flash with your Drupal Project”.  Steve did a great job of how Drupal can be used as the backend for Flash.  Never having used Drupal, the same techniques presented can be use for connect to Silverlight.  In fact, after some digging around, it looks like someone has already been playing around with Drupal and Silverlight…Matt Serbinski.  Here are a couple of his articles:

Silverlight 4 WebCam - a quick glance

WebCam support in Silverlight 4 is a much anticipated feature, and probably didn’t come as much of a surprise.  It’s relatively simple to enable this feature.  The below example shows a simple UI with the code to enable the webcam.  This post does not cover multiple webcams, however calling CaptureDeviceConfiguration.GetAvailableVideoCaptureDevices returns a list of all available webcams.

First create a simple UI (a Rectangle and a Button).

image

Add an event to the button click event.  The logic looks like this:

  • Get a handle on your video capture device using CaptureDeviceConfiguration.
  • Request access to the device with CaptureDeviceConfiguration.RequestDeviceAccess().
  • If the user clicks Yes, then create a CaptureSource object and set the VideoCaptureDevice to the selected webcam.
  • Create a VideoBrush
  • Set the Source of the VideoBrush
  • Start the webcam
  • Paint the Rectangle (this could be anything that takes a Brush)

image

Next step, F5 (run your app).  You’ll be looking at a blank screen with a button.  After clicking the button, a box appears prompting the user to allow access to the webcam and microphone.  Click Yes, since after all that is our goal ;).

image

Voilà!! You are now looking at yourself. Now you can do all sorts of fun web cam stuff.  Enjoy.

image

Tip

After running the above app, I noticed it was backwards.  Meaning when I moved left my face on the screen moved to my right.  Maybe it’s just me, but my brain was not happy about this.  Instead, I wanted the app to respond like a mirror.  To do this was a quick fix; simply Flip the Rectangle on the X axis.  Here is the menu in Blend to do this:

image

More info

For more information, Tim Heuer has a great video covering Web cam and microphone support in detail: http://silverlight.net/learn/videos/all/access-web-camera-microphone/

Changing your default WebCam & Mic – Silverlight 4

Webcam and microphone support are a much anticipated feature to Silverlight 4.  If you have more than one webcam or audio input device, it’s possible to change your default device. Right click on your application > Click Silverlight > Webcam/ Mic.  Here you will find a menu where you can choose your default devices.

image