Zar: a zlib-based compressing archiver

The Czars of Russia ruled a large empire, which encompassed many different cultures.
The ZAR archive is a (not too, I hope) large format, which encompasses many different (software) cultures.

Zar is still in development. Many things, especially cross-platform extraction, are problematic.

All source code versions are the same, except for filename capitalization and end-of-line convention.


TheTimeIs: a vague Palm OS clock

TheTimeIs tells the current time, using vague phrases such as "nearly quarter till noon" and "five-thirty". (Also includes "normal" modes of display for Local and UTC times to the nearest second.) This is a quite trivial example of Palm OS programming.

The source code versions are the same, except for end-of-line convention.


PICkit™ 1 Pedagogical Programs

More than 30 simple example programs I wrote while learning to program the Microchip 12F629/12F675/16F630/16F676 family of 8/14-pin FLASH programmable PIC microcontrollers. Some of these examples use WinSPICE 3 and/or WinCUPL 4 or 5 for sundry circuit modeling and programmable logic coding.

These are learning examples, and not necessarily the best way to do anything.


Junction-Aware Utilities for NTFS

These command-line utilities Make, Remove and Display NTFS Junctions. (These utilities have grown to be aware of more than just junctions.) Note: Junctions may target only directories; Hard-Links may target only files.


Simple Recursive Fast Fourier Transform

The point of these codes is to compute the Discrete Fourier Transform (DFT) of an input data vector. They all use a Fast Fourier Transform algorithm, which is Recursive and that has been implemented in a very simple and easy-to-understand manner. These are example and benchmark codes only, not to be used for real work. They are slow, memory hogs, and careless about loss of precision.

All versions are the same, except for packaging and end-of-line convention.


Jeff's Java Clock

May display any of four time scales (GMT, LMT, GMST, LMST). To make the sidereal scales more fun, I've included a simple stellar-planisphere view.

You can see the Java Clock in action at Jeff's Java Clock page.

I use the Java Clock as an ongoing learning tool. It may change rapidly, and not necessarily for the better!


Investment Return Calculator

This computes the Compound Annual Growth Rate (CAGR) given a series of cash flows into and out of an investment. This determines the overall Rate for all flows using a simple iterative method. I've never had convergence problems—if you do, perhaps the simple method needs to be made more sophisticated.

All source code versions are the same, except for packaging and end-of-line convention.


Jeff's Windows Utilities

Applications

Look

Look is a Notepad-like editor for Windows. Nothing special. Still works on Windows 95. Will wonders never cease!

Command-Line Utilities

split

split is the UN*X-like split utility, modified for Windows NT.

which

which is the UN*X-like which utility, modified for Windows NT.

It uses the PATHEXT environment variable to determine the file extensions for which to search. It also includes an exact-match mode, so you can search for those pesky multiply-defined DLLs.

These are written for Windows 2000 and later.


Sloth and Dynamo/CFC

The Sloth Language is a lazily-evaluated Scheme-like language, which includes the Sloth Object System -- a simple yet powerful object-oriented extension. Dynamo/CFC provides cross-network and inter-application communications facilities. Only the multi-platform Zar version is currently available.

This software was developed for ARPA (contract number DAAH01-94-C-R009).


Feather: a lightweight finger implementation for the Mac

Feather contains both client and server components. It now includes some support for many trivial UN*X protocols:

Also, Feather's client provides a couple of useful services and tests:

Feather uses Internet Config if it is installed. All versions of Internet Config can be FTP'd from its home site in Australia.

Feather is still in development. Some things are flaky, incomplete or missing entirely.


Logical Names facility for the Mac

Unfortunately, the Macintosh doesn't have a system-level mechanism for dealing with the notion of logical paths. Aliases don't work when files get moved, and using paths with device names doesn't work because everybody uses different device names (besides, device names aren't guaranteed to be unique).

As a kluge for MPW Shell, AppleScript and Macintosh Common Lisp, we create a folder in the system folder called "Logical Names" and place aliases to other files and folders in this folder. The name of each alias is then defined, in some application specific way, as a symbol bound to the file found by resolving the alias. This allows us to put aliases like "ProjFolder" or "MoreFilesFolder" in the logical names folder and have a chance of being able to use build scripts, Makefiles, etc. on other folks' machines without having to do a major re-write of the files in question.

This simple idea could be extended to any Macintosh development environment.


Sprocket: an application framework for the Mac

Sprocket is an application framework for the Mac. The next version of Sprocket is being developed even as you read this!! Sprocket is continuously evolving. Sprocket 2 is still on the bleeding edge -- use at your own risk.


Jeff's MS-DOS Utilities

The miscellany of more than a decade of quick hacks, JjmUtils is a collection of thirty-six utilities, device drivers and TSRs for MS-DOS.

List of JjmUtils Utilities
ASCII.COMDisplay ASCII characters, and their hex-values.
CLEAR.SYSDevice-Driver to Clear Screen on SysReq key.
CMOS.EXEInterface to CMOS memory/clock area.
CODER.COMInstall TSR for decoder pop-up window.
COLORS.COMDisplay CGA colors, and their hex-attributes.
DA.EXEList attributes of all directory entries.
DMPBMP.EXEDump the header and/or contents of a .BMP file.
EE.EXEEnvironment Editor.
EOL.EXEChange the End-Of-Line format of files.
GETVOL.EXEGet volume label (into environment).
HXLT.EXETranslate 'C' header to ASM include.
INT9.COMDisplay INT 09h action.
IOMON.COMInstall TSR to monitor I/O activity.
KEYCODES.EXEDisplay typed keycodes.
LDM.EXELoad memory from DEBUG-dump file.
LOG.EXEDisplay and update user-log parameters
LOGCLK.SYSDevice-Driver to update user-log parameters.
LVEC.COMDisplay DOS interrupt vectors.
MAKEHDRS.EXECreate C header-file alias files.
MMAP.COMDisplay DOS memory blocks.
MON2ND.SYSDevice-Driver for output to a second monitor.
MOUSEON.SYSDevice-Driver to turn-on mouse on the SysReq key.
RATE.EXESet/Display slow-down rate (see SLOW).
RETAB.EXEAlter the tab spacing of a file.
SCREEN.SYSDevice-Driver for character output to a text-screen.
SETCLOCK.EXESet TIME/DATE from Real-Time-Clock.
SLOW.EXEInstall TSR to slow down computer (see RATE).
STOP.COMStop the system.
SM.EXESearch/Dump Memory.
TIM.EXEChange date/time of files.
UNLOCKS.COMUnlock the Caps- Num- and Scroll- Lock keys.
VID.COMSet the video mode.
WC.EXECount number of words etc. in stdin.
WHICH.EXESearch PATH for specified files.
WS.EXEWalk-Subtree of directories, running a command.
XMODE.SYSDevice-Driver to translate video-mode settings.

I still use several on Windows 95; some should be allowed to Rest In Peace.