This is a big technical discourse that ends with a restaurant endorsement. Because Agave in San Jose is a good place to be.
Today pretty much sucked. It started last night, when I ran a routine software update on the heroic little computer that brings you these ramblings. It is a Mac Mini tucked away on a shelf in a climate-controlled facility in Henderson, NV; a little machine that just plugs along year after year.
As a primer before I dive into that part of my hardship, let me take a moment to describe the UNIX world. UNIX is a computer operating system that has been copied and recopied into different kinds of Linux and BSD, as well as Apple’s Darwin, but philosophically the different flavors have much in common and share a lot of little programs. In fact, it’s all about the little programs. Each little app is designed to solve one problem perfectly, and larger applications use these underlying facilities. A graphics program could depend on dozens of underlying libraries.
So when you install one of these programs, how can you be sure all the parts it depends on exist on your system? It’s a huge chore, made much simpler by package managers. Package managers are special programs that maintain a database of who-needs-what so when you install SuperGameMachine it will automatically install CleverGraphicsLibrary, and that in turn will require StupidGraphicsLibrary, and that will require something called gl (actually the names of all these things are criminally terse, so you can never deduce the purpose from the name — CleverGraphicsLibrary would be named cgl).
Anyway, a major upgrade of ncurses just came out, and it gave me a hellish few hours. That database of who depends on what? Well, it turns out is wasn’t so complete, in the MacPorts world. ncurses had been so stable for so long that many program maintainers didn’t even realize they depended on it. The update came along and those programs were still looking for the old version. One of those programs was bash. bash is part of mac OS, but there was a massive (MASSIVE!) security hole in bash and I went to MacPorts to get the new version faster.
When you watch hackers on TV, when they’re typing cryptic symbols into their black screens, mostly they’re giving instructions to bash. Bash is a shell, which is a name for a program that takes stuff you type and does stuff as a result. For veracity, hackers in movies might compare the merits of bash and zch or tsch, but at this time bash is boss.
So when you open up a window to type those cryptic commands, it will launch your chosen shell. If you set your preferred shell to be bash, and then bash is broken, you are screwed. You are especially screwed if you don’t have physical access to the box. You try to log in, bash fails, and you sit at your terminal in helpless frustration, shouting to the uncaring gods of the night. Even if the package manager eventually sorts out the problem, you can’t get in to run the repair.
OK, this is getting long. I got through that, but there wasn’t a lot of sleeping involved. (Two bug tickets at MacPorts now closed.)
Then, today, after a rather frustrating meeting at work, I was betrayed by my bar. By my BAR! By my quiet haven in this noisy world. We had a contract — I paid a chunk in advance and got a discount on my first frosty mug of happiness on each visit for the rest of my life. I am not dead yet, but new(ish) ownership of Rookies Sports Lodge says it will no longer honor the deal. Should I shout? Threaten? Walk away?
It’s going to take some doing to make today come out right.
So here I am at Agave, the neighborhood cantina, and things are starting to feel better. I am working up the vocabulary to make sure that the official Muddled Sweetie gets her chicken burrito smothered with lots of good stuff. None of the English-speaking staff seems to be on tonight.
But make no mistake, these guys here make good food, for a good price. The menu now has many prices lined out and raised with a ball-point pen, but those big-ass burritos still hold the price line. And even the new ball-point prices are a steal. There aren’t many places in this town where my internal cheap bastard and my internal gourmand can party together, but this is one.
Waiting for the food, sippig Negra Modelo, listening to music with bright trumpets and tight vocal harmony, things are starting to feel better. I’m gonna be all right.