Maybe I’m crazy, but hear me out — using popular open-source libraries for things that are not the core functionality of your app, and you could replace if you had to probably isn’t the dumbest thing.

If writing a YAML parser or whatever excites you, though, be my guest.

A couple of things have really helped me with productivity and focus lately.

  1. Locking my phone away so I can’t get to it outside scheduled breaks.
  2. Time blocking my day (I’m using the Time Block Planner).

I’d suggest either to anyone, but as someone with ADHD, it’s been huge.

A couple of different angles of my little writing nook. If you’d like a letter, just let me know.

Sometimes I’m too extra even for myself.

The top couple of books for adult ADHD everyone says you should read are about 500 pages long, and I think that is kind of hilarious.

I’ve been working on a little Django Python project I want for personal use here and there for a few days, and it’s really coming along. Not bad for a few hours with a framework and language I only kind of knew going in. I’m using Nova by Panic which is quite nice!

Trying to get more exercise and also more sun in the morning to help with sleep and general health. Today’s was a walk through the neighborhood in the morning and a walk to a park and back a little bit from my house.

A far lonelier death

One of my best friend’s dads just died of COVID after battling it for several weeks until he was eventually in a coma. They were forced to remove the feeding tube when there was nothing else that could be done. She is heartbroken. Quoting her, “A COVID death is not like other deaths. It is far, far lonelier. And it leaves very lonely people behind.”

Her dad did the right things and still was infected with this horrible disease, probably from someone who didn’t even know they had it.

Wear your mask and get your parents vaccinated. If you can’t get them vaccinated yet, do what you can to get them to stay home and not take unnecessary risks. I’ve struggled to get my own parents to take this as seriously as they should. Don’t let anyone you love die hooked up to machines alone in a hospital.

I’ve spent the day watching the Capitol building be raided and trashed by armed terrorists attempting some kind of coup. I will never forget the president calling them patriots, repeating his lies, and saying he loves them. What a dark time to be alive.

Daily Planners for 2021

The last few years I’ve enjoyed keeping a paper journal of some kind for both personal and work related things. The separation is good so that private work stuff can stay at work, and also so that I’m not looking at work when I should be relaxing or doing other things.

For 2021, I’ve landed on using a Hobonichi Techo (A6) for my personal planner, and a Hobonichi Cousin (A5) for work. The larger size is helpful for work because it gives me room to take notes and sketch out ideas, where for home, I think the smaller size will be nice since I can more easily take it with me.

Another benefit of the Cousin is the integrated weeks pages — the smaller planner has weeks as an add-on book — which I hope will be good for planning out my work tasks. A week at a time is feels like about the right resolution for me to be thinking about work, so I’m hoping it’ll work out well.

I’m surprised that the further we get away from the election, the less threatening all the bluster from Republicans about throwing away votes and stolen elections seems, and the more sad and pathetic it all looks. Not that I don’t think refusing to concede, and claiming Democrats stole the election without evidence, is disgusting and will only make the next several years that much more miserable than they needed to be. Still, this thing which felt so threatening before feels so impotent and laughable now.

It’s Morning in America Again

Congratulations to everyone on electing Joe Biden President of the United States. No one knows what happens next, but a lot of people worked incredibly hard for this, and all of us have suffered in one way or another under the evil and malice of the last four years.

We all deserve to celebrate today, and then it’s time to win those Senate seats in Georgia.

The “Butt in Chair“ Writing Process

I’ve been reading all of John Scalzi’s Old Man’s War series of books — of which there are six — and was interested to read this article on his writing process.

I’ve been writing books now for 20 years and my experience really is that it’s not complicated, it’s just mostly sitting down and doing it, one day after another. Inspiration for me happens because I’m writing, not the other way around. In talking with other long-time writers, I’ve learned that’s how it works for most of us.

This reminds me a lot of when I read Stephen King’s autobiography or Anne Lamont’s Bird by Bird. I guess the “sit down each morning and write for a set amount of time“ method is a pretty common one among successful writers.

I think Trump was trying to project strength – or something – when he went back to the White House, but all I saw was a sick old man struggling to breath, and who was too caught up in his own macho act to not put himself and the people around him in unnecessary danger.

If you’re into video games and watching other people play them, come follow me on Twitch and hang out. I’ve been streaming things like Stardew Valley, Super Mario Maker 2, Splatoon 2, and Cities: Skylines (although I’m not too good yet).

This is the view out of my office window today. I guess ever year now the state will catch on fire and spew so much smoke into the atmosphere it won’t be safe to go outside? Something to get used to, I guess.

Smoke

Hyrule Warriors: Age of Calamity

Just watched the trailer for Hyrule Warriors: Age of Calamity, and I’ll definitely be playing this. I enjoyed the first game, but it felt disconnected from the world of Zelda. It’s exciting that the third-party developer that makes Warriors games are working closer with Nintendo this time to make something that ties into Breath of the Wild.

September

I feel like I just looked up and realized it was already September? I haven’t even blogged sine May. I could have sworn it was more recent than that. This whole year has been a blur.

What a time to be alive.

I’m doing a little project in my free time of re-reading K&R’s “The C Programming Language” and completing all of the exercises. It’s pretty time consuming, but I think worthwhile. Thankfully it’s a short book, so it’s not as daunting as it could be.

Really digging this sort-of-retro terminal theme and font combo I’ve got going. The theme is Gruvbox and the font is Input Mono Narrow Medium.

Even if you don’t care about the topic, this post on how to name servers is worth reading just to get his script which turns 8-bit images into ASCII art.

Things I’m Doing Since the Lockdown

Next week will be my third working from home, and there’s no clear date when it will end. I’m still not used to it, but I’m trying to do what I can to stay healthy while we’re all stuck at home. My time has consisted of at least a few of these each day.

  1. Going on at least one thirty minute walk a day.
  2. Trying to get my father to stay home.
  3. Playing guitar.
  4. Reading old books about old computers.
  5. Blogging and tweeting more.
  6. Trying to reassure people who are more worried than I am (and I’m pretty worried).
  7. Buying books from my favorite bookstore online so that hopefully they don’t go away forever.
  8. Realizing I have to keep in touch with friends better.

This is pretty rough. I have a lot thoughts, and a lot of feelings. It’s hard not to feel anxious all the time, and I can feel things like sleep quality decline.

I know that I’m incredibly lucky to have the kind of job I do and to be in the position I am in. I can’t stop thinking about all the people who aren’t so lucky though. It hurts to think about so many people suffering as much as I’m afraid they might.

BitBar: Easy Custom Menu Bar Apps

BitBar is a free app for macOS which — essentially — lets you create custom menu bar apps from shell scripts or other command line tools. If you can write a program or script (in Shell, Python, C, Swift) and print, you can put something in the menu bar. BitBar also lets you define how often it should automatically refresh each specific script.

My favorite thing I’ve made uses the speedtest-cli tool to refresh what my current download and upload speeds are and show colorized output based on the results.

2020 20 03 bitbar speedtest

The script might look strange if you’re not used to awk, but the main thing to know is that $2 (the second space separated for the line) represents the result number and $0 represents the whole line. So I’m grabbing the number and then printing the whole line with a color based on the value. Also, awk is cool and you should learn it.

#!/usr/bin/env zsh

echo "⏱"
echo "---"

/opt/local/bin/speedtest-cli |
awk '/Download/ {
        if ($2 < 25) {
            print $0, "|", "color=red"
        } else if ($2 < 90) {
            print $0, "|", "color=orange"
        } else {
            print $0, "|", "color=green"
        }
    }
    /Upload/ {
        if ($2 < 4) {
            print $0, "|", "color=red"
        } else if ($2 < 9) {
            print $0, "|", "color=orange"
        } else {
            print $0, "|", "color=green"
        }
    }'

More Parseable Output, Please.

Since reading Unix: A History and a Memoir by Brian Kerninghan (of K&R), I’ve been a little enamored with the idea of writing small command line tools. This article titled Hints for Writing Unix Tools hits on a bunch of things, and is worth reading, but one that really jumped out at me was this:

Output should be simple to parse and compose. This usually means representing each record as a single, plain-text formatted line of output whose columns are separated by whitespace. (No JSON, please.) Most venerable Unix tools—grep, sort, and sed among them—assume this.

Trying to parse the output of something like this on the command line is incredibly frustrating:

{
    myThing = "Blah"
    percent = 0.5
    ...
}

However, if the output is tab delimited:

myThing     blah
percent     0.5

Parsing it with Awk, sed, or other Unix filter tool can usually be done as easily as awk '/myThing/ { print $2 }'. I wish more tools paid attention to this. Maybe if you were writing Unix from scratch today, you’d have processes communicate using structured data (I think this is what PowerShell does?), but you have to work with the system you have.

Everyone knows that regular expressions are terrible, but what my theory presupposes, is that a large percentage of the “how can I parse …” questions on places like Stack Overflow that are solved by a crazy regex wouldn’t exist if more tools had sane output.

The Growth of Command Line Options, 1979-Present

This post shows the growth of arguments for a bunch of the most common Unix commands over time. The author demonstrates how we went from 99 in 1979 (Version 7 Unix), to 393 in 1996 (Slackware), to 700+ today (Ubuntu). After that, they make the argument that maybe that isn’t inherently a bad thing? Super thought provoking if you think about design or use a shell all day.