Archive for June, 2005

Saturday

posted June 27th, 2005, no comments

I walked into a store today. It was actually quite funny to walk into that store, listening to Steve Wozniak, on my iPod.

Odeo – Pronounced Like Rodeo

posted June 19th, 2005, no comments, tagged

Odeo is the new online podcasting service which has been in the news for most of this year. A couple of days ago it opened it’s beta by means of invites – and before you ask: there’s no way to send out invites yourself. Just subscribe for an invite and hope for the best. Anyway, in this article I’ll provide an overview of the beta. The accompanying screenshots can be found on my Odeo Beta Overview photoset.

Odeo provides a very friendly atmosphere, heavily influenced by Flickr‘s approach of tongue-in-the-cheek language. Just look at the sign-up page, for instance. Or the Terms of Use (cheers to Matthew Bischoff for that). And, to continue on the Flickr angle, they also have tags, profiles and contacts.

The podcasts are centered around channels to which you can subscribe. Actually there’s no talk about podcasts, the individual audio files are “shows”. You can tag channels, and there are also tags for shows, but (possibly due to a bug) I wasn’t allowed to tag shows.

Something else which isn’t possible is finding all shows and channels. I’d say this is the best way to explore Odeo, but unfortunately the closest thing to finding all channels is the Top 40. I definitely hope they fix this soon.

Aside from tags Odeo does a few other things which tie in well with the Web 2.0 spirit of open platforms. Odeo allows you to create a new channel by importing a syndication feed. If you’re a podcaster yourself this is the way to get your stuff on Odeo while preventing lock-in. You can also get a RSS feed for your subscription list, meaning you can use any program you want to download the shows to your listening device.

Speaking of downloading programs, Odeo provides one itself: the Odeo Syncr (more Flickr influences!). The app seems to work reasonably well: the shows are imported in iTunes just fine. However, after you’ve finished downloading you can’t exit the Syncr, it’ll show an error message. Proceed anyway and there’s another error message. Also after downloading the “Sync Now” option doesn’t seem to work anymore. Seems like the app freezes up after the downloads are done, but hey, it’s still a beta, right? (I’m using WinXP Pro SP1, by the way.)

The design of the Syncr itself is pretty interesting. It’s preferences are managed through the Odeo web app itself, not stored inside the Syncr. Also interesting is that it’s open source. In fact it’s built off the wonderful iPodder Lemon open source project.

You can let the Syncr download shows by adding them to your queue, though you can also download them via a direct link. The Syncr then downloads the shows from this queue. When you subscribe to a channel the first show of that channel is added to your queue. If you want to download all shows in the channel you have to add each show to the queue manually. A “add all shows in this channel to the queue” would be nice.

After each show has been downloaded it is added to your media player of choice. Well, right now only iTunes and Windows Media Player are supported, but at least you can choose. Additionally you can use the “auto” preference, which (I think) picks the default player for your system. There are some more settings, see this screenshot for more info.

The Syncr creates a new playlist which contains the shows downloaded from Odeo. From there on you should be able to do some interesting things using the Smart Playlists in iTunes, but unfortunately the metadata provided with the shows is lacking. For example I downloaded a few shows without artist / album metadata in the MP3 files, nor with a descriptive title. It’s very hard to figure out what’s what in this way, while Odeo could use the metadata from the creator’s account to populate these fields. It would also be very nice if they would embed the channel name in the file. That way it’d be easier to group channels (such as channels with free music downloads) together in a playlist.

And that concludes this overview of Odeo. Unfortunately the Create part of the side is not yet open, so I haven’t been able to review that. I’ll leave you with this pseudo-easter egg and hopefully I can write more about Odeo later (yeah, that’s a hint, you Odeo guys!).

Later

posted June 18th, 2005, no comments

So I apologize for the short post of last Thursday, and I’ll try to make it up with this one. Highschool has been a weird mixture of things to me: on the one hand I’d like to know how things work, on the other hand I don’t want to do the maths on these things. It’s really cool how electricity and batteries work, but answering questions on it is not. Couple that with the other stuff I’ve been interested in (think hacking, tagging, “social software”) and it becomes a strange mix.

But it’s over now. And interestingly enough I find that now I’m hacking JavaScript for a living (well, scratch that, it’s a summer gig) there’s less need to work on my own stuff. I suddenly understand the reasons why DC2 never happened a lot better.

Anyway, there’s some other things I’d like to talk about in this post. MyBlogLog, which I talked about earlier, has started an affiliate program. So hopefully tomorrow I’ll be dissecting it yet again, and I’m going to add affiliate links too. Let’s see how much money I’ll rake from that! (Well, looking at my stats now, there’s been 27 hits on that article in the past week, even though it holds the #2 position on Google, so most likely it isn’t even going cover the monthly hosting costs of this site).

Another thing I’d like to dissect is Odeo, which just launched and to which I’ve been invited. No idea if it’s specific or if it’s because I signed up for the invitation. In any case now I can finally speak about Dunstan Orchard who’s doing the UI stuff for the Odeo.

Next Friday I’ll be heading to Enschede to look for a room at the University of Twente, where I’ll be doing CS next year. Anyone who want’s to grab a beer (or has a room I just have to check out) let me know.

Also, next Sunday there’s a JavaScript meetup in Amsterdam, organised by Peter-Paul Koch and Bobby van der Sluis. It looks like some of my colleagues from Q42 are tagging as long as well. Rock!

Have a nice Saturday!

Bye bye

posted June 16th, 2005, no comments

Thus ended six years at highschool: marks between sevens, eights and nines, average eight. More later (as usual).

Update: Later is now!

Mindboggling

posted June 13th, 2005, no comments

Oh boy, was that great. I’ve met a lot of cool and interesting people, and learned a lot about cool and interesting stuff. Today I slept in till 11:30, then I spent the afternoon reading stuff and uploading photos. You can find them here and here.

Unforunately I’ve run out of time today to add more descriptions / notes to the photos, or write more here for that matter. But I’m taking notes about stories I’d like to tell, and I’ll give that a shot in the next few weeks.

In the meantime I’d like to give a big shout out to everyone who made Reboot possible. It’s been the best thing of the year!

Hi from Admiral Gjeddes Gaard, Copenhagen!

posted June 9th, 2005, no comments, tagged

Hi from Admiral Gjeddes Gaard in Copenhagen… I’m using one guys PowerBook now, which is really nice, though it requires some getting used to (even worse, it’s got a German kezboard!). Anyway we had a really nice evening here, and a good trip too. Tomorrow’s the real thing, I’ll try to hijack a laptop then as well. Bye!

Event Cache Follow-up

posted June 3rd, 2005, no comments, tagged

Finally, here’s a short follow-up to the original Event Cache article. Let’s start with the best news: the script is now known to work in Internet Explorer, Safari and Mozilla.

Implementing

Something which had to be read through the lines in the original article was how to actually implement the script. Therefore, a little tutorial.

First we take Scott Andrew LePera’s addEvent code. The addEvent function [1] is as follows:

function addEvent(obj, evType, fn, useCapture){
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, useCapture);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}

This doesn’t take care of IE/Mac and other legacy browsers, so you might want to use this method by Simon Willison to get around that.

Anyway, onwards with adding the event to the cache! Here’s the modified version of Scott Andrew’s code which does exactly that:

function addEvent(obj, evType, fn, useCapture){
    var result;
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, useCapture);
        result = true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        result = r;
    } else {
        return false;
    }

    EventCache.add(obj, evType, fn, useCapture);
    return result;
}

We also need to register the onunload handler so we can flush the cache:

addEvent(window, "unload", EventCache.flush);

And that’s it!

Sam Schillace pointed out that the code above was wrong… the method would return before Event Cache kicked in. Big Oops! Thanks for pointing that out, Sam!

(Edited June 3, 2005).

Event Cache, but without the cache

Ramon Leon pointed out to me the other day that it’d be easier to add an unload event which removes the event handler for each event, instead of caching the event and setting an unload event to flush the cache.

Well, yeah, that approach sounds good to me. It doesn’t mean, however, that you’re no longer using a cache: the unload event still contains references to the characteristics of the original event, you just can’t access those references. It’s a minor difference though, I’d say choose which method suits your needs best.

Footnotes

[1]: The original code has an alert to warn you that the event wasn’t set. I figured it’d be more useful if the function would simply return false, so it wouldn’t scare off visitors :)

Kryptonite

posted June 3rd, 2005, no comments

After two weeks, seven finals, hundreds of items piled up in Bloglines and a broken wiki, I return to the world of language wars and license wars and whatever more. As I’m writing this I have my local copy of Novemberborn up, behind the text editor, and I see the bright yellow of the Reboot banner (to the right, link). Oh yeah, less than six days to go! Rock! Supposedly I’m going to get interviewed by Nicole Simon of the preboot podcast, so we’ll see how that goes.

Yesterday I started at the new job, I’m a colleague of Anne now, if you’re inclinced to know. I get to do cool JavaScript work, with what a great team (it’s good to work with other folks who do JavaScript, instead of developing on your own). It also happened to be the first day something “in real life” told me I should “blog” more, well, this one’s for you, Lon!

Speaking of the “blog”, I’ll be getting a PowerBook later this month, and wil be spending the weekends on hacking away at this site. I’ve got some cool stuff lined up, and if the Ruby on Rails framework is as fast to develop in we should definately see some results before the summer ends. In any case, I’ve already read the pickaxe (great book, even if you don’t care about programming you should read it, it’s that much fun), and although I’ve written not even a few hundred lines of code, it’s the most beautiful language ever.

Now if you’ll excuse me, I have a wiki to repair.

– Mark