Useful Tool: KeePass

Sep 18, 2009

For this month's useful tool recommendation, I'll be focusing on KeePass, an open-source password manager. Hopefully, everyone has already heard of this application and uses it on a daily basis. KeePass makes it easy for you to manage all of your various passwords in one location, and provides a host of security features for keeping those passwords safe. I personally use the older 1.x line of this tool, but a newer 2.x line has recently been released (and is no longer in beta, so it should be stable and safe to use).

KeePass has a number of features that make it instantly attractive. First, and foremost, it's an incredibly secure application. Your passwords are stored using either the AES or Twofish encryption standards, both of which are rock solid. The 2.x line of KeePass also features some in-memory protection of the various fields, helping to thwart keyloggers and the like.

Another great feature is the password generator, which is incredibly useful for creating very strong passwords. I've used this generator in a number of ways: to create WPA keys for routers, for TrueCrypt file containers, FTP accounts, etc. The password generator offers a host of options on how to format the password you desire, so you can easily fit into any password rule set.

Perhaps the most useful all-around feature is portability. KeePass can be run from a USB key, making it easy to carry all of your passwords around with you. This has gotten me out of some sticky situations at work where I quickly needed a password, and didn't know it off the top of my head.

If you've got a ton of passwords to remember (and who doesn't?), I heartily recommend KeePass. It's a tool no one should be without.

Two Lotus Notes 8 Tips

Sep 15, 2009

At work, we are being forced to Lotus Notes 8 by the end of the year. I recently rebuilt my laptop, and performed this upgrade at the same time. Since doing this, I've learned a few things that I thought I would share, seeing as Lotus Notes documentation on the web is very poor.

Tip 1: What to Copy During Upgrade

Apparently, copying your data file from one Notes installation to another isn't a good idea (more specifically, when changing Notes versions). However, there are a few things worth migrating so you don't lose all of your previous data. Here's a short list of things I found worth copying:

  • bookmark.nsf
  • desktop6.ndk
  • {USERNAME}.ID (where USERNAME is your user ID)
  • names.nsf
  • user.dic
  • archive/*.nsf
  • mail1/*.nsf

There are other files worth copying, so I hear, but these were the only ones I cared about.

Tip 2: Removing the MS Office Toolbar

One of the more annoying features of Lotus Notes 8 is a new "Office Add-in" that will appear in all of your Microsoft Office applications. It's a small toolbar containing three icons and, if you turn it off, it will reappear. You cannot uninstall this feature, but happily, you can disable it. Here's how:

  1. Open a command prompt.
  2. Change to the \notes\framework\brokerbridge directory.
  3. Issue the following command: regsvr32 /u officeaddin.dll

This will deregister the plugin DLL, preventing the toolbar from showing up in your Office applications.

I just found out that Intuit will acquire Mint for $170 million. Though I'm not surprised to hear about this, I'm a little disappointed. Intuit is the company that owns Quicken, so there are now fewer players in this game (which is never good). Time will also tell whether or not the service gets any better or worse as a result of this acquisition. The recent updates to Mint were spectacular, so I'm hoping their momentum continues. Being sucked into a large company, however, is never an easy transition. According to the Mint CEO, Mint will remain a free service, though I can imagine Intuit charging users for a "premium" version of this tool in the future. Only time will tell where this goes.

A recent newspaper review for the new computer animated movie 9 warned that the movie isn't necessarily kid-friendly, and that young children will most likely be scared from the post apocalyptic setting. Shouldn't the PG-13 rating indicate that kids under 13 probably shouldn't be watching it anyway? Why does the reviewer jump to the conclusion that, because it's animated, the movie is for kids? It frustrates me that Americans think animation belongs solely to children. The medium should be taken way more seriously than it is. Foreign films like Princess Mononoke (another PG-13 film) are proof that animation can be used successfully for adult topics. Someone out there needs to buck the current trend and develop an animated movie purely for adults; maybe something that's rated R. Though I can only imagine all the angry parents complaining that the movie was "too adult" for their kids.

Why can't Americans just grow up?

I'm going to start a new occasional series of articles covering helpful software tools that I find. To start out this series, I'm going to focus today on FileMon from Sysinternals (now owned by Microsoft). Several of the tools I'll be profiling in the coming weeks are from SysInternals, so I recommend checking them out if you're unfamiliar with them.

FileMon allows you to see file system activity on your computer in real time. It helped me to track down the slow startup bug in Firefox, and it has also helped me track down other issues (particularly during various application startup periods). Wondering why your disk is randomly thrashing about for no apparent reason? FileMon will tell you why! After firing up this tool for the first time, I was simply amazed at how often the file system got touched in one way or another.

It should be noted that FileMon is now a legacy tool. A newer tool, by the name of Process Monitor has replaced FileMon. Although I haven't yet used it, Process Monitor looks very promising. Not only does it allow you to view file system activity, but you can also see Windows registry activity, as well as process, thread, and DLL activity, all in real time. These are very handy tools that every software developer or power computer user should know about. I'll highlight more like this in the coming weeks.

Site htaccess Problem

Aug 28, 2009

I accidentally blew away the .htaccess file used here at Born Geek. If you spot any links or pages that don't resolve properly, please let me know.

Before we get to the meat of this article, here's a quick introductory story. The next release of Paper Plus will only allow one instance of the application to run at a time. One strange bug I ran into during the testing phase of this new feature, was the case where the application was minimized to the system tray. If a previous instance is already running (and minimized), I wanted the action of trying to start a new instance to restore the old one. For a number of reasons which I won't go into, I couldn't get the level of control I needed to restore things properly. So, to get things working, I turned to user defined messages which, happily, solved my problem. Here's a quick guide to getting custom messages up and running in a Visual C++ application.

Step 1: Define the Message ID

This is straightforward, but you'll need to make sure your definition appears in the appropriate place. I put mine in stdafx.h, which is included by nearly every file in the project.

#define WM_MYCUSTOMMESSAGE WM_USER+1

Step 2: Add the Message to a Message Map

Next, your custom message needs to be added to the appropriate message map. I added mine to the message map down in my CFrameWnd derived class. Here's how the entry looks in my case:

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
...
ON_MESSAGE(WM_MYCUSTOMMESSAGE, MyCustomCallback)
...
END_MESSAGE_MAP()

Step 3: Implement the Custom Callback

Your callback function declaration must adhere to the appropriate form, as shown below:

LRESULT MyCustomCallback(WPARAM wParam, LPARAM lParam);

Custom message callbacks must always return an LRESULT, and must accept two parameters: a WPARAM and an LPARAM (down under the covers, both are simply pointers of varying types).

Once you've got the declaration in place, it's time for the definition:

LRESULT CMainFrame::MyCustomCallback(WPARAM wParam, LPARAM lParam)
{
    // Do something clever here
    return 0; // Make sure to return some value
}

Step 4: Post Your Custom Message

Now that we've got our custom message callback installed, we need to post our new message in the appropriate place. I decided to use the SendMessageTimeout function, based on some code I saw which used this function to prevent the application from hanging. Here's a variant of the code I used:

DWORD_PTR dwResult = 0;
// The hWnd parameter below is a handle to the window this message
// should be posted to. Setting this up is not shown, in order to keep
// this article as short as possible.
SendMessageTimeout(hWnd, WM_MYCUSTOMMESSAGE, 0, 0,
                   SMTO_ABORTIFHUNG, 5000, &dwResult);

And that's it! Being able to post your own messages can help you out of some sticky situations, and lets you take control of your application in some interesting new ways.

Mint.com Updates

Aug 18, 2009

I have yet to check these out, but it looks like the folks over at Mint.com (which I recently wrote about) have made things easier in various places around the site. The biggest improvement for me is that you can now view a detailed time line of your net income, with way more stats than before. I am very excited about this new feature, and am looking forward to checking it out this evening.

Update: The new updates to Mint are outstanding! Everything I've wanted in the tool, plus more, is here. An already great tool has just gotten even better.

WTF?

Aug 18, 2009

I got the following catalog in the mail today, addressed to me:

I am neither female, nor am I African-American, nor do I plan on becoming either at any point in my life. Any ideas on why I received this?

Replacing GFS

Aug 14, 2009

The Register recently had an an interesting article on GFS2: the replacement for the Google File System. It offers insight on the problems Google is facing with the aging GFS. In today's world of video streaming, GMail account checking, and more, the GFS model doesn't hold up as it once did. According to the article, the new Caffeine search engine that Google is rolling out supposedly uses this new back end, resulting in faster search results. It should be interesting to see what other benefits come our way as Google tinkers with their engine.

Valve and Deaf Gamers

Aug 14, 2009

Gabe Newell, from Valve software, recently conducted a focus group session with deaf gamers. Three videos are available of this event: Part One, Part Two, and Part Three. Note that the audio quality is, ironically, pretty bad in each video.

One of the most interesting tidbits from these videos involves Valve's desire to introduce a deaf character into a future game (possibly in the Half Life universe). An idea is floated where Alyx has taught Dog sign language, based on a past crush she had with a deaf individual. In essence, it would be an excuse for Valve to develop the necessary technology for characters to sign. Pretty cool.

I think it's great that Valve is doing this. In the accessibility world, blind people get nearly all of the focus. For a gaming company to branch out into this realm is really quite remarkable. I'm looking forward to see how Valve implements this new technology, and I'm excited to see where the Half Life story goes with this (assuming, of course, that Half Life is the intended universe for this work).

Thoughts on Mint.com

Aug 12, 2009

Way back in January, I bit the bullet and signed up for an account at Mint.com, a free, web-based personal finance tool. Moving into a new house had brought with it a substantial amount of financial responsibility, and I wanted an easy way to track where my money was going. Now that I've been using it for 7 months or so, I thought I'd post a few thoughts on the service.

Security

Before I get too far into my description of the service, let me talk about security (which was my number one concern when I joined). When you sign up for an account at Mint.com, you give them your personal login credentials for things like your bank account, credit card, mortgage, etc. I'll give you a moment to recover from your heart attack. Now that you're back, let's go over how Mint keeps that information safe. First of all, Mint collects no personally identifying information. When you sign up, all they ask for is:

  1. An email address (your user ID)
  2. A password
  3. A zip code

That's it. No name, no social security number, no address; none of that. Second, and most importantly in my opinion, is the fact that Mint is a read-only service. You cannot pay bills via Mint, you cannot transfer money via Mint, and you cannot withdraw money via Mint. The service is intended to be used as an organization and analyzing tool.

Third, Mint stores your usernames and passwords separately from your financial data. In other words, your credentials are stored on separate physical servers. All of this is handled with the same security used by banks for electronic transactions (in fact, the software being used behind the scenes is, in many cases, the exact same software being used by banks on a daily basis). Even though you're providing login information, I like the fact that, at any time, I can change my login info to essentially lock out the Mint service. If Mint ever gets hacked, it's just a matter of changing my passwords at my various financial institutions to keep any "bad guys" out.

The security page at Mint.com has lots more information, along with a video from the CEO describing how their security works in more detail. I recommend checking it out.

Budgeting and Cash Flow

For most folks, the meat and potatoes of Mint.com comes in its budgeting and cash flow tools. Mint allows you to set a budget for various categories each month, and it will even modify your budget over time as it analyzes your spending habits (which I think is a great feature). I only casually use budgets, so I'm going to gloss over that part of the site for now.

One of my favorite parts of Mint is the cash flow analysis graph. Unfortunately, this graph is limited to six months at a time (I wish I could specify a larger duration, such as a year). I'm hoping that Mint will improve this functionality, but for now I can live with it. Here's a snapshot of my cash flow graph as of last night (the values have been censored to protect the innocent):

With this handy graph, I can see whether or not I'm making money each month. As you can see, March was a great month for me income-wise, thanks to a first-time home buyer's loan, and a sizable return on my taxes. The following month was a net loss since I made an extra mortgage payment (again, thanks to that sizable income in March). And each month since that time, I've been saving more than I spend (August is in the red, but I haven't been paid yet). When I log into my Mint account, this is the first graph I look at and the one I find most interesting.

Transactions

The other most useful view to me is the Transactions view. It lists all of the transactions in all of your accounts: withdrawals from ATMs, purchases you've made on your credit cards, interest earned in your bank accounts, etc. In this view you can categorize various purchases and filter the data a number of ways. Rules can be created to automatically rename and categorize recurring transactions. Think of it as a ledger specifying each and every transaction that happens. I personally use this view to keep track of whether or not I've made certain payments, and to keep track of how much interest I'm earning each month in my bank accounts.

Alerts

Mint makes it easy to set up alerts for various things. I have several alerts set up to watch for unusual spending. For example, whenever a very large transaction comes through (> $1000, for example), I can get an email or text message. This capability is very useful for keeping an eye on your accounts, allowing you to quickly respond to transactions that you may not have made. I consider this an extra safety net in watching for stolen credit card information, a hacked bank account, etc. You can also elect to get weekly summary emails, making it easy to keep tabs on your funds without even having to log in.

Spending Trends

Spending trends is a great way to see how your money is divided up each month. Here's a snapshot of my spending trends for this month (it's admittedly not as exciting as a full month's worth of data would be):

I pay the vast majority of my bills at the beginning of the month, which accounts for the large chunk of money being sent to that category so far. Usually, my mortgage payment (filed under the 'Home' category) is the largest chunk, but I have yet to make that payment this month. As I said, the more data you have for a month, and the more categories are represented, the more interesting this pie chart becomes. It's cool to see where the bulk of your expenses goes each month.

It's also worth pointing out that the graph is interactive. Click a slice of the pie, and the chart will zoom into that slice, and break down how that slice is, itself, broken up. Very slick.

One other spending view that Mint offers is the "SpendSpace" view. I rarely use this, but it's occasionally fun to look at. Here is my grocery spending over the past six months as compared to other folks in North Carolina:

As you can see, I spend way less than the average family for groceries (which makes sense, seeing as I'm only feeding myself). The missing data for July is odd; either the data has yet to be loaded up, or no one in North Carolina bought groceries in July. I'm guessing it's the latter. ;-)

Minor Gripes

I only have a few gripes with Mint. Every so often, Mint will have trouble connecting to my bank accounts. This can occasionally become an annoyance, especially when the connection failures last for a few days. All of the problems eventually clear up, however, and the service catches up with all the transactions it missed in the mean time.

There are ways the tool could be improved. I wish the cash flow view allowed you to view longer periods of time, and I've seen people calling for a cash flow predictor, which is an interesting idea. The folks at Mint seem willing to listen to the public, which is great. Hopefully some of these improvements will show up at some point in the future.

Conclusion

Overall, I'm incredibly pleased with Mint. There are plenty of other features that I haven't listed here, many of which you may find useful (learn more at the Mint features page). Signing up for an account is free and easy, as long as you're willing to provide your financial login information.

Jeffrey Zeldman has written an interesting article on URL shortening and, more specifically, how he rolled his own using a plugin for WordPress. He also points to an excellent article written by Joshua Schachter, describing the benefits and pitfalls of link shortening utilities. Both articles are worthy reads. I suggest reading Joshua's article before Jeffrey's.

Do you use URL shortening services? I mainly use bit.ly at Twitter, mostly because that's what everyone else seemed to use. Have you found some services to be better than others?

When I moved into my house last year, I bought an LG front-load washing machine. Having never owned or operated a front-load washer, I didn't quite know what to expect. For those who don't already know, front-load washing machines typically spin clothes at a very high rate of speed (mine tops out at 1050 RPM), removing a large amount of excess water in the process. This high speed spin process usually results in substantial vibration. The problem is compounded when the washer is located in an upstairs room (as mine is), and not on a solid, ground level floor (I've read that concrete floors are ideal).

Not knowing about this at the time, I was really surprised to see that my entire house vibrated when I washed a load of laundry. The shaking and noise got bad enough that I decided to look into solutions to the problem. I read some about vibration reducing pads online, and picked up a set at a local home improvement store (for about $30, if I remember correctly). After installing the pads with the help of my dad, I noted an improvement in the amount of vibration in the floor. However, the vibration was still bad enough to cause some sympathetic vibrations in my dryer (a major source of noise, oddly enough). Also, these pads were flat on top, so the washer tended to 'walk' off of them when a load was particularly unbalanced. Like before, the problem became bad enough to look for another solution.

I found another pair of pads online that had good reviews, and picked up a set (here's a link: Good Vibrations Washing Machine Pads). These pads are round, not square like the others I had bought, and have a recessed area for the foot of the washing machine.

Wow! Not only does the washer no longer walk off of the pads (thanks to that recessed area), but the vibration in the floor has been reduced by what seems like an order of magnitude! My dryer no longer suffers from "sympathetic-vibration-syndrome," and the entire wash cycle is noticeably quieter. A set of four pads are $36.95 as of this writing (plus shipping). The sellers accept PayPal, so if you've got some money stored up (like I did, thanks to a recent donation to Born Geek), you can pick up a set pretty easily.

If you've got a front-load washer and have issues with large vibrations, I recommend the "Good Vibrations" pads. They work remarkably well.

Updated Styles

Jul 30, 2009

I have tweaked the style sheet here at Born Geek, adding eye-candy support to WebKit enabled browsers (Safari and Chrome). I've also squashed some minor bugs. Let me know if you spot something that needs correcting.

Thoughts on Star Trek

Jul 30, 2009

[I originally tweeted some of the following thoughts, but decided a blog post would be a better place to share them, hence the disappearance of said tweets.]

I've recently been going through the original Star Trek movies (with William Shatner, et al). Prior to watching the films, I started with the first season of the original series, which is available instantly on Netflix. Sure it's dated, but I think the original show is terrific. There are a number of interesting moral dilemmas which occur through various episodes, and often some interesting conclusions to said problems. After watching the first season (I actually have one episode left, as of this writing), I started watching the films. Here are some thoughts on the ones I've seen so far.

Star Trek: The Motion Picture
The premise of this movie is fantastic (an ancient man-made machine becomes self aware). Sadly, the film's execution of the story falls flat. I guess you have to start somewhere though. 3 stars.
Star Trek II: The Wrath of Khan
The 22nd episode of the first season of Star Trek introduces Khan, a super-human who escapes 20th century Earth with a number of criminals. Kirk and company find him and his compatriots frozen in space in a spaceship named Botany Bay. I won't spoil the ending of that episode, but this movie essentially picks up that story line 15 years later. Things have taken a turn for the worse for Khan, and he's out for revenge. Ricardo Montalban is outstanding as Khan, and the movie plays out in dramatic fashion. I gave this movie 4 stars at Netflix, but it probably merits more like 4.5. Outstanding science fiction.
Star Trek III: The Search for Spock
I enjoyed this movie, though it's nowhere near as gripping as the second. The story was enjoyable, and you've got to love Christopher Lloyd as the Klingon commander. 3 stars (3.49 in my book, not quite enough to round to 4).
Star Trek IV: The Voyage Home
Like the first movie, this film has a terrific premise. A strange probe shows up on Earth, draining all power sources as it orbits overhead, and begins evaporating the oceans. Mankind presumes the probe is trying to communicate with humans; turns out it's trying to contact another species on Earth. Again, like the first movie, the execution here falls a little flat. It quickly turns into a fish-out-of-water movie similar to Crocodile Dundee, another film from 1986 (and a movie I absolutely adore; one of my favorite movies ever, strange as that may be). The comedic undertones are enjoyable, but water down the admittedly pro-environmentalist plot. 3 stars.

I have two more films to go: Star Trek V: The Final Frontier and Star Trek VI: The Undiscovered Country. I'm looking forward to both. I'll probably tweet my thoughts on those two, once I've seen them.

Future Upgrades

Jul 29, 2009

I've recently been thinking about upgrading the operating system on my desktop computer at home. More specifically, I've been tossing around the idea of upgrading to the 64-bit variant of Windows 7. Windows XP has been a decent operating system, but it's definitely feeling its age. Seeing as Windows 7 is being targeted for release on October 22, which is now less than 3 months away, I figured now is a good time to think about how I would upgrade.

Moving to a 64-bit OS would allow me to expand the amount of installed memory in my system. At a minimum, I would go to 4 GB installed, especially since Microsoft recommends at least 2 GB for the 64-bit flavor. To be safe, I think I might also buy some new hard drives and install the OS on those (keeping my current setup intact).

At $199 (for the full Home Premium version; $119 for an upgrade, which I have yet to read about), it seems quite an investment. Has anyone else thought about upgrading to Windows 7? Or is anyone currently running a 64-bit OS? If so, what are your thoughts?

Far Cry 2 Review

Jul 13, 2009

I recently purchased a copy of Far Cry 2 on Steam. Oddly enough, Far Cry 2 has nothing to do with the first Far Cry, save for the name. Crytek, the original game's developer, wasn't involved in the development of Far Cry 2, so I'm confused as to why this game is billed as the true sequel. Other than the standard first person shooter tropes, the two have very little (if anything) in common.

To me, Far Cry 2 resembles the Grand Theft Auto series more than any traditional first person shooter. The mission design feels similar, as do many of the game mechanics. But in the long run, how does the game fare? Here's my review.

The Good

Sandbox Style Gameplay
I'm a sucker for sandbox games, especially when it comes to the FPS genre. Being given the freedom to attack a problem in a number of ways opens the door for replayability, as well as adding a sense of realism to the game. Far Cry 2 provides that experience to a point, and I had fun exploiting it as much as I could.
African Milieu
To my knowledge, no other game has presented the player with a setting like this. Many of the locales feel authentic, and there are certain moments when you can seemingly feel the surroundings (sunrises and sunsets in this game are particularly well done). Kudos for whoever made the call to set the game in this part of the world. It's refreshing to see something new.
Attempt at Realism
I'll give credit to the game developers for trying to make the game a little more realistic than some similar titles. Weapons degrade over time (arguably too quickly). Vehicles need repair as they take damage. Your view is restricted while driving (i.e. you can't swivel your head around). And your character occasionally must perform first-aid on himself when he's taken too much damage.
Grenade Launchers == Fun
Of all the weapons in the game, my personal favorite has to be the grenade launcher. It feels tremendously powerful, especially when it's mounted on the back of an assault truck. Drive around with one of these things and you will own your surroundings. Just make sure not to aim too closely to where you are standing.
Excellent Fire Mechanic
Far Cry 2 is the first game I've ever seen that uses a fire propagation mechanic. Set fire to dry vegetation and it will spread in the direction the wind blows. This can be used in clever ways to hem in the enemy, though this tactic isn't exploited in the game as it should be. Some missions designed around this would have been fun.

The Bad

Repetitive Missions
Mission design in Far Cry 2 is as bland as it gets. All of the arms dealer missions are the exact same setup (destroy a convoy somewhere on the map). All of the assassination missions are (you guessed it) assassinations of a person in various locations. And the main missions aren't much different. It's all either fetch an item, kill a person, or destroy some object.
Simplistic Game Mechanics
The mechanics of this game are very simple and feel like a console GTA clone. Usable objects flash slowly in the game, and there are only a few of those: ammunition, weapons, health kits, and save points (the latter of which seems redundant, seeing as you can save anywhere in the PC edition of the game). Driving vehicles is simple, but for some reason enemies can drive faster than you possibly can. A lot of the game feels dumbed down which is a shame.
Drab Color Palette
The color palette used in this game could hardly be more boring. Each locale is either brown or green; if you've seen one location, you've seen them all. The HDR lighting doesn't help in this regard. Outdoor scenes feel flat due to the bright sunlight, and indoor scenes are dark and dank due to the lack of sunlight.
Nonexistent Stealth Mechanic
There are a few weapons in the game with silencers, and the player can also purchase a camouflaged "stealth suit." But none of these features seem to make your character more stealthy. Enemies always seem to know where you are and it's hard to 'lose' them once they've detected you. This removes an aspect of Far Cry and Crysis that I loved the most: being able to hide from your attackers, regroup, and attack again from a new location. An honest-to-God stealth element would have made this game so much more fun.
Bland Weapon and Vehicle Design
For the most part, the weapons and vehicles in Far Cry 2 all feel the same. Sure the weapons may sound a little different, but they rarely have a noticeable difference in handling. For example, every machine gun seems to do the same amount of damage as the others. With the amount of choice given to the player from a weapons standpoint (there are bunch of weapons to unlock), you'd think the developers would have made them feel different. To make matters worse, a few weapons are even nearly impossible to use. The mortar is a prime example of this; there's no clear way to aim the shells, so the weapon is quickly rendered useless.
Malaria
Your player contracts Malaria at the beginning of the game, and keeps it until the end. The sickness is manifested by random "hallucination" sequences, making it hard to do anything until you pop a few pills to stave off the attack. Getting sick in a game like this is an interesting idea, but this implementation is poorly done.
Weak Story, Ending, and Voice Acting
Weak stories are commonplace among FPS's, so it should come as no surprise that the Far Cry 2 story is very weak. The ending of the game is equally as bad, and a real let down after spending many hours in the game world. Voice acting was atrocious across the board (one of the worst efforts I've ever heard). I would have rather read the dialog than hear actors read it to me in monotone.

The Verdict

This game had a lot going for it, but in the end I was mostly let down. Thankfully, I only paid $20 for it.

It seems like every web browser these days is spending an enormous amount of time and development effort on JavaScript performance. Whether it's the new TraceMonkey engine in Firefox 3.5, the V8 engine in Google Chrome, or the upcoming SquirrelFish engine in WebKit browsers, everyone claims (to some degree) superiority in this arms race. All of this raises two questions in my mind.

1. How important is JavaScript performance? Are JavaScript applications really that slow? I'll admit that the new Firefox 3.5 browser feels snappier on sites like GMail and Netflix, but said sites never felt that slow before. Why are developers spending so much time optimizing something that not everyone uses? Admittedly, JavaScript usage is going up (especially with the Web 2.0 craze), but how much latency does JavaScript computing really account for in today's world? I'm much more concerned about data transfer; that's the bottleneck I see. Broadband speeds here in the United States are ridiculously slow, compared to other parts of the world. Shouldn't we all focus on ways to improve that? Yes, I know software developers have little control over that kind of infrastructure, but perhaps there are better protocols out there to get data to the end user in a more efficient manner.

2. Won't improved JavaScript performance lead to poorer JavaScript programming? As computers have gotten faster over the past two decades, and as memory sizes have increased, applications have become more bloated and (arguably) slower than before. I'm convinced that if programmers had retained the "every byte matters" mentality from the 1970s, 80s, and early 90s, applications would be leaner and meaner than they are today (especially in the realm of operating systems). Can't the same thing be said for JavaScript programming? As JavaScript engines get faster, serious performance considerations during an application's design phase might become less and less frequent. I'm of the opinion that high performance hardware can lead to sloppy programming. "Well, the application is good enough" is what the pointy-haired bosses of the world would say. Shouldn't the application be the best it can be? Can't one argue that "good enough" isn't necessarily good enough?

I'll be interested to see where this arms race takes us. What do you think?

The Disk Cleanup utility that comes as a part of Windows has an annoying feature. As a part of its scan procedure, it tries to figure out how much space you'd save by "compressing old files." This step takes a ridiculously long time to complete, and is highly annoying. Thankfully, disabling this feature is simple, though it involves editing your Windows registry. As always, be very careful during the editing process.

To disable the "Compress Old Files" operation, navigate to this registry key, and delete it:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Compress old files

Once you've deleted the above key, start up the Disk Cleanup utility and marvel at how much faster it loads!