T.E.D. Home Page

This page is mostly a repository for links I find useful.

Last Update - 8/27/2001


Personal Projects:

My newest project is the SETI@Home Service. This allows SETI@Home participants with an NT ( or Win2K) machine to run their SETI client continuously as a service.

I'm currently running the OpenToken project, the purpose of which is to deveolp and maintain Ada packages to allow easy creation of lexical analyzers and parsers in straight-line code (as opposed to using a preprocessor).

I also developed Fodderbot to version 1.0 as a project for an AI class.

Also as part of that project, I developed AdaCLIPS; a small set of Ada (95) bindings to the CLIPS expert system shell.

Software Engineering:

There's a lot more to developing software than just spewing out source code and bashing it into shape with a debugger. I can't hope to transcribe years of experience here, but I can point to some papers that I found significant.


Below are the Win32 versions of the software development tools I recommend. All these tools are Open Source'ed, and all allow portable programs to be written. I work a lot on non-Win32 systems, so portability is very important to me.
  • Gnat Ada compiler   - Ada is the best general-purpose programming language available. Java comes a close second.
  • GtkAda - Gtk is not only the defacto standard UI toolkit for Linux, but its also has a complete Windows port. This makes it a very complete platform independent GUI development toolkit.Combine this with Ada, and you can build systems that are actually more portable than Java.
  • NTEmacs - The text editor. It's also a newsreader. It's also an email tool. It's also a psychoanalyst. It's also...
  • Emacs Ada Mode - Emacs comes with an Ada mode. The latest version of Gnat comes with a newer version of that mode. But if you want the latest version, you should download it from this site.
  • WiZ - A free replacement for WinZip. Unfourtunately, it can't handle tar'ed and taz files, which is part of why you also need...
  • Cygwin Win32 Unix tools - bash, diff, find, gawk, grep, gzip, sed, tar, and all their friends. Pick and choose yourself, or have setup help you.
  • Reference Material:

    You can tell a true guru by the manuals in his work area. Here's my online set.


    I initially got into computers at age 12 because I wanted to play computer games. Back then games were distributed in BASIC source code in books, and you typed them in yourself. Of course BASIC isn't very portable, and humans (especially 12-year olds) aren't perfect typists. So I always ended up having to track down bugs in the programs I typed in. Soon I had learned enough to start trying to extend the capabilities of the games. After that I started writing my own games from scratch.

    Of course these days major games are distributed via cartridges or in binary form, with no source code for incipient hackers to examine. There's no hope that my son or any of his generation will be able to learn by playing, as I did. These days our country depends on new software systems to maintain the productivity growth that keeps us competitive with developing nations. As software systems have grown more complex our need for software engineers has been growing geometrically. But the past few years enrollments in university computer science programs have actually dropped. There's a whole lot more riding on the Open Source movement than just about anybody realizes.

    Anyway, the career games have led me to has been very good to me. But I still love playing computer games.


    I coach my Son's soccer team, the Thunder