I've been using Go for a while now, and learning to think into the language. Quite to my surprise, it's improved my shell and awk. I use shell and awk for prototyping programs I need immediately, and may need to rewrite quickly. One of these pulled data hourly out of a database under cron, and… Continue reading Writing go in shell and awk
A previous customer needed to replace a program before a 32-bit counter turned over, a simple task... However, the 2^32 links pointed to 2^32 large files, so suddenly we were doing a large-data migration. ProblemsBefore the new service can be used, we have to do all of get the current working set onto the new servicearrange… Continue reading When “Update” means “Migration”
Back in my ill-spent youth, I worked for three years on Solaris binary stability. These days, I work on Linux, which it turns out, has to deal with exactly the same problems. One of them is retiring deprecated kernel interfaces. Introduction We ship continuously to add features, but we keep having to fix bugs. It's… Continue reading How about a stable Kernel API?
In a previous life on clunky old individual machines, I used to have to semi-manually run steps with careful checks in between and stop if anything didn't work. Gee, now I have clusters, which have gazillions of machines, all of which I have to apply a series of steps to, and stop if anything goes… Continue reading Try, try again (without catch)
Go can be trapped into an NP-complete problem, that of handing mutually contradictory library dependencies, if we fail to render the problem impossible. Multics started in a world where such contradictions could exist, but refused to stay there. The Multicians responded by making the problem impossible by construction. This wheel was re-invented in Solaris, and… Continue reading Avoiding an NP-Complete Problem by Recycling Multics’ Answer
Bill Duncan, in a blog on event-pair latency, Deep Dive, ETL Dotplots, showed a different way to look at a time series that includes latency or response times. When I'm doing load tests (and I did a lot last year) I normally take a pair of plots like these as my raw data. These are from… Continue reading A different dimension for time series plots
Not IBM's Multiple Virtual Storage, minimum version selection. In Russ Cox's article on minimum version selection, he addresses the problem of what to do with a conflict, when two dependencies of your program ask for two versions of a common dependency of theirs, one newer, one older. In his model, you can only have one, so one… Continue reading An alternative to MVS