How I've wound up being one of the people who don't update IoT firmware
The security of various assorted devices that make up the broadInternet of Things have been in the news recently, both for directIoT devices like thermostats and fridges, but also for the morebroad category of Internet-related boxes like DSL routers andwireless access points (often these are the same device, of course).In the spirit of this I tweeted this admission :
True story: I have no idea how to get firmware updates for my DSLmodem/router. The actual maker (Smart/RG) doesn
I should keep a released version of the Go compiler suite
One of my little development habits with Go is that I track the tip of Go development , built my Go toolchain from it,and update frequently. This almost always works (the tip is onlybroken very rarely ) and it means thatI get the latest Go compiler improvements and standard libraryupdates. Every so often I can even help out by reporting a problem(well) before it makes it into a general release.
(Building Go from source is pretty simple once you're set up forit and pretty
The shutdown program on a modern systemd-based Linux system
Historically, shutdown has been adistinct binary. All of the waiting for the shutdown time, the wall notifications, and setting up a nologin file shortly beforeshutdown were handled by it, internally; only at the end, when itwas time to do whatever, did it turn to the init system to causethe actual reboot, power off, or shutdown. It followed that youcould determine whether or not a shutdown operation was (slowly)in progress by looking for a running shutdown command (and figureout when
The shutdown command is a relic of BSD's historical origins
Most of the remaining Unixes these days have a shutdown commandthat all look the same; the FreeBSD manpage is about typical , and you cancompare it to the Linux manpage .Even Illumos has a version with broadly similar features. I suspectthat a bunch of people have used shutdown periodically withoutthinking about the actual command very much. But if you look at it, shutdown is an interesting relic of BSD's origins as a timesharingsystem.
I call shutdown a relic here because of its behavior if you tellit
I like the Python 3 string .translate() method
Suppose, hypothetically, that you wanted to escape the & character intext as a HTML entity:
txt = txt.replace('&', '&')Okay, maybe there's a character or two more:
...txt = txt.replace('<', '<')And so it goes. The .replace() string method is an obvious and longstanding hammer, and I've used it to do any number of single-character
Writing in Python 3 has been a positive experience so far
As I've mentioned in passing before ,I have a little Python thing to logMIME attachment type information from Exim and I converted it fromPython 2 to Python 3 about a month and a half ago. The direct reasonfor doing this was a relatively small one: the Python 3 version ofthe zipfile module could automatically handle ZIP archives (and tarfiles) that used XZ compression, which people were sending us. Myindirect reason was that I haven't really done anything with Python3 yet and it
Making my Yubikey work reasonably with my X screen locking
When I moved from unencrypted SSH keys to encrypted SSH keys heldin a running ssh-agent process, I arranged things so that the keyswould be removed when I locked my screen ( which I do frequently ) and then unlocked and added againwhen I unlocked my screen; I wrote this up as part of this entry . Soon after I started playing aroundwith having SSH keys in my Yubikey, it became clear to me that Ineeded to do the same thing with the Yubikey's SSH keys. Morespecifically
How I managed to shoot myself in the foot with my local DNS resolver
I have my home machine's Twitter client configured so that it openslinks in my always-running Firefox, and in fact there's a wholecomplicated lashup of shell scripting surrounding this in an attemptto the right thing with various sorts of links. For the past littlewhile, clicking on some of those links has often (although notalways) been very slow to take effect; I'd click a link and it'dbe several seconds before I got my new browser window. In thebeginning
Why we care about long uptimes
Here's a question: why should we care about long uptimes, especiallyif we have to get these long uptimes in somewhat artificial situationslike not applying updates ?
(I mean, sysadmins like boasting about long uptimes, but this isjust boasting. And we shouldn't make long uptimes a fetish .)
One answer is certainly 'keeping your system up avoids disruptingusers'. Of course there are many other ways to achieve this, suchas redundancy and failure-resistant environments. The whole petsversus cattle
ZFS's 'panic on on-disk corruption' behavior is a serious flaw
Here's a Twitter conversation from today:
@aderixon :For a final encore at 4pm today, I used a corrupted zpool to kill anentire Solaris database cluster, node by node. #sysadmin
@thatcks :Putting the 'fail' in 'failover'?
@aderixon :Panic-as-a-service. Srsly, "zpool import" probably shouldn't do that.
@thatcks :Sadly, that's one of the unattractive sides of ZFS. 'Robust recoveryfrom high-level