Here are various software(ish) projects I've completed that may be useful and/or amusing.
Bit Art Bot is a Mastodon bot inspired by this Metafilter post that creates procedural art by plotting a randomly-created integer function. It's written in Ruby and does not work by generating and then evaluating Ruby code. The generator's source code is here.
Benoit Mandelbot is a Mastodon bot that periodically renders and toots a random-but- interesting part of the Mandelbrot set. (I blogged about writing Mastodon bots here.)
moo.party: cow dialogs as a service. This is what happens when you discover that you can get a domain for your stupid Javascript idea for three bucks. (Of course, they've since jacked up the renewal price to twenty times that, so I let it expire and moved the code to neocities.org.) Source code is here.
Exobike, a silly little ASCII-art motorcycle game written in Coffeescript. Source code is here.
MandelPlot is a fractal explorer in a webpage. You can try it here.
Monolith, an MRuby tool/extension that allows you to create standalone executables in MRuby.
dbmlite3, a Ruby GEM
providing a simple key-value database API mostly compatible with the
DBM
and YAML::DBM
classes but using
SQLite3 to do the storage. Because sometimes
you want DBM
and SQLite3 is ubiquitous.
twitscrape, a quick-and-dirty Twitter scraper which I hacked together to recover some of various family members' Twitter presences after the company's current... uncertainties.
simple-future, a Ruby gem providing simple, process-based concurrency.
DrSlidy, easy presentation slides in Markdown. Hacked onto Toby Ho's hack of Dave Raggett's HTML Slidy.
Informash, a Markhov chain-based text generator. Mostly written for Haskell practice.
jj, yet another static-html
blogging system using git
, liquid
and markdown
. A successor to
Infernal Icecube.
nest, a tool for keeping track of your stuff using git. (Github project is here.)
Email::Intestine is a Perl module for simple email filtering.
ledflash is a small daemon which flashes the user LED of a Raspberry PI every three seconds so that you can see if it's (un)crashed. Also worked (works?) on a suitably hacked PogoPlug appliance.
CLIVE, the Lisp dialect written to script the game Abuse extracted into a standalone static library and simple REPL.
ReLarn, a fork of ULarn, the classic Roguelike game with emphasis modernizing the codebase and UI.
Waiters of the Lost Ark, a simple Twine game.
Zombie Bird, a remake of this LibGDX tutorial in JRuby instead of Java. Includes a nifty little Maven project to gather the dependencies.
SwineMeeper, a game of exploding pigs. Screenshot is here. I wrote this to get more Scala practice.
ReversIt, a program to play Reversi (aka Othello).
Smalltalk is a really cool object-oriented programming language with a high-quality open-source implementation (Squeak). I've mostly moved on to other things now, but here's some stuff I did with it. (Warning: some of it is awful.)
sqkenv is a set of scripts for managing multiple Squeak (and Pharos) installations.
Quest For Pants is an (extremely) unofficial sequel to Nethack. (I have no idea if it works anymore.)
Prefab tries to be a simple layer on top of Squeak's Morphic GUI system, kind of like Tcl/Tk simplifies native windowing.
XPM Read/Writer is a class to read and write XPM image data. This was originally part of Prefab. The link above points to the SqueakMap entry, but you can get a copy from this site by clicking here.
MiniWeb is a zipball containing scripts and sources which will turn a stock Squeak 3.4-5170 image into one more suitable for use as the basis for an application server. It strips out most of the unnecessary parts (including Morphic) and files in Comanche 5.1.1, Seaside, YAXO and SIXX. The resulting image is approximately 2.6 Mb in size and you can still do development on it.
VarString is a quick hack gives Squeak the ability to do Perl-style variable interpolation inside of quoted. The sequence "$varName" is replaced with the value of the variable "varName", just like in Perl, sh, Tcl and other scripting languages. Suitable for use in advocacy flamewars or possibly as a way of demonstrating why Squeak is way cool.
Squeak Wrapper is a bash script that does all of the file copying and symlinking required to start up a Squeak session under Linux (and presumably other Unix variants). These days, Squeak comes with its own launch script so this has been retired, but it's here if you need it.
EmacsKeys is a Squeak changeset that maps some basic Emacs key bindings to Squeak's editor. Handy for those of us with Emacs finger macros. It's not very good but it made the Squeak editor pane tolerable to me. (A while back, someone put this on SqueakMap, here. You may be better off just installing it that way. (Hmmm. And they seem to have taken my name off the author credits. Tsk, tsk.))
natool, a command-line synch tool for the Neuros 2 Digital Audio Computer. (Github)
Infernal Icecube, a simple blogging CMS for Unix-like environments, notable for reinventing its own incompatible Markdown-style markup language.
mkmp3iso, a small utility which takes a collection of mp3 files and renames them to fit on a DOS-style filesystem. This is handy if you are stuck with a CD-based MP3 player that can't handle longer filenames.