Experiments
This page is for any small applications or libraries I create. Often I’ll lose interest rather quickly – either by discovering that whatever I was setting out to achieve is harder than I expected, by working out how to implement it, or by getting distracted by some other, equally useless-in-the-real-world, idea. While certainly not likely to be immediately useful, something here may provide a beneficial starting point for someone.
auto-admin
Automatic administration interface for Ruby on Rails model objects
This has really passed the point of being an experiment, and moved on to “project” status. However, as I’m not currently working with Rails, I’m not actively developing it.
rasp
Ruby ASP (VBScript) interpreter
A semi-functional VBScript interpreter, written in Ruby (using racc for parsing). Predictably, a couple of orders of magnitude slower than the WSH engine, in all but the most string-intensive test scripts (in which it can easily outperform WSH). Still lots of core VBScript functionality missing – though I don’t currently remember what.
bongo
ASP (JScript) compatible Ruby Web environment
Based on SpiderMonkey, using ruby-spidermonkey, with some changes / improvements. I really need to look through the changes I’ve made and identify anything I should submit upstream.
chartdir-rb
Ruby wrapper for ChartDirector C API
Mostly autogenerated from the C headers and the C++ documentation, with some extra methods to offer a drop-in replacement for the official ChartDirector COM object. The developers appear to have subsequently released an official Ruby interface, rendering the utility of this library questionable, at best.
libtpproto-rb
Ruby network library for Thousand Parsec
Comprises some extensions to Ruby’s Array#pack / String#unpack methods (“length + bytes” strings, “length + packed-items” arrays, and “semi-signed” integers – integers ranged between -1 and MAXINT - 1), and a library that parses the TP Protocol Definition XML and dynamically builds Struct-based packets that include the ability to convert between Packet objects and on-wire byte strings.