A Message to Oxford Comma Users

If I eat some bacon, eggs, and toast …do you not think that the toast looks and sounds as if it might have been a bit of an afterthought? I do, and the effect is caused by that last comma, just before the “and”. It’s called a ‘serial comma’, though because the Oxford University Press Style Book commends it, it’s frequently referred to as the “Oxford Comma”.

Commas generally indicate a slight pause for breath, so that written form of the list makes me want to whistle a bit and put the kettle on before we get around to mentioning the toast. It’s therefore wrong. What I actually had for breakfast was some bacon, eggs and toast. No final comma before ‘and’, you see. No pause. Just a nice, fluid finish to a three-item list. Breakfast over in a jiffy, too.

Now, some people will claim this means I ate two things, not three, but I think it takes a peculiar kind of literalist to get confused on this matter. Eggs and toast remain two physical things even if the ‘and’ is taken to conjoin them grammatically, after all.

Oxfordians will also cite the old man who left his money to “Jill, Joe and Mary” and thus incited a family feud between Joe and Mary (who got half the cash between them) and Jill, who’s busy enjoying her half of the money all on her own. If only, they argue, the will had said “I leave my money to Jill, Joe, and Mary”. The final comma makes his intentions unambiguous! My advice to the old man is rather different: get a new lawyer. One that can write without ambiguity in a document where such a thing is important after all. “I leave my money in three equal shares to Jill, Joe and Mary” resolves the matter without recourse to extraneous commas.

Hilariously, Oxfordians point to this lovely example (allegedly written in The Times): “highlights of his global tour include encounters with Nelson Mandela, an 800-year-old demigod and a dildo collector”. Apparently, we all need an extra comma to persuade us that Nelson Mandela is neither an 800 year-old demigod nor a dildo collector. I disagree: anyone with the vaguest knowledge of Nelson Mandela knows this interpretation is wrong, so we don’t need the extra comma to clarify things for us. Furthermore, if the sentence had been written as “…encounters with a dildo collector, an 800 year-old demigod and Nelson Mandela”, would anyone be complaining? I think not… which goes to show that the Times writer’s intention was deliberately contrived ambiguity and humour.

Oxfordians also claim the avoidance of the comma is an unnecessary complication of the rules: you stick it between other items in the list. Why not use it at the end, then? To which the answer is two-fold: you don’t use it because the word “and” (or “or”) is acting as a list separator anyway. So it’s redundant. Moreover, there is no complication of rules taking place in any case because the very, very simple rule actually being applied is: “never stick a comma before a conjunction”. (Like all good rules, I’ll allow an occasional exception now and again -I’m generous like that- but the very strong emphasis is on “occasional”).

Rogers’ Corollary to that rule is: if you ever find yourself feeling that on this occasion it’s necessary to break the rule, re-write your sentence. You will be tempted to break it because the sentence reads as if there is some ambiguity or other that the additional comma will resolve. But this simply means you’ve been ambiguous in your writing and it’s your writing that needs to improve, not the rule of punctuation that needs to be broken.

Unfortunately, the serial comma is (apparently) taught as standard in the United States, so I’ve now just annoyed at least half my readership, such as it is; but there you go. Sometimes, these things need to be said!

If my readers could also absorb one other rule of grammar as well before they depart these pages in high dudgeon, I should be most grateful: the words “could”, “should” and “would” (see what I didn’t do there??!) are never, ever, ever followed by the word “of”. How we’ve managed to produce an entire cohort who think transcribing the sounds they make counts as writing, I have no idea, but “he could of done that if he’d wanted to” is an abomination that says to me, via megaphone, “I am either as thick as two short planks or can’t be bothered reading over what I’ve written to see if it makes sense before sharing it with you”. In either case, it’s a dumb thing to admit to.

Irregardless isn’t a word, either.

And if you are going to write up and say “It doesn’t matter, because language is organic and an ever-changing thing and you shouldn’t get too uptight about it; learn to love the evolution”, all I would say in advance is: it is only ever those who are incapable of sticking to rules that seem to think the rules don’t matter. I’ve never heard a legally-sober driver complaining that the drink/driving laws are a bit too strict or inflexible, for example. I have, however, watched plenty of busted drivers saying, ‘but I was only half-a-drink over!’, amounting to a plea to have the limit bent a little in their case because ‘it’s only fair, innit, guv’.

Er… no it’s not.

Automatic Portland

Ah, automation! Where would we be without it? (It is a little-known fact that the total mileage of railway line in England did not exceed the total mileage of canals in England until 1861 -some 80 years later than is commonly supposed, and proof that the Industrial Revolution never really happened -except in Germany, funnily enough. Britain, though, had an Industrial Evolution).

Anyway, I digress. Automation is good, and it helps produce nicely-standardized things which are therefore more predictable and more stable than their chaotic hand-built equivalents.

This goes for operating system installs, too.

Having got Gladstone doing his thing to hand-built servers, ensuring a level playing field when it comes time to install Oracle; having then got Palmerston working overtime to do the same thing for a Kickstart-automated server build; it is now time for me to introduce Portland: the script you run to standardize and automate your RCSL builds when you don’t want to install Oracle.

Perhaps being a little more positive, I should say that Portland is the script to run when you want the Gimp, VLC, Eclipse, Java, Apache Directory Studio, Opera, Rhythmbox, Handbrake …and all those other good productivity programs (like Solitaire and Chess)… added to an otherwise standard and minimal RCSL server installation. Preferably without all the hassle and confusion that the bazillion-and-one ‘how to do a perfect desktop’ articles out there seem to want to inflict on you!

Portland turns RCSL servers into usable desktops, in other words (including switching from OpenOffice to LibreOffice).

I particularly like it because it makes continued and almost-exclusive reference to mirror.aarnet.edu.au (and, indeed, changes the standard yum repositories so that they point there too). That mirror happens to be (a) close to Australians and (b) completely unmetered in use for us poor Telstra customers shmucks. For me, it means I can install RCSL servers until the cows come home without running up huge ISP bills or excess download consequences. For others, it will be a disaster, of course, since it will be using perhaps the remotest, non-free repositories in (their) existence. I’ll work on that for a future update! Meanwhile, you could do a global search-and-replace of the mirror URL before running it.

So, to sum up:

  • You use the Kickstart Configurator to specify a new non-Oracle server’s details.
  • The last line of the resulting Kickstart script will cause a portland.sh script to be downloaded to the new server’s root directory.
  • When your over-the-internal-network ‘base build’ is complete, and provided you have a functioning Internet connection, you log on as root and invoke that script (a simple sh /portland.sh will do it).
  • 20 minutes later, your server build will complete. including a nice set of top-panel application launchers for all the apps I consider to be vital (you might disagree with my choice of launchers, but that’s life!)
  • There are two interactive prompts throughout the entire process: Dropbox asks you if it’s OK to close all Nautilus windows (the answer is ‘yes’), and Calibre says it’s going to install to /opt (press Enter to accept). If I can get those two working in a non-interactive mode, I will.

There are still a couple of things I definitely won’t automate, the most significant of which is the installation of proprietary graphics drivers: I can’t find a reliable way of working out what graphics card is installed in a PC, so can’t automate the installation of the right binary blob. Install the wrong one, however, and the PC may well refuse to display anything at its next reboot. I’ve therefore decided to leave well alone for now!

But for the most part, I can now roll out a bundle of RCSL servers in double-quick time and have them all look as I want them to, without really having to do anything. And that’s the sort of automation I can live with!

Footnote 1: because I know literally tens of thousands of people will be asking, William Henry Cavendish-Bentinck was the 3rd Duke of Portland and served as British Prime Minister twice (in 1783 and 1807-1809, which is the longest gap between ‘turns’ of any British Prime Minister. If Margaret Thatcher wanted to achieve the same thing, she’d be making a fresh run for office right about now). The Portland Vase (see left, being peered at in the British Museum by yours truly, circa 2010) gets its name from the Duke’s family, since his mother bought it from the British Ambassador in Naples. Don’t ask how he came to be selling in the first place, though!

Footnote 2: Portland installs an, er, “eclectic” mix of software that suits my needs -which may not suit everyone or anyone else’s. I’ll take comments/suggestions on what ought/ought not to get included, if it helps make the script as a whole more useful. Suggestions need to be in the repositories (and thus a yum install away), or easily obtainable with wget (which rules out Oracle and VMware Workstation, for example).

Footnote 3: The Kickstart Configurator has been modified a little so that it now automatically downloads the portland.sh shell script (to the / directory) if you select to create a non-Oracle configuration. Whether you choose to run it after that is up to you, of course, but at least it will be there. If you tell the Configurator you’re building an Oracle server, of course, then its behaviour is unchanged: it automatically downloads the palmerston.sh shell script instead (from your own Kickstart server).

Footnote 4: The complete list of packages/applications Portland installs currently is as follows:
alacarte, alltray, ApacheDirectoryStudio-linux-x86_64-2.0.0, brasero, calibre-ebook reader, cheese, cuetools, dia, dropbox-0.7.1-1, dvd95, dvdbackup, easytag, eclipse, ekiga, evolution, gftp, gimp, gnome-games, gnome-games-extra, gnote, gstreamer-plugins-ugly, gthumb, guake, handbrake-gui-0.9.5-1, hardinfo, keepassx-0.4.3-1, libdvdcss, libreoffice 3.5.0, mencoder, mozilla-vlc, ntfs-3g, openjava, opera-11.61, pidgin, rhythmbox, rlwrap, shntool, sound-juicer, soundconverter, stellarium, thunderbird, transcode, transmission, tsclient, VirtualBox, xsane

Watch your bits!

This is what happens when you start up a server with a Scientific Linux 6.2 32-bit netinstall disk and expect it to be able to continue with a 64-bit network installation:

Loader exited unexpectedly! exec of anaconda failed: Exec format error

The clue is buried in the error text: Exec format error means “you’re trying to execute a 64-bit executable when I was expecting 32-bit ones, so that format/bit-architecture is wrong”.

The references to “anaconda failed” and “backtracing /lib/lib.s.6″ are just red herrings, really, potentially diverting your attention from the real issue: You can’t mix your architectures. If your Kickstart Server is dishing up 64-bit distros, you need to boot with a 64-bit netinstall boot disk. Obvious, really, but I’d never accidentally mixed-and-matched before, so I never quite knew what to expect.

Now I do!

New Science…

Am happy to report that Scientific Linux 6.2 is properly and finally out, thus completing the ‘set’ of RHEL 6.2-compatible freebie distros. (Centos 6.2 was released just before Christmas).

As a content user of the Scientific Linux 6.1 release on my desktop since around the start of December 2011, the new release means either I have to sit there pretending I don’t care about having the latest and greatest, or I can just upgrade and be done with it. I rather suspect the latter will be the course I take!

Not that there’s a huge difference between the versions, of course.

Anyway, the relevant ISOs are available here -and my Kickstart Configurator and associated articles will be updated soon accordingly.

Integrated Q & A

There’s been a link to a forum over on the right-hand side of this page for quite a while. It was meant to be a place readers could ask questions about pretty much anything, technical or otherwise, related to site content or not.

Just one person was brave enough to post something there!

Worse, I got out of the habit of checking it, so that even my replies to the question asked were delayed by several days.

Hence it’s gone (sorry to the handful that signed up as members… you really haven’t lost much!)

In its place, as you can see from the menu at the top of the page, is a new “Q & A” page. Anything asked there is automatically an intrinsic part of this blog and not content on a separate-but-linked site. It’s much more difficult to ‘miss’ things as a result, so any answers should -with luck- be much more timely.

Answers may be provided by any reader that thinks s/he can provide one, the only catch being is that if you’ve never posted here before, you get held in a moderation queue (second and subsequent posts are automatically visible, though).

We’ll see how it goes, anyway.

Look Ma! No network…

I was installing some servers in Seattle recently, when I was informed that it was not company policy to allow their servers to have Internet access, of any sort, ever. This was a bit of a blow for me, because my Gladstone script (which I use to configure production Red Hat boxes as Oracle database servers) relies on being able to do various “yum install …” commands to get the software prerequisites correct.

It was irritating, though quite understandable -and we worked around the issue by giving me temporary access to the Internet, swiftly revoked once the installs were complete. But the incident made me realise that Gladstone’s reliance on Internet connectivity was misguided.

In fact, it’s never been strictly necessary for Gladstone to have Internet access at all: every one of the software prerequisites are available on the DVD installation media for RCSL distros, so it’s always been possible to install entirely from locally-available media. I used the ‘yum install’ method simply because it was easier: for one thing, it ensured all software dependencies were satisfied automatically.

Well, I have now resolved that particular issue.

My new Kickstart Configurator tool will now output a kickstart file which will perform a completely local installation (i.e., no Internet downloads) that nevertheless satisfies all Oracle software prerequisites. Of course, there’s still the Palmerston script which needs to be downloaded and run to finish things off in an interactive fashion, but if you download that ahead of time and store it on your Kickstart server, you can transfer that internally, still without recourse to the wider Internet.

Kickstart + Palmerston… perfect results every time, and not an external network in sight. My man in Seattle would be happier, I think!

In the wars

Poor Boise (“boy-zee”) has been in the Wallaby Wars of late:

We are not aware of any other large males around here suffering similar amounts of ripped-out fur, scratches and blood, so maybe he had a run-in with something else (for example, a fox).

Of course, there’s a reason the old boy stands up for himself… and here’s the latest such reason:

 

Welcome to Graham, still in Franklin’s pouch, though with a good deal of curiosity about the outside world, and barely a hair on his head!

Did I mention Palmerston?

I have just released a new article explaining how to set up a Kickstart server as a way of achieving speedy, reliable and standardised RCSL server installations.

In some ways, it’s just a rather more Kickstart-focussed version of my existing ‘how to build an Apache web server’ piece.

However, it’s a little bit more than that, because it introduces two things:

The Kickstart Configurator is just a little something I threw together to avoid the tedium of having to remember to alter the network details in a Kickstart file before re-using it. It will additionally do most of the Oracle prerequisites for you, if you ask it to.

Palmerston is simply a version of my Gladstone Oracle pre-installation script that omits the downloading/installing of software packages… because the Kickstart configuration script generated by the Configurator will have already handled all software prerequisites for you, if you asked it to. It also ditches all support for non RCSL distros, because only an RCSL user will ever be invoking it (everyone else will still be invoking Gladstone).

Together, they make building RCSL servers in general and Oracle servers in particular just that little bit easier. (Well, they do for me, anyway!)

Microsoft Office

This is definitely worth a mention, because it’s not something I think I’ll ever want to forget: a way of pretending that the ghastly ‘ribbon interface’ in Office 2007 and 2010 doesn’t exist!

For personal use, the UBitMenu is free.

It’s a tiny install that creates a “Menu” tab in the Office ribbon -inside of which sit all the old-fashioned menus whose location and functions you probably know intimately, having used Office for 15+ years. Instead of poking around the “improved” ribbon for hours at a time wondering where the hell everything is hiding, now you can use Office as you once knew how to, all over again!

I’ve spent 4 years trying to get familiar with the Ribbon. I cheerfully admit that this is a lot more useful for me!

 

Backing up Google Data

So, if we accept the premise, for the moment, that it might be a good idea to stop using Google services, how do you get back the data you’ve already given them?

Surprisingly, perhaps, it’s really quite easy. Your main port-of-call will be https://www.google.com/takeout, which allows you to package your data up from its various services and download them as a simple zip file. The download of any photos uploaded to Google’s Picasa servers was swift and pain-free, for example.

But there’s a huge gap in Takeout’s offerings: the email! There’s no easy way to get all your gmail downloaded using Google’s own tools.

A cross-platform, comprehensive and zero-cost tool to achieve that is, however, available as a simple software download. Point it at your email account and a local folder in which it can store its work and pretty soon you’ll have a bazillion “.eml” files, each one representing a separate email. Handily, it doesn’t just restrict itself to your inbox: anything in your sent mail folder is backed up, too.

Reading the exported mail is perhaps not as easy as it should be. Thunderbird will do it without fancy filters or import tools: just drag and drop the multiple EML files into a suitable folder and the thing will chug along until all files are across. Once they’re in Thunderbird’s format, it’s trivial to get them into something like Evolution. The tricky bit is simply finding Thunderbird’s own data store: on Windows 7, it’s C:\Users\<username>\AppData\Roaming\Thunderbird\Profiles\<some random number>.default\Mail\Local Folders. Somewhere in there should be the folder representing all your gmail conversions -mine was a single 156MB file. You then just copy that in its entirety to a place where Evolution can make use of it. Run Evolution’s import wizard, point it at the Gmail file, and it should correctly interepret its results, importing them to a directory of your choosing.

And if you’re like me, you’ll suddenly realise that you replied to people in 2006 with somewhat less than subtlety and pleasantness. Belated apologies if you were one of those recipients.

There are other ways to extract your Google email -native Linux ones, for example- but none work so simply and as comprehensively as Gmail-Backup. So, for now, I’ll leave it there -all my images, documents, and emails, sent and received, dating back to 2003 now safely stored on my own servers once more.

It’s kind of liberating… and it allows me, finally, to do this: