Stuart D. Gathman

Last updated: Mar 29, 2014

Contact Details

Personal

Business

Email stuart@gathman.org
Spanish House Ministries
Email stuart@unilit.us
Phone 800-SOS-SPANx621
Company Website
Resume: PDF TXT
Profile: of my Ideal Company

Brief Biography

Communication protocols, database servers, software libraries, Adempiere support.

I worked as a software developer for Business Management Systems in Fairfax, VA for 35 years, where I designed and coded a telex protocol converter and email system for Jordan, a custom packet communication protocol and message system for the Air Force, two generations of a database server, and accounting algorithms. I am the maintainer (and authored most) of pymilter, a python wrapper for the sendmail milter API, and a number of addon modules supporting email protocols like SPF and DKIM, as well as greylisting.

Beginning in June 2013, I am supporting Adempiere open source ERP for Spanish House in Miami FL. I have decades of EDI experience with ANSI, EDIFACT and other minor formats, and that is a major area needing improvement in Adempiere. There are major assumption errors in how ISA and GS identifiers are created, for instance.

On a less pressing note, I believe the cursor based API I developed at BMS (inspired by Borland Paradox) is a better fit than the Persistent Object system currently used in most of the Adempiere code. The two can coexist.

Free Software Service and Contributions

  • 2007 SPF Council member.
  • 2006 SPF Council member.
  • Fedora/Centos RPMs for various packages.
  • Initial AIX dynamic library support for gcc.

Free Software

  • pymilter a python interface to the sendmail milter API . The pymilter project includes
    • pydspam - interface to libdspam, a Bayesian content filter
    • pysrs - implementation of SRS with sendmail and Exim integration.
    • pygossip - distributed email reputation system
    • pyspf - widely regarded as the reference implementation for RFC 4408
    • milter - a highly effective spam and authentication filter
  • SPF Test Suite a validation suite for RFC 4408.
  • Java TimeZone with historical and leapsecond support.
  • Java Diff the GNU diff-1.15 algorithm with a nice O-O wrapper for Java.
  • Java Posix a JNI wrapper for selected posix calls useful for interfacing Java with other programs in a posix environment.
  • Java Elliptic Curves a Java implementation of Elliptic Curve cryptography.
  • TUIAWT an implementation of Java 1.1 AWTPeer interface that renders AWT controls on a character cell terminal (like xterm).

Non-free projects

Many of these could be free (e.g. BTAS), but need work removing dependencies on other BMS software.
  • BtasSQL - Wrap JDBC with the BTAS Java API, greatly simplifying common business programming - especially when updating. Emulating BTAS semantics on SQL requires ordered indexes, at least 1 unique index, and updateable cursors.
  • EDXWeb - a Java servlet plus Ajax that gives EDX applications a web user interface.
  • bmsi-edi - a unified Java API for any record oriented EDI standard. Modules currently include ANSI X12 through version 5010, CATAIR (used by US Customs and Border Patrol), XDoc, and XDec. Handling of separators, character sets, and syntax is automatic. Applications deal only with fields and data types common to the BTAS API.
  • EDX/Java a Java interface to the EDX virtual machine.
  • Java SNA/RJE a Java interface to a (buggy) SNA/RJE protocol converter.
  • Java X-Open JNI interface.
  • SQL engine for BTAS.
  • SOCOMM packet protocol stack and message center for US Airforce
  • ArabTerm bilingual smart terminal allowed the use of English character screen word processors (Uniplex) that supported onscreen attributes to edit and print mixed Arabic and English text. Lines are configured as right to left or left to right via manual or auto selection so that editing (insert/delete/left/right) worked as expect without the program knowing anything about Arabic. The Arabic text used auto shape selection.
  • X-Open (C-Isam) compatibility layer for BTAS.
  • C/Unix rewrite of EDX linker.
  • EDX macro source preprocessor and wrapper for EDX compiler.
  • Port of C standard library (Seabird) and Btas to native EDX on Intel (Hummingbird EDX).
  • Enhanced EDX virtual machine for *nix including visual debugger.
  • Early 88k port of gcc (internal use only).
  • Dynamic overlay architecture for EDX
  • BTAS - an indexed file system, where files and directories have variable length associative records. Indexes maintain the minimum unique key with leading duplicate compression. This will be free when I get a chance to package it for the world.
  • Embedded 6502 based ASCII/Telex protocol converter. This simulated 1 300 bps and 3 50 bps UARTs in software using PIO and a 3x300bps timer interrupt. When a character was complete, it would simulate a "soft" interrupt such as a hardware UART might provide. The hardware was based on a miniature Kim-1. The protocol converter was connected to a Series/1 minicomputer, running a simple email system I wrote to unify multiple methods of text communication.