I should remember that I can cast things in Go
I think of Go as a strongly typed language.My broad and somewhat reflexive view of strongly typed languages isthat they mostly don't allow you to cast things around because mostcasts will require expensive data conversion and the language wantsyou to do that explicitly, with your own code. Go even sticks to thisview; you can cast numbers around (because it's too useful) and youcan go between string and []byte (because it's a core operation),and that's
ZFS pool import needs much better error messages
One of the frustrating things about dealing with sufficiently damagedZFS pools is that ' zpool import ' and friends do not generate verydetailed error messages. There are a lot of things that can go wrongwith a ZFS pool that will make it not importable, but ' zpoolimport ' has clear explanations for only some of them. For many othersall you get is a generic error in ' zpool import ' status reportingof, say:
The pool cannot be imported due to damaged devices or data.
(Here I'
We killed off our SunSolve email contact address yesterday
Back in the days when Sun was Sun, Sun's patch access and supportsystem was imaginatively called Sunsolve. If you had a supportcontract with Sun (which often was only about the ability to getpatches and file bug reports), you had a SunSolve account. We hadone, of course ( we have been usingSolaris for longer than it's been Solaris). In the very beginningwe made a classical mistake and had it in the name and email of a specific sysadmin (who thenmoved
Don't have support registrations in the name of a specific sysadmin
Every so often at work you will buy something, sign up for a service,arrange a support contract, register for monitoring, or whatever withan outside company or organization. Not infrequently these things willask you for an email address that will be both your organization's keyto the service and the person who gets notifications about it (sometimesyou have to pick a username or login too).Here is something that we have learned the awkward way: when youdo this, don't just use your
No new web templating languages; use an existing one
Suppose, hypothetically, that you are creating a web application.Let's even suppose that it's a very small and simple one, almostan embarrassingly small one. As part of this app, you need a verylittle bit of something like a templating system. Not much, justa bit more than printing formatted strings. Clearly you have sucha trivial situation that you can just bang together a tiny andsimple mini-templating language, right?
Let me save you some time and effort: no .
Why I spent a lot of time agonizing over an error message recently
I recently spent an inordinate amount of time not so much writinga local script as repeatedly writing, rewriting, and modifying itserror messages (the rest of the script is mostly simple). Now, I'lladmit up front that I have a general habit of obsessing over smalldetails of program output, and maybe some of the fidgeting with theerror messages was for this. But I actually maintain that I had acompletely sensible reason for caring so much about the script'serror messages. You see,
What sysadmins want out of logging means that it can't be too simple
Dave Cheney recently wrote Let's talk about logging about(Go) logging packages, where he advocates, well, I'm going to quotehim directly:
I believe that there are only two things you should log:
- Things that developers care about when they are developing ordebugging software.
- Things that users care about when using your software.
Obviously these are debug and info levels, respectively.
log.Infoshould simply write that line to the log output. Thereshould not be an option to turn it off
The great Delete versus Backspace split
In the history of Unix, one of the great quiet divisions has beenthe split of what your erase character should be, with the choicebeing DEL (Ctrl-?) or Ctrl-H. In turn, this goes back to the physicalserial terminals that for years were how you logged on to most Unixsystems. In the days of real terminals, you wanted your Unix erasecharacter to be set as whatever your terminal generated when youhit the big, prominent 'backspace' key (which was, of
Why I (still) care about SELinux and its flaws
A perfectly sensible reaction to my series of disgruntlements isto ask why I still care enough to write about it. There is all sortsof ill-considered software out there in the world, and disablingSELinux is simple enough. I don't gripe about Ubuntu's AppArmor,for example (which we disable too). As it happens, there are twomajor reasons that I continue to care about SELinux.
First, the continued existence and popularity of SELinux drains thetime and attention of people away from doing
Revisiting a bit of my X keymapping history
I started using X what is now a very long time ago, and unlike somepeople I've never had a complete break with my original X environment,one where I restarted my setup from scratch and threw away all ofmy old customizations. The natural result of this is that I have beencarrying forward some historical decisions without actually ever reallylooking at them in a modern environment.
At some point in my life with X, one of my customizations becameto swap the Backspace and Delete keys via xmodmap . My