...making Linux just a little more fun!
By Jim Dennis
I skipped my retrospectives article last month, but should be in the regular swing of things again now. So, 100 issues ago, in August of 1995, John M. Fisk published his second issue of the Linux Gazette. He describe the 1990s as a time when "we're supposed to be shallow." In retrospect I suppose it was the a little the fin de sieèle for the 20th century; the "dot com" bubble was that century's swan song.
We start with praise for the "Keystroke-HOWTO" To me this calls to mind the Keyboard-and-Console-HOWTO, the Accessibility-HOWTO and perhaps the Intkeyb (internationalization (i18n) of keyboards using xmodmap and xkb support). The latter of these is quick to point out that modern Linux systems have support for a LANG= environment variable and that his HOWTO is a legacy from older systems.
On the issue of accessibility I had to figure out how to set up sticky keys for a friend of mine years ago; before that HOWTO was written. He'd had as stroke and needed to be able to type with a single hand; the sticky keys features allow one to type [Shift], [Ctrl], [Alt] and similar keys as separate keystrokes which then apply to the the next "regular" key pressed before reverting to their unpressed state. I set up the keys on the left to be "sticky" and the keys on the right to be "locks" (so the right [Alt], [Shift], and [Ctrl] keys would all act as toggles, staying virtually pressed until they were tapped again). Now one might just read the One Handed Typing though my old approach would still work, too. It was done at the console (using the loadkeys command, and in X using Xmodmap).
Linux also supports a few voice recognition packages though the best of these is almost certainly the commercial ViaVoice from IBM. However, there are other efforts out there as described by: Speech/Voice Recognition for Linux, Linux Review: ViaVoice and XVoice: Providing Voice Recognition
Of course on the downside some people, some of the time might still need to read the BackspaceDelete HOWTO.
This same correspondent also offered a hint to users of the old sbpcd (SoundBlaster Pro CD-ROM drives and adapaters). Thankfully all the CD-ROM, CD-R, CD-RW, DVD-ROM, DVD+/-RW/+/-R drives on the market today are ATAPI (IDE) or SCSI. So they just work now.
And finally this correspondent had choice words about the peversity and bloat of EMACS, the atavistic nature of vi and problems running an ELF binary of xemacs. ('95 was back in the transition from a.out to ELF binary formats in Linux --- ELF is executable linking format). A modern Linux distribution would avoid those issues by simply providing packages (RPMs or .deb files). Package management has come a long way in Linux.
John's response referred to the (then upcoming) release of WordPerfect for Linux by Novell (now the proud owners of S.u.S.E.) and Caldera (now known as "The SCO Group" and currently embroiled in a lawsuits with Novell, IBM, Red Hat, Daimler-Chrysler Corporation, AutoZone and others --- allegedly over Linux issues; although each of these cases is really about contract disputes, Lanham Act violations (akin to slander/libel) by SCOG , etc).
I could go on at great length about The SCO Group or about the failure of WordPerfect (which was eventually released for Linux by Corel Inc; but seems to be basically unavailable now).
However, today the obvious responses would be: text editing with nedit for Linux X Windowing System users who don't like EMACS/xemacs and vi/vim, and OpenOffice.org for the word processing and other office productivity operations. At this point there are a significant number of organizations that are deploying or at least evaluating deployment of OpenOffice or it's commercial twin StarOffice on their MS Windows systems. This trend is far more pronounced internationally and is, for many, a transitional phase in a long term migration towards Linux on the desktop.
The next letter was from a user of multiple operating systems. He gave a list of his most important packages:
His only complaint related to data exchange between Linux and NT. Linux can read and write NTFS with the latest Linux-NTFS and even the newer LDM (logical disk manager) features of MS Windows 2000 (and XP Pro).
The old GNU tar utility is almost unchanged in the last several years. However, it's worth noting that the support for ACLs and EAs (access control lists and extended attributes) in the 2.6 kernels means that many system administrators will need to consider updated tools to store, transfer, and restore these additional forms of meta-data. This will be especially true of those using Samba, which support ACLs if they're available. Samba provides filesharing services to MS Windows clients, which is a community that expects ACLs to be available. Luckily the necessary software has been around for a long time; Joerg Schilling's star has been around for a long time and support ACLs and EAs in a POSIX-compliant fashion. star has a number of other advantages over GNU tar as well. (Not the least of which, it can be forced to read past corrupt headers and recover the rest of the files from an archive --- a glaring failure of GNU's version which is not present in the .tar file support in star, cpio, pax, or any other modern utility that can handle .tar archive files)!
In his next article John sang the praises of vim over other versions of vi. While there are still three camps keeping their torches burning in the vi vs. emacs vs. anything but either flamewars, there is no need to fight. De gustibus non est disputandum (there's no accounting for matters of taste).
I personally have been the ultimate heretic in this particular religious war. While I tend to use vim on systems I administer I often use XEmacs in viper mode (M-x viper brings up a superb emulation of the vi interface inside of emacs or XEmacs while still providing access to the many features and modes of the emacs environment.
This is a key point that many people don't understand. emacs is an applications environment which happens to use text editing as its unifying interface. It has mail readers, web browsing, file and directory management (including remote access and file management), and many programming tools (especially features for checking files into and back out from several different back-end revision control systems, and for comparing and merging different revision). When you think of emacs as a text applications environment then you see that the choice of editing modes is less of an issue.
What people don't understand about vi is that it's made for power users who are likely to spend a large part of every day editing text files and scripts on varied and diverse systems. Thus, systems administrators use vi and programmers tend to use emacs.
vim is the most powerful version of vi and supports many extensions and integrates with several scripting languages. One thing that's evolved over the years since LG#2 is vim's syntax highlighting. You can install a minimal version of vim but if you install the full package and run it from a color-capable console or terminal emulator (such as the Linux console, xterm, or rxvt) and enable the syntax highlighting (:syntax on from inside it, or edit your .exrc or .vimrc files) that many of the files you edit are parsed for patterns and the text is set to various colors for different syntactic contexts. For example I'm editing this HTML in vim and all the HTML tags show up in yellow, while main text is displayed in cyan on black (as set by the -fg and -bg options to my xterm. Inside of anchor tags the href= is in green, the URLs are in red, and the link text is in underlined purple. Italics are in inverse video (black on cyan) while bold is in a brighter (bold) cyan, and so on.
In other types of files the highlighting is set according to the syntax of your C, shell scripting, Perl or Python, Makefile, or other code or content. In e-mail and Netnews postings the headers are colorized and "quoted" excerpts are distinct from your responses. In some cases *emphasized* text (that is text enclosed in *s is also set to a bold color. Naturally this is all customizable and extensible. The package comes with a .../syntax/ directory full of *.vim files while are simple scripts that implement all of the parsing and highlighting. Yes, you can use vim to editing these .vim files and, of course, they will be syntax highlighted by the code in the vim.vim file which is one of the largest .vim in my set. There are about 400 of these files on my system — which is just a typical copy of KNOPPIX.
Of course syntax highlighting is a feature of all modern editors. In emacs this would be enabled with the M-x global-font-lock-mode and then the M-x html-mode for HTML files, and so on. Of course all of that magic is hidden in the .emacs file or under the .emacs.d directory in an emacs user's home directory.
The question of GUI vs. text mode text editors comes up frequently, too. Emacs and XEMacs will detect a DISPLAY environment variable and automatically come up in a graphical window if possible. This can be over-ridden with the -nw (no windowing) command line switch. There's gvim which is a GUI wrapper around vim. Amusingly, vi started as a curses wrapper around the ex "extension" to the ed line mode editor; thankfully it's still possible to run vim in ex mode. Rarely necessary but still handy when you really need it (i.e. your terminal emulation and curses support libraries are badly mangled).
In the anything but vi or emacs camp I suggest Nedit. It's simple enough for the most novice computer user. Yet powerful enough that one needn't outgrow its features. Nedit is GUI-only (there's no terminal-mode support).
Personally I still recommend that system administrators still learn vi because it's been available on every UNIX-like system for thirty years. As sysadmins, we are frequently called upon to edit files on new and minimal systems which might not have any GUI libraries or other editors installed. I don't go so far as to push people towards proficiency in ex, but a half hour running through the vimtutor tutorial (included as an interactive wrapper script with the vim package) is an investment that any systems administrator will find rewarding.
He also mentions xcoral, and xwpe as IDEs (integrated development environments). I hadn't heard of them for years, but quick Google! searches shows that they're still actively maintained by their niche communities.
Of course the new kid on the IDE block now is the Eclipse project. This may eventually become the mainstream IDE for Linux and other open source operating systems. However, its fate and future are tied inextricably to those of the Java platform even though the tool can be used in developing any sort of code. In many ways Eclipse seems to be an effort by Java developers to "eat their own brand" and to prove to a broader developer community that a suite of user interface intensive programs written in Java can offer the performance, stability, and native graphical "feel" that's comparable to those compiled from C/C++ and other "native" sources.
The differences between full-featured text editors and "integrated development environments" have always been somewhat blurred. As I've said, emacs is more of an environment (development and for other uses) while vi and nedit tend to be less integrated with the rest of the developer's toolchain. Since they are powerful, extensible editors with scripting languages built-in (or available as plug-ins in the case of vim) they can be as integrated with other tools as anyone cares to make them.
All I can say about this is: Wow! I'm glad I've got a broadband connection! It's not about speed. I only get 144Kbps over my ISDL (DSL over ISDN) line. However, it's always up and running, no waiting for dialing and connecting; and the latency is lower than any modem ever was. Of course many Linux users still need to rely on dial-up and the old PPP package is still well supported. Many users would prefer to use wvdial perhaps with one of its GUI wrappers like QtWvDialer or X-wvdial, KPPP for KDE.
A quick Freshmeat search: PPP lists over a hundred utilities and packages related to PPP. Very few people should have to fuss with custom chat scripts any more and the many other packages can log, generate statistics and help with other aspects of PPP. Thankfully, SLIP (serial line IP) is a fading memory (though there are still 20 packages that mention it at Freshmeat.
While the pine mail reader (MUA, mail user agent) is still maintained and available, many users have switched to mutt. The popclient utility seems to have disappeared completely, though the fetchmail package has taken up the slack. Of course there are many GUI mail readers and the needs of Microsoft Outlook users go beyond simple text mail interfaces. For them there is Ximian Evolution or any of over a hundred others found on Rick Moen's list of MUAs.
Of course all those instructions for building pine from source are generally unnecessary now. Pine is widely available in RPM format and one can find apt-geti-able Debian packages can be with a search at www.apt-get.org. (This is the general way of finding unofficial sources for Debian packages; for programs that aren't quite free enough, or aren't among the 12 thousand packages in the official Debian archive/mirror system).
On a broader level the big issues in e-mail these days are spam and the plethora viruses that infest MS Windows networks and flood my inbox with about a thousand pieces of trash every day. (That is no exaggeration, I get 1000 slices of spam, virus, or erroneous bounce/error e-mail every day). Tools like spamassassin and ClamAV only solve about 95% of that problem for me. Many more tools are available, but deploying and maintaining them gets harder as you intertwine more of them together. Your risks of hitting false positives (blocking legitimate mail) increase as we take more aggressive anti-spam and anti-virus measures.
For years I just "leaned on the [d] key" manually deleting it all. However, I got the the point where I was sure that I was more likely to err out of sheer numbed mind exhaustion than any decent anti-spam tools were out of over-aggressive pattern matching. So now I can't use e-mail at home without spamassassin.
The average Linux user is increasingly less likely to run his or her own mail server. However, it's a battle that professional sysadmins fight every day (and mostly lose). Many users rely on free webmail services such as those provided by Microsoft at hotmail, or Yahoo Mail or the exciting new Google Mail. Also any accounts with AOL, MSN, or other major ISPs will also include some spam blocking features.
I'll continue to suffer the pain of managing my own e-mail, but mostly as an investment in maintaining my skill set for my consulting customers. Otherwise I'd probably just subscribe to an account with IMAP Partners and outsource my mail hassles my friends that run it.
Configuring the X Windowing System is no longer a rite of passage for the Linux newbie.
Mostly I think we can thank the advent of PCI which makes the automated identification of video cards and other adapters in a PC or other computer a simple automated affair. Automatic detection of a VGA monitor's capabilities via the VESA VBE/DDC standards has also helped quite a bit.
But, most of all we can thank the countless thousands of man hours spent by volunteers, on building databases used by read-edid and similar utilities. You might never run read-edid yourself, but the chances are pretty good that your free operating system's installation and configuration tools used that code to make a formerly painful "rite of passage" into a simple routine click of the mouse or tap on your [Enter] key.
Of course most of customization hints in John's article are still valid today. They're somewhat obscure and generally not necessary for someone using the GNOME or KDE environments. However, today's Linux users can still customize X and run fvwm or twm for a minimalist and traditional X-perience.
I don't remember the vgaset utility; I think it was completely superceded by xvidtune. We rarely resort to using that these days either. However, if you should need to use it be sure to read the XFree86 Video Timings HOWTO and the XWindows User HOWTO.
Here also used the dreaded "blink" tag (HTML) in his exhortation for Linux supporters to subscribe to the Linux Journal. I still think LJ is the best printed magazine for Linux; but for my money the most important Linux subscription these days would be online at LWN (though slackers can still wait a couple weeks to see all of their content for free).
As for the old Xaw3d libraries, they're just included with every mainstream distribution and have been for many years. The most you'd have to do is run an RPM command to install them when some other package barked about a missing dependency. (Of course apt-get would just resolve the dependency for you, too). Most of us probably have had it installed on our desktop machines for years and been blithely unaware of it; as it should be with libraries, for users.
Looking over the many links I've included in this retrospective, we see again that UNIX and Linux programs can stand the test of time. John's articles didn't include links to many of these projects, and many of those old links would certainly have been obsolete; but we find that almost all of those old free packages are still available, and maintained.
Of course there are many new packages, too. GNOME, KDE, OpenOffice.org, Abiword, Gnumeric, Evolution, even the ability to run Microsoft Windows programs via WINE and Crossover-WINE, VMWare among others.
Despite all of those advances, I think the most profound effect of Linux and the GNU project has little to do with software!
Early in this column I made a couple of literary references. Perhaps you followed those links out of curiosity, even if you were familiar with idioms like "fin de siècle" and "swan song." These lead to Wikipedia a collaborative world-wide encylopedia. The whole notion of a free general-topic encycopedia which is maintained by anyone with a web browser and access to the Internet was almost unthinkable back in 1995! Now it is not only a reality but almost unremarkable! It has grown over the last five years to include a quarter of a million articles in English (a half dozen of which where initially written by me; and about a 100 of which I've touched at some point or another). There are other articles in many other languages and there are sibling projects such as the Wiktionary dictionaries, for English and many other languages, and Wikiquote a dictionary of famous and notable quotations.
While Wikipedia and it's siblings are probably hosted on Linux (I honestly don't know), and the Mediawiki software package that runs all of these sites is free and open-source software, relying heavily on MySQL, one of the two major free SQL RDBMS (relational database management system) packages – this is not about the software. What is more important is that the information is free and that sites like Wikipedia are becoming an information utility.
Regardless of the software base for Mediawiki it seems that the philosophy of freedom and collaboration is the real accomplishment of the last decade. Even through the infamous "dot com bomb" (and the shallowness that John dismissed with such levity), the social movement of people contributing their work and knowlege in ways that the enjoy survives and seems to be thriving.
Another resource that I used extensively is Google. In fact I used Google to find the latest and most authoritative URL for almost every link I used in this column.
Google is, of course, a commercial entity. They are a advertising medium, just like a radio station or your TV broadcasters. However, they've also become an indispensable utility on the Internet. Linux is a key enabling force for them; primarily for economic rather than technical reasons. Google runs over 10,000 (ten thousand) Linux nodes to provide various aspects of their indexing and searching services.
To me Google is more and more indispensable resource, but Wikipedia is the more impressive accomplishment.
Meanwhile I continue to see articles that try to depict the Linux movement as a war against Microsoft in particular and against commercial software in general. These are journalists that just don't get it. Sure, some participants are motivated by animosity or disgust. However, more of us are simply doing our part to build something that we want for ourselves, and the gyrations of the multi-national behemoths is irrelevant to the degree that they don't interfere with that.
Jim is a Senior Contributing Editor for Linux Gazette, and the founder of The Answer Guy column (the precursor to The Answer Gang).
Jim has been using Linux since kernel version 0.97 or so. His first
distribution was
SLS (Soft Landing Systems). Jim taught
himself Linux while working on the technical support queues at
Symantec's Peter Norton Group.
He started by lurking alt.os.minix and alt.os.linux on USENET
netnews (before the creation of the comp.os.linux.* newsgroups), reading them
just about all day while supporting Norton Utilities, and
for a few hours every night while waiting for the rush-hour traffic to subside.
Jim has also worked in other computer roles, and also as an electrician and
a crane truck operator. Jim has also worked in many other roles. He's been a
graveyard dishwasher, a janitor, and a driver of school buses, taxis, pizza
delivery cars, and even did some cross-country, long-haul work.
He grew up in Chicago and has lived in the inner city, the suburbs,
and on farms in the midwest. In his early teens he lived in Oregon--
Portland, Clackamas, and the forests along
the coast (Brighton). In his early twenties, he moved to
the Los Angeles area "for a summer job" (working for his father, and learning
the contruction trades).
By then, Jim met his true love, Heather, at a
science-fiction convention. About a year later they started
spending time together, and they've now been living together for
over a decade. First they lived in Eugene, Oregon, for a year, but now they
live in the Silicon Valley.
Jim and Heather still go to SF cons together.
Jim has continued to be hooked on USENET and technical mailing
lists. In 1995 he registered the starshine.org domain as a birthday gift to
Heather (after her nickname and favorite Runequest persona). He's participated
in an ever changing array of lists and newsgroups.
In 1999 Jim started a book-authoring project (which he completed
after attracting a couple of co-authors). That book Linux System
Administration (published 2000, New Riders Associates) is not
a rehash of HOWTOs and man pages. It's intended to give a high-level
view of systems administration, covering topics like
Requirements Analysis, Recovery Planning, and Capacity Planning.
His book intended to build upon the works of Aeleen Frisch
(Essential Systems Administration, O-Reilly & Associates) and
Nemeth, et al (Unix System Administrator's Handbook, Prentice
Hall).
Jim is an active member of a number of Linux and UNIX users' groups
and has done Linux consulting and training for a number of companies
(Linuxcare) and customers (US Postal Service). He's also presented
technical sessions at conferences (Linux World Expo, San Jose and
New York).
A few years ago, he volunteered to help with misguided technical
question that were e-mailed to the editorial staff at the Linux
Gazette. He answered 13 questions the first month. A couple
months later, he realized that these questions and his responses had
become a regular column in the Gazette.
"Darn, that made me pay more attention to what I was saying! But I
did decide to affect a deliberately curmudgeonly attitude; I didn't
want to sound like the corporate tech support 'weenie' that I was
so experienced at playing. That's not what Linux was about!"
(
curmudgeon means a crusty, ill-tempered, and usually old man,
according to the
Merriam-Webster OnLine dictionary.
The word hails back to 1577, origin unknown, and originally meant miser.)
Eventually, Heather got involved and took over formatting the column,
and maintaining a script that translates "Jim's e-mail markup hints"
into HTML. Since then, Jim and Heather have (finally) invited other
generous souls to join them as The Answer Gang.