Software
This is a listing of some of the open source software projects I’ve made. Most of them are simple command line tools or libraries, a few are bigger projects. All of them are released under the MIT license.
Bruce’s PEGs
BP is a tool similar to grep or sed, but built around using a custom Parsing Expression Grammar syntax designed to be concise and ergonomic enough for quick everyday command-line usage, while also expressive enough to handle parsing arbitrarily complex grammar rules.
The Nomsu Programming Language
The Nomsu programming language is a dynamically typed languaged with natural language syntax and strong metaprogramming capabilities.
Check out the language’s full website at nomsu.org
bb - The Bitty Browser - Command line tool
bb is a minimalist command line file browser meant as an even smaller alternative to file browsers like nnn and Ranger. The whole program clocks in under 2,000 lines of C code, with no external libraries beyond the C standard library. It makes heavy use of shell scripting to attain a high level of flexibility and customizability without code bloat.
btui - Bruce’s Text User Interface - Multi-language Terminal Library
BTUI is a minimal, embeddable, single-header-file Text User Interface (TUI) library and alternative to bloatware like ncurses. BTUI aims to be less than 1% the size of ncurses, while also providing a better API for the programmer who is not afraid to roll up their sleeves and manage their own state. If you want a drop-in TUI library that lets you switch into TUI mode, write some strings to the screen with 24-bit color, and get user keypresses in real-time without line buffering, then this is the library for you! BTUI also has language bindings for both Lua and Python.
bin - Console Trash Bin Management
bin
is a POSIX shell
implementation of the Freedesktop.org trashcan specification. It lets you run
bin <file>
to move a file to the trash bin instead of just
rm <file>
, which permanently deletes it immediately. Later,
the file can be recovered with bin -u <file>
or permanently
erased with bin -e <file>
.
ASCII Table - Command line tool
ASCII-Table is an incredibly useful command line program that displays a browsable ASCII table, and can also show and edit raw ASCII values. I used to constantly open Google to get the exact ASCII values, but now no longer!
NowOpen - Command line tool
NowOpen is handy command line
script that checks the current time and day and prints out which businesses are
currently open, and for how much longer. The data is read in from a simple and
flexible file format, and using nowopen
is several orders of
magnitude faster than Yelp, and is a great way to decide where to eat
(nowopen food
) or figure out if someplace you frequent is still
open (nowopen library
).
Arg - Command line tool
Arg is an incredibly easy to use
alternative to getopt
and getopts
for command line
scripting. This tool does one thing, and does it well: it gets one argument from
a list of arguments and prints it.
Lua Debug TUI (LDT) - Lua library
LDT is a Lua tool for debugging Lua and Moonscript programs. Wrap your code in a function call to LDT and whenver a breakpoint or uncaught error occurs, LDT will open an interactive debugging window. This was invaluable when I was making Nomsu.
Lua ImmuTable - Lua library
Lua ImmuTable is a Lua C-API library for immutable tables. Using immutable datastructures is a great way to program, and it’s something that was missing until this library.
Hill Noise - Lua library
This is a Lua implementation of Hill Noise, made for use with the LOVE game engine, or generally with Lua.
Sampleprof - Lua library
Sampleprof is a Lua profiling library that uses sample profiling (randomly interrupting the program to gather data points) to get a good picture of runtime hot spots while being minimally invasive.
LuaDiffer - Lua library
LuaDiffer is a simple Lua diff library, for comparing strings.
Nuke - Command line gizmo
Nuke is a silly little command line program that lets you nuke files from orbit with ASCII animations. Because sometimes mere deletion is too good for a file.
2pend - Command line gizmo
2pend is a console double pendulum simulator written in C with no external libraries. It’s just plain enjoyable to watch.
TB Conway - Command line gizmo
TB Conway is a simple implementation of Conway’s Game of Life written in C with no external libraries. Runs in the terminal and looks pretty.
Vim PEG - Vim plugin
This is a syntax plugin for Vim that handles Parsing Expression Grammars.
Dotfiles
This is a collection of my general configuration files for vim, zsh, etc.