# Programming

I do a fair bit of computer programming. Computer experiments are often pretty useful in my research.

Probably the biggest project I've carried out is not mathematical, however. I did most of the C/C++ coding for the WinDraft document assembly system at Eidelman Associates. WinDraft was a system that made it easy for an expert to build a series of questions, which could be used to automatically create legal (or other) documents. It's kind of like US-based tax software, but more focused on text.

For a while, systems based on WinDraft were pretty competitive in the estate-planning market (creating complex wills and related documents). You can see a review from back in the day here; and a comparison of WinDraft with some competitors is here.

Here are some other things I've created.

## Mathematical code

- sgdiv_pub.g: GAP code from a project with John Shareshian, which examines prime divisibility of binomial coefficients. Our conjecture is that every row of Pascal's triangle has a pair of primes so that every entry in the row is divisible by one of the two; we used this code to verify the conjecture for a large number of rows.
- hvector.g (Sept 2009 version): GAP code that computes the
*f*-vector and*h*-vector of a simplicial complex. Also included is a function to compute the pure*k*-skeleton of a complex. Finally, there is some slow-but-working code to compute the*f*-triangle and*h*-triangle of a non-pure complex.

In addition to GAP itself, hvector.g currently requires the GAP simplicial homology share package.

## Other software related to mathematics

- GAP GUI for Macintosh OS X: A replacement for XGAP that does not require X11 and runs natively on the Macintosh under OS X. Hosted on SourceForge.

Requires a relatively old version of GAP to run at this time. - DeTeX: A web form which converts pseudo-TeX to lightweight HTML. Suitable for converting TeX abstracts for posting on a webpage, for quickly writing mathematical notation in homework problems to be posted to the web, etc. It is far from knowing all TeX notation, but will handle a good bit of e.g. the subset used in abstracts. It can be useful for places where MathJax is too heavy-weight or not available.
- I wrote the xfig export for XGAP (included in XGAP as of version 4.22, old versions available by request).
- I've also had several of my patches incorporated into LyX, the LaTeX based document processor (available in the latest version), including a question environment, fixes to the case environment, fixes to the starred environments, etc.

For mathematicians unfamiliar with LyX, I recommend George Grätzer's review in the*Notices of the American Mathematical Society*.

## Older stuff

These are both from Windows 95 days:

- FatWaste: a Win32 console app that determines the space wasted in FAT filesystem overhead on your hard drive. This was potentially useful in deciding what partition sizes to use, back in the day. It might even still work, although I haven't tried it for a while.
- Dropsy:
a Win95 taskbar app. Dropsy adds an icon
to your taskbar which you can click on to turn your cursor into a magic wand.
You can then click on the window of an application and drag from there to
create a shortcut to that application.

Dropsy was pretty cool back in Windows 95 days, but probably doesn't work on any recent versions of Windows.

And this one is even older:

- Unzip //e: an Apple //e unzipper. A readme file is here, and a review (from the good old days of 1998) is here. I have this up here mostly as a historical document, and leave it intact; although the contact information in the readme is no longer accurate, and I no longer expect or desire shareware payments for this. Please be aware that I downloaded this off an Apple // archive myself, and have not verified that it 'works'.