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?"
Try adding this to your registry:
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.
"What administrative tools should I care about?"
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.
The most important tool is the User Manager, which lets you create,
add, and remove users and privileges. NT's security is reasonably
simple. There are Domains, which can consist of one machine or several
machines managed by a Domain Controller. Within a domain there are
users and groups. For example, your machine is a domain and SCS is
a domain and you probably have both a local user account (yourmachine\yourname)
and an SCS account (SCS\yourname). User Manager will let you control
all the users and groups within the yourmachine domain, and this includes
the ability to add users and groups from other domains to the groups in
your domain. In this way, you can give particular users in SCS rights
on your machine. Note that by default, the SCS\Domain Users group
is included in your local Users group and the SCS\Domain Admins group is
included in your local Administrators group. What this means is that
facilities can remotely administrate your machine and essentially anyone
in SCS can log into it.
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.
"What about Zephyr?"
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.
"What about revision control?"
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.
"What books should I read about Win32 programming"
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.
"What about multithreading in Win32?"
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