ratfactor rat vector logo
my avatar as often seen around the web


I'm Dave Gauer. Welcome to my website.


I'm on the geekring
(a webring for geeks)!
Previous site
Random site
Next site


  • December: I just finished my book-guided OpenBSD Blog and tour.

  • December: Made a little page for the Eee PC 701 because it needs one.

  • November: I just self-published Mr. Tree Goes Down as a real physical children’s book!



This has been a heck of a year on a global scale. On a personal scale, productivity on projects has come in fits and spurts.

  • PkgBlog (Slackware Package Blog):

    • cpufrequtils - get your freq on!

    • cpio - file archiver with some handy abilities

    • GNU Coreutils - Finally done! A colossal review of the entire coreutils package

  • Keeb’s Quest - NEW - I’m embarking on developing a typing game. Hoping to make regular updates here.

  • Notes on Silent Hunter III - I’ve given this simulation game a third real attempt - here’s how I’ve learned to cope with it.

  • Syncthing - I’ve been using Syncthing for about a year (?) now and it’s been a good experience. I’m starting to collect my notes.

  • chklnks.rb - I wrote a recursive web crawler and link checker in Ruby just to make sure the website conversion was successful!

This website has gotten a complete redo - it’s still authored as AsciiDoc, but I wrote a new static site generator to publish it.

  • My Personal Wiki Setup - Livin' the dream: one local wiki, running inside a text editor, as the single browsable start point for all of my notes and content.

  • VViki - The Vim plugin I wrote to edit the above wiki.

  • My note-taking system is in a messy transition phase right now. But I think it’s all heading in the right direction. Watch this space for a write-up that is nine (and counting) years in the making.

  • New static site generator - a little Ruby wiki-to-website publishing tool has now replaced Hugo. (I touch upon this in the above Personal Wiki article, but it probably deserves its own page at some point.)

  • Rediscovery of Ruby - returning to a previous stop on the Eternal Quest for the One True utility language.

  • Another shot at learning Rust - The more I try to avoid it, the more convinced I am that Rust is Doing Things Correctly. I’m giving it a go again. I have some specific projects I’d like to build with it. (Update: this is not the hobby language I need right now.)


I moved across the country and started a new job at the end of 2018, putting an end to what was otherwise a great year for this website. Now I’m back at it, mostly with Slackware Linux content:


My ambitious new project, Dave’s Slackware Package Blog, has begun! I’m getting my hands dirty with every Slackware package and writing up my experiences. I also explain how and why I’m doing this:

  • PkgBlog - my Slackware Package Blog

After the switch to Hugo, I started writing a ton of new content. It’s been technically up here on ratfactor.com the whole time, but I was waiting to iron some things out before I linked to them. So two months later, I’m finally exposing the links to the new content:

This has been a big year for the website! After years of relying on various PHP template systems (of my own devising) and a static site generator I wrote in Nim and then Perl, I’ve finally converted (almost) everything to the AsciiDoc format and am generating the site with Hugo. There is a ton of new content, but a lot of it is in draft form, so I haven’t linked to it yet. It’s so close, I can almost smell it.

Have finally upgraded my main work (as in "day job") project to Mithril 1.1.6 (mithril.js.org). There have been some excellent changes from the old 0.2.x API. I did have one issue:

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:

  • Monopoly.rb bitbucket.org stopped hosting Mercurial repos.

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

My employer agreed to release our Learning Management System project under an open-source license. I think it’s a pretty great piece of software: single-page application based on mithril.js with "tags" as the core organizational method including boolean operations on tags. The API is "true" REST with browsable JSON hypermedia (see the 2015 heading below for more about that).


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 (perl.org). I also use it for the notes I keep on my desktop computer.

  • Bride of text bitbucket.org stopped hosting Mercurial repos.


After threatening to do so for years, I finally ditched Windows for Slackware Linux (slackware.com) 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 (nim-lang.org). Finally, I wrote a new Bride of Text in Perl in 2017 (see above).

  • Notegoat bitbucket.org stopped hosting Mercurial repos.


I got into REST (wikipedia.org) 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 (wikipedia.org).

I also tried out a bunch of personal wikis including PmWiki (pmwiki.org), 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!

  • Krumpli bitbucket.org stopped hosting Mercurial repos.

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 stopped hosting Mercurial repos.


I wrote some fairly popular articles on circular slide rule watches, Mercurial source control, 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.

Created the Fancy Friends web comic. I didn’t yet have the stamina to keep up the weekly schedule and so I never gave it a chance to really go anywhere:


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. (Update: 2020 - That is no longer true! I’ve gone full static HTML generation.)

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:


After I used digital images to document repairing a Yashica TLR camera shutter (so I could put it back together!), I decided to turn them into a "how-to" guide. To my surprise, it quickly became the most popular thing I’d ever posted on the website.


I learned C++ (initially from Stroustrup’s tome (openlibrary.org) 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.

At this point, 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 (openlibrary.org), LaMothe’s Black Art (openlibrary.org) and Lafore’s Assembly Language Primer (openlibrary.org). 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.


Noodling about this this website endlessly. Slogan: "It’s what the world would be like if giant rats took over." Here’s what it looked like at one point in the year 2000:

screenshot of website circa 2000 features lots of red on black

(Click on the thumbnail or HERE for full-size screenshot and details!)


I got on the Java train. I wrote a Java applet (wikipedia.org) which became 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 drug charges! I’ve been forever thankful I never had to maintain that code, but it was great to have built something complete.


Prior to 1997, 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.

I registered the ratfactor.com domain in December 1997. (Keep in mind that this was a time when I still could have chosen just about anything, even common English words!) A domain name had to be registered through the monopoly Network Solutions at a cost of $100 for two years. This was a lot of money to me at the time. My web host was actionweb.com (they still exist!) and I believe I paid $25 per month for shared web hosting with something like 100Mb of storage and some amount of monthly bandwidth that would seem ludicrously tiny today. All updates were done by FTP file transfer.

(Screenshot goes here, if I can find one)

Thanks for reading.