Category Archives: Linux

Articles about Linux.

tkCVS 6.0

Introduction

If there are any regular readers out there, you may recall that one of the first reviews that I did was of tkCVS. The more astute of you will have noticed that recently it has vanished. Somewhat ironically, I managed to delete it while using my ‘mirror’ program and didn’t have a copy held safely in a backup or version control.

If this has taught me anything, it’s that CVS, although very powerful, is not very easy to use. If it was, to use a cliche, as easy as falling off a log then I would have had no hesitation in using it. However, it’s not and I didn’t.

What is it?

First, what’s CVS? It’s an advanced client-server version control system. Unlike many other systems, CVS works with entire projects or directories rather than just individual files. It also allows many users to edit the same files and merge the changes back together later.

However, with twenty-four commands, each with a large number of options, CVS isn’t exactly what you’d call easy to use. (Since most people don’t bother with configuration management at all, this extra hurdle can’t help.)

tkCVS is a much needed TCL/TK-based front end.

In use

First impressions are good. tkCVS looks good. A menu is at the top of the screen, a tool bar is at the bottom and in the middle is a list of the files in the current directory. On the left are the filenames, on the right are their status: ‘ok’ if the file is up to date, ‘????’ if the file is not controlled and ‘{Locally Modified}’ if your version is newer than that in CVS. (I assume that there’s also a ‘modified by someone else’ descriptor, but since I used this on my own single-user machine, I didn’t test this functionality.)

All very straight-forward.

Marginally less straight-forward, now I come to look at them, are the buttons on the toolbar. Sure, they look decorative, but you can only find out what many of them do by waiting for the tool-tip to appear. (Having said that, I’m not entirely sure what a suitable icon for ‘re-read the current directory’ should be. They’ve used a pair of glasses.)

tkDiff

Bundled in the same archive as tkCVS is a graphical ‘diff’ program called tkDiff that’s worth, if not a review of its own, at least a mention.

It does just what it says. Given two files, it finds the difference between them and highlights the differences in various colours. You can flip between the differences using Next and Previous buttons, which is useful if you’re used to the standard GNU diff.

Best of all, it’s integrated with tkCVS allowing graphical diffs between different versions of the same file. However, although it’s easy to get a diff between your copy and the latest copy in CVS, it’s not entirely clear how to get a diff between versions in CVS or your copy and an older version.

Conclusion

Like many TCL/TK applications, it looks good but falls down on its implementation. The UI, although infinitely easier to use than the CVS command-line, is not quite as intuitive as it could be, and there are a number of glitches and bugs.

Fortunately, these glitches are just that. They are annoying but don’t get in the way of what is, fundamentally, a sound program.

UAE 0.7.6

Introduction

On the subject of emulators, there are two main factions. The first says that they are a good way of using all the software that you had for your previous computer when you upgrade. The second say that an emulator is a sure sign that a platform has no software. Why, they say, would you have an emulator if you could get as good or better software for your new machine? (They seem to forget that there are loads of emulators for DOS and Windows.)

I was first introduced to a useful emulator when I still had my old 386. A 386 has roughly enough power to run Sinclair Spectrum software at full speed. This was great: I could bring Bomb Jack, Manic Miner and Nebulous with me! And I could save levels and I could load complete games in a split second rather than ten minutes. The emulator was better than the real thing!

But my Amiga software just sat in the box. I had no way to bring that with me. Until now. PC’s are just about getting to the point that they are able to emulate and Amiga at full speed (and if they’re not then I can run them on my HP K box at work!).

Installation

The long and the short of it is that I’m lazy. If I can download an RPM archive of a program, I will. It’s not that Ican’t build programs — most work days I’m up to my arm-pits in C and Makfiles — it’s just that I want to use a program straight away. Okay, that makes me impatient too.

I’ve not been able to find an RPM of UAE, so I downloaded the latest stable version I tried to build it. Normally these GNU ‘configure’ scripts are straightforward: type configure; type make; and everything is ready. Configure usually goes away and finds the various bits and pieces without any trouble. The UAE configure script, however, couldn’t find my GTK library (I have the correct version according to the documentation) and it couldn’t see that I had the SVGA library, and the DGA support, which it did find and claimed to be using when I started UAE up, didn’t give full screen support.

So to summarize, I couldn’t get a nice user-interface and I couldn’t get full screen support in console or X. I wasn’t impressed.

Does it work?

It shows how long ago it is that I used a real Amiga. Like all the various kinds of memory that a PC can have (EMS, XMS, conventional, high), the Amiga has a number of different types too. I used to be able to remember all of them, what they are, what they do and why they’re there — on both the PC and Amiga — but I can’t now!

That’s to say, some of the programs that I couldn’t get working might, in fact, work fine if you can get the right combination of memory and video settings. This isn’t a criticism of UAE as such, more of the Amiga. It might be possible for the UAE team to add hints, though. (I never programmed my Amiga much, so I don’t know whether that would be possible.)

But I did have a number of successes. Workbench 1.3 seems to work fully (I’d forgotten how bad it looked), as does AmigaBasic and Deluxe Paint. With the windowed version of UAE, it is normal to have the Amiga mouse-pointer being completely independent of the X pointer. I find this annoying, but you can switch it off.

Perhaps more impressively I managed to get some games working. Arkanoid 2 works flawlessly; International Karate+ seems to work okay, albeit from the keyboard; Populous ran; as did Pacmania. However, all ran somewhat slowly. Arkanoid was fine unless the sounds was switched on. This slowed down the game, and the sound kept breaking up. Probably the worst was Pacmania, which was far too slow. The documentation does warn that some of the scrolling effects are the most processor intensive, and this is obviously the problem here.

As I mentioned before, there were a number of games that I couldn’t get working at all. Chase HQ gave me nothing more than a black screen. Rampage crashed. Paperboy didn’t work. Simulacra didn’t start. Maybe these will work if you twiddle with the memory settings?

In use

While it’s true that the performance and sounds problem can be overcome by throwing extra hardware at it, I think it’s fair to mention that most games are unplayable on a mid-range Pentium (120). Many application are probably okay, maybe even faster than the real thing, but I can’t see why anyone would want to run Amiga productivity software on a PC. Microsoft Word or LyX would be far better than anything on an Amiga.

UAE is supposed to come with a GTK-based front-end. I never managed to get this working, so all I was left with was the command line. This left no way to switch disks — they are emulated by files on your hard-disk — after the emulator had started, and no way to edit display or sound settings without resorting to obscure command-line directives.

Overall

I get the feeling that the UAE team may have bitten off more than they can chew. The Amiga was always considered a powerful machine, and trying to squeeze it into a ‘well behaved’ operating system like Unix was always going to be difficult. (One of the best Amiga emulators, Fellow, runs under DOS which is a far better option. There’s no chance of you being preempted by another process or user and you have full control over the screen.)

Maybe I’d have been more impressed if I’d managed to get the user-interface and full-screen mode working. And maybe I’d have been more impressed if I could install Linux on my PII at work. But I wasn’t and I haven’t, so, for now, I’m going to leave UAE well alone.

Linux 2.1.131

Introduction

It’s a long time since I used a development kernel. In fact, I don’t think I’ve ever just downloaded the source and built it myself. The last time I was on the cutting edge, it came as part of an installation of Slackware. I think it was 1.1.59, and seemed to be no less stable than the real thing. So maybe it’s a little surprising that since I moved up to a Pentium I’ve always stuck with the stable 2.0.x series?

Not really. I’m a coward, firmly fitting into the ‘if it ain’t broke, don’t fit it’ mould. Not only was I on a faster machine, but 2.0 was faster than 1.2. Why would I risk breaking things for a few extra percent?

In a sense, I think I was right. But I’m getting ahead of myself, let’s get the thing installed…

Quick Aside

I expect that most people reading this will already know about Linux’s version numbering conventions. If you fall into this category, you may as well jump to the next section.

If you’re still with me you may be wondering what all the fuss about Linux 2.2 is and why there aren’t any Linux 2.2 betas.

The reason is simple: way back when Linux 1.0 was released, Linus Torvalds decided that all stable, ‘release’ versions would have even version numbers. In the case of release 1.0.9, ’1′ is the major version number, ’0′ is the version and ’9′ is the patch number. Since ’0′ is even it is considered a stable, usable by ‘normal’ people version.

The version I tested was 2.1.131. ’1′ is odd so this is a development kernel, usable by people that are prepared to accept the occasional glitch. Note, however, that the kernel is now in a ‘feature freeze’ which means that only bug-fixes are being added. Put another way, even this development version should be, and is, fairly stable.

Upgrade

Linux sits very much at the heart of your system, and any upgrade to it shouldn’t be taken lightly. That’s why, for pretty much the first time in history, I took a look at the documentation.

make config ; make dep ; make clean ; make zdisk ; make modules ; make modules_install

What could be easier?

Well, after being cushioned by using RedHat for a number of years it was a little confusing to be expected know which options I needed to set. Nothing I couldn’t deal with — and nothing unexpected — but I just want to make it even clearer that this isn’t something that someone who has difficulty installing a Windows 95 application would want to do.

I must confess, however, that it wasn’t as difficult as I’d expected. It only made me happier when I rebooted my machine and it started, apparently, without problem.

In Use

In use it doesn’t feel at all different to 2.0. Running some unscientific benchmarks I find that it is, indeed, slightly faster and it does use slightly less memory, but I don’t think that’s the point. The point is that it now runs on even more machines, from i386′s to Acorn Archimedes, in even more configurations, from SMP to X.25. The point is that it now optimizes for many of the Intel compatible CPUs and handles many of their bugs.

However, it’s not all rosy. The PPP daemon from RedHat 5.0 doesn’t work out of the box. You need to download and compile a new version. I found this more difficult than building the kernel! (The problem was that it expected to be built at /usr/src and failed anywhere else with screens of not very obvious errors.)

And I’ve not managed to get my 64AWE Gold working yet, either. This is more laziness than anything else, the instructions look fairly straight-forward.

More seriously, one of the main new features seems not to work on my machine: the graphical console drivers. Normally this wouldn’t matter too much. I spend almost all the time in X anyway, so some memory uselessly set aside just for the sake of being cutting-edge is not really worth it. However, one main benefit of the graphical console is the Tux logo when Linux is booting…

Actually, it is useful. It means that there’s a standard interface across all Linux platforms, from i386 to SPARC. But not, apparently, if your video card doesn’t support the VESA 2.0 standard. I would have thought that this is relatively rare. My machine is less than three years old but only supports VESA 1.2.

Other bits and pieces

Looking at Joseph Pranevich’s excellent “The Wonderful World of Linux 2.2″ in this months Linux Journal (December 1998), it would seem that my ‘aging’ hardware is unable to take advantage of most of the fancy new stuff.

For example, if you have a multi-processor box, 2.2 will work much better. There’s improved support for non-x86 architecture machines and there are optimizations for non-Intel x86 machines, too.

Overall

The new development kernel is smaller and faster than the current stable version and still appears to be rock solid. I’m not sure how the development team keep managing it when the millions of dollars that Microsoft invest seems only to increase bloat.

However, the features that have been added seem to be there to please ever more niche markets.

In summary: the best has managed to get even better.

WindowMaker 0.20.0

Introduction

I remember when I was at school I sometimes got bad grades when writing essays. This, the teachers claimed, was because I’d used an unconventional structure. Rather than start with an introduction, continue with the discussion and finish with my conclusion I’d often start with a rather long introduction, which included my view, and then argued my case in the rest of the text. I guess it weakened my argument a little to do it like that, but people did remember it!

I’ve still not learned my lesson. One of the first things I do with the review — not quite an essay but along the same lines — is say that I think that WindowMaker is the best window manager that I’ve used. In fact I like it so much I’m seriously considering changing from AfterStep, the window manager that I’ve used practically since I had a PC that could support X.

What’s so good?

Superficially WindowMaker is not that different to AfterStep. That could be part of the reason I liked it so much. (And after my disappointing experience with the new version of AfterStep last week I was most definitely open to suggestion.) Just like AfterStep and the NeXT, WindowMaker has a dock, or a wharf or whatever you want to call it, down the right hand side of the screen. This time there is also a paper-clip icon in the top left of the screen. This is WindowMaker’s method of moving between its virtual desktops. It’s a lot less fiddly than AfterStep’s mini-map but only slightly less intuitive.

Windows are handled in, more or less, the same way as AfterStep, they even look similar. The title bar is nicely gradiated, the top left has the minimise button, the top right has the close gadget. At the bottom of the window is the resize bar. A nice touch is the ‘technical drawing’ lines that are used to show where and how big the new window will be. It’s good to know that an xterm is eighty characters wide.

So far we’ve found that WindowMaker and AfterStep are pretty much the same. It’s when you try and configure things that the differences appear. To add an icon to the AfterStep dock you must open a text configuration file and try and interpret the syntax. Not hugely difficult, but someone used to Microsoft Windows isn’t going to be too happy. The WindowMaker method: open the application you want to dock; drag one of the icons, the one without the title at the top, to the dock. That’s it.

Unless you’re just skim-reading, you should have found something odd with the last paragraph, even if you ignore my English: “…drag one of the icons…” An explanation is in order here. WindowMaker does not just have an icon to indicate that an application has been minimised. If you launched a program any way other than from the dock then you get an extra icon, just as if you’d minimised the window but without a title at the top. Until I figured what it was for I was incredibly confused! The first one is the application — use it as you would in any other window manager. The other can be dragged to a dock. It’s a waste of screen real-estate and I can’t help but think that there must be a better way of doing it.

Other configuration parameters are also handled graphically in WindowMaker. Try to change some of the colours, or the backdrop or any other parameter in AfterStep and it’s back to the configuration file. WindowMaker has a very nice WindowMaker Preferences Utility to allow you to change them all graphically. I’ve not had the need to dig into the GNUstep directory yet it’s so complete.

The Verdict

If you don’t know that I’m impressed then you just haven’t been paying attention(!). While there are faster and smaller window managers, WindowMaker is small and fast enough. It is also very simple to use — it’s one of the first free window managers that doesn’t insist that you edit large and complex configuration files — looks superb and is fully functional.

And finally, despite dire warnings that it’s still beta software, it seems to be more stable than many commercial applications. (I only had one glitch: I loaded Netscape once and WindowMaker vanished and twm took its place. I have no idea what happened there!)

LyX 0.12.0

Introduction

When I was at university, a software engineering class had a huge argument with a lecturer. It wasn’t about any high flying computer science ideal, just how people do their word processing.

My lecturer maintained that people were interested in the text and the text alone. People should be willing to use standard text mode editors to lay down the text and then use a text formatter such as TeX to print it. The text and the formatting, she said, were completely separate.

Most students in the lecture agreed that while, say, Emacs could handle much larger files than Microsoft Word, most people were unprepared to hack around with command lines and obscure key-strokes just to write a letter. Most ‘normal’ people agree with us.

Unfortunately, the former approach has many advantages when writing long, structured documents. What we could do with is a compromise. What You See Is Almost What You Get perhaps.

LyX, as you may have guessed, is just that compromise.

What does it do?

In short: long documents. Okay, it’s quite happy letting you edit a letter, in fact it comes with a number of templates to allow you to do just that, but this is not what it excels at.

To test out LyX, I converted a long document that I’ve been using Microsoft Word to edit until now (don’t get too excited, this was a manual process!). Word wasn’t having too much difficulty with the size, but I was starting to have problems with styles and cross-references.

The first thing to note is that you have to be organized. It’s tempting in Word to just change the font or its size directly, but this is a big no-no in Lyx. You should create a style for every type of paragraph that you need. In my case I used the defaults that came with LyX and applied them to my text.

All this was incredibly straight-forward and very Windows-like. You can high-light the text by dragging the mouse over it (it turns cyan), delete text with the delete or back-space key and all the usual conventions — not something to be taken for granted in Linux.

Then I hit a bit of a problem. In Word, I had all my lines of code numbered. How could I replicate this in LyX?

To cut a long story short, while I’m sure that you can do it, I have no idea how. I suspect it has something to do with the style-sheets (like in Word), but I couldn’t figure out how to change it graphically and I have no inclination to start hacking around in the TeX source files.

In fact this is the most damning criticism of the program as a whole: you still need to know about TeX. If I’d wanted to know about that I might have stuck to Emacs! It is still a very useful program, but to get the full flexibility of the system you’ll need to get your hands dirty!

From bad to worse

Having found my first problem, things started getting even worse. I couldn’t get the cross-referencing to work either. I’m pretty sure that this time it’s because I’ve been brain-washed with nearly eight years of using Word for Windows. When I say that I want a cross-reference, I expect to be able to say which heading I want to reference and how I want it to be displayed (i.e. the text or the section number or the page number, or some combination of them). In LyX what I get is a box with five buttons and a message saying “No labels found in document.”

I managed to partly solve this by creating a number of labels which I could create cross-references to. However, this was nowhere near as flexible as Word. Do I have to create a label at the source of every cross-reference? (This looks like something else that’s been carried over from its TeX heritage.)

User Interface

Taking a step back from my difficulties, what’s it like?

LyX uses the XForms library, which some purists hate as you can’t get the source code for. In its favour, it does look very smart. The menu’s are a bit more ‘sticky’ than I’d like, but there’s nothing wrong with them. It makes LyX look like a modern Windows application, and I mean that as a compliment.

However, it’s not quite as intuitive as it might be. For example, many of the keyboard short-cuts are non-standard. What’s wrong with Ctrl-I to start and stop italic mode? How do I change the formatting of a style? How do I create a blank line?

It’s also fair to say that the configuration isn’t as easy as it could be. As has been mentioned before, I tend to use TrueType fonts rather than those that come with XFree86 and I wasn’t too upset to learn that I’d have to configure LyX to use them. It was good to see ‘Screen Fonts…’ under the Options menu; it was equally good to see that changing ‘times’ to ‘times new roman’ had immediate effect. What was not so good to see was that it had forgotten the setting next time I started. It turns out that the best way to keep the settings is to edit the ‘lyxrc’ file in the LYX_DIR directory. Okay, we can’t expect LyX to make global changes, but why not local changes?

Overall

As someone that writes many more structured, technical documentation than letters (sorry Mum), Lyx is just the kind of thing that I’m looking for.

It’s not as easy to use or well integrated with the print system or print preview program as Microsoft Word, but it is much better at handling tables and equations, not as though I use many of the latter.

However, for my purposes I think I’ll stick to dual-booting and Word 95. LyX shows a lot of promise and is very good at what it already does. However, I think that you’d have to be a TeX guru to get the best out of it, and that rules me out.

WINE 980614

Introduction

This is the second time in as many reviews that I’ve started like this: I don’t want this to be the start of a trend. I did say in my ‘policy’ document that I didn’t want to look at very early releases of software and I stand by that.

However, sometimes you see something and, even though it doesn’t work fully, it show such great promise that you need to shout about it. WINE is such a piece of software.

What is it?

Wine allows you to run Windows applications on x86 Unix machines, Linux in this case. It should work on almost any PC based UNIX like NetBSD, UnixWare, etc. and it’s supposed to run 16- and 32-bit Windows applications, although the former are much better represented at the moment. There are some that will never work properly (the FAQ says something about VxD’s which I don’t understand).

At least, that’s what it will do. At the moment it is a developers release, not even stable enough to be called beta software. However, I’m not here to bash Wine because it’s in its early stages of development. I’m here to express how shocked I am that it’s so good!

Installation

I’ve tried a number of times in the past to make Wine, and they’ve all ended in tears. I rake around my hard disk trying to find enough space — around 50 Mb — spend ages while it compiles and then when I run it I find that there’s been a segmentation fault in 32-bit code. I don’t know what that means, only that it’s not mentioned in the FAQ and that I can’t run anything, not even Notepad.

Then the other day I decided to make one last attempt and, rather than get the source code, I got a precompiled RPM. It didn’t work at first. I had to customize it, changing the configuration file to match where my Windows 95 partition is, but nothing too arduous (or unexpected).

So, I fired it up trying to run calc.exe. I wasn’t hopeful, and the fact that it was taking 100% of CPU and seeming to get nowhere fast didn’t help. I left it chugging away and made some coffee and toast.

Success!

When I returned from the kitchen, the Windows Calculator was sat proud in the middle of my Trinitron. My jaw dropped, and the dog nearly got my toast.

Okay, the display wasn’t completely right. The text in the title bar is far too small, the buttons are in the extreme top left and right rather than in the middle of the bar, and the font on the menu bar is proportionally spaced meaning that it looks rather odd, but I suspect that this is all configurable — you can certainly tell Wine to use your window manager rather than X directly.

But it worked. I could do sums; I could change between normal and scientific mode; I could get the About box. I was stunned.

Moving onto Notepad, I found that the same was true: it worked. I trundled though a few other applets that Windows 95 comes with, many of which, at least partially, worked.

Getting arrogant

Having got the tiny programs working, I started hunting around my hard disk for new challenges. Why start small and build up, I though. ‘wine "`pwd`/winword.exe"‘ I typed. That’ll show it.

I started on my toast, figuring that it’d take a while before it gave up.

But it didn’t give up. After a worrying amount of disk activity, the Word 95 splash screen appeared. As did screens and screens full of errors in the console window. Despite the errors, Wine and Word battled on, eventually displaying the normal Word screen, tool bars, menus and all. Again, the fonts weren’t quite right and the toolbar was far too dark, but there it was. Linux running Microsoft Word 95.

Tentatively I entered some text. This worked fine — even the font rendering was spot on — until I mistyped something. Word underlined the suspect characters with a wavy red line and then crashed.

Next time I managed to get the About box (fairly simple, but with a big bitmap and a sound clip) to display, followed by the Options dialog (big with lots of tabs). A few others also worked without problem. The open dialog, however, causes Wine to exit. I guess this is because Microsoft didn’t use their own standard libraries for the task! (Let’s blame Microsoft.)

Excel works roughly as well as Word. It starts without any problems, you can enter data in the cells and auto-sum works. Many of the dialogs appear, full and correct, but save crashes the system. PowerPoint vanished shortly after completing loading and Access didn’t even get as far as the splash screen.

I was very surprised at the success that I’d had up to this point. Okay, nothing useful actually worked, but I was looking from more of a technical point of view. I did, however, find a program that worked incredibly well, something much larger than clac.exe or Notepad. The program? Maxis SimCity for Windows 1.1. (Saying that it’s useful is stretching the point, but I digress.) I play tested SimCity quite thoroughly and found that, although small parts of the screen occasionally became corrupted, everything worked. Since games are usually associated with some of the worst coding and low-level hacking around this was good. (I’m not sure whether the credit should go to the Wine team or Maxis!)

Overall

I’ll not mess around: Wine is not ready for the prime time yet and is still some way off. This is not news, the developers say this too.

What is news is that it is an incredible piece of software. A non technical user might not see this (unless they want to play SimCity), but anyone who has written a non-trivial program can see what an incredible achievement Wine is.