Getting organised: GCStar

May 18, 2011 Leave a comment

I am not an organised person. Some people react to complex, interesting things happening in their lives by firing up Google Calendar, setting up a To-Do list on their PDA, and automating their address book. I react by going to bed, hiding under the covers and hoping it will all go away. The crowning glory of our civilisation, after all, is that we have reached the point where a large proportion of the human population can look forward to a life of happy tedium, unmarred by flood, famine, disease, war or violent death: why spoil it by deliberately going out and doing stuff?

But there are events I cannot ignore, and records I have to keep, and apart from the inevitable tax details, most of these relate to indexing work and my eBook collection. For eBooks I now use Calibre, which I will talk about later, but for keeping tabs on my indexing I use a customisable database program called GCStar. It’s available through the official repositories, but the source code for the newest version can be found at http://wiki.gcstar.org. Before GCStar I used Tellico, which is similar but — to my mind — a little less user-friendly. If you need a data manager then try both by all means, and see which you prefer.

So what does GCStar do? A screenshot might be useful at this point:

GCStar - Indexing data set

You can see there is a standard menu at the top, a small toolbar, and a lower panel separated by a movable divider into two panes. On the left there is a sorted and grouped list of publishers, and each publisher group can be expanded to show the individual items, which correspond here to individual indexing jobs. Only one level of grouping is available, but items can be grouped by any variable, so I could choose to see paid and unpaid jobs, jobs grouped by author, jobs grouped by contact person, jobs sorted by commencement date, and so on. The list can also be filtered, so it is pretty easy to locate any particular indexing job. Since I do about 70 per year, the list grows fairly quickly.

At the right is the information pane, with a tabbed display. I have chosen to break the information on each job into five sections: Book Details, Index Details, Preliminaries, Work, and Finalise. The Book Details section is shown above: below is a screenshot of the Index Details pane, slightly edited for privacy:

Index Details panelGCStar (like Tellico) comes with a set of predefined templates for various kinds of data sets. Some of these — notably the templates for book collections and music collection — come with live connections to the internet whereby the user can download information about the book or music track to fill in the fields automatically. But I built this one from scratch by adding and editing my own fields. Here’s the panel for Finalisation:

FinalisationThe previous two panels are similar, with a series of date fields which I can check off with the current date by pressing the ‘Select’ button that appears next to each field. This allows me to track the progress of a job through its various stages.

GCStar supports all the usual field types — text, comment, numerical, date, Yes/No, and multiple choice lists. Fields can be set to accumulate values and present them as choices in a drop-down list. The grouping of fields into panels, and the order in which they appear, is up to the user. All fields can be given a default, and numeric fields can be given a minimum, a maximum and an increment associated with a couple of spin buttons that appear at the left of the field. Ratings fields can be indicated by stars rather than numbers, as in the first screenshot above. GCStar saves records automatically to disk when they are changed — one up on Tellico, which requires the user to do this explicitly.

To make a new record I just click the Add button and fill in the details. If it is a close copy of an existing record then I can choose to duplicate that and edit it instead. I paste copies of any correspondence into the Comments fields, and at intervals during the indexing process I reopen GCStar and record where I am up to — usually this just involves a couple of clicks. At the end of the month I reconcile it against my invoices and record all payments.

GCStar is a more elegant and robust version of the sort of applications I used to home-brew in Microsoft Access for keeping track of invoices or indexing ongoing serials. It does a wonderful job and I recommend it highly.

Jolicloud: a Unity that works?

May 15, 2011 2 comments

Long boring background story: at home I have a broadband router and three desktop computer (plus one laser printer) plugged into it by cable. Any of them are capable of running Linux mint and connecting to the Internet and other PCs, though at the moment only one of them does.

I also have an Acer Aspire 5315 laptop which is about four years old. It was bought during a period of enthusiasm for laptops, at a time when I thought we might get rid of the desktop PCs for good, but after a few months’ experience of using a laptop for all our major work I came to my senses. The Acer is capable of running Mint and connecting to the router by cable, but there are no more cables available for it to plug in. It does have Wi-Fi, but unfortunately Mint and the particular Wi-Fi driver it uses don’t go together, and I can’t get it to connect to the network using Mint.

(Parenthetically, the Acer was one of two similar laptops that both had Vista on when I bought them. Both had Windows Vista installed. I took it off this one deliberately so I could try a Linux distro, but on the companion laptop — which my son now uses with Mint at University — Vista spontaneously uninstalled itself, along with a large chunk of all the data and other software on the hard disk. It was at that point I realised that Microsoft hadn’t supplied a reinstallation CD. To say I was not impressed would be putting it mildly. And when I bought and installed Windows XP in place of Vista, I had to download hundreds of megabytes of specialised drivers before it would work, because Acer were far too precious to actually use standard equipment or standard drivers on their blasted laptop.)

And I have a Asus EEE, acquired last year, which currently runs Windows 7 from the hard drive; but it’s also capable of being booted from a SD Card, so I can use this to experiment with Linux distros. Unfortunately it has the same problem as the Acer — Mint can’t pick up the wireless driver, so I am restricted to distros which can. So far I have found three:

  1. Puppy Linux. It’s cute, it works, it’s as fast as buggery and it picks up the wireless with no trouble. It’s just a little unfamiliar and a little Spartan for my tastes. Look, I’m sorry. It just is.
  2. Fedora 14. I have flirted a little in the past with Mandriva and OpenSUSE, but this was my first serious involvement with the Other Side — Ubuntu (and Mint’s) main and most credible rival. It worked nicely, it supported GNOME, it found the wireless driver; but it also chewed up most of a 4Gb SD card, and somehow I never felt comfortable with it. Running Fedora 14 on a netbook just seemed like putting racing stripes on a Smart Car.
  3. And just recently the latest successful contender: Jolicloud. Jolicloud also picks up the wireless link with no problems. It runs fast, it installs smoothly, and it’s built to cater for small screens and touchpads. In fact I am so impressed with Jolicloud on the EEE that I have also installed it on the Acer; where again, it picks up the wireless with no trouble.

You’re probably wondering why I am so keen on Jolicloud, which is also a radically different OS, when I found Unity such a pain. So am I; it’s puzzling me too. So far the only ideas I can come up with are:

  1. Unity merely looks different. Underneath it has the same old stuff. Jolicloud actually has new stuff, largely — as its name suggests — cloud-based: a fun paint program called Jackson Pollock, a simple sequencer, immediate access to Google Docs, and a browser-based applications system.
  2. But it is based on Ubuntu, so it installs smoothly without mucking up anything else, and all the old familiar stuff is there if you need it.
  3. Most important, and unlike Unity, Jolicloud offers affordances. This is a term coined by Donald Norman in his book The Psychology of Everyday Things — later re-issued as The Design of Everyday Things. Affordances are the features of a product which tell you in advance what it can do: thus a push plate on a door tells you before you get there that you need to push on that side because the door is hinged on the other side, and a handle on a kettle tells you it is designed to be picked up in one hand. Affordances are a big feature of successful software, and Unity just doesn’t have any — no panel, no menus, just a scary column of buttons.

So Jolicloud has lots of bright distinct colourful buttons to click — some of which do exciting new things — and Unity doesn’t. Is it really as simple as that? Maybe it is, because maybe that represents the thinking behind it. Maybe Canonical were thinking: ‘Let’s make this different’, and Jolicloud were thinking: ‘Let’s make this fun!’

That’s the best idea why one works and the other doesn’t that I can come up with at the moment. Try Jolicloud yourself (a Live CD is available to download as an ISO) and see if you agree with me.

Categories: Ubuntu, Unity, Vista

Ubuntu Unity — first (and last) impressions

May 10, 2011 1 comment

I must be missing something. Here we are with a new interface for Ubuntu, a new KDE, a new Gnome, a new GTK, and I haven’t yet been able to figure out what was wrong with the old ones. I used Ubuntu for more than a year, and I have used Mint, which largely entails Ubuntu’s interface, for more than a year, and I haven’t yet found anything that I want to do which the interface prevents me from doing.

Let me be clear on that. There are a few things — I can count them on the fingers of one hand — which I would like to be able to do which I can’t. One is using the right mouse click menu in Nautilus to send files to locations other than my Home folder and the Desktop. Another is to have a different wallpaper background in each workspace. A third is to be able to delete or rename files in the File Open and File Save dialog boxes. But none of these seems to require a complete overhaul of the OS and its graphic interface, as far as I can tell. On the contrary, they seem to be the kind of thing a competent programmer could fix in about ten minutes.

So I am puzzled: who, exactly, said that Gnome 2 was all wrong? Who said KDE 3 was no good? Who said that the previous Ubuntu interface was terrible, and confusing, and needed to be completely revamped? It wasn’t me, or anyone I know, or know of. Everyone I know seemed to agree that things were going pretty well. Yes, hardware changes all the time, and we need new drivers, and new software to take advantage of the new things we can do. But all that should take place below the surface.

So I am getting a nasty sinking feeling that Canonical at least — and maybe the Gnome and KDE gurus too — are being sucked in by the same misconception that sucked in Microsoft when they came up with Vista and later Windows 7; the misconception that change is good just because it is change: that you can make something look and work better just by making it different; that you can — at one and the same time — please your established audience of productive users and provide a new toy for the fanboys and fangirls with short attention spans. It may even seem like it’s working for a while, because it’s mostly the fanboys and the fangirls who write the reviews, and everyone likes something new to talk about for their magazine or their blog or their podcast. But for every bleeding-edge superuser there are half-a-dozen people actually trying to get some productive work done: and every change in their software means delays, and catastrophes, and painfully relearning what you thought you knew already.

I may be wrong: perhaps Unity and Gnome 3 will blast a path to the future for us. But somehow I doubt it. Change is like pain: it’s best when it happens infrequently, and in small doses.

And my impressions of Unity, running in VirtualBox:

1. What the hell is this?

2. How do I alter it?

3. How do I turn it off?

4. Where is Compiz?

5. Ah, so I can turn it off when I log in.

6. Oh, but I chose automatic login. Sh**!

7. That’s a pretty wallpaper. Where did my toolbar, panels and menu go?

8. How the f*** do I shut down and remove this pile of steaming crap from my system?

Let’s hope that the Mint team are wise enough to stay off the bandwagon of change for change’s sake.

Categories: Gnome, GTK, KDE, Ubuntu, Unity, Vista Tags: ,

Why ‘Linux networks’ is an oxymoron

May 6, 2011 Leave a comment

Fifteen years ago or so, local area networks were strange and exotic things, and setting one up was a rite of initiation for the young computer technician. With trembling, sweaty fingers on the keyboard, they would gradually make their way through the layers of the sleeping network’s consciousness, tweaking settings and codes as they went, hoping against hope not to wake the dormant giant before everything was ready. Then the gradual retreat, taking care not to leave any open doors or signs of their presence: then the awakening, and the hoping against hope that this time, this time! the arcane instructions would take hold, the magic would operate, and the network would recognise your poor little PC.

Unfortunately, for Linux, things are still like this. Windows at least has a Network Wizard, which in typical Microsoft fashion does about a quarter of the things you actually need before petering out: but Linux users trying to set up a home network still have to install software, look up obscure numbers and names, and scrabble around with text files called samba.conf and fstab (obviously named after what you want to do to the inventor when it fails for the umpteenth time) — knowing all the while that the slightest mistake could send your PC into a state of catatonia.

The notion of plug-and-play doesn’t seem to have reached network programming gurus yet — though paradoxically, connecting to the Internet has become a no-brainer, so that it’s now actually easier for your computer to chit-chat with others in Turkey and Uzbekhistan than with the one in the next room.

Here is what a rational network installer — Linux or Windows — should do:

  1. You attach a new PC to a network cable, or bring a WiFi-equipped PC in range of a wireless network.
  2. The PC automatically detects that a network is available. It prompts you for all the necessary information — username, password, access keys — to get attached, and silently downloads off the Internet or intranet any additional software required.
  3. It shows you all the other machines attached to the network — whether they are currently on or off — and asks what folders, printers, etc of theirs you would like access to, and what folders, printers, etc on your PC you want them to have access to. Usernames and passwords are collected and stored, network shares are given meaningful and consistent names, and suitable bookmarks, shortcuts, virtual drives etc, are made in your file manager as you do so. Need short aliases? OK, let the system handle those, like DOS-compatible file names.
  4. At the same time any other PCs on the network are being alerted to the presence of your PC and asked to confirm or modify your selection of shares. PCs not currently on the network are alerted when next turned on.
  5. Complete information about your settings — and everyone else’s — is stored on every PC on the network and — if possible — on the router, so that you can do a complete set-up even if only one other machine is operating.
  6. Even if your hard disk is wiped, the information retained includes your hardware number, so as soon as your PC comes back in range of the system — and gives the right passwords — all the information can be restored.
  7. When a PC joins or leaves the network all other PCs are (optionally) alerted of the fact, and of what shares are now available or have been removed.
  8. Where a PC has both a wired and a WiFi connection, the full installation process runs for both.

Obviously it wouldn’t work for an office with a hundred PCs, but it’s not intended to. It’s intended for the family who now have four or five computers and would like to be able to communicate between them without tinkering with fstabs and samba.confs and SSLs. Or using — as I have done — cloud storage in Brazil or Kashmir to retain a file so that I can bring it back on to a computer two rooms away. We hear a lot about ‘food miles’ lately — what about ‘data miles’? This madness has to end some time.

Categories: Networks, Uncategorized, WiFi Tags: ,

Virtually working

May 5, 2011 Leave a comment

I have a word of advice for anyone bringing out a new version of a Linux distro — or any other operating system (OS) for that matter. Make sure it works in VirtualBox! Why? Because VirtualBox and similar programs are increasingly becoming the major testing grounds for any new software, particularly software that could destroy or seriously damage a system. I’ve been through enough failed installations and dual-boot nightmares to know that you don’t install a new OS unless it offers some fairly spectacular advantages over the one you currently have. Admittedly, when you already have Linux Mint that’s pretty hard to do, but I am happy to give other systems the benefit of the doubt, and as each new version of Ubuntu or Fedora or OpenSUSE comes out online, or appears in the letterbox with the latest copy of Linux Format, I fire up VirtualBox and give it a run.

The results, alas, are not inspiring. I make an exception for Fedora, which usually behaves itself pretty well. But both the latest OpenSUSE and the new Ubuntu 11.04 failed to properly deal with the VirtualBox Guest Additions, which means I can’t view them full-screen sized or try out any of the hardware acceleration tricks. Maybe these are wonderful, and just what I would need to make me abandon Mint and become a devoted OpenSUSE KDE’er, or a Unity fanboy, but since I can’t see them working in VirtualBox. I’m never going to find that out.

Yes, I could use Live CD mode, but this is reeeealy slow, it doesn’t give me any indication of how the system will actually behave on a hard disk, and it doesn’t remember any extra drivers or other software that I happen to install. And after several years of fighting with Linux installations before they became user-friendly, I’m still not totally happy about handing control of my PC to a piece of plastic with its own agenda.

So Canonical, Red Hat and all, here’s my two cents’ worth: if you want your new releases to get good reviews and wide testing, make sure they install and run properly under the major virtualisation programs.

Creche epistle

May 1, 2011 Leave a comment

In 1968 the US Science fiction writer Philip K Dick wrote a novel entitled Do Androids Dream of Electric Sheep? about a future in which a bounty hunter pursues sociopathic androids that have escaped from custody. The book got a second lease of life when it was used as the basis for the film Blade Runner with Harrison Ford and a young Daryl Hannah, and a third ‘electric sheep’ was adopted for the name of the Internet’s first social-networking screensaver.

The Electric Sheep website describes it as a ‘collaborative abstract artwork’. Like many screensavers, it uses a complex mathematical algorithm, but the difference is that users can feed their opinions back into the algorithm by ‘voting’ with their keyboards while the program is running. Scott Draves, the creator of Electric Sheep, began it in 1999 with an algorithm called ‘Flame’ which originally produced static images. The move to collaborative animated images came soon afterwards. The site describes the process as follows:

Each participating computer follows mathematical instructions, Draves’ Flame algorithm, to render its own piece of the larger work, as seen in the table at left. The images are sent back to a central server which compresses them into animations which are sent back out to the viewers. The electricsheep.org website shows the family tree for each sheep, including its parents and offspring, and viewers can track family resemblance.

The site also includes samples and compressed images of the most recent developments in the algorithm.

So what does it look like? Like this:

The screenshots are taken from the Screensaver dialog box in the Control Centre, but of course the full screen displays are even more impressive. It’s in the Mint repository, and it’s open source. In addition to setting it up as a screensaver, you can also run it in MPlayer via the terminal window with ‘electricsheep’. Note that the first time you install it it may take a while to download its seed files, and may not start to run until your next logon.

Draves has also created a ‘visual-musical instrument’ called Bomb which is not in the Mint repository. Links to the Linux version don’t appear to work but there is a Windows version that I will trial and get back to you on.

Music, music, music!*

April 28, 2011 Leave a comment

It’s appropriate that there should be three ‘music’s in the title of this post (and the song it comes from) because today I want to write about the three music applications that I currently use. Mint, of course, like Ubuntu, comes with Rhythmbox. which I happily used for a while but eventually abandoned because — as an ordinary user, not a code-tweaking maven — I couldn’t get it to make a smart playlist which would search my collection of MP3 tracks on the basis of their track number. (Why should I want to do that? Carry on, gentle reader, and all will be revealed.) I also found it flaky in other ways — an impression that was confirmed just now when I went to start it up and check that I wasn’t inadvertently lying to you. First startup — Rhythmbox froze and had to be killed with the Force Quit applet from the panel. Second startup — nothing happened at all. So Rhythmbox has been given the boot.

I have also tried Amarok and found it overly complicated, like a lot of KDE stuff, so I finally settled on Banshee, which just works, boots up every time when I start up, and sits on my eighth desktop playing music all day long if I want it to. And yes, I know it contains proprietary code from Mono, and I don’t care, I tell you, I don’t care! Like Linus Torvalds, I find it much more important whether or not software works the way I want it to than whether or not it contains some code under some contract somewhere. So Banshee is the first of my ‘music’s, and for those who are interested, I have it set up to play through all the songs on my system that I haven’t played before — at least, not since the last full installation of Mint. This is done with a smart playlist that feeds directly into my play queue. Banshee V.2. came out in April, by the way, though it hasn’t made it into the Mint repositories yet.

I have three other smart playlists — one which keeps a record of the most recently played tracks, in case I get called away for a while, and want to see what I’ve missed when I get back; one which lists 650Mb of MP3 tracks at random to burn on to a CD to play in the car; and one which extracts every track with a certain number — all the Track 1′s, all the Track 2′s, and so on. This is what Rhythmbox wouldn’t do for me. Why do I need it? Because I have a collection of nearly 7,000 old radio shows, from seventy-eight different series, obtained mostly from OTRcat, which I copy bit-by-bit on to an MP3 player and listen to while walking round the block for exercise. Most of these were originally broadcast as weekly episodes, and although very few of them actually follow a serial format, where one episode depends on the previous one, it still makes a lot more sense to listen to them in the order in which they were originally broadcast. So my listening plan goes like this: all the first episodes from each show in alphabetical order, then all the second episodes, then all the third episodes… and so on.

But how to get them in that order? Well, since the tracks came in separate directories — one for each show — I eventually worked out how I could write a batch script incorporating the mp3info utility which would step through each directory and tag all the shows in the directory with track numbers from 1 to n. For the record, here is the script:

#!/bin/bash
if [ -d "${1}" ] ; then
  cd "${1}"
  pwd
  mp3info -g "Comedy" *.mp3
  t=0
  echo $t
  for file in *.mp3
  do
	let t=t+1
	mp3info -n $t "$file"
	echo $t
  done
else
  echo "Error: bad argument. Expected a valid directory name for the first argument"
  echo "Bad directory name = ${1}"
  exit 1
fi

Having got all the tracks tagged with sequential numbers, I can load them into Banshee, use a smart playlist to extract all the Track 1s, copy them to my MP3 player, and so on. It works like a charm.

The second ‘music’ in my theme is Magnatune, the subscription-based music supplier founded by John Buckman. For those who don’t know, there are three levels of access to Magnatune and its ever-growing collection of independent music albums: you can listen for free with Rhythmbox or Amarok as long as you are willing to put up with ads; you can stream tracks with no ads for $15 per month; or you can download unlimited tracks (with no ads) for $30 per month. It’s a worthy venture, but it just didn’t work for me. For one thing, there is no separate Magnatune player for Linux, as there is for Windows, so the only way for me to play the music without ads was by opening a separate web browser, going to the site, and manually picking the albums I wanted to hear. When that album finished I would have to do it again; and meanwhile, if I got called away or had to answer the phone, there was no quick keyboard or mouse shortcut to pause the playback. Having more than one web browser open was also a nuisance when I clicked on web links in emails, for instance; sometimes they would open in the Magnatunes web browser rather than in the one I was actually using to work in. Of course, I could have used (and sometimes did use) the Magnatune add-in in Amarok, but that meant having two music players (Banshee won’t do it) and hearing the ads that I was paying $15 per month to avoid. In short, the free service was actually more convenient than the one I was paying for.

But the final nail in the Magnatune coffin was my discovery of the wonderful RadioTray widget, which plays Internet radio stations from your panel. Run, don’t walk, to your Package Manager and install RadioTray right now. Then right-click on the icon and add any of the following stations which aren’t installed by default:

Space Station Soma: http://yp.shoutcast.com/sbin/tunein-station.pls?id=1377845

Lush Soma: http://yp.shoutcast.com/sbin/tunein-station.pls?id=1263394

Secret Agent Soma: http://yp.shoutcast.com/sbin/tunein-station.pls?id=1377363

My personal favourite right now is Secret Agent Soma, but the others are great too, and you can find many more at Shoutcast. In fact you can choose from thousands of brilliant Internet radio stations which cover everything from 1930s police dramas to 2011 ambient grunge. And RadioTray responds to sound controls on your keyboard, so you can mute it immediately without scrabbling with the mouse and paging between windows. Fabulous stuff! This is what the twenty-first century is supposed to be like.

*Put another nickel in
In the nickelodeon.
All I want is loving you
And music, music, music!

– Stephen Weiss and Bernie Baum, 1949

Follow

Get every new post delivered to your Inbox.