(Not) Paris to Ancaster
Our
annual spring kick-off ride will be happening in a few weeks and I
can't wait. In honour of Ontario's ultra-boring Paris-to-Ancaster
race we will be riding the alternative Not-Paris-to-Ancaster event
(sometimes known as le Tour de Muffin). The ride starts in Caledon
East and follows the local rail trail West to Winston Churchill
boulevard and then turns north for a long gradual climb up the
escarpment. It then turns East through Belfontain and a wicked
hair-pin decent past the Forks of the Credit river. A few Km
further along it starts to zigzag South and East eventually
returning to the rail trail for the last blast back to Caledon. The
total distance is around 50Km with the pace varying from easy to
sprint-a-licious. However, nobody is ever left behind (apart from
Dave and his flat tubeless
tires). This year we are going to head over to the Hockley Valley
Brewery for post ride refreshements. The ride happens on Sunday,
April 22 at 10:00am sharp! Meet at the (former) Lil' Miss Muffins
roadside coffee shop adjacent to the rail trail in Caledon
East.
Risk Analysis: The Longevity of Mashup APIs
Everyone knows that
saying "you get what you pay for". So when we start using any one
of the hundreds of web based APIs for free what sort of assumptions
can we make about it? For instance:
- How long will it be around?
- If it changes how will I be notified so I can change and test
the code in my application?
- What if my application receives so many hits that it overwhelms
the server I am mashing up to?
- Can I realistically use this API (which will solve all my
problems and cost me nothing) in my application?
While I have played with a few of the available APIs I find it very
difficult to consider using them in any of my applications. And
this includes applications I am architecting for my employer as
well as some of my smaller, non-profit community applications I am
building in my spare time. My concern is that someone offering web
services, data and an API at no cost has no real obligation to me
as the consumer of that information. While it is in the best
interest of some of the larger players to maintain their API (think
Amazon, eBay, etc) the smaller organizations could decide to take
down their provision at any time if they feel they are not getting
anything back from it or perhaps their limited bandwidth is being
exceeded. At the minimum this could result in a severe disruption
in service for my users. For that matter, how can I make any
statement of service or availability to my users if I am depending
upon external services themselves not providing this statement.
Perhaps we need to see an emergence of a standard SLA that gets
published much the same way a privacy statement is. If the provider
of the API communicates their intended service level then consumers
of that API can make a more informed decision. Unfortunately, I
think the type of information that would need to be disclosed would
often be considered confidential and proprietary.
JRSSON or J-RSS: Why we need a javascript format for RSS
I have been using xml and xslt for over a decade now and find it
a great format for exchanging data between systems. I used to use
it for sending data between a web server and browser in my
"corporate" days. All of my work back then was for various fortune
500's where the browser was dictated to be IE so transforming xml
using the msxml libraries was a cinch. Fast forward to now where
I'm designing Ajaxified cross platform web applications and
suddenly xml can't be used. The cross-domain issues and
non-standard transformation support make xml consumption a
nightmare at best.
This is becoming a bigger issue for me (and many others I
suspect) as I try to dynamically load and consume RSS feeds
cross-domain. So now I am investigating a simple solution - JSON.
JSON data can be easily obtained from other domains and it can be
queried in a similar fashion to xpath by simply walking the
object/property structure.
Today almost all RSS syndicators are publishing in the
traditional XML format so it is necessary to parse RSS to JSON
somehow. Hopefully this will change and a complimentary javascript
format will emerge. In the mean time I am going to find/build some
tools that will perform this transfer on the fly.
My first such tool uses Yahoo Pipes to grab the headlines from
the Ajaxian RSS feed. I have published a stupidly simple Pipe that
can be found at
http://pipes.yahoo.com/pipes/pipe.info?_id=_osFeI7W2xGPFy3cqGIyXQ.
It takes one parameter; the URI of a feed and simply retrieves and
returns the contents of the feed. The cool thing is Pipes can be
forced to output in JSON format rather than XML by simply setting
the _render querystring variable to "json".
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
>
<head>
<title>Untitled Page</title>
</head>
<body>
</body>
</html>
<script language="javascript" type="text/javascript">
var pipeCallback;
var data;
function pipeCallback(d) {
data = d;
console.debug(d);
var arts = d.value.items;
for (var i=0; i<arts.length; i++)
{
var a = document.createElement("a");
a.setAttribute("href", arts[i].link);
a.innerHTML = "<h1>" + arts[i].title + "</h1>"
var dv = document.createElement("div");
dv.innerHTML = arts[i].description;
document.body.appendChild(a);
document.body.appendChild(dv);
}
}
</script>
<script type="text/javascript"src="
http://pipes.yahoo.com/pipes/pipe.run?urlinput1=http%3A%2F%2Fwww.ajaxian.com%2Findex.xml&_id=_osFeI7W2xGPFy3cqGIyXQ&_render=json&_callback=pipeCallback"></script>
Next I am going to build an XSLT to transform an RSS file to its
JSON equivalent.
Web 3.0: When Web Sites Become Web Services
This article talks about
the continued growth of web APIs and how they are critical to the
next evolution of the www.
Link to Web 3.0: When Web Sites Become Web Services
Look before you ski?
Meant to post this ages
ago. A few weekends ago I was in Hepworth at Andrew's cottage. We
went into Owen Sound to ski around Inglis and brought our friend
Cameron with us. There is a boulder strewn stream bed that flows
down the escarpment that is a bitch to ride in the summer. In the
winter it is equally hairy on cross-country skis. The following
clip was taken on my Fuju FinePix 510 so please excuse the
choppiness.
[youtube=http://www.youtube.com/watch?v=Bks3Wo7Kg2E]
Windows Vista Sidebar Thingie
When I got my new Vista
laptop the first thing I did was fix all the crap that it ships
with from Dell. That includes removing that virus called Norton
Trial Edition, setting the terrible start menu back to classic view
and turning off the Sidebar. Well, I didn't turn the sidebar off
immediately. I stupidly thought that it would have some sort of
auto-hide feature and would popout of the side of my screen when
the mouse point reached it's extent. I mean, why would you possibly
want to take up valuable screen real-estate 100% of the time?
Anyway, I just re-enabled it out of curiousity and noticed the
Wordpress gadget. That feature I like. Now if only I can figure out
how to get a shortcut to the gadget into my start menu so I can use
this nice little applet on demand. I'll post more here once I
figure that out. I'm sure it's easy but right now I'm already late
for Kate and Bruce's wedding. update: The pictures from Kate and
Bruce's wedding have been uploaded to my Flickr account (see
sidebar for links). And more importantly I have disabled the
Windows Sidebar. The only useful feature was the Wordpress gadget
which quite honestly I could just as easily get to from the Start
menu if it was an app so why bother with running the Sidebar all
day. I have since installed Microsoft's Windows Live Writer beta
along with plugins for Firefox and VisualStudio 2005. It's a
simple app that allows me to create posts offline and synch them to
my wordpress blog when they are ready to publish. The VisualStudio
plugin allows me to select code and blog it right away, with
formatting. And the Firefox plugin lets me blog pages directly
from the browser.