Shell Programming Best Practices

My Qualifications Since this is my own blog I’m usually happy to avoid reminding you of how qualified I am. In this case it is easy to note that: I spent a dozen years teaching shell scripting on UNIX and Linux with materials that I wrote the majority of. The students were surprised and happy to have a teacher that had real industry experience. I’ve done 46+ code reviews for bash on Code Review StackExchange over the last decade. I’ve been a fan of bash and a detractor for csh and ksh for 30+ years. Terminology note For purposes of this article I’m going to talk about the “shell” referring to various shell implementations which traditionally end in “sh”. This excludes scripting languages such as Perl and Python. I’m not trying to say anything bad about Python here. There’s plenty of that already on the Internet. The most popular shells these days are bash, zsh, and fish. Most of what I’m going to say could apply to any of them, but some things will be specific to the Bourne Shell (/bin/sh) and compatible shells such as bash and ksh. ...

June 5, 2026 · 15 min · 3092 words · Christopher Hicks

My first 8 months with AI

There’s a tremendous amount of hype and hate around AI these days. Most techies seem to be on the hype side and most normies are on the hate side. Everybody has “good enough” reasons for their takes on this. Nobody is obviously wrong. I don’t think the technology is far enough along that we can say it is clearly a net negative, like cryptocurrency has turned out to be, but the concerns that it could go that way are reasonable and we should not leave the risk abatement to the tech industry that has shown so little concern for its effects on our society. ...

April 18, 2026 · 22 min · 4516 words · Christopher Hicks

Backing Into Parking Spaces

I’ve always liked the idea of backing into parking spaces, but for most of my life I didn’t think much about my motivation for this. After a while I decided that backing in was a sign that I wasn’t a procrastinator. The procrastinators pull straight into places because they’re not even thinking about the potential challenges of backing out later. (Sorry to throw shade on the procrastinators. My snark could be genetically linked.) Viewing the people that pulled straight into spaces as procrastinators satisfied me for decades, yet I always felt like it wasn’t thought through as well as it could be. Despite the philosophical hand-waving, I kept up my tendency to back into parking places. Through the years I’ve learned a few things that might be more convincing. Welcome to a journey through my confirmation bias. ...

February 1, 2026 · 4 min · 751 words · Christopher Hicks

Scheduled Send in Slack

Overview Slack and other services include a Scheduled Send feature which allows you to send a message at some point in the future, without further effort on your part. Initially Slack limited this feature to channels, but recently it was also expanded to work in threads. So now seems like a good time to consider why you might want to take advantage of this feature. Generally we’re happy to send our Slack messages in real time and we hope for an answer within moments. The asynchronous nature of Slack lends itself to sending messages regardless of what time of day it may be for any of the parties involved. But there are occasions when asynchronous has downsides and for those times, Scheduled Send is your friend. ...

May 2, 2025 · 5 min · 1059 words · Christopher Hicks

Change Your Habits with a Good Checklist

I shared https://www.linkedin.com/pulse/20130806173515-28893870-change-your-habits-with-a-good-checklist/ by John Ryan.

August 7, 2013 · 1 min · 6 words · Christopher Hicks