September 1999 Column

September 1999 Column


[ Site Index] [ Linux Index] [ Feedback ]


Tulip Mania

Once in a while, a country goes completely barking hatstand about some kind of investment, and the result is interesting to behold -- from a safe distance (like about four thousand miles).

Back in the eighteenth century it was tulip bulbs in Holland. Tulips were prized, to the point where a favoured bloom was worth rather a lot of money. Fortunes were made and lost by breeders of plants. The market in tulip bulbs was obviously active, churning over money: this attracted the eye of canny investors, who bought in and sold up and made more money out of the spiralling demand for pedigreed bulbs. At the end of the cycle, some tulip bulbs were changing hands for enough money to buy a house -- when suddenly the market disintegrated. The liquidity was all soaked up; investors realised that all they were holding was a bit of vegetable matter that they couldn't even eat. Like Wile E. Coyote whenever his latest cunning plan backfires, the market collectively looked down, gulped, said "oops", and vanished into the abyss, taking several years' GDP in speculative futures trading with it.

The US stock market has been in serious need of a straitjacket for about five years now. The subject of the mania? Shares in internet companies. It's beyond a joke; anyone can hang up a shingle with the word "internet" on it in the sublime confidence that a crazed horde of armani-suited venture capitalists and investment managers will trample down their door in a mad rush to throw dollar bills at them. To some extent the frenzy is justified: there really is money in the internet, and some projections indicate that e-commerce will account for something like 20% of all economic transactions in America within five years. But the frenzy has created a bubble, whereby inflated share prices attract more money as people try to buy into the market and make their profit.

Now some of the internet frenzy seems to be getting ready to leak into the Linux field.

Wind back the dial on your time machine to 1995: the hot topic of that year's web conference was Java. Java was, and is, a neat-o programming language, sort of like C++ done right. The promise of Java was "write once, run anywhere"; by building a Java bytecode interpreter into everything, you could compile your software and run it anywhere. This was latched onto first by Sun (who wanted to make an end run around Microsoft, who are obsessive about building software that will only run on Microsoft's platforms), then by Netscape (who saw it as a way to turn their web browser into a platform, grabbing the role of the operating system as far as the end user was concerned). From the perspective of 1999 Java seems to have fizzled; it's still around, but the promised huge volume of Java applications hasn't materialized, and Microsoft's attempts to embrace and extend the language (with Windows-specific extensions to Visual J++) have made it look vulnerable.

All of which leaves the industry hunting round for some new hype emitter to chase, like a heat-seeking missile that has lost track of its original target.

Linux now seems to be picking up a lot of the hype that Java came with. The difference is that Linux is here today, and there is a large application base. Java was barely two years old when the hype process began, but Linux is coming up on its ninth birthday. Java promised a cheap robust platform that would run on any hardware. Linux promises, er ... yes, well. Oh, and Linux is known to be particularly good as a platform for internet content delivery (meaning you can run Apache and Perl on it cheaply). None of which hurts.

The first overt flowering of the hype is now in progress. Red Hat have announced an initial public offering of shares this summer (meaning they're going to be appearing on the stock market Real Soon Now); my bet is that they'll follow Netscape's example and nearly create a record, with shares closing on the first day at several times their opening price. Rumours are also circulating about Caldera and VA Research.

If these companies go public and their share prices are boosted by the internet bubble, suddenly the market perception of Linux will be inflated, too. Red Hat are only issuing 98 million dollars' worth of shares, but I'd be surprised if they aren't valued around the half-billion to billion dollar mark by the end of 1999. And the presence of companies of that size in the Linux market will further legitimize that market in the eyes of corporate America, meaning we should see it moving centre-stage in the software business.

A waste of time

I was going to spend half my column this month discussing games on Linux.

Linux isn't a platform you instantly associate with shoot-em-ups and strategy games, but it's not as badly endowed as you might think. While the public perception of Linux as a command-line environment is all very well, a properly-installed set-up with a decent window manager, installed sound support, and various media players is quite a reasonable multimedia platform.

Some people have noticed this. In particular, Loki Entertainment Software have noticed this. Loki is a smallish start-up from California which has acquired the rights to port several successful PC games to the Linux platform. Their first release is a port of Civilization: Call to Power.

Now, I have a confession to make. I'm not a great game player. I tend to use computers as tools, not as entertainment. I guess I am just too old to have grown up with the video game -- or rather, the video games that were around when I was a kid were so crap that they weren't worth bothering with. I don't even dare try a modern networkmed first-person shoot-em-up because basically I know I'll be the meat in the sandwich, or maybe the aperitif; I just don't have the joystick skills to survive. However, I do have an occaisonal soft spot for simulation games like Sim City -- mostly held in check by my steely determination not to give in any lose a few weeks of my life by starting a game.

Now, I can't actually report on Civilization in depth because I'm too busy trying to conquer Gaul. I'm still playing at a very basic beginner's level, and I've managed to get this far without having any violent revolutions, but I have a feeling there are some enemy civilizations out there who I am going to have to deal with soon, so I'm concentrating on raising some legions for that eventuality.

In fact, this column was nearly late because of Civilization: Call to Power. As it is, I am having to waste time that could better be spent exploring Gondwanaland in order to avoid having my campaign cut short at the hands of a chaingun-wielding editor. Such is life ...

Printing

Not many people know this, but Linux probably wouldn't exist if it wasn't good at handling the tedious job of putting ink (or toner) on paper. Back when UNIX was first developed within AT&T's research labs, much of the work was funded internally on the promise of developing a low-cost document editing and typesetting system for the labs. Indeed, UNIX machines were first deployed within AT&T for document processing, back in the early 1970's -- before the personal computer and the modern word processor existed.

When you install a Linux distribution -- just about any of them -- you're installing a print server. You can plug a variety of printers into any Linux box and tell the lpr (line printer) subsystem about them; thereafter, you can rely on this system to maintain queues of pending print jobs for each printer and do various interesting things to them. If this sounds a bit mundane, it's worth remembering that DOS didn't have any such facility; while Windows and MacOS have print spoolers, UNIX had one nearly a decade before those OS's were written -- and can still show them some neat tricks.

The commonest print subsystem today is LPRng -- LPR, next generation. It consists of a bunch of command-line tools and a daemon, the lpd (line printer daemon) which listens for incoming print jobs and controls everything. You configure lpd by editing a file called /etc/printcap -- although most Linux distributions use graphical tools to hide this from you (YAST if you use SuSE Linux, the Red Hat control panel if you use Red Hat, COAS if you use Caldera, and so on).

One neat feature of lpd is that you can tell it to filter all incoming print files through a chain of filters -- pieces of software that reformat the documents in various ways. A virtually universal trick, which all the major distributions play, is to try to turn all incoming print jobs into Postscript, then (if you don't have a postscript-capable printer) to feed them to Ghostscript. Ghostscript is basically a Postscript language interpreter; it reads Postscript files in at one end and generates a graphical bitmap to spit down the wire to your printer at the other. So unless you have a pretty obscure printer (for which there are no Ghostscript drivers) or an ancient daisy-wheel or mainframe line printer, you can usually configure your Linux system to use it as the output side of a colour Postscript printer.

Another pretty handy thing is that the printer doesn't have to be connected to your current machine. You can print to a network printer (as long as it has an internet address), or even to the lpd daemon on another UNIX or Linux system over the internet (as long as it has permission to receive print jobs from your machine -- granted in the /etc/hosts.lpd file -- and recognizes you as a known user). It's also possible (with a little work) to set up a print queue recognized by lpd that feeds documents into a fax server's queue, if you have suitable fax software installed on your system (such as mgetty).

Linux, incidentally, comes with a bunch of tools for manipulating Postscript files. Some are part of the Ghostscript package; ps2pdf, for example, takes postscript files and turns them into Adobe Acrobat PDF files (suitable for transfer to other machines). The very handy mpage filter takes any old text file and turns it into a postscript image with headers and footers -- and can print it two-up or four-up on the paper.

On the Macintosh and PC interoperability side, both the Netatalk (Appletalk server) and Samba (SMB server) kits come with the ability to make a Linux print queue show up as a networked printer to Mac or Windows machines on the same network. All of which means that if you buy a junker 486 with, say, 8Mb of RAM and a 120Mb hard disk, along with a cheap laser printer and an ethernet card, you can configure the '486 to print on the laser printer while making it look like a networked postscript printer to the other machines on your LAN. (All of which will save you a few hundred pounds if a networked postscript laserprinter is something you need.)

The main point to take away from all this is that there are several interacting subsystems that let you turn a Linux system into a print server:

* LPD -- the print daemon, that accepts print jobs and sends them to printers it's been told about

* magicfilter -- invoked by LPD, it turns documents into something that will look pretty on the paper, typically by invoking ...

* ghostscript -- postscript interpreter

* Samba -- the file and print server software that makes this facility avaiable over the network to your Windows machines

* Netatalk -- does the same for Macintoshes.

Note that none of this explains just how postscript files come to be on your Linux system in the first place. Unlike Windows or the Mac, Linux doesn't have low-level print drivers that format documents into postscript; that job is left to any application that actually wants to produce output. (However, if you just want to print straight ASCII text, there's a quick and easy way of getting it out on paper: pipe your file to lpr, the line printer front-end, which will pass it to the lp daemon which will invoke magicfilter to format it up and then print it.)

Linux also comes with a couple of typesetting systems. These aren't DTP packages like Quark or PageMaker; they're command-driven tools which process ASCII files containing embedded macros and turn them into typeset output.

The original UNIX typesetting kit uses two tools: nroff (for output on line printers and daisy wheels and character terminals) and groff (for generating postscript output). You really don't want to mess with these typesetters if you can help it -- they have their roots in 1972, using arcane dot-commands in ASCII files to indicate how text is to be formatted. The original author of their ancestor, troff (short for typeset-runoff) apparently intended to re-write it, making the syntax more author friendly -- but never got round to it (dying in a traffic accident first). The results have plagued UNIX ever since; the system man (manual) pages are prepared using nroff, and if you want to see what the raw files look like you can have a look at some of the files in /usr/man/man1. (I've written books using troff: it's difficult and wholly alien if your idea of a word processor is something like Microsoft Word -- but the results on paper look pretty good, which is why it still exists.)

Most Linux systems also come with Donald Knuth's TeX typesetting system. TeX is a superficially similar system -- it eats ASCII files with embedded commands and turns out beautifully typeset pages. However TeX with the LaTeX macro package is considerably easier to learn and use than roff-type formatters, and more flexible: and if you don't want to learn the commands, there's a rather nice near-WYSIWYG application called LyX which produces LaTeX documents as output. LyX doesn't work quite like a normal word processor -- it's a front-end for a typesetting system, after all -- but once you learn not to treat it like a typewriter it's a great document production tool. (See the Lyx project for more details.) There's also a KDE variant called KLyX, which provides a solid and robust KDE word processing environment while KOffice is under development.

Distributions #5

It's probably time I mentioned SuSE Linux in some detail.

SuSE are a German company who make one of the most solid linux distributions on the market. Having said that, SuSE Linux is a bit of an oddball. Most people either love it or hate it; it's different enough from the more cookie-cutter linux distributions that it's almost like another flavour of UNIX.

While there's a free SuSE demo version kicking around, it's worth mentioning that if you use it you aren't getting anything like the full kit. The boxed set includes a hefty, comprehensive manual and no less than five CD's; you get the feeling that it was put together by Europeans who, unlike their American counterparts, object strongly to dialing up their ISP and spending sixty-two hours downloading large files in order to turn their distribution into a workable system. It's a sad fact of life that, while most Linux distributions have lots of bells and whistles, there's usually at least one program missing that you need to download from the net in order to make it feel like home. SuSE Linux comes with several wheelbarrow-loads more software than you could possibly want to install, some of which is mutually incompatible -- but at least you don't need a fast internet connection and a lot of patience in order to get that all-ship-shape feeling. Select the kitchen sink option in the installer, and SuSE will attempt to grab nearly five gigabytes of disk space then moan because it's got indigestion.

While the installer is quite usable and has a fair bit of help, I wasn't entirely happy with it. This is a personal opinion rather than a professional one; I like to tell software what to do, not vice versa. SuSE's installer is fussy and bossy and insists on you selecting packages to install on a one-by-one basis, while at the same time expecting you to tell it how to deal with the inevitable conflicts between some files from different packages. (Like just about everything except Debian and Slackware, SuSE uses the RPM package format.) Then it goes and reconfigures everything for you anyway. Play with it a bit and it begins to make sense, but if you're used to the RedHat install system SuSE seems unneccessarily complicated and somehow restrictive. On the other hand, it gets the job done -- and once it's installed, it makes it easy to reconfigure everything (via YAST, the SuSE administration tool).

There are some other things that take a bit of getting used to. In general, if you're administering things your first point of call should be YAST -- it's got settings for everything buried somewhere inside it, including network administration, ISDN setup, sendmail configuration, and package management. YAST works in conjunction with some pretty low-level configuration scripts that slide in underneath the usual System V init script system (which drives startup and shutdown), so it's a bit dangerous to edit the rc scripts manually -- though there are copies in /etc, the real ones live under /sbin -- but once you learn to keep your hands off the steering wheel and tell YAST which direction to drive the car in, it works pretty well. The SAX X-configuration program was particularly good; it's not quite as slick as Caldera's installation and setup routine, but it's head and shoulders above anything anyone else has got, and with SuSE's range of additional X servers (which they've ported to support unusual graphics cards) it makes X setup pretty painless.

In use, SuSE resembles any other recent Linux; SuSE 6.1 is based on KDE 1.1 just like Caldera 2.2 (or Red Hat 6.0 with KDE as the default desktop). Unlike the others, it comes with the latest pre-release KDE gadgets as an installable bundle -- KOffice, for example. There are some other nice touches. For example, there's a (licensed) copy of the Open Sound System; choose to install the rpm and it dumps the OSS kit into /tmp, from whence you conduct the standard OSS installation and configuration. This probably makes it about the best distribution in terms of sound card support, out of the box (unless you're lucky enough to have one of the somewhat narrower range of boards supported by Red Hat's soundconf).

It's also possible -- just about -- to configure a minimal SuSE 6.1 system for some other purpose. By dint of much swearing over YAST, we managed to cram enough of SuSE's core functionality onto a 100Mb partition on a junker 486 with 8Mb of RAM to set the box up as a ISDN router -- providing an IP masquerading gateway that routes packets from a local area network out to the internet via an ISDN connection. Not bad software, to turn a twenty-pound flea market PC into a three-hundred pound router ... but then, Germany is a good place to be if you are into ISDN, so it should be no surprise that ISDN configuration on SuSE is pretty well supported.

I have mixed feelings about SuSE linux. On the one hand, it's a heavy, complete, comprehensive Linux distribution with an excellent range of bundled commercial software and good support for some nice hardware add- ons like ISDN and sound cards. On the other hand, YAST is a law unto itself and quite unlike any other system administration tool -- it takes a bit of getting used to. After a couple of weeks of running Caldera 2.2 on one box (at home) and SuSE 6.1 on another (at the office), I'm a bit ambivalent. SuSE seems to offer a wider range of configurable doohickeys and installable thingumabobs than Caldera. Unless you really, absolutely, know nothing about Linux and are desperately afraid of having to install it, it's a toss-up -- with SuSE having the edge in bundled features.


[ Site Index] [ Linux Index] [ Feedback ]