You Bitch!
30th of December, 2024

About

Rube

An Advanced and Magical Blogger at an Unbelievable Price!

Latest Comments

Sturm

Drang

Broodlings

G'scheits - German Blogging

Archives

2003
Mar
2003
Apr May Aug Sep Oct Nov Dec
2004
Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec
2005
Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec
2006
Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec
2007
Jan Feb Mar Apr May Jul Aug Sep Oct Nov Dec
2008
Jan Feb Mar Apr May Jun
Jul Sep Oct Nov Dec
2009
Jan Feb Apr May Jul
2010
Jan Feb Mar Apr Jun
Sep Nov
2011
Jan Oct
2012
Feb Jul Sep
2013
Jan Apr
2014
Mar
2015
Jun
Nov Dec
2016
Jul
2021
Jun

2023
Jun

2024
Jan

How to Fix It..?


Why is it that under Linux, in this year of our Lord 2005, Firefox still hangs when XMMS is running? Why is it that all my CUPS print queues are named lp-something, with the comment ‘configured by redhat-printer-config-0.6.x’, when I’m not running Red Hat, but Fedora Core 3? Why is there still no way to reconfigure X11 without restarting it? Why is all this a problem, when Linux is supposedly the most advanced operating system evar?


Well, because Linux isn’t really the problem. Linux is a kernel. It works pretty well, all things considered. Firefox isn’t the problem either, nor is XMMS. Firefox hangs because XMMS has the sound card open, and some browser plugins really don’t like that. Apparently they don’t teach people to thread around blocking calls in programming class any more. The problem is integration, and it exists in Linux because people are so busy tossing out cookie-cutter distributions that nobody thinks about actually making sure their shit is usable.




The open source community has given anyone looking to build their own desktop a huge head start. There are building blocks for every aspect of system functionality, but there still isn’t anyone who’s tied them together into a free desktop without making a huge mess of things. Consider the following open source software projects:


• CUPS

• Samba

• Apache

• X.org




These are system-level services that are useful on any desktop. One interesting tidbit about these packages is that they are simultaneously available on the world’s most usable operating system, Mac OS X, and the world’s least usable operating system not written in Brainfuck, Linux. The difference between the two is only in management complexity. OS X has a preference pane which controls basic configuration options for Samba, CUPS, and Apache. With Linux distributions, virtually no work was put into making sure these programs are either easily and consistently configurable or even installed with sensible defaults. They just took the things, made RPMs out of them, and tossed the steaming pile out the door. Otherwise, there’s no difference between the platforms’ implementations of these software packages.


Well, there is one thing: X11. X11 on Linux is a dinosaur, and is the single biggest impediment to a good free desktop. There’s been some progress made after the implosion of XFree86, but the initial spurt of activity seems to be over, and we’re still editing XF86Config and restarting eighty times just to get the fucking mouse-wheel to work. Except now it’s called xorg.conf, but don’t let the name fool you, it sucks just as bad. X11 on the Mac, on the other hand, just works, as we’ve come to expect. It’s not made by X.org, and is not a fork of XFree86 as far as I know.


For a while, I was convinced that Linux’s problem was the sheer complexity of the installations out there today. I’ve got a Fedora Core 3 server in the office with 799 RPMs installed. A server shouldn’t need that many, in my opinion. I mean, really, what do I need X11 and gnome-print for if neither X nor Gnome are on the server? It’s irrelevant, really. The problem isn’t the complexity of the distributions, at least not directly. It may seem like an insurmountable job for the distribution’s builder’s just to make sure everything works without crashing, let alone actually trying to get any of the own software written that may make something useful out of the 4-gig ‘basic’ installation.


So maybe, just maybe, they should just start with a base package of the kernel, and nothing else. Tack on an FTP client. Make sure it works correctly, test it a bit. Ok, now let’s take a look at those building blocks.


CUPS


I’ll admit, I was taken in at first by this article on CUPS’ usability problems. CUPS does fail to provide a sensible printing environment for users who just want to print, which would mean most of us. Then I thought about the fact that OS X uses CUPS without the problems this fellow had. In fact, the CUPS problems I’ve had using OS X only showed up when I was using a Linux machine as a server. Under Linux, I still have absolutely no idea which driver I should use for my HP Deskjet 930c. There are about 50 different drivers called ‘New Deskjet 900-series’ in the configuration pages, and some foomatic things, and then there’s some gimp-print drivers that almost sound like what I need, and all the ones I’ve tried out to this point provide truly shitty output when printing from a CUPS client, be it OS X or Linux.


Connected to the Mac, it just works, and OS X filters the printer drivers in some way, so that the correct printer driver is easy to find and provides good-looking output. So, the CUPS system itself is not the problem. It needs a management UI, which should be provided with the distribution, and it needs to be installed with sensible defaults. It’s my LAN, I want to print to that shared printer, OK?


Samba



I’m comfortable configuring samba from the smb.conf file, but aside from changing the server string and the workgroup, there’s nothing to see here, move along. Build a start-stop applet, and put it where I can find it.


Apache


We’re trying to build a networked desktop here, so let’s just make another start-stop button for this thing. Some sensible defaults, like user-directories enabled, run on port 80, and show directory listings, don’t follow symlinks, you get the picture. Ok, we’re moving now!


X.org



This is really hopeless. There are no sensible defaults, because of the wide range of graphics hardware and input hardware out there. This is the most basic piece of a GUI-based system, and it’s the weakest point of integration in any Linux distribution I’ve ever installed.


I’ve never seen a customized or enhanced version of X11 in a Linux distribution. Have you? There are no effects or enhancements that don’t come first through the CVS at X.org, which is a rocky, bare, and lethargic place just like its predecessor at XFree86. I’m not sure how well anyone can create management tools for X.org, but maybe somebody out there will one day make a xorg.conf-editor that actually works half as well as the display properties dialog in Windows XP.


Once we’ve got these 3 elements & 1 albatross working stably, Linux will actually be ready to move into the user applications level of integration. That part should be easy.

Comments

Toejam

Wow, great post. I really have words to add to back you and words to well...let's just say, "play the Devil's advocate" to a certain degree. Sadly, I'm too damn tired (just got off...off work that is.)

One real quick "play the Devil's advocate" is some of these config woes are distro specific. I'll add more to that statement later, but for now I'm off to bed. Wouldn't you know that it looks like it is shaping up to be a really nice day here in Germany today and I'll be sleeping through it

zonker

Really good post, Rube.

Leave a Comment

    • This field is required.
    • This field is required.
    • This field is required.
  • Comments use Markdown syntax. HTML may be stripped. Preview is your friend.
  • Akismet