| Comments

With the Olympic ceremony only days away and being able to enjoy the Olympic experience online via Silverlight, why not get a little excited and play some casual games, Olympic style.  All of these were build using Silverlight and the Popfly game creator:

I played them and they are pretty fun and amazing what can be done using a non-programming tool for gaming and Silverlight!

| Comments

So you want to read an RSS/Atom feed on the interwebs and saw the SyndicationFeed class you could use in Silverlight to give a nice RIA display of the syndicated data.  Great, no problem right, just wire up an WebClient, point it to the RSS feed on something like http://silverlight.net or something and boom, done.  Wait, what’s this 404 Not Found error?  In most cases this is going to be a result of a cross-domain issue.  If you haven’t started working with services yet, Silverlight requires a cross-domain policy file to be in place to access remote data not on the same site-of-origin of the Silverlight application.

If you want to learn more about this in further detail you can read this and view this.

Crap.  So now what do you do?  You don’t have a server that would enable you to write a proxy service and you don’t really have the time to do that.  Aha, enter some free services for you!

Popfly

First, depending on what you are trying to do with the data, give Popfly a look.  Popfly contains several templates for importing syndicated information and displaying it in different visualizations.  For instance in about 4 clicks I can import an RSS feed, connect it to a visualizer and have this:

Popfly is no longer available as a service from Microsoft.

Feedburner and Yahoo! Pipes

Pipes is similar to Popfly but doesn’t really provide a breadth of possibilities of visualizations and ease of mashup of way different types of sources, but for this purpose I think it works well.  In Pipes, you can create an input feed and map it to an output, even merging various sources together.  The end result can be a new RSS feed for you.  And Yahoo Pipes already has a cross-domain policy file in place for Flash (which Silverlight supports).  You have to change your endpoint URI a little bit and it wasn’t clear until I searched, but for example, here is a RSS feed URL you could use for combining my blog and the Silverlight community blogs in one.

Feedburner is a syndication service that does a lot of statistics of your feed, helps you manage subscriber data and can save you some bandwidth as well.   It does RSS really well (and enclosure support, etc).  Best of all, it also supports cross-domain policies via the Flash format (again, which Silverlight supports). 

So if you find a feed that is on a site without cross-domain policy support, you can create a new Feedburner feed, Yahoo Pipe or Popfly mashup and be good to go!

A subtle workaround for getting data from sites that aren’t providing the policy files :-)

Hope this helps!


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

| Comments

after playing around with some facebook toolkits, i wanted to ensure that facebook could enable silverlight applications within their context.  you see and already live in harmony in where you can create oh, i don't know, whack-a-mole with your facebook friend profiles? (sidenote: popfly was just updated again...read more here.)

i figured i'd whip up a quick and dirty proof using the python cube example (thus also testing to see if silverlight streaming in a facebook app would work).

lo and behold, no problems:

using my newfound friend , you can see a quick screencast of me adding it in facebook.  yeah, more cowbell...er, i mean, facebook!  you can check it out here.

| Comments

i had a great time at the day i attended at the portland code camp!  i'm sorry for those who couldn't make it, you missed out!  we also had a great time at the kennedy school afterwards on saturday (an old elementary school transformed into a bar, restaurant, movie theater, hotel, etc. -- very cool, all the insides of the school left in tact).

i delivered 3 presentations at the saturday session of code camp: virtual earth, sidebar gadgets and popfly.  first and foremost, thank you for those that attended my sessions (i apologize for the room changes again), i hope you learned at least one thing new...even if it was small.

as promised, i said i'd post my code/etc. after the sessions, so...

a lap around virtual earth

of all the , i really enjoy the most.  i'm not sure why, maybe it's the interactiveness (is that a word) of it...whatever it is, it makes me feel all fuzzy inside and i find myself trying to inject maps into everything i do...not really, but sometimes.  the code that i demonstrated in the session is included in the zip file below...both the web application code as well as the winform code we didn't get a chance to dig deeper into.  additionally, the slides are included (all 5 of them), and i'm sure 4 of them are not helpful, but included them for the resources slide mainly.  as i mentioned, for virtual earth, the #1 resource for virtual earth development is the in my opinion.

i hope i made it clear that virtual earth is something that can be leveraged in any application, not just asp.net or windows forms application.  because of the nature of the api, it can be used on any platform: .net, php, jsp, jsf, rails, plain-ol-html, whatever.  one thing that was also announced at the mix conference was the licensing terms of the live services platform.  the licenses have changed, making them very attractive for everyone to consume and confident to the app builder that there is stability behind the platform.  virtual earth is free (free as in read the license) to use in applications that are public facing...it really is a great platform and with the licensing makes it more attractive than some competitors...take a look.

i also briefly mentioned a provider framework i had monkeyed with a while back for geocode providers.  it is currently hosted on the gotdotnet platform (which is planned to be phased out), but there is a link on my blog describing it...see it here if you are interested.

i also demonstrated two applications that i participated in that make use of this technology in addition to asp.net ajax and the asp.net ajax control toolkit.  here they are here:

-- a new phenomena spreading like wildfire across the country...or it should.  allow me to explain the concept a little bit.  similar to nerd dinners (which those in portland should be familiar with), this was started by a group of entrepreneurs who met weekly for lunch to talk about small biz stuff, etc.  they decided it was good to involve the greater technical community.  now, once a week (on wednesdays), a bunch of geeks meet at a place for lunch and chat.  there aren't any presentations, nobody brings their laptops (not that you couldn't), no "topic" exists, it is simply a chance to socialize a bit more, and talk...a novel concept i know.  i've met a lot of new people this way and recommend you do it in your area -- lunch usually works better for most as well ... it likely isn't taking personal time away.  the site link above is a sample site only (not real data) to demonstrate technical stuff -- stay tuned for the official site where you can search/add your own lunch for your community area.

okay, rant over -- the techlunch site uses asp.net ajax and the control toolkit, virtual earth (v5), sql 2005 proximity searching, etc.  one thing i failed to demonstrate in that sample was that as you move the map around, it is responding to events to start showing you relevant data to the map view.  for example, if you search on 85281, you'll see some lunch points...but if you scroll the map north, you'll start to see a few more appear...showing relevant point information as it comes into a view that makes sense to the user.

-- a prototype that i build for the area where i live to search publically available sex offender information.  this mashup makes use of virtual earth (version 4), custom pushpins/hovers, sql server 2005 and proximity searching, my geocode provider for asp.net (geocode information provided by yahoo apis), asp.net ajax for web service communication and json object parsing.  you can use 85242 as a sample zip code

presentation materials: VE-PDX.zip

developing sidebar gadgets

i'm also attaching my slides here (again, all few of them, none of which helpful but the resources).  in the session we didn't really create one from scratch (but i hope it was still informative in the sporadic nature :-)), so there wasn't a chance of walking through some of the gadget-specific javascript api's.  allow me to take a moment and give you an example, maybe a lame one, but one nonetheless.  first, install my gadget template for visual studio, then create a new gadget (remember the tip, create it in the <user>\AppData\Local\Microsoft\Windows Sidebar\Gadgets folder and let's call it "ContactEmitter.gadget" (remember to include .gadget for easy debugging).  once you've done that, change nothing, but go into en-US\gadget.html and put this line of code after the javascript where it is setting the settingsUI line (which is line 7 in the template):

   1:  function showContacts()
   2:  {
   3:      var colc = System.ContactManager.Contacts;
   4:      var listing = document.getElementById("list");
   5:      listing.innerHTML = "";
   6:      
   7:      for (i=0; i<colc.count; i++)
   8:      {
   9:          listing.innerHTML += colc.item(i).name + "<br/>";  
  10:      }
  11:      
  12:      colc = null;
  13:      listing = null;
  14:  }

then in the "undocked" <div> element add this:

   1:  <div id="list"></div>
   2:  <input type="button" value="iterate" onclick="showContacts();" />

then add the gadget to your sidebar and move to undocked state...<borat_voice>so nice</borat_voice> -- now you have a sample that integrates with the Windows Contacts of Vista (like me, you probably have none in there -- but play around with adding, etc. and click the button again, you'll see it working, trust me) -- if you don't believe me, it should look something like this:

i hope that helps -- take a look at the gadget sources, look at http://gallery.live.com for some more samples...remember CASE ;-)!

presentation materials: Developing Gadgets.zip

microsoft popfly

thanks for sticking around as well for the bonus session.  i am really excited about popfly for a few reasons.  it really demonstrates some of the power of in an application that mixes ajax, html, input controls, animation, etc. in one.  it also enables very rapid mashup creation.  visit the microsoft site for more information and to view some videos if you missed our session (we emulated building twittervision.com in about < 30 seconds -- and as someone pointed out with me talking -- using popfly).  the sdk is also on the site.  thanks to those who requested an invite and i'm promising to do the best i can to distribute (and get more) invites!

a special thanks to the community leaders

the best part of my job is interacting with the technical communities...this is where it is at...people sharing, collaborating, and learning.  the mechanism of user groups, tech talk lunches, nerd dinners, code camps, bar camps, and whatever have, in my opinion, proven very valuable to the communities.  i appreciated those who took the time to help be a part of this code camp (and others) by volunteering, organizing, sponsoring, flying in and presenting, and simply being there.  you are doing a great service to the greater technical community by participating and sharing.  sure, code camps, etc. don't have the massive organizations behind them (and there likely won't be plates in between breaks with snickers and sodas), but that is sorta the point...for the community, by the community.  that is what makes it great.  if you have complaints about community interaction and organization, there is a simple solution to that -- get involved!  if you don't, then i politely ask you to shut your trap -- and i mean that in the nicest way :-)  but seriously, mad props to those who donate their personal times away from friends, family and work to help out for us all -- big ups to you all.

| Comments

check it out --  is an online environment to easily (and in a fun way) create apps, mashups, gadgets, etc.  the "ide" is built on too!

there is also a plugin for visual studio to look at the community submissions.

view the overview and sign up for the waitlist.