Sunday, 19 September 2010

new reading list

So it looks like there isn't a cheap way to buy this year's Booker Prize shortlist; even the almighty buying power of Book People hasn't been able to get the books down below fifteen quid each for the most expensive ones, which is too much.

This is a pity, because I was all geared up for a burst of modern-fiction-reading. So here's what I'm doing instead: I've found on my shelves six novels which have at some point in the past been shortlisted for the Booker, and I'm going to read them instead.

They are, in chronological order:
  • Small World by David Lodge (1984)
  • Amsterdam by Ian McEwan (1998)
  • English Passengers by Matthew Kneale (2000)
  • The Sea by John Banville (2005)
  • Sea of Poppies by Amitav Ghosh (2008)
  • Parrot and Olivier in America by Peter Carey (2010)

My chosen pseudo-random reading order is alphabetical by surname: Banville, Carey, Ghosh, Kneale, Lodge, McEwan. This puts the two which we already know won at either end of the list, pleasingly.

Thursday, 16 September 2010

musicals for the autumn

The autumn season starts this evening with Gypsy in Long Eaton. Here are five musicals happening between now and the end of the year that I find particularly interesting.

Gypsy, Erewash Musical Society, September 13th - 18th

You don't see very many Gypsies around: it has no work at all for an adult chorus, except some dancers who should really be very young, and I suspect that it's a hard sell in spite of its moderate cult status among theatrical people. It is more than seven years since the last one I saw. I've found it a hard show to love but the real excitement here is that we're at the Duchess Theatre in Long Eaton, back in use for the first time since it burnt down in 2003. A new small theatre right on my doorstep is a terrifically exciting idea. Let us hope that with improved facilities EMS and LEOS will lift their standards - they are two companies who have persistently seemed to play to amdram cliches, static staging, old young women, choruses looking out into the auditorium to see Auntie Joan at idle moments. Perhaps we will see some life breathed into them now.

Fiddler on the Roof, Derby Gilbert and Sullivan Company, October 8th - 9th

Like last year, Derby G & S are doing two shows at the Derby Theatre, the old Playhouse, in the same week. They'd run out of easily sellable Savoy operas pretty quickly if they did two of them every year, so this year they're doing HMS Pinafore for three performances, taking a day off, and then doing Fiddler on the Roof for three performances. This'll be the first time I've seen them doing non-G & S and all I really know is that they're taking it pretty seriously, because I saw Peter Bostock last night and he's grown a beard for it. We know that it will be well sung, of course, but there are potential pitfalls here. In G & S it is a matter of convention that you often cast people who are wildly the wrong age for the part, as you do in opera (apparently), and you can stretch especially the heroines (who are all supposed to be very young) quite a long way before anything breaks. Fiddler falls apart sooner if one or more of Tevye's five unmarried daughters is quite obviously getting on for 40 or if their suitors are middle-aged. And whereas Andrew Nicklin's direction of G & S is always wonderful, I've not been so impressed with his American musicals for Derby Opera and Rolls-Royce. So we'll see.

Beauty and the Beast, Good Companions, October 12th - 16th

We're going to be having Beauty and the Beast for breakfast, lunch, and tea, and probably in church on Sundays too, in the next couple of years, just as we had Thoroughly Modern Millie and before that Jekyll and Hyde, but even more so. Fortunately we have a couple of what should be good productions to get us going, this one and Nottingham Operatic's a few weeks later, so we can get an idea of it and then not need to sit through whatever Mansfield and Ashbeians and LEOS make of it. (If we like it enough after twice then we can go and see what John Lewin makes of it with Christchurch in January.) I am slightly too old to have seen the film when young so I am uncertain about what to expect. It was a big effects show on Broadway and I guess this production will be trying to make a splash - Good Companions are back at the Derby Theatre for the first time since I think 2002 and I don't think they'll be skimping.

Parade, Greasepaint Productions, October 26th - 30th

Everyone must come to see this! If you don't come to see a production of Parade when one's available, then you will have only yourself to blame when all there is in the world is people doing Mamma Mia and Full Monty and Disney. Parade is one of the hardest and darkest musicals out there and it is typical of Greasepaint that they should be willing to give it a go, having taken on similar challenges in recent years with Sweeney Todd and Ragtime. I have never seen it performed and really I have no idea how it plays. But I am really looking forward to finding out.

Titanic, Little Theatre Company, November 15th - 20th

The mind boggles. It really does. Burton Brewhouse is a horrid place to put on a show of any scale, a narrow awkward stage with nowhere to move scenery to and nowhere to put a band and the stage on floor level at the front with a million short rows of seats rising steeply into the sky away from you. Little Theatre Company are (or used to be) laughably bad at doing musicals; I haven't been back there since they rolled out an absolutely dreadful King and I four years ago. And Titanic is enormous in its scale and ambition and amount of skill required. What is going to happen here? But as I said just now, if you don't come and see this sort of thing then everybody's just going to do Disco Inferno and "Back to the 80s", whatever that may be, for ever. So come and see it! What's the worst that could happen? (Apart from it hits an iceberg and everyone drowns.)

I don't think these are necessarily going to be the best five musicals of the autumn (in fact if they are I'll eat my head) but they're five interesting ones that I am certainly going to be at. I'll keep you posted.

Sunday, 5 September 2010

how to think about RemoteViews

The RemoteViews mechanism in android is used in two crucial places which anyone writing apps is going to have deal with sooner or later: home screen widgets and status-bar notifications. But the documentation for it lacks a high-level overview and so it is quite hard to understand. Here is that high-level overview.

First, a RemoteViews object is not, whatever you might think from its name, a View. It is similar but don't fall into the trap of thinking it is a subclass; it is more like an alternative.

The RemoteViews mechanism is a way of letting one process pass a chunk of screen to another process to be displayed as part of the second process's layout. You create a RemoteViews object by specifying the layout xml file you're going to use for your chunk of screen and then calling a series of methods to populate the various bits of the layout.

These methods are exactly analogous to the ones you could call on a View object if you'd just used that layout xml in your own process, but there's no underlying View for them to be called on so what's really happening is they're getting stored up to be called later at display-time. When you've finished setting things up how you want them you pass the RemoteViews object to the other process, the one that's going to be doing the displaying.

In the common case you don't do this directly: when your RemoteViews is going into a notification you set it as a field of the Notification object and then when you pass that Notification to the NotificationManager it does the IPC for you, and when your RemoteViews is going into a home screen widget you pass it to AppWidgetManager.updateAppWidget and that does the IPC. When the second process receives your RemoteViews object, with it having been appropriately serialized and deserialized in a way you don't have to worry about, it calls the apply() method on it and then it gets displayed: at this point there actually is a View object and all the things that you did earlier get applied to it.

You can never yourself get to this View object: it's in someone else's process, after all. If at some point you need to change what's in the View you have to fiddle the RemoteViews object and then pass it again to the process doing the displaying, and it has to go through the applying process again.

A note on calling the setFoo methods: these methods don't map one-to-one onto the familiar methods you would use to set attributes of a View. So for example if your layout xml file contains a TextView element which you've given an id using the android:id attribute in your xml - say android:id="@+id/title" - then you don't have a TextView to call setText on but rather you must call setCharSequence on your RemoteViews object, specifying as your first argument the id of the TextView element (in this case R.id.title) and as your second the name of the method you really want to call, in this case "setText".  The third argument will then be the actual text you want to put into the TextView. This means that you can only get to methods of the eventual View which take a single argument, and only if that argument is of one of the types which RemoteViews supports. It also means that in effect your method type checking is put off until run time: if it turns out that there is no method setText(CharSequence) on a TextView, you get an exception when the other process tries to show your view and that's the first you know about it. So you have to be careful.  Observe also that you have to be more precise with thinking about types: there is no method setText(String) on a TextView but normally you can act as if there is because a String is a CharSequence so you will just get setText(CharSequence) instead. But if you try to do the same thing with RemoteViews, by calling setString instead of setCharSequence, then it won't work and you won't find out until you get the exception at run time.

Tuesday, 17 August 2010

The Last 5 Years

What do we expect out of a musical? We want imaginative, creative direction but we don't want direction for the sake of it; sometimes you can be imaginative and creative and come up with something that isn't any good. It is easy to confuse imagination and creativity with originality; just because something has come to you from nowhere in a spark of sudden inspiration doesn't mean that it hasn't previously come to a hundred other people or wouldn't come to them if they were in your situation. And even an original idea does not always turn out to be a good one.

What is or should be a director's object in a musical? I don't want always to see everything done in the way I would have thought of, but I do expect a director to have done his or her job with me in mind, in other words to have directed a musical for people who are willing to pay close attention and who want to have that attention rewarded. What annoys me is when a director seems to have thought "that would be good" in the abstract; there is no good apart from what is good for the audience. Inaudibility, for example, is an absolute fault: if I can't hear the words then the director has failed to do the job, no matter what his or her artistic motivation. Showing off is a fault: I may often criticise a director for being incoherent, but I don't think I've ever criticised one for being too self-effacing. A musical that's worth doing at all is worth doing the way that it's written (even if it is also worth doing in other ways).

How much slack should we cut a young, relatively inexperienced director? Some, of course. I'm sure that John Lewin himself looks back on some of his early work and thinks that he could have done it better. I often see musicals directed by established directors who seem to keep getting asked back only because committees are reluctant to give someone new a shot; when you do see a new director it is often someone whose main qualification seems to be that they are an established performer. Sometimes this works well (Phil Simcox, for example), and sometimes it doesn't. So seeing someone direct because they have themselves apparently decided to take the bull by the horns is unquestionably a good thing, and if it happened more often the world would be a better place.

All of which is a roundabout way of saying that of course I'm glad that Oliver Metcalfe did Last 5 Years, and I wish him every success, but I still sat there annoyed at his not having done it very well. The two singers were very confident, knew the piece well, and were not apparently reliant on being able to see the musical director (who was playing a hard piano part and not conducting in any case) - so why did the band need to be down the front? If you put them at the back of the stage and moved the whole production six to eight feet towards the audience you transform the show. This is a beautiful and personal and intimate piece; it is built entirely around the characters and the audience's personal connection with them. The closer they are to us the better. The ideal production would be in a small room with no raised stage, just six musicians behind the actors and lightly raked seats. Chad's Octagon would be absolutely ideal for it. If you are going to lift it away from the audience you need to keep that intimacy. Catherine Orton's production at that benighted leisure centre two years ago was an absolute model. It occurs to me to wonder whether they intended until they got to the dress rehearsal to use the pit under the stage; that would explain why neither of the performers set foot on the board which covers it all evening. Even if they did, the correct solution should have been obvious when they got into the theatre.

Of course, if you'd done that then you wouldn't have been able to bring the tabs across to change the set slightly in the middle and then change it back again. But why did you want to do that? What does it add? It just distracts. It isn't even textually defensible; the middle set (for the wedding) has a cross at the back but Jamie wouldn't get married in a church; as we establish at the beginning, he's Jewish and seems to be if not observant at the very least still actively immersed in Jewish culture (all those Shabbas dinners in Washington Heights). The whole thing is designed to work on one set that never moves or changes; trust that and your other problems go away.

So, the performers. Oliver Metcalfe is certainly talented but on this evidence is not multi-dimensional; we got a whole evening of the bow-wow style, popular on Broadway (or at least on Broadway cast recordings) but not yielding the sort of subtlety that I would have enjoyed, and were left with the impression that he was playing no-one but himself. It seemed of a piece with the performance that he had made no visible costume effort at all; it isn't very hard to dress plausibly like a 20-something New Yorker in the late 1990s or early 2000s but he didn't do it (they didn't wear their jeans down below the hips like 18-year-olds do nowadays). And he didn't go to any lengths to look Jewish either; it can't be impossible to dye your hair dark for a week (although I admit that it might be difficult, especially if you want the original colour back at the end of the week). I know I'm carping but I have high standards! What he could have done with was a director; anyone directing themselves in leading role is always going to end up being self-indulgent. Perhaps it works best when you are playing a character who is designed to work when self-centred (I'm thinking of Shane Perry's Sweeney and his Mack Sennett), but the difficulty of playing Jamie is that he seems like such a horrible person - a self-directed performer is only likely to slip further in this direction, it seems to me.

Jessica Nicklin. Aaaaaaah Jessica Nicklin.

Jessica Nicklin was absolutely splendid. We expect no less, of course. I love agile communicative performers. Cathy walks a fine line between appealingly vulnerable and shakeworthy doormat and we had just about the right balance.
Her costumes also looked pretty hastily assembled but she looked the part (she can only be 18 but didn't have any trouble coming across a few years older) and her accent was stable; this has been a problem in the past, wandering around the South and everywhere else in Best Little Whorehouse in Texas last year, but she seemed to have it pretty well nailed for Wizard of Oz and it was fine again here.

I like nothing more than unashamedly serious character-driven musicals and I'm in favour of young people and of trying something; so why am I half-hearted about having enjoyed this production? Is it because I find actively bad direction, identifiable mistakes, more annoying than passively bad direction? Because I don't like Jamie? Because it just turned up at the wrong time for me to get the most out of it? I don't know. I find myself in the odd position of seemingly having more to criticise than to praise but also of thinking that whatever we might have had differently, we unquestionably in a broad sense need more of this sort of thing.

Friday, 13 August 2010

awesome on Fedora 13

Not only is the awesome window manager not shipped with Fedora 13, it doesn't even compile. Here's why, and how to fix it.

awesome communicates with the X server not through the xlib library like most people do, but through the newer xcb library. Under the hood both of these libraries talk the same X wire protocol to the server, which is why the server never needs to care which you're using. The principal relevant advantage of xcb here seems to be what the xcb people call "latency hiding" and Julien Danjou, the rather enthusiastic awesome lead developer, calls being "asynchronous" as opposed to "synchronous". As awesome uses the cairo library to do some of its drawing, it needs to have an xcb-enabled version of cairo available; the version of cairo shipped with Fedora 13 is not so enabled.

Fortunately, it is easy to build your own cairo:
  • install the xcb-devel and xcb-util-devel rpms from Fedora (this should be just "yum install xcb-devel xcb-util-devel" if you're set up properly).
  • grab the cairo source rpm from a Fedora mirror: source rpms are in releases/13/Fedora/source/SRPMS/ and the Fedora mirror list is at http://mirrors.fedoraproject.org/publiclist/Fedora/13/ .
  • install the cairo source rpm - this will give you a bunch of files in /root/rpmbuild , assuming you haven't changed your setup to make it do something else.
  • edit the cairo specfile (/root/rpmbuild/SPECS/cairo.spec) to build with xcb. All this needs is adding an extra argument, "--enable-xcb" to the configure invocation at line 58 of the file. You should also increment the release number (line 8 of the file) so that rpm will be able to see the package you're building is newer than the currently installed one. For bonus points, you can add an entry to the top of the changelog, but if you're not going to be distributing your new rpm nobody except me and Santa will ever know whether you do this or not.
  • build a new cairo rpm: "rpmbuild -ba cairo.spec". This will leave you with newly built cairo and cairo-devel rpms in /root/rpmbuild/RPMS .
  • install these rpms directly with the rpm command.

You can now build awesome in the usual way: download and untar the source then run "make", and as root "make install".

Now you've read that, here's the easy way: go to http://repos.fedorapeople.org/repos/thm/awesome/ , where Thomas Moschny has made available a modified cairo rpm and an awesome rpm to go with it. You can add one file, which he gives you, to your /etc/yum.repos.d and then just "yum install awesome". But aren't you glad you know what's happening and why you had to do that?

To make awesome your default window manager within the default Fedora GNOME setup, run:

gconftool-2 --set /desktop/gnome/session/required_components/windowmanager awesome --type=string

If you're going to run awesome, you probably won't want the GNOME panel so you can disable it:

gconftool-2 --set /desktop/gnome/session/required_components/panel true --type string

GNOME needs to think you have a panel configured but this command just sets /bin/true to be your panel so you don't get anything displayed.

Configuring and using awesome is outside of the scope of this document. But stick with it and soon you will find that all other ways of using a computer feel terribly clumsy.

Monday, 22 March 2010

Jake Thackray playlists

All of Jake Thackray's recorded music, more or less, is available on Spotify, but not in a way that makes it very easy to get at. EMI's 4-CD box set contains all four of his studio albums, plus an entire acoustic alternative of one of them, plus a load of extras, but as far as Spotify is concerned it's just 4 CDs. So I've put together some playlists to make it easier to pick one of the albums and listen to it, and here are the links. His first album was Last Will and Testament; its orchestrations don't at all reflect his live performance style so you may prefer to listen to the acoustic version, although the track listing is not exactly the same. His second album was Jake's Progress and his third Bantam Cock, with decreasing amounts of accompaniment, and in his last album, On Again On Again, he finally got down to the sound of a man and a guitar, much the most natural way to hear him. There's also a live album, released as Live Performance, containing 29 songs. I've collected the miscellaneous songs from the box set into another playlist for completeness - these seem to be a mixture of demos, singles, alternate takes, and songs that were rejected for the released albums.

There are two collections also on Spotify, Lah Di Dah and The Very Best Of Jake Thackray. These each contain assorted tracks from the individual albums.

The links in this post are all to the http URLs that Spotify generates for you, not to their "spotify:" pseudo-URLs. I don't know whether that's better for you or not. Please let me know if you have a preference.

Saturday, 2 January 2010

this year things

"I will not call anyone nellie or butch, unless that is his name."

This isn't a resolution thing - as any fule kno, serious resolutions are for Valentine's not for the new year - but a statement of intentions thing. So this year you can shout at me if I fail to do the following:

- learn Japanese. Japanese is challenging because it's completely unlike English - not just different writing systems, but completely unrelated vocabulary and syntax and everything. But it's not as challenging as some languages would be; the pronunciation is not exceptionally hard for an English speaker (not as hard as Chinese, for example) and of course there's lots of it around to practise on on the web. I'm starting off by fiddling around with whatever learn-yourself-Japanese stuff I can find on the web and by learning the hiragana, one of the three writing systems. I don't really know how I'm going to get the rest of the way. I'll have a look in Waterstone's tomorrow.

- get out of my job. I don't know that I want another one that's just the same sort of thing with possibly more money and fewer asshole colleagues (if you work with me you know who I mean); at some point you've got to do something you actually want to do. If only I had a better-defined idea of what that is.

- draw more. I've not been doing very well at learning to draw, partly because it is rather disheartening to be doing it badly. But you never improve if you don't practise.

- finish decorating my billiard room. I've got some sort of idea of how it's going to look and as I'm not hugely inconvenienced by not having the room available to use, I can take my time and do it properly. So no deadline, but it's only a small room and so some evening and weekend time should get some progress made.

-blog. I'll be blogging progress on all of the above and attempting to write something about the musicals I see - I seem to have a lot of strong opinions that nobody hears except my mother in the car on the way home from the theatre or Jarrod at work the next day. Now everyone who wants is going to be able to hear them! So possibly just my mother.

- be clearer. Now I have written this list one thing that is clear is that I am unclear - I don't seem to know how I'm going to do the things I want to do or really why. We'll have to see how that goes.