blarg?

One Stem

This has been making the rounds recently, an article on how America is all infrastructure, and no people. It’s trite, but the old line about the difference between European and North American cities is that European cities were built for people; the cars got there later. In North America it’s the other way around.

So, cities are built for cars and the people get there later, but what if the people never get there? Turns out, we have an answer for that now. Take a look at this.

Google’s street view of this is fantastic, particularly if you slide back up from it to an overhead view of what’s around you. There’s nothing there, nothing but sand and old road.

The same thing has happened here; a city laid out for cars where the people never showed up. It’s incredibly bleak, and of all the things you can read into this I think what strikes me most is the utter disdain for organic growth and the incredible confidence in the planned-out city being the inevitable future. Why else would you put down that much asphalt? But then nothing happened. And ultimately, it wouldn’t really matter if it had – the organic, human aspect always wins eventually. You wouldn’t think so – it’s a big, planned coherent thing, it looks like it should work! – but it never does.

It occurs to me that this is a judgement on the citizenry, carved into the landscape; these are cities that fundamentally don’t trust their own residents with the reins of the future. I really hope we can add that to the pile of the last century’s bad ideas and walk away from it.

Grabbing The Spotlight

I realize that not everybody shares my particular brain damage, but that doesn’t mean I can’t share mine with everyone else.

“Architecture, said Hegel, is frozen music… Donald Swann’s music has often been compared with defrosted architecture.” – Michael Flanders of Flanders & Swann.

Some relatives of mine up in Richmond Hill have, like many of us here in this wondrous modern civilization, a bathroom. Unlike most of us this particular bathroom is a cavern of stark terror, a carnival of non-euclidean horrors and crushing existential doubt. I don’t know what brought some previous owner to design it like that, but I can certainly see why they would look at it later and say to themselves, yeah, we probably shouldn’t do that again.

I refer to it as the Bathroom To Infinity, and this is a warning. If you walk into a room like this unprepared it’s the mental equivalent of jogging into a pole on a curb; some part of your esprit goes klonk and you hear a hollow ringing sound as you clutch your head in agony and stumble blindly into traffic.

All the fixtures are a glossy ceramic black. The floor is black marble with a hint of veined crystal in it.

Every other surface is a mirror. The walls, the roof, the back of the door, all of it. The light switches, the trim, everything. And not all at right angles. So you sit down on the can, look left, look right, and an infinite number of you is there with you, stretched out in every direction and staring back at you. Sitting on the can, pants down and looking kind of shocked.

“What, if some day or night a demon were to steal after you into your loneliest loneliness and say to you: “This life as you now live it and have lived it, you will have to live once more and innumerable times more; and there will be nothing new in it, but every pain and every joy and every thought and sigh and everything unutterably small or great in your life will have to return to you, all in the same succession and sequence – even this spider and this moonlight between the trees, and even this moment and I myself. The eternal hourglass of existence is turned upside down again and again, and you with it, speck of dust!”

“Would you not throw yourself down and gnash your teeth and curse the demon who spoke thus? Or how well disposed would you have to become to yourself and to life to crave nothing more fervently than this ultimate eternal confirmation and seal?”

– Friedrich Nietzsche, “The Gay Science”

It really depends on when he gets here, Friedrich! If this moment will repeat itself innumerable times more, then maybe your demon could wait outside with his crushing existential crisis for five damn minutes instead splashing the eternal recurrence of my trip to the washroom on every flat surface available? Can my long dark night of the soul wait ’til I’ve zipped up? That’d be great! But no, you’ve just got to deal. It feels like you’re giving in somehow to just close your eyes, but what else can you do? It’s a bathroom, for crying out loud! Since when does confronting a bathroom threaten the core of your psyche? That’s barely even a sentence!

The last time I was in there it occurred to me to prick my index finger and write “DO NOT FORGET TO WASH YOUR HANDS OF THE MATTER” over the sink as a message for the next wayward victim. Which would be an aesthetically coherent way to address the situation, I think! But which also might be sign I should just use the washroom downstairs instead.

Traffic

So according to the old joke, a fed-up student asks the physics prof who’s going over kinetics in protracted detail, what good is all this? What will I ever use this for? To which the professor, not even looking up from where he’s writing on the board, says “This stuff saves lives.” The student balks for a second and then gets belligerent, demanding to know how first-year physics saves lives. The professor doesn’t even turn around, saying “it keeps idiots like you out of med school.”

Maya, you can’t read this yet, and it might be years before you know what half of it means, but I’m writing it down for the day you do. It’s a little long-winded, but by the time you get here you’ll be long tired of the fact that so am I.

So: years ago for maybe fifty dollars I bought an old computer, a Sun 4c, better known as a SparcStation 1. It looked like a pizza box and rocked a Sparc RISC processor at 25Mhz, and even back then in the hazy prehistory of technology 25Mhz was pretty pokey. It had 64 MB of RAM and a 1GB drive the size of a shoebox, back when RAM vs. hard drive was a distinction that mattered. It was obsolete long before it met me, but it was running SunOS 5.2 and as was the nature of many machines of that era, built heavy and made to last.

It was also my first exposure to non-Linux Unixes, which are legion in the world. I don’t really know what the world will look like by the time you can understand this, but I will promise you that even then there will a lot of machines like this, long obsolete, poorly understood by all but a few and doing something absolutely critical in the darkened corners of server rooms and networks of the world. I only ever had an incomplete understanding of this one, but enough to learn that whether those differences are obvious or subtle there’s some very deep, very cold water under all that thin ice you’re treading on.

Hello

But hold that thought. Act two, scene one, last Friday at the office our tape robot froze up.

This robot is about the size of your first room, and stores several petabytes of data on almost fifteen hundred LTO4 tapes; running full-out we can push about twenty terabytes an hour of information through it over the dozen or so fiber pairs that are plugged into the back, and we use it mostly to store HD video-editing projects and server backups. I’m sure these numbers all seem quite quaint to you (Not to mention “tape”. I know!) but at the time it was considered to be quite a bit; we had to take a core sample of the floor to make sure it was strong enough to support its weight before we bought it, to give you an idea of what sort of hardware we’re dealing with here. A big toy by any measure and vastly larger, faster and more expensive than, to pick an example entirely at random, a Sun 4c.

And I had to restart it. Now, even in these awkwardly presophisticate times fixing a computer by rebooting it is… It’s a little gauche. It’s a sign that you don’t have any kind of fine-grained control over the machine or don’t really know what you’re doing and usually both; it’s distasteful and we all know it, but now and then a box gets so thoroughly wedged that you have to drop that hammer on it. C’est la vie, your tempus is about as fugitive as it gets at times like these and cliché waits for no man, so you push that red button and saddle up to start riding herd on the consequences.

In this case, this turned out to be a two-part process. So after the robot spent a few slightly terrifying minutes banging its arms on the sides of the cage (recalibrating, field-circus guy says, but I honestly think it was just pissed off at having been unceremoniously woken up) and I spent a few futile minutes trying to connect to it, hardware support guy suggested I would need to reboot the controller too.

The controller, though, I know that it’s a unix box. And rebooting is just not how these things work; you restart services, not machines, and along you go. Fortunately they had a software guy who correctly saw things my way, and gave me the information I needed to do just that. So I rlogin (Not ssh, urk. I hope I taught you better than this!) to the controller and, just to get my bearings, ask it what OS it’s running.

And what do I find but SunOS 5.3.

Fifteen years and millions of dollars later, I am sitting in front of an OS a single point-one more recent. And, God, all those old memories come flooding back. Make sure your terminal window is 80×25 or it loses its mind. Still no tab-completion, not even up-arrow giving me back my last command. No modern tools of any kind and my goodness, the stakes are quite a bit higher. But old reflexes die hard, and everything I need to know is still right there at my fingertips after so long. I restarted the offending services in a couple of moments instead of messing around blindly; we were immediately back on track, and I somehow had the sense that a circle had been closed.

The lessons here are legion (and seriously, don’t ever take a hardware guy’s advice about software) but more than anything else, I want you to think about that guy who’s wondering what all of this learning is good for. Try and imagine all the opportunities in his life that are going to walk right past him. He’s made his choice, and now he’ll never even know they’re there.

Which is all to say: I don’t approve of this guy. Don’t be bringing him home, I won’t have you dating a chump.

RGB

“Life is like a sewer — what you get out of it depends on what you put into it.”
– Tom Lehrer.

In Firefox, you can turn off Google’s automatic search suggestions by typing “about:config” into the URL bar and hitting return. Then type the word “suggest” into the filter box; double-clicking the “browser.search.suggest.enabled” line will set it to false, and then you can close that tab.

It’s useful for a lot of people, I’m sure, but I’ve finally had to turn it off. About three times a week I get ambushed when I make the mistake of putting some harmlessly generic phrase at the beginning of my search and Google puts ten of the likeliest continuations of that phrase at the end of it.

This might not be the most common form of brain damage in the world, but when that hits me in the eyes my brain assumes that I’m looking at an actual narrative, a paint-by-the-numbers outline of someone’s story. And then my stupid brain starts to colour it in.

“Should I”, space.

Stay or should I go. Call him. Break up with him. Shave my pubic hair. Get bangs. Upgrade to Windows 7. Get a divorce. Pop a blister. Break up with my boyfriend. Suddenly I am reading the story of some sad, slightly nerdy and unhappily married girl on the verge of doing something terribly self-destructive.

All I wanted to know was whether or not I should delete some machine from active directory before rebuilding it, and now I have a brain full of that. The worst part is that I’m 100% sure that person is real. She’s somewhere in the world right now trying to decide whether to upgrade her OS or slit her wrists, and all I want is to go back to not thinking about her. Whatever happens next, I’ll never know.

But maybe, whispers brain, maybe we can check.

“Did she”, space.

Mention my name? Die? Cheat on me? Mention my name, just in passing?

I admit that I might be uniquely broken this way but honestly, brain, shut up. At three o’clock in the morning I’m alone with what I’ve done. Isn’t that enough? I don’t need you conspiring with my machines to leave all this detritus piled up in there too. That is just patently unfair.

Fine, I'll Play Your Little Game

A minor technical note, if you would – I’m building Mozilla from source these days for my own amusement, and I’ve had these problems with it that I should probably document. And some of you out there in internet-land might be asking yourselves the same questions, like “If I upgrade to Snow Leopard, and I’m heavily invested in MacPorts, what happens?” or “I followed the instructions and it didn’t work, double-yew-tee-eff?” So, here you go. I’ll put them up on the wiki in a few moments.

The short version is: when you upgrade to Snow Leopard you need to rebuild your dev environment from scratch. Otherwise you get a lot of spurious errors from MacPorts (no libiconv, can’t make executables, no perls, etc) that are all basically lies. Do not get fooled into playing whackamole with the MacPorts errors; that is not the way. Purge and rebuild.

The long version is as follows:

  • If you have the Leopard XCode package installed, the Snow Leopard installer won’t touch it; you need to go back to the DVD and get Snow Leopard’s XCode package out of the Optional Installs, or you’ll start getting “compiler cannot create executables” errors, or something very much like that. Obvious! But I declare it also “easy to overlook” because I overlooked it and doing so was, in hindsight, pretty easy.
  • Uninstall all of your ports: “sudo ports -f uninstall installed” from a shell prompt. After that, “sudo ports clean installed” just to be sure, “sudo ports selfupdate” and “sudo ports sync”.

Some of these steps might be unnecessary – if you’re working with the latest version of MacPorts “selfupdate” won’t do anything, for example – but this fix works for me. Now you can go back to step 3 of the OSX Prerequisites page and follow along, and it will work as advertised.

Exhibit 1: “Excerpts from Expert Judgment on Markers to Deter Inadvertent Human Intrusion into the Waste Isolation Pilot Plant, Sandia National Laboratories report SAND92-1382 / UC-721, p. F-49.”

This place is not a place of honor.
No highly esteemed deed is commemorated here.
Nothing valued is here.
This place is a message and part of a system of messages.
Pay attention to it!
Sending this message was important to us.
We considered ourselves to be a powerful culture.

Exhibit 2: The OpenOffice Mouse.

“In partnership with the OpenOffice.org community, WarMouse announced the release of the OpenOfficeMouse, the first multi-button application mouse designed for the world’s leading open-source office productivity suite. With a revolutionary and patented design featuring 18 buttons, an analog joystick, and support for as many as 52 key commands, the OpenOfficeMouse is intended to provide a faster and more efficient user interface for OpenOffice.org applications such as Writer and Calc than the conventional icons, pull-down menus, and hotkeys presently permit.” [...]

“You can do far more with this mouse than most people are likely to realize at first,” said mouse designer Theodore Beale. “You can launch applications from the desktop, and in your browser you can fire up a specific Internet site with one button, then close it with a double-click on the same button. In Writer and Calc, you can have your most powerful and complicated macros on one row of buttons and simple functions like Bold, Undo, and Format Cell on another. It’s very useful in games like World of Warcraft, because even without taking the joystick into account, you’ve got 16 commands within one click, 40 within two, and all 72 icons on the six action pages within just two double-clicks or less.”

I’ve never seen an accessory that said more clearly that this place is not a place of honor. No highly esteemed deed is commemorated here. Nothing valued is here.

This has to be a joke.

Command And Control

10:52 <@mhoye> Weird. Anyone here seen a situation where ls won't show you a file, even ls -A, but you can copy it out of the directory?
10:52 <@mhoye> A directory full of other, similarly named files that you can see just fine?
10:52 <@mhoye> I am suspecting filesystem corruption here.
10:53 <@shaver> if you grep for the filename in the ls -A output, do you get a hit?
10:53 <@mhoye> Nope.
10:53 <@mhoye> But if I cp filename ../ it appears in the lower dir.
10:54 <@Myke> what FS is that?
10:54 <@mhoye> hfs+
10:55 <@mhoye> with ACLs enabled, but there's nothing in there that would indicate a problem.
10:55 <@Myke> I have run into that
10:55 <@shaver> not me
10:55 <@shaver> I would shit myself
10:56 <@mhoye> I considered that as a plan, but I'd like to explore other options first.

Steve Jobs, the joke goes, doesn’t use a calendar; he just yells at people until it’s the right day.

So, you know how Macs are all about hiding the implementation details from users? Let me tell you about this funny thing I learned about OSX’s HFS+ file system today: the “kIsInvisible” flag. You can flip it on and off if you have the developer tools installed – SetFile is the name of the command-line app you want. Once that bit’s flipped, as far as I can tell the only way to find out that file X is in that directory Y is to already know it’s there.

To my knowledge there are at least four ways that a Mac can hide the contents of its filesystem from a user. They are:

  • The standard unixy dot-filename convention. Largely harmless, an “ls -A” in a terminal will show you everything.
  • Munging permissions. Again, the Finder won’t show you stuff you don’t own, but “ls -A” in a terminal will. If you need to move a Mac from one Active Directory domain to another, this is where all your user’s files went.
  • This kIsInvisible flag, which is apparently a legacy holdover from the pre-plus HFS days but still works like a charm, hiding the file from users (even root) and any scripts that process files in that directory using an ls of the contents.
  • The “/.hidden” hack, in which a file called “.hidden” in the root of your boot drive can contain a list of files that OSX will never, ever show you.

Those last two in particular are 100% awesome, and I’m sure the motives for implementing them looked excellent to somebody. And there are, of course, no security implications to any of this at all! None! But it’s nice to be reminded every now and again that for all its rounded-off brushed metal finish, OS X fundamentally doesn’t trust its users; there are some surprisingly sharp edges under the hood here.

But you’re never supposed to open it, though, right? So that makes it your fault.