Hello World 2.0

Hello again world! Blog 2.0 is launched. This was a move from Jekyll to Hugo using a tweaked hello friend theme.

Specifically I:

  • Removed the byline (all posts are by me)
  • Fixed the trailing dash after date
  • Fixed short blog post content not being displayed on post lists
  • Other little tweaky things

More important, the old blog required some git commands to submit new blog posts. That was fine when I was at my laptop, but no good if I wanted to compose from my phone (at least, not easily). My plan is to set this up on a CI job that runs hourly - that’ll also enable me to future date posts and have them show up when appropriate. I’m not entirely sure where I want to drop the markdown files - maybe Dropbox is fine but I tend to not hand out api access to my dropbox.

Read more →

Failure

I’m going to give a theory on why people tend to be afraid of failure, back it up with some anecdotal evidence and then give a recommendation on how you should react to failure in general.

Why we fear failure

When you’re in school and you go to take a test or do homework, the general understanding is that you either pass or fail. It’s a binary choice that once made, is mostly irreversible.

Read more →

Release versioning

There are several different strategies for versioning releases. I’ll cover a few of them quickly.

Semver

{major}.{minor}.{patch}

(or to be a bit more clear)

{breaking}.{feature}.{fix}

Add in a new feature? Do a minor bump. Change an API? That’s a major. Pretty common, pretty easy, well supported.

The Git Hash

This is my preferred strategy and one I use for the iris chatbot. Since there are multiple people releasing multiple versions from different branches she doesn’t have a “golden release”. Instead each release is just the current git hash. This is a bit messier but automatic and avoids versioning confusion.

Read more →

Pax

Spent the weekend at Pax which was amazing but came back to some disappointing news.

Pax South

Pax South was amazing. It always strikes me how friendly Pax is, despite being a massive event. The crowd is really kind and it’s an awesome experience. Lots of great games (especially Indie) games coming up. Looking forward to Dreadnought especially. Lots of great merch as always, including Musterbrand and Sanshee.

Read more →

How to talk about tech: a primer

Everyone has read a blog post that starts with a grand claim such as “MyLatestDB is the fastest database ever!”, or more than likely, “LatestHatedTech is the worst thing ever made ever.” It’s probably pretty obvious the issue with this and instead of ripping apart this approach I’m going to recommend a better one. My goal here isn’t to be exhaustive, but provide a general guide of how to write blog posts about tech appropriately.

Read more →

Quick n’ Dirty: Keyboard Navigation

I was recently on a comic website and was struggling heavily with their poor UI layout that made navigating pages quite painful so I wrote a tiny tampermonkey script to add in WASD style navigation. This particular site has both between issue and in-issue Previous/Next, so there is a “next page” and a “next comic” button.

For compatibility this is written as an ES5 IIFE with ye-olde dom events instead of some sexier DOM 3 tricks. Links are grabbed by text content which is expensive but this particular site didn’t have consistent classes or ids. I use focusin and focusout to make sure we aren’t in a textfield when navigating so you can still use search and whatnot (and it’s way cheaper/easier than patching every input with custom events and pretty well supported in most browsers).

Read more →

Open Data

So one of my big focuses in a lot of my projects is less about open sourcing my code (though that’s important) and more about open sourcing my underlying data. To be honest most of the time while I like my code, it’s not really all that special - just about any competent developer could reproduce something close enough. What is special is my data which enables my project.

This idea of data being important is a double edged sword. On one hand it means that when I can open source data then other developers are improved by it. On the other hand, open sourcing anything is that much more of a battle. One of my recent battles has been trying to get the Dungeon’s and Dragon’s Fifth Edition Systems Reference Document (basically, the open source version of D&D) into a consumable data format (ie JSON) instead of a PDF.

Read more →

This blog & the tech that powers it

This blog isn’t all that interesting tech wise, but I wanted to take a moment to cover it for those with a passing interest. It’s a jekyll core with a very hacked on midnight theme, currently using jemoji for the :heart:s, :poop: and :laughing:.

Code is styled with the very fancy and very awesome Fira Code font so that things like this are a thing:

'use strict';
const myFunc = (...args) => {
  if(args.length >= 1 && args[0] === true) {
    ...
  }
}

(Those weird compound symbols are called ’ligatures’ and they’re a neat new-ish html5/css3 feature.)

Read more →