Chris HEATH: Computer stuff
Computer programming is a hobby of mine. I do all sorts of things —
programming, hacking, bug-fishing, typesetting, WhatHaveYou.
For UNIX users in the U of M Math Department
- Here is a collection of programs
I have written specially for the UNIX computers in the department.
- Have you discovered the "Applix" program yet?
It's a pretty good word processor and spreadsheet program.
The word processor has a math editor too!
- Have you added your math e-mail address to the U-M X.500 system?
You do that using the "modify <uniqname>" command in the "ud" program.
Then people can send you e-mail at the address <uniqname>@umich.edu,
and it will be forwarded to your math account. This makes it easier
for others to remember your address, plus you receive the occasional
e-mail from U-M organizations who have (hopefully with your permission)
put you on their mailing lists.
Surfing delights
Programs I've written
Here are a few of the programs I have written. All these programs
are freeware, so download whatever you feel like!
- Macintosh Programs and Utilities
- Windows Programs
- Java Applets
- Other stuff
- A while ago, I wrote a collection of macros
dashline.sty
for drawing dotted lines (and dashed lines, although that was less
successful) inside a LaTeX \begin{picture} environment.
- I wrote a collection of shell-script
and Perl programs designed to be used within the math
UNIX environment (though they may work elsewhere too).
Programs I would like to write...
... if only I had the time!
The sorts of things I do (and don't)
As you can see from the list below, I could do programming in just
about any language I wanted. I pick up new languages and environments
very quickly and easily.
- Macintosh stuff
- Applications, written in Pascal, C,
Object C, or C++, often with some 68K assembly language mixed
in there too.
- I wrote a printer driver.
Well, actually it didn't do much except pass calls on to
another driver, but it certainly required some knowledge
about drivers.
- In the past, I was tinkering around with HyperCard,
writing stacks (in the special HyperCard language), and HyperCard
plug-ins (a.k.a. XCMD's), written in C.
- I also toyed a bit with the Macintosh low-level debugger,
Macsbug, and wrote a macro plug-in (a.k.a. dcmd) using C.
- DOS and Windows stuff
- I have so far written one program for 32-bit Windows
(Othello),
and in the process I learnt a lot about MFC, about
Windows, and battled with a few of its bugs.
- A few years ago, I wrote a program for Windows 3.1, which
controlled many devices and slave computers, aboard a navy
ship. I developed from scratch a serial-port protocol and
DDE (Dynamic Data Exchange) protocol as part of this project.
- Even longer ago, I upgraded a couple of programs that were
written in 8086 assembly language which used DOS and
BIOS calls.
- Internet stuff
- I know HTML pretty well. Stuff on this page is pretty simple,
but I don't see any use for the more advanced stuff on this page.
I do all my pages directly in HTML, rather than using HTML editors.
- I use JavaScript quite a bit too. For example, the random
snippets you find at the bottom of this page are written in
JavaScript.
- I also enjoy writing Java applets. I have so far
written two Java programs: Othello
and Simon's Sliding Puzzle.
- I have done a lot of work with CGI programs. I updated
the Mathematics Department's quiz website (now disabled),
which is all written in Perl (and the occasional Maple command).
Here is a test CGI
program I wrote.
- For a time I was working with server-side parsing of
HTML documents, which is a feature of the Apache server we use.
Originally, the random snippets on my pages were programmed using
this method, but the parsing feature was disabled on our server
because it was determined to be too insecure.
Here's a test page on our math server,
and one on
www-personal.umich.edu.
- Other programming stuff
- I have used many assembly languages; I just learn them
as the need arises. Here's a list of the chips I've programmed:
8086, 68000, ARM2 (RISC), 6502, Z80, Z8, Vax, and others that I can't
remember off-hand.
- For an entire summer, I did FoxPro programming for
an Auckland insurance company.
- Two years ago I typed up a set of 5
children's musicals, using Finale and importing the
music into Word. Integrating text with music
(or music with text) is challenging and fun!
Doing it for a non-postscript printer even required writing a
new Macintosh printer driver! (see above)
- I use LaTeX or TeX to produce mathematical output.
(Despite what some people would say, I classify TeX as programming
rather than "Tech" word processing!)
See my collection of macros dashline.sty.
- I might sound like a bit of a hacker, but I definitely
don't do anything dishonest like writing viruses. Sadly,
there are enough people who do, to keep
these
people with a full-time job.
Links to the outside world
- Macintosh-related links
- Windows-related links
- Documentation
for Windows is on-line too, and (unlike last year)
the site is now very easy to access, although stuff is not always
easy to find. MFC documentation is found under
Visual Studio -> Visual C++ -> Reference, and API functions
are found under the (large) "Platform SDK" umbrella.
Known bugs in Windows are documented under "Knowledge Base".
- A good source of helpful source code and discussion groups
is at CodeGuru.
- Internet Programming links
- Other computer-related links
- Have you ever been in a situation where the only available editor is
vi? Well this
vi tutorial
makes a good reference page.
And if you grow out of this, there is a lot of
vi
technical information here.
- Here is a list containing some
good
complete-information games, and
mathematical analyses of games.
- Timothy Rogers' Java games
page has some good examples of complete-information games,
which are really well written.
Random tidbit
Click here to return to my Home-Page
Last changed 1 Sept 1999