cast42

Cast for two

Sunday, August 02, 2009

Set all links target to _blank on a XHTML 1.0 Strict using jquery

As explained here, opening links in a new window is no longer possible via target=_blank in XHTML 1.0 strict. This code is a workaround using Javascript:


function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;

A link with attribute rel set to external will open in a new window:

<a rel="external" href="http://castfortwo.blogpspot.com/">cast42</a>

On the Friendfeed realtime embed code, I saw they use jquery to do the job:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.js">
<script type="text/javascript">
$("body").mousedown(function(e) {
for (var target = e.target; target; target = target.parentNode) {
if (target.tagName == "A") {
if ((document.location.href.split("#")[0] + "#") == target.href) {
return;
}
target.target = "_blank";
return;
}
}
});
</script>

The advantage is that all links will open in a new window, except if the refere to an anchor in the page. Hence there's no need to add the attribute rel to each anchor.

Tuesday, July 28, 2009

Urbain Airship: a webhook based service for Iphone 3.0 Push Notification

picture about fast internet infrastructure
This morning I discovered a new recipe on Google App Engine Cookbook to send out Iphone 3.0 Push notifications via Google App Engine. In fact, the recipe makes use of a service called Urban Airship. They provide a free service that allows to send upto 5000 Push notifications a month. For larger volumes, the price seems reasonable. Image now that all content producers become pubsubhubbub (the pseudo realtime webhook based enabled publish/subscribe protocol proposed by two Googlers) enabled and maybe we scratch the surface of the future internet architecture that will drive the realtime web. Who knows?

Monday, July 20, 2009

Pubsubhubbub: a webhook based publish/subscribe

On Friday 9 July 2009, Google engineers Brad Fitzpatrick and Brett Slatkin showed a demo of a new realtime protocol called pubsubhubbub. This new technology could lead to a more reactive, pseudo realtime web. I my humble opinion, this might be much bigger news from Google then the announcement of Chrome OS. Of course, only the latter made a big splash in the mainstream news.

The issue of messaging is a topic addressed already many times in the course of computer science. Common wisdom is that the publish-subscribe pattern is a sound solution to this. The problem is that due to all kinds of practicalities it often regresses into a polling solution. Even with pubhubsubbub, the website that want to display realtime updates has to poll the hub to check if an update has happened. So there's still a nut to crack! In the example of a subscriber, a Javascript polls the hub to check for an update.

If anybody would know an implementation of the client that does not poll, please let me know.

In the demo at Techcrunch, updates made by blogger appeared almost realtime in google reader. Currenlty, not all blogger accounts support pubsubhubbub.

To be ready when your blogger account is updated, do not forget to add your feed to Feedburner and to activate Pingshot:
enable pingshot in feedburner
A pubsubhubbub plugin for wordpress exists and the Drupal community is probably already working on it. Check the overview of publisher code for clients on the pubsubhubbub project page.

Pushed on publish post on monday 20 Juli 2009, at 10:41. Updated at 11u17

Tuesday, June 23, 2009

Spore Galactic Adventure Released in Europe, today 23 June 2009

IMG_0791
Spore Ruimteavonturen (Galactic Adventures) Picture 2
This afternoon i received a SMS that my preordered expention kit, called Galactic Adventures for the EA Spore game, was available. I picked it up for 30 euros and installed it. Everything went smooth.
IMG_0794
After a succesfull installation, we clicked on the Spore icon in the dock of the mac and prepared for the new fun....that we didn't find. Looking up the documentation and calling the EA helpdesk brought no prevail. I tried a second install. Nothing helped. Until I went looking in the installation directory Spore in the Applications directory. I saw that a new executable was there called "Spore Ruimteavonturen" (dutch for Spore Galactic Adventures). Dubbel click this new executable and of we go:
IMG_0795

Saturday, May 02, 2009

links to JPEG images in ATOM feed entries must be typed image/jpeg

After some debugging, I found a nasty bug in an ATOM feed that validated by the W3C validator service. I was trying to parse image url's out of an ATOM feed. ATOM 1.0 feeds are defined by the RFC 4287. In paragraph "4.2.7.3. The "type" Attribute" it is defined that the type must conform to the syntax of a MIME media type. The MIME media type is in turn defined by RFC 4288. Media type registrations are listed by the IANA at: http://www.iana.org/assignments/media-types/
If we look up the media subtypes of image/ we find that JPEG images have MIME type image/jpeg . The feed I was parsing had images with MIME type image/jpg instead of image/jpeg as it should have been. Apparently the W3C validator does not validate the type of links. I reported the bug/unconformence. Hopely it will be fixed soon.
A handy list with all MIME types to be used as reference is also provided by w3cschools.

Tuesday, March 17, 2009

First experiment with Imovie '09

This weekend I bought Ilife '09 for the mac. The software packet has four components : Iphoto, Imovie, Garageband and Iweb. So I played around with Imovie '09 and made a small project with my ski trip movies I shot with an Panasonic DMC-FS3. The movies are 640x480 and come in a .mov file container. The video tracks are encoded in Photo Jpeg and the audio tracks are in 8-bit unsigned mono 8KHz. The resulting movie project is uploaded to Youtube by Imovie's built in share function. Here's the result:

The soundtrack is from World of Goo. The track is "Brave Adventure" by Kyle Gabler.

I really enjoyed using Imovie'09 for this task. I works fast and intuitive. It proves that the choice to abandon the timeline is really working out for consumer oriented movie editing. Time will tell if this will also hold for professional editing. Imovie'09 has an export to Final Cut Pro (Apple professional editing program). Hence an escaped path is on board.

Thursday, March 05, 2009

Back from ski trip

Back from a skitrip in Nassfeld, Austria in Hotel Berghof with the Sporty organisation. Enjoyed good things in life.