ratfactor rat vector logo

Welcome to Ratfactor

My name is David Gauer and this is my website. You can contact me here.


Have finally upgraded my main work (as in "day job") project to Mithril 1.1.6. There have been some excellent changes from the old 0.2.x API. However, I have had a couple issues so far:

Continuing to use Ruby as my main "scripting" language. Why did I wait this long to learn it? Probably because I was so tired of the search for the "perfect" language. I now wish I’d put Ruby higher in the queue. To aid my learning, I wrote an imperfect simulation of the boardgame Monopoly Junior:

Have been trying to clear out a huge backlog of software development reading. Created a chronological index of Steve Yegge’s blog posts:


This year is Ratfactor.com’s 20th anniversary!

Learned Ruby and re-learned Nim at the tail end of the year. The plan: Ruby for "scripting" tasks and Nim for applications and larger projects.

I finally dove into "Apache and the Mystery of the Fully Qualified Domain Name". The following article started as an answer on Stack Overflow, but morphed into something else as I learned more:

I’ve been using Slackware Linux as my desktop OS exclusively for over half a year and loving it. One of my favorite recent discoveries has been the dynamic Window manager dwm. It’s actually quite intuitive to use, but learning it from the man page was a bit of a hurdle. So I’ve made this visual guide for it:

After two years, my Mithril tutorial has been rewritten and I’ve added a part 2!

The Mithril articles required the use of a new utility for displaying the source of the examples from <script> tags, so Galadriel’s Mirror was born.

This website finally got an update. I’m now generating all new content (and this page) with my txt-to-html converter called Bride of Text. It’s written in Perl 5. I also use it for the notes I keep on my desktop computer.


After threatening to do so for years, I finally ditched Windows for Slackware Linux as my main desktop OS. I have learned a lot and have been living in command-line bliss ever since. Lengthy article or small book tentatively titled "Dave’s Guide to Slackware" pending (I’m in the note-gathering phase).

I wrote a prototype static website generator called NoteGoat in PHP. I then wrote its successor, Bride of Text in the Nim language. Finally, I wrote a new Bride of Text in Perl in 2017 (see above).


I got into REST in a big way and ended up creating a pair of projects for the server and client side of a browseable API using JSON as a hypermedium for HATEOAS.

I also tried out a bunch of personal wikis including PmWiki, which I used for at least six months. Eventually, I wrote my own, called Krumpli before finally coming back to my senses and rediscovering my true love - plaintext!

Surveyed quite a few different JavaScript frameworks. Settled on Mithril. Wrote an article with tons of working examples called Dave’s Guide to Mithril (updated in 2017 - see above).


I wrote my third or fourth adventure game builder in JavaScript called Hoot (it’s probably my tenth total text-based adventure game building tool). I’m working on something better, but since that’s not done, check out Hoot!

  • Hoot (bitbucket.org)


I wrote some fairly popular articles on circular slide rule watches, repairing Yashica TLR camera shutters, Mercurial, and the sumproduct function in MS Excel.

I continued to learn new programming languages (Scheme comes to mind in particular), but did not create any abitious projects with them.


The site got a much-needed re-write to a PHP templating system called "Darts" (from its predecessor "Dots" - both names stood for "Dave’s something something Template System"). Darts was unique in that the template itself was an executable script that would transpile using the system (first checking for a more recent cached copy) into the final page. As I write this in 2017, some of the pages on this site are still running Darts.

It is around this time that most of my PHP and JavaScript-based web tools came to be:

And also some web-based programs to amuse:


I learned C++ (initially from Stroustrup’s tome and branching out from there). But I didn’t do much of anything with it. Looking back, it is hard to say if this was a colossal waste of effort or if I learned valuable things from it.

Ratfactor.com and all of its contents had been completely rewritten at least once every 1.5 years since its inception. Web technology had been moving very quickly in that first decade.


I released BETRIC which was an in-browser virtual computer written in PHP (!) that had a working assembler, disassembler, and primitive machine code instruction set. Very educational.

I also created and posted designs for a trebuchet, which was somewhat popular for a while. I know at least one group of Boyscouts made a scaled up trebuchet based on my design, which was really cool.


Though I didn’t realize it at the time, I had finally achieved one of my childhood goals by writing a primitive 2D game engine in assembly and C. My resources were The White Book, LaMothe’s Black Art and Lafore’s Assembly Language Primer. It was incomplete and I never actually made any games, so it was hard to see it as the victory it was.


Around this time, I switched my web development from Perl to PHP. I released the first version of a PHP HTML-based text adventure game engine. The game files had a C-like syntax and had variables, conditionals, etc. I ended up re-writing the engine several times.


I made some interesting toys in Java - one that converted BMP images to POV-Ray raytracer files (so you could render a 2D bitmap as a field of colored objects representing the pixels of the image) and one that converted JPEG images to HTML tables (with each cell of the table showing a colored pixel from the image) which would typically blow up Netscape Navigator.


I got on the Java train. I wrote a Java applet (remember those!?) which became the the main navigation for this website for about a year before I tired of it.

I started working as a "full-stack" developer before we had that term. From Flash to HTML to ASP to SQL Server databases to managing an NT network configuring Cisco routers and swapping power supplies. That kind of full stack. As a developer, I got all of my clumsy, beginner foolin' around out of my system while the Web itself was going through the same stages of growth.


I wrote my first piece of commercial software - a CGI web application in Perl with a homebrew database format! The company I sold it to went out of business and rumor had it the owner was busted on cocaine charges! I’ve been forever thankful I never had to maintain that code, but it was great to have built something complete.


I registered the ratfactor.com domain in February. Prior to that, I had been building web pages and hosting them on the space provided by my ISPs (these were the wild-west dial-up days). The prime feature of was Dave and Jim’s B-Movie Reviews. The movie reviews lasted for a number of years and several hundred reviews.

(Screenshot goes here, if I can find one)

Thanks for reading.