Geek Smithology

July 31, 2005

The Shuffle Game (1 in a series)

Filed under: Sound by Nathan @ 8:58 pm

Okay, every Sunday (or so) I’m going to play a game where I start up iTunes, turn on Shuffle, and list the first 13 songs that come up. If everybody reading does the same, we should all see some stuff that we haven’t heard but might want to. Here are the rules:

1) Nobody talks about the Shuffle Game
2) Nobody talks about the Shuffle Game

Uh, that’s so lame I’m going to stop right now. There’s only one rule: you must put in the first 13 songs no matter what. Even if your wife “snuck behind your back” to download a bunch of REO Speedwagon and Michael Bolton, you have to list it[1]. Without further ado, here’s today’s list from me. The fact there are TWO tracks from Bruce McCulloch’s album Shame-Based Man in a shuffle that contains over 5,000 songs should be enough to make you question iTune’s shuffling ability. I might go to WinAmp next week.

  1. Dumb – Nirvana – Unplugged in New York
  2. Peace Frog – Doors – Morrison Hotel
  3. The Whistle Song – Frankie Knuckles – X-Tendamix Dance Mix ’92
  4. Arctic World – Midnight Oil – Diesel And Dust
  5. He Said, She Said – Bruce McCulloch – Shame-Based Man
  6. Il Vecchio Castello – Minneapolis Symphony Orchestra – Pictures at an Exhibition
  7. Take Me to the River – Commitments – Commitments
  8. Queen of Darkness – Ugress – Single
  9. Grade 8 – Bruce McCulloch – Shame-Based Man
  10. Territorial Pissings – Nirvana – Nevermind
  11. As I Wind Down the Pines – Tragically Hip – Music@Work
  12. Wake Up – The Walkmen – Everybody Who Pretended To Like Me is Gone
  13. Stay On Top – Kick Axe – Vices

[1] – My list had freakin Frankie Knuckles and Kick Axe in it, so you know I’m taking this rule to heart.

Quick Look – Dungeon Siege II Demo

Filed under: Games by Nathan @ 8:36 pm

So the latest edition of one of the rags I subscribe to shows up Friday (PC Gamer in this case. Why do I subscribe to this magazine even though the only game I managed to get through last year was Half Life 2? I guess because it’s cheaper than buying it at the bookstore. Duh.)

It comes with a DVD now, and I noticed that there was a 14 day free trial of World of Warcraft on it. I watched Tim live through the horrors of WOW addiction, so I wasn’t even going to install that one. But a beta/demo of Dungeon Siege II was also on the disc, so I installed that. I never played the first one, but here are my impressions after finishing the demo (only a few hours worth – nothing big.)

It’s very Diablo-like, for all that’s good and bad about that. You’ve got your teleporters, and your chest o’ stuff in town, endless amounts of proverbial ph4t 1007 (fat loot, for the 1337-impaired) and enchantable weapons. A big difference is that DS has a fully-3D camera and you can pan and zoom and all that jazz. I was able to cruise @ 1280×1024 with a good frame rate and looked mighty fine. The skill system was your standard pick-up-points-and-assign-them-to-different-hierarchies system, but all in all it was a pretty fun couple o’ hours.

Perhaps the best compliment I can pay is that when this game comes out in the fall, there is no way in hell that I am going to buy it, because I just don’t have that kind of time.

July 30, 2005

MP3otW – The Martians Aren’t Coming by Lungbutter

Filed under: MP3 of the Week by Nathan @ 5:05 pm

During the whirlwind that is my life, I have been in two bands (or one band with two names, as the case may be) – Psychedelic Toque and Nicely Warped Table. In the interest of full disclosure on this week’s tune, I was good friends with Lungbutter’s vocalist, the Rev. Reed Collins, during my university days…and I am the Nat X mentioned in the liner notes of Available Now. He played guitar and sang on the NWT Light My Fire cover (called Pants on Fire, it featured Dave Calam’s chillingly accurate rendition of Ray Manzarek’s famous organ solo — on an accordian.) Our other great collaboration was when the mysterious Nat X started a rap band with Reed (as Col Rock) and a third member (to be billed as Ton Def.)

Anyway, Lungbutter is right up there in the running for weirdest band in the world, and with songs like Antifreeze Ain’t that Bad, Boot Raper, Sewage Missle and of course Check It Out Dude, Get Ready, Cuz We’re Rock’n'Roll Rebels Cruisin’ For Chicks In Our Metal Machine, Baby, All Night Long, Alright, Oh Yeah! (A Rock Anthem) Dude. (We Really Know How To Rock.) You can’t make this stuff up, folks.

Anyway, I’ve decided on a cute little ditty called The Martians Aren’t Coming from their third album The Most Hated Band in Town. If you like a side of satire with your bizarre musical tracks you’ll like this one. Or you’ll hate it. Either way, I don’t think Lungbutter would mind.

July 29, 2005

IDEA pwns JBoss 4 dev

Filed under: Craft of Dev by Nathan @ 8:36 pm

As le Fuchs will tell you, that is not a typo. Anyway, as you all know, I’m a whore for IntelliJ (does that make Jetbrains my pimp? uh, let’s get off that train of thought before I have to declare this blog AO.)

Anyway, to get my so called “point”, I was working a build file so that it worked everywhere it needed to (build server, command line, and in the IDE) and when everything I was working I said something to the effect of IDEA is like the command centre, if only it could run JBoss. Eskimo Bill said something to effect of I’m pretty sure it can, “Nathan” (if you don’t get the name in quotes thing, you should watch the second series of the hit BBC comedy The Office)

I dutifully explored my plugin options and sure enough there is indeed a JBoss plugin. I recall playing with the Tomcat plugin a long time ago and thinking it was worse than Gigli, but I decided to give a chance. Turns out it’s actually pretty cool.

Basically, you tell it where your JBoss is installed and then you have a little setup w/ a target that lets start it up and see the logs running in IDEA. Not groundbreaking, but there are two things that are sweet:

a) One click debugging. This plugin sets up a debug target that starts up JBoss with all required options for attaching a debugger and then actually attaches said debugger. Now I know I’ve said that debuggers can be a crutch (and they can be), but when you need them, you need them. With this plugin, all you have to do, quite literally, is set a breakpoint, and then run JBoss. No alternate run.sh files, no messing around with IDEA to hook it up. It’s phat.

b) Log highlighting. Another nice touch is that whenever there’s a stacktrace in the log, if you’ve compiled your code with debug=”true”, then for each file that you have in your project, there will be a handy dandy hyperlink to the exact line of code that threw said exception.

As for what’s bad? Well, when you shutdown JBoss, it can take a little while. And if you don’t know this, you might try to start it up again and it won’t work and you’ll get all pissed off. But now you know. The only time I’ve ever really had to restart while developing is after too many hot deploys, when JBoss likes to throw an OutOfMemoryError tantrum, take it’s ball, and go home.

I did NOT play with the deployment bits of the plugin – like most projects I’ve been on, we have an ant file that does the building and deploying, and it just doesn’t seem worth the trouble to partition everything into different module “types.” If anyone out there has used this side-by-side with ant and had good results, lemme know.

Anyway, the moral of the story is that IDEA is now pretty much my command centre, and while it doesn’t have a web browser, I don’t mind having to use Firefox.

July 28, 2005

Eskimo Bill Says… (2 in a series)

Filed under: Eskimo Bill by Nathan @ 3:49 pm

…You break the build, then you wear the hat.

Eskimo Bill Says… (1 in a series)

Filed under: Eskimo Bill by Nathan @ 3:45 pm

…People with flames tattooed on the side of their head, usually don’t see 80.

July 25, 2005

Is your Java offensive or defensive?

Filed under: Craft of Dev by Nathan @ 10:42 pm
1
2
3
4
5
6
7
8
9
10
// Snippet 1
private long day = 0;

public final void setDay(long day) {
    this.day = day;
}

public final long getDay() {
    return day;
}

Okay, that snippet is about as boring as a Philip Glass opera. But you’re slinging code for some fly-by-night dot-com and in the middle of a jsp you’re iterating over a collection of these and need this exact same value as a date. Before you get all amped and use your pimped-out IDE to refactor this property (obligitory push for IDEA), you remember that you published this API when you merged with some other fly-by-night dot-com and they saw a way to quickly burn through some proverbial VC caish reuse existing technologies to create positive NPV. If you hit that “Do Refactor” button, then you’ll have a geek mob ready to rumble at your office door.

You might just say “use a scriptlet to create a date object and then a SimpleDateFormat to display it.” In the interest of creating a kinder, gentler world, I will pretend you didn’t say that. What we really need is another accessor method, something like “getDayAsDate()” that gives us the value as the object we want. I’ve actually seen people do something like this (adding to the code above):

1
2
3
4
5
6
7
8
9
10
11
// Snippet 2
private Date dayAsDate = null;

public final void setDayAsDate(Date dayAsDate) {
    this.dayAsDate = dayAsDate;
    day = dayAsDate.getTime();    // WTF?
}

public final Date getDayAsDate() {
    return dayAsDate;
}

They feel proud and good, strong enough to take on the world. The code is written, they are a star, and then one day the bug hits. The two variables are not in sync, and eventually somebody writes the following innocuous code.

1
2
3
4
5
// Snippet 3
Date d = new Date();
transferObject.setDayAsDate(d);
// ...lotsa code here...
d.setTime(12345645);

And bang, there is no security for your data, making this offensive code. If you didn’t see it, don’t feel bad – not many do. The deal is that when the variable d gets changed in the calling code, it also changes the “private” date in the transfer object, but leaves the long untouched. This may or may not cause problems, depending on what the user is trying to accomplish, which means it’s something that you must consider as an API author. The most obvious way is to play it safe with this new property, and write defensive code:

1
2
3
4
5
6
7
8
9
10
11
// Snippet 4
private Date dayAsDate = null;

public final void setDayAsDate(Date dayAsDate) {
    this.dayAsDate = new Date(dayAsDate.getTime()); // Note the defensive copy
    day = this.dayAsDate.getTime();
}

public final Date getDayAsDate() {
    return new Date(dayAsDate.getTime()); // Note the defensive copy
}

So now things are safe, but something’s really gnawing at your gut – having two properties, even if they are sync’d, really seems like a waste. You’re right, it is. We can take advantage of the fact that properties are determined by the presence of get/set methods, not on the presence of fields. In essence, we can have a many-to-one relationship between accessors and fields. In this case, our last refactoring (for now) of our new property is to ditch the field and base the dayAsDate accessors on the day field.

1
2
3
4
5
6
7
8
9
// Snippet 5
public final void setDayAsDate(Date dayAsDate) {
    // private primitives cannot be modified externally
    day = this.dayAsDate.getTime();
}

public final Date getDayAsDate() {
    return new Date(day);
}

Generally when I point this code out to people, they really don’t like the idea of the get method always creating an object, but as we saw in snippet 4, that if you want to be defensive, you create a new object anyway, so this has the added benefit of removing any need for synchronizing two fields. And in your little jsp, you can just go ahead and type out.

1
2
< %-- Snippet 6 -->
<fmt :formatDate value="${transferObject.dayAsDate}" pattern="MM/dd/yyyy"/>

The moral of the story is it’s really easy to write offensive code, but you have to think a little to write defensive code.

[Update] Dag, I need a proofreader. Ron was right, and I’ve changed the example slightly so it makes sense to all.

July 23, 2005

A Bourne Chuckle Due East

Filed under: Industry by Nathan @ 10:22 pm

Middle East that is (yeah, the title is weird but I was attempting to be artistic – think about it!) Anyway, came across a different look at the war on terror over @ Sun Ray blog and thought it was pretty funny.

For hardcore Unix nerds only, although I’m sure linux folks will like it, even if it’s just Bourne, not Bourne Again.

MP3otW – Einstein on the Beast by dj BC

Filed under: MP3 of the Week by Nathan @ 3:52 pm

I don’t hate Philip Glass. But I hate boring music, and while he’s produced music I didn’t run screaming from, he is boring. So when I found this little ditty by dj BC (from his album Glassbreaks), I was kinda stoked.

Called Einstein on the Beast, it mixes excerpts from Glass’ opera Einstein on the Beach with the Beastie Boys rap Pass the Mic, from the most excellent Check Your Head. Not only does this make Philip’s music more palatable, but it makes me think that Enya could work if you remixed her with House of Pain. Or maybe Nana Mouskouri and Organized Rhyme.

Yeah, that would be sweet.

July 22, 2005

Pittsburgh wins lottery

Filed under: Sports by Nathan @ 10:10 pm

So Mario Lemieux, once the “next Gretzky” (and probably a better player – look what he’s done despite the injuries), picks up the “next Mario” (let’s forget about that whole Lindros thing – the best thing he ever did was help Colorado win 2 cups.) Let’s face it, with 168 points in 62 games, the kid’s got something. Even better, it looks like he and the rest of the league might actually get a little help from some rule changes. While TSN has a good summary, here are the highlights as I see it:

  • Shootouts. Finally, no more ties! I know there will be grumbling about this one, but I say it’s about time. I never want to see one in the playoffs, because sudden death overtime is an order of magnitude more thrilling than a shootout, but if it means I never have to watch a lazy reg. season tie again, I love it.
  • Two line passes are in. Give hockey a fast break strategy and another weapon against the trap. Another good one.
  • Tag-up offside is back. I’m wait and see on this one – if every team’s strategy is a dump and chase, well…
  • Goalies now have a restricted area in which they can play the puck. It’s about freaking time for this one – I’m sick of untouchable goalies slowing down the game by skating waaay out of their creases to stop a puck.
  • Zero tolerance on obstruction. Face it – we’ll believe it when we see it. We’ve heard it before, yet we continue to see big, slow defensemen slowing down the speedier guys by latching on with the ol’ hookeroo and going for a ride. This (along with the reduced size goalie equipment) is probably the most important thing to make the game worth watching again.

In short, I was never all that bitter about the strike, and I’m looking forward to the season starting up again, so let’s play ball. Well, you get the point.

Longhorn to become Vista

Filed under: Industry by Nathan @ 10:08 pm

[man walks into a software store, Bruce McCulloch is behind the counter playing his "Doors Fan" clerk]

Clerk: You know that new Depeche Mode album? It sucks.
Clerk: You know that new Happy Mondays album? I don’t know if there is one, but if there is? It sucks.
Clerk: You know the new name for windows? It sucks.

“Clear, confident, connected.” So goes the tagline for the next version of Windows, now officially called (wait for it…) Vista!!! It’s not April, so I guess it’s serious; as Shatner and Rollins might say, I can’t get behind that.

While I’m sure it’s meant to inspire, I can’t get the image of some rusty old Vista Cruiser wagon out of my head. You know the kind — rusted and bloated, needs a screwdriver crammed into the carb to start, and doesn’t even come with WinFS. Kinda like, well, this:

1968 Vista Cruiser
The new windows?

July 20, 2005

James “Scotty” Doohan. Dead @ 85

Filed under: Grab Bag by Nathan @ 8:33 pm

I’m not going to make any transporter related comments because Wil Wheaton already did and I figure he has dibs. To be honest, aside from a Next Generation rerun fixation, I’m not a huge Star Trek fan. For what it’s worth, condolences to his family and the convention circuit. I hadn’t heard anything about old “Scotty” in years – maybe he should’ve recorded a few albums or something.

On the inevitable tangent, the Ront was bothered by the fact that there are holes in my Star Trek movie collection (I’m currently missing 1, 3, 4, 5, 6, 7 ,8, 9, and 10); apparently it’s okay to stop, but not to have holes. That is an elitist completist, my friends. He shouldn’t talk, until not that long ago, his precious Van Halen CD collection had a big gaping hole right where 1984 usually fits.

July 16, 2005

MP3otW – Good Girl by Lisa Whelchel

Filed under: MP3 of the Week by Nathan @ 8:36 pm

In the rush to laugh off the albums of such “now I’m an actress now I make crappy dance music” notables as Linsday Lohan and J.Lo (yeah, Lohan can’t act and Lopez hasn’t done anything worth watching since Out of Sight, but you get the picture), it can be easy to forget that it’s been happening forever. In that vein I proudly bring you the absurdly manufactured can’t-enjoy-it-even-in-an-ironic-way pop stylings of Lisa Whelchel (you will remember her as Blair from The Facts of Life.)

The song, from her album All Because of You is called Good Girl, and while it’s not so bad that you’ll gain sudden respect for Britney Spears, it will make you feel better that a band like Sleater-Kinney is around. If all the digs that the Simpsons take at the Grammys weren’t enough for you to completely dismiss the awards, maybe the fact that this album was nominated for one will be the proverbial straw. Nominated for “Best Inspirational Performance”, the album lost to Donna Summer; I’m not sure it inspired anything other than teen queen wannabes like Tiffany and Debbie Gibson to think “Damn, I could do that.”

To prove I’m not entirely evil, feel free to cleanse your palate with this Hate Dept. cover of the theme song from Lisa’s Diff’rent Strokes spinoff.

A New Look

Filed under: Announce by Nathan @ 7:16 pm

Eskimo Bill was giving me some sass about my unabashed use of the default template, so I figured I’d do something different. Since I don’t have the patience to fool about with CSS and the like, I pretty much downloaded the first thing I saw that I didn’t hate.

So while I don’t know if it’s better, it’s different. I like it.

July 14, 2005

Weird Boat Phobias

Filed under: Grab Bag by Nathan @ 7:50 pm

You know, there are a lot of strange phobias that people have when they’re on boats. Things like thinking there are piranhas in tiny backwoods cricks that are too cold to drink and barely deep enough to float an unburdened kayak, or sharks in the Pacific Ocean off Tofino, or that anchors are somehow taunting you and waiting for the right moment to strike.

A couple weeks ago, yours truly was on a boat — a pretty big boat. And I was stricken by the same phobia that’s gripped me ever since the first time I half-heartedly strapped some painfully orange floatation device to my back so I could get in a paddle boat with my lady friend. What is that phobia? I’m irrationally convinced that my glasses will fall off my face and into the water. No matter how solid they feel during the other three nines of my time, they’re always on the verge of slipping off my ears, down my nose, and knifing their way through the murky deep to Davey Jones. He obviously collects such specimens in hopes that eventually a pair will help him see.

While their may be many different psychological explanations for this, I think I finally nailed it: I can swim, but my $400 prescription sunglasses cannot.

(Annoying “yet tangential enough to convince naive people it’s not totally a non sequitur” segue: I can’t see, read, or hear the words “Davey Jones” without thinking of the following Beastie Boys lyric, from Rhymin’ and Stealin’ on Licensed to Ill:

Black Beard’s weak – Moby Dick’s on the tick
‘Cause I pull out my jammy and squeeze off six
My pistol is loaded – I shot Betty Crocker
Deliver Colonel Sanders down to Davey Jones’ locker

Those guys were pretty good at droppin’ names. )

July 10, 2005

Sun to avoid Eclipse

Filed under: Craft of Dev by Nathan @ 7:14 pm

I think we all suspected this all along, but in an interview with InfoWorld, Sun VP of Java Web Services and Tools marketing, Joe Keller states that Sun will continue development of NetBeans and that (for the time being, at least) the force behind Java will not be joining the Eclipse Foundation.

I haven’t used a recent NetBeans release, and in fact the last Sun IDE I used was Forte (version 3.0 or something) and I found it rather painful. I haven’t done any serious work on Eclipse either, because each release always strikes me as having caught up with the latest version of IntelliJ IDEA (all hail Jetbrains!) But I think that just illustrates why Sun is making the right decision here – it’s about choice, and it’s about competition, and it’s about trying to stay honest.

I’ll give you that .NET is functionally equivalent to J2EE, in that you could do any given project on either platform, but the reason I keep with Java is the community. And while one could get mad at Sun about a lot of things, this isn’t one of them.

“Classic” Doom 3

Filed under: Games by Nathan @ 6:47 pm

I’ve been playing through Doom 3 and the hell level just got to be a little too much (yeah, that’s right, I was scared :-P ) So I was surfing the web and happened upon Doom 3 Classic. Despite my internal emergency warning system (“This is not a test”) I downloaded and installed it. Here are my thoughts:

E1M1: The Hangar
“Cool, Doom was awesome!”

E1M3: Toxin Refinery
“I miss all these monsters. Sweet, a soulsphere! Keycards blow”

E1M4: Command Control
“Man keycards blow. A maze? WTF? Hmmm, looks like I missed some switch to extend this bridge. I’m bored.”

Cue the fat lady, ’cause I’m pawing for the exit button. Turns out remakes are never as good as you remember the original to have been (someone should’ve told Van Sant that before he actually went through with that Psycho nonsense.) The cool things were no weapon reloading, running as long as you want, and lots of monsters (although my machine wasn’t up to the task – things got sloooow.) The not cool things were, well, everything else.

It’s not that it was soul-crushingly bad so much as completely unnecessary.

Review – Has Been by William Shatner

Filed under: Sound by Nathan @ 1:57 pm

November 2004, Toronto; I was there to become a better person. Well, at least a better manager. Preflight, I caught some bug that left me sicker than a dog (whatever that means.) I staggered into the Hilton, likely scaring the lady at the counter, and proceeded up to my room to pass out for the better part of the next day and a half. When I awoke, I took my course and when all was said and done, I figured I should do something in Toronto.

I walked until I found some city block with elephantiasis of the mall. I wandered without purpose, soaked in the leering prurience of unbridled consumer consumption, when suddenly I thought to myself “didn’t Shatner put out another album?” My mission, should I choose to accept it, would be to procure a copy of said disc. Turns out I was standing beside an HMV, so the mission was kind of easy. I dodged the hoi polloi and, safe in my hotel room, I put the disc into my laptop and gave it a listen. Turns out Ben Folds stepped in to produce and co-write a lot of the material, so not only is it not horrible, it’s actually kind of brilliant. Love or hate the “music” of the erstwhile Captain Kirk, you have to concede the point of his originality.

The set opens with Joe Jackson assisting on a rocked-out and dichotomous cover of Pulp’s Common People – it’s the perfect opener but doesn’t set the tone for the album at all. It then runs the gamut from Shatner’s deeply emotional memoir on the night his wife died in What Have You Done to a campy, church choir assisted rumination on the nature of death (“Live life like you’re gonna die/because you’re gonna”) in You’ll Have Time.

Stand out tracks include the vitriolic stream-of-consciousness blur of I Can’t Get Behind That (I guarantee that if you haven’t read the liner notes, when this comes on you will say “Is that Henry-fucking-Rollins?” and you’ll do a Cheshire Cat when you realize that yes, yes it is Henry-fucking-Rollins), the poetic and trippy folksiness of Together, and the best track of the album, That’s Me Trying. Penned by Nick Hornby (yes, author of High Fidelity) with the chorus filled out by Ben Folds and Aimee Mann (I’ve loved Aimee Mann since Magnolia), Big Willy’s delivery makes you think he’s talking about his life (“I know I haven’t been the best of dads/I’ll hold my hand up there/The reson that I’m writing is I’d like for us to meet/Get a little daughter dad action going.”) In the end , it’s a lot of fun, and when the first pass ended, I started it over again; it’s been in the rotation ever since. In the words of the man himself…

What are you afraid of?
Failure?
So am I
Has been implies failure
Not so
Has been is history
Has been was
Has been might again

five star

July 9, 2005

You CAN care less

Filed under: Grab Bag by Nathan @ 12:39 pm

Okay, people seem to argue over whether you should say “Well, I could care less” or “Well, I couldn’t care less”.

Some say the latter, because that means you care the absolute minimum, there is no less. But I contend that you can never actually say that, because the only way you truly couldn’t care less is if you didn’t care at all. And the only way you couldn’t care at all is if you didn’t even know about it, because the mere act of knowning about it means that, by definition, you cared enough to know what it is you claim you can’t care less about. QED?

Besides, I always thought the former was more insulting. “I could care less” means I care so little about what you’re saying that I could care less if I wanted to….

Ex. 1

Person 1: I tell you, Anthony Michael Hall doesn’t look anything like I thought he would when he got older.
Person 2: I could care less.
Person 1: Touche

Ex. 2

Person 1: They’re finally going to cancel the Cathy comic strip
Person 2: I couldn’t care less
Person 1: So what you’re saying is that you secretly love Cathy and you will cry yourself to sleep tonight?
Person 2: Touche

July 8, 2005

A Haiku…

Filed under: Games by Nathan @ 4:58 pm

Do not play Doom 3
When you really have to pee
Don’t ask, just trust me

Powered by WordPress