Monday, January 11, 2010

Speeding Up AVG Anti-Virus 9

Update 1/12/2010: I have just uploaded an updated version of AvgFixer, which now supports 64-bit Windows, and also automatically asks if you want to disable the cache server if the server module is detected. If you already installed the original version, just go to the Add/Remove Programs (XP) or Programs and Features (Vista, Windows 7) control panel and uninstall AvgFixer. You will then be able to install the new version as instructed below.

If you regularly connect to the Internet with a Windows-based computer that isn't protected by some form of anti-virus you are a tool. For one thing, you are probably already infected, and your Windows user experience is worse than it should be. Now that wouldn't be so terrible (since you are bad, and you should feel bad) but the bigger issue is that your computer is probably busy infecting other systems, sending torrents of spam to people you will never meet, or engaging in denial of service attacks against online businesses who crossed the organized criminals of the Internet.

Unfortunately, most anti-virus software on the market is bloated crapware. The "Internet Security" packages that ship on most new PCs are often over-invasive, limiting what you can do with your computer, consuming system resources, and slowing you down when they aren't trying to sell you anti-virus definition subscriptions or other products. For years I have used and recommended AVG Free Anti-Virus. Traditionally, it's been fast, reliable, free, and relatively unobtrusive. In the last year or so, the upsell notifications have increased, but the product was generally solid. Sadly, AVG really fumbled with their latest release, AVG Anti-Virus 9.

Version 9 includes a new "optimization scan" feature which is supposed to decrease the duration of scheduled "Whole Computer" scans. The idea is that AVG keeps a database of files on your system that don't need to be scanned, so it doesn't waste time on them during system scans. The problem is that for this new feature to work, AVG frequently searches your computer for files to ignore (no, that wasn't a typo... it ties up your computer looking for stuff to ignore), and these scans cause a LOT of hard drive activity, which can significantly slow your computer down, affecting everything from launching programs to switching between windows to browsing the Internet.

Complicating matters, AVG never indicates in any of its user interfaces when it is doing these background optimization scans. It doesn't let you schedule them, and doesn't let you abort them if you happen to realize that your computer has suddenly slowed to a crawl. I don't care about this optimization feature; I run whole computer scans overnight, when they won't interfere with my day-to-day activities. AVG keeps saying that the optimization scan is a "low priority process," as if that means anything when your hard drive is spinning non-stop, causing every program that needs drive access to wait in line, making the system generally unusable. (Anti-virus engineers really live in this continual state of denial regarding how severely their software affects users. They schedule whole-system scans in the middle of the day, when people are at work, and they don't write their programs to defer resource-intensive tasks until nobody's using the PC.)

If you have experienced random slowdowns as a result of installing or upgrading to AVG Anti-Virus 9 (either the free or pay versions), there is yet hope. I have developed a little program that disables the new "Cache Server" module that runs the unnecessary optimization scans, putting control back into your hands.

How it works

locates the cache server module on your computer- a file called avgchsvx.exe- and renames it so that AVG Anti-Virus doesn't load it the next time your system starts up. After renaming the file, AvgFixer asks whether you would like to restart your computer. That's it. You can use AvgFixer to restore the cache server later on, if you ever decide you want to do that.

You can perform all these steps manually, but I wrote this program for people who are not Windows experts. With AvgFixer, even your mom can fix her AVG 9 problems.

Where to get it

You can download the AvgFixer installer right here.

AvgFixer runs on the 32-bit and 64-bit versions of Windows XP, Vista, and Windows 7.

How to use it
  1. Locate the AvgFixerSetup file you downloaded from my web site and launch it. If you're running Vista or Windows 7, you might see a dialog box like the one below. This happens whenever you run a downloaded program if you have the (terrible, annoying) User Account Control feature enabled on Windows. Click Yes or Allow to continue with the installation.

  2. Follow the setup instructions until AvgFixer is installed.
  3. When setup is complete, locate the AvgFixer icon on your desktop and launch it. The icon looks like this:

    Again, on Vista and Windows 7, you might see a dialog box like the following one. Just click Yes or Allow to continue.

  4. The first thing AvgFixer does is determine whether you have version 9 of AVG Anti-Virus (either the free or pay versions) installed. If you do not, it will tell you that it couldn't find AVG 9, and you won't be able to do anything with the program. This is good, though, because it means you haven't been suffering like the rest of us. (Beginning with the 1.01 version on 1/12/2010, AvgFixer will ask you whether you wish to disable the cache server right away if it detects the module. If you answer No, you will see the following screen.) If AvgFixer does detect AVG 9, the screen will look something like this:

    The screen indicates whether it located the offending cache server module, and whether it found a backup of the cache server (which would only be there if you ran the program before). The Disable Cache Server button is the one you click in order to fix the performance problems related to AVG Anti-Virus 9. If the button is grayed out, it means the cache server was not found, and therefore isn't causing a problem. If you have successfully used AvgFixer previously, you can use the Restore Cache Server button to re-enable the cache server (why you would want to, I don't know). The button will only be clickable if a backup is found, and no cache server is currently active (it is possible that automatic program updates might install new versions of the cache server, and you might have to disable it more than once, over time). The Open AVG Folder button just opens an explorer window to the hard drive location where AVG 9 is installed. (It's there in case you wish to look at the AVG files yourself.)
  5. If the Disable Cache Server button is not grayed-out, click it. If the operation fails, it might be due to the privileges of your current user account. You might want to make sure you're logged in as an administrator and that you have logged out of any additional user accounts if there are multiple accounts that you switch between on your PC. If the operation succeeds, you'll be asked whether you'd like to restart your system. Click Yes.

  6. You're done, for now. After you restart your computer, you should not encounter any more AVG-related slow-downs (other than your regularly-scheduled system scans), unless AVG installs an updated version of the cache server on subsequent updates. After a successful run of AvgFixer, subsequent runs of the program should look like the following (unless AVG installs a new cache server, in which case it will look like it did the first time you ran it):

Here's hoping AVG gets on the ball and gives users more control over features like this in the future. It is difficult to find the right balance between security and ease-of-use, but the gross impact that the cache server feature had on many systems was just absurd.

Monday, January 4, 2010

Fast & Fuchsia

The Pinewood Derby is an annual Scouting tradition where Cub Scouts of all ages race wooden cars that their dads built. I asked my son what he thought the theme of his car should be, offering LEGO, Mario, or Sonic the Hedgehog as suggestions. He scrunched his brow, pondering the question seriously before smiling and delivering his verdict: "Kirby!"

Uh oh, I thought. "Kirby, huh? So... what color should the car be?" But I already knew the answer. He didn't even have to think about it before responding: "Pink!"

My boy wanted a pink car. A pink car that we were going to have to race in front of dozens of other boys and dads. I sighed and nodded, steeling myself in the conviction that I would build my son the most bad-ass pink pinewood derby car possible, given my complete lack of knowledge in the areas of woodworking, painting, and aerodynamics. Behold:

Front view. Kirby drives while a terrified Mario rides shotgun.
Rear view. Oh lawd, iz dat sum Sonic the Hedgehog?

After buying all the necessary tools and deciding on an automotive design, I traced the official Cub Scouts of America car template on our official Cub Scouts of America block of wood (seriously), and began to saw. Miraculously, after about half an hour of back-wrist-and-shoulder-punishing work I had a piece of wood that more or less approximated the template design, with only a small number of giant, disfiguring gashes. Using the largest-grain sandpaper I could find in the garage (I think they actually just stuck some fly paper in a bed of pebbles) I was able to scrub away many of the saw-related imperfections. This took a much longer time than the sawing did, but while my son was nowhere to be found during the entire process (ah, the sweet siren song of the Xbox), my craft-crazy 4-year-old daughter was at my side for the whole ordeal, in rapt attention at every step. She even expressed an interest in having her own car, so I gave her a car-shaped piece of wood I had cut away from my pinewood block. She then grabbed some sandpaper and worked alongside me.

Her car. She sanded, painted, and detailed it herself, and then glitter-glued some button wheels on with Mom's help.

Later that night, I applied five coats of pink, and let it dry overnight. I spent the next two nights designing custom decals for the car. I wanted to put Kirby, Mario and Sonic in the car, and add some sporty detailing. Charlotte suggested we also number the car, to make it look more official. I chose the number 64, in honor of Nintendo systems past. The decal work was fun but slow, as I have only recently begun teaching myself how to use Photoshop for more than just putting misspelled captions on photographs of cats.

I collected a few existing pictures of each character to use as source material for my own designs. After drawing the windshield and rear window of the car, I placed the source photos "behind" the window borders and used them to build my paths; the basic shapes that make up each character. Next I filled in and outlined the paths, as needed. Each character took about 2 hours to illustrate. Mario was the most difficult, but also turned out the best. (Although I was proud of the little "blushes" on Kirby's cheeks... took me a while to figure out how to do that.)

The following picture shows some different stages in the development of Mario and Kirby. I used a couple dozen Photoshop "layers" to compose this image, in a process similar to how animators compose frames in hand-drawn cartoons.

After completing and printing out the decals, I cut them out and glued them to the car. I also "sealed" the car by putting a couple coats of "ModPodge" on it. This actually resulted in some minor streaking and warping of some of the decals, but this thankfully isn't noticeable when viewed from a distance. I had to coat it with something to make sure the decals stayed on.

On the final night, I affixed the axles and wheels. Aligning the wheels turned out to be the most difficult part of the project- and could have been done better by someone who knew what the hell he was doing- but at least the car seems to roll in a straight line. More or less.

Soon we will turn the car over to the Scouts for inspection and weigh-in, to ensure it meets Cub Scout regulations, then later this week we will race it. The Kirby car will almost certainly not be the fastest one on the track this weekend, but in my boy's eyes, at least, it will be the coolest.