Tuesday, May 15, 2007

Facebook's bottomtooth problem

Lately I've been on Facebook fairly often -- I think they've made some good changes recently, and one of them is a generally spiffy-ing up of the layout of the site. But there's one thing that's been driving me nuts:


What is the deal with that little pokey extra bit on the edge of the content area for the pages? Is that designed that way? Is it some kind of flare or flashyness that's supposed to be cool? Well, all it does for me is make my eye keep drifting to the little notch that's been slashed out of the side of the page, so I wrote a greasemonkey script to fix it: here it is, if anybody else wants it.

Thursday, May 10, 2007

4 GB in a plastic tube

For some reason I won a Computer Science award at my college. There are a few points that make this an interesting situation:

  1. I was not, in fact, aware that this award existed
  2. At no time was I aware I was eligible for, let alone being considered for, the award
  3. I do not believe I have earned an award: I consider myself a mediocre programmer for the most part and a positively rotten student
All that set aside, it's a nice little bullet point on my resume near where my degree info is about to go. I also got a little congratulatory gift from the CS department -- a 4 GB flash drive. Admittedly, that's pretty nifty. I wanted to use it for Vista's "ReadyBoost", but it apparently doesn't have the "necessary performance characteristics", which I'm starting to think just means it wasn't made by some company that's in bed with Microsoft, since it won't tell me what the necessary characteristics are.

Even so, I can always use 4 GB of portable space.

Wednesday, May 9, 2007

Software Testing

I just finished my last major college project (hopefully!) for my "Software Testing" class. It was an arduous, trite, annoying 24-page assault on everything I know about "good" and "bad" documentation.

I have a recollection (of the sort that might be real, or might just be something that seems like it ought to have happened, and so now, as far as my brain is concerned, it's a real memory) of my mother asking me after I finished some homework when I was younger if I didn't feel better now that it was out of the way... the answer then is the same as the answer is now after this software testing paper: No.

I feel more like this: Imagine you're being raped in the ass by the pointy end of a rhinoceros and then I shoot through your groin with a high powered rifle and kill the rhino. Do you feel better? Maybe. But not for long. Technically, it's "better" now that a giant horn isn't ripping your intestines apart any more, but in a couple of seconds you're going to really wish it hadn't happened at all. So that's how I feel: like I've been raped up the ass by a rhino and shot in groin. I want my 4 hours back you son of bitch!

More than that, this testing class has really terrified me. Is what we saw in class really representative of the current state of testing in the software world? The "W Model"? My god: that's like taking pipes covered with asbestos (the "V Model" of software development), which already gives people cancer, and wrapping them in fiberglass insulation that's full of holes so that people both get cancer and get lots of little glass splinters.

It's archaic.

Worse yet, it was a class of badly taught archaic methodologies. We never saw a real, concrete example of a test case put together and explained in detail. We didn't experiment with jUnit. We didn't do a static code review in class. We didn't review a requirements document to see if it was even in the realm of "testable" and "accurate". We had a professor who dodged legitimate questions and didn't ever seem to have any good facts at hand to back up his statements.

We had 3 hours a night for what, 12 weeks? As a group we had, essentially, one full work week worth of time. We easily could've broken into groups, written a complete (albeit very very short) software design document, done a static review of the document, prototyped the application, written test cases, configured an automated build and test process with Ant and jUnit and gone through a complete testing cycle.

I know, it seems like so much work... it isn't. We didn't have to code a new operating system from scratch, or build a movie-production quality 3D rendering package. We could've written Tetris, or Space Invaders, or a fucking calculator, or Minesweeper, or a program to draw happy faces depending on the time of day or the weather, or goodness knows what else.

So why didn't we? Simple: we suck. We all suck. The students are bored and unmotivated (justifiably so, perhaps), the professors are overworked, underpaid, behind-the-curve, and consequently getting pretty damn lazy in their personal ruts, the school doesn't support technology nearly to the degree it should (the CS department has no wireless network -- the dining center does though), and there's now three and a half years of lazy teaching and lazy learning behind everyone in this class.

Write a program in 40 hours with specs and tests and all that??? It would take 30 hours just to lookup how to start the program from scratch! We've never done anything like that before!!! ::panic ensues::

The whole lot of us needs to grow up.

I'm not mister follow-through -- I've always had a hell of time ever finishing anything; it's a big problem for me, but at least I work on it -- but I wrote iTunesBiggieView in about an hour. You can write a supporting tool in a day -- a "work day" -- eight hours. With 36 hours of class time that leaves 28 hours to write docs and build tests and learn shit.

I really wish we'd spent those 36 hours learning shit, instead of getting fucked in the ass by the rhinoceros named boredom.

Tuesday, May 8, 2007

Vista: Bad with Turtles

So, it turns out that the reason for Vista's incessant Explorer crashes was TortoiseSVN -- the very nifty application that extends Explorer to handle Subversion source code repositories. Problem solved with a minor upgrade.

Now Vista is as stable as a... slightly wobbly but well set Jello mold. Today Explorer crashed as soon as Vista started, but it hasn't done it since. I guess that's "better".

I gave Ubuntu Linux a shot as well, after a job interview asked me why I didn't use Linux, since I am a self-proclaimed geek. What I found out (err... remembered) is that while I am a geek, I'm a utilitarian geek, and Linux just doesn't seem to offer me much over Windows. Sure, stability and programmer friendliness is nice, but obnoxious configuration files, holy-war-style communities, and out-of-the-mainstream applications don't help me get shit done fast(tm) which is, after all, the point. At least, it's my point.

I almost signed up for Flickr, but remembered I already had a photo album at Picassa, so that won. I'll probably regret that, but Google either scares me less or does a better job of scaring me into submission than Yahoo.

I also took the time to write this little C# app:


It's pretty rough around the edges right now, but all it really does is display the album art and title for the track I'm listening to iTunes... but it displays the title in BIG TEXT. I don't know why I can never get this functionality right out of the box with a music player -- WinAmp didn't do it either.

I like to be able to read the track title from across the room. Sometimes I'm doing stuff when the music is on -- why should I have to get close to the computer to see what I'm hearing?

Moreover I use my TV as my second monitor in a dual view setup (I know this is weird, but I only have one monitor and sometimes you really need a second screen to debug DirectX / XNA apps) -- and a standard TV has a resolution of crap x shitty, so I can't even read the standard size font in iTunes on my TV.

I should probably sell iTunesBiggieView... but it just doesn't seem like I put enough work into it to ask for money :b

Oh, and Zelda in a browser: totally reasonable. I'm tinkering with the map editor now.