“Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have [a-z0-9](([-.]|[_]+)?([a-z0-9]+))*@[a-z0-9]+. problems.”

— Pixy Misa searches for answers

“Almost fair and balanced”


I was all set to participate in Fair and Balanced Day, until I reached the site that’s collecting contributions and saw this:

before you know it, the entire left side of the blog world is gonna be fair & balanced

Since I’m no more a leftist than I am a right-winger, I immediately lost all enthusiasm for the game. Sorry, kids, but you don’t have to be on the Left to poke fun at an obviously frivolous lawsuit, even if it happens to be coming from the Right.

A perfectly reasonable panic


Once every three months, we sent the whole company home while we tore the computer room apart and did all sorts of maintenance work. During my first quarterly downtime, the top item on my list was installing a new BOSS controller into the Solbourne that was our primary Oracle database server. Like any good database, it needed an occasional disk infusion to keep it happy, and there was no room on the existing SCSI controllers.

So I had a disk tray, a bunch of shiny new disks, a controller card, and media to upgrade the OS with. The BOSS was only supported in the latest version, and this being the server that kept the books, it was upgraded only when necessary.

more...

A lifetime supply


Just finished adjusting the trigger on my Remington 700. It now has a crisp 2.5-pound trigger pull, a vast improvement over the creepy 6-pounder it came with. It’s an easy, safe procedure, but the final step involved something I don’t keep around the house: nail polish.

After a leisurely walk to the grocery store in the middle of the night, I am the proud owner of a half-ounce bottle of Maybelline Infinite Shine Clear Extended Wear Base And Topcoat. Sealing the threads on the trigger-adjustment screws required approximately a third of a drop of the stuff, suggesting that I have enough left over to fix about a thousand rifles. Which is about a thousand more than I own.

I suppose I could always use the rest to seal the quick-and-dirty paint job I do for my D&D miniatures (prime gray, paint black, drybrush metallic, done!).

Life’s little pleasures


After taking a week off to drive to Washington and back, I resumed my quest for a Browning Buck Mark Classic Plus. As I suspected, the only store who had one was 100 miles away, and thanks to California’s silly-ass gun laws, I have to make the trip twice, once to fill out the federal and state paperwork and supply a thumbprint, and again ten days later to claim my property.

more...

The Perl Script From Hell


I’ve been working with Perl since about two weeks before version 2.0 was released. Over those fifteen years, I’ve seen a lot of hairy Perl scripts, many of them mine.

None of them can compare to the monster that lurks in the depths of our service, though. Over 8,000 lines of Perl plus an 8,000-line C++ module, written in a style that’s allegedly Object Oriented, but which I would describe as Obscenely Obfuscated (“Hi, Andrew!”).

We have five large servers devoted to running it. Each contributes three CPUs, three gigabytes of memory, and 25 hours of runtime to the task (independently; we need the redundancy if one of them crashes). Five years ago, I swore a mighty oath to never, ever get involved with the damned thing.

Then it broke. In a way that involved tens of thousands of unhappy customers.

more...

PDF bullseye target generator


Spent two days this week at an Operations forum up north, and since most of the sessions had very little to do with the service I operate, I was able to do some real work while casually keeping track of the discussions.

My online target archive contains a bunch of bullseye targets I built using a Perl script. The native output format was PostScript, ’cause I like PostScript, but PDF is generally more useful today, and not everyone uses 8.5×11 paper. I hand-converted some of them, but never finished the job.

The correct solution was to completely rewrite the code using the PDF::API2::Lite Perl module, and generalize it for different paper sizes and multiple targets per page. It’s still a work in progress, but already pretty useful.

More on NAV


Just got back from another long trip in my self-navigating Lexus (to Bellingham, WA and back; sadly, I didn’t think about setting up a photo shoot with Lauren along the way until I was already halfway home).

I was surprised that the Hotel Bellwether wasn’t in the car’s database, until I learned that the place hadn’t existed until August 2000. Lexus gives out free update discs (when they’re in stock), so this is a problem I can correct sometime soon.

more...

Buck (Mark) Fever


My friendly neighborhood gun dealer has been completely unable to track down the Browning Buck Mark Classic Plus that I want to buy. All of his distributors are out of stock, and while they promise to have some Real Soon Now, they can’t say exactly when.

There are probably thousands in stock elsewhere in California, but the law is designed to make it tedious and difficult for me to buy one of them. Not because I might use it for crime, mind you; just wanting one is sufficient offense.

Most likely, I’ll end up driving 100 miles to a store that has one, make the purchase, and then drive there again ten days later to pick it up. Cheaper than having it shipped to my local dealer, paying him for the transfer, and letting it sit at his place for the ten days.

Of course, if I were interested in crime, I could have it today, or something much more lethal. California’s gun laws have no impact on the black market, because they’re not designed to.

“Need a clue, take a clue,
 got a clue, leave a clue”