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…
Learning Writing and Coding from a Con Artist
The best teacher I ever had on how to write and how to code was a complete
charlatan hack who conned his way into Duke’s English department.
No wait, hear me out: the prof (let’s call him Matt, because I’m not even
entirely sure he gave us his real name) was an awful professor in most respects.
He didn’t grade anything, I’m dubious he had any teaching credentials in the
first place, he often didn’t even bother showing up to class at all, and, while
I’m about 95% sure he had some college degree,…
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…
Commit SHAs as dates
I’ve been going through a pile of old bitquabit posts. While many of them hold up over time, the more technical ones frequently don’t: even when I was lucky and happened to get every technical detail right, and every technical recommendation I threw out held up over time (hint: this basically never happens), they were written for a time that, usually, has passed. Best practices for Mercurial in 2008 are very much not best practices now. But it’s a bit tricky: whether something I wrote is…
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…
JSON Feed with Hugo
Every couple of years months [checks wristwatch] weeks, we reinvent a file format for no particularly good reason. Don’t get me wrong; we come up with all kinds of reasons to justify what we’re doing—easier to read, better for the environment, It’s Got Electrolytes™—and sometimes, the new format does genuinely represent a meaningful or necessary improvement. But more often than not, we’re just reinventing things out of boredom and a nagging sense, deep down, that if we don’t keep changing…