Funnelweb Comments to Disqus WXR

I've been meaning to migrate my blog comments out of Funnelweb and into Disqus for a while. I never quite got comments to work to my satisfaction in Funnelweb (user error I'm sure - Funnelweb is mostly great) and I appreciated the idea of subbing that out to a dedicated service. Plus I'll get the added benefit of having centrally located discussions that I can move to any blog system I decide to d…

Read more


RADIX16 Laptop Touchpad Matrix MIDI controller

The RADIX16 is a custom MIDI controller I built in early 2014. The controller is fashioned from 16 surplus laptop touchpads arranged in a 4x4 matrix. Each touchpad transmits: Note on / note off when tapped 0-127 MIDI CC for touch pressure 0-127 MIDI CC for X axis position 0-127 MIDI CC for Y axis position For a total of 16 notes and 48 control change values available at the fingertips. The number…

Read more

Cassette Scrubber

I decided to put to good use the a few of the hundreds of audio cassettes I've seen gathering dust in boxes around local thrift stores. This is the result: Construction was simple. I picked up a lower than low-end cassette player from Amazon and tore out the tape head. The head is just a simple transducer and doesn't require any other circuitry. It has literally just two output wires (4 wires for …

Read more

Reader Header

Contingency Reader

Contingency Reader is my host-it-yourself Google Reader replacement. It was written over the course of about 10 days in C# / .NET 4.5 with SQL Server on the backend. Features include: Article retention Starring / favorites Atom 1.0 and RSS 2.0 feed support Read history Inifinite scroll (dynamic content load) Download it from Github. Feature suggestions are always welcome.…

Read more

Quick and Dirty NZB indexing in Python

NZBMatrix is dead but I wasn't going to let that keep me from USENET. While waiting for the dust to settle and a new indexing service to bubble up I wrote my own quick and dirty indexer in Python with MongoDB on the backend. Get it here. The indexer takes a list of newsgroups to crawl as an input parameter, and searches for NZB files within those groups. Any article it finds that has '.nzb' in the…

Read more