April 03, 2007

VBScript not registered on Windows Vista

I tried installing iTunes on my computer, which runs Windows Vista Ultimate 64-bit, and I received an error about it not being able to find VBScript.

Apparently, Windows Vista does not automatically register the VBScript libraries when it is installed.

This entry is meant to show people with the same problem, who have, perhaps, found this page through a search engine, how to register VBScript.

Follow these steps.

1. Open the Start Menu and navigate to the All Programs / Accessories folder. Right click on Command Prompt and select Run as Administrator. Select Continue when the security dialog is displayed.

2. In the Command Prompt window, navigate to the system32 directory by typing the following command and pressing Enter. cd \windows\system32

3. Register the 32-bit VBScript library by typing the following command and pressing Enter. regsvr32 vbscript.dll

If you are running the 32-bit version of Windows Vista, you're finished. Type exit to close the Command Prompt. If you are running the 64-bit version of Windows Vista, you now need to register the 64-bit version of the library. Continue reading.

4. Navigate to the 64-bit system directory by typing the following command and pressing Enter. cd \windows\syswow64

5. Register the 64-bit VBScript library by typing the following command and pressing Enter. regsvr32 vbscript.dll

Now, you're finished. Type exit to close the Command Prompt.

Hopefully, people with this problem will find these instructions easy to follow. I had to wade through a number of forum posts and various web sites in order to figure out this short procedure.


March 07, 2007

Robot Ethics Charter

I guess it's that time in the evolution of our civilization when we need to start thinking about the ethics of the relationships we have with our automated friends.

To this end, South Korea is drawing up a Robot Ethics Charter that aims to preserve the rights of both humans and robots. Perhaps it's now a little premature to get world governments involved in this sort of thing, but eventually, establishing the roles of robots in our lives will be a necessary step toward maintaining good relations with those lovable buckets of bolts.

I'm looking forward to reading about how this progresses.

December 11, 2006

A Comic I Like

I don't know that I've ever really enjoyed any comic in particular, especially one on the web, but I guess I just wasn't looking hard enough. I found xkcd by way of a Slashdot article, and I've basically spent the last half hour of my life going through the comic strips.

An exemplary comic from xkcd. Click to enlarge

The comic even has an an RSS feed... it just doesn't get better than this!

August 21, 2006


I hate spam. I really do. It's one of the worst things that has ever happened to the Internet, and the only thing it does is annoy me.

Today, it seems, someone has started sending emails and spoofing the "From" domain as They're sending these emails to somewhat random addresses, apparently, and I'm getting all the bounces from them.

I'm teaching my spam filter to treat these bounces as spam, but what if it starts thinking real bounces are spam, too? Ugh.

My (not sustainable) solution is to use my backup mail servers to filter out any emails that are not directed precisely to me. Let's see if that works. :)

May 12, 2006

TV Tuner Card

I bought a cheap-o television tuner card on eBay this week, and I received it today. It's an AverMedia AverTV PVR-150, which I thought would be at least somewhat compatible with the Hauppauge! PVR-150. Hauppauge! seems to make the gold standards for these sorts of things, and their cards work in the 64-bit version of Windows XP, which my desktop computer runs.

Well, that is not how that works. I've tried every driver under the sun in order to get this thing to work, and it just won't. The 64-bit operating system is the problem.

So, it's not really a huge deal, since I'll probably just toss it in a different computer and install the 32-bit version of Windows there, but I'm really tired of having hardware not work simply because it's not compatible with (rather, the manufacturer didn't bother to write drivers compatible with...) modern technology.

Make & Model: AverMedia AverTV PVR-150
Vendor: 4444
Device: 0016
Subsystem: C0351461
Rev: 01
Chipset: Internext Compression, Inc., (Conexant) CX23416 iTVC16


January 07, 2006

Mobile Reference Application

I've spent the past couple hours writing a script in Perl that will do some pretty cool stuff. Doing this today is a direct result of having to send a text message to my mother on Friday, asking her to define the word allotrope, which was used in the book I was reading at a coffee shop.

The Perl script is integrated with my email system in such a way that when you send an email to a certain address within the domain, the email system passes it on to the Perl script for processing. The script is capable of figuring out whether you want a weather report or the definition of a word, then works out your answer, and sends a text message back in response. The possibilities for quick reference information are endless, and I imagine any time I'm on the road and need a piece of information that my computer could look up for me, I'll add that feature when I get back home.

I've decided to call the application something very creative: Mobile Reference Application. Actually, I just chose that because it came to me quickly, and I wanted something with a short acronym.

You, too, can have access to this system. To prevent abuse, it works on a whitelist-only authorization scheme, so you'll need to send me an email saying you want to be able to use my service, and I'll add you to the whitelist and tell you how to use it. Be sure to include the email address of your mobile phone in the email.

Also, it feels good to have done something technical after having done nothing related to engineering (aside from reading the first bit of that book Friday) in about three weeks.

October 10, 2005

Bit Flipper

I've been wondering something for a long time and have never bothered to research the answer. It's a really useful trick in computer programming, though from an application programming standpoint, there are other ways to do it that are just as good (the Assembly XCHG operator on most machines these days, for example). It's also a really useful thing to know if you're about to walk into an interview for a programming position.

The question is this: given two integers, how do you swap their values without using temporary storage?

The answer is this: xor the second into the first, xor the first into the second, then xor the second into the first again.

I wrote a little C program to make sure it worked. :)

#include <stdio.h>

int main(int argc, char *argv[])
int a = 123456;
int b = 654321;

a ^= b;
b ^= a;
a ^= b;

/* output: 654321 123456 */
printf("%i %i\n", a, b);

return 0;

Technically, this works because of the symmetric difference property of the logical exclusive disjunction. The symmetric difference property also does other interesting things about which I already knew, like making an xor operation look exactly like an addition modulo 2 and like being the only reason RAID 6 maintains parity integrity.

I came across this while looking for ways to express the xor function in boolean algebra other than the normal way, (a' b) + (a b'). The expression I ended up using, by the way, is (a' + b')(a + b). It is already in conjunctive normal form, which is what I need for my application.

Wow, wasn't that an exciting post?

It's definitely leftover Thai red curry time.

June 13, 2005

Much Ado about Almost Nothing

After much ado, it turns out my motherboard wanted the RAM to be in slots 1 and 3, not 1 and 2. Tons of time wasted, but problem solved.

Also, Fry's took the extra hard drive back. Cool.

If I can ever get all these damn drivers installed, I can get on with making this thing useful! :)

Hardware Woes

Well, Windows XP installed fine. But, I'm still having problems handling large amounts of data in short periods of time. For example, I can't extract service pack 2 without it complaining about files (different every time) being corrupt. I also watched Internet Explorer crash after downloading 8.5MB of AVG anti-virus. And, just a couple minutes ago, I got a blue screen that complained about a fault in atikvmag.dll, which is probably part of my video card driver software. [Update: Since atikvmag.dll, I've seen blue screens for win32k.sys, IRQL_NOT_LESS_OR_EQUAL, and MEMORY_MANAGEMENT. All in about the past 20 minutes. This is totally a motherboard problem.]

Let's pretend the problem isn't with my video card or my hard drive. That leaves the RAM, the processor and the motherboard. The processor is least likely to have a fault in it, since any fault there is likely to be Really Bad, not just Intermittently Bad, as my problems now are. So, that leaves me with the motherboard and the RAM. I don't think it's the RAM for the same reason I don't think it's the processor, but I guess the RAM is more likely to fail than the processor.

The motherboard, then. OK, so I need to take this thing back to Fry's and hope they have a non-idiot person working at customer service and another unopened Abit AN8 in stock. Chances? Based on my experience at Fry's, probably around 1%.

I once had a collection of nonfunctional hardware that I Just Didn't Want to take back there.

I wish there was a better solution to buying hardware locally than Fry's. Sigh.

June 12, 2005

Death to A Salesman

Well, I don't really want to kill the salesman. He was really just a happy, completely socially uncomfortable nerd.

Anyway, the motherboard in my desktop computer exploded yesterday, so I bought a new one. I also got a new processor, a new video card, new RAM, a new hard drive, and even the new 64-bit Windows XP (because 64 bits are better than 32 in processors and operating systems!). It's all very shiny.

There's a problem, though. When I'm trying to install the new Windows, I get these errors five or six times during the copy process that say a file got corrupted during the copy, and would I like to try again? Well, sure, I say, and it does its thing. The file copying completes, it goes into graphical install mode, and sure enough, within five minutes, there's a blue screen. I've seen it happen with a variety of reasons now, too. cdfs? ntfs? irql? If it's a four-letter acronym, I've seen it in a blue screen in the past 24 hours.

This could be a hard drive problem, I thought, because I sort of dropped the drive when the bi^H^Hwoman at Fry's was checking my receipt on the way out the door and didn't give me enough time to adjust my fingers in the bags before she snatched one out of my hand. So, I bought a different drive today. No dice. Same thing happens with the new one.

My next guess is the motherboard. Sigh.

Just to make sure it's not the new 64-bit Windows, though, I'm going to try installing the old Windows XP on it. Just in case.

It'll be a super-neat system if it ever works. I'll even get to play EverQuest II with Taylor on it.

Quick stats on the new box:
- AMD Athlon 3000+ 64-bit.
- ATI Xtasy 256MB.
- Maxtor 80GB Serial ATA.
- Abit AN8.
- Kingston 2x512MB PC3200 400MHz.

That's all the news that's fit to print.