Software by Bruce Hill
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.
The Nomsu programming language is a dynamically typed languaged with natural language syntax and strong metaprogramming capabilities.
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 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 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 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 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 (
Arg is an incredibly easy to use alternative to
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.
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 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.
This is a Lua implementation of Hill Noise, made for use with the LOVE game engine, or generally with Lua.
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 is a simple Lua diff library, for comparing strings.
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 is a console double pendulum simulator written in C with no external libraries. It's just plain enjoyable to watch.
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.
This is a syntax plugin for Vim that handles Parsing Expression Grammars.
This is a collection of my general configuration files for vim, zsh, etc.