March 2008

This Week I've Mostly Played Frets on Fire

It’s been a while since I posted something here, and I’ll tell you who to blame: Unreal Voodoo. They’ve created Frets on Fire, an awesome clone of Guitar Hero.

It’s extremely satisfying to hit those quirky notes when you rock on a laptop-keyboard1 together with all the Guitar Hero-songs or some custom songs.

The Mac OS X version

The Mac OS X version is known to be buggy, especially on PPC machines.

Frets on Fire FAQ

There is a Mac OS X version, but it’s very experimental. So experimental that the newest release doesn’t even start without some hacking.

For those who aren’t interested in copying files around just to play the game, you can download an already fixed version at my mirror-site.

More songs, please

It’s kinda boring to play the same songs over and over again, luckily FoF have a huge database of custom songs and can easily import GH-songs (for the pirates: you can also download them)

In other news

And now to something completely different: WebKit scores 91% on Acid3. Unless the Opera-guys are doing something amazing, WebKit is going to be the first engine to pass the test.

Gecko, the engine behind Fx, have now passed 70%, but the devs have explicitly said that some bugs won’t be fixed until Gecko 2. So I’m putting my money on WebKit!

Oh, and monkeypatching isn’t destroying Ruby

Avdi Grimm claimed that Monkeypatching is Destroying Ruby. I have to agree with him: Monkey-patching is over-used and often unnecessary, but that doesn’t mean it’s destroying Ruby.

His first example (UnitRecord vs NullDB) simply shows that in this situation, there was another way to solve it. Sometimes you don’t have any other solutions than monkey-patching or patching the source. I’ll definitely prefer monkey-patching over patch -p1 < fixing-stuff.patch.

The second example (when Class.inherited was overwritten) is just because they used a poorly documented plugin. Every piece of Ruby-code should document what methods they’ve monkey-patched.

It’s also important to remember that Emacs was built for extensions. Therefor they included an easy way to extend Emacs. It would be perfectly possible with Ruby too. I think I’ll have to repeat me: Sometimes you don’t have any other solutions than monkey-patching or patching the source. Sometimes the library/program isn’t as extensible as you want. That’s when it’s great with monkey-patching.

Sometimes they feel like the best solution, even though there are better ways to do it. That’s when you should stand up and say: “Hey, I see what you did there, but this is a much better solution”. It’s called open-source and everyone can contribute!