How I Review GitHub PRs
After a long time spent in management, I found myself switching back to an IC role in February. Since then, I’ve spent
more time than I’d care to admit re-learning how to do all the things I used to do. Or…maybe not re-learning outright,
but rebuilding habits and patterns that used to be automatic, but that I now have to think about.
One of those patterns involved code reviews. The place I work has a bias towards large, epic-sized PRs. If it’s been a
minute since I’ve been an IC, it’s been an…
Beating Spelling Bee with Factor
While I unfortunately haven’t had a lot of time to contribute to Factor for a couple of years, I still love using it for the little random programming tasks I have to deal with day-to-day. Factor’s design makes it perfect for the kind of exploratory work that hits at the fringe of what it makes sense to automate. And on top of that, I still think Factor should be more widely used, so I like doing what little I can with what time I have to “make fetch happen”.
One of my current addictions is…
Introducing Hayom
For quite some time, I’ve had an appreciation for text-based tooling. Not (necessarily) for terminal-based tooling, mind—there are some meaningful benefits to using a GUI, after all—but for solutions that truly think of plaintext as their source of truth. To that end, I’ve been using a nice Python tool called jrnl for years, which makes maintaining a pure text journal really easy. All jrnl really does is to automate maintaining a simple text file in a straightforward way, and providing a few…
I See Deno in Your Future
Deno is a re-imagining of Node: still JavaScript for the server and command line, still based on V8, but with a drastically improved build story, simplified (hell, genuinely simple) dependencies, and a vastly improved standard library and web compatibility story. I’ve been using it on-and-off for hobby work for a couple of years now,[1] and I’ve really enjoyed playing with it.
One especially unique feature of Deno is its security model. By default, Deno scripts aren’t allowed any dangerous…
The Deprecated *nix API
I realized the other day that, while I do almost all of my development “in *nix”, I don’t actually meaningfully program in what I traditionally have thought of as “*nix” anymore. And, if things like Hacker News, Lobsters, and random dotfiles I come across on GitHub are any indication, then there are many developers like me.
“I work on *nix” can mean a lot of very different things, depending on who you ask. To some, it honestly just means they’re on the command line: being in cmd.exe on…
When class-based React beats Hooks
As much as I love exploring and using weird tech for personal projects, I’m actually very conservative when it comes to using new tech in production. Yet I was an immediate, strong proponent of React Hooks the second they came out. Before Hooks, React really had two fundamentally different ways to write components: class-based, with arbitrary amounts of state; or pure components, done as simple functions, with zero state. That could be fine, but the absolutely rigid split between the two was…
The Death of Edge
Edge is dead. Yes, its shell will continue, but its rendering engine is dead, which throws Edge into the also-ran pile of WebKit/Blink wrappers. And no, I’m not thrilled. Ignoring anything else, I think EdgeHTML was a solid rendering engine, and I wish it had survived because I do believe diversity is good for the web. But I’m not nearly as upset as lots of other pundits I’m seeing, and I was trying to figure out why.
I think it’s because the other pundits are lamenting the death of some sort…
Messages, Google Chat, and Signal
Google is about to try, yet again, to compete with iMessages, this time by supporting RCS (the successor to SMS/MMS) in their native texting app. As in their previous attempts, their solution isn’t end-to-end encrypted—because honestly, with their business model, how could it be? And as with Google’s previous attempts to unseat a proprietary Apple technology, I’m sure they’ll tout openness: they’ll say that this is a carrier standard while iMessages isn’t, and attempt to use that to put…
Moving and backing up Google Moving Images
For reasons that I’ll save for another blog post, I decided recently to ditch pretty much the entire Apple ecosystem I’d been using for the last decade. That’s meant gradually transitioning from macOS to Ubuntu, and from iOS to Android. Of course, to ditch iOS for Android required a new phone; after some research, I opted for a Google Pixel 2.
The Pixel 2’s been a great phone and has lots of interesting features, but one of the more esoteric features is called Moving Images. These are Google’s…
Automating Hugo Deployments with Bitbucket Pipelines
As I mentioned in a recent post, I manage my blog using a static site generator. While this is great to a point—static site generators can handle effectively infinite traffic, they’re stupidly cheap to run, and I can use whatever editor I feel like—the downside is that I lose tons of features I used to have with dynamic blog engines. For example, while it’s almost true that I can use any editor I want, I don’t have a web-hosted editor like I would in WordPress or MovableType, and I likewise…