The Home Page of
James Dow Allen
Computer Programmer


Both my vocation and avocation are computer programming.

I also dabble in recreational mathematics.

Once I was involved in the IBM add-on memory industry. Here's an invention I'm proud of; and here's a detailed discussion of an interesting bug from those days. Here's an even more boring bug, with possible interest since it is arguably a weird IBM Principles violation.

I am now preparing a Digital Search Tree (Trie) which uses an especially memory-efficient technique to store pointer information. E-mail me if you're interested.

When I was first learning to create html pages, for some reason I chose to build a list of great mathematicians as a practice page, even though I wasn't qualified to make such a list without a lot of advice. Since then I've invested a lot of time reading mathematical histories and biographies and revising the page. I'm proud of it now: please read it!

I like composing and solving a variety of puzzles:

Puzzles of history intrigue me. Here's a synopsis of the confusing mentions of Jesus' brother James, along with ALL NT mentions of three other key names.

I've become fascinated with the idea of deducing human prehistory from genetic and linguistic evidence.
Here are my conclusions about the source of the Vedics.

I'm also interested in Games and Gambling. Here are some comments on Connect-Four.

Lately, in middle age, I'm finally trying to tune up some miscellaneous computer skills. See the animated gifs in the next section.

And of course, how could an American not follow politics? Here's my Wake up call for "liberals".

I love Go, but never found the time to pursue it so I'm just a kyu player. I've prepared animated-gifs of some famous games played by Wu Qingyuan (Go Seigen), one of the very greatest players ever.

Select which Game to view:
    Wang Yunfeng vs. Wu (1926)
    Fujisawa Kuranosuke vs. Wu (1953)
Or one of three games from a very important tournament:
In the mid-1950's Go Seigen was at the peak of his powers and
never lost as Black, but played White (without komi) in these games.

    Wu vs. Takagawa Kaku (Honinbo) (1957)
    Wu vs. Sakata Eio (1957)
    Wu vs. Kitani Minoru (1957)
Don't like Go?
    Then watch Miss Alla Kushnir dance!
    Or watch yourself with your webcam!
(Select any Go game to turn camera off.)

Signal Processing on a Hexagon Grid

One of my research interests is the hexagon grid to facilitate machine vision and other 2-D signal processing tasks. The advantages of that grid over the standard square grid have been known for a long time, but it is seldom used. (I guess the prevalance of the square grid shouldn't be surprising, considering that the advantages of Unix are even more clearcut, but MicroSoft Windows has overwhelmed the planet.)

Here is one of my research papers on the topic of ``Filter Banks for the Hexagon Grid''.

Lessons in Expert Programming (C Language)

I've decided to try my hand at offering software tips. Wish me luck !!

Only a few chapters are currently on-line. I'll post more if there's interest. Most of this code was written in the 20th century and will produce oodles of warnings with today's compilers. I am addressing these problems, slowly. Meanwhile, please use the software that I have organized into tarballs.

The textbook is free. If that makes you feel guilty, contact me for Pay-Pal number. If that makes you feel hilarious, sorry.

Eventually I'll create a webpage summarizing comments. For now:
> My non-gnu compiler does not accept `long long'

Sorry. If you can't think of a work-around, try an easier exercise.
> Those who can't, teach.

Even pejorative comments are welcome, but please attach your own exercise solutions to verify we're playing in the same league.
> I didn't think it was so bad, and parts were almost well-written.

Flattery? Yes, that works.

Recently (November 2008) I posted some hash table code here, that I hope others will find useful. Since then I've improved this software and believe it to be of "commercial quality." It's no longer available here for download; e-mail me if you have interest.

I am organizing some C-language software I've written into files and folders I'm no longer ashamed of. Here is a PARTIAL list of the C files in 6 different tarballs. (Each tarball also contains a 'makefile', a 'Readme' a few '.h' files and so on.) Download jdas_all.tar.gz to get all seven folders at once. (If jdas_all gets '404 Not Found', it means the latest '_all' is unavailable: Download the source tarballs one-by-one.)

I have reorganized (and improved slightly) the C code presented at this site. Please use only the sources described here, which is organized into six tarballs as follows:

The htab_find() routine in jdas_htab/tightch.c is the most horrible routine ever written!! I'm proud of that in a very perverse way! :-)

I've just placed a few chapters on-line so far, but some of the other programming examples are available. These are mostly simple short programs with interesting or instructive features.

In (rough) order of increasing complexity.

I also discuss my symbolic math software. Sorry, to get this source code you will have to request to be a beta tester.

Here's some other Html pages I've had fun preparing:


This site has become very popular! You are the 'th visitor to this page.

In my free time, sometimes I "surf" the Web. Seb Przd has some interesting photographs. Here's Seb himself, trying to straighten a picture on his wall:

Please send me some e-mail.