Q & A
Q. What is WinMOO?
A. WinMOO is a Win32 version of the LambdaMOO
server. It runs on modern Windows platforms. It is currently
based on LambdaMOO 1.8.0p6.
Q. What do I need to run WinMOO?
A. You need a modern Windows: that is, Windows NT, Windows 95 or later.
Q. Who maintains WinMOO?
A. It is not actively mantained. Christopher Unkel made the
relatively minor changes necessary to port WinMOO from the UNIX
version to Win32.
Q. What do I need to do to get a WinMOO server up and running?
A. The following list should serve as a set of minimal setup instructions:
-
Retrieve the latest version of WinMOO.
You can get it here:WinMOO-0.1.0beta8.zip
-
If this is the first time you've retrieved WinMOO, drop Chris Unkel an
email if you would like.
- Read the readme.txt and the WinMOOChangeLog.txt
files for information about the current version of the WinMOO server.
You should also read the ChangeLog.txt, which contains version information
about the LambdaMOO server on which WinMOO is based.
- You need a database. If you don't already have one, you might start with
LambdaCore
or JHCore.
- Create a directory somewhere and unzip the contents of the WinMOO zip file
there. Also put your database there.
- In order for the built-in function ctime() to work properly, you need to
set the "TZ" environment variable. The format for the TZ variable is
tzn[+|-]hh[:mm[:ss]]dzn
where:
- tzn is the three-letter time-zone name, such as PST or EST.
- hh, mm, and ss are the difference in hour, minutes,
and seconds between local time and coordinated universal time. (This may
be preceeded by a + or -.) For example, 8 for pacific time or 5 for eastern
time.
- dzn is the three-letter daylight-saving-time zone. If daylight saving time
is never in effect, omit this.
The best way is probably to set it in your AUTOEXEC.BAT (or AUTOEXEC.NT
under NT, thanks to Brian Robke for this information). For example:
set TZ=EST5EDT
or
set TZ=PST8PDT
Obviously, you should replace time zone names with the appriopriate
characters for your time zone. (The server should get the actual time correct
in any case; the correction for the timezone is based on settings in the
Date/Time control panel. The name of the timezone, however, depends on
the environment variable.)
- WinMOO is a console application, and runs from a command
prompt (except the service version; see below.) WinMOO takes the
same arguments to begin as a LambdaMOO, namely:
winmoo <old-database> <new-database> <port>
Redirecting the output doesn't work; if you want to save your log in
a file, use the -l <logfile> option to specify that option. Log output
will be sent both to that file and the console window.
If you would like to enable outbound network connections, you must
add the -o option to the command line:
winmoo -o <old-database> <new-database> <port>
Think very carefully before enabling outbound network connections;
they could represent a serious security risk in some situations.
- Once WinMOO announces that #0 is listening on the port you selected, your
MOO is running. Connect to your machine with your favorite client and start
working.
Q. Is there a mailing list for discussion of WinMOO?
A. No mailing list is currently active.
Q. What about FUP (File Utilities Package) support?
A. FUP is now supported through the plug-in interface, and a FUP plug-in
is distributed with WinMOO. To use it, add a -p flag when you invoke
the server:
winmoo -p fup.dll my.db my.db.new 8888
Q. How about running as an NT service?
A. That is supported as well. You can get the binaries for the
NT service version here.
Here is a set of very minimal instructions:
- Unpack the zip somewhere.
- Run WMSE.exe, the "WinMOO Service Editor". Click add.
- Fill in all the fields; use full path names. The fields should
be self-explanatory; you can leave fields blank if appropriate. The
startup routine field is an optional path to a dll containing code that
executes at the very beginning of server startup. wmoostartup.dll
contains such code that is very similar to the code in the restart script
distributed with the LambdaMOO server (read the source for details.)
- Click OK. WMSE will create an NT service named "WinMOO
foo Service", where foo is the service name you
entered. You can control service startup/shutdown from the
Services control panel.
If your service doesn't start, try checking either the logfile you specified,
or the System Event Log.
Q. Can I read information about the current version without downloading
the whole thing?
A. Yes. You can read the current WinMOO changelog
here.
Q. Is the source code for WinMOO publicly available?
A. Yes. You can get the source code, (as a collection of Visual C++
6 projects/workspaces) here.
Q. What are some other MOO resources?
A. Try the MOO-Cows FAQ.
Q. When I take my database written by WinMOO, and try to load it into
a LambdaMOO server under Unix, it doesn't work. What's going on?
A. Most likely, your database contains CRLF sequences (the Windows
sequence) as the line-termination character, rather than the straight LF that Unix
expects. Probably this manifests as log messages that include something like "***
DBIO_READ_NUM: Bad number:". You need to remove the CRs.
There are many ways to do this. One is to FTP the file from the Windows
machine to the Unix machine in ASCII rather than binary mode, which will
perform appropriate translation of end-of-line sequences. Another is
to strip out the CRs, e.g. with:
tr -d '\015' < foo-crlf.db > foo-lf.db
Q. Are there other options for running a
LambdaMOO server on Windows?
A. Yes. The stock LambdaMOO server will compile and run using
Cygwin, complete with forked
checkpoints. There are even mechanisms for running Cygwin
programs as Windows services. (When WinMOO was ported, Cygwin
wasn't nearly so good.)
Q. Why aren't there any more questions?
A. Because.