I like using open source software tools to automate the tedious parts of daily work.
Increasingly, however, I find that modern tools come with complicated build processes
or large dependency trees. I’ve spent a surprising amount of time just trying to set
up a machine to run them.
This site documents my attempt to work differently: to learn how to build and use
plain tools.
A plain tool is deliberately modest. It is typically:
self-contained (often a single file),
runnable with minimal setup,
built on widely available foundations,
free from complex or unnecessary frameworks and dependencies for the task at hand.
The emphasis is on building tools that can be easily run and understood, and handed
over without elaborate infrastructure or specialist knowledge.
Inspirations
The ideas on this site are influenced by work that emphasizes simplicity,
restraint, and building software that remains understandable and useful
over time.
D. Richard Hipp —
through SQLite, which demonstrates how
careful design, minimal dependencies, and a strong commitment to simplicity can
produce software that is open source, widely deployed, and long-lived.
Cay Horstmann —
in particular his talks on
Small Java
and
Java for Small Coding Tasks,
which argue for using a general-purpose language and its standard tools directly,
without heavy frameworks, to build small programs.