One thousand lightbulbs

Don't be beholden to your past self

In January this year I bought a beautiful thick Moleskine page-a-day planner. My goal was to keep a daily log-book, tracking what I did, ate, listened to, read – my impressions as I travelled through the year.

On Sunday, July 25, I recorded a blank day. That’s not to say that I faithfully recorded one entry per day every single day for the period leading up to that day - but at the very least I filled it all out from memory when I did have a spare moment. On Sunday July 25, however, I didn’t bother to go back and fill it out.


When you reach for the dice in a roleplaying game, it’s normally to answer a question. Normally, that’s a binary question (one that can be answered with “yes” or “no”).

One of the great things about Apocalypse World was the way it employed not just the yes/no axis in task resolution, but the and/but axis1. Each outcome (“yes” or “no”) can be accompanied by either an “and” (making player success more successful, and player failure more complex) or a “but” (moderating the degree of success or failure by introducing a cost or a consolation prize, respectively). In fact, Apocalypse World takes three of these moves: No, and, Yes, but, and Yes, and makes its take resolution system 100% about these (with the ability to get some Yes and in there at the end of your character’s arc).

Proc-gen crosswords from scratch

I like crosswords. After doing enough of them, however, I decided to try to make my own. And given I want to make my own, why not ridiculously over-engineer the whole process with a procedural generation mechanism in ruby?

This is currently a work in progress, but this blog post will at least show you through the start of the crossword building process as it exists right now, and may allow me to springboard off of it onto more complex posts in the future.

Revamping 1klb comments part four: submitting comments

Over the last few posts on this blog(1 2 3) I’ve been introducing my system for collating, storing, and displaying comments on my static site blog using Javascript + HTML for the front-end and FaunaDB for the backend. We’ve gone through the basic outline of the system, set up the database, and talked about how we can fetch and display comments. In this post, I’ll show how you can easily build a comment submission form in HTML, and create a solid, secure comment submission system with server-side functions.

A basic comment form

It’s pretty easy to build a basic comment submission form in html:

Revamping 1klb comments part three: displaying comments

In the previous two posts on this subject I showed off the big picture overview of how this whole system was going to work, and showed you how I set up my database in Fauna to deal with those comments. Assuming that all went according to plan, let’s explore how we actually go from bits in a database, to, yknow, comments on the website.

Two ways of talking to Fauna

I’ve mentioned previously that there’s two ways of talking to the Fauna database:

Revamping 1klb comments part two: the database

We’re building a commenting system for a static site blog! Or at least, I’m taking you on a guided tour of my blog commenting system.

In my last blog post I outlined how the commenting system of the blog works, at least at the big picture level. In this post, I’ll go through how we set up the database.

Revamping 1klb comments part one: an overview

A little while back I created a commenting system for this blog. The blog itself is served via a static site generator (specifically nanoc served on netlify), so a commenting system isn’t as simple as putting an html form in the page and hooking it up to a database on the server. Instead, I ended up using a hybrid of netlify’s forms, the web-based database system Fauna DB, and some javascript.

But the issue was that this system didn’t really work that well. Comments got lost in the churn, I got notified kind of poorly, and it was all a bit messy. So a month or so back I completely revamped the commenting system, cutting out the middle-man (in this case Netlify forms), adding some moderation features, improving notifications, and generally making it run smoother.

The end product takes a bit more effort to put into production, but I think it’s worth showing off. In this first post, I’ll do a big picture overview of the whole system.

New year, new tools

2021 is a new year! I’ve been slowly ramping up my logging and notebooking routine, and this year I’ve reached new heights of pretension for my analogue note-taking setup:

From bottom to top: