Monday, June 06, 2016

May Cycling

Up to 14,126.0, 3152.9 and 16.8, plus 2.8 off-meter meaning 30.6 + 286.7 + 0.0 + 2.8 = 320.1 miles (1797.2 YTD -- so more miles than last May, despite having taken both Bank Holiday weeks off work, thereby removing the commuting baseload, and also ahead in aggregate).

The month started in a blaze of summer, encouraging me out on a long ride to loop around Grafham Water on the far side, where I could see the bluebell woods at their finest; and it remained summer long enough for the first T-shirt commutes to work. It was the end of the month when the weather took a turn for the worse, with no cycling getting done on the wet, cool and windy late holiday week.

Wednesday, May 18, 2016

Log literacy -- a sadly neglected skill

People who come to this blog for the technical posts may have noticed that those rather dried up over the last couple of years. There was a highly boring reason for this -- having built a little guerilla build server with one of my colleagues, it suddenly took over the world, despite our best intentions. This meant an unexpected amount of DevOps work keeping it running, and continuing to develop what had been first intended to be just a system for our team into one that covered multiple sites in different geos.

Fortunately, success was eventually rewarded by another team writing a competing system, to which my response was "Thank you, very much!" and I have at last been able to shed that particular monkey from my back. In time, that period will become a source of many war stories, but there is one particular thing that I did notice.

The key "new thing" in this system was to chain together the individual component builds that were the elements provided to the formal build process, so we could get to system-testable outputs more quickly, in a manner that could work equally on the build server and the developer's local machine. This, of course, meant that developers would at times see their builds fail in components which they were not familiar with, and then come to the two of us juggling the server (and who might be equally unfamiliar with the failing component) for a resolution.

Some of the time it turned out to be some corner case we hadn't considered in our orchestration process, but often enough it was something environmental that precipitated an otherwise normal failure in the MSBuild based process. It's just that a normal failure ends up with yards of error messages, redoubled by being screaming red text when it's in a console window on your desktop. Something like:

\Library4.csproj(##, #): error XXX####: Something went wrong
Done Building Project "D:\Source\Feature\path\to\component\Library4
\Library4.csproj" (default targets) -- FAILED.
Done Building Project "D:\Source\Feature\path\to\component\Library3
\Library3.csproj" (default targets) -- FAILED.
Done Building Project "D:\Source\Feature\path\to\component\Library2a
\Library2a.csproj" (default targets) -- FAILED.
Done Building Project "D:\Source\Feature\path\to\component\Library2
\Library2.csproj" (default targets) -- FAILED.
Done Building Project "D:\Source\Feature\path\to\component\Library1
\Library1.csproj.metaproj" (default targets) -- FAILED.
Done Building Project "D:\Source\Feature\path\to\component\Component
.sln" (default targets) -- FAILED.
Done Building Project "D:\Source\Feature\path\to\component\Build\Buil
dAll.proj" (FullBuild target(s)) -- FAILED.


[105 lines of other errors omitted]

"D:\Source\Feature\path\to\component\Build\BuildAll.proj" (FullB
uild target) (1) ->
" (default target) (2) ->
csproj.metaproj" (default target) (15) ->
ibrary2\Library2.csproj" (default target) (16) ->
ibrary.2a\Library2a.csproj" (default target) (18) ->
\Library3.csproj" (default target) (20) ->
\Library4" (default target) (19:2) ->
\Library4.csproj(##, #): error XXX####: Something went wrong

    0 Warning(s)
    7 Error(s)

This, it turns out, is enough to make even many quite senior developers throw their hands up in horror, when it happens in an unfamiliar piece of code -- even though, a few hundred lines earlier, there will usually be an obvious root cause, maybe something quite blatant, like:

  PowerShell.exe -File "D:\Source\Feature\Path\to
\component\Scripts\Do-Something.ps1" [arguments]
  The argument 'D:\Source\Feature\Path\to\component\Scripts\Do-
Something.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument
to the -File parameter.

which simply wasn't emitted as an error or warning in the MSBuild meaning of the terms, and so wasn't highlighted, or re-iterated, but which would be the start of what would become a cascade of FAILED and Error red text.

This phenomenon of a failure log ending with things going horribly wrong, but with a seemingly innocuous line much earlier that indicates when things started to go bad is not just restricted to MSBuild logs, or even build logs in general.

And that is the nice case. There can be worse. Sometimes the error messages at the end may be entirely unrelated to what actually failed or at best be only tangentially related (e.g. tidying operations failing when what they are supposed to tidy didn't get created) -- so trying to reason from them can be a hiding to nothing.

So when confronted by a failure log that seems to conclude with notification that the sky is falling for no good reason, take a deep breath, refuse to panic, and just start at the top. You might not always be able to resolve the issue personally, but you'll most likely be able to provide a better problem report to the person who can.

Sunday, May 01, 2016

April Cycling

Up to 14,095.4, 2866.2 and 16.8, plus 47.7 on cycling holiday meaning 162.1 + 176.5 + 0.7 + 47.7 = 387 miles (1477.1 YTD -- so fewer miles than last April, but still ahead in aggregate) having cycled at least a kilometer every day this month -- #30daysofbiking. That despite rather wet, often cold, usually windy weather, especially in the latter part of the month -- I've not yet had a day when it was nice enough to commute home in a T-shirt.

Saturday, April 02, 2016

March cycling

A water hazard

Up to 13,933.3, 2689.7 and 16.1, plus 84.3 on cycling holiday (+47.7 in April to count later) meaning 319.6 + 84.3 = 403.9 miles (1090.1 YTD -- so fewer miles than last March, but still ahead in aggregate) in generally nondescript weather mostly at mid-single figures temperatures.

I took a quick post-Easter cycling break again, in weather that promised to be mostly sunny, but never quite delivered -- including surprise hail showers that definitely weren't on the program (but fortunately that day I'd chosen a route that took me out of the path of the most catastrophic deluge, so I just saw the results after the fact).

And, no, that water trap was there the day before -- I'd come down a nice downhill following cycle route signs, when suddenly water ahead, and just carrying through on momentum.

Thursday, March 10, 2016

The Great Detune

In the early days of this century, Planet Rock was notable for two things -- reception where we live was atrocious, and they played Psycho-Killer about every third track. But as the years passed, the digital coverage improved, as did the variety of the playlists.

So at the end of last month Planet Rock were announcing that they were moving to a different channel, but all you had to do was press a couple of buttons on your radio to retune.

So far so good -- getting the full list of channels, and moving from zPlntRck to PlntRock was easy.

Actually getting a signal has been another matter. Where I used to have a radio alarm on my bedside, now I can only get a signal by putting the thing on the middle of the bedroom windowsill, and the radio plugged into the hi-fi downstairs is on the ragged edge of sufficient signal to noise at best.

At least we don't get Psycho-Killer on repeat this time around.

Monday, February 29, 2016

February Cycling

Up to 13,613.7, 2689.7 and 16.1, meaning 347.2 + 0 + 10 = 357.2 miles (686.2 YTD, 60% up on last year) in colder, drier and not so windy weather; without any excursions on the long route this time.

I did have one puncture, where a spoke rubbed through the rim-tape, and it took a while to get the -- new in December -- back wheel aligned again (realizing that both the washers that had been put on on one side were needed inside the frame to position the wheel properly between the brake pads, as a hack because the adjustment screw on one side doesn't engage properly). And then when I got the chain done, I had to move one of the washers back into place inside the frame again after I got home, having been warned that one pad was rubbing slightly...

For the moment the hack is working, but in due course, I guess it's time for a new set of calipers.

Tuesday, February 09, 2016

Anime — 2015 in review

A busy year, this living in the future lark. Early summer was marked by both the announcement of the dennou-megane wearable AR, and the first kaiju attacks on Tokyo-3. These were interspersed with the world-wide devastation caused by the Stardust that began in late July, but otherwise continued through the end of the year. And on the 19th December, the Japanese exploratory space fleet was destroyed by space monsters. But I spent more time building up my backlog and sorting out my media library than watching new titles.

Of the carry-over series, from 2014 I finally finished Gatchaman Crowds, and Mushi-shi 2nd but House of Five Leaves remains fogbound.


Magical Mah-jongg Saki : the Nationals was the weakest of the three series to date; being the shortest, but still trying to rush through almost as many other opposing teams as the first 26 episode series. Add to that being front-loaded with fanservice, when play started, both the character stories and, especially, the magical girl antics were fairly perfunctory. And we're still waiting for Teru time, but that will probably only appear in the manga some considerable time after Akagi's game in the Washizu mansion finishes (which might even be this year!).

Encouragement of Climb S2 was cute fun and almost a vicarious walking holiday in Japan, a breath of the outdoors in the tag end of last winter, with just the lingering regret that I'll never actually climb those peaks along with a bunch of cute Japanese girls.

Character development imminent

Akatsuki no Yona was a sort of role-reversed Moribito, though with a strong retro feel -- archaic anime mannerisms like sliding into SD to emphasise the humorous bits. In all, it was a very effective "now go read the manga" sort of series, a 24 episode introduction to just gather up the band that will restore the princess to her usurped throne. If only there was a niche for a long-running shoujo in amongst the open-ended fightan shonen shows. Could have done with toning down the ditzy blonds, though.

Hajime makes friends with MESS-chan and doesn't afraid of anything

Gatchaman Crowds once again shows that Japan doesn't into endings, with Berg-Katze going from unstoppable existential threat into a "Sorry, we're all too busy on Facebook to pay your ramblings any attention." in the course of a couple of minutes. The half an episode explaining the narrative point of Hajime (simply the best character) for those who hadn't gotten the idea already was too much, too late. Overall, for someone who hadn't even seen the Battle of the Planets version of the original, I'd rate it as an interesting concept, but flawed in execution. The sequel is in the backlog.

Donyatsu -- alas, in a dozen two-minute shorts, it doesn't even reach the WTFness of the first page of the manga let alone the continuing story.

Hōkago no Pleiades the Gainax farewell tour magical girl sentai show -- which is less of a blatant Subaru ad than the ONA on which it expands. This is a series I continued with mainly for the astrophysics fan-service, and a little bit for the tangled world-lines stuff, because otherwise it is the epitome of blandness. Pretty girls with no character, antagonists with no menace, action scenes with no tension -- none of it actively bad, but neither does it have much positive going for it.

By half-way through, it hadn't established itself even as much as Gen'ei o Kakeru Taiyō did in the fewer episodes I gave that; the MC is still a moe-blob cipher, and the other characters just vanish from consciousness. Even at the end the characters barely advance beyond being colour coded ciphers -- and what is this disgusting heterosex doing in my mahou shoujo anime? It needed a lot more of the ">School >Slice of life" up front, or just dropping that side almost entirely and turning the astronomy porn up to eleven.

Mushi-shi 2nd a faithful adaptation of material that got a little tired towards the end, with a little too much escalation of what the mushi could do, but was still suitably atmospheric throughout.

This is a Japanese submarine

Arpeggio of Blue Steel looked to start with as if it was going to be a harem/fleet show, but developed into something more complicated, with factions on land, as well as the mysterious Fog and all the ship-girls. As usual, the journey was better than the destination, with the massive UNDERSTANDING boss fight at the end falling rather flat after the sudden out of nowhere escalation (that's no moon!). Also, anime should not try to do rumpled aluminium foil for a few years yet in a 3D/2D hybrid.

Mawaru Penguindrum. It's watchable, and there's enough "WTF is going on here?" to flow through in a binge watch, but Utena it is not. Not sure what else I can say about it, other than it got that off the backlog; and that the SHAFT-esque architecture I noticed in the opening minutes of Yuri Bear was prefigured here. Also, Ikuhara did his Kaworu thing again.

Symphogear seems to retread elements of Nadia and of Nanoha S1 -- though Bikki-tan really needs to take a few lessons from a much younger magical girl. It's all very well trying to tell your opponent all the things you put on your social media profile and issue a friend request, but you really should be charging up your Divine Buster (or reasonable facsimile) at the same time. Nowhere near as gay as I'd been led to expect for a series teetering on the border between mecha musume and mahou shoujo; but it does deliver the appropriate level of OTT attacks and explosions.

All in all, an amusing little trainwreck of a series. Like Arpeggio of Blue Steel, it suffered from excessive threat escalation and an underwhelming UNDERSTANDING boss fight in the last couple of episodes. The characters were cute and all, but really the only one apart from the Commander who seemed to have any personality was the "anime ja nai" girl in the second tier of supporting characters. I guess Tsubasa's schtick was that she was the one-note warrior, but she came over as the flattest thing Nana has ever played, and Hibiki herself was just an air-head.

Given the broad brush similarities in storyline that this series had to Nanoha first, the differences in pacing and emphasis show where this one failed. Overall there was too much time spent on action for a one-cour show, to have much chance to build up characters, build up the threat, or give some coherent shape to the Atlantean/Muvian/Hyborean Secret History underlying the whole gear thing.

Hōzuki no Reitetsu which was one of those rare comedy anime that was actually amusing more often than not; a slice-of-afterlife in which the chief functionary to the King of Hell has to cope with incompetence all around.

And it also included the dyslexic diabolist joke, which you can still do in kana!


Having reached "Yes! Yes! Yes!" (D'Arby the Gamer), the motivation to grind through the rest of Stardust Crusaders has been lacking -- we're past all the interesting fights at this point. Wake me up when we get to Steel Ball Run.

Gen'ei o Kakeru Taiyō -- another post-Madoka magical girl, but so dull! Dropped after 4 episodes.

Prisma Illya 2wei Herz turns out to be mostly filler, so not picked up. And the manga seems to be diving into straight Fate/Whatever territory rather than being magical girl pyrotechnics.

Gundam : Iron Blooded Orphans -- well, it makes a change to have a major character who isn't all "Killing is wrong"; but the Hitler-in-a-wifebeater guy is such an obvious rotten apple that it came as no surprise that he was making dodgy phone calls to arrange things -- carried over.

Symphogear G, which starts with all the faults of the first series, with Bikki-tan's "why are we fighting, we only just met" bit at people with the declared aim of world domination coming over as serious stupidity rather than loveable naivete -- she still doesn't twig that you have to do that speech while charging your lazors, then shooting first. Still, the fights are fun, even if they blow their load in putting the most quoted set piece early in the first episode -- carried over.


Gurren Lagann -- I'd forgotten quite how much went on in each episode, without it being FLCL/P&SwG level hyper; definitely the best of zany-mode GAINAX. A fun ride, though I hadn't remembered quite how visually incoherent the final fight was. No wonder they went back and re-did it in a movie.

Busou Renkin, after a long enough interval to forget pretty much everything but that Papillon stole the show, was quite an enjoyable ride -- fightan shonen with power-ups, done right.

I'd rated Blue Drop highly at the time (enough comfortably to be in my top 20 of last decade), and I rate it just as highly today. I can't think of any other series I've seen where the MC is such a cute tsundere; and the sweet tsundere x ojou-sama core just works so well, to make it just that much more than simply "Marimite with spaceships".

Also holding up are the excellent OP and ED -- the latter being much stronger than the usual run of forgettable third-rate offerings for that slot.

When I first watched Elfen Lied it was all new, now almost a decade later, with a lot more familiarity with the tics of the medium, and in tying the spoken language to meaning without so much help from the subtitles, it's easier to notice things like the "kawaii uguu~" character designs for what they are, and where there was reliance on stereotype and MISUNDERSTANDING.

On balance, it stood up, and the scene with Kouta and Lucy on the stairs just before the end was a suitably sappy pay-off for all the back and forth. And it still tops anything else in my collection for the levels of gore and nudity.


A few episodes here and there, or just still in flight...

The only thing that really tells you that Gakuen Utopia Manabi Straight! was made 9 years ago is the occasional bit of computing hardware (in a show set in the mid/late 2030s) that looks quaint even today. Truly one of the most well done "cute schoolgirls doing cute schoolgirl things" anime out there.

Strike Witches held up very well on a revisit -- Yoshika's oppai-envy just gets a bit tacky, though.

Simoun to about the halfway mark, is just as wonderful as it was at the time.

At 2/3 mark, Legendary Titan Ideon, isn't quite the [new planet/new alien boss/new alien mecha]-of-the-week treadmill I recalled from the first viewing. I'm also rather impressed by the sound design for the series -- the electronic chatter in the background when the scene is on a Buff Clan vessel (which to start with I thought was just degradation in the decade-old archival DVD), or the birdsong and other nature sounds when in the habitat dome of the Solo Ship.

And if Ideon is indeed ancestral to Evangelion, then Sheryl is clearly a proto-Ritsuko -- I caught myself thinking "waifu material" a couple of times. I guess I just have this thing about neurotic scientist girls.

I also re-watched a chunk of Burn-Up Excess -- and this time around could spot a bunch more Eva homages, including sudden white-on-black eye-catches with summary text, and a section of colour manipulated flashback images at a moment of stress, in amongst the explosions and the "jiggling baby-feeders".

I've shelved NaruTaru at the halfway mark for the moment, as just that little bit too tryhard edgy.

As some late night comfy viewing while waiting to see the New Year in, the first couple of episodes of Windy Tales >School >Slice of life were just what the doctor ordered.

Sunday, January 31, 2016

January Cycling

Up to 13,266.5 plus a 1.7 mile drop-out one morning, meaning 327.3 + 1.7 = 329 miles in generally dry, often very mild, but occasionally windy weather. Well up on last year's 255.1, and not just because there's an extra mile or so on the commute, at least on the more pleasant morning route. And last Monday, I even did the long route via Dry Drayton (which was flooded) and Oakington.

Just like last year, the mud and grime (especially that picked up when I'd hoped that the bridleway would be frozen solid, but it wasn't -- at least the forging through the flood washed a lot of it away) have chewed through the chain I put on at the start of December, so that will need replacing next weekend.

Tuesday, January 19, 2016


Basking in October sunshine

At her annual check-up in October, our old cat Jemima had lost weight over the year; not too surprising for a cat in her teens -- so when she pestered for more food, I was happy to indulge her, and let her scavenge our left-overs as well. Having never been a particularly sociable cat, she would at last come and purr aggressively at me for treats when I was busy in the kitchen -- and at the start of last month, when I was feeling unwell, and had made baked potato with butter and cheese as an emollient meal for a dodgy tummy, she even climbed on the bed and tried to steal my dinner from the plate.

Then on Boxing Day, I found her collapsed by the living room radiator, and wasn't sure if she'd make it through the night. But in the morning she had recovered enough to wobble out to the pond for a drink, and eat a little, so when a stop-over at the vets for rehydration had seemed to restore her equilibrium, and they couldn't find anything obvious like kidney or thyroid, so we were given steroids for her to take, and a bag of kibble for delicate stomachs, which she appreciated greatly.

Ten days of that later, she was perking up, and gaining weight, and the vet was pleased with her progress. Then she started to get absent-minded in the middle of her meals and on Sunday morning, after the normal morning care call for my wife, I went downstairs to get everyone breakfast -- and she was nowhere to be found. At that point I thought she had decided it was her time, and had gone out to find somewhere to curl up in, out of the way.

Then Monday morning, she was there in the living room, standing by the radiator, before going to curl up in her basket. By the end of the evening, she was in an uncomfortable looking twisted pose, trying to groom herself, and not making a good job of it. So this morning I called the vets, and took her in. I'm not sure how much ahead of nature the intervention came, but it would have eased her passage.

A few years ago

She outlasted her brother by a decade, but was never the people cat he was. The only times I ever could touch her were on the vet's examination table, or if, in later years, she was seriously fast asleep, and then would merely tolerate being stroked or brushed. Still, she was a mighty hunter, taking squirrels in her youth and pigeons until just a few years ago.

Friday, January 01, 2016

December/Year-End cycling

With the continuing wet and, more often, very windy weather, not a great month -- little inclination to go out and make miles during the holiday week. The year ended with only the winter bike getting used (despite a catastrophic rear-wheel failure at the start of the month), so the numbers were 12939.2, 2689.7 and 6.1 giving 230.5 for the month.

Comparing the start-of-year numbers 11040.7, 890.7 and N/A, that gives 3703.6 miles metered on my bikes, plus 374.1 off-meter for a total of 4077.7 miles, about 150 miles down on last year; hit partly by worse weather over the summer, and so no long rides for the fun of it in July or August because the good weather meant catching up in the garden instead, and less cycle-commuting in the last few weeks of the year due to stormy weather.

And if I did about 100 miles more on the winter/shopping bike, that probably has to do with the shopping being year-round.

Saturday, December 12, 2015

A little app for monitoring connectivity

One of the things that Windows Vista did better than the later releases was to recover network connectivity immediately when coming out of hibernation -- really, as if nothing had happened. Later releases seem to go back to square one to restart a WiFi connection -- and what is worse, there's no visual feedback from the systray icon after the initial handshake to tell when the link is actually useful.

As this can take tens of seconds, it is the biggest pain point I have with Windows X. So, finally I got around to writing a monitoring app.

I started with a simple systray application, and some sample code for using the Network Link Manager API as guidance for an F# application. I also needed to use the CoClass for instantiating an INetworkListManager in line 27 as noted here.

Then it was just a matter of adding some icons, for which I used stock images for blocked, warning and OK from the Visual Studio image library to indicate no connection, not yet usable connection and internet available. Finally StackOverflow reminded me about how to add an application icon, to make a shortcut look nicer.

So, without further ado

Later: having slept on it, there's this simplification can be made to the OnLoad method

Later still: when I've hibernated a laptop with this program running, both times now it has come back with the WiFi connection still live, just like it used to under Vista. Even better.

Monday, November 30, 2015

November Cycling

Usual cycling round-up, with the end of the month numbers 12708.7 and 2689.7, for 160.4 + 74.4, + 2.9 off-meter or 234.8 miles total for the month, and 3867 year to date -- as a result of several patches of patches of wet, or more importantly, windy, weather where I wimped out and drove to work. The one frosty morning was actually great cycling.

That leaves 333 miles to hit the 4200 mark, which is now looking touch and go.

Saturday, October 31, 2015

October cycling

Usual cycling round-up, with the end of the month numbers 12548.3, 2615.3 and 6.1 (odo newly fitted to my folding bike), plus 136.2 on another CycleBreaks holiday, for 94.7 + 207.5 + 6.1 + 136.2 off-meter or 444.5 miles total for the month, and 3629 year to date -- so even more than last month despite patches of wet weather where I wimped out and drove to work.

With the weather set to be El Niño mild for the next month, managing the 4200 goal for the year is looking even more achievable (a few bright mornings where I feel inspired to take the long way around to work are all that I need). Have to see whether 4250 or 4300 ought to be the stretch goal.

Wednesday, September 30, 2015

September Cycling

Despite a few wet days, and stubbing a toe badly (fortunately coinciding), it wasn't so bad a month for cycling -- 12453.6 and 2407.8, for 142.8 + 282.8 or 425.6 miles total for the month (way more than August), and 3185 year to date, so on target for 4200 in the year. A number of fine early mornings that were too good not to take the long way around to work helped, compensating for weekends where I didn't manage to get many miles in (and a summer in general without much in the way of long leisure rides).

The long way around to work also has the advantage that there are next to no other cyclists going the same way, except for on the busway from Oakington down, so I don't have to negotiate past people going along at barely more than walking pace on bikes with wheelbarrows for the kids attached, or who come to a stop blocking paths while waiting for pelican crossings; and there's no need for guessing whether the guy in front has tried to indicate or is just a limp-wristed wossname flouncing along.

Tuesday, September 01, 2015

August cycling

Usual cycling round-up, with the end of the month numbers 12310.8 and 2125.0, for 49.3 + 192.4 + 60 off-meter or 301.7 miles total for the month, and 2760 year to date -- so down even more on last month due to generally miserable weather (culminating in typical Bank Holiday weather), and holidays including forced non-cycling days like driving to and from Southport, plus keeping the garden in check in the gaps.