Sunday, February 21, 2021

Kappa "Kami-cat" Kamina 23-Oct-2007 - 21-Feb-2021

Kami looking innocent

A cat of remarkable practical intelligence, especially where food was concerned -- "food in a can with the rip-off cap on top of what's left? Easy -- hoik the lid out and start scooping!", and a master of the art of holding things still with one paw, or even just a single toe, while licking them clean.

Kami foraging

The runt of the litter, he was always at the bottom of the heap at least around the food bowls, so that may have contributed to his readiness to forage for might-be-edibles (which long-term may have been his downfall) and to hunt -- I remember having to excuse myself from a phone meeting to take him and his pigeon outside. When he no longer had his sister keeping him down, he came into himself, being the one to inhale his own late evening treat of wet food (initially a ruse to get the cats inside and downstairs at the end of the day) and steal Pip's.

And then one evening he didn't come squealing as was his wont. A stay at the vets, a special diet, and he seemed to be on the mend -- once more squeaking for his evening treat, then in the morning happily climbing unassisted to his usual basking spot; but by Thursday evening he was off his food again. Friday morning, he was huddled miserable in a corner, so off again to the vets, where he declined, underlying cause not determined.

Monday, January 04, 2021

Anime round-up 2020 and a bit

Never got around to doing an "end of the 2010s" summary a year ago, mainly because of the new titles that quarter I only watched the Youjo Senki movie (which is just more of Tanya being her loveable self in the desert and on the Eastern front -- if you liked the series,...) and one episode of Chihayafuru 3.

And what with that, and other world events, I ended up watching very little that was new the whole of 2020, with a bunch of backlog clearing and rewatches.

I stumbled across the raw of the Lensman movie on YouTube, so out of morbid curiosity -- having heard nothing good about this take on the classic space opera -- I sat down and watched it. On the plus side, it's clearly animated on a movie budget, and generally makes good use of what was for the time high-end CGI (except in one bizarre TronxPacMan-style sequence), and generally has high production values. On the other hand, it pastes a few names from the source onto a Star Wars meets Dirty Pair sci-fi comedy thriller, with random slapstick, and even more random disco scenes. Interesting to have seen, but that's about the limit of it.

Also finished Chobits, having abandoned it years ago. This was another of these "complete" manga adaptations that finish while the manga itself is still wrapping up (see also Planetes, Bokurano, etc, ad naus), so could only approximate the canonical end, with the most obvious difference being that Chi's inconveniently located reset switch never actually factored into the anime's resolution. Because 1 cour shows weren't really a thing back around the turn of the century, it also had to spread itself out, so that, as well as overly extending the one chapter gag about Chi's pantsu to a whole episode, about a quarter of the episodes were completely anime-original SoL. In the adaptation, too, it brings home the generational change in technology in the years since, even more than the manga, which I reread a few months ago -- smartphones haven't quite become "it", but that's only for lack of the sexbot chassis.

Overall, very dated in style as well as subject, and having seen it all, I'm happy to cross that off the backlog, even if I was right in dropping it after the first disk, back in the pre-broadband days when it would not have been dated. Verdict -- of historical interest only.

Of similar historical interest was Tezuka's Firebird 2772, a very stange mix of distopia with interludes that wanted to be in Disney's Fantasia when they grew up. Rock Schlock, indeed. Plus the legendary 1985 OVA Twinkle Nora Rock Me. Yes, that one. The one where they saved money by not doing any in-betweening. Entirely harmless fluff, but Nora herself stands as an example of a character with potential wasted by the rest of the production.

I also caught up with Saint October, a series which, apart from killing off every fansub group that attempted it, started off being something very whimsical, somewhere in the vicinity of Scooby-Doo, style-wise, with cartoonish villains ranged against the magical-girl Goth Loli detectives. I'd seen about the first third before subs seemed to have completely stalled, so I was pleased to see the first cour end with what seemed to be a darker turn. It was slightly disappointing that the next episode, the only vestige of that event was in the new OP animation, but from that point the stakes did slowly build all the way to a rather well handled dénouement, which was better than the potential angst-fest that the midpoint seemed to be setting up. In all a surprisingly good series that I am glad finally got subbed, despite the rather patchy nature of those subs. Verdict -- well worth watching.

Also watched Fafner and Fafner : Heaven and Earth, both of which were OK, but nothing spectacular; in particular I didn't notice any significant difference after the writer change part-way through, which is something usually mentioned about the first series. In retrospect, having started with Exodus, and then gone back, may have been the right thing to do.

I had a bit of a Gundam kick, including F91, which was fairly weak, even allowing for it having been edited down to fit a movie, with sudden jumps after which characters had changed sides. Even the Char was a let-down. OTOH, G-Reco was not as bad as I'd been led to believe by the threads for when it aired -- it's just that everyone has factions (except the Gondwanese, who we never see, only hear of), several of the high-ranking military are clearly unfit for command on account of being sub-rational, and the ending just happens, after catching up on the Tomino kill-quota. And what was that random bit of "let's visit Japan" with a Tomino cameo after? I've not seen them in Japan in a UC Gundam before.

Also from the backlog, Fist of the Blue Sky - Regenesis, being a sequel to the autumn '06 Fist of the Blue Sky, which I never finished for lack of subs at the time. For a show about larger than life manly martial artists having two-fisted adventures, the somewhat janky CG animation is tolerable. In the end it was was a decent enough hokey martial arts fest, with new ultimate techniques being handed out almost every episode. On the down side, you do have to simply ignore the sudden retcon of the maguffin after the mid-point timeskip, not worry too much about the chronology, and sigh deeply when the scene cuts from some tense action to the comic relief villains left over from the previous series. And why is it that the mid-season change of OP/ED is always for the worse?

Samurai Flamenco was a fun love letter to toku, along the same lines as Gurrent Lagann was for super-robot, as well as being one of those rare series where the main cast are all adults well past their school days.

Picked up on a whim from having seen favourable mention years past, Blast of Tempest served the job of occupying a few dark evenings, but as a shonen series, having the two high-school leads out mind-gaming the adults was just going to be part of the territory, even if it had the grace to stay out of school. The mid series plot-twist was handled elegantly enough, though, as was the guy who by rights ought to have been the big bad. That the main girl falls for the "literally me" character was only to be expected.

In the guilty pleasures pile, I watched all three seasons of Overlord, a harmless diversion which proved to be quite amusing, with all the "Oh, shit!!" moments, just before the over-confident NPCs get kerb-stomped by our dorkish MC or his entourage.

On hold are Heroic Age, a sort-of mechs-in-space (or, rather, Attack on Titan in Space) from the Fafner crew, which had the misfortune of airing at the time as Gurren Lagann, and Bamboo Blade, also from '07. Also on hold, as only the first couple of episodes seem to have been subbed is Six Heart Princess, another rather different magical girl series, Different, as in it opens like this

with the use of ships as projectile weapons like that last seen in End of Evangelion.

Dropped after 4 episodes, Galilei Donna reminded me very much of RerideD, even though none of the lead staff on the one worked on the other, which was enough for me to declare it another Noitamina dud.

Amongst rewatches, Fafner Exodus, which I think benefited from now being able to tell more of the Hiraiface characters apart (good robot series, you should watch it); Long Riders (twice), during the winter and the early lockdown (a generally charming cute girls do outdoor activity show), Kemono Friends (tanoshii!!), GaruPan and Minami Kamakura Girls' High School Cycling Club plus OVA, for the vicarious miles on the road, mixed in with fluffy stuff like Vividred Operation, Konohana Kitan, Flying Witch and Toji no Miko. Also Rewatched YuYuYu both seasons, with the Hero Club part of S2 being much better when a) one knows that the developments being trailed in the Kusunoki Mebuki wa Yuusha de aru LN were scrapped and b) when watched with better subs than the "electronic brain pancake crystal elderly"-tier Amazon effort.

Q1 did bring the short-short Heya Camp△ which was entirely harmless; and Kirara Asteroid a "cute girls doing things" in the same sort of vein option, but that didn't impress -- the curse of 4koma source material strikes again, I guess. Somali looked pretty, but the endearing small girl antics were too much to take.

On the positive side, Railgun T was a known quantity, and there was also the rather off-beat Eizouken. Not only is this another Yuasa anime, it's an adaptation of a manga which I first became aware of due to some moaning about some of the typesetting in the scanlation --

but in the end, it did itself a disservice by not just fading to black when they put the DVD of their Comiket anime into the drive, rather than ending with what was the most underwhelming of the three pieces they animated. The best bits were the girls interacting, with Kanamori being the voice of reason amongst all the flights of fancy -- the process rather than the outcome.

Railgun T ended up spread over the first three quarters of the year due to production difficulties (Spring season in general was badly hit by Corona-chan), and was the mixture as usual, right up to the parts where you just have to say "Honestly now!" -- "Bust Upper", indeed!

In the end, Chihayafuru 3 was an interesting change of pace after the first two series -- much of the time Chihaya wasn't playing cards, being either away on a school trip, worrying about what career to follow after high-school, or in the audience watching 2nd and 3rd tier cast members playing each other in the Master and Queen tournaments. And there was even about an episode's worth of progression of the romance triangle scattered into the mix, before another cliffhanger ending.

The Toji no Miko OVA was little more than a reminder advertisement for the mobage, to showcase some of the in-game characters. Entirely harmless, but a bit of a let down compared with the series. Even the sword fights seemed mainly to be going through the motions.

And finally, this year I did finish the one Q4 show I started -- Iwa Kakeru was an adequate "cute girls do cute climbing things" offering, but no more. The quirky rivals from the other schools were mostly Chekov guns that never fired, with only Asuka Kurusu Anne being given much development, and again the curse of the 12 episode season hit -- the Nationals could have benefited from spreading over two episodes and leaving a little space to catch breath after the results were announced.

Continuing are Digimon Adventure: 2020, and rewatches of Tegami Bachi and the Koihime Musou sequels

Friday, January 01, 2021

December Cycling

On the winter bike only, from 17522.7 to 17608.7 for a total of 86 miles, going out for fresh air on the few bright days in the month. For the year that was 1008.4 miles on the winter bike, 1366.3 on the summer bike (2216.8 to 3583.1) and 17.64 to 48.18 = 30.5 on the folder, giving a total of 2405.2 for the year, way up on what I thought I might do.

The weather was rather wet all month, especially in the days before Christmas -- water meadows all flooded, and in places roads, like the above turn-around-and-go-back interruption to my Christmas Eve ride, where the Bourn brook had burst its banks near Toft.

Wednesday, December 02, 2020

November Cycling

On the winter bike only, from 17313.5 to 17522.7 for a total of 209.2 miles (YTD 2319), in weather that was often cold, but mostly dry, so I did manage to get out on my bicycle for fresh air and exercise -- even if only for a few miles, though with a couple of 20+ milers -- every day for the second lockdown, whichever day in December it actually ended.

And I did get to see the new Abbey bridge

to be continued...

Wednesday, November 18, 2020

AltCover -- the road to .net 5, F# 5, and GitHub actions

A for the record listing of what was needed to make the transition for a project that's over a decade old -- the current GitHub repo is only 3 years old, but that was formed by grafting the relevant contents of the original 2010-vintage SVN history onto a 2H17 git bootstrap.

In the original 10Q2-11Q1 development, the build system was a PowerShell script that called msbuild on the .net3.5 solution, then did an automated copy and edit to also build against .net4; taking up the reins again in 17Q3, the latter were used as the basis for going forwards. Over time, parallel .net core projects were added, which eventually subsumed the originals.

Thus, on the eve of the .net5 release, we had

  • A main solution targeting net472 (debug only) and netstandard2.0 for libraries; net472, netcoreapp2.0 and netcoreapp2.1 for tooling with netcoreapp3.0 for unit tests
  • A separate solution building a net20 library (the run-anywhere recorder) plus tests at net20/net472/netcoreapp3.0
  • A separate solution for the GUI tool, targeting net472 (debug only) and netstandard2.0 for libraries, net472 with a reference to the GTK2# assemblies in the GAC, and netcoreapp2.1 for tooling and netcoreapp3.0 for unit tests
  • Finally a solution for building a front end to the Mono C# compiler library, used to provide test data, still in the old project style

So, all very good and mostly modern -- the transition should have been trivial then...

Not so fast...

Once I had the F#5 compiler installed, that broke the net20 build (looking for a System.Numerics.dll which was still part of FSharp.Core in net20). Applying an earlier F# compiler via NuGet package fixed that in Visual Studio, but then dotnet build failed, so I had to resort to msbuild-ing the recorder solution. But then on the travis-ci build, that meant that the net5.0 (upgraded from netcoreapp3.0) unit test target got interpreted as .net Framework 5.0, and the build failed for lack of approprate referenced assemblies. So, as you were before with the unit tests, at least for the moment.

At this point, one obvious result of maintaining backwards compatibility by building deliverable executables (and unit tests) against older netcoreapp* targets, but with "rollForwardOnNoCandidateFx": 2 in runtimeconfig.template.json was a profusion of NETSDK1138 obsolescence warnings; silenced by building with /p:CheckEolTargetFramework="false" all around.

Where I'd been running ahead of AppVeyor's current installed .net SDKs, I'd been using Chocolatey to bring down the version I wanted; time to be aware that the package has been renamed from dotnetcore-sdk to dotnet-sdk instead.

That got things building on the "traditional" CI servers, so, a good time to make a first try of GitHub Actions for CI as well.

With the at-time-of-writing latest windows and linux platforms, that meant that I didn't have a "modern enough" msbuild.exe on the PATH for the recorder and the GUI tool. To resolve that, I resorted to finding the path of the MSBuild.dll from the current .net5 SDK (via parsing the output of dotnet --info for the Base Path: value), and lashing up a way to use it with Fake's MSBuild command line construction support.

Fall-out from this was needing to compile string resources ahead of time for the recorder -- no ResGen.exe support in the new regime -- and use the same (earlier) compiler for all the test platforms; also creating a set of reference assemblies for GTK#2, so I could avoid having any reference to the GAC (meaning that the GUI tool solution would now dotnet build, even if I still have to MSBuild the recorder solution). The Mono C# compiler project -- also using MSBuild -- which still made references out to .targets files out in Visual Studio or Windows SDK parts of MSBuildExtensionsPath32-land also needed attention; as a retro project, I simply added the earlier F# compiler package here, too, to make it build.

On the plus side, now the net20 project is using the MSBuild executable from the net5 SDK, switching the unit tests all round to target net5.0 works as one would hope it to work.

Tuesday, November 03, 2020

Yamako "Yoko" Yulan 23-Oct-2007 - 3-Nov-2020

Yoko on a fencepost, mid-August 2020

She was the cat who rarely did anything to make me take photographs of her by herself, and then mostly by being the one who went out first in the morning to find somewhere sunny to sleep, so was rarely being at all dignified at the time. She was also the cat who put a halt to staying-on-the-bed privileges, on account of getting up in the small hours and wandering about wailing, and the one who ended demand feeding, by ballooning up, and thus meaning us having to strictly weigh all the cats' food.

Early September, she suddenly lost weight, and the vet diagnosed a lymphoma; so then it was a case of nursing her through the last weeks, where she got totally pampered, offered all sorts of treat-food (with plenty of leavings for the others to hoover up), and getting stay-on-the-bed privilege, as she would now just curl up and sleep through the night. On Monday, she was still happily wandering around, even going out to drink rainwater from plant saucers and then bask in the sun in the greenhouse; Tuesday, she had no appetite, and when she crawled off the bed, fell and just lay there, so it was, alas, time to say goodbye.

In those last weeks, it was hard to remember that this elegant, if scrawny, cat who could just sit hunched up on my forearm had been quite the great chubby lump in her younger days

Sunday, November 01, 2020

October cycling

On the summer bike starting at 3553.7, and ending at 3583.1, and winter bike from 17251.2 to 17313.5 for a total of 91.6 (YTD 2110), with a small number of drop-outs from a loose connection on the latter, maybe up to 1/2 a mile. The weather stayed mild all month, but was generally windy and wet, so the run of riding every day that started on the Bank Holiday weekend came to a stop.

This was almost all going somewhere (market, dentist) miles; fortunately I managed to stay dry apart from the very last day of the month, doing a resupply run ahead of the coming lockdown, where it went from vaguely spitting to absolutely tipping it down in the last couple of miles of the return leg.

While I again managed more miles this month than the same time last year (just), November is not April, so any rides for exercise will be limited -- probably shan't get to see the new Abbey bridge until almost Christmas.

Thursday, October 15, 2020

Old moon in new moon's arms

Waking early this morning (not too long after 06:00), looking out the bedroom window, I saw the decrescent moon plus Earthshine, as an almost perfect ◡ at 4% phase, and as the sky lightened, the crescent at least remained visible until gone 07:00, or less than 37.5 hours until the New Moon.

Thursday, October 01, 2020

Q3 Cycling

The theme for the summer was to rediscover places, and discover new ones, without actually having to go too far; and it was surprising quite how many routes there were within just a few miles of home I'd never before travelled, and not just because they'd only just been built (like the new A14 crossings, or the cycle paths through the new developments on the southern fringes of Cambridge), even if there was a lot of just retracing convenient and familiar circuits involved as well.

Meridian stone

July opened with belated April showers; so rides tended to be short, if at all, until mid month, with the two long -- 30+ miles -- rides in the last third of the month. At the end of the month 17063.5 on the old bike, 3042.7 on the new and 29.67 for the folder, for a total of 359.9 miles (YTD 1301.1 -- just like that, ahead of last year). It also brought the re-opening of pubs, so a few rides out to browse and sluice at lunchtime, with suitably long winding outward journeys to work up the thirst.

For some variety, the rides included crossing to the north of the busway, into villages I'd not cycled before, and included trying the new cycle etc. bridge crossing the A14 between Boxworth and Swavesey.

St. Mary and All Saints, Willingham

St Mary's, Over

August riding was patchier, including riding home through pouring rain from having taken the car in for its MOT, with spells of good weather before temperatures collapsing at the start of the Bank Holiday, but with three long rides roughly equally spaced through the month, the numbers came out as 17119.1 on the old bike, 3277 on the new and 48.18 for the folder, for a total of 308.4 (YTD 1609.4). Noticably, cycling the same stretch of busway around Oakington on the Bank Holiday Monday there were only a few others, compared with the crowds three months earlier.

Exploration this month included heading from Gamlingay and through the Hatleys and a surprise long downhill towards Wendy; and heading through Stapleford towards Wandlebury, and thence onto the Roman Road.

St Margaret's, Abbotsley

Tadlow Granary

September brought an Indian Summer, and a run of riding every day that continued from the end of August into October, until brought to a halt by cool, windy and, most importantly, wet weather -- 17251.3 on the old bike, 3553.7 on the new and 48.18 for the folder, for a total of 408.9 miles -- the highest total since October 2015 -- (YTD 2018.4, comfortably hitting the goal for the year).

The rides included taking the new A14 crossings at Bar Hill and heading on all the way through the new build at Northstowe to Rampton, and going up through Conington to Fenstanton; but there are plenty more newly opened routes to explore, even just in that area, for stretching legs next summer.

Take this path

See this sign

And by the end of all this, the roads that had been so clear, were back to their normal levels of traffic during the evening rush hour(s).

Wednesday, July 01, 2020

Q2 Cycling

Corn poppies at Duxford, 22nd June

With a short daily outdoor exercise approved, I did actually manage the 30 days of April, only getting sprinkled with rain one day, by riding round the village and part-way along the roads leading out. In a month of generally good weather, it was amazing how many families were out on bikes on similar rides too.

Winter bike only 16835.7 to 17000.8, making 165.1 miles (YTD 400.5).

May started off with a spell of cooler wetter weather, but by the time unlimited outdoor exercise was approved, it was definitely good for cycling, and a chance to build up stamina lost. Again, lots of people out on bikes -- especially on the late bank holiday, as I have never seen so many people riding on the busway. Summer bike 2216.8 to 2474.7, for 257.9 miles, the best since summer '16 which had cycle commuting and a good cycling holiday. YTD 658.4

June was even more of the same, summer bike up to 2757.5, for 282.8 miles (YTD 941.2, or about 125 miles behind last year).

Wednesday, June 24, 2020

Snagging just the Windows Spotlight Lock-screen images

One of the annoying things about Windows Spotlight is that at times, it includes advertising junk in the screen text. Somewhat more annoying is when a picture comes up, you wonder what it's a picture of, but the screen text never shows.

There are plenty of articles out there which tell you how to capture all the OS image assets and leave you to manually sort through them. Noting that the lock screen images will be of recent date, it's actually much easier to automate the entire process in a few lines of PowerShell --

which pulls just the phone and desktop images into the current directory for you; this means you can then use the standard means of identifying images to attempt to answer questions like "Spain or old California?", "England or New England?"

Saturday, June 13, 2020

Another end of era

Some time this weekend, the Demon Internet e-mail address I've had for over 25 years will cease working. If you still only have that address to talk to me, you can take out the "•😈•🇨🇴" from that to get my new fallback e-mail address.

Tuesday, May 26, 2020

Computing cyclomatic complexity with F# 5.0 interactive and Mono.Cecil

Many moons ago, I posted a simple PowerShell script to use the FxCop SDK to introspect over a bunch of assemblies and compute a measure of the cyclomatic complexity of each method; in this case, by counting the number of IL branch instructions that do not branch to the next instruction, and which have a distinct target from any other branch.

That in turn was based upon the algorithm used in NDepend 1.x, which was sufficiently antique to not consider switch opcodes, a deficiency which can be worked around. And as an alternative, the algorithm used in Mono.Gendarme can be implemented in F# instead.

The main barrier to creating a simple replacement with Mono.Cecil has been the location of the assemblies with the NuGet package version in the file path. Now, however, with F# 5.0 interactive allowing reference-to-nuget statements, providing a pair of scripts that can do the job, without the awkward question "Where's Cecil?", becomes a simple task.

The classic version first

and another using the algorithm from Mono.Gendarme

Tuesday, March 17, 2020

March Cycling (COVID-19 edition)

On the winter bike starting at 16767.4 and ending at 16831.5 when the advice to stay at home and shelter in place came out, for a total of 64.1 miles (231.2 YTD). Bang! go all the long spring rides, and the 30 days of cycling in April, that I'd been planning.

Later (27th) -- a spell of fine weather near the end of the month encouraged me out for a short burst of fresh air after doing end-of-winter maintenance on the bike, to spot where the terrible road leading out of the village had been completely resurfaced in the past couple of weeks. Total numbers become 16835.7, 68.3 and 235.4 respectively.

Wednesday, March 04, 2020

February Cycling

On the winter bike starting at 16683.4 and ending at 16767.4, for a total of 84.0 miles (167.1 YTD). Barely half as much as last year, in a month that was often wet, and with persistent high winds (gusting 40mph plus), which meant that again the home gym was a much more attractive prospect than doing leg-day, followed by another extended leg-day getting home.

The weather was at least mild, except for one brief fall of wet snow at the end of the month, which meant more time spent in the garden, cutting the grass and getting ahead of the weeding.