# Frequently Asked Windows NT Questions in SCS

As one of the early adopters of NT in the department and a pretty intensive user of the NT environment for development, people frequently ask me questions about various aspects of NT.  This document attempts to summarize those questions and their answers in a simple, informal manner.  It isn't intended to replace any of the other NT resources within the department and without.  Please send any questions and comments to pdinda@cs.cmu.edu.

### A note on Windows network paths

Each Windows path name in this document is a file:// link which should work fine on NT machines in the department.  The full pathname is also included to make copy and paste easy.  Some path names require that you be on a license list and will lead to an "access denied" message if you aren't.  You can send mail to help+pc@cs.cmu.edu to be added to such licenses.

## Other NT Resources in and out of SCS

### "Where can I find tutorials and guides for using my NT Box?"

Here are other sources of NT information, listed in no particular order:

### "Where do I go for help with a specific problem on my NT Box?"

First, try to use the on-line help - simply hit the F1 key wherever you are for context sensitive help.  After the on-line help fails to answer your question,  check the Zephyr Archives, the Microsoft Knowledge Base.  MSDN and the NT Resource Kit are also useful to check, if you have them.  If nothing seems appropriate, try asking your officemates.  Next, try Live Zephyr and send a message on the instance help.nt.  If this fails, send mail to help+pc@cs.cmu.edu.

### "What is the NT Resource Kit?"

The NT Resource Kit is a set of several books and a large number of utilities that help in configuring and maintaining NT.  The books are available in the on-line MSDN library  as well as in bookstores and on the quarterly MSDN subscriptions.  The utilities are available on CD for a nominal charge.  The NT 3.51 resource kit used to be available locally on monolith but seems to have disappeared. I'm not sure why the NT 4.0 resource kit is not on monolith.

### "What is MSDN?"

The Microsoft Developer Network is basically an information service for Windows developers.  There are several levels of support, starting from free web-based access to the MSDN library to a \$2500/year "Universal" subscription to literally everything Microsoft makes or publishes.  Some of this information is useful even to non developers.  Don't hesitate to try out the free web-based library.  If you don't feel like registering for it personally, use username "bovik", password "hbovik".

The section on development on NT talks more about MSDN.

## User Interface Questions

### "The user interface seems really limited.  What am I doing wrong?"

If you right-click on any object (including icons, windows, and the desktop), you'll get a pop-up menu of actions that can be performed on that object.  Also, don't forget to check out the "Start Menu" at the lower left.  In particular, be sure to check out Start Menu:Settings:Control Panels.

### "I hate the mouse, what can I do?"

You can drive the whole NT interface using the keyboard.  There is a keyboard equivalent for almost everything built into Windows and adding keyboard support is so trivial that virtually every developer does it.  For menus, each menu entry will have an underlined letter which is the shortcut, and hitting the ALT key will target your keystrokes at the menu.  So, typing ALT, followed by F, and then by O (ALT File, Open) will bring up the file open dialog box.

The controls in a dialog box have a "tab order", and you can use TAB and SHIFT-TAB to move forward and backward through the order.  For example, when the file open dialog box is brought up, the filename will be highlighted.  One can type the desired filename and then hit TAB twice to highlight the "Open" button.  A tap of the space bar will then activate the button and open the file.

In addition to keyboard access to menus and the tab order in dialog boxes, there are also "accelerators" which are one step jumps to particular menu options or controls.  For example, hitting Enter in a dialog box is equivalent to "OK" while Escape is equivalent to "Cancel."  There are also accelerators for some menu entries - these are usually displayed after the entry name in the menu.  For example, CTRL-O will typically bring up the file open dialog, doing the equivalent of ALT-F-O.  Here are some other general accelerators which are useful:

• ALT-TAB to cycle through top-level windows
• CTRL-TAB to cycle through document windows
• ALT-F4 to close a top-level window
• CTRL-F4 to close a document window
• CTRL-ALT-DEL to bring up the security dialog box

### "How do I get X-Window-like focus-follows-pointer behavior?"

HKEY_CURRENT_USER\Control Panel\Mouse\ActiveWindowTracking = 1

You may also want to check out the TweakUI "powertoy" described in the following section.

### "I can't stand this feature!  How do I change it?"

Checkout TweakUI, a part of the Windows 95 PowerToys, which will work with NT.  The PowerToys include other cute tweaks that let you do things like enable X-like focus-follows-mouse behavior, get rid of non-deletable desktop icons like the inbox, control whether CDs are auto-run, etc.

## System Configuration And Administration Questions

### "Do I want to use NTFS, HPFS, or FAT?"

If you want to access the volume from any other operating system, go with FAT.   If that's not the case, or you care about having fine-grain access control, then use NTFS.  HPFS may be useful if you care about OS/2 compatibility, which is unlikely in our environment.  I would suggest you start with FAT.  If you have the urge to convert to NTFS at some point, you can use the utility c:\winnt40\system32\convert.exe to convert a volume to NTFS.  Unfortunately, you cannot convert back.

The OSR2 release of Windows 95 supports the "FAT32" filesystem which can make more efficient use of large disks since it uses 32 bit disk block pointers instead of the 16 bit pointers in FAT.  However, NT 4.0 does not support FAT32 in any way.

### "But won't security be really weak if I don't use NTFS?"

Yes and no.  If you don't use NTFS, then anyone who can log into your machine can read and write any of your files.  However, by default, people can only log into your machine from the console, and you can severely restrict who may do so.   Note also that regardless of which filesystem you use, you can establish share-level permissions for any shared object.  What this means is that if you share a folder, even from a FAT volume, you can control exactly who can do what with it.

### "How do I get my machine backed up?"

Send mail to help+pc@cs.cmu.edu and someone will come by to install the Retrospect Remote backup software.  Facilities has tried several network backup solutions for NT and this seems to be the best of the bunch.  It will give you daily notification of whether backup succeeded or failed.

If you have a tape drive or other backup device, you can backup the machine yourself using the included backup software (Start Menu:Administrative Tools:Backup).

### "Do I want to use NT Workstation or NT Server?"

You probably want NT Workstation.  Facilities won't stop you from using server, but they won't support you either.  There is certain software that won't run on Workstation (such as the MS Backoffice suite, which you probably don't need, for example), and other software will run differently on Workstation (the Internet Information Server won't support as many simultaneous connections, for example).   However, the vast majority of software will run identically.

One of the big advantages of server is the more extensive set of administration tools.  However, these tools are included as part of the NT Resource kit and are available for free download from Microsoft's web site.  NT Server is essentially NT Workstation with two different registry settings and a more extensive set of utilities.

NT's administration tools are available in available from Start Menu:Administrative Tools.  NT Workstation has a more restricted set of tools than NT Server, both in number and in scope.   For the most part, the NT Server tools are included in the NT Resource Kit and can be run on NT Workstation.  Since you probably don't need to remotely administer machines, I would suggest you stick with the Workstation tools.

Another important tool is the Event Viewer, which lets you view the event log of the machine.  Applications, services, and NT itself write events into the log to inform posterity of exceptional conditions.  If your machine suddenly boots funny, the event log is the place to look.

The Performance Monitor lets you observe literally hundreds of different performance counters on your machine or other machines you have rights on.  It can be incredibly useful in optimizing the performance of your machine.

### "Should I put myself into the Administrators Group?"

Perhaps.  If you are in the Administrators Group, you can install software with impunity and generally treat your machine as a fast PC that rarely crashes.  However, it also means you can shoot yourself in the foot more easily.  However, unless you're using NTFS, you can generally shoot yourself in the foot anyway, so why not be administrator.  There is an "su" command in the NT Resource Kit, which may be useful to avoid having to put yourself in the administrator group.  Personally, I have always used NT as a member of the Administrators group.  If you've admined a non-NT PC or a Mac, you shouldn't have any problems.

### "How can I administer my system remotely?"

Use the "Select Domain" or "Select Computer" menu item under "File" or "User."  If you don't see this, you may have to upgrade to the Server version of the particular administrative tool, either by installing NT server, installing the NT Resource Kit, or by downloading the server version of the tool from Microsoft.

### "What are Service Packs and do I want to install them?"

Service packs are basically bazillions of bug fixes and new bugs that you can add to NT in one fell swoop.  Generally, you don't want to be gung ho about applying them since they have been known to backfire.  If you aren't having any problems, wait a month and then ask on Zephyr whether it is a good idea to apply the latest service pack.  There are also one-bug-at-a-time fixes which you don't want to apply unless you are having exactly the bug that is claimed to be fixed.
As of 8/27/97, Service Pack 3 seems to be safe.  Your blue startup screen should say NT 4.0 Build 1381 (Service Pack 3). A period after "1381" is also acceptable, although I don't know what it means.

## Windows Networking Questions

### "How do I share a folder?"

Right click on the folder and select "Sharing..."  Click on the "Shared As:" radio button, then click on the "Permissions"  button.  You'll now see a dialog box that will let you specify who will be able to read, change, or take "full control" of the folder.  "Full control" basically means the user can change the sharing permissions.   Notice that the default permissions, where "Everyone" is given "Full Control" is almost certainly not what you want.

### "How do I attach to someone else's shared folder?"

Open the Network Neighborhood, double click on the machine sharing the folder, and then double click on the folder to open it.  You can also right-click on the folder and select "Map a network drive..." to make that folder appear as a drive letter on your machine.

### "How do I install printers?"

Open up Monolith and double click on the printer you want to use.  If you don't already have a driver installed for the printer, a wizard will appear to guide you through the process of installing the appropriate driver.

### "How do I see the print queue?"

If you double click on the printer, you'll see the printers queue for windows networking.  However, monolith quickly converts windows print jobs to unix lpr/lpd style jobs, so this is quite misleading.  NT does have an optional lpr/lpd service you can install, but running lpq on a Unix box seems to work best.  You can also use Zephyr to provide notification when your job is done.  See the FZQ.

### "I'm sick of all this GUI stuff.  Can I use Windows networking from the command prompt?"

Yes!  All of the functionality in the GUI and more is available in the "NET" command.  For example, to attach to the volume "pc_dist" on monolith and map it to drive M:, I could do "net use m: \\monolith\pc_dist".  To see the other possible commands, run "net /?".

### "Can I use this Windows networking stuff from a dialup?"

Yes.  Just be sure to dial into an SCS modem pool using PPP.  For information on setting up PPP, see facilities' NT 4.0 Dial-up Configuration Guide.     You can't do this on an Andrew dialup yet, and it is unclear whether the service will ever be offered.

### "I'm using dial up networking from machine foo and machine bar won't let me attach to a share I should be able to use.  What's wrong?"

You are authenticated as foo\username and bar is only willing to share to scs\username.   You can attach to bar using scs\username by running "net use \\bar /user:scs\username *" from the command prompt.   You will be asked for a password.  After completing this step, you'll be able to access bar normally.

### "Can NT display windows on remote servers like X can?"

The short answer is no.  The medium answer is not version 4.0.   The long answer is yes, but it is expensive.  There are third party add-on packages that can do this, but they cost quite a bit, and MS appears to be getting ready to launch their own such package which will probably decimate everyone else.

### "How do I access AFS from NT?"

There are two options, using SAMBA running on tangerine, or using Transarc's NT client.  Facilities has more information on these options.   The Transarc client appears to be fast and stable.  However, it is also fairly new.

### "How do I access NFS from NT?"

Since we don't use NFS much in SCS, facilities doesn't have a standard solution.  There are several NFS clients available that integrate well with NT.   Some have free demo versions available on the net.  PC Week did a comparative review several months ago.

### "Can I telnet to my NT box?"

NT doesn't come with a telnetd, but there are several third party ones.  The one that comes with Exceed seems to work as well as most.  Note that if you install a telnetd and you use HPFS or FAT, then anyone who can log on to your machine at the console can telnet to the machine and access all your files.  By default, anyone in the group scs\domain users can do this.

### "Can I rsh to and from my NT box?"

Yes and no.  NT includes an rsh client but not the server (rshd).  However, rshing from NT to an SCS Unix box is difficult since NT does not yet support Kerberos.  This tends to make using an X server on NT somewhat annoying since one must first establish a telnet connection.  Running a third party rshd on your NT box is worry some for the same reasons as running a telnetd.

### "I get 'TCP/IP CP reported error 2: the system cannot find the file specified' when dialing up. Why does MS hate me?"

MS hates us all. You may find this document useful though. Although my "source" claims it's public, it is not actually in MSDN or the Knowledge Base, and MS will not fax it to you.

## Software

### "Where do I get software?"

There is lots of free, shareware, and commercial software available on monolith (\\monolith\pc_dist).  Some of the commercial software is site-licensed and some requires a specific license.  If you see something you want, but get "access denied" when you try to open the folder, send mail to help+pc@cs.cmu.edu and ask to be added to the license.    There are a variety of useful sites on the web including  Win95.com and Microsoft's web site.

### "What software should I install?"

That's a hard question to answer.  You'll probably want MS Office 97, Netscape, Exceed, and some sort of development environment such as Visual C++.

### "Is there an X Server?"

Yes.  Exceed is an excellent X server and comes with an extensive family of utilities as well. Exceed is available in \\monolith\pc_dist\payware\exceed.  You'll need to send mail to help+pc@cs.cmu.edu to be added to the license.

Although there are rumors of a Zephyr port somewhere in Andyland, I have not seen it.  A Kerberos port sufficient to enable a kerberized telnet does exist.  Currently, people either use xemacs or zwgc on a Unix box to read zephyr.

I have written some zephyr proxying code which I would love to have someone turn into a cool windows client.  I can say that it would be a great way to learn something about programming the Windows GUI.  Let me know if you are interested in pursuing this.

### "The telnet that comes with NT is awful.  Is there a better one?"

Yes.  Check out Teraterm, which is quite nice, especially for emacs users. You probably also want to install Rob O'Callahan's TTSSH extension which will provide you with encrypted connections. We haven't found anything better.  If you have a fast connection, I would just use Exceed and run xterms.

### "Is there an Emacs for NT?"

Yes.  GNU Emacs 19 has been ported to NT.  Check out \\monolith\pc_dist\freeware\ntemacs.  Of course, the latest version is likely to be found via the Emacs Home Page.

### "I really want to use Unix tools..."

There are several ports of the Unix toolset.  The Cygnus gnu-win32 port is quite extensive, including even gcc/g++ and bash.   The Reed Kottler Toolkit is a bit narrower in scope, but seems to be more stable. OpenNT is a commercial Unix "subsystem" for NT that includes not just the tools, but an execution environment that looks Unix like.  There are several other commercial unix package from Cygnus and Hamilton you may want to look at.

### "All I need is Perl..."

And you shall have it! ActiveState has a downloadable port of Perl to Win32.  There is also a Microsoft port in the NT 3.51 Resource kit, and presumably in the 4.0 kit too.

### "Should I read mail on NT?"

Perhaps.  SCS uses POP3 servers, so any of the many NT clients are welcome.  I personally use Eudora Pro and am pretty happy with it.  If you use several machines at different locations, especially if one is only dialup-connected you may want to just read mail on a unix machine you can telnet to, thus avoiding the headaches of synchronization.   Although NT is also telnetable, I am unaware of any decent mail clients that work via telnet.  Once IMAP is commonplace, synchronization will no longer be an issue.

Whatever mail client you decide to use, if you expect to receive mail in two places, you should make sure the "Leave Mail On Server" option is selected in both clients so that both will receive all mail.  You probably also want to enable the "Delete Mail on Server When Deleted Locally" option.

There is also some facilities information on POP3 mailers and how the kerberos/non-kerberos divide is taken care of.  Basically, you'll get an additional ".mail" kerberos identity for use with POP.

### "How do I use Latex?"

There are several commericial and free ports of Tex and Latex to NT.  Several students have had good luck with EmTex.  I personally prefer MikTex.   MikTeX is available in \\monolith\pc_dist\freeware\tex\miktex. I still tend to prefer to use Latex on a Unix box since none of the windows based viewers are quite as good as xdvi.  Also, keeping .bib files synchronized can be a pain.

### "I need GhostScript/Ghostview!"

Check out \\monolith\pc_dist\freeware\ghostview.

## Software Development

Note that most of the development work I have done on NT has been using MS Visual C++.  I'm certainly not the best source if you're interested in development in Java or another environment.

### "Why do I want to develop on/for NT"

A real GUI that's fairly easy to develop for.  Real threads and synchronization.  A kitchen-sink like API with no bizarre variants.  Excellent development environments.  Relevance.  Easy binary distribution.  Fast, cheap machines.

### "Why don't I want to develop on/for NT"

It's not Unix.  Not everyone uses Windows, especially in an academic environment.  It may be missing the libraries you need.

### "What development tools are there?"

There are literally hundreds of development tools available for NT.  SCS has site licenses for lots of Microsoft's stuff, including Visuals C++, J++, and Basic.  Metrowerks Codewarrior is also available with a special user license.  Codewarrior includes Object Pascal, C++, and Java and targets Intel-based Windows 95 and NT boxes as well as PowerPC and 68K Macs.  There are other "Warriors" that can target Be and Pilot.    GNU gcc/g++, bison, flex, make, and other GNU tools have been ported to NT as well.

### "I want to develop Windows applications in C/C++.  What tools should I use?"

You almost certainly want to use Microsoft's Visual C++ and the Microsoft Foundation Classes framework.  While MFC is really only a thin veneer on top of the Win32 API, the VC++ development environment understands MFC at a pretty deep level and can automatically generate much of the glue code you need to use it, both when you start development and as you incrementally add support for more messages.  It's also pretty easy to "punch through" the framework and use raw Win32 when necessary for performance reasons.  On the other hand, MFC does not take well to multithreading, and becomes more difficult to use if your application does not fit into the document/view pattern.

As far as I know, Metrowerk's PowerPlant framework has not been ported to NT yet.  You can use MFC, but the development environment won't do the grunt work for you like VC++ will.

I'm not familiar enough with Borland's ObjectWindows framework to make useful comments.

### "I want to develop console applications or libraries in C/C++.  Which tools should I use?"

Visual C++ is a strong contender for this too.  The debugger is excellent and even handles threads well.  On the other hand, the automated project management of the development environment can be a pain, especially if you have lots of small targets.  You can use the command line compiler, "cl", like you would use the Unix "cc" command line compiler combined with make if you prefer that sort of environment.   The GNU Emacs port to NT integrates well with "cl" and GNU make.

Metrowerks will probably work just as well, although I have not tried it yet.  One could also use the Cygnus gnu-win32 port or OpenNT to develop using gcc/g++, emacs, and make.  I'm not crazy about the cygnus compiler, but one could make it work.  Also, if you go with Cygnus or OpenNT, you essentially buy into an emulation of the Unix API as well, which may not be what you want.  In general, trying to make NT look like Unix leads to pain for all concerned.

### "Why would I want to use Visual C++ 4.2 instead of 5.0?"

5.0 is a pretty drastic rewrite and various people, including myself, have found problems in the parser and other components.  If you don't have any "legacy" 4.x code, you probably want to jump straight to 5.0, however.

### "I want to develop in Java.  What tools should I use?"

Visual J++ may be an option, but Microsoft does not appear willing to become compatible with the 1.1 specification, so that may be a problem.  People here seem to use Symantec's Visual Cafe for Java more than anything else.  There is a JDK available for NT as well.  I am really not much of a Java person, so please ask others about this.

MS has a product called Visual Source Safe that you could use.  I use CVS.

If your CVS repository is on AFS, you can install the Transarc AFS client to gain access to it.  Failing that, or over a dialup connection, you can run CVS in pserver mode on a Unix box where your reposity is accessible to server it to an NT CVS client.  You can get the latest versions of CVS from the CVS Bubbles page.  On your Unix box, you'll need to edit your /etc/services file to include the line

cvspserver      2401/tcp

and your /etc/inetd.conf.local should include a line like

cvspserver  stream  tcp  nowait  root  /path_to_cvs/cvs /path_to_cvs/cvs -b /path_to_cvs pserver

and, finally, your CVSROOT on the client machine should be something like

:pserver:yourname@yourservermachine:path_to_repository

Note that there is no .local version of /etc/services, so if sup is in a bad mood, it may clobber the line you added.  If cvs does not appear to be working, it is almost certain that sup clobbered the file.

Another caveat about using pserver mode:  Sometimes you may see bizarre failures when doing updates.  If this happens, rerun the update command until you converge to a fixed point.   I have some theories about what is happening, but I haven't really explored them.

### "What is MSDN and why would I want to buy it?"

The Microsoft Developers Network is a family of products aimed at developers.  The high end "Universal" subscription is especially useful since you are assured that you are up to date on all MS products and documentation.  By "all", I mean virtually everything Microsoft makes.  If you want the Slovenian copy of the Windows 95 OSR2 release, it is in there.  At lower subscription levels some products are removed, but even the lowest level subscription includes quarterly CDs that contain the MS Knowledge Base, journal articles, sample code, and other useful things.  Some of this information is also available for free on the Web.

I should start by noting that I have a bizarre windows history - I started with Win16, then hacked a little MacOS, then learned enough of MFC to get by, and finally had to punch through to learn Win32 for various performance reasons. I'm sure my choice of books reflects that.

For a general introduction to Win32 and programming for Windows, check out Chuck Petzold's Programming Windows [95]. This book has been around since Windows 1.0 and is chaulk full of programming examples written in plain C. If anything, there is too much code, but it is a good book. It's a little weak in giving a clean explanation of the Windows programming model, but that's OK, since you are no longer really constrained to using the windows programming model since Win32 supports console apps which behave much like unix apps.

The Microsoft Win32 Programmers Reference (several books) is as good a reference as any. The first book covers the programming model and fills in some of the bits Petzold misses.

MFC does a nice job of hiding the details of the windows programming model (message pumps, dispatch, blah blah) inside a framework that you can easily extend to build the most common kinds of windows apps. Paul Yao's Visual C++ Programming for Windows 95 has a pretty good intro to MFC. He's written several other books that may also be useful. The Scribble example application included with VC++ is also a good intro, I think.

Andy Schulman has written a series of Undocumented Foo books which may be useful.

The MSDN library and archive CD (three total) contain a wealth of articles and other bits that can help answer specific questions. You definitely want to install this and consult it.

Win32 threads are kernel threads that work the way you learned about in your undergrad OS course. There's a wide variety of synchronization objects such as semaphores, etc. Check out the documentation for the ::CreateThread() call, and the ::WaitOnSingleObject() call and ::WaitOnMultipleObjects() calls. In NT, you can set a thread's "processor affinity" - which is your suggestion of which processor to map it too. Shared memory within a process behaves just like you expect. You can also create shared memory that is backed by the filesystem so that you can share a region among multiple processes.

If you *ever* want to use MFC, even just the CString class, you almost certainly want to use the MFC CWinThread class for multithreading. Mixing MFC and raw Win32 threads is just excruciatingly painful, although it can be done if you route all communication to MFC objects through windows messages. For example, a non CWinThread thread (say, a compute thread) cannot call CWnd::OnDraw() (say, on an output window) but must ::PostMessage() a WM_PAINT on the underlying HWND to the application. I've also played other tricks using windows timers, but in general, I would suggest that if you want to use MFC, use CWinThread if at all possible.

I haven't seen a book or other resource that's exclusively about multithreaded programming on NT.

## Exasperation

### "The system hung!  NT sucks!"

What has probably happened is that "explorer.exe", the program that provides the finder-like user interface has hung.  Hit CTRL-ALT-DEL, bring up the task manager, kill "explorer.exe" and then restart it.  Your other programs should remain OK.

If CTRL-ALT-DEL does not do anything, your system is indeed truly hung.  This happens rarely.

### "What does 'This program has performed an illegal operation and has been shut down' mean?"

The program segfaulted, executed gibberish, etc and is in the process of being terminated.  If you have a debugger installed, you can click Cancel to attach to the process to perform a post mortem right then and there.

### "Argh!!!  How do I get reasonable encapsulated postscript out of NT?!"

The windows-based wmf2eps utility is The Right Tool. You simply copy from any windows app and paste into wmf2eps. Then you tell wmf2eps to save as eps. You can also set up limited batch conversions. You can find wmf2eps on any CTAN web site, including here.

If you have access to a Mac that has Canvas you can use Canvas's EPS export filter.  This has produced the best results in my experience.  If you don't have canvas, the EPS output option in LaserWriter 8 is pretty good.

You can also copy and paste to the windows version of Canvas, even the free 30-day version available on-line, and use its save-as-eps feature. However, there are several bugs, at least as of version 5.0.2. First, eps export of selections does not work at all - you get blank output. Make sure to export whole pages. Second, even that eps output is polluted with what looks like windows-specific cruft. To remove the cruft use epstool -p canvasoutput.eps > fixedcanvasoutput.eps. Epstool is one of the ghostscript utilities. Another trick to keep you sane is to "paste special" as an object so that the canvas version of your illustration remains in sync with the original version.

If you use Deltagraph and think that its built in eps export will just work, think again. After you export to eps, you must run the file through epstool -p dgoutput.eps > notquiteright.eps and then tr "\r" "\n" < notquiteright.eps > ok.eps. Tr is a unix utility, available in the various gnu utility ports to NT. The Tr step is basically replacing mac-style end-of-lines with DOS-style end-of lines. Don't ask me why this should matter - I just work here.

I've reported the Canvas and DG bugs to the respective companies and they have basically said, "yup, that's a bug." No word as to when it will be fixed, though.

Jim Stichnoth developed a cookbook  for producing Latex-compatible EPS directly on a Windows 95 machine.  Most of the document appears to be applicable to Windows NT, but it won't work because MS's postscript driver does not have an eps output option and Adobe does not yet have a postscript driver for NT. Amazingly, the option existed in NT 3.1 but was *removed* when NT 3.5 was released. The MS propaganda for removing it claims that eps output can be better done by applications and that in the future, all good apps will do so. Of course, none of MS's apps do it yet. The claim is that NT 5.0 will again support eps. Also note that the printer configuration options Jim sets are located in different places on NT.

### "The NT Command shell SDDD big time!!!!" or "The NT Command Shell lacks QWAN..."

You are right.  If you grew up in the demented world of DOS and OS/2, it will make perfect sense to you.  Otherwise, you may want to try the ports of tcsh, bash, and ksh that are parts of the various freeware and commercial Unix utilities ports. Another option is 4nt, which attempts to bring some sanity to the NT command shell.  Opinions are divided as to whether any of the ports of Unix shells are actually useful in the long run.

The NT command shell can do completetion, but you need to activate it by adding a registry entry. For example,

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar = 9

will set up tab (ascii 9) completion.

### "Enough! How do I kill my Pentium?"

Try
void main(void)
{
char hang[] = { 0xf0, 0x0f, 0xc7, 0xc8 };
void (*kill)();
kill = hang;
kill();
}

Sadly, it won't do anything to PPros and PIIs.

Peter A. Dinda