Tech Life There is no magic

Terminal Zen

Management by Hallway is the style of management when you get out of your office and walk around the office to see who you trip over. It’s by no means a reliable or scalable management style, but it does offer you the chance to strike up a random conversation about a random topic and you never know when all that randomness will lead to knowledge.

Part of my hallway management approach is to walk into someone’s office and, if it’s convienent, glance at their desktop. There’s a nervous eighth of a second when the co-worker sees that I’m looking and does one of two things: they hide their current window (hmmmm) or they sit back in their chair to begin our random discussion.

Really, I’m not spying. Engineers work too damned hard for manager’s to expect that ever single moment at work will be devoted to the code. I expect folks to pepper their work stints with news, music, and what_not as long as what_not doesn’t equal porn. What I’m looking for is a terminal window.

To me, the defining characteristics of my terminal windows are simple:

  • A black background with just a smidge of transparency
  • White, readable font (ProFont, 9 pt.)
  • It has no agenda

That last bullet item throw you for a loop? I’ll explain.

Your average Mac OS X or Windows user will never see terminal or the console because they have no need. The whole purpose of the graphical user interface is to decrease complexity. There are buildings full of well intentioned people who are designing user interfaces bent on making decisions for you because each time you make a decision you might screw up. These designers are intimately aware of the unfair situation whereby a bad decision by you results in blame on them. The customer is always right even when they’re wrong. Ouch. Tough gig.

The end result of the all of their hard work are some exceptional applications and operating systems that have done away with anything resembling a terminal window. That’s good because when your average OS users sees a terminal window they think, “Oh shit, what did I break?”

Not me. Nope. I see Terminal Zen.

Terminal Zen is a feeling. It’s the sense of calm productivity I feel when that big empty black window covers my screen. It’s a sense that all the crap that is the graphical user interface is getting the hell out of the way and giving me primal access to my computer. It scrapes away all that magic the interface folks and exposes the nuts’n’bolts of the OS. You can have a similar experience by grabbing a flashlight and heading under your house. Look around a bit — in a few minutes, you’ll notice that, hey, all your drains go to one exactly one big black pipe that heads into the ground. How amazingly dull. And all that phone wire hanging all over the place? That’s your DSL line.

Not with me, yet? Let’s go back to just after I landed the new design for the site.

Once I published the new site, I promptly fired up three terminal windows. Two windows doing a “tail -f” on my web server’s access_log and error_log files and one utility window. What am I doing? For you non-Unix nerds out there, the tail command lists the last few lines of a file. The -f parameter leaves tail running and lists new lines which are added to the end of the file. By watching new additions to these files, I’m doing real time QA on the new site. I’m looking for bad links, I’m looking for missing files, and I’m watching the traffic as it happens. That’s right. I’m visually parsing the obscure common log format on the fly rather than using one of the many fine graphical tools out there that does that work for me. Why? Because those other programs have their own agenda.

Every well designed program attempts to make decisions for you in the name of usability. They do this by making decisions about what a user needs to see when. They take those decisions and build more and more user interface which, ultimately, simplifies the most common tasks, but totally buries and/or removes access to the uncommon ones. Great interface makes life easier for your target demographic, but great interface almost always makes life harder for power users by obscuring functionality. We’re ok with that. Here’s why:

Think of a great carpenter walking into a furniture store. They see a table they want to buy except it’s got cherry trim… and they hate cherry trim. Now, they can’t buy the table that’s 95% great because they know there is no magic to building a table, so they say, “Screw it, I’m not going to settle, I’m going to build it myself.”

There is no magic.

When it comes to nuts’n’bolts work on my computer, I’m irrationally willing to spend 10x the time to research and develop a tool that has a tenth of the features of an existing product. My willingness comes from the fact I know I’ll experience the joy of creation as well gather invaluable data from the various knowledge excursions I’ll make in support of my building efforts. All of this happens in a big black terminal window. Terminal is my hammer — it is the window within which I can build and see anything.

So, when I walk into your office and glance at your screen and see this big black window, I’m not looking to see what you’re doing, I’m looking to see how you’re doing it. When I see some form of a terminal window merrily chugging away, I think “Aaaaaaah… another terminal nerd. A fellow seeker of Terminal Zen.”

6 Responses

  1. SO true. Most the people in my immediate development circle don’t appreciate the Terminal. But there’s something beautiful about SSHing into a customer’s *NIX machine and debugging a problem while a boss looks over your shoulder trying to figure out how you’re doing it without PCAnywhere (or VNC, for us Mac OS X users.)

    Terminal is a 24/7 application… you’ve just got to have one or more windows open and ready at all times.

  2. Caius Durling 19 years ago

    I know what you mean about just getting to the bare *NIX and just doing it yourself.

    Much more rewarding to ssh into my site and change things, write pages, add code (and also faster) than it is to fire up dreamweaver and have that insert the code for me.

  3. ZorbaTHut 19 years ago

    I’ve always wanted to write my Ultimate Interface at some point.

    My Ultimate Interface has one very important feature. It has all programs divided into two categories – Work, and Cooldown. When I push a certain button, every program not in the Work category gets hidden for half an hour. (If I desperately need to get at a Cooldown program for some reason – a family emergency calling me to my IM program, for example – I’d have a way of disabling the lock. But it would probably involve solving a few logic puzzles, just so I can’t do it casually.)

    I need the Cooldown period. But I also need to be able to enforce “no games!” when it’s time for me to work. Fifteen minutes or half an hour appears to be my limit.

    Unless, of course, my damn development environment is taking ten minutes to compile and test, in which case I’m doomed. I need to go speed up our build tools.

  4. I just recently started learning PHP, and I can relate to this to an extent. I don’t use a terminal much (yet), but I recently started closing pretty much everything, except for my text editor. For whatever reason, I enjoy producing stuff in EditPlus far more than working in Dreamweaver or Photoshop.

    It just feels more direct.

  5. Ronald Snijder 19 years ago

    The terminal is not only useful for writing code, it is just as good for writing. In the past (10 years ago) I worked with WordPerfect 5.1. A black screen with gray characters, and some color coding for underlined and stuff. Perfect for concentrating on the text.

    Now in the Word era, I find myself fiddling with the layout way too much.

    -ronald-

  6. Gregory Brown 18 years ago

    Wow, that’s exactly what I feel about the terminal ๐Ÿ™‚

    On my laptop, I use XFCE4 with all menus disabled.

    CTRL+ALT+T opens up a terminal with the same mentioned slight transparency.

    Firefox and gaim may hide on other workspaces, but the terminal sits there on it’s own, inviting me to follow MY agenda.

    Great post ๐Ÿ™‚