Monday, December 31, 2012

Anime — 2012 in review

A fairly weak year in all, with pretty much no series that grabbed, as can be seen from the gradual slowdown of reviews over the year.

Carrying over from last year, I watched Chihayafuru, and the third season of Natsume Yuujinchou; and on DVD, I started to watch Puella Magi Madoka Magica and House of Five Leaves, but haven't finished either of those yet.

Winter season

New Prince of Tennis I watched as a filler, back when we had enough series on the go to watch a couple of episodes a couple of evenings a week, and was mostly harmless.

I'm also still in the middle of the 4th season of Natsume Yuujinchou, which has lost a measure of the charm that it opened with, but will cover that separately when I'm done.

Last, and the best looking of the season's choices, Moretsu Pirates, which started out in surprisingly good form, with our heroine rising to the challenge of an unwanted inheritance, and showing some decent can-do, by teaching Kzinti Lesson 101 to a mysterious ship that had been dogging the school yacht club cruise exercise. But that potential plot line just got dropped, and as we moved onto the actual space pirates, arc after arc followed where any tension or challenge was undercut into anti-climax, as everything had to end up happy-happy and safe. And so a two cour series dragged out until late November.

Spring season

Ozma, I reviewed at the time.

Saki: Achiga-hen was a spin-off from the earlier school-girl mahjong series, focusing on a different school team battling their way into the national championship, but with only 12 episodes to date (more to air in the new year) covering from years before the events of the first series into the tournament stage beyond where it had reached, it's way more compressed. Three episodes pass before any games are played, and it's even then most of them are done in fast-forward (so no real display of their magical-girl style abilities), until the final match, where the first game is then spread over the last three episodes.

Everything else is unfinished, may not finish.

In arbitrary order -- Space Brothers had an interesting premise, but a mix of slow, slow pacing and Japanese humour ground me to a halt about ten episodes in. One episode of Kuroko no Basuke was enough so soon after New Prince of Tennis (only so many magical boy anime I can take at a run); Folktales of Japan turned into too much of a good (the same) thing, with two tales out of three seeming to involve a bumpkin stumbling onto some magical fortune, and ne'er-do-well neighbours trying and failing to duplicate the trick; Kids on the Slope was a josei series about jazz and school life in the 1960s, but when it got to be an "A likes B likes C likes D likes..." chain, I stopped caring; and while the art style is interesting, Tsuritama's characters failed to engage me.

Summer season

So, I'm in the middle of, and will probably finish Uta Koi, a collection of loosely inspired stories about the Hundred Poems.

Apart from that, I tried an episode of Jinrui wa Suitai Shimashita, which was amusing for starting with the MC saying the terrifying words "I'm from the government, and I'm here to help."; but it laid the satire on without subtlety, and what I saw from threads on /a/, that continued, even beyond the bounds of reason for the apparent setting. So not picked up.

Autumn season

Unfortunately, Crunchyroll didn't pick up JoJo's Bizarre Adventures, which was the only title of the season that would have been a "must watch". I did try the first episode of Shin Sekai Yori, but it also failed to excite; and subsequent reactions didn't help, as it became clear that the adaptation was being done on a shoestring budget and was suffering from having pare down the original material hard to fit into the two cour format ("If you'd read the novel, you'd know that..."), so not picked up either.

Blast from the past — Neon Genesis Evangelion

So I actually rewatched the series that has been eating up a lot of my fanac time for the last nine years, the original DVDs with the as-aired series and none of the later retcons in the so-called Director's Cut revisions, as I did first time around. The main difference was that I watched with Japanese language and subbed all the way, rather than switching from the Texan dub part-way through, which had the effect, inter alia, of making Asuka less annoying in the episodes before she gets clobbered by the plot.

This is a series where you can't really step into the same river twice even if there are always going to be details that elude recollection. The first watching, unspoiled save knowing that if you were going to watch a giant robot anime, NGE should be it, but that the last two episodes were controversial, meant that everything came as a shock. After years of taking it apart almost frame by frame, with reference to the script in the main, less so.

It still falls into the stages of being Shinji, plus some Rei; then a long arc in the middle where it's really Asuka's story so far as I'm concerned, and only at the end, when nobody else is left standing, does it become Shinji's again. But then as is plain to see, it was Asuka whose plight struck me deeply first time around, and still remains the character that I wished the best for.

And, even knowing the orthodox interpretations, typically based on the DC material, there was nothing that on review shook any of the surprisingly heterodox conclusions I came to, from Asuka's lack of any serious interest in Shini through to the completely democratic nature of the upload-style "Gendo wins" Instrumentality at the end.

"Rebuild of Evangelion"

Yeah, the third of the remake movies came out about six weeks ago in Japan. After having been somewhat jaundiced by the first apart from the updated eye-candy, I still haven't watched the second yet. Where I said back then that it looked to be heading into bad fanfic territory based on the "Next Episode Preview", things panned out much that way in the end by all accounts, with all the characters reworked, in the new episode of the Shinji Ikari Show.

So, yeah.

Meanwhile the latest episode, Evangelion:Q seems to have discarded everything from its preceding "Next Episode Preview", and would be a whole new super-robot franchise, were it not that it's actually yet another Shinji movie, and one driven by an idiot plot to boot.

I wouldn't say that I liked the original despite Shinji, but back then he was just a harmless nebbish most of the time, despite his own self-denigration. The revised version from EoE was one who lived down to that evaluation, and this third version seems worse, if anything.

So, unless the concluding episode, Evangelion:||, pulls off something remarkable to redeem the preceding films, I doubt I shall be bothering with those, either.


is what the bike odo reads now; or just over 2390 miles in the year, 2688 total when adding in all the holiday cycling on hired bikes. Almost 600 miles in the last quarter, and 135 miles in December alone, only about a third of which came from unexpected journeys.

Having made the experiment of cycling home after lunch and working from home on the last working Friday of the year, I might do that again for other winter weeks, if there is good weather. It will help keep me from getting quite so out of condition for the spring.

Wednesday, December 26, 2012

Fifty years ago, today...

It snowed, and the snow didn't shift; temperatures staying below zero for more than a month. It was the winter where I got put off drinking milk, because our 1/3 pint bottles of school milk were delivered frozen before school and then jammed under radiators until break, resulting in lukewarm cream with blue icebergs floating in it.

Today by contrast, it is above freezing, and started bright, so I went out for a spin on the bike, passing through the one remaining flooded bit in the vicinity, where a village duckpond has annexed the road nearby; though rain has now set in again.

Saturday, December 22, 2012

Wet, wet wet!

It has been chucking it down these last few days, and looks to be continuing that way.

Thursday morning when driving to work, there were a few very large pools on the roads where water was collecting after draining from the surrounding fields, though the Bourn Brook didn't seem to have risen significantly, so I went home at lunch time, to remote work for the rest of the day, by a longer route, to be able to see and avoid water hazards.

Friday's forecast being for a respite, I cycled to work (Monday's forecast showing wet), and there were road closures for flooding around Caldecote then, though they were gone when I headed home mid-afternoon.

Dreaming of a wet Christmas is all very well, though the mild weather means I really need to go mow the lawn, but it's far too wet for that -- or much of the other midwinter tidying that I would normally do over the break.

Sunday, December 16, 2012

Powershell 3 -- automatic variable gotcha

PowerShell automatic variables are useful for giving a way in to system state, but oh, how I wish that they had been sigilled rather than looking like user-definable names that one might actually wish to define. And worse when the behaviour of the variable name changes between revisions.

Here's an example that bit me the other day, in the wake of WinRM 3 being pushed out on automatic update into an environment that had previously been .net 4, PowerShell 2 only. It was a script a bit like this (but without the $host reference):

In Powershell 2

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1     -1

xml            : version="1.0" encoding="utf-8"
xml-stylesheet : type="text/xsl" href="path\to\microsoft fxcop
FxCopReport    : FxCopReport

But in PowerShell 3

Major  Minor  Build  Revision
-----  -----  -----  --------
3      0      -1     -1      
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="path\to\microsoft fxcop 1.36\Xml\FxCopReport.xsl"?>
<FxCopReport ...

All because $input is an automatic variable rather than a user definable name -- and, worse, one that has had some semantic change between revisions. Now, if it had been $$input with the extra $ being a reserved character, this sort of unwitting name clash could never have happened. And there's no real penalty in having to type $$host to get the PowerShell host data, or similar.

Friday, November 30, 2012

43 miles to go

Due to some unforeseen opportunities for cycling. including a wonderful ride by the light of the full moon, to and from dinner out on Wednesday, I'm now closer than I had expected to my stretch goal for the year (making a total 5500 miles on my bike alone in 2.5 years) with a month to go. And with things to do over the weekend, and dry if cold weather, doing the best part of that remaining 43 miles in the next two days seems quite plausible.

Might I have to aim at 5555 rather than 5500? That would be pushing it, trying to fit in just under a hundred miles in the next month.

48 Hours Later: Two thirds of that 43 miles achieved, running errands in cold and dry (except where the sun had thawed things out by Sunday afternoon) conditions.

Tuesday, November 27, 2012

.Net under the covers

An interesting little oddity I stumbled across the other day, involving StringBuilder.AppendFormat, and a string which it turned out had had a GUID already expanded into it, and an unexpected exception result

so it looks like the parse for a number is run before checking that the format is even sane; not what one would have expected.

Recent Reading

I've actually gotten around to reading something that isn't on-line chat or technical over the last few months, so time for a round-up

The Clockwork Rocket by Greg Egan

Having skipped his intervening fantasy Iran novel, the return to physics driven story, albeit with a gimmick given away by a glance at the blurb, seemed worth a go.

Now, half the plot of his earlier Incandescence was how a woman in a pre-industrial society managed to avert an existential threat to her world by being Newton and Einstein rolled into one. Now, stop me if you've heard this one before, but the whole plot of this latest book is how a woman in a pre-industrial society manages to begin to mitigate an existential threat to her world by being Newton and Einstein rolled into one.

When, some chapters in, it became clear that this was indeed what was going on, I just went to the online auctorial physics infodump, because it had failed the "Who are these people, and why should I care?" test. One canon Sue was OK, but this got a bit too much.

Rivers of London by Ben Aaronovitch

By contrast, this book is covered with all the warning signs that normally turn me off -- fantasy, urban fantasy, secret wizards...

But there was something that seemed intriguing about it anyway, so I gave it a try. And such a contrast -- or to coin a phrase "That's the way to do it!"

And there are sequels. The second, Moon over Soho benefits from having set the scene already, and gives a chance to thicken the plot. The third, Whispers Underground then veers away from the line set by the first two into a more "secret London" sort of story, with a central mystery that wasn't really the same sort of police procedural sort of mystery that had driven the others.

Still, two out of three ain't bad. I just hope he doesn't just flog this setting to death.

Thursday, November 08, 2012

Take a hike, Wiggo.

On the news this morning, there was an item about Bradley Wiggins having been knocked off his bike and rushed to hospital -- which is not a nice thing to happen to anyone. But then they had a clip from him where in the first breath, he was invoking the sledgehammer of State against the victims.

If he'd said "I'm glad I was wearing a helmet, and I think all cyclists should.", that would have been fine; but we know that compulsion results in lowered cycling participation, as indeed does even the perception that you have to dress funny to do it. Certainly, I've cycled more since I decided that choosing headgear for the weather (to shade the back of the neck, to keep the head dry, or warm) made it more appealing than the one size fits all conditions notion of armour that I used to do.

Sunday, November 04, 2012

Out of touch?

There has been much waxing lyrical about touch UI in the last few days, from the likes of Jeff Atwood and even Herb Sutter. But somehow I don't feel that I'm in with this particular party.

Let's face it -- touch, just plain touch, has been around since the Apple Newton, and was workaday fare when it was called a Palm Pilot. And back in those days, around the turn of the century, even those 160x160 px screens and 16Mb of memory were good all-around workhorses. I had a couple of the Handspring PDAs, and later one of the Compaq palm-tops, and used them to death -- with the MessagEase keyboard, I could type as fast as I could compose, tapping and dragging the stylus; and I could do easy and accurate cursor navigation and text selection. With the PLua app, I could even code on and for the device (and have a single PalmOS app to prove it, for rolling various dice combinations for role playing games).

Fast-forward almost a decade, and I picked up one of the early and unofficial Android 2.1 tablets (the ViewQuest Slate); and though my skills on the MessagEase keyboard were somewhat rusty, I was still able to type faster than the device could keep up with, despite the ~3 iterations of Moore's law gone past in the interim. And the text selection model, combined with the necessarily fat-fingered capacitative screen, was pretty much unusable. While I could conveniently browse the web while on the khazi and compose terse forum posts, which was a plus over the old PDAs, anything that would involve quoting a section of another post just had to wait until I got onto a real computer.

This year, I've upgraded to an Asus Transformer, currently running JellyBean; and you know what? Despite the quad-core processor, the touch keyboard is still not as responsive as the Handspring one was, and is still way more intrusive. The big bonus to this device, though, is that it has a real physical keyboard and touchpad, which actually lets me select text in a way that isn't intrinsically painful.

So, what is touch good for? Well, even with the keyboard docked, scrolling pages is easier; and the multi-touch zoom makes it easy to expand web-comics so I can read the speech balloons. And I will prod at hyperlinks directly rather than use the pointer via the touchpad (except on really cluttered pages where the pointer precision is indispensable), because the tap-to-activate isn't in my muscle memory at all.

Overall, the device is something that suffices for me as a connection to the Wired when I'm on a cycling holiday, and don't expect to do more than read mail and blogs, and post a bit in the forums (or use it, at pinch, as a camera). But it's really a tool for snacking, rather than cooking -- for example, though I used the Asus while having coffee in bed this morning, I'm now composing this post on my 5 year old laptop running Vista, because it's still simpler to cut and paste hyperlinks that way, and the touchpad plus buttons are just like extensions of my will; and as such, I don't get the urge to reach forward and physically touch the screen, because my intent already has the same effect without conscious intervention, and with greater precision to boot.

And talking the transformation of will into reality with precision, these modern touch devices suck at accessibility. If you are in a state where you are left with just limited use of one hand (and not your even your preferred one at that), a touch device becomes essentially unusable, in a way that mouse plus on-screen keyboard manages to avoid.

Side rant -- one of the things I really, really do not like, even though I now have an Android device with the full Google experience (i.e. I can use Google Play, rather than go to one of the other flaky app depots out there, or scavenge for out of the way DDLs), are websites that detect Android and divert you to a "here's our app" page. No, I don't want your copiously and sulphurously qualified app, I just want your web page written in responsive and universal HTML+CSS+JavaScript, thank you very much -- just the text and the pictures, ta, very much.

Saturday, November 03, 2012

Updating the last vsvars32.ps1 you'll ever need for x64

I've been using Chris Tavares' ultimate vsvars32.ps1 in my powershell start-up script pretty much since it was first posted. But of course, it shows its age in that it assumes you're running 32-bit, given the registry path it uses.

Now, you can hard-code based on your hardware, or assume that anything you're using nowadays is 64-bit (except, of course, when you explicitly run the x86 version of powershell); and there are various ways of detecting current bit-ness. But the simplest way of doing things is to take the behaviour-driven style of detection used as standard in JavaScript and just write

or reversing the order of the two registry keys to taste.

There are of course alternative ways of getting the path we're eventually aiming at e.g. via environment variable like VS###COMNTOOLS where the ### is a number like 90, 100 or, nowadays, 110, depending on VS version.


With the end of summer time, and temperatures getting into single figures C most of the time, this weekend it's time to declare the tomatoes and courgettes done, even the ones in the greenhouse, which have mildewed rather than ripen. One last courgette will go into tomorrow's supper as will the last picking of runner beans, and then for veg it will just be the perpetual spinach until the broccoli (last years or this) decide to come on stream, if at all.

We did actually get about a couple of pies' worth off the Bramley in the end, in the form of windfalls that had been concealed in the main foliage -- and there are still a dozen or so fruit on the Charles Ross; so the harvest may just aboue last us through the month, rather than into the new year.

Meanwhile, the car passed 7000 miles on the way home last night.

Later: The runner beans actually were enough for two dinners, so we had the last on Tuesday.

Sunday, October 28, 2012

Twenty Five Years On

Wikipedia tells me that the BBC TV series Blackadder III aired from 17 September to 22 October 1987, Thursdays at 9.30. It was one of the very few programs airing I felt inclined to watch that year -- and even so, I forgot to turn the box on for about half the episodes, being on late enough that either we would have already been doing something else after supper, or maybe even thinking about retiring for the night. Or, given that we'd taken a somewhat suspect tree down in the garden of the new house -- fortunately ahead of the not-a-hurricane a few days before the last episode -- it's quite likely that I might been in the garden feeding the smaller branches and twigs (not suitable for firewood) into an incinerator.

And so it would have been about this time, shortly after the series had ended, and I calculated that we'd spent more per program (taking the then current license fee pro-rata) that year than the two of us going to the cinema instead would have cost, that we gave the box the heave-ho.

And that was before home computers of any note, and four years before I even got on the internet at work. As Tim Worstall pointed out today, its opportunity costs like this that, trading off one form of leisure activity against another, that are going to be contributing to an observed trend away from the original idiot box.

Saturday, October 27, 2012

End of season cycling

At the end of daylight savings, I've clocked up to 5378.7 miles on my own bike, and thus going over the 270 miles I needed in the quarter to match miles done that way in the whole of last year -- 5500 miles has to be the stretch goal for the year. And a last cycling holiday with CycleBreaks put in 98 miles more, which is going to make for a good total, despite the dreadful first half of the year.

View 25-Oct in a larger map
Shingle Street low tide

Shingle Street low tide

On the first day, cool, cloudy, but dry, I aimed for the King's Head at Orford for lunch -- which meant a lot of meandering to delay my arrival until decently after noon. Fortified by sausages and mash, and a couple of pints of Ghost Ship, I then got to Shingle Street soon after 3, and made my way to the water's edge to get my feet wet, before heading back. At ten past four, it was a bit late to stop at Sutton Hoo, but by the time I got back to the point where I could make a quick dash across the A12 to the hotel, it was still too early to want to stop for the day, so I got the OS map out (instead of the custom A4 sheets, folded back about half an inch at the ends to fit in the map cover designed for an OS map to be open in, that I'd been using to that point) for a quick off-piste run through Martlesham and the Bealings.

So, having done almost 60 miles, I felt a bit creaky when getting up from the seat in the bar to go to table, but nowhere as much as after doing 45 miles back in March from the same base. And now with winter closing in, I just have to face losing condition again.

View 26-Oct in a larger map
Sitting in the GAR seat

Sitting in the GAR seat

Friday, rain started while I was at breakfast, and I nearly called it a wash; but by ten, the rain had just about stopped, so I aimed for Framlingham for lunch, with a lesser amount of meandering (accompanied by drizzle for the last few miles) to arrive after the Lemon Tree Bistro would have opened. Sustained by lentil soup, a lamb burger, and a Black Forest sundae, I then headed back to stop at Sutton Hoo for a brief visit, before heading back through Woodbridge -- where I managed to foul up a gear-change on an uphill, taking a while to disentangle the chain from where it caught on the inside of the front chainwheel. So this time I did take the shortcut across the main road.

Tuesday, October 23, 2012


Too many distractions and too much to do at work to blog much at the moment, let alone explore recondite bits of software, alas.

Strong winds last week -- though not as strong as 25 years earlier -- blew down the second-flush plums, most of which were perfectly ripe and very tasty.

It was also Jemima's annual trip to the vet -- for which she prepared by catching and eating a pigeon. I'd certainly put the fact that she weighed ~100g more than a year ago onto having a tummy full.

And though it ended up with me lucking out on Friday afternoon on the supposed 20% chance of rain (according to the Met Office forecast that morning), I cycled to the office every relevant day last week, as well as out to dinner on Wednesday evening, and managing 260 miles so far this month, putting all my distance goals in reach by the end of the month, not the end of the year.

Monday, October 15, 2012

Nature notes

Despite blackberries in the hedgerows really having come on stream at the end of last month, yesterday, while out picking, I found a patch where buds were still bursting, even this late in the season.

A few nights ago, looking out late at night to check the weather, I noticed movement in the garden below, something shaggy moving in the shadows, not looking like any of the fluffy cats in the neighbourhood, and definitely not a fox (which we do get from time to time out here in the countryside). Then it moved its head into the streetlight, and revealed itself to be a (probably juvenile) badger.

Sunday, September 30, 2012

Harvest Home

Picked the last of the (April blossom) plums today -- the best part of a month later than usual; and made a first run for blackberries, ditto late. And while the cherry tomatoes outdoors seem to be coming to the end of their run, the runner beans are still going, albeit slowly, and the greenhouse tomatoes are just about hitting their stride.

The apples on the Charles Ross are getting pecked by birds, but when I've salvaged them, they still taste under-ripe.

The broccoli -- old and new -- were ravaged by caterpillars this month (again way late), so I don't know whether there'll be anything to harvest next year. But then I'm still getting leaves off the one surviving chard plant from last year as well as this year's run of perpetual spinach, so I have no clue about what the garden is doing.


Well, I managed to surprise myself this quarter. After a fairly wet start, by the middle of this month it started to seem like I might manage to come close to covering 1000 miles on my bike, but with 23.3 miles still to cover on Friday evening, it looked like it might be a bit tight. But with fair warm, if breezy weather on Saturday, I could take a detour on the way home from town to do some gratuitous miles, and go over the target to about 1006 miles.

Then an unexpected excuse arose for another dash into town today for some shopping I'd missed yesterday, and suddenly 2^10 miles went from being an insane stretch goal, to feasible, to achieved, thanks to a side-trip to pick blackberries, at a total of 1025.7 for the quarter, not counting the miles on a hire bike, back in July; and 1901.5 -- 2000 miles would have been beyond insane as a goal -- for the year (or 2103 all-in).

That leaves me just under 160 miles to match last year's total, and 270 to match the miles done excluding hired transport. With a few weeks of cyclable season left, the former seems achieveable, and the latter a plausible stretch,

Monday, September 03, 2012

Recent Reading

Humanity's Fire Trilogy by Michael Cobley

This starts off with a bait-and-switch, the solar system under attack by a swarm of machine intelligences as last-ditch starship launches try to escape the plague. Then fast-forward to a time when, after the temporary inconvenience, Earth is a minor power in a well populated part of the galaxy, and has rediscovered one of the colonies of that desperate exodus. Which just happens to be where a previous cycle of spacefaring civilisation fought the last major battle.

In all, it's harmless spaceship fiction, with a moderately novel cosmology of sedimenting layers of hyperspace, and a heavy seasoning of tropes from cyberpunk onwards; though the ending suddenly arrives in a cloud of anti-climax.

Despite the title, there's no Campbell style "humans are the best" -- the human colonies are more the people who are in the wrong place at the wrong time, with the major blows against the various antagonist factions coming from other sources.

Verdict: entertaining enough for me to have picked up a volume per year as it came out in paperback, but not a classic.

Helix by Eric Brown

His Kethani was harmless enough, and I'm a sucker for Big Dumb Object SF, so I picked this up as part of my stash of holiday reading.

Oh dear. The first chapter sets up a greentarded future a century or so hence, which somehow manages to combine a disease and CAGW ravaged humanity down to the tens of millions with a viable long-shot starship program. The second chapter flips to humans in fursuits in some frozen environment, suffering under a stock model Church. In the third, the starship, 1000 years out, traveling at half the speed of light is a parsec from a gravity well -- then a few moments later it crash lands on an apparent planetary surface.

At this point I put this travesty down, having given it three strikes and it's out, with just one afterthought -- if you're running a 1000 year last-chance colony mission when the human race is dying out due to transient ecological issues, aim for somewhere that it likely to be habitable a millennium hence, by doing a simple cometary orbit to the Kuiper Belt, and expect homeostasis to have reasserted itself by then.

Saturday, September 01, 2012

Once More with feeling

And it's time for the Cambridge Film Festival again, this blog's original raison d'être. So, I checked out the features program on-line.

It may be the way that the puff-pieces are written, but once again I'm underwhelmed, and am left thinking in some cases "Why would anyone make that film?". Can't see myself making the effort to go to any of them.

Eastwood's Unforgiven, which I saw on late night TV while on holiday back in May will probably be the only film I see this year at this rate.


So 619 miles on my bike since the end of June, or 746 in total -- meaning nearly 400 miles in August. So, I should push the 1000 miles comfortably this month, all being well, and can see how the last quarter of the year shapes up.

Tuesday, August 28, 2012

Fortunate Fall

This morning, presumably as a result of Saturday's drenching, my bike was squeaking a lot on the ride to work. By the time I got there, I'd just about pinned it down to "something in the front wheel".

I didn't get around to doing anything to it at lunchtime, so it was still squeaking on the way home. But, at a T-junction on the cycle path, I wanted to turn right, while another cyclist coming from the blind corner to the left also wanted to turn right -- result a low-velocity collision as our front wheels met.

We ascertained that no damage had been done, and cycled off. A hundred yards or so later, I realized that the front wheel was now running quietly again! So, no need to try haphazard lubrication and hope.

Sunday, August 26, 2012

Three hot days and a thunderstorm

Or so goes the traditional English summer.

After the hot weekend, and a couple of dull days, the weather brightened up so I could take Karen out, first to the exhibition of Han grave goods at the Fitz (weds), then to the Crown and Castle for lunch (Thu) where we sat out on the terrace until the haze came up and the wind strengthened (as we were moving on to coffee), and again on Friday, when Karen's mother came to visit and we went out for lunch, and again sat outside at the Plough at Coton.

But then Saturday...

It sprinkled a bit around 10-ish when I wandered out to do a bit of shopping, and a bit heavier burst after I got back; and it looked fair and the radar tracking the weather suggesting it would miss us, so I headed off to the Plough at Fen Ditton for the CAMDUG meet-up. And for a while thereafter, we sat and chatted out on the riverbank in the sun -- until suddenly all went dark.

We got inside ahead of the rain, which then tipped down in stair rods with hail for an extended period, before brightening up.

So then time to cycle home again; and by the time I got past the Elizabeth Way bridge, it has started sprinkling, and carried on that way until I had gone through Cambridge -- at which point the heavens opened again, so it was just head down and pedal, being glad of just having silk shirt and lycra shorts, which were reasonably comfortable when saturated, even though the rain was now cold (unlike a couple of weeks ago when I got similarly caught in torrential rain on the way home from work). Fortunately I got home ahead of the encore with hail.

This morning, looking at how much the pond had been refilled, it seemed like we'd had well over an inch of rain in total.

Third time lucky

After two previous attempts were at least partially a wash-out, this year's late August cycling holiday in Norfolk went without rain.

Arriving at the King's Head soon after midday on the second day (temperatures pushing 30) of the one really hot weekend we've had this year, I headed up to the Gin Trap at Ringstead for lunch, then out to Burnham Market along the back lane that's marked as a cycle route.

View 19 August 2012 in a larger map

Following a shandy at the Nelson 1805 (formerly the Jockey), I headed back, deciding on a different route, through the narrow lanes to Syderstone. I didn't stop at the sign saying "Unsuitable for motor vehicles", but carried on into where it became unmade. The first bit was loose stone, so I needed to push, and later there were stretches of dry loose sand, which were for going barefoot and pushing -- though in the late afternoon heat, and without air cooling, I was dripping with sweat on the pushing sections.

I didn't quite make it to the main road unscathed -- just a few yards short, there was a pool of silty mud across the whole track, which clung to the tyres as I pushed, and oozed between the toes.

Back at base, despite the two refreshment stops, I sank a couple of bottles of mineral water; and then the same again plus a pint of Spitfire over dinner.

View 20 August 2012 in a larger map

The next day was duller and cooler; and the route I took through North Creake aimed to do in reverse the path through Holkham Hall I did last year, only this time there was no garden produce for the picnic lunch on the coastal path towards Wells. Indeed everything was being late -- not even blackberries were ripe for picking; mostly still having flower buds opening.

Year without a summer

Blackberries way behind schedule (blossom and buds way over-exposed)

Holkham Hall

Holkham Hall

With the hour advancing, by the time I was heading south from Wells, it was too late for looking for pubs, except if they'd be open all day, so I just took an easy way back.

View 21 August 2012 in a larger map

The last day's ride was aimed again for a Gin Trap lunch, going to Sandringham, following the cycle route to Sedgeford, then detouring out to Heacham, using the cycle paths to Hunstanton, thence to Ringstead.

Ringstead Mill

Ringstead Mill

The last bit went cross country, taking an early turn from the cycle route towards Docking (passing the one blackberry bush I saw all weekend with ripening berries), then the road to Fring where I hardly had to pedal once (and then only because of a gusty south-westerly), before taking a final loop around the (for once, dry) green lane to the west of Great Bircham; totalling about 95 miles in a hotter and thus less energetic holiday than last month.

And then home, with a token few sprinkles of rain on the windscreen on the way.

Friday, August 17, 2012

The prodigal returns

Yoko, our female Tonkinese, managed a disappearing act on Sunday; and was not sitting waiting crossly to be let in either that evening or the next morning. The lack of corpses by the roadside gave hope, but there was no response to leafleting the neighbours.

Then today, she reappeared, fast asleep on an armchair, not even announcing her return with her usual wailing.

Wednesday, August 15, 2012

Building a stand-alone scalalib.dll for .net convenience

Following up on the previous post -- making a single dll scala runtime goes as follows

  1. Download and expand IKVM 7 into folder
  2. Copy the contents of the bin subfolder into a folder .\scala-out
  3. Copy scalalib.dll and forkjoin.dll into that same .\scala-out folder
  4. Install ILMerge if not already available
  5. Run this command (assuming powershell prompt)
    & 'C:\Program Files\Microsoft\ILMerge\ILMerge.exe' /closed /allowDup /t:library /targetplatform:"v4,c:\windows\Microsoft.NET\Framework\v4.0.30319" /out:scalalib.dll .\scala-out\scalalib.dll .\scala-out\forkjoin.dll  .\scala-out\IKVM.OpenJDK.Charsets.dll .\scala-out\IKVM.Runtime.JNI.dll .\scala-out\IKVM.OpenJDK.Text.dll .\scala-out\IKVM.OpenJDK.Beans.dll .\scala-out\IKVM.OpenJDK.XML.API.dll .\scala-out\IKVM.Reflection.dll .\scala-out\IKVM.Runtime.dll .\scala-out\IKVM.OpenJDK.Management.dll .\scala-out\IKVM.OpenJDK.Corba.dll .\scala-out\IKVM.OpenJDK.Core.dll
    and wait until done (takes ~3GB memory, so 64-bit systems only)
  6. Observe that some of those referenced assemblies aren't actually in the IKVM subset that the scalacompiler.exe drop bundles
  7. Build helloworld.exe as before and co-locate it with the new 33Mb scalalib.dll that resulted from all the grinding
  8. It just works™

Hopefully the real deal will bundle something like this -- ideally also strong-named (but hey, you can do that with Mono.Cecil to rewrite that file and the assemblies you link against it).

P.S. If you have .net 4.5 on your machine, change the target platform as indicated here.

PP.S. The runtime has a dependency on the native code ikvm-native-win32-x64.dll and ikvm-native-win32-x86.dll from the IKVM download, though I'm not sure where from the depths of IKVM you may hit those.


Belatedly spotting the March '12 update to the story, a very brief "Hello, World"

Build with

path\to\scala-bin\scalacompiler.exe -d path\to\output -target:exe -Ystruct-dispatch:no-cache -Xassem-name HelloWorld.exe -Xassem-extdirs path\to\scala-bin -Xshow-class HelloWorld -Xassem-path "C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Windows.Forms.dll" hw.scala

where giving "." as path\to\output will put the new executable in the same folder as the scala compiler.

You now need to copy all the dlls (apart from mscorlib and the other System.* files) out of that folder into your output path folder. Then


and, suddenly:

Still slightly painful to actually perform the build, but definitely getting there. Still needs a stress-test.

Monday, August 13, 2012


Spent the weekend at this years BRS con, with Friday being an "on my bike day" so I could sample the Real Ale Bar, the other days playing chauffeur for Karen, and running other errands.

As usual, it was a good chance to meet people I'd not seen in ages -- including Paul Mason, who had managed a visit back from Japan, to talk about (or point and laugh about) how academia views the fan phenomenon.

And as usual, it made me think, maybe I should dust off something from the cupboard and try doing this thing again, even if only just once every other year. Maybe some HeroQuest or something similar. But then the moment passes.


So, while sitting on the drive at the anniversary of acquisition,the car odo was reading 6454 miles, or 2980 miles on the year -- thanks to last year's dry autumn, and the usual run of snow days (and no thanks to the spring weather).

Talking of which, the fruit trees seem to have counted April-May as a second winter, because they have had a second run of blossom in the last few weeks:

New plums in August

Baby plums

Apple blossom in August

Apple blossom

The plums at least managed to avoid the worst of the late frosts, and if the belated warm weather keeps up, might end up ripening a decent crop -- but at current indications that will be after the bank holiday weekend, the usual peak (and unlike last year when they were peaking about now); but the apples have been hit -- the Bramley has but a handful of fruit that look like they'll never get big enough to use; though the Charles Ross has a smaller than usual crop of smaller than usual fruit, but will at least not be a complete write-off.

Friday, August 03, 2012

On the road again

Between holiday and just everyday cycling with a purpose (unlike the gratuitous getting miles in on rare dry evenings in June), I managed 350 miles last month, which is more like it.

Last night on the way home through Bourn, it was just starting to spit with rain, with a strong southerly wind in my face, so I was barely over 20mph going through the 30 limit (as opposed to the more usual barely legal), but just kept on pedalling to get up the far side of the valley an keep ahead of the weather.

Then a car pulled out, and promptly go stuck behind another slow cyclist grinding up the hill -- so nothing for it but to keep pouring on the coal, and overtake the both of them. I was gasping for breath on the next up out of the village, but it was satisfying.

And I managed to get clear of the path of that batch of weather and carried on dry all the way home.

Saturday, July 14, 2012

Cycling holiday

Despite a weather forecast which started with a sunny-ish day (rain by evening) and then wet thereafter, I managed 127 miles over 3 days, with only 2 of those miles being wet.

Not that one

The holiday was the Cyclebreaks Heritage Coast tour, amended to two nights at Westleton, on account of the Halesworth Latitude festival taking over the hotels there.

View 12-Jul-2012 in a larger map

Fearing that the weather would make this the only day for distance, I made 10am start from base, stopping for a sandwich at the Eat Anglia café next door to the Earl Soham Brewery (beer from next door on tap -- so it might as well be the brewery tap from that point of view). Thus fortified, I took part of the route up to Halesworth, and ad-libbed my way from there, suddenly recognising as I turned south at Blyford that I'd cycled in the opposite direction on previous tours ending in Southwold for the night.

The A12 was full of slow-moving traffic when I arrived there, so it was a bit of a wait to cross, but then no problems making the way to Westleton, and a very nice meal of ham hock terrine, and beef and onion suet pudding, washed down with the Summer Dream elderflower ale from Green Jack Brewery.

It was pleasing that this time, after 45 miles, while my legs were starting to tire, I was otherwise perfectly OK that evening -- unlike three months earlier, when doing the same distance around Ipswich had me creaking and hobbling. Even with the awful weather, I have at least managed to get back in condition for the season.

View 13-Jul-2012 in a larger map

Friday was dull, but apart from a few flurries of rain late morning, dry (except for underfoot). The route was almost the planned one, though I extended a mile or so further north on the marked cycle route, going through Brampton. Lunch at the Blue Lighthouse in Southwold (skewered king prawns, and treacle tart), a little walk along the promenade, and a paddle in the very chilly sea (nobody was swimming), then back on the bike, for the journey back via Walberswick and the muddy off-road section where I came a cropper last time in dry weather. This time forewarned, there was just a lot of barefoot wading while carrying the bike, both on that stretch, and later -- after a pause for a pint at the Ship in Dunwich -- on the bridleway between Dunwich Heath and Westleton.

Dinner was chicken liver with black truffle pate, macaroni cheese, and what they called peanut butter cheesecake, but was more like a peanutty mousse.

View 14-Jul-2012 in a larger map

It was raining when I woke up, but by 9, the rain radar was showing the rain had moved to the south, with a few laggard patches remaining in its wake. So rather than going south through Wickham Market and then across, I decided to go west and not turn south until the last minute. I did run into one of those laggard patches of rain for some of the route to the A12 at Darsham, but then on, it was dry from above.

Scarecrow at Denham

Although I knew it was likely to be a bad choice, I decided on the minor route between Heveningham and Laxfield, and was greeted with water running across the road as I came into the former, then soon after going past Ubbeston, there was a hundred yards or so where the road was running ankle-deep with river, and finally a similarly deep puddle at the junction at Banyard's Green; but from then on it was dry, and by the time I came to the White Horse on the A140 at Thornham, even trying to be sunny.

From there, heading south from Finningham, the roads suddenly started to be wet again, suggesting that rain had been through very recently, vindicating the choice of route. And after a pause for a coffee at base, the rain started again as I began the drive home.

Monday, July 02, 2012

Strong-naming assemblies using Mono.Cecil

As the Microsoft FxCop libraries are inherently 32-bit (including native code as they do), developing code using them on a 64-bit platform throws up places where the modes get mixed, and an assembly that is generally AnyCPU ends up needing to load an x86 library and barfs. No real problem here, use corflags assembly /32BIT+ /Force, where you need the /Force for a strong-named assembly. And then if later you need that one strong-named... There is the standard technique of ILDasm/ILAsm to rebuild the assembly with strong-naming (as documented e.g. here), but you still end up with the corflags yellow warning in the MSBuild output about breaking the original strong-naming if you need that too.

But when the code I was working on also uses Mono.Cecil to do stuff, it was easier to silently do the whole lot in one script:

Yes, you can do that in PowerShell too, just with more fussing about the path to the Cecil assemblies because of the schizophrenic current directory model it has. And because the rest of the code in this particular project is F#, keeping the build scripts in the same language is just natural.

Dept of "should know better"

Cycling home from doing a little bit of shopping on Saturday morning, I was coming up to a junction where the road makes a nearly blind left turn at the point where another road joins from the right, with a traffic island in the mouth of the joining road (so a T-junction with altered priorities). Checking the mirror, there was a good gap behind me to another cyclist and then a couple of cars.

So arm out to indicate, and move over to near the white line... When suddenly the cyclist passes me, cuts in in front, then blithely bounces out again, entering the wrong side of the island. And never at any time did his hands leave his front tiller -- a piece of kit I really don't think should be road legal. Now, I'm used to the normal run of urban cyclist who usually has an arm down by one side and indicates by a twitch of an index finger or maybe a flex of the wrist; but this chap was too goddamn precious to make even that attempt.

I, of course, advised him of his unfamiliarity with the general rules of the road, but it irks me that someone supposedly serious about it should be such a bad advertisement for cycling as a mode of transport.


In the end, the last week of June turned out to be good for cycling -- apart from the one day when I ended up cycling home in rain that hadn't been on the Met Office forecast. I can forgive getting showers wrong, but more organised weather less so -- like on Saturday just gone when they said cloudy for the morning when there was a blatant band of rain visible on the radar (The Weather Outlook is always wet and gloomy, so if I went by them I'd not have cycled at all).

So, over the easy target, and, with the cycling holiday in March, 950 miles for the half year, which is good considering we had a couple of months of almost total washout, above and beyond the normal April showers.

And now July opens wet again...

Wednesday, June 20, 2012

Anime — Leiji Matsumoto's OZMA

This short series had all the look and feel of something restored from the 1980s and texture-mapped onto contemporary CGI for the vehicles traveling on -- or in some cases under -- the desert sands of a future devastated world (which seemed to be the setting for at least two out of three titles from back in the day).

The gimmick this one had is that we had craft that would use quantum magic to submerge, to give an excuse for doing all the standard submarine things (though I guess that should be subharene for things traveling under sand) -- running silent, being depth-charged, like every submarine movie ever.

The passage of time did mean that a lot of the old clichés get to be new again from disuse and as a pure nostalgia binge succeeds on those terms; but did we really need a Char-alike masked antagonist, and an ending that borrowed from Nausicaä the way that Greece has borrowed from the bond markets?

Cycling progress

The continuing wet weather is playing havoc with my attempts to pile in the miles like I did last year. We've had what seem to be the only two days this week that won't be a wash-out; and one of those is a work-from-home day around taking Karen to exercise class.

Currently my odo stands at 3915.6, plus the 75 miles I did on a hire bike back in March. So I have comfortably -- by 80 miles or so -- made the easy target of 2000 miles since the end of last June (i.e. the 2nd year with the odo), most of that with help from the dry warm autumn we had last year. Doing another 85 miles to roll over the 4000 in the next 10 days is looking less and less likely each time I see a weather forecast. And getting from 788 miles so far this year to the 1000 looks right out.

Let's hope we have a fine autumn again this year.

Win32, RAII and C++ lambdas

Back when I was last writing serious amounts of C++ for pay (best part of a decade ago), I would end up with a whole bunch of little classes like this one:

to wrap those fiddly Win32 handle types with RAII behaviour; all much the same, most only being instantiated once, the only real difference being the contained type (which could be templated away) and the destructor behaviour (which isn't so easy).

With modern C++, you could wrap a pointer to the handle in a smart pointer with appropriate custom deleter. Or, avoiding the extra indirection from having to track the HANDLE and a smart-HANDLE*, take a leaf from how shared_ptr is implemented and do:

which directly holds a value (expected to be something pointer-like, like the Win32 HWHATEVERs) with RAII semantics; then in the code:

and apply the same wrapper to different types, injecting the deleter as a lambda:

Wednesday, June 06, 2012

Anime — The New Prince of Tennis

Something of a make-weight series, picked to give us an even number of series on the go; a sequel to a long-running series I'd not watched. But sports anime (even if this has about as much to do with tennis as Saki does mah-jong) are usually at least harmless tosh that don't involve hopelessly herbivore high-schoolers and their romance woes.

And on that level, this short series did not disappoint.

It started off simply enough -- a bunch of middle-school players joining a high-school summer camp, and showing their magical-boy tennis prowess against lads two or three years their senior. And then out of the blue, after a bout of sudden death elimination contests, it's suddenly mountain climbing, survival training and crawling through laser defence system like something out of Mission Impossible, until our heroes win enough karma to go back and face the top high-school squad.

Verdict -- did what it said on the tin.

That British obsession

We expected it to be wet for the Bank Holiday/Jubilee weekend, because it always is, especially after the best part of a fortnight of warm dry weather. But now that's over, you might think that we were going to be back to seasonal sort of weather.

Alas, we have a positively autumnal storm with plenty of wind and rain on the way for the next couple of days. So who knows when I'll next be able to get out on the bike.

Monday, June 04, 2012

The Prohibitionists are at it again

Saw this story in the Daily Wail while on holiday:

Don't drink more than quarter of a pint a DAY: Oxford study claims slashing the official alcohol limit would save 4,500 lives a year

Checking figure on the 'net, with a UK population of 62.3 million and average life expectancy of 80.5, that means 774,000 deaths/year. Subtracting 4500, gives a resultant life expectancy of a whisker under 81 years.

So, the killjoys might not make you live noticeably longer -- but you'd just not enjoy it so much (if the way that this contradicts all earlier findings actually holds up).

And that's before considering the cost/benefit analysis -- drinkers provide more revenue and on average cost less in lifetime medical costs anyway.

Sunday, June 03, 2012

Another sea-side holiday

Guessing in the early New Year that the weather might be getting warmer by the end of May, we booked again to take a week at Netley Waterside -- and despite some headlines mid-month saying that the cold weather would last at least another month, we did get the good weather, but without it being too hot and bright for driving into.

This time, nothing essential got left behind (though I did realise that my strategy for wet weather was not to be caught out in it), and swinging around well west of Reading and (thanks to a closure on the A340 near Aldermaston) Basingstoke too, the drive down was not too stressy, despite the nigh-constant sulking of the satnav when we declined to head for the nearest motorway -- and we got to see all the stationary traffic on the M1 while doing so.

From our window

From our window

The theme for the week was cars and boats and planes; not so immediately interesting as last time's wildlife focus, so we sat out most of the trips, and instead did expeditions at our own pace back to places we had gone last year, only in better weather, and without having to spend the best part of 2 hours in loading and unloading.

Monday we went back to Marwell Wildlife

Chico guards the troupe

and were able to go all around, and see most of the talks, including the penguin feeding, at what would have been queueing up to go on the coach time.

The one organized trip we did go on was to the Beaulieu Motor Museum, somewhere I'd not been for the best part of 50 years, and which Karen had never seen. So there was a lot of stuff that was either not yet built, or still in active service back then.

Extreme customisation

The centrepiece of the museum this year is a Bond in Motion display covering 50 years of cars and other transport gadgets:

A Bondmobile

Even the cars have stunt doubles...

Wednesday we took a rest, and just went down the road for a pub lunch, and then Thursday we went back to the Andover Hawk Conservancy, where again the flexibility of going by ourselves -- and the dry weather this time -- meant that we got to see all the displays, and not just the mass flights of kites and vultures. Even if the fishing eagle managed to splash down every time, rather than skimming its food off the surface of the little pond in the display area.

African Pygmy Owl

African Pygmy Owl -- as seen in ソ•ラ•ノ•ヲ•ト

And then to top-and tail the week, I went for a few exploratory walks, extending beyond where I'd done much less ambitious wandering last year:

View Netley Walks in a larger map


So, with a late spell of warm dry weather, I managed to do a bit over 200 miles on the bike this month, and pick up the start of a sun-tan; though that would have been closer to 300 had I not gone on a non-cycling holiday last week.

So, it's a sporting chance to push the odo over the 4000 mile mark this month, but given the wet start to the proceedings (and not looking good for fitting in a long Bank Holiday bike ride), doing a full 1000 miles by the end of the half-year is probably a non-starter.

The Narcissist-in-Chief strikes again

Going on four years ago, I had strong vibes from the US presidential elections that the country was being swept by a "Things can only get better..." mood so reminiscent of what we had seen a decade or so before. After a couple of years, my thoughts on progress so far could be roughly expressed as

But even Cyclops never managed some of the not-fit-for-purpose stunts we've seen from the White House in recent months in terms of violating operational security. First leaking details of deep cover operatives in Yemen, and now boasting about Stuxnet.

I have no words.

Thursday, May 31, 2012

Observation notes

Venus having been a bright evening star all spring, I caught a last glimpse at 21:36 on Saturday, courtesy of clear skies and an unobstructed horizon, nine days before it transits, and 15 minutes before spotting Vega as the first real star of the night. Subsequently the fine weather has been tending to leave cloud in the west at evening, before socking in completely now.

Thursday, May 17, 2012

C# under the covers II

An initialisation problem I hit recently, a null pointer exception when initialising an object via an initialiser statement. This program is a simplified example --

which throws when initializing b.

Putting them together like this, it's obvious what I missed out in the second initializer : I'm not creating a new object to assign. But it's not obvious what the second case is actually doing, even though it compiles -- which in itself initially surprised me. So let's look at the IL and find out what that initialisation is actually doing...

which actually resolves to something like

So if we add a constructor and a sensible ToString to the type being initialised, thus

we see that the initialisation of a replaces the constructed values; whereas b adds to them.

Not sure how useful this is as the dictionary literal form only works in initializers like this, but it's another bit of living and learning.

Wednesday, May 16, 2012

Anime — Chihayafuru

Looking at last Autumn's season listing, this was the one title to really stand out, the one I hoped against hope that would get licensed -- Madhouse escaping from their Marvel phase, adapting a josei sports manga, where the sport is karuta, a curiously Japanese affair, involving memorizing the 100 poems, and capturing cards based on recognising the one bearing the closing lines of the poem being read out.

After a very brief current day set-up, the story flashes back from high-school to junior school, where Chihaya Ayase befriends Arata, the shy transfer student with the regional dialect being bullied by the rest of her class. He introduces her to the game -- she is mesmerized by the way he flicks the cards and such speed, and hooked by finding that one of the poems begins with her name. Both of them play at school and in the local club, and eventually become friends with fellow player and classmate Taichi, until Arata moves away with his family.

Taichi and Arata

Surprisingly enough, the skip forward to high-school does not end up presenting us with a love triangle with occasional card games -- there are more important matters, like recruiting enough players to get an official school club and team, and then it's off to the major tournaments, with Chihaya aiming to become the overall womens' champion or Queen -- the best in Japan, and thus the best in the world. Only this is not Saki (although the first passing encounter with the current Queen is reminiscent of the entry of one of the monsters from that series); older and wiser players can take advantage of Chihaya's over-impulsive speed, she can become unsure of herself, and not adapt to the person she is playing.

Facing off against the Queen

And between all the play, there are the relationships between the bunch of misfits that have been recruited to make up the team, the team with families and other players, and also finding out what happened to Arata -- once tipped to become the Master -- to make him give up the game in the intervening years. And so we end, a year after the start, everyone gearing up to do better in the next season. The manga continues, the anime, well it would be nice to dream.

The production of the series is definitely good Madhouse; and the character design subtle -- characters can be plain, or plump, or middle-aged, and the ones who are meant to be pretty do stand out. The story never becomes mawkish, nor does it sacrifice everything for romance with a flimsy excuse to get the principals together. Very definitely, anime of the year, 2011. Available in many regions on Crunchyroll.

Saturday, May 05, 2012

The Galloway Effect

So, local elections, and the LibDem councillor of 17 years is standing down on health grounds. The election communication comes out with an introduction to the anointed successor, and isn't it wonderful what the parliamentary party has achieved.

Then suddenly, the first active canvassing I can recall for at least those 17 years, and maybe more -- phone calls, doorstepping, the full works. Then another more locally focussed election communication with a lot of "Please don't vote for the independent candidate" -- the only other horse in the race (I think I saw one Conservative poster the whole time).

So, results now in, 516 for the independent (a local character), 514 for the Libs, the rest down in the noise under 100, and a total turnout of under 1200 (which I would be surprised to find was much over 25%).

Maybe not as decisive as Galloway's win in Bradford last month, but a bit of a kick against complacency (though I don't think that Andrew Lansley has any cause for concern as yet).

Wednesday, May 02, 2012

Anime — Mobile Suit Zeta Gundam

One of the major series that are set in the same continuity as the original, but to my mind rather the weaker of the two. Where the original had the main characters caught up in actual warfare, doing what they could to escape to safety, and then becoming caught up as an irregular unit in the larger conflict, this is the story of a boy named Sue Kamille; and it all starts when a soldier (of the now rather fascist Earth Federation) makes fun of his name. So, he decides to sneak onto the base and cause mayhem with one of the new Mark II Gundam models; and gets out thanks to the fortunate timing of a raid by spacer guerillas.

So we reprise some of the structure of the previous series -- battles in space, then down to Earth for a while (meeting more of the old characters) before getting back into space, bouncing around the Moon and colonies before a final battle. And like last time, there's a somewhat fae girl whom the hero falls for, and who of course dies fighting for the other side, and a set of annoying kids aboard the battleship (purely gratuitously). But this time, rather than just "Federation good, Zeon bad", there is an attempt at some more Byzantine politics, with various Zeon successor groups being introduced, though often in a way that seemed to suggest that you should have known about them all along (maybe you should have read/seen something else in the canon?).

While there are a number of stronger female characters who turn their coats, or at least seriously consider it, they also get above and beyond the usual Kill 'em All Tomino treatment. And then the final battle -- they saved up all the character deaths, including at least one who'd been on borrowed time for several episodes; and after that ... it just stopped.
No aftermath, no epilogue, nothing.

In all, a series to be watched because it gets quoted so often, but being somewhat more ambitious than its predecessor, it also needs to be judged more harshly.

Bonus feature — Mobile Suit Gundam Wing

One of the alternate canon Gundam series, with the same Earth vs Colonies backdrop; but this time it kicks off with five superpowered delinquents being dropped to Earth in their own overpowered Gundams to #occupy the place, fighting each other as often as the Earth military. Oh, and one of them somehow is attending a school where the oujo-sama (daughter of some diplomat) showcased in the ED sequence goes, so he can threaten to kill her (which gets her all hot for him).

Meanwhile, there is a Char-alike following his own agenda, and military bases in Africa which appear to have the same racial mix as a Democrat party campaign HQ...

Dropped after five episodes.

Tuesday, May 01, 2012



Bluebells at the start of the month

So despite a very wet April (albeit one that opened and ended with warm, sunny spring days), I managed 130 miles on the bike. Need to do twice as much each for the next two months to hit my target; and May isn't looking too good (but that's Bank Holidays for you).

Flowers in the Rain

More typical weather

Sunday, April 08, 2012

Anime -- 2011 in review (part 2)

Continued from last year

One of the potentially interesting things that happened last year was ANN's launch of the anime-on-demand streaming site, which opted not to have the advertising supported option that Crunchyroll does. Alas, the player they used still stuttered and juddered (losing a few seconds' video), and often crashed each time there would have been a commercial break -- and also had a splash page telling us that the advertising revenue supported the original creators.

And, whatever else you might say about Crunchy, at least they announce what they've got early, release on a timely basis, rather than leaving it a month after a series aired to offer the last three episodes, or a month into the quarter before putting up a single new series.

So, what did I watch from last year... A lot of duds, mostly.

Winter season

Hourou Musuko, another adaptation from the same mangaka as Aoi Hana, was dull, worthy, and totally blew my suspension of disbelief in how it depicted 12 year old kids (having been one once, I sorta know about that). Dropped after 5 episodes.

Gosick started as a Ruritanian fantasy -- a Japanese boy studying in a school in some 1920s central European principality meets a mysterious girl who seems to live at the top of the library tower and solves mysteries. As is the way of these things, when it was episodic, it was fine, but then it grew a plot with little foreshadowing, and was suddenly about alchemists and the murder of the late Princess and court politics, which the schoolboy protagonist had no sight of. And the last couple of episodes just went over the top, culminating in major fast-forwarding with no real sense of what was going on. Japan just doesn't into endings, again.

Level E was the best series of the quarter, nearly the best of the year. A sort of Men in Black, the anime, following the arrival of a trickster alien prince on Earth along with handlers striving desperately to avoid setting off an interstellar incident. For once, a humorous series was actually funny.

Spring season

Tiger & Bunny -- corporate sponsored superheroes in sorta-New York, only with Japanese corporate advertising over their costumes; and played as a buddy movie with long-time hero Wild Tiger and rookie Barnaby "Bunny" Brooks Jr. as the main team, plus a supporting cast of other heroes, all competing for points in live-televised crime busting. It reached a sort of climax about halfway through when a major menace with some apparent connection to Bunny's mysterious past was defeated, and then was still noodling around when a-o-d ran out on me when I'd only got to the 3/4 mark, and I really didn't miss it.

Battle Girls : Time Paradox is not Sengoku Basara with girls, but is alas much sillier. Dropped after 4 episodes. If only Hyouge Mono had been picked up instead.

Steins;Gate was another early drop -- annoying characters, and the prospect of it turning into an alternate reality multiple choice harem were enough.

[C] : The Money of Soul and Possibility Control -- a somewhat topical short "shout out your attacks" battle series with a financial theme. Generally harmless fluff trying to be a bit serious; made a little bit unsettling by watching when it seemed like there might be imminent waves of [C] emanating from the Southern European Financial District.

Summer season

Natsume Yuujincho San -- haven't finished this yet.

Yuru Yuri -- insubstantial. One episode was more than enough

Kamisama Dolls -- the preview looked like it might be Narutaru v2, but alas all that bit seemed to be over in the first 2/3 of the first episode, and it looked like settling down into sophomore hijinks what with an annoying little sister and a Haruhi-wannabe science club president. Dropped after 3 episodes.

The Mystic Archives of Dantalian looked a bit like Gosick at the outset -- mid 1920s setting in England, where ex-RFC pilot Hugh Anthony Disward comes into his inheritance and finds the ancestral pile comes with goth-loli biblioprincess in amongst the mouldering tomes. He is refreshingly competent in their episodic adventures with Forbidden Books That Should Not Be, as one might expect of a gentleman adventurer.

Alas, when the last episodes finally came through, the final two turned out to be a multi-parter that would introduce the Plot. And then it ended, unresolved, in a rather rushed fashion.

Autumn season

Fate/Zero -- I saw the first double length episode and was underwhelmed.

Chihayafuru -- haven't finished this yet, but anime of the year.

Un-Go -- a sort of Ghost in the Shell plus future disaster stricken Japan setting, using old mystery story plots in a modern guise. The first three episodes were OK, but not enough to make me want to go out and pay a quarter's a-o-d subscription for by itself, when I was watching about as much as I could fit in from Crunchyroll anyway.

Saturday, April 07, 2012

Playing with (almost) the latest C++ features -- groundwork

Having had my interest in playing with native code reawoken by the new C++11 features, the first thing I went to look at was portability. One of the advantages of managed code -- JVM or CLR -- is that the VM handles portability for you and the code can be built pretty much anywhere; with native code we have to see what the compilers have in common.

I've been using VC++2010 on Windows as having many of the "big rocks" for the new standard, while being backward compatible onto OS versions before Win7 (unlike the VC++11 compiler and its runtime); and for *nix-like systems, I have cygwin and debian squeeze... Well the distro support for these is a bit behind-hand (gcc versions 4.5 and 4.4 respectively), whereas gcc 4.7 is now out with quite a broad coverage of the new standard. While 4.5 has a good chunk of the new stuff, 4.4 doesn't -- in particular, it doesn't have the new lambda syntax. So, it's build from source time to get an upgrade to a sensible version there, which means I might as well go to the latest and greatest on both platforms...

Building gcc 4.7 from source


Fortunately there are some handy instructions out there which can be used as a baseline for debian. Following them, I found that I needed to tweak how I built GMP to fit PPL's requirements, by modifying the configure step to be:

CPPFLAGS=-fexceptions ../../sources/gmp-5.0.4/configure --prefix=$PROJECT_DIR/output/ --enable-cxx

before PPL would go through happily. The --enable-cxx is required for the PPL ./configure stage to run through, the CPPFLAGS=-fexceptions is optional, but it avoids a make-time warning about possible unwanted runtime behaviours if you don't.

ClooG also needed a CPPFLAGS=-I$PROJECT_DIR/output/include CFLAGS=-L$PROJECT_DIR/output/lib on the configure line to find GMP.

In the gcc build, as well as pointing at ../../sources/gcc-4.7.0/configure it's also worth taking the advice from the MacOS build instructions and only selecting languages of interest to you i.e. to play with new C/C++ there's no need for Java or Fortran, at a considerable saving in time.

Then it's a matter of just adding soft links from whichever g*-4.7 files to the unadorned versions, and

export LD_LIBRARY_PATH=~/gcc-4.7/output/lib/
export PATH=~/gcc-4.7/output/bin:$PATH

to your .bashrc or equivalent


Cygwin is more fun -- I've not yet managed to get that to build all the way through with the loop optimization libraries. When you get to PPL, you find you also need to go back and re-configure GMP with --disable-static --enable-shared, as explained in the friendly manual, to build the shared library version. However then when building gcc, we get a mismatch with the earlier libraries in the configure stage, where it just stops:

checking for the correct version of gmp.h... yes
checking for the correct version of mpfr.h... yes
checking for the correct version of mpc.h... yes
checking for the correct version of the gmp/mpfr/mpc libraries... no

It is possible that if you start by building PPL and CLooG with shared library GMP in a first pass, then build the rest starting with reconfiguring and building a static GMP it will work, but life is too short. The MacOS build instructions didn't use the PPL/ClooG/graphite libraries either, so we can do this to configure gcc instead:

$ ../../sources/gcc-4.7.0/configure          \
>     --prefix=$PROJECT_DIR/output/    \
>     --with-gmp=$PROJECT_DIR/output/  \
>     --with-mpfr=$PROJECT_DIR/output/ \
>     --with-mpc=$PROJECT_DIR/output/  \
>     --program-suffix=-4.7            \
>     --without-ppl --without-cloog    \
>     --enable-languages=c,c++

which sits and cooks for quite some time to get you the new compiler build.

Linkbait: fixing cygwin "mkdir foo mkdir: cannot create directory `foo': Permission denied"

I got into a state where I had this error, which other people have seen, after having tried to trash the build output of one of the failed PPL/CLooG attempts from Windows Explorer, where anywhere under in my home directory and down it was rejecting mkdir with "mkdir foo mkdir: cannot create directory `foo': Permission denied". Having spotted a tangentially related mailing list message about this sort of problem happening on network shares and there being ACL related, I tried the following and it worked to clear things up:

  1. Start a PowerShell console as Administrator window
  2. Run Get-Acl a folder (like /tmp) which you can mkdir in in cygwin (this will be %cygwin_root%\tmp where %cygwin_root% is where you installed cygwin)
    $acl = Get-Acl C:\cygwin\tmp
  3. In Windows Explorer set yourself Full Control on all the affected folders -- %cygwin_root%\home and %cygwin_root%\home\%USERNAME% at least
  4. In the PowerShell, Set-Acl on each folder you've just frobbed with the saved ACL object
    Set-Acl C:\cygwin\home $acl
    Note that the Set-Acl call may take considerable time (tens of seconds) to execute when it gets to the really problematic node and has to roll permissions down.

SCons -- Death to makefiles

Since I last did native code seriously at home (c. year 2000), I had discovered the very handy MiniCppUnit tool as a nice light-weight unit testing framework, so of course I went and fetched a copy to be going on with. This time, curiosity prompted me to wonder "WTF is this SConstruct file anyway?" and now when I opened it, I immediately recognised that it was some form of Python script, and wondered what sort of Python based make system this might be.

It was simple enough to find where it came from -- -- and looking at the user guide, I felt that it is much more intuitive system than makefiles (admittedly there's not a high barrier there), and far less cluttered than declarative XML based systems like Ant or MSBuild; so I'll be using that for my *nix builds -- it works very nicely for doing things like running unit tests as part of the build e.g.

MiniCppUnit -- Building it under modern C++

Just like I had to patch it to build in C++/CLI, I needed to make some changes to MiniCppUnit to get it to build clean under VC++2010, the out-of-the-box gcc 4.5 on cygwin 1.7.x and gcc 4.7 debian squeeze with -Wall -std=gnu++0x or -Wall -std=c++11 on respectively. First MiniCppUnit.hxx:

< #if _MSC_VER < 1300
> #if defined(_MSC_VER) && _MSC_VER < 1300
> /* Without the "defined(_MSC_VER) &&" this code gets included when building on cygwin 1.7.x with gcc 4.5.3 at least */
<  static void assertTrue(char* strExpression, bool expression,
>     static void assertTrue(const char* strExpression, bool expression,
<  static void assertTrueMissatge(char* strExpression, bool expression, 
>     static void assertTrueMissatge(const char* strExpression, bool expression, 
<    catch ( TestFailedException& failure) //just for skiping current test case
>    catch ( TestFailedException& /*failure*/) //just for skiping current test case

and the corresponding signature change in the .cxx file:

< void Assert::assertTrue(char* strExpression, bool expression,
> void Assert::assertTrue(const char* strExpression, bool expression,
< void Assert::assertTrueMissatge(char* strExpression, bool expression, 
> void Assert::assertTrueMissatge(const char* strExpression, bool expression, 

Of course there may be other things lurking to be scared out when I ramp up my standard warning levels to beyond the misleadingly named -Wall (when you have -Wextra, formerly -W, provided to switch on a whole bunch more including spotting signed/unsigned comparisons, before getting onto the really specialized ones) and switch on -Werror to force everything to be really clean.