Tom Ferrin's "Tools for Windows" Page

Table of Contents:

NOTE: I'm no longer maintaining this page. Instead, I've switched to OS X.
OS X has most of the features that NEXTSTEP used to have and that I loved,
and although the wait was long it's definitely been worth it.


Want to know about applications and techniques to make life more pleasant when using Windows? Well here are some things I've found that have helped improve my computing environment, especially since Windows is, in my humble opinion, a giant step backwards from the NEXTSTEP system that I used for over a decade and found to be extremely productive and user friendly.

Note: Some of the tips included here are really meant for the local computing environment here at the UCSF Computer Graphics Lab. Of course you can set up a similar computing environment for yourself, but you'll need to customize various aspects of the tips provided here to suit your specific environment.

Network Security Check

Is your Windows 95/98/NT/2000 system vulnerable to unauthorized file access via the Internet? Windows networking technology has more global implications for file sharing than most users realize. To see if your system is vulnerable, try the Shield's UP! test.

It's a good idea to run a personal firewall on your PC. Sygate provides free downloads of the Sygate Personal Firewall that works well. If you run this firewall, the Sheild's UP test above will show all green (ports are in "stealth status").

An App to Unzip Archives

Most of the applications that you may want to download via the Internet are compressed archives. After downloading, you'll need to uncompress and expand these archives using the WinZip Self-Extractor application. You can either download a fully fuctional evaluation copy of WinZip Self-Extractor from here, or for $49 you can purchase your own copy from here. Either way, this program is a "must have."

A vi-like Text Editor

Vim is an almost compatible version of the UNIX vi text editor. Many new features have been added: multi-level undo, command line history, filename completion, block operations, etc. Those who don't know vi can probably skip this entry, unless you are prepared to learn something new and useful. Vim is especially useful for editing C programs. You can download vim from here. There's also a Vim Home Page. And guess what? A MacOS version of vim is also available.

Virtual Desktop

Are you like me and like to have lots of applications running at the same time, but find that the screen gets so cluttered that it's hard to quickly find the window you're looking for? Then what you need is a virtual desktop application that partitions your screen into several separate desktops. There are several solutions available, but I recommend enable Virtual Desktop (shareware - $20). You might also check out JS Pager, goScreen, or DesktopPlus as alternatives.

Remapping Keyboard Keys

If you use Windows 95 or 98, then Microsoft has a handy tool that lets you remap a limited number of keys on your keyboard, including things like Caps Lock. Go to Windows 95 Kernel Toys Set, and then fetch and install the "Keyboard Remap" application. With this app you can at least remap the Caps Lock key. (Note that the Kernel Toys Set is intended for Windows 95, but that the Keyboard Remap app works fine under Windows 98.)

On Windows/NT, things work differently and you'll need to edit the NT Registry in order to remap things like the Caps-Lock key. See here for full instructions on how to do this.

Windows 2000 is similar to Windows/NT in that you'll need to edit the registry. The nitty-gritty details on how to do this are available in this Microsoft tech tip, but if all you want to do is remap the Caps-Lock key to instead be a Control key, then here's what you need to do:

1. Login as "Administrator".
2. Run regedt32 and open the following "folder": HKEY_LOCAL_MACHINE\SYSTEM\
   CurrentControlSet\Control\Keyboard Layout.  (Note "Layout" [singular].)
3. Click on "Edit->Add Value" and add a value named "Scancode Map" with a
   data type of "REG_BINARY".
4. Paste the following 40-character hexidecimal string into the binary editor
   panel: 0000000000000000020000001D003A0000000000.
5. Clicking on the "OK" buttons and then exit from registry editor.
6. Reboot your computer.
(The intrepertation of the hexidecimal number is provided in the tech tip referenced above. As another example, if you want to swap the functions of the Caps-Lock key and the left Control key, the hex value to use is 0000000000000000030000003A001D001D003A0000000000. If you're not sure what the scan code is for the key(s) you are interested in remapping, fetch and run this keyview program. [Note that "keyview" reports the scan code as a decimal value, but that you'll need to convert it to hex for use in the scancode map.])

If you use TeraTerm Pro as your telnet client (see below), then you can remap additional keys that can come in real handy when using UNIX.

The Teraterm Pro Telnet Client

Teraterm Pro is a superb terminal emulator/telnet client, and while there are a wealth of these available under Windows95, I recommend this one for three reasons: i) you can remap keyboard keys to make a keyboard that works better with UNIX than the standard PC layout; ii) there's a SSH extension available for it (see below); and iii) it's free. You can get Teraterm Pro from here.

If you spend much time logged on to a UNIX server, then you'll probably want to remap some additional keyboard keys that Microsoft's "Keyboard Remap" app doesn't handle. Edit the "Keyboard.cnf" file in the Ttermpro directory and add the following lines to the end of the file:

[User keys]
; Remap a few strategic keys for a more rational layout (ala NextUSA)
; Escape is to the left of "1"
; ` is top-left key of numeric keypad
; ~ is shift of User2
You also need to put a ";" at the beginning of the line
in the same file, since you can't have the same key do more than one thing.

Note that the keys that are remapped by Teraterm Pro (e.g. escape) are not remapped for Windows applications like vim, so this setup is not perfect. If you know of another way to remap a Windows95 keyboard please let me know.

Secure Telnet Client (SSH)

"TTSSH" is a free secure shell (SSH) client for Windows. It is implemented as an extension to Teraterm Pro. TTSSH adds SSH capabilities to Teraterm Pro without sacrificing any of Teraterm's existing functionality. Take a look at the TTSSH home page to learn more. The TTSSH extension files should be installed in the same directory as Teraterm Pro.

For best usage, you will want to customize the TTSSH setup configuration. This includes running a cryptographic key generation utility called "ssh-keygen." (Ssh-keygen is not included with the TTSSH package but is often available on the server system you are trying to connect to.) Ssh-keygen creates a binary file named "identity" which then can be copied into the TTERMPRO folder on your PC or laptop (C:\Program Files\TTERMPRO\identity). You can then use the "Setup->SSH Authentication" menu item to specify your default login user name and that the RSA key contained in the "identity" private key file should be used when making a connection. Other common setup options include:

    80 x 40 terminal size
    Term size = win size
    VT100 emulation
    Scroll buffer = 1000 lines
    Color (Normal, Bold, & Blink) - set to something pleasing to look at
    Select something nice ("Fixedsys" size 9 is good)
    Backspace key transmits DEL
SSH Authentication:
    Set your default user name
    Use RSA key for logging in
    Private key file name is "identity" (see above)
    Host list includes your default host
    History box is checked (i.e. remember the hosts you've connected to)
    Auto window close
    SSH port number is 22
    Telnet mode is NOT checked
Be sure to then save your setup configuration!

File Sharing with SAMBA

Sharing files with a UNIX server is pretty much required functionality if you are to get any work done. Afterall, without file sharing you are forced to FTP back and forth all the files you need resident on both your PC and your UNIX server(s). SAMBA is a software package that you run on a UNIX server that provides the protocols by which a lot of PC-related machines share files, printers, and other information. You can read about SAMBA on the SAMBA Home Page.

SAMBA has already been installed on host socrates in the Computer Graphics Laboratory, so if you are a CGL staff member all you have to do to access your socrates files from your Windows PC is to properly configure things. This requires that an entry be created in the SAMBA password file (send a request to I recommend that you then create a shortcut to your home directory on socrates. You do this as follows: i) Under the Windows "Start" menu, select "Find Computer" (or "Start->Search->Files and Folders", then select "Computers" if you're using Windows 2000). ii) Type in the host name of your SAMBA server (e.g. "") in the Computer Name panel and then click on "Find Now." iii) When the "Socrates" directory panel appears after a few moments, double click on the appropriate directories (e.g. "staff-home") until you find your home directory. iv) Right-click on your home directory and select "Create Shortcut," then move this shortcut onto your desktop. Now you can easily access your home directory on socrates by simply double clicking on the desktop shortcut.

PostScript and PDF Viewer

The whole windowing system on NextStep was based on Display Postscript, making it trival to view any PostScript (PS) language document. Not so in Windows. But has a free PS/PDF viewer that works well and is quite fast.

Network Time Protocol

Would you like you system's clock to always be accurate to within a few hundred microseconds of the true time? This is quite easily accomplished using the Network Time Protocol (NTP), as long as your computer is connected to the Internet. See the NTP home page for more information. A Windows/NT & 2K executable version of the ntp daemon (ntpd) is available from Nota bene: Installing and configuring NTP requires some effort; at a minimum knowledge of what time servers to use. If you prefer something more automated, try one of the several clock synchronization programs listed on the Tucows web site.

Network Protocol Analyzer

Analyzer is a fully configurable network protocol analyzer for the Win32 environment. Analyzer is able to capture packets on all platforms (and link-layer technologies) supported by the WinPcap Packet Capture Architecture API. See the Analyzer home page for additional information.

On-line Campus Phone Directory

UCSF's Information Technology Services maintains an on-line version of the campus phone directory that is updated weekly. An application that supports the "CCSO Nameserver" protocol used by this service is available here. Be sure to set the server name (under the "Preferences" menu entry) to "". I also suggest "Fixedsys Regular 9" as a good font to use. This is a simple application that works really well.

If you want to learn more about the CCSO family of client/server directory programs, try looking here, here and here.

UNIX Tools for DOS

Can't imagine working without tools like grep, diff, make, or a UNIX shell? Then the Cygwin Project (GNU development tools for Windows) is for you. You can download and install the latest version of the Cygnus GNU-Win32 tools package (version cygwin-b20) and then use such handy tools as BASH, a UNIX-like shell for DOS. There's a good O'Reilly book available about BASH, as well as The Bash Reference Manual, and a list of BASH Frequently Asked Questions. BASH also runs on Linux and many vendor's UNIX platforms.

Customizable Command Prompt Features in Windows/NT

The Command Prompt window under Windows/NT has a number of user-customizable features. See this on-line article from Elementk Journals (formerly Ziff-Davis) to learn more.