Caffeine Peter Colijn
(RSS)

February 05, 2005 (link)
Projector

So mag, being the monkey man that he is, bought a projector. It's only 800x600, but it's nice and bright and is pretty damn decent for playing Smash Brothers or Star Fox 64, not to mention watching movies. Last night we watched Kill Bill, and the other day pphaneuf expressed his undying love for me on it.

Weekend

We're going to the Computer History Museum today. Should be interesting. drheld has also convinced me to see Sideways tonight, which is supposed to be good. Then there's talk of cheesecake. Mmm, cheesecake. The thing is there's this cheesecake place around here that also serves normal meals, but their meals are so big that if you go for a meal you won't be able to have cheesecake. So it looks like dinner today will be a very healthy piece of cheesecake. Meh, whatever, I eat enough healthy food at Google during the week.

Karma

It broke again. So I'm going to send it in and get it replaced, and hopefully the new one won't exhibit the same problem. But apparently it's pretty common with these things, so if you're looking for a portable player that plays Oggs, I can't recommend it.

February 08, 2005 (link)

Nitix

Several people today, after seeing my T-shirt, asked me about Nitix. Where do I sign to get my free advertising bonus?

Sci Fi

So, Enterprise is officially cancelled, barring any fan-supported rescue. I watch it, and I'm ashamed of it, because it's so bad, so I'm not really sad to see it go. But it is a shame there won't be any new Star Trek.

On another note, iMac brought all the Firefly DVDs with him, and we've been watching those. It's a pretty good show, so my desire for decent sci-fi is being satisfied for the moment.

And for when I'm finished those.. I bought the entire Star Trek TNG series on DVD. All 7 seasons, 48 DVDs. Oh baby. Only cost me $130 incl. shipping on eBay. It's gonna be good. I was thinking it'd be fun to index the subtitles so I can search for episodes. With 48 DVDs, you want to know exactly which one contains the episode you're looking for...

February 13, 2005 (link)

Deniz

I just found out that my coworker and friend Deniz Sarikaya has passed away. It came as a complete surprise to me that someone so full of vigour and so lively could be removed from our lives like this. I have great memories of the summer at Niti with her, and I don't think anyone would disagree that she brought a warmth and liveliness to the office that will be sorely missed.

February 22, 2005 (link)

Hula

Like most, I was pretty excited to see Novell getting into this space in an open source fashion. I finally got some time today and played around with it a bit. Previously, I couldn't even get it to compile on non-2.6 systems and then I could get it to compile but it would segfault immediately. Now the latest stuff in svn finally seems to be working.

So, first off, it's pretty, but it's not really usefully pretty. IMO there's far too much graphics. This is a web app, and the web is slow. Most people use dialup. No, really, they do. Even now.

I also don't really like the fact that creating a calendar event is like writing an email, with a "to", "cc", etc. Sure, maybe you want to invite people if it's a meeting, but not always (eg. doctor's appointment). I don't know what to put there. My email? My name? My username?

Also the "new event" page feels like filling out a form. I don't like forms, and I especially don't like web forms. Give me a better way to do this, by clicking on a time in the day view or something. Oh, yeah, why does the day view have no times? Most calendar apps show you the hours of the day in day view, not just a summary of your events. That's a much more useful visual representation, IMO.

Now I don't mean to be overly critical. I realise this project just got started and of course I really hope it turns into something great; a solid web mail/calendar/contacts app is sorely missing from the open source stack, but some of the initial design decisions are a bit worrying, in that it seems at risk of becoming "yet another Horde."

February 27, 2005 (link)

Adventures with Karma

So I got my Karma replaced. They were actually stunningly efficient; I called, got an RMA number, sent it to them and had a new one, all in under a week.

Now, naturally, I want to put some songs on it. Previously I'd used the Java app it comes with to do this from OS X, and that worked fine, except that it's slow. On an 11mbps wireless link, it takes about a minute per ~5MB song. It should take at most 6 or 7 seconds; 802.11b (with good signal strength) is faster than 1MB per second (which is still faster than USB 1.1, which is my other alternative).

The funny thing is, I used the Java app on a friend's Windows machine at Christmas, and it was nice and snappy, so I guess Mac OS X's Java VM has super crappy networking or something. So I figure hey, this is Java, right? I'll just run it in Linux; maybe the VM there has better networking. You can actually get a Java VM for Linux/PPC from IBM.. except that when you try to run the Karma transfer program it dumps core. Great. Write once, run anywhere my ass.

So then I see libkarma. Looks promising.. except that it's horribly written, segfaults all over the place and does fun stuff like returning pointers to buffers on the stack. So then I just cut my losses and write a simple app using WvStreams to copy files to the Karma, and guess what? It doesn't take a minute per song!

I don't know why people haven't done more with the Karma. It's got networking for crying out loud! And the protocol is documented! You can definitely do some cool stuff with that, so it's surprising nobody has, especially since people have written gnome-vfs backends and KIOSlaves for the Rio 500. Anyway, my plan is to write a fuse filesystem for it so I can just mount the sucker.

Moral of the story: don't buy a Karma unless you really like tinkering.

Work

Was super busy for a while, but a bit less so now. It looks like I'm going to have to write a bunch of Java code soon-ish, which will be, uh, interesting, since I've not written any Java code in years.

What follows is a fairly technical and boring (for most) description of Java's new generics system, so I'll put it behind a SanityBarrier.

In an effort to re-familiarise myself with Java today, I've been looking at the new generics implementation in Java 5 (apparently that's the correct thing to call it; will Sun ever stop having rediculously stupid version numbers?)

It turns out that to support backwards compatibility, they've used erasure to implement generics in Java. So you can do this:

public String joinStrings(Vector<String> listOfStrings, String delim);

And then if you pass it just a Vector, or a Vector<Integer>, you'll get an error (which is what you want).

But then you can also do this:

public String joinStrings(Vector listOfStrings, String delim);

And pass in Vector<Integer> if you like. I can see that if you want old class files and old code to work on the new VM and with the new compiler, you need this kind of thing, but it makes generics considerably less useful.

Another nice tidbit is that you can never do new T(); inside a generic class, because the type information is gone, so the compiler doesn't know if the type replacing T provides a no-parameter constructor. So what you see is that in the actual JDK, the code written by engineers at Sun, they're doing nasty things like T[] foo = (T[])new Object[size];

The other way around this is to pass in a Class object of the appropriate type:

public class Generic<T>
{
    Class<T> tClass;
    public Generic(Class<T> tClass)
    {
        this.tClass = tClass;
    }
    public void Foo()
    {
        T myT = tClass.newInstance();
        // ... do stuff with myT
    }
}

Yeesh. It seems like there are a lot of these kinds of things in Java; things you want that are there, but only in a half-baked, semi-useful way.

Notice that I dissed Java without even touching on the GC or VM. Those are old, old debates and everybody has opinions on them, so whatever.. apparently that stuff is better these days, but I have no idea.

February 28, 2005 (link)

Quest

So today, after about 2 weeks of downtime, the new Quest system at Waterloo came online. They even spammed us all to tell us, so I took a look.

It is, without question, the worst web software I have ever used, and possibly the worst supposedly "release-quality" software I've ever seen. To demonstrate the suck, I present you with a screenshot:

[image]
The transcript request queue

Why the block is there a freakin' queue for transcript requests? There never used to be. And, what's worse is that I have to manually sit there and click refresh. Any monkey with half a brain could write some JavaScript to refresh the page, say every 30 seconds. Or use <meta http-equiv=refresh> or something, and any RDBMS written in the last 30 years shouldn't need to queue requests for as long as thing does. Jeebus.

Worst. Software. Ever. I mean I thought Waterloo was pioneering new levels of suck with JobMine, but they've really outdone themselves this time.

Back: January 2005 Next: March 2005

email: caffeine@colijn.ca