Archive

Archive for May, 2005

MechWarrior 2 Soundtrack Tribute

May 20th, 2005

My coworker Phil always makes fun of me because I have the MechWarrior 2 soundtrack in my iTunes share. It’s the first game soundtrack that I ever could toss in a CD player and take around with me, and is also one of my first encounters with ambient music. Since MW2 is pretty much abandonware, and the soundtrack itself isn’t available anywhere, I’m thinking about putting it on my site as properly-tagged mp3s so that other fans of the series can reminisce. Unfortunately, CDDB has a completely bunk set of track names (i.e. Mechwarrior Soundtrack 1, 2, etc.), and it would be nice to get a little text context into each piece of music. I don’t have time to do this all by myself, but if anyone wants to help, it would be a fun way to promote one of my favorite game soundtracks ever.

Here’s some proof that i’m not the only person who loves this soundtrack:

The game’s soundtrack was amazing as well. Not only did it fit the theme of the game, but many of the redbook audio tracks were good enough to listen to on their own in an audio CD player.
http://www.gamespot.com/gamespot/features/all/greatestgames/p-49.html

The Mechwarrior II seriers from Activision gets my vote for best video game sound track ever. (Although WoW is pretty dang good) These techno/tribal tunes really helped to set a mood better than any game prior to it, IHMO. And I believe it still holds true today. Actually, I have the sound tracks on my IPOD and listen to them quite regularly. True, they lost something in the 2nd and 3rd installments of the game, but still top notch. ~T.D.~
http://games.slashdot.org/comments.pl?sid=146552&cid=12276984

If any feature of Mechwarrior 2 could measure up to the computer voice, it would have to be the music. The music on the game CD was so good that I would usually leave it in the drive and play it through the speakers as I was working — in fact, I am listening to the music right now. It’s still good, after all these years (tracks 03, 09 and 14 in particular… ah, heck, they’re all good). The missions were worth playing just to hear the next music track, which usually matched the feel of the mission (quiet sneaky staccato music for stealth missions, grand vocals and crescendos for all-out assults). Once again, my opinion may be biased — because I have always been a fan of electronic music — but others have said the same things, so I know I’m not completely nuts.

Also, if you have reason to believe that MW2 is not abandonware, please contact me so that I don’t make any mistakes. :)

Fun

Freetag v0.210 Released! Now with Related Tags ability!

May 10th, 2005

I just released Freetag v0.210 – i’ve released mostly minor improvements / bugfixes so far, but this one also has a new function that is pretty cool.

Myles Grant contributed a similar_tags() function that accepts a tag, and spits back at you other related tags in descending order of how good a relation there is. It’s pretty awesome, and i’ve got it working on eatlunch.at and in beta code for Upcoming at the moment. It really makes browsing the tagged world of your database pretty compelling. Brian Del Vecchio recently explained the difficulty of stemming tags on the system level instead of extracting related tags from the correlations in the database. Well, here’s one way of doing it. :)

Think of it as an Amazon-like “Other users who bought this also bought…” kind of feature. Except this is more like, “Many other objects tagged with <Source Tag> were also tagged with <Related Tag>.”

Brian’s original posting was in response to the new blog Tagsonomy’s discussion of overcoming tagging interface challenges. The key problems it describes are identifying similar tags, and providing standardized, usable delimiters for user input. I’ll have more of a discussion of this in a separate post, as this one is already getting kinda long. But if you’re wondering about how these problems are addressed in Freetag, here’s a quick summary:

Freetag’s current delimiters are spaces, with quoted phrases accepted. All raw tag items are normalized into alphanumeric-only strings. Most API functions return the raw tag and normalized tag in each tag entry for display in either format. Related tags are now dynamically extrapolated from correlations via the similar_tags() function.

I believe the original algorithm idea is from Snippets here: http://www.bigbold.com/snippets/posts/show/34. The query was modified from subquery syntax to a self-join on the freetagged_objects table in order to support MySQL 3.X, and it seems to work pretty fast on Upcoming’s database with the indexes from v0.202.

The concept of finding related tags by seeing what tags occur in relation with each other is not particularly new, but I think having that available in an open-source tagging platform is kinda neat.

Enjoy!

» Freetag project page, with Download link.

Freetag, Tech

New Freetag Implementation Guide

May 4th, 2005

It seems like the #1 problem with releasing Freetag is that it’s confusing to understand exactly what Freetag does (or is meant to do).

I’ve taken a stab at writing up a more gentle introduction to Freetag, along with some sample code that I kinda wrote without testing (but it’s derived from production code, I promise). :)

It explains the basic concepts behind attaching Freetag to an existing schema, and implementing the a basic tag and display page on your application details pages. It also has a nice discussion of Raw Tags vs. Normalized Tags that you might not get elsewhere.

The new Freetag Implementation Guide

I’m looking forward to hearing your feedback on this doc, as I spent a few nights getting the formatting nice and pretty, and trying to keep the explanations simple. Feel free to leave your comments on this post. If you would like to see the sample app released in code format, put your voices together and i’ll see what the demand looks like. I’m just super busy lately, but it might be worthwhile if it can really help you implementers out.

Grodon out.

Freetag, Tech

Idiot PHP Reminder of the Day

May 3rd, 2005

Don’t use require_once within functions. Especially when you iterate multiple times over that function. Use require or include instead, because the successive calls won’t import the additional code any more.

Uncategorized