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 →

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