Nuance, Binaries and Models

Cover Photo by Devin Edwards on Unsplash We're surrounded by binary choices in our world: the light switch is on or off, we can have a glass of wine or not. We oftentimes want to apply this idea to other situations: our friends like us or not, our work is good or bad. The truth is very few things are actually binary, and almost everything in the world exists as a composition of states - in other words, reality is complicated.
Read more →

A Primer on Functional Debate

Debate not fighting All debates are arguments, not all arguments are debates. We aren't here to address mindless shouting or simply attacking the other person. In a debate each side has a specific claim they're trying to defend and advance, and is putting forward evidence for their side or rebutting evidence on the other side. Why debate? When two people disagree, why should they bother talking through the merits of each argument and trying to solve it?
Read more →

Understanding the power of Linux, as a Windows user

Coming from the perspective of a Windows user, Linux may seem entirely alien under the surface. Windows favors a batteries-included, gui driven workflow where programs tend to be all inclusive. Linux favors a command line driven workflow, where only the basics are available, and programs are small and meant to be chained together. The Kernel This disparate approach is due to many differences, but there are two main ones at play.
Read more →

TP-Link Smart Plug IoT Button v0

So my office lamp is in an awkward location behind a sofa. Instead of re-arranging my office furniture like a sensible person, I decided instead to just install one of those cute $20 tp-link plug that let you toggle stuff via a smart app. Of course, it turns out that the smart app takes an eon to load and I only have my phone on me about half the time.
Read more →

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).
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”.
Read more →

Pax

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.
Read more →