We are experiencing some wickedly hot temperatures here in North Carolina. It’s forecast to be 99 degrees today (heat indicies of 105-110) and 101 degrees tomorrow (heat indicies of 110-115). And it even continues into Wednesday! With temperatures like this, there’s virtually nothing you can do except stay indoors. I’m sure plenty of people are heading to their local pool or swimming hole, but I prefer to stay in the A/C. Plus, I’ve been sick, so swimming around wouldn’t do me any good anyways. Thankfully, it looks like things will cool off this coming weekend. Autumn just can’t get here fast enough!

Recently, the Mozilla team changed the upcoming Firefox 1.1 release to version 1.5 instead. This got me thinking about version numbers in general, and how silly they are. I have gotten trapped in this kind of thing before, so I’m no less guilty than the next guy. Here’s what I think is wrong with version numbers:

Actual Numbers are Too Vague
As they are, version numbers are a little too vague. How is 1.0.3 different than 1.0.3.1? Well, we put in a teeny-tiny change that didn’t warrant the 0.0.1 number bump. So why didn’t you name it 1.0.3.0.0.0.1 if the change was so tiny? Well, it wasn’t that tiny. Sheesh.

Leading Zeroes
This is one place where I have been caught before. Typically, a leading zero (as in 0.8 or 0.9.1) indicates that the software is in a test or “pre-release” phase, and that is just fine. But there are far too many abuses of this numbering scheme. Firefox extensions like ForecastFox or Web Developer (both of which use leading zeroes as of this writing) are far too mature and stable to warrant the leading zero. Go to a 1.x release already, dammit!

Version Numbers Too Long
The maximum length of any version number should only ever be 3 positions long: “X.Y.Z.” That’s it. If you want some sort of date stamp for nightly builds, have that as a separate item; not as a part of the version number. I should not have to see versions like 1.03.45.1200.129393.120202 any more. And non-sensical stuff, like Adblock’s version of “0.5 d2 nightly 39” should be outlawed from the planet. Please, use numerals only.

Arbitrary Number Change Decisions
This kind of stuff irritates me, but I’m also guilty as charged. The Firefox team feels like the changes they’ve made are “worth more” than a 0.1 version number bump. I heartily agree. But this 0.5 version bump is a joke. Just bump the major version number! Go directly to 2.0 – do not pass Go and do not collect $200. What’s so bad about that? The next release, if it’s just as big, can be 3.0. And then we can go to 4.0 if necessary. Everyone is so scared of their version number becoming too “large”. Think about it: how many programs out there are version 12.0 or version 29.3? Not many. Once we reach double digits, we feel like we have to come up with a fancy name (like “XP” or “2005” or whatever else). The AutoCAD folks had it right years ago. “Buy AutoCAD 14.0 today,” they would advertise. Now it’s simply AutoCAD 2006. How cheap. What happened to AutoCAD 20.0? That’s just as “cool” sounding.

Although I disagree with the ESRB’s revocation of the Grand Theft Auto: San Andreas rating, I can plainly see that Rockstar Games is at fault. If you aren’t going to make use of some material, why leave it in the game? That was data I spent time installing, wasting a few seconds of my oh-so-precious time. But perhaps we are pawns in their grand, evil scheme. Rockstar might have known all along that this would happen, that it would create incredible controversy, and would therefore increase sales. Whatever their reasoning, I think Tycho and Gabe hit the nail on the head about this story. It’s fairly clear that the guys at Rockstar aren’t thinking at all.

I picked up a copy of the game last weekend, and have been playing it sporadically ever since (I just don’t have the time I’d like to devote to it). All I can say is that this is, by far, the best game in the GTA series. Although the graphics don’t touch games like Half-Life 2 or Far Cry, the environment is highly detailed. And it’s the little things that make the game so interesting. You can play a full game of pool (8-ball) in a number of locations, placing bets on whether you will win or not. Or drop by one of the arcades in town, and play the video games inside (this is one of the weirdest levels of recursion ever: having your video game character play a video game). Or shoot some basketball over at your friends house.

I should also mention that the game map is way bigger than GTA 3 or GTA: Vice City. I have yet to leave the first city (there are a total of 3), and I’ve barely even scratched the surface in exploring it. Los Santos is the name of the first city and, whether it’s inner city slums, high-priced villas in the mountains, or a farm out in the country side, the level of detail of each is incredible. You could quite literally spend hundreds of hours exploring this game. And that’s exactly what I plan on doing over the next several weeks.

I’m highly excited about version 1.1, which draws nearer every day. The fixes that have been going in to 1.1 keep piling up, as evidenced by the nightly logs over at The Burning Edge. Some of the coolest features being included in 1.1 include:

An improved automatic update system

Fast back / forward

Better cookie management

Better extension management

Stay tuned to sites like MozillaZine, The Burning Edge, and others for the latest in Firefox news.

I’m all for healthy competition in the video card industry, and I think it’s a good thing that both ATI and NVIDIA are slugging it out to see who’s on top each week. But I’m seriously considering going back to an NVIDIA based graphics card. The last NVIDIA card I owned was a GeForce 2 MX, the budget model of the GeForce 2 family. I never had issues with drivers, and the card was as solid as a rock.

Then I made the switch to ATI (they had become King of the Hill at the time). My current card is a Radeon 9700 Pro, and I have had nothing but problems with it from the beginning. Whether it’s a corrupted boot up screen, crashes with various games I own, or just plain flaky-ness, this card has left a bad taste in my mouth for ATI. The NVIDIA card I’m looking at going to is the eVGA GeForce 6800 GT, one that has been getting rave reviews. The price is a little hefty, but I can afford it. Besides, my time and frustration have to be worth something.

Over the past few days, I’ve been playing through the first two Serious Sam games again. I had truly forgotten how much action is packed into these two games. Having to wade through 1000 enemies in the course of only one level is quite a tension-inducing feat. All this action is making me hungry for Serious Sam 2 (an odd title, considering that it’s the third game in the series). Fun new items are going to be introduced, my favorite of which so far is what I will call the Ball of Death, essentially a human hamster ball. Running over enemies with that thing has to be incredibly amusing!

I picked up a used 22″ NEC monitor tonight for $200. Not a bad deal, considering you can’t find new CRT’s that size on the web for less than $550. The color isn’t 100% (it’s more like 95%), but I think I can get used to it (and I might be able to tweak it some). What’s more irritating, however, are the front buttons. The plastic bezel around the front is placing some tension on these buttons, causing the monitor adjustment menu to show up at inopportune times. Perhaps I need to disassemble this thing to see what’s causing the tension.

Anyways, I can finally run my desktop at 1600 x 1200. How glorious the web becomes at that resolution! Screen real estate is freely available now, and I couldn’t be happier.

I do a fair amount of C++ programming these days, thanks to my new career at IBM. C++ is my strongest language, and the first language I picked up when I began programming. As such, it’s fairly special to me. However, the more I time I spend with C++, the more I come to see how broken it is.

For instance, why are strings not a base type? Character arrays simply do not suffice. I am aware of the STL string class (and I make use of it), but adding on this capability after the fact seems cheap. Strings should be a first-class object, and should have all the associated operators directly available (==, +=, etc.). And regular expressions should be directly available for strings, since they are so incredibly useful. There are tons of places in my code where access to regular expressions would make my life profoundly simple. For example, take Perl’s match operator (m//). How many Perl programs out there do not make use of this operator? My guess is that the number is very low. It’s no different in C++; reg-exes could be used all over the place.

Other glaring omissions also crop up. Where is the foreach loop construct? Why use #include instead of packages or modules? Where are the array operators (shift, unshift, pop, push)?

There’s no question that C++ is a robust language. It’s fast, gives the programmer complete control (both a blessing and a curse), and it has an incredible user base (which results in excellent support when you need it). But it’s clearly dated. Will we still hold on to this language in 20 years? Or will something innovative finally come along to push it aside? Let’s hope for the latter.

Firefox 1.1 rolls closer and closer. According to the Mozilla Quality Blog, the latest trunk builds are now officially Deer Park Alpha 2. Fast Back is now enabled, bringing a welcome new feature to the greatest little browser on the ‘net.

Update: I’ve been informed (in the comments below) that this is not an official Alpha 2, but that they are very close. Apologies for the incorrect statement.

CRT monitors are quickly becoming endangered. The NEC/Mitsubishi FE2111SB, a 22″ behemoth that I’ve had on my wish list for some time, is now incredibly hard to find. Most places that list it are strangely “out of stock.” And those stores which actually have some have increased their price by nearly $100! The end is apparently near for the tried and true CRT. Fare thee well, old friend.

One week ago today, I received my Creative Zen Micro in the mail, and I’ve been playing with it for the past week. All I can say is that this device rocks! Having never had an MP3 player before, I don’t have anything else to compare it to. But so far, I am very impressed.

I love sugar candy. Not that gross “chocolate” that people rave about (yes Virginia, I dislike chocolate). I’m talking about the Willy Wonka kind of candy. Gobstoppers. Nerds. Runts. These things are my crack cocaine, and I always enjoy eating a box (or two). But lately, I’ve been having a hard time finding what I want.

The big boxes of Gobstoppers are available everywhere, but I try my best to avoid those for the sake of my teeth (I can crack them open in one bite – a mark of a poorly made “jawbreaker”). Likewise, Nerds are relatively easy to find, but I don’t crave Nerds like I do the others, so I usually decide to pass them up when I see them in the store. But I have had the most awful time in locating a reliable retail outlet that stocks Runts. Nowhere locally seems to carry them. And if they do, the supply has always sold out by the time I arrive. Grocery stores, Target, Wal-Mart, drug stores … the list goes on of the places I’ve looked.

Interestingly enough, the same goes for those tiny rolls of Sweet-Tarts (the ones that look like Smarties). You essentially cannot buy those things anymore, and that really fries my egg! What is a brother to do when a sugar craving hits? Apparently, these companies would rather push their “special” versions of these aforementioned candies: chewy sweet-tarts, sour sweet-tarts – anything but the normal ones. How can such atrocities be justified?

Asa Dotzler has a new article up on the new update system coming in Firefox 1.1. This sounds incredibly exciting, especially considering that the update system in 1.0 basically didn’t work. The coolest feature for testers is the ability to get nightly changes through incremental updates. Everyone who tests should find their lives to be much easier once this system is deployed.

Having had a little more time to fully digest the Resurrection of Evil (RoE) expansion pack for Doom 3, I’ve thought of a few more things worth mentioning. The more I think about it, the more negative points I can see in the expansion. Here is a brief list:

Frame Rates: I don’t think Nerve paid near enough attention to this during development. There were a number of times when my computer nearly choked, something I never saw in the original game.

The Grabber: Countless people have likened the “grabber” in this game to the gravity gun from Half-Life 2. But those comments are a little too kind. The gravity gun in Half-Life 2 was way easier to use from a player’s point of view, and it worked way better. RoE’s grabber just isn’t as fun. While it’s cool to catch a demon’s fireball and shoot it back, I found the weapon required a level of accuracy that I clearly don’t possess.

Difficulty: At the “normal” level of difficulty in Doom 3, I never felt overwhelmed. This expansion was quite the opposite. Perhaps the developers chose to make it harder to create the illusion of an increased length. For me, it only resulted in frustration.

I just finished the Doom 3 expansion pack, Resurrection of Evil. The final boss battle was quite frustrating, and I (sadly) had to resort to “god” mode. The level designers simply didn’t put enough human souls around the final arena for use with the Artifact. Anyway, besides this disappointing boss battle, I think this expansion pack fixed a few problems with the original Doom 3:

The levels are a little more varied this time around (some great new locales were explored).

Lighting was way more acceptable; flashlight use was kept to a reasonable level.

A double barrelled shotgun was included. Why wasn’t this in the original game?

I might play through it one more time, just to check out the environments again. Overall, it’s a worthy expansion pack (which wasn’t a bad buy for a mere $15). My rating? 4 out of 5.

Went to see Star Wars Episode III this afternoon, and I must say that I was pleasantly surprised. Although I wouldn’t rank it better than episodes 4-6, it is clearly the best of the “prequels”. If you haven’t yet checked it out, I highly recommend you do so. It makes for a decent few hours spent out of the house. Natalie Portman is as attractive as ever, Master Yoda has some great butt-kicking scenes, and a number of questions are answered. A few awkward or cheesy scenes stick out like a sore thumb (Darth Vader’s “NOOOOO!” comes to mind), but they don’t detract too much from the overall plot.