Computers are a very important part of my research, my teaching,
my communicating, and my fun. I write many different sorts
of computer programs, including Markov chain simulations,
numerical computations, student grade processing, text
manipulation, computer games, etc.
Computer languages
I have programmed in many languages (including Basic, Fortran, Pascal,
Cobol, and Turing), but my recent programming has mostly been in
C and in Java and in R.
I have also written some UNIX shell scripts and some
Mathematica programs.
Java applets (games, Markov chains, etc.)
I have written a number of Java applets.
This includes some games
such as tennismatch, soccer, and spacetag (which have received thousands of hits). It also includes some
Markov chain simulation applets
related to my research. I have
also written some animated cartoons.
In a related direction, I have experimented with creating animated gifs. Many web pages around the
internet have links to my applets.
Adaptive MCMC software
I wrote a package AMCMC, in R and C, to run adaptive
Markov chain Monte Carlo algorithms on user-supplied density functions.
Parallel computation software
I have gotten interested in parallel computing
issues related to Monte Carlo algorithms. I have written a simple,
general-purpose program jpar.c for use in running
a number of different commands (e.g. on different computers), and
then computing a weighted average of the results. I also wrote
some associated programs unifavr.c, normalmc.c, and james.c,
designed to be run in conjunction with jpar.c, simultaneously on many
different computers. All of these programs are licensed for general
use according to the GNU
General Public License.
They were written in conjunction with my research paper
Parallel
computing and Monte Carlo algorithms.
Other research-related software
In addition to my
Markov chain simulation applets,
I have written various C and Mathematica programs for my research,
including the program combin.c in connection with
this research paper,
and the program backmet.c in connection with
this research paper.
GNU/Linux system administration
I am now the primary system administrator for the GNU/Linux computer
markov.utstat.toronto.edu.
As a result, I have learned a lot about UNIX systems, and about administering
multi-user computer environments. I have benefited from lots of
help
from Alan J Rosenthal.
(I have also at times been somewhat involved with administering our
departmental computing,
and run the domain probability.ca.)
See also a D-Link Router fix,
a MySqlDump Version fix,
and a Red Hat timezone fix.
Free Software
I am a big believer in free software,
i.e. software that comes with free, publicly-available, modifiable source
code. I am proud to be an associate
member of the Free Software
Foundation (why don't you join too!). I work almost exclusively with
the open-source GNU/Linux operating
system (check out this Toronto
Linux retail store and this Ottawa
Linux store), and with open-source software
(e.g. C and TeX). I release software under
the GNU General Public
License (and encourage others to do the same). I also host the Canadian CRAN mirror (see
invgamma.R
and plotfunction.R
and statdist.R), and am a supporting
member of The R Foundation.
"jcal" -- a simple calendar program
I wrote a program jcal.c, and associated
documentation jcal.doc, licensed for general use
according to the GNU
General Public License. This program is a simple, convenient,
easy-to-use, plain-text calendar program for keeping track of
appointments. It may be compiled on virtually any unix-based machine,
or run from fisher.utstat.toronto.edu or math.toronto.edu by typing
~jeff/jcal
(i.e., "tilde jeff slash jcal")
at the usual unix prompt.
[Alternatively, type "/u/jeff/jcal" on utstat, or
"/usr/people/jeff/jcal" on math.]
Give it a try!
"mastermind" -- a computer-strategy program
I wrote a program mastermind.c, to play
the classic game "Mastermind", licensed for general use according
to the GNU
General Public License.
It may be compiled on virtually any unix-based machine,
or run from fisher.utstat.toronto.edu or math.toronto.edu by typing
"~jeff/mastermind" (i.e., "tilde jeff slash mastermind") at the
usual unix prompt. While there are already many
free implementations of Mastermind available (see e.g. here
and here),
most of them do not allow the computer to guess. My program
allows either the player or computer to guess, and the computer's
strategy is simple but surprisingly effective (usually winning in 4-5
guesses).
Interactive Fiction (Text Adventures)
I enjoy interactive fiction (text adventure) computer games,
as an alternative to the "flashing lights and sound but little
content" style of modern computer games. Also, recently Mike
Armstrong and I wrote our own simple text adventure called Galactic
Peace. For more information see my Interactive Fiction page.
The Math Communicator
I am a proud sponsor of the Math Communicator
software being developed by Marco Pollanen and Darron Brewster.
This software assists with communicating mathematical symbols, formulas,
graphs, diagrams, etc. over the web (either live or via e-mail), for
teaching and research purposes. Try it!
The game of life
I once hired Marko Riedel to program a multi-species xwindows version of Conway's Game
of Life for me; I have some research interest in such cellular
automaton models.
TeX
I am also an avid and enthusiastic user of
TeX, by Donald Knuth
(see also CTAN). I use it
for nearly all of my document preparation for research and teaching.
I have programmed quite a number of TeX macros, and also the
shell script mktex.
Lean Computing (My Computer Philosophy)
It seems that everyone who uses computers a lot has various strong
opinions about them, so why should I be any different? I believe that
computer use should be "lean", without a lot of unnecessary and bulky
"features". Also, I'm opposed to the sending of e-mail in needlessly
complicated and proprietary file formats (e.g. Microsoft Word documents).
For more on this, see my lean computing page and
my No Microsoft Word Attachments page.
A Computer Joke
I tried discussing computer hardware issues with my family. But it
made my motherboard.
[contact me /
Home Page]