Newsgroups: comp.os.linux.announce
From: tdunbar@vtaix.cc.vt.edu (Thomas Dunbar)
Subject: Milieu package update
Message-ID: <1993Jun3.202603.22474@klaava.Helsinki.FI>
Date: Thu, 3 Jun 1993 20:26:03 GMT
Approved: linux-announce@tc.cornell.edu (Lars Wirzenius)

I've recently done an update of the Milieu package
(/pub/linux/packages/TeX/Milieu, tsx-11.mit.edu). The main changes
are:

1) the textbook is up to 30+ pages..mostly metafont stuff plus a
   bit of general installation material.
2) METAFONT binary is customized for interactive use.
3) the emacs binary is 19.12 (in usrbin.tz), the related support
   files (including calc and auc-tex) are in Emacs.tz.
4) in an effort to minimize X as much as possible, i've switched to 
   the feeble window manager (fvwm) and also include rxvt and ksh.
     

---------------------------
Milieu.dvi excerpt:

     This text aims to be a serious introduction to academic
computing. In teaching such a course, even to well prepared and
motivated students, the fundamental problem is to find meaningful
examples of programs and tasks. This is my attempt to solve this
problem in a way that provides a foundation for further studies.

     Although there are many appropriate text-processing tasks (and
suitable languages, e.g. AWK, for this programming), graphics-based
tasks are more interesting and vivid to the students. However, none of
the standard languages are really appropriate for such work.  While
one can make a special graphics package for, say, Pascal, the
resources provided are typically not extensive enough nor sufficiently
integrated into the basic syntax of the language.


METAFONT


     Donald Knuth designed MetaFont as a fontmaking language to
support his TEX typesetting language. Thus, all the graphics support
one needs is built into the system. At the same time, MetaFont is a
fullscale programming language with assignments, loops, scoping and
parameter passing.  Furthermore, MetaFont's equations provide an
introduction to declarative programming languages and its macro
facilities enable one to glimpse what is going on "inside" a
programming language. Source code for MetaFont is freely available and
free executables are available for personal computers.

     MetaFont is the primary programming language used in this text. I
focus primarily on simple drawing; however making a complete font
provides a good opportunity to present the complications of scale that
accompany a large programming project.  In addition, such a project
enables one to appeal to a broader range of student talents and
interests.  The course works best, I think, if students' artistic
skills are cultivated as well as their ability to think analytically.
Different students will, of course, have different interests and
abilities.  Learning how to work together and make the best advantage
of this is also very useful and provides a good introduction to
software engineering and related issues. I hope this text will be of
use for a course at our school, Dayspring Christian Academy, and that
we will be able to include a sample of designing a font for the
Wycliffe Bible Translators.


LINUX


     However, besides a programming language, one needs an operating
system. The system must support our programming well; in particular,
one must be able to interactively write MetaFont code and look at the
results simultaneously. Hence, some sort of graphical windowing system
is essential. We will be working with many files and directories and
will have need for a wide variety of support programs.  In addition,
we want to use a system that will not be `outgrown' and which will
also provide a foundation for using and studying operating systems
themselves.  Furthermore, in our school environment, a multi-user
system is most efficient.  All of this leads one to want a Unix
workstation environment; however, the cost is prohibitive.

^L
     Rather, we use Linux, a largely POSIX-compliant multi-user
operating system whose kernel is written by Linus Torvalds, a graduate
student at the University of Helsinki. Linux is freely redistributable
(under the GNU copyleft) and runs on INTEL 386 cpu/IBM AT bus
architectures. It is sufficiently compatible with BSD and SYSV UNIX
that all of the software we need compiles "out of the box." As with
Unix, the word Linux is often used to refer not just to the operating
system kernel itself, but also to the various systems and applications
software commonly available with the system.  Much of Linux's system
software comes from the Free Software Foundation's GNU project.  GNU
Emacs is our standard text editor (and lisp interpreter, calculator,
and symbolic math solver) and gcc is the standard C compiler.  TEX and
MetaFont are also a standard part of Linux and many other programs of
interest to the academic community are freely available.  MIT's X
Windows (X11R5 in its XFree86 version for 386 compatible machines)
provides the graphical interface and various graphic utilities.  Linux
also has full TCP/IP networking support and there is a very active
user/developer community available via the Internet.

     All of the above software is free; not only does this save money,
it makes technical support, bug fixes and program updates more readily
available.  Since the programs are free, and since they are widely
available, this text can refer to more programs and speak more
specifically and concretely than otherwise possible. Furthermore,
since source code is available for all the programs, the same system
that the students are first introduced to can also serve them well if
they continue to courses in operating systems, language theory,
systems engineering, etc. In particular, MetaFont itself is very well
documented by its author, Donald Knuth: The METAFONTbook, a
comprehensive user's guide and description of the programming
language and its standard macro package, Computer Modern Typefaces,
attractively typeset source code for all the Computer Modern fonts
together with proof samples for font designers, and METAFONT: The
Program, which thoroughly documents the code of the program itself{a
very wide range of programming paradigms are discussed here for
professional programmers.


MILIEU


     The close association of MetaFont and Linux is specific to this
text; many Linux users may use TEX and/or MetaFont little, if at all.
The Linux Documentation Group is using TEX for their work. I hope to
write in a way that will be useful even if one is only interested in
Linux and also to provide useful information on Emacs, Emacs Lisp,
and, perhaps, even Cweb. Nevertheless, my discussion of these various
topics will always be centered around MetaFont-related tasks. Warning:
I certainly don't claim any expertise regarding Linux, MetaFont, or
any of the other programs I discuss. I teach English as a Second
Language and Technical Writing; I'm very much an amateur programmer.
I'm teaching myself as I write this; please join me in this endeavor.
One reason that this text is publically available for ftp is to see if
the same advantages that I claim for publically available source code
also apply to manuscripts. The free flow of information is important
to academic computing; most of the tension between academic computing
and business computing is that the two areas have different aims and
values.  This text's focus is on academic computing.  For example,
suppose one wants to make a black and white logo. If it's just for
some specific hardware, one could use a bitmap editor such as
MacPaint. If output device independence is needed, then one could use
Corel Draw, etc. In both cases, however, one needs a certain program
to determine what the logo looks like and still one has no
understanding as to the rationale behind the design.  On the other
hand, with MetaFont one has a program that anyone can read which
precisely defines the logo in a device independent fashion and through
which one can explain various design considerations.  Furthermore the
source code for the necessary programs to output the logo to various
devices is freely available. This portability and archivibility is
important to academic enterprises.

     It is true that our system places restrictions on the hardware; I
hope that this does not place too much of a financial burden on people
that would otherwise be happy with our approach. In calling this text,
METAFONT and Linux: a Personal Computing Milieu, the word personal
refers not to PC's but rather to the effort to personalize one's
computing system. There is an international `community' involved in
making such systems possible, hence the word Milieu.
