On performance projects, I'm usually looking for bugs or bad decisions that have cost my customers orders of magnitude of performance. This week, I needed to quantify the value of 0.01 second. A customer had an old program that responded to a REST query in a tenth of a second and a brand-new version that… Continue reading Even a little bit helps
Canada lacks protection for “famous characters” like Mickey Mouse or Rhett Butler, and so faces the same problems the U.S. has. In the United States, companies needing protection have found it necessary to campaign for extension of general copyright terms. This extends the lifetime of copyright well past the lifetime of the author, and is… Continue reading Mickey Mouse needs our help
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