Here you can play all the music I've written or been involved with in one lovely place. Also check out my Music Gear and Setup!
During the COVID-19 pandemic I worked with an awesome group to build a harm-reduction dataset. The website teaches people what to do and not to do based on current community-risk levels.
A hexagon-grid sound and sequence memory game.
Pair a keyboard with the Norns and Grid. Then you record commands like a set of timed and sequenced macros visible and triggered on the grid. Like a guitar-looper mashed up with a REPL mashed up with a sequencer!
For a raw directory view of my projects, see the TLT:projects/ projects directory. The raw view is sorted roughly by language... but it is difficult from the direct listings to figure out which projects are worth looking at. Thus I present here a list of programming-related projects, and the tools and languages I might use to create them.
The graph module uses GraphViz to draw graphs. Here are some examples I've put together, but much fancier thinges are possible. See for GraphViz documentation, and see for some examples.
As both a learning exercise and a fun use of Bracketology, I built a web app to help you pick out a great white elephant gift! I did it initially with Clojure, ClojureScript, Reagent, Figwheel. I've now re-built it with Ruby, Opal, React.rb, and helped build the new opal-hot-reloader!
I often see people porting libraries from language to language, and new languages often have a rush to re-implement a bunch of things. Some of this makes sense, some of it is madness.
Github project:
After giving a talk on debugging techniques, I started wondering why I (and many others) don't use the debugger in perl much... but generally do use the debugger provided by other systems (firebug). The general idea I came up with isn't that using a step-based debugger is flawed philosophically, as I had initial suspected. Instead I think it is just because it isn't at our fingertips.
This is a perl interface to the HtmlUnit library.
For my cs512 class (Advanced Data Mining), I'm re-implementing CloSpan and CISpan, and am going to add to them FloSpan (or whatever I call it). In order to do this, I've built up some common libraries and I'm calling the overall framework 'Caravan'. I've actually started from scratch twice already!
I strongly believe that new versions of perl should enable all the features by default. Every time I write "use 5.010" at the top of my programs I am bothered... so now I can do:
I think maybe this is outdated. You should go over to the continuity website now.
I got my Openmoko on 2008-09-04!
From Mike Bennett's WayV page, WayV is...
As a demo for Continuity, and also for the fun of it, this is an engine for web-based board games. I'm starting off with multi-player Go and Ataxx.
This is a Fuse filesystem to ease going mobile. At home I have a central server for music files, for example. But the archive is too big to take with me. I don't usually listen to all of the songs, however, really I only listen to certain ones.
I've always wanted some sort of slick web-based wysiwyg-ish graphviz editor. My first step toward that is to convert a graphviz specification file (.dot file) into HTML and javascript. The javascript is mostly for drawing lines.
I like to do documentation both directly in a program (like with POD) and in an associated wiki (like here). I do not, however, want to duplicate effort.
I saw this really cool presentation at CodeCon one time... and stole their idea. I'll have to find a link.
This is an extremely simple Oddmuse module for tagging. It works by looking for a line like:
This is a simple oddmuse module to list all the pages linked to the current page (kinda like when you click on the title). It is specifically designed to be placed in the SideBar.
I finally got my own Rubik's Cube! The things were initially marketed the year I was born, and though I adore puzzles of the sort I never did get one. I hinted and hinted but friends and family never got me one. They must've assumed that I already had one or something.
I'v been working for some time now on extracting some 2000 and 1990 census data. After a few failed starts, here I'll document what I've actually come up with. A bit.
This extension adds an "Edit" link to sections, so that you can edit them one-by-one. This is to clone the feature in
I wrote this specifically so that I could use it as a genotype in OGPF. I'm not sure that I ever actually did that... but I'm not dead yet!
At some point a long time ago I thought it would be cool to have macros in HTML. I originally wrote it in Perl, but then switched over to OCaml. I used it both in an interpreted (#!/usr/bin/mhtml) context and a pre-compiled context. The idea was to add a few tags, such as , which would allow me to add some magic tags to HTML in a natural way.
I have a mix of ogg and mp3 files, and got tired of switching between mpg123 and ogg123, or worse not being able to play a mix of ogg's and mp3's at the same time. So I went ahead and wrote my very own wrapper.
This is exactly what it sounds like. I looked around for a solution, but got tired of that quite quickly so just wrote my own. I use a plain textbox and a hidden listbox (SELECT box). When the textbox gets focus the list is displayed right under it, just like a real combo box.
Zend (PHP) isn't really documented all that much, besides the source itself. It looks like once you understand the beast the documentation wouldn't be all that necessary -- silly I know, but thats the way it looks.
This is an idea I (and lots of other people) have been toying with for a long time. Well its about time that I actually DO something about it.
I wrote GrabBag as a datastructure to hold genetically evolving programs (see OGPF). Unlike most collections, this one assumes that when you add an element you don't care where it goes (unordered insertion) and that when you pull out an element you specifically want a uniformly random element.
See for source (and darcs repo).
In Goe Object Environment I'm trying to create a smalltalk-like environment in Perl. This is possible through use of GTK bindings for a environment browser and Perl's own reflexive nature. This project has a lot of potential but I only touch it every other year or so.
In Goe Object Environment I'm trying to create a smalltalk-like environment in Perl. This is possible through use of GTK bindings for a environment browser and Perl's own reflexive nature. This project has a lot of potential but I only touch it every other year or so.
GOE - Goe Object Environment, see Project - GOE