UpTop

UpTop is a process monitor for macOS designed to show the processes that are
using the most memory, CPU, and disk I/O in a compact form that you can leave
running (similar to something like GKrellm for Linux).
Project page:
UpTop
Text-template
Text-template is a static site generator that enables metatdata to be stored
with the content, effectively using the filesystem as a NoSQL store of
hierarchical data. This site is generated entirely with Text-template.
Project page:
Text-template
DiskCleaner

I am constantly running out of disk space, and it would be nice to be
able to sort my directory tree by size. I could then select
the largest files or directories that I do not need and delete them. This Java program does exactly that, with the additional features
of a delete queue, the ability to remove from the delete queue, and
the ability to view a file.
Project page:
DiskCleaner
CodeFalcon: a Web-based Java Source Code Browser

Have you ever been tossed into a large development project and needed
to look at a bunch of code to see how it is structured? Have
you ever needed to track down an execution path that wound through a
fairly large number of functions? Have you ever wanted to
trace the execution path backwards? This source code browser
for Java projects grew out of the code graph generator to solve these
needs. Run the browser generator over your source code, then
surf over to the output directory with your web browser. You
will get a browser window split between the class outline (including
inherited functions), class hierarchy, source code. Mousing
over a variable gives its type. Clicking on a function brings
you to the source for that function, as well as displaying a
caller-tree for the function. Written with a hand-crafted recursive-descent
parser, it has been proven helpful in maintaining a large commercial Java
program consisting of hundreds of Java classes.
Project page:
CodeFalcon
You can use the source browser to look at the
DiskCleaner 0.5
code (Tested on Firefox, may not work on Internet Explorer).
Java Source Code Graph Generator

One of the projects that I was assigned to work on was a mess of
object-oriented spaghetti code. A regular pattern in the
source base is that object A owns one or more B’s, which are mostly
self-contained, except for the fact that B keeps a reference
to A in order to ask for some of A’s information. A
few objects with call-cycles like that and the code can get pretty hard
to follow. I wrote a quick just enough of a Java parser to
trace the call tree and dump out a call graph. This turned
out to be too large, so I had to display just the portions of the graph
that had cyclic calls.
The information was illuminating. First, it was easy to
detect what classes were important, because they were the ones with all
the calls going into (or out of) them. Second, I discovered
that there were about 40 classes (out of several hundred) connected to each
other in various calling cycles, meaning that if you wanted to understand
one of those classes, you pretty much had to understand a number of other
classes, too. A great tool for understanding information flow.
More information
and sample output.
Ephemeris

Back in the OpenGL 1.1 days I wrote a rendering engine that featured
procedurally generated fractal trees and fractal mountains for natural
settings. Man-made objects could use revolved and
extruded NURBS surfaces for machined items, and a general 3-dimensional
NURBS surface for assymetric objects. The sky was also
procedurally generated in order to model Mie scattering (where the
horizon is more white than the zenith) and aerosol absorption (what
makes the sunset red). Take a look at the
documentation and
some
sample
images.
HexEdit
I spent a part of the summer after I graduated college learning the
Win32 API by writing a hex editor. The source code has suffered bit
rot and only the
Win32 binary
is still with us, but the page is #1 on Google
(search for “hexedit”) and is actively downloaded. It seems
to be a hit in the Windows gaming community, and I get a fair
number of emails regarding it.