July update: 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. This website has gotten a complete redo - it’s still authored as AsciiDoc, but I wrote a new static site generator to publish it.
Keeb’s Quest - NEW I’m embarking on developing a typing game. Hoping to make regular updates here.
chklnks.rb - I wrote a recursive web crawler and link checker in Ruby just to make sure the website conversion was successful!
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 give it a go again. I have some specific projects I’d like to build with it.
I did start on the next entry of my Slackware pkgblog, but it’s huuuuuuge, so it might be a little bit before I finish it. :-(
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:
PkgBlog: bzip2 - compression utility
PkgBlog: btrfs-progs - playing with filesystem snapshots!
Enabling Eth1 - a network note to self
Why Slackware - why I chose it and stick with it
Mounty - CLI/TUI menu-based drive mounting
Mounting USB drives quickly (already superseded by the above)
Slackware PkgBlog - new entries starting with the 'bin' package
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. 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 (perl.org). I also use it for the notes I keep on my desktop computer.
Bride of Text (bitbucket.org)
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 old prototype (bitbucket.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 (abandoned) (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.
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.
And also some web-based programs to amuse:
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.
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.
I got on the Java train. I wrote a Java applet (wikipedia.org) 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.