Skip to content

Caliban – Opinion and Righteous Anger

Ian, Sarah, Eloïse and Lucas kick against the pricks.

I mentioned in a recent posting that I’ve worked my way through quite a lot of window managers in my time, and that the dull but functional Metacity has been my steady friend for seven or eight years now.

The recent acquisition of powerful new hardware inspired me to read up on what modern desktops can now do, given a fast GPU and lots of video RAM. It didn’t take long before I was reading about Compiz.

Actually, I’d heard of Compiz a few years ago, but knew no more about it than that it was a compositing window manager. And that’s all I needed to know at the time, because my video hardware from 2003 would have been instantly brought to its knees by Compiz.

Now, however, I have a machine that is more than a match for what Compiz can throw at it. Inspired by what I’d read and the accompanying screenshots, I installed the necessary packages and fired it up.

At first sight, not much had changed. Everything looked the same, from the title bars of the windows down to the look of the context menu that appeared when I right-clicked on those bars. That’s because my existing GNOME theme was still being applied. Compiz really does just manage the behaviour of the desktop and its windows. Window styling is handled by a window decorator, of which there are a few. I’ll get back to this later.

There’s a lot to configure with Compiz. Be prepared to lose several hours in your first session with it. The way it looks and behaves can be radically altered, so that no two systems running a Compiz desktop need look anything like one another.

Compiz on its own doesn’t do very much. It relies on an architecture of plug-ins to achieve its multitude of effects. One very common such plug-in is that of the Desktop Cube.

Linux users will typically configure their desktop to comprise a number of virtual desktops. The physical monitor can be thought of in this context as a sliding window, displaying only one of those virtual desktops at any one time. My physical desktop, for example, measures 3940×1200, but I have four virtual desktops configured in a single row, which gives me a virtual desktop size of 15760×1200. I could have configured those four desktops to be a 2×2 grid, which would have given me a 7880×2400 desktop. You switch from one virtual desktop to another with a key or mouse combination, which makes it convenient to use each desktop for a different kind of application. You might use one desktop for general work, for example, another for graphics work, another for programming and yet another for music.

That’s how things have been in the UNIX world for a long time. It’s crippling to have to use a computer with no virtual desktop configured. Everything feels impossibly cramped, as if you’ve suddenly had to move all of your belongings into a single room in your house.

Compiz’s Desktop Cube plug-in adds to this facility the notion of a third dimension. Now, I can turn my row of four virtual desktops into the side faces of a cube, adding a photo of my children on the top and bottom faces, for aesthetic purposes. I can still navigate to any particular desktop with the same key combination as before, but now I can also zoom out and get an overview of the whole cube from somewhere in the desktop cosmos with updates to each face in real time. Adding the Rotate plug-in, I can rotate the cube in any direction to view it from any angle. I know it sounds bizarre, but in this way, you can angle the cube such that you can easily see the progress of applications on two different desktops.

If you configure your cube with some degree of transparency, you can even peer through the foreground faces to see what’s happening on the opposing faces, albeit the mirror image of them (because you’re viewing them from behind, as it were), but that’s stretching practicality. It’s better to just rotate the cube 180°.

The fun doesn’t end there, of course. You can configure the Cube Reflection and Deformation plug-in. The reflection part make it appear as if your cube is hovering above shiny glass, whilst the deformation part allows you to turn your cube into a sphere, a cylinder or an oval. I prefer the delineated regularity of a cube, however, as it makes it obvious which desktop each application is on. Conceptually, I find it difficult to think of my configuration of virtual desktops as anything other than a grid of flat surfaces.

Anyway, a picture’s worth a thousand words, so here’s a shot of my cube. You’ll notice there are actually two cubes, one for each of my monitors. Although my monitors are configured to each show half of the physical desktop, I opt for multiple desktop cubes here, because the alternative is a ten-sided cube instead of six, on account of the extra four side faces that have to be squeezed onto a single cube. It’s more logical to me, when zoomed out, to be looking at one cube per monitor, each of which displays the desktops available on that side of the monitor. Clearly, the concept of a cube needs to be taken figuratively when configuring Desktop Cube.

Compiz Cube.

Compiz Cube in action on a dual-headed desktop.

Hopefully, that makes things a little clearer. Here, you can see my general work area, including mutt mail client, on the left-most face of the first cube. On the second face, you can see the Sonos Desktop Controller, running under WINE.

On the second cube, the first face has MythTV is playing the local news on AT5, whilst the second has the latest build of Chromium open at Google Reader.

I want to demonstrate one more plug-in, called Expo. Expo allows you to zoom out on an unfurled representation of your cube. You can unfold your cube using just the Desktop Cube plug-in, too, but you’ll see only as many faces as fit on your display. With Expo, all of your desktops are displayed in a scaled fashion and updated in real time. You can then double-click one to go to whichever desktop you want. Where Expo’s unfurled cube really beats the standard unfolded Desktop Cube, however, is that you can even drag windows from one virtual desktop to the other.

Again, it’s easier to show you a pciture of Expo in action:

Compiz Expo Plug-in

Compiz Expo plug-in in action.

Desktop Cube and Expo are just two of the dozens of plug-ins available to Compiz. Others include Animations, which will allow you, amongst other things, to see your windows disappear in a blaze of flames when you close them. Wobbly Windows will give you windows that do just that: wobble and stretch when you drag them.

What Compiz is to desktop and window behaviour, Emerald is to styling your windows. Using Emerald, you can make your title bars, borders and buttons look any way you want. I won’t go into the details here, because it’s much more rewarding to just try it out, but my window title bars now have six buttons, including buttons for rolling up the window like a blind, making the window stay on top of others and making the window visible across all virtual desktops. The widgets even pulsate when the mouse cursor is held over them.

It’s a common misconception that, if one likes what the Americans call eye-candy, superfluous fluff that eats RAM and CPU time, but is nevertheless visually appealing, one has to run MacOS X or even Windows 7. What’s possible on those operating systems pales, however, in comparison with Compiz. If you pair Compiz with Emerald, you have a degree of configuration at your fingertips that can render your computer unusable by anyone else but you (or even including you, if you’re not a little cautious).

That’s actually no coincidence and therein lies a key reason why free desktops triumph over closed desktops. At the end of the day, Apple and Microsoft want a computer running their desktop to be instantly recognisable, no matter how it has been configured. That’s why they don’t allow you to stray too far from the default, even if you change everything that they allow you to.

Using a free desktop, on the other hand, the world is your oyster. You can choose any desktop environment, such as KDE or GNOME. You can then apply any window manager you want, of which there are dozens. Add a window decorator to the mix, with more themes than you can shake a stick at, and you have the ability to make your desktop look unlike any other.

The major downside of this flexibility is that other people’s computers become very awkward to use, to the point of feeling utterly impractical, because their behaviour is so far removed from what I’m used to. Just having to click on a window to raise it above others is an unacceptable inconvenience when you haven’t had to do so for fifteen years. Similarly, why do I have to hit Ctrl-C in Windows to copy data to the clipboard? I’ve already highlighted what I want to copy, so why doesn’t just the act of highlighting it make the system copy the data in question to the clipboard for me? After so many years of wondering that, the question is almost rhetorical at this point.

Another downside is that the lack of brand recognition that this degree of configuration flexibility provides is part of the reason that domination of the desktop by Linux hasn’t happened as some people expected it to. The Linux desktop has no ubiquitously recognisable face, nor can it be assumed that any two Linux desktops can even be operated by applying the same assumptions regarding keyboard and mouse behaviour.

These downsides are mere annoyances, however, compared to the alternative of surrendering the power to mould your desktop to your needs.

Ian just informed me that he got a bill from the health insurance company.  Apparently his recent operation and hospital stay weren’t paid for by the insurance because he has a deductible.  I immediately thought that it was unfortunate that he’s got the lower plan instead of the higher one that the children and I have and that maybe our reasonably-priced insurance wasn’t so reasonable after all.  He has one of the lowest coverage options because he knows that he’s very unlikely to go to the various voodoo doctors that I favor.

Anyway, I cringed and braced myself for the damage.  The amount?  €146.97.  That’s the entire cost of the laproscopic hernia operation and anesthesiologist (it was a general anesthetic), prep time in the hospital beforehand and about four hours in a bed afterwards.

It makes the €550 that my midwife billed for pre- and post-natal care and Lukie’s birth seem downright expensive.

Once upon a time, as an avid computer user and someone who even made his living in the field of IT, I used to regularly revisit my working habits and make incremental refinements to my methods and the set of tools I used on a daily basis. Over the years, this led to more efficient work practice and a better understanding of how the tools in particular and the system in general functioned.

In recent years, though, I suppose I’ve become set in my ways. I don’t evaluate new software nearly as often as I used to, and tools that I’m comfortable with and have used for years are rarely, if ever, reassessed to determine whether they’re still the best ones for the job.

Hardware isn’t immune from the phenomenon, either. Take the TrackPoint (nipple-like pointing device) on IBM/Lenovo Thinkpad laptops, for example. While most of the mobile computing world has since moved to a touchpad, I still hate the bloody things, because it’s impossible to avoid touching them by accident and they require one to take one’s fingers off the keyboard.

I’ve tried time and time again to adjust to a touchpad, because fewer and fewer laptops are still manufactured with a TrackPoint, but I can ultimately reach no other conclusion every time than that it really is an awful invention.

This choice (which is no choice at all) means that range of laptops available to me is now pretty much restricted to Thinkpads. At least they’re excellent computers, or I’d be left with nothing.

Similarly, even if I didn’t have ideological objections to Apple as a company, which, by themselves, are reason enough to boycott the company, there are the numerous usability issues with both their software and hardware, not least amongst which is their wretchedly handicapped single-button mouse, surely the stillborn child of the input device world. What’s next? A keyboard with a single key? Ovine Apple fans would still lap it up, I suppose, as long as it was shiny and white.

That’s fodder for another posting, however. This one is, as stated at the beginning, about software and working practices.

I once programmed and wrote e-mail in Emacs. After a few years, I moved to Vim, which I’ve been using ever since.

Similarly, I once read news (in the Usenet sense) with TIN, but then moved to slrn, where I still am (although I hardly read news any more).

What about shells? A little know fact is that I was briefly a tcsh user before moving to bash, where I was happy for years until I discovered that almost everything I liked about bash had been implemented in a turbo-charged fashion in zsh. I’ve never looked back.

Window managers have seen more varied use. I started off with fvwm2, but that was too awkward, so I moved to NeXTSteP clone, AfterStep. Then came a brief flirtation with Enlightenment, which was too unstable and unwieldy at the time to truly consider adopting, so I instead moved to WindowMaker, which was basically a slicker AfterStep with easier configuration. I eventually abandoned the concept of the highly configurable window manager and switched, almost incidentally, to the de facto GNOME standard of Metacity. I tried many more along the way, of course, but only the above were used for any great length of time.

By that point, much of the functionality commonly associated with the window manager had been extracted to the wider desktop environment, most commonly GNOME and KDE, leaving Metacity with little more to do than decorate and manage windows. One of the great things about WindowMaker, for example, was its dock. Metacity had no such feature, but GNOME offered a similar feature called the panel. At that point, window managers had all but ceased to be an interesting category of software. I had gone through a series of them, each more heavily-laden with features than the last, to ultimately adopt one that was very lightweight.

Programming languages have undergone similar scrutiny in the course of my computing life. Ten years ago, most of the programming I did as a system administrator was in Perl. Be it number-crunching, analysing log files, parsing text or writing an interface through which two pieces of software could talk to each other, Perl was the tool I reached for.

The nature of the job of a system administrator hasn’t changed much since then, but since 2002, I have been using Ruby almost everywhere that I would previously have used Perl; the sole exception being throwaway one-liners, such as quick text substitution. It’s still hard to beat Perl for that.

Since I stopped working as a system administrator, I’ve had only my own (home and remote) systems and network to manage. I suppose I must have overdosed on technology at some point, because I haven’t felt the need to keep up on new developments over the last four years. Part of that is because of the illusion of free time that retirement has created. I no longer feel cornered into the evenings and weekends by my work schedule, so in theory, each and every day can be turned into anything I want it to be, including a productive day of learning, honing one’s skills.

It doesn’t work out like that, however. Without the constrictions of a work schedule to underscore the precious nature of free time, I find myself putting off until never that which I could do today. I can shove some of the blame onto my children, too, of course, who are a big drain on my time and energy, but it’s a bit disingenuous. My own lack of self-discipline is the real problem here.

There was once a time that I read the Linux Weekly News every week. If I was going on holiday, I’d print it out and take it with me. The rain forests suffered, but my knowledge increased over time.

I used to read the kernel developers’ mailing list, not because I was one of their kith, but to keep up on the direction in which Linux was travelling and to find out what new features were being developed.

When a new release of Red Hat Linux would come out, I would check to see which new packages had been added since the last release and then research each of them to see if any useful new tools had been added. This was guaranteed to expose me to new tools, which often revealed new approaches to old problems, as well as areas of technology about which I was basically ignorant.

Perhaps the most amazing to me now is that I would, on a more or less annual basis, read all of the man pages on the system, to see which familiar commands had acquired new features and options that I could put to good use in my work. It was also a good way of reminding myself of the existence of the more obscure tools available in the UNIX world. You’d be surprised how many talented, senior admins I’ve met who have never heard of tac and rev, for example (which aren’t even that obscure).

The time has come to mend the error of my ways and rediscover some of those good practices.

That’s partially what the migration of the blog from Movable Type to WordPress was about, as was my attempt to teach this old dog new browser tricks with Chromium. Yes, they’re not a branch of rocket science, but that’s not the point, either. The point is to find inspiration again. To make fire, you first need a spark, and I chose browsing and blogging software to be my first pieces of flint. Once that fire is lit and the snowball starts to roll, I won’t just have poorly mixed metaphors, I’ll have momentum, too.

There’s nothing wrong with old technology and working practices. Not all change is progress. On the other hand, it’s important to move with the times and not just cling to the old out of ignorance.

Two site updates in as many days. I’ve been busy.

I’m continuing to get to know WordPress, delving into the guts of the system to understand how widgets, themes and plug-ins work. The more I see, the more I’m impressed.

Sarah wasn’t wild about the new look. I liked it, but she’s probably more representative of the public at large, so I’ve heeded her advice and moved to something that’s less of a departure from the look of the old Movable Type site.

The link to allow subscriptions by e-mail, courtesy of FeedBurner, disappeared with the move to the new theme, so I’ve had to add some code to put it back. In any case, I don’t recommend you use it. FeedBurner updates are but daily, so you could be up to 24 hours behind a posting, if you’re unlucky. You should really be using the RSS feed instead. If you don’t know what that is, go to Google Reader and find out what a news aggregator can do for your browsing experience. I set up Sarah today on Google Reader and she’s quite impressed.

You’ll have noticed that things look a little different today. It was time for a change.

I’d been using Movable Type for many years; more than five, at least.

When I first started using it, it seemed flexible and powerful, but quite complex. For one thing, making changes to a MT-managed site required laborious and error-prone editing of intricate templates. Once one’s templates were edited in this way, upgrades of MT itself became an even more unattractive proposition, as one now had to port one’s changes to a new, probably incompatible set of templates.

This has effectively kept this site running the same version of Movable Type for many years. MT has moved on to version 5.0, but this site was stuck at 3.34, because I couldn’t steel myself to do the upgrade. Everything worked well enough and you know the old adage, right? If it ain’t broke, don’t fix it.

The trouble is that technology moves on. Not only was running an old version of Movable Type an ever greater security risk as new vulnerabilities were discovered, the Web itself had moved on and left this old version of MT for dead. Whereas everything these days works with AJAX, my Movable Type installation was still doing everything with CGI scripts, fifteen year old technology. That’s a lifetime in Internet years.

Another problem was with the Movable Type code itself. Occasionally, it proved necessary to delve into this, but it’s a mass of very complex Perl. I’m proficient in Perl, but it’s not the most legible of languages at the best of times. Where it goes really awry is when the programmer makes heavy use of Perl’s abortive attempt at OO (object orientation). Movable Type understandably, yet ultimately also lamentably, makes great use of this feature.

Aged technology isn’t necessarily bad per se, but in this case, it was bad. MT was designed to use CGI scripts to generate static pages. That worked well in an earlier, more innocent age, but on today’s Web, that approach generates high server load as comment spammers all over the world attempt to add their links for Viagra and Russian dating sites to your pages.

Now, I don’t know how modern the latest version of MT feels or which of these problems have been addressed in which way by the authors, but I didn’t really care to find out, either. Back when I started using Movable Type, it was very powerful and arguably the best of breed. Budding competitors were still busy playing catch-up.

That was more than half a decade ago and there are now some very mature alternatives available. They are also vastly easier to use; I really can’t emphasise how much easier. Tricky template editing has all but given way to drag-and-drop technology, with widgets like sidebar blogrolls and archived entry listings being a mere mouse gesture away from being added to a your blog and automatically configured. Wow.

As far as I’m concerned, the clear winner of the publishing platform/content management sweepstakes has got to be WordPress. I’m very impressed with the design of the system and the ease of use that stems from that well thought out design.

I’ve spent the day getting the new site ready. 95% of the work was accomplished within minutes. The remainder has been, as always, in the fine tuning: installing plug-ins, minor editing of templates, patching up botched data after importation, etc.

There are almost certainly still broken links, but I’ve taken care of the obvious stuff with some Apache mod_rewrite magic. WordPress actually contains a good deal of its own magic to make all kinds of strange links point to the canonical link for an item, so this wasn’t nearly as hard as it might have been.

The new site is really quite simple, but looks good, I think. I hope you agree.

The old site was too busy. Gone are the AdSense banners. Gone is the Last.fm Flash. I don’t want to see Flash in my daily browsing, so why should I make you?

Gone are all of the widgets with links to Amazon. Gone, too, is the obligatory list of links to other sites. In fact, gone, even, are the links to other areas of caliban.org, most of which were only of dwindling historic interest, anyway. One or two of them will find their way back home in the coming days, but I intend to keep the site free of pointless clutter.

Also consigned to the celestial bit bucket is the old mailing list for notification of new blog postings. Instead, there’s a field at the top right of the front page where you can subscribe to e-mail notifications via FeedBurner. A more modern way to stay abreast of updates is to subscribe to this site’s RSS feed in your favourite news aggregator. If you don’t yet have one, I suggest Google Reader as a place to start.

I hope the new look and feel will encourage me to post more regularly. Maybe Sarah can even be drawn out of the woodwork, although that’s probably hoping for a bit too much. She spends most of her time at the computer on Fa(e)ce(s)book, keeping up to date with subatomically trivial events in the life of people she once bumped into in a supermarket. That stuff makes my rants here seem Shakespearean in prosaic value and universal in relevance.

Well, it wouldn’t be me talking if I didn’t get a dig in somewhere, would it?