👋 Welcome

Hi, I'm James. I'm a coder who is interested in creating software that is:

I have a large, long-term project:

âš™ Felt

Felt is work-in-progress, early-stage software written in Odin. Currently, it does has CLI interface and can read Gemtext markup from file, parse it, and render it to a GUI using Clay UI and Raylib.

Long-term, the goal is to be able to render Djot documents with richer content and to have a daemon/IPC server that allows Felt to interact with or be controlled by other programs.

That said, Felt is designed to be as-simple-as-is-reasonable software that focuses on doing one thing well (rendering markup) and otherwise acts as a good member of the larger CLI ecosystem.

I also have several smaller projects, mostly being developed as part of the Felt project above:

âš™ Odini

A Gemtext markup parsing library written in Odin. While Odini works, it still needs to be optimized and tested further.

âš™ Odjot

Djot markup parsing library written in Odin. Not currently working and still very early-stage. Continued work on Felt and Odini will be prioritized first.

âš™ Osnap

A snapshot testing library Odin. Working and mostly complete.

Osnap is designed to be simple: it compares two files and byte-by-byte and fails the test if any differences are found. It also provides robust handling and reporting of any errors that may happen before the two files are compared.

Some of my favorite books are:

📘 The Elements of Style
by William Strunk Jr. and E.B. White

This is The Elements of Style, the classic style manual. This "little book" conveys the principles of English style with a unique tone, wit and charm.

📗 The Elements of Friendly Software Design
by Paul Heckel

A classic of software design that definitively lays out software design as a communications craft.

📙 The Pragmatic Programmer
 by David Thomas and Andrew Hunt

There are certain tips and tricks that apply at all levels of software development. However, these approaches are rarely documented. This book brings these ideas and processes together in one place.