All posts by Stephen Darlington

Open Sources

Introduction

This is a very strange book by almost any criteria. Firstly, much of the content is available on the web in one form or another. This includes an appendix which is literally a Usenet discussion printed. Secondly, most of the writers are techies first and writers second. You don’t get that kind of admission from most writers, even when it’s obviously true.

Content

There are fifteen essays by eighteen writers. I’m not going to go through all of them, but I shall note some of the highlights.

The style prize, without doubt, goes to Larry Wall for ‘Diligence, Patience, and Humility.’ It’s one of the longer essays, has dozens of useless-looking diagrams and for much of the time seems to go nowhere. You keep reading, though. You may not see where it’s going, but you’re intrigued. And it’s worth it — despite initial appearances, it does go somewhere!

As a Linux-biased web site, I couldn’t miss out Linus Torvalds piece, ‘The Linux Edge.’ His simple message — Linux has survived by having a good design — is thoroughly investigated, but the best bit is that he criticises just about everyone else in the industry, often without much justification, and still comes out the other end smelling of roses! I’m not sure how he did it, but I know I’d hate Bill Gates more if he said pretty much the same things.

As always he comes across as very modest, and attributes many of the good ideas to other people.

I liked Marshall Kirk McKusick’s potted history of Unix too. I think I’ve seen much of that before, but not in one place.

Since he practically started the whole thing, I need to mention Richard Stallmans ‘The GNU Operating System and the Free Software Movement.’ It’s an interesting piece in that he contradicts some of what the other authors in the book have to say (as has been well documented, he dislikes that phrase ‘Open Source’ and demands that people call it ‘free’ software). It’s clear that he knows exactly what he wants and where he wants to go, but it’s equally clear that he’s going to put a lot of businesses off free software if he keeps going the way he is. RMS, I respect what you’re saying, but calm down!

The final mention goes to the two Eric Raymond essays. Raymond has been at the centre of the Open Source movement since the Cathedral and the Bazaar,’ and fully deserves the opportunity to write two pieces in Open Sources. The first piece ‘A Brief History of Hackerdom,’ describes the key points and people that gave rise to our current position. The second, ‘The Revenge of the Hackers,’ looks to the future.

Like much Raymond stuff, some is ‘personal’ and has a number of anecdotes about himself. It seems that many people hate this, but I feel that where it doesn’t get in the way of the message and while it’s still interesting and well written, it’s fine. The two essays are, indeed, fine.

Overall

I can’t really criticise this book. All the people in it are more influential than myself, better developers than myself, better writers than myself or, more commonly, all of the above. So while I like some of the writer more than others, and while I actually disagree with some of the assertions made, it is, at least, well written and thought provoking.

As a book intended to document the new-found popularity of the Open Source model, the book is a classic and a must-buy.

The facts

Author: Edited by Chris DiBona, Sam Ockman and Mark Stone

Cost: US$24.95

ISBN: 1-56592-582-3

Buy this book from Amazon.com or from Amazon.co.uk.

Oracle Builtin Packages

Introduction
Steven Feuerstein’s ‘Oracle PL/SQL Programming‘ book has, over the last couple of years, become my bible on the subject of writing sizable Oracle PL/SQL programs. As I said in my review, it’s useful because it covers just about everything, including the things that don’t work.

So if that book covers just about everything, why would anyone want to buy ‘Oracle Builtin Packages’?

Content

In fact, as the first chapter of the book explains, this entire book was origianlly chapter 15 of ‘PL/SQL Programming’ but Oracle complicated things by adding more to the PL/SQL programming language (all the pseudo-object oriented stuff in version 8 ) and many more new or enhanced packages. The result: either a single two thousand page monster, or two more reasonably sized tomes.

But like the first book, this is still a bit of a monster in its own right. It stands at 931 pages and there’s very little padding; if only all technical books had such a high signal-to-noise ratio!

It seems rather pointless to go into detail on the content of all the different sections…

The two chapters that I’ve used the most are those on DBMS_FILE, which allows you to manipulate operating system files, and DBMS_SQL. Just about everything I know about these modules I learned from this book. When I was originally writing the code, ‘Oracle Builtin Packages’ was by my side, open at the relevant page. When colleagues mistakenly thought I knew what I was talking about, this book was open beneath my desk giving me superiour bluffing ability.

The main critisism that I can think of is that some of the material is getting rather out of date. The DBMS_SQL package is no longer as necesary as it used to be — Oracle 8i introduced some new syntax to the PL/SQL language that largely replaces it.

Conclusion

I’ll be brutal: in marked contrast to Feuerstein’s first book, if you regularly write PL/SQL code you can get by without reading this book.

But you will be more productive if you get it. You won’t be spending days writing code to do things that Oracle have kindly supplied a routine to do and you won’t give up on PL/SQL and write a program in Pro*C because you don’t realise, for example, that you can manipulate files.

No, this book is less vital than ‘Oracle PL/SQL Programming’ but it is still a thorough, well organised and useful book. It’ll quickly pay for itself many times over, and that’s a very high recommendation.

The facts

Author: Steven Feuerstein, Charles Dye, John Beresniewicz

Cost: US$46.95

ISBN: 1-56592-375-8

Accidental Empires: How the boys in Silicon Valley…

Introduction

This is neither a new book nor a new purchase for me, so why am I reviewing it? Bottom line: it’s a book that I’ve enjoyed a lot over the years and one that I feel the need to recommend to as many people as possible.

What’s in it?

The obvious format for a book on the personal computer industry would be chronological, but as he points out early on in the book, things just aren’t that simple. Instead he uses what, on paper, might look to be a random arrangment of anecdotes, jumping from Apple to Xerox Parc to Microsoft and IBM in the matter of a few pages. But that’s just the nature of the beast.

What’s good

Cringelys writing is easy and engaging to read. It would be very tempting to just sit down and read the entire book from beginning to end. It’s friendly, chatty and full of interesting little anecdotes about all the main characters, from Bill Gates to Steve Jobs.

He freely admits that he’s not been a true historian. He’s missed out some arguably important stuff, but it would take a long, dull book to get all that information in. The charm of Accidental Empires is the fact that it’s easy to read.

Conclusion

When I do reviews, I normally have a section on the bad stuff. I don’t have one here. That’s not because the book is flawless, but because it achieves perfectly what it set out to do.

If you’re at all interested in how the PC industry came to be, this is the book for you.

The facts

Author: Robert X. Cringely

Cost: ?6.99

ISBN: 0887308554

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.

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!)

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.