| Comments

Seesmic logoToday, Seesmic more broadly launched Seesmic Desktop, a refreshed platform for interacting with various social media outlets like Twitter, Facebook, Google Buzz, etc.  Seesmic has been one of the leaders in this space providing client applications on various platforms across web, desktop and mobile and providing us with unified views of our interaction with others online.

You may have remembered seeing Loic on stage at MIX last year demonstrating their first preview of this updated platform and inviting developers to be a part of extending the shell.  That’s right…their platform is extensible!  A great application that I can also modify to my needs?  Double rainbow…what does it mean!?

I went to the evening social session at MIX to hear about how they would be enabling developers to extend the platform.  In introducing the concept of plugins, it was made clear that the Seesmic Desktop Platform (SDP) would be leveraging the Managed Extensibility Framework (MEF) that was to be included as a part of Silverlight.  Seesmic would define MEF contracts that as long as developers adhered to them (and of course implemented any required interfaces for actual functionality) then the plugin would be able to extend the platform.  The most grandiose idea can be simply stated as if you don’t like how Twitter is represented in Seesmic, fine…change it.  Of course, I suspect most people will be just fine with their implementation and choose to extend in other areas as I’ve done.

Seesmic Desktop 2

Admittedly I’ve got a vested interest in being excited about SDP…after all it is built using Silverlight.  However, I’m also very much into being a part of my online connected network via Twitter.  Prior to SDP I did not use Tweetdeck or some of the other popular multi-column ones…but was a user of Twhirl.  I loved the simplicity that it provided but did desire for slightly more.  I never got into Tweetdeck and honestly I don’t know why…it just never stuck to me in how I interacted online.  The thought of customizing my own experience, however, is what intrigued me to SDP.

I immediately got started writing some plugins, starting with something that I use often, a translator for reading messages incoming that aren’t in my native English.  Some may scoff, but when you monitor a lot of different things online, this becomes important as I don’t want to ignore things that might be interesting.  I chose to use Microsoft Translator services and in a few hours had my first rough draft plugin completed.  It was very rough (mostly because I desired a lot of things from Seesmic).  I showed Marco my warez and started to give feedback on what I think the platform needed for this specific use case as well as to make my life easier. 

Since then the platform has significantly evolved to accommodate most developers needs.  Seesmic has been very responsive on the developer forums for the platform to needs and questions.  Getting started writing a plugin couldn’t be easier for a Silverlight developer, but I’ve tried to make it even simpler (as I was sick of doing the same tasks myself).  I created some templates that you can download from the Visual Studio gallery that will help get you started.  Once installed you’ll see a nice new project template in Visual Studio:

Seesmic project template

This will stub out the initial shell you will need (you’ll still need to add the correct references to the SDP SDK).  From there you can add item templates for the base plugin type or other types: posting actions, timeline items, etc.  Here’s what my templates provide:

Seesmic item templates

These should give you some good jumpstart code to provide some of the necessary plumbing that would be required.  This is NOT a substitute from understanding the platform!  You need to read the docs and understand the interaction of the API with the platform to be successful.

TIP: When you add references to the Seesmic SDK assemblies, change their Copy Local attribute (in properties) to false so you don’t end up shipping them with your plugin.  Since they are already a part of the platform there is no reason to ship them with your plugin (and this makes your plugin size smaller).

To me, I think the easiest plugins to create are those that implement a URL shortener, posting action or a timeline processor.  These are the areas which would allow for very fast customization.  The account providers is likely the most time consuming as you could imagine as you are interacting with authentication schemes, etc. 

I’ve created a few initial plugins that you might be interested in and you can download them here.  I’m really excited about this platform and the fact that I can extend it to make my interaction with things I care about uniquely my own.  Install Seesmic Desktop today and start developing using the SDK!

| Comments

This week, Seesmic announced a new Seesmic Desktop platform.  They finally revealed more details to the public and released developer previews of their shell, SDK and some sample plugins.  You can get them on the Seesmic Developer Wiki.

Seesmic Developer Platform

The best part?  It’s built on Silverlight 4 and the Managed Extensibility Framework (MEF)!  This is awesome news for those of us who have been using various clients that have been locked down to specific use scenarios.  There always is a few things I want/need/etc in software and it’s great now that (at least in this space) I can change things I don’t like.

That’s right, Seesmic Desktop is moving more toward a “shell” concept (my words, not theirs) where they provide some defaults but also extensibility points for anyone to replace and/or extend.  Don’t like the way they implemented Twitter?  Fine, change it (or search for a better plugin).

This is a great way to get started with MEF as well.  Seesmic Desktop 2 gives you an implementation of extensibility points and you just have to implement them, mark as the right Export/Imports and watch how ‘it just works.’  There were two plugins that I wanted to create right away, so here they are in my own personal ‘works on my machine’ release band.

Translator Plugin

One of the things I’ve found in using Twitter and Facebook is that when you start searching for things you notice that you find interesting information but it might not be in your native language.  Recently I’ve been playing around with Microsoft Translator, which had an updated release at MIX10.  As a frequenter of Twitter, I often just ignored the non-English information as I simply couldn’t read it and didn’t have a ready way at my fingertips to translate it.

My first plugin is my Translator for Seesmic powered by the Microsoft Translator engine.  Simply drop this XAP in the plugins directory for Seesmic Desktop 2 and you’ll see new action options in the menu area of any timeline item:

Translator for Seesmic screenshot

Click this and it will translate the text to the current culture setting of your desktop (i.e., the intention is that your desktop is likely set to your preferred language).  Here’s a video of it in action:

Get Microsoft Silverlight

This is an example of a TimelineItemAction plugin that is global combined with a dynamic adding of a TimelineAttachment (the translation control).

Foursquare Venues

I’ve been using Foursquare a lot lately.  Why?  I have no idea.  Fun I suppose.  If my political ambitions don’t work out in real life, I always know that I can be Mayor of Yogurt Jungle.  Anyway, when in Twitter, Facebook, whatever people can ‘check-in’ to Foursquare and announce their location.  This posts a note like I’m at Yogurt Jungle http://4sq.com/XXXX where the short URL points to the venue where you can get details.  I wanted to be able in my app to see the venue details without having to visit the site.  Luckily Foursquare has a public API.  With that I can integrate ‘expanding’ their short URLs into Seesmic Desktop 2. 

Seesmic Foursquare Plugin

See the plugin notices when a Foursquare venue was mentioned (based on the short URL) and gives you the option to view more details (this is called an attachment in Seesmic Desktop Platform).  Once clicking on it, it will expand to show the details (with a clickable title to the further venue details if you want) and an embedded map showing the location.  Pretty cool?  Maybe not to you, but I’m having fun finishing it.  This is an example of a timeline Processor plugin with an attachment in the plaform.

Summary and test my plugins

As a Microsoft/.NET/Silverlight developer, extending the Seesmic Desktop Platform is easy.  I’m familiar with everything I need to do, and just needed to familiarize myself with the extension points of the platform.  MEF makes it easy to focus on what I want to do in my plugin and let the platform worry about loading things up, managing lifecycle, etc.  I look forward to extending the platform for my needs more (and sharing what I’ve created for others).  I’ve always extended things for my own use (creating 3 plugin extensions for Live Writer to meet my needs) and this is not different.  I hope others can share their extensions as well!

The Foursquare plugin has a bunch of bugs I’m trying to work out right now so I don’t consider it stable to share just yet.  The translator one is ready for testing.  I’ve listed them on a page I’ll maintain my other contributions until Seesmic has a better distribution method.  Visit my Seesmic Desktop Plugins page for more info.  Be sure to subscribe to my feed for updates on Silverlight and my contributions!

| Comments

Yet again, we’ve updated the Silverlight Client for Facebook for the Silverlight 4 release version.  In order to use the updated one, you must follow these instructions:

  • First, uninstall the previous version you have.  This can be done in Add/Remove Programs on Windows or by just deleting the app on Mac.
  • Ensure you have Silverlight 4 installed.  If you are using the development tools and have installed Silverlight 4 developer tools, that’s fine.  If you are not a developer, visit http://microsoft.com/getsilverlight to get the latest Silverlight 4 version (4.0.50401.0).
  • After you have Silverlight 4 installed, visit the app page and install it.

You should be good after this! 

So why so many uninstall/re-installs!?  I thought you had an auto-update mechanism!

We do!  With Silverlight 4 trusted applications, the update mechanism requires that your applications be signed in order to use the auto-update APIs.  We wanted to wait until SL4 released in order to provide a signed version (and our internal signing process didn’t allow signing the beta).  Now that we have a signed version, you’ll be prompted when an update has been installed for the app.  For more details on signing your Silverlight applications see:

Hope this helps!

| Comments

If you installed the Silverlight Client for Facebook, and also upgraded to the release candidate for Silverlight 4, you may have noticed it stopped working :-).

NOTE: Applications compiled on Silverlight 4 beta will not work on machines with Silverlight RC runtime.  This is known/expected.  As with all pre-release software, this type of breaking can be expected.

We’ve recently updated the Facebook application, and you will have to re-install.  Follow these steps:

  1. Uninstall the Silverlight Facebook client.  You can do this in a few ways.  First on Windows through the Add/Remove Programs or by right-clicking on the application while it is running (even though it doesn’t work) and choose ‘Remove Application’ – I recommend the Add/Remove Program control panel option.  On Mac OSX, simply move the application to the trash.
  2. Ensure you have Silverlight 4 RC installed.  If you don’t the Facebook client welcome page will provide the links.  Reminder that this is still pre-release software and future uninstalls might be required.
  3. Visit http://bit.ly/facebookclient and follow the instructions.

You should now have the updated Silverlight for Facebook application installed.  The team received a lot of good feedback they look at.  This build doesn’t necessarily have any of those suggestions/fixes…and is more of a compatible build for the Silverlight RC runtime.  There are a few things that we finally brought forward from the initial PDC09 demonstration.

Custom Window options are clearly visible.  You’ll notice the ‘window chrome’ (as it is referred to) is gone and the custom window is in the application:

Silverlight Client for Facebook

Notice the custom maximize, minimize and close buttons:

Custom window chrome toolbar

Also notice in the lower right corner the resize adorner:

Resize adorner

The updated application also implements the ‘mini-mode’ (from the toolbar area in the upper right) which produces a stripped down view of the main news feed:

Facebook Client mini-mode

Again this is a subtle update to keep the client working for you.  These features use the custom window options available to Silverlight 4 developers.  You can read about this updated feature here and also watch a developer video tutorial on how to implement similar functions in your application here.

Have fun on Facebook and hope this helps!

| Comments

Remember the final moments of the Scott Guthrie keynote presentation at PDC09?  Where Brian Goldfarb came on stage and demonstrated a completed application using a lot of the features of Silverlight 4?  Yeah, that Facebook application.  Well, it’s here now!

Microsoft Silverlight 4 Beta Client for Facebook

Silverlight Client for Facebook - Home view

The Microsoft Silverlight 4 Beta Client for Facebook has been released as a developer preview sample.  In order to use it you must have Silverlight 4 developer builds installed.

NOTE: When you run this application you’ll be installing the developer builds of Silverlight.  When Silverlight 4 releases, unless you are a developer, you’ll likely want to uninstall this plugin and install the released software.  This sample application is being provided as a developer preview to showcase and inspire.

The application is installed as a trusted application and does all the things you’d expect for Facebook.

Status updates:

Silverlight Client for Facebook - Status updates

Drag/drop pictures from your computer to a photo album:

Silverlight Client for Facebook - Add photo

A photo feed view:

Silverlight Client for Facebook - photo feed

Notifications for messages to you:

Silverlight Client for Facebook - notification window

Add a photo to a post using your web camera on your computer:

Silverlight Client for Facebook - Webcamera input

And yes, anyone uploading video to Facebook can be played back in the app as well:

Silverlight Client for Facebook - flash video playback in Silverlight

A lot of cool ways to explore your Facebook information (sorry, no mafia war games…for me that’s a good thing).  You can also see some Outlook integration if you right-click on events that you may have to send an email and such (I don’t have any events in my Facbook account to snapshot).

So what’s NOT in there?

Good question.  At PDC09 you may have seen a few things that I haven’t mentioned yet above.  The chromeless (borderless application) aspect of the application is not in this preview.  This is because the beta of Silverlight doesn’t include that feature right now.  Additionally the plug-in the camera and have it automatically import the pictures is not in this preview as well.  That was implemented using some COM integration and the team just didn’t clean that code up for this preview for the public.

What about source code?

At this time no source code is being provided…and probably won’t be.  I’m not the decision maker on ultimately if it will or not, just my assumption.  The Facebook client is meant to be a working demonstration/inspiration of what one could do with existing services and providing different views into an existing application framework.

How can I install this and will it work on my Mac?

You can play around with the app by visiting the Microsoft Silverlight 4 Beta Client for Facebook app on the Silverlight samples site (which also includes the other sample applications from PDC09).  As a reminder, this is a developer preview build and intended for developers.  You will need to have Silverlight 4 installed on your machine (which is a beta plugin).  The link to the app will direct you where you can get the appropriate download.

Yes, it will work on your Mac (as long as you have an Intel processor version).  When you install the app you’ll see the Apple preferred install guidelines to drag the application to your Applications folder and can navigate to it there or use Spotlight search to find it.

This is a fun little application to navigate your Facebook account.  The team had a good time building it and is excited to share it with others.  Have fun!