My new ACM Queue column: Operations and Life
I have 2 big announcements!read more
Usenix LISA is no more. Here's my retrospective
The Usenix LISA conference is no more. After 35 years, I have a lot of good (and some not good) memories of the conference. It was a big part of my career and I’m sad to see it go. However I’m proud of what LISA accomplished.
I wrote my personal reflections on the conference in a new article published on the Usenix website. Warning: this article includes some over-sharing.
Read it here: LISA made LISA obsolete (That’s a compliment!)read more
Automating an un-automatable access issue
This is a “face-palm – why didn’t we think of this earlier?” situation that I thought I’d share. Maybe it will help someone else.read more
Facebook's Metaverse Doomed to Fail
Facebook/Meta’s VR will fail.read more
Don't make me use Cisco WebEx
Here are my rules for using Cisco WebEx.read more
Fun With Shipping
I have to blog this so that when people say “that can’t be true” I can point to this blog post.read more
The Minimalist Headset Solution
I got sick and tired video conferences being delayed by audio problems. I know that a lot of times it is a problem on my end, but I think everyone has had audio problems. How did I fix it? I got rid of any feature that caused me trouble until I had a trouble-free headset experience. Spoiler alert: I had to eliminate nearly all features. The purpose of this blog post is to provide links so that people can purchase the same equipment I now use.read more
VMware WorkspaceONE Notifications are a crime against productivity
VMware’s WorkspaceOne has an annoying feature on macOS where every time it does an update you get a notification. This steals my cursor, interrupts my work, and breaks my concentration.read more
What does “n.n.n.n.” do in Vim?read more
Stack Overflow Is Hiring Azure SREs
Looking for SRE’s with experience in the Microsoft stack!read more
What Is Yak Shaving?
What is yak shaving?read more
How should SaaS providers charge for training?
The other day a vendor added $6k of “training” to my quote. Here’s how insulting that is.read more
PowerShell and NAPTR DNS records: Part 2
I think I’ve identified the bug in PowerShell’s handling of NAPTR records.read more
PowerShell and NAPTR DNS records. Help!
I can’t figure out how toread more
Remove-an NAPTR record using PowerShell’s DnsServer module. Can you?
Canon Imageclass Scanning to Gmail
Configuring my new Canon printer to scan to gmail was a bit tricky.read more
Evading or leveraging macOS's DNS mucking
There are times when macOS mucks with DNS lookups. For example, a corporate VPN client might tell macOS that DNS lookups for certain domains (i.e. domains inside the company) are to be handled differently.read more
Refactoring a Loop That Was Trying Too Hard
I fixed bug last night.
The bug was difficult to fix because the code was so complex. I wasn’t really able to fix it until I simplified the code. Once the code was simplified the bug was easy to fix. While doing this I found an anti-pattern that I now call “One loop trying too hard”.read more
Google GSuite (nee Workplace) Secrets!
Here are some of my favorite secrets about Google Docs, Google Sheets, Gmail, etc.read more
Shipping used to be 6-8 weeks
Remember back in the old days when if you ordered anything from a company, delivery was “6 to 8 weeks”?read more
The Linux 'cal' command
Five things you should know about the Linux
calcommand. There are many, many, more features listed in the man page but these are the ones you should know.
The Unixread more
calcommand appeared in 1973 in what was called “Version 5 AT&T UNIX”. Linux and macOS (and all *BSD systems) have very different clones. Check the man page for details.
A developer's view of umask
There are a zillion pages explaining how umask works from the user’s point of view, usually with great charts and tables explaining all the bits.
However in all my years I’ve never seen umask explained from the developer’s point of view. What do you provide toread more
creat()/open()/mkdir()(in C) or
os.OpenFile/os.Mkdir/os.MkdirAll(in Go) so that the user’s umask is in control.
How to Learn Vi / Vim
A coworker was amazed at my use of Vim, especially that I was able to navigate around files so quickly.
Here’s my advice:read more
Go has eliminated most of my off-by-one errors except 0... I mean 1.
for x = range foo) has eliminated the most common trap where I make off-by-one errors. The next largest category of off-by-one errors would be eliminated if there was a way to specify the last item in an array. It would also improve a developer’s ability to convey intent.
Setting env variables in /bin/bash
If you want to set an env variable in bash for only 1 command, here’s some bad ways to do it:read more
All I Do Is Play With Strings
A poem I wrote earlier this year.read more