I've been looking at my visitor statistics for this website (as I always do), and I thought I'd share some interesting information. The most popular posts at this website are surprising to me, and I'm not sure I could have guessed which ones were at the top. Here are the top five posts for the month of October:

  1. Batch File Exit Codes - 741 views
  2. Using NTP on a Private Network - 260 views
  3. Fixing Broken HTML Document Icons - 169 views
  4. Firefox 3.5 Slow to Start - 162 views
  5. Thoughts on Mint.com - 151 views

I find it quite bizarre that my article on batch file exit codes is at the top of the list; and by quite a large margin! Apparently, there are a lot of people out there confused about this subject (and rightly so). Also, I never would have guessed that setting up NTP was popular enough to even register. But there it is coming in at number 2! Some of the other articles are less surprising: Firefox 3.5 being slow is an obvious search (since it is indeed slow ... though it's gotten better with subsequent releases). And Mint.com seems to be gaining in popularity around the web, so I can understand people looking for reviews on the service.

I've always enjoyed looking at site stats and, while this website doesn't see near the traffic that its sister Born Geek does, it's enjoyable to see that my articles are indeed being read.

It seems the good folks at Valve have released a Halloween-themed update for Team Fortress 2. I haven't played TF2 in quite some time now, but this is a good excuse to jump back into the game. A total of 5 new achievements are being offered, but only for a limited time.

I think the holiday themed update is a very interesting idea, and it's definitely something that not too many games have done in the past. Stuff like this always makes me hope that Valve isn't purchased by some other entity. I can see the bean counters at a place like EA saying, "we don't have the time or money to develop this kind of thing." With any luck, Valve will remain an autonomous studio, and will continue to crank out great content like this.

Blocking IE 6?

Oct 25, 2009

I am considering blocking all users who use Internet Explorer 6 from viewing this website (support will remain for Born Geek). Viewers using this old browser would instead be given a dialog offering links to other, more competent browsers (including IE 7 and 8). Is there anyone who regularly visits this website that still uses IE 6 and doesn't want me to block them? I see that IE 6 still accounts for 13.5% of traffic to this site, which is surprising to me. Interestingly enough, Firefox only accounts for 37.7% of the visitors here.

If you're an IE 6 user, and you want to continue viewing this site in your antiquated browser, let me know in the comments. If I don't hear from anyone in the next two weeks, I'm gonna drop the ban hammer and start rejecting visitors who use it.

Microsoft’s Big Day

Oct 22, 2009

Today is the big day for Windows 7: release day! I'm thinking about picking up a copy of the new OS at some point in the near future for my gaming machine at home, though I'll probably wait until the price drops. Is anyone here going to upgrade?

I saw in the news recently that Windows 7 has eclipsed Harry Potter for the number of pre-orders on Amazon UK. That's saying something, seeing as Harry Potter is wildly popular over in Great Britain. I'm looking forward to giving this new OS a shot. It's definitely time for something new (XP is feeling increasingly old and clunky).

The Kindle Killer?

Oct 20, 2009

Barnes & Noble has unveiled the Nook, their Kindle-killing e-book reader. Although I don't read enough to warrant getting one of these devices, I have to admit that the Nook is very slick looking. It certainly has the Apple-esque design going for it, with its slick looking screen, color keyboard, and general all-around sexiness.

Do any of you use a Kindle, or wish you did? What do you think of this new device? I think B&N will be bringing the heat to Amazon which is always a good thing (we can always use more competition).

Useful Tool: Autoruns

Oct 19, 2009

This month's useful tool is another from the good folks at Sysinternals. Autoruns is a tool for Windows that shows you all the processes and services that are scheduled to start when the system boots up. It's amazing how many auto-start lists reside in the Windows registry! My laptop has hundreds of entries, ranging from system level entries to third party drivers and software updaters.

What makes this tool outstanding, however, is the ability to easily disable certain processes from the startup sequence. Next to each entry is a checkbox; when it's checked, the item will be started as usual. Uncheck the box and the process will be omitted from startup. I've found it incredible handy to disable some of the more annoying programs that start up (iTunes helpers and Adobe Acrobat, I'm looking at you).

Here's a great web developer tip that I've discovered recently. If you're trying to test a site that involves cookies, and you specifically want to test as a "new visitor" (i.e. you are visiting the site for the very first time), simply turn on Private Browsing mode in Firefox. This can be done with the handy Ctrl+Shift+P keyboard command, or via the corresponding menu item in the Tools menu. Using Private Browsing will prevent you from having to clear your cache, allowing you to save those cookies you really do care about.

When you're done, simply exit Private Browsing mode and you will be returned to your previous session: cookies, history and all! This is a handy way to quickly run through tests that might otherwise be a bother to do.

There's nothing like a fresh batch of cinnamon rolls to make any day a great one:

Add some icing (made with powdered sugar, vanilla, and milk), and you've got one of the best foods of all time.

A Gamer’s Memory

Sep 25, 2009

A few days ago, I installed "Serious Sam: The Second Encounter," a game I haven't played for many years. Released back in 2002, SS:TSE is an incredibly fun first person shooter. Though the graphics are dated, the gameplay is as fresh and exciting as ever. If anything, playing this game makes me even more excited for the Serious Sam HD remake that's coming soon.

What really surprises me, however, is how much I remember about the game. It's astonishing how, after all these years of having not played Serious Sam, I remember the location of nearly every secret area. I can remember areas where enemies pop up unexpectedly (so I know to be on my guard), and I remember most of the various ammo and health drop locations.

If I were to load up Wolfenstein 3D, I could probably take you to 80% of the secrets in the first chapter of that game. The same thing holds true for Doom, Duke Nukem 3D, and countless other titles that I spent time with when I was younger. Have I really wasted that many brain cells to remember stupid things like this?

It is being reporting that Firefox will replace menus with an Office-style ribbon interface. Personally, I couldn't be more against this. I'm no fan of the Office ribbon (it takes up way too much screen real estate and looks clunky), and I fail to see how this interface will make things better for the user. Mozilla is known for screwing around with the GUI, however, so I won't be surprised when something like this shows up. I can't imagine how this change will affect many extensions out there, like Googlebar Lite, that add UI elements.

What do you think about the Office ribbon interface? And what do you think of this decision? Thankfully for me, someone will undoubtedly come out with a theme to fix this stupid design decision. Consider me signed up for it already!

Amazon Wish List Bug?

Sep 18, 2009

Has anyone seen the following bug with the Amazon wish list system? When I purchase something from my list, the purchased item is no longer automatically removed. Instead, it reports a "quantity received" value, and apparently must be manually removed from the list. This is highly annoying, and applying the "unpurchased" filter doesn't affect the purchased item's visibility.

Am I the only one seeing this problem?

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?