Cost of living calculator Cost of living calculator

I wrote a little script to calculate the cost of living change from one year to another, based on the consumer price index.

Jumble Jumble

I wrote a little program to check if the letters in a word will match other dictionary words (a great tool for boggle, scrabble, or cranium). Here's a link to the tool:

Avoid placing your email address directly in your HTML file Avoiding putting your email address out on the web

To avoid spammers collecting your email address via search bots, I've put together a script that you can instead of a a "mailto" link. The email address is less obvious since it's parameters to the scrip, without the @. For example, I can put the following
<A HREF="/cgi-bin/,%20how's%20it%20hangin'?">mail me</A>
to create a link like this
mail me
Note that you can include spaces in the subject using "%20"

Windows XP CTRL/Caps-Lock swap Ctrl/Caps-Lock Swap for Windows XP

To swap the left CTRL key with the CAPS-LOCK key, use the registry editor (Regedit.exe) to modify the registry key for Scancode Map:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map
with the following value:
00000000 00000000 03000000 1D003A00 3A001D00 00000000

Here's the step-by-step instructions, taken from this Gnu Emacs page:

Open the registry editor and go to:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\KeyBoard Layout

(note:  KeyBoard Layout, not KeyBoard Layouts)

Then create a new binary value by right-clicking on the KeyBoard
Layout entry in the left window and selecting New\Binary Value

A new entry will appear in the right window called "New Value #1",
rename this to "Scancode Map" (no quotes).

Right click on the new entry you just created, select the Modify
entry and you'll see a window with a Value name field and a large
textarea (named Value data:) with the value 0000 in it.

Click on the 0000 and a text prompt will appear in the text area.
Then type the following values in this area:

00 00 00 00 00 00 00 00 

At this point, a new row will be created with the label

Now type these values:

03 00 00 00 1d 00 3a 00 

and a new row will appear with the label

type these values into this row

3a 00 1d 00 00 00 00 00

A new row will appear with the label 0018...ignore it.

Now review the text area and ensure it looks like this:

0000  00 00 00 00 00 00 00 00
0008  03 00 00 00 1d 00 3a 00
0010  3a 00 1d 00 00 00 00 00  

Press the ok key, and VOILA! you have modified the scancode for your
system. Close the registry and reboot your machine, and your CapsLock
and Ctrl key should now be swapped.


Chris McMahan
[email protected]

Once the map is stored in the registry, the system must be rebooted for the mappings to take effect.

Note, you are adding a registry entry for "Scancode Map" that did not previously exist!

To remove the mappings, the following registry value must be deleted and then the system must be rebooted:

HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map

Repeated Scancode Map entries causes it to swap back, or not swap at all (can't tell which is happening)

I've found that if you repeat this procedure for more than one NT user, you might get the Scancode Map entry more than once (the registry copies Control to Control1, or something like this). To correct this problem, search for "Scancode" and remove the ones that don't belong to the entry listed above.

See also Emacs documentation (more likely to evolve on the subject).
See for the original information about Scancode Map at Microsoft.
NEWMicrosoft has a tool for keyboard remapping at the kernel level. See
Fix the host name appearing in mail headers to reflect the mail virtual host (i.e. Fixing outgoing mail host name

It took hours to dig up the one tid-bit required to have sendmail use the virual host name "mail" instead of the default host name.
In, add the following:

define(`confDOMAIN_NAME', `$w.$m')dnl
then regenerate (% m4 /etc/mail/ > /etc/, and restart sendmail (% /etc/init.d/sendmail restart).
See for the closest details I could find.