Wednesday, August 31, 2016

August Cycling

Up to 14,242.1, 3,820.5 and 128.8 off meter, meaning 19.3 + 183.4 + 128.8 = 331.5 miles (2782.6 YTD -- slightly up on last year, with its dreadful summer, but behind the pace for 4200 whole year, even at a steady rate).

I did manage a cycling break over the Bank Holiday weekend, with no worse than a few spots of rain on the Sunday, and glorious weather thereafter. No really long days, 50 miles being the longest, from Framlingham, up Route 1 to Beccles, then Route 31 to a very busy Southwold, a stop for rehydration, and then the last leg to Westleton, taking advantage of the dry weather to use the by-way from Walberswick where I came a cropper a few years ago -- only this time with only sand to worry about.

Town sign

I even managed to do a fair amount of new terrain, like the Route 1 off-road into Halesworth (which ought to have been the first day's destination, but once again there was no room at the inn), then everything north of Brampton on the Monday, then on the homeward leg, crossing the A12 just north of Saxmundham. OTOH, some bits I thought would have been new, near Gt Glemham, I had in fact already covered, even if only once and as recently this spring, taking a long route back from Framlingham to Woodbridge -- but this time the weather was glorious.

Saturday, August 13, 2016

A cycling anniversary

Today concludes my second year logging my journeys on the Cambridgeshire Cycle Challenge website, over which span I've logged 1137 (up from 601 = 538) journeys covering 8166 (up from 4204 = 3962) miles; supposedly 1302 kg CO2 saved (ignoring my increased respiration when burning the 147, 556 calories it tells me I have spent doing so) and saving £910.03 on fuel (ignoring the costs of fuelling me or running through consumables like chains).

Those wet spring and summer months are really showing on the numbers, now; as does an increasing dislike of the cycling conditions (= other road users) on any route to the Science Park.

Sunday, July 31, 2016

July Cycling

Up to 14,222.8, 3637.1 and 86.5, meaning 4.4 + 288.0 + 64.2 = 356.6 miles (2451.1 YTD -- and slightly behind where I was last year at this time).


The month started better than June had been, so inspiring me to start the month by filling in the wedge at Burwell, but was overall somewhat so-so, despite the real heatwave around the 20th. A week away at the end of the month meant no commuting miles, but just a few shortish rides for pub lunches, on the folding bike, around what became disappointingly wet weather.

Sunday, July 24, 2016

Another little MSVC Rust gotcha.

I've now set up VSCode with Rust on three machines -- the first two went without a hitch; the latest simply refused when running cargo install racer to compile kernel32-sys, with a x86/x64 mismatch.

And running dumpbin /headers on the system libraries mentioned in the dump of the failing link command, sure enough the x86 versions were being picked up by default. Now, going in and doing environment surgery started to unblock the system, but I wanted to figure out why this machine was giving problems.

Much scratching of head later, I realised that the first machine I'd run the command in a PowerShell window without running the Visual Studio VSVARS32.BAT, and that on the second, though I had run that environment set-up as part of my PowerShell profile, that one was running WinX/x86.

Moral of the story -- don't run cargo install from a Visual Studio prompt.

Monday, July 04, 2016

Rain brings on the Rust

One thing that the wet weather in recent weeks accomplished was to give me some time to play with Rust again, after a go-round a couple of years back, when it still needed to run in an mingw prompt, the code was full of sigils, and I couldn't get an executable to link against advapi32.dll; then again towards the end of 2014 when I migrated a fork of the rust-windows project to the then-current version.

Last year was a bit of a wash all over, coding for fun being one of the major casualties of the year, so it was pretty much a start anew, to build myself a simple "hello world", porting a simple Win32 program to the new language.

It was reasonably easy to find useful samples and fragments from which to Frankenstein together a working program. What I did not find, however, was any good guide to adding resources to the project using the native (rather than the foreign) tool-chain. So I cast around a bit and hacked this together:


It's hacky, since it builds the .rc file to a .res file that actually calls itself a .lib, so that the cargo tool will add the extensionless name as a .lib to the linker, and the linker, fortunately, ignores the file extension and just looks at the file content. It's also hacky in that it hard-codes the path to a local rc.exe, and works around the fact that that tool does not offer an output directory parameter by tree-walking from the directory where we want to place the output to where the source resides.

I'm sure there must be a better way, but this works. Apart from the fact that a VERSIONINFO compiles OK into the resulting .exe (as can be seen by opening it in Visual Studio), but doesn't show in the file properties. Application icons work just fine, though.

June Cycling

The rainy season that usually wipes out April/May cycling waited until the Late Spring Bank Holiday. This means that the totals for the month are 14218.4/3349.1 + 10.7 off-meter -- meaning 90.4 + 196.2 + 10.7 = 297.3 miles, or 2094.5 YTD, only slightly shy of my 2100 target for the half-year, even so. That is to say, despite logging the fewest miles of any month this year, even February, and 2/3 what I did in the same month last year, I'm still just ahead of last year's total.

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:

D:\Source\Feature\path\to\component\Library4
\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.

Build FAILED.

[105 lines of other errors omitted]

"D:\Source\Feature\path\to\component\Build\BuildAll.proj" (FullB
uild target) (1) ->
"D:\Source\Feature\path\to\component\Component.sln
" (default target) (2) ->
"D:\Source\Feature\path\to\component\Library1\Library1.
csproj.metaproj" (default target) (15) ->
"D:\Source\Feature\path\to\component\L
ibrary2\Library2.csproj" (default target) (16) ->
"D:\Source\Feature\path\to\component\L
ibrary.2a\Library2a.csproj" (default target) (18) ->
"D:\Source\Feature\path\to\component\Library3
\Library3.csproj" (default target) (20) ->
"D:\Source\Feature\path\to\component\Library4
\Library4" (default target) (19:2) ->
  D:\Source\Feature\path\to\component\Library4
\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:

PreBuildEvent:
  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

Rain causes Rust

One thing that the wet weather in recent weeks accomplished was to give me some time to play with Rust again, after a go-round a couple of years back, when it still needed to run in an mingw prompt, the code was full of sigils, and I couldn't get an executable to link against advapi32.dll; then again towards the end of 2014 when I migrated a fork of the rust-windows project to the then-current version.

Last year was a bit of a wash all over, coding for fun being one of the major casualties of the year, so it was pretty much a start anew, to build myself a simple "hello world", porting a simple Win32 program to the new language.

It was reasonably easy to find useful samples and fragments from which to Frankenstein together a working program. What I did not find, however, was any good guide to adding resources to the project using the native (rather than the foreign) tool-chain. So I cast around a bit and hacked this together:


It's hacky, since it builds the .rc file to a .res file that actually calls itself a .lib, so that the cargo tool will add the extensionless name as a .lib to the linker, and the linker, fortunately, ignores the file extension and just looks at the file content. It's also hacky in that it hardcodes the path to a local rc.exe, and works arounf the fact that that tool does not offer an output directory parameter by treewalking from the directory where we want to place the output to where the source resides.

I'm sure there must be a better way, but this works. Apart from the fact that a VERSIONINFO compiles OK into the resulting .exe (as can be seen by opening it in Visual Studio), but doesn't show in the file properties. Application icons work just fine, though.

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.


Also, mid month, we finally finished last year's apple crop, despite that having started in mid-August, well earlier than usual.

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.

Watched

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!

Incomplete

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.

Rewatched

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.

Revisited

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.