By Chris R. Chapman at December 07, 2007 23:03
Filed Under: webtools
Update:  Well, it didn't take long before someone coded up an ASP.NET wrapper control around the chart API.  Check out Christopher Pietschmann's blog for an overview on how he did it.  Nice work!

Via dotNETKicks, I learned this morning that Google has put out an API for rendering chart images to the browser by using URL arguments, in much the same manner as Edward Tufte's SparkLines concept.  Whereas Sparklines are intended for presenting "small, word-sized" graphics, like stock charts:


Google's API permits the creation of larger charts of various types, with an array of graphic effects:

The above chart was created using this simple URL:

chs: Chart Size
s: Data Series - in this case, sample data from Google;  this can be encoded data for small or large datasets
cht: Chart Type - lc = line chart
chxt: Required axes labels for chart
chxl:  X and Y axis labels
chf:  Chart Area Background Fill - in this case, we've applied a horizontal, gradient fill

Here's a 3-D Pie:

And the URL that was used to create it:

The API has a whack of options for making all manner of charts, including scatter plots, 3-D pies, Venn diagrams, and more.  I wish this existed when I was working on a Vista Gadget last year that required extensive charting capabilities - this would have solved a lot of frustration using a third-party Javascript library...!

I can think of a number of applications where this could be used to quickly generate off-the-cuff data visualizations with very little overhead (besides network latency) - it would be great to hack into the back-end of this blog, for example, to provide graphic representations of hits, etc. like a mini-FeedBurner console.  It could also be used to provide visualizations of search results, hits, best matches, etc.  Maybe even an alternative visualization of a tag cloud.  It's only a matter of time before coders get creative and think of ways to make the API sing - the Venn Diagram chart, for example, presents some interesting opportunities:

Check it out - it's a bit of fun for your Friday afternoon!

By Chris R. Chapman at October 31, 2007 03:32
Filed Under: web20, webtools

Via Larkware I just noticed this excellent web utility that takes the URL-shortening concept pioneered by TinyURL (among many others) and applies a little Web 2.0 secret sauce to convert your baboon ass-ugly addresses into something more in-step with modern web navigation semantics:

After making it "decent" we get:

As the author notes on his site, the advantage DecentURL provides over TinyURL is twofold:  It provides an URL that is disambiguous, human readable and easily communicated to others, and a clear indication of the website where the link redirects.  Unless you turn on the interstitial page for TinyURL, your users get automatically redirected to the target - this can be unnerving to some users.

Pretty cool service - in the "D'oh! Why didn't I think of it first?" category.

By Chris R. Chapman at July 17, 2007 12:32
Filed Under: webtools
Former Softie Robert Scoble posted on his recent discovery of a Facebook/Google mashup that in time could become a Digg killer.
For those that have been avoiding Web 2.0 stuff, Digg is a site that allows users to add to and prioritize (ad-hoc) a list of web links based on popularity rankings.  Users can "digg-up" a link to a page or story if they like it, or "bury" it if they don't.
In theory, Digg appears to represent a paragon of Web 2.0's great promise to democratize the Internet.  In practice, a relatively small cabal of users try to employ tactics to increase popularity of certain links over others - and not to put too fine a point on it, but they all tend to have a biased left-wing slant.
Scoble writes about a FaceBook application written by Mario Romero that allows FaceBook users to share Google Reader shared items.  In practice, this means that you can leverage FaceBook's social networking features against the feed aggregation/sharing features of Google Reader.
Sound confusing?  It's not - and it's downright cool.
Adding Google Reader to your FaceBook Applications
I'm going to assume a couple of things before getting started:  First, you know what FaceBook is and have an account (What?  You DON'T have a FaceBook account??); second, you have a Google account (GMail, Analytics, what-have-you); third, you have some blog/RSS feeds that you keep track of and want to share with others.
Let's Get Started:  Add the Google Reader Application
You might have noticed that just about every "feature" in FaceBook is actually called an "Application" - on your Profile Page you will find on the upper-left side a list of the applications that you have installed:

Click the "edit" link to bring up your Applications console.  From here, you can add and remove FaceBook apps as well as control their respective settings.  Enter "Google Reader" into the search box to find the Google Reader app:

Once the search is complete, you should see a link in the results list for the Google Reader application.  Click it and you'll see the profile page for the app.  Click the "Add Application" button on the right-hand side - PRESTO!  You've added the Google Reader application.  You should see something like the following to reward your efforts:

We're not quite done yet, however, as the Shared Items and Shared Items Feed are set to point to default URLs.  We need to get our own Google Reader account set up.
Setting up Google Reader
Ok, we're half-way to having your own personal Digg-style link network up and running.  We now need to set up Google Reader to aggregate your RSS feeds and make them shareable so we can hook them into FaceBook.  Navigate over to to set up Google Reader for your Google account.
You may need to deal with some preliminary set-up housekeeping before moving on to adding subscriptions to feeds.  Google Reader allows you to add bundles of popular RSS feeds automagically, but for now click the add subscription button on the left side of the page to enter a sample feed:

Once you've added a feed, it will become available in your main feeds list.  To make a feed item (i.e. a single story) available to others, you need to share it so that it can be publicly accessed:

By Clicking on the "Share" link, you make the article available for public consumption.  I shared a few articles from this blog via Google Reader for this article.  Once you've done this, you can check your shared items list by clicking (unsurprisingly) the Shared Items link on the left side of the page.  You'll see a list that is prefaced with a very important notice:

Note the number at the end of the shared items link:  This is your Google Reader ID.  We'll need this in the next step.
Hooking up FaceBook to Google Reader
Remember those links for Shared Items after you set up the Google Reader application?  Right:  We need to make sure that they point to your Google Reader ID.  If you've navigated away from the page, bring up the profile page for the Google Reader app by selecting it from the Applications List I pictured earlier in the article - you may need to click the "more" link to show it.
Now, select the "Settings" link from the top of the profile page for the app - it's pretty straight forward, with clear directions on how to add your Google Reader ID:
Click "Save" and you're done!  Now, any feed items that you decide to share in Google Reader will be made available to your FaceBook cronies who also have Google Reader installed.
That's a critical point - ultimately, your ability to share and get links from others will be influenced by the size and diversity of your FaceBook Friends cache and their having installed the app.
What makes this app interesting to Scoble and others as a Digg Killer is the Top Shared Items feature (as shown via the respective tab) - from here, you can see the items that are generating popularity amongst your peer group.  This is a powerful concept!
Now, the app is still developing but it has great potential for becoming a better source of community-filtered content than Digg.  As Scoble notes:

Admittedly this isn’t to the level of a Digg killer yet, but it is gathering steam at a very rapid pace. There’s a lot of smart people using Google Reader — Eric Auchard at Reuters is on the list, for instance. That’ll lead to a lot better news than Digg picks on an average day.

Indeed!  For now, Mario is promising new features shortly that will expand on the beta.  Give it a try, get some friends on-board, share some links and have fun killing Digg.  It needs to be buried - or at least its little cabal of link promoters.

By Chris R. Chapman at April 13, 2007 07:20
Filed Under: amuse, webtools, web20
I'll admit I've been pretty jaded when it comes to mashups.  I mean, besides the revolution that Yahoo! Pipes is finally making in the hackneyed "Web 2.0" era, the word has become synonymous with just about any web page that uses Google Maps.  Yaaawwwwn.
Then, while looking for some runs to do while in San Francisco for my upcoming honeymoon this June, I came across  At first glance this looks like just about every other mashup out there:

However, there's more going on than meets the eye - it's more than just putting pushpin on a map - you can actually map out entire routes and get mileage, average time and speed, hill difficulty and approximate calorie burn for your weight:

As you plot your run, WJR adds mileage markers indicating just how far you'd be going and where in the route you'd be hitting your splits.  This is a bit of the Holy Grail for runners:  For some time, the options for measuring out a route have been limited - you could use a pedometer or GPS, but this usually entails having to walk, jog or run the route before hand.  With WJR, you can find or plot a route before even thinking about lacing up.
Of course there's also the "aggregation" effect that a web app like WJR offers - it's pretty cool to check out some other runner's favourite routes from near or far.  I can get lost for hours just poking around the maps.
My only criticisms are that the site is a bit slow, incomplete feature-wise, a little lacking on the social networking aspect and absent of features for uploading pictures or routes from GPS units like the Garmin 205/305.  I'd also like the ability to see how long a run would take by pace (ie mins/mi or mins/km) instead of raw ground speed.
Now, all that said there are 51,865 routes in the database from all around the world and on this and sheer cool factor alone, it's worth checking out.

About Me

I am a Toronto-based software consultant specializing in SharePoint, .NET technologies and agile/iterative/lean software project management practices.

I am also a former Microsoft Consulting Services (MCS) Consultant with experience providing enterprise customers with subject matter expertise for planning and deploying SharePoint as well as .NET application development best practices.  I am MCAD certified (2006) and earned my Professional Scrum Master I certification in late September 2010, having previously earned my Certified Scrum Master certification in 2006. (What's the difference?)