News
Features
Guest Essay
Technicalia
Security
Community
Commentary
Home

The View from the Desktop

On the importance of personal Linux gurus

by Dennis E. Powell


On my desk, atop the pile of stuff that usually occupies the area to my right, is a wonderful book, PHP and MySQL Web Development. It cost a penny shy of fifty bucks. It is 866 pages long. It is complete and even understandable. Even by me.

I have the book, but I do not have the time that it deserves. Nor would enough time to read this fine book impart in me the knowledge that it contains. There are those, no doubt, whose memories are so marvelously photographic that they could read such a book and promptly get about the task of writing good PHP code. They are few, and I am not among them. The very limited number of things I know in Linux I know pretty well, not from reading about them but because I've done them, usually over and over. Like the grassless paths through playgrounds -- at least the ones that still have grass at all -- the mind seems to wear grooves in itself that lead the way. The more those paths are used, the better a guide they become.

That's why standards are important. Especially standards as to where things are located and how they work. When IBM cooked up its Common User Access standard as part of its Systems Application Architecture initiative, it was a good thing. It proposed that wherever possible the way a user controls an application should be constant from application to application. That way, someone proficient in one application would be a step ahead in using a different one. The features would obviously be different, but that familiar menubar would be there, and that which you didn't know you could learn more easily. Anyone proficient in Microsoft Word 4.0 for DOS who was suddenly forced to do work in a shop where WordPerfect 5.2 was employed knew only one thing intuitively: there was a crying need for such a standard.

Linux is getting better and worse insofar as standards go. KDE and GNOME are pretty easy to figure out, and if you know one -- and aren't eager to do a whole lot of extreme customizations, which admittedly eliminates a lot of us -- you'll probably be able to figure out everything you need to know. A lot of the other desktops, for all the delightful features they offer (bloat control being chief among them), tend to be less standardized in the way they do things.

Diving a little beneath the surface, Linux desktop and application configuration files, as well as many data files, have traditionally been editable in anything capable of handling ASCII text. This began when there was no reason for them to be otherwise. It continued through the first generation of Linux GUIs -- in no small measure, probably, because nobody was all that interested in writing graphical configuration programs and, anyway, Linux was nice and geeky until recently. There was a nifty little challenge in opening the configuration file and writing a drawer for the AfterStep application launcher panel back in early 1998, then saving the file, restarting the app launcher, checking to see if the drawer worked and being delighted that it did (or checking very closely if it didn't), then going back and using the text editor (always the wonderful NEdit around here) to populate that drawer -- no drag and drop back then. Even more recently, just about everything could be sorted out with an editor, either from a GUI desktop or from the console.

Speaking of the console, let's dive a little deeper still. There are many very powerful console applications for Linux; the problem is, no two of them behave the same. The CUA that became a standard in the text-based DOS world was never translated to the Unices. My belief is that two things, and two things alone, gave Linux the reputation for being difficult to use. The first is that the filesystem is different from that which refugees from the DOSrivative world had come to know (and before you fire up your email program, let me note that while the idea of multiuser systems was new to them, the idea of hidden and read-only files -- the latter in Linux being everything outside of ~/ -- was not unknown to these users, and is a function of the filesystem, is it not?). The second, and in many respects the more important, is the inscrutability of Linux console applications. There are exactly two that Redmond refugees have a chance of figuring out: Midnight Commander and pico. Pico, because it was often as not the text editor employed on BBSes for posting and responding to messages online (sadly, it is thusly known to a decreasing number of users, because a decreasing number of users ever knew the joys of local BBSes). MC because it is in my view one of the best applications ever written for any platform anywhere ever. Miguel de Icaza is thought of as the father of GNOME, and the holder of controversial and thought-provoking opinions, and perhaps when the history is written that is how he will be remembered. But if the Swedish Academy ever decides to award a Nobel Prize in software, I'll be nominating him for Midnight Commander. He probably should have called it "Swiss Army Commander," because it does so much. It's arguable that there's nothing it does that something else doesn't do better, but it does everything essential competently. More important, someone who has never seen it before can figure it out. It's not CUA-compliant, and unless you have gpm running you actually have to read the controls and hit the actual keys, but put it cold in front of someone and they'll soon be doing useful stuff. Try that with vi or emacs!

But I digress. In fact, I digress twice, so now let me write my way out of the first level of digression: standards. As Linux has gotten better in some desktop standards, more or less, and while its console applications have been all over the place but at least aren't getting any worse (as if they could), distributions have decided, virtually without exception, that they're going to eliminate the possibility of anything like a standard Linux, the LSB be damned. Caldera used to put out a distribution that was nicely straightforward, but they withdrew from the retail market, and while they do still package a distribution that you can get, sort of, they've gone all goofy in doing stuff such as substituting grub for lilo (hint: the garden store sells things for grub eradication). SuSE actually punishes people who know their way around a fairly standard Linux: their anything-but-flawless configurator overwrites changes you've made in configuration files; worse, configuration files in /etc are often as not overridden by files in some nutball alternative configuration subdirectory, such that setting environment variables in /etc/profile no longer always works. Red Hat, of course, does what it damn well pleases, but they're off chasing the enterprise anyway; unfortunately, that means that they can cobble together all sort of de facto standards away from prying eyes, their market share being to Linux what Microsoft's is to everything. Mandrake is Red Hat made worse in some ways. Debian is, well, Debian; Nick Petreley has proposed that every distribution settle on it for base Linux, and I half agree with him, if for no other reason than such a move would send the people making a lot of these goofy forking decisions to the roof, where they'd jump and maybe twist their ankles -- Linux publishers generally aren't in tall buildings. Gentoo shows enormous promise but for the fact that they reinvent too many wheels and things like the LSB and the FHS have little apparent bearing on what they're up to. There are those who would argue that this is all just fine; from a user level, those who would make that argument are dead wrong.

The net effect is that "knowing Linux" is now a phrase that is either distribution-specific or an order of magnitude more difficult. Even the experienced user who is familiar with nifty configurations is increasingly likely to run afoul of distributional "friendliness."

And with that we get back to the excellent book I bought and the subject of gurus.

I got a nice note the other day from a fellow who works in a Microsoft shop, is an MCSE, and who wants to use Linux. He had tried distributions that had shipped on CD with magazines, and he'd been flummoxed. What distribution, he asked, would be a good idea? More important, he asked what mailing lists would be friendly to someone who had knowledge of computers but was unsure as to how much of this knowledge would translate to Linux. I offered some suggestions on both counts. And in the clear sight of restospection, I realize that I misled him. The right answer, of course, is for him to find someone knowledgeable in Linux and to use whatever that person is using. A guru.

Because there is nothing more important to the new user than someone on the other end of the phone line, someone willing to endure a whole collection of seemingly clueless questions, someone willing to make the new user's success a leading goal.

I've had such a person for years now. His name is Bob Bernstein, and let me tell you just how dedicated to my success he has been. The very first week I installed Linux I announced my intentions on an OS/2 mailing list of which we were (and are) both members. Two days went by, and I had not been heard from. Bob and I had never met -- now, years, later, we still haven't met, though he was technical editor of a book I wrote (and before you rush out and buy it, note that it's about KDE 1.x; it's amusing here and there, but largely obsolete) -- anyway, though we'd never met he went through a lot of trouble to track down my phone number and call me to see how things had gone. He got me online with Linux and stayed with it. He made it his personal project that I not just get Linux working but understand what I was doing. If he cursed his having talked me through getting that old XFMail working, he never made it apparent to me -- and he had good reason, because I pummeled him with questions. All of which were answered with good information.

Over the years, he's remained my guru. In some areas I've jumped ahead a little, largely through some strange pursuit of interest to me but not him -- say, making OpenGL work properly. Even today, though, when I'm trying to sort something out the note goes to him. He's my guru and no, you can't have him.

But as I noted at the top, no one can know everything Linux -- anyone who did would be devoid of an actual life. Bob is a tremendous friend -- to this day, if I've not been apparent online for a few days he phones to find out if there's been some technical problem, and we've discussed all manner of philosophical issues; he once published an article saying I was full of it. (He would be amused to note what SuSE does with /usr/local when one installs Apache!) But, as I realized as I delved into the book, the mastery of Linux involves a succession of gurus. The guru network, if you will. The old saying was that it's not what you know but who you know. I'd change it -- it's not who you know but what who you know knows.

I don't know any PHP geniuses. For the first time since Bob phoned lo, those many years ago, I get to learn something entirely on my own. It involves a world of new notions, new concepts, new -- dare I say it? -- paradigms. If I succeed, you'll see it on Linux and Main. And, I hope, like it.

If I fail, you'll see it here, too, probably. And the phone will, probably, ring. And Bob will have dived into a whole new field, just to sort me out.

There is no publishing equivalent of the dedicated guru.

Posted 27 March 2002