Tuesday, July 01, 2025

25H1 Cycling

It's been a half year fraught with odo resets, so none of the forensic milages this time.

January started wet, then turned cold and dry, with only a brief slushy snow at the transition. A total of 98 miles done on the winter bike, all to get somewhere. February wasn't quite so cold, but I still didn't feel inclined to venture far afield, or even just go looking for flowers. A total of 163 miles on the winter bike.

Six Mile Bottom Windfarm

By the start of March it was warm enough to tempt me out for a first ride for pleasure, looking for the Spring flowers; and within the week, it was warm enough to want to sit outside in the sun on my first "and a pub lunch" ride.

At the end of the month, the continuing dry mild weather even led me to try Cow Lane again, and it was perfectly passable already. A total of 276 miles for the month, 538 for the quarter.

April continued warm, even hot by the end of the month, but by this point winds were starting to pick up, making long rides less attractive, but I still made the 30 days challenge. 280 miles on winter bike, 130 on the summer bike, 410 in total.

May Countryside

May, soon cooled down, but the winds didn't drop much; and I had the first serious prang for a while, putting the summer bike in for repairs. 144 miles on the folding bike, 267 on the summer bike, for 411 total.

June, starting cool and ending very hot, was a fairly disroganized month, with the only long ride going to lunch in St. Ives in the teeth of a howling gale. 58 miles on the winter bike, on wet days, plus 235 on the summer bike, totalling only 293 for the month, 1114 for the quarter, 1652 year to date.

Wednesday, June 04, 2025

NuGet and self-testing gotcha

This one took me quite a while to unpick.

  • Scenario - you have a global tool which includes dotnet test integration. As part of build validation, the nuget package (either newly minted, or an existing release) is invoked when running the unit tests.
  • Problem - actually the dotnet test integration is ignored.
  • What seems to happen - if the main executable is linked from the dotnet unit test assembly, nuget doesn't restore the package.
  • Bodge - turn the dotnet unit test assembly into a shim that simply invokes the actual tests in another assembly, dotnet test against the former, and run the .Net tests on the test assembly. This is where things stood for the last few years.
  • Resolution - turn the actual tool executable into a complete shim that simply invokes the actual logic in another assembly, and don't unit test that trivial method. Then the dotnet and .Net framework tests can build from the same project.

I had almost completely done that for AltCover, but there was one little bit of logic left in the entry-point method to test, a residue of the old three-way split between .Net framework, old-style netcoreapp2.0 command-line tool (now obsolete), and the new netcoreapp2.1+ global tool, for some global tool only behaviour, the logic included or not by compile time flags based on target framework. That one piece of logic, for the TargetsPath global tool parameter has now been pushed down into the central netstandard2.0 assembly ("Engine"), with a target framework dependent compile-time boolean flag being passed to it from the entry-point shim instead.

Saturday, January 25, 2025

An Engineer does (AI) Art - early local gens

Two years ago today, after a period where the the HuggingFace Stable Diffusion t2i demo wasn't functional, I admitted to myself that I liked doing this thing, and bit the bullet and made a local, CPU based, install of the Automatic-1111 program on the high-powered workstation I'd bought a few years previously, and found that I could generate a 512x512 image in "only" 12 or so minutes. The world was now my oyster.

So I retried the sort of prompts that had worked previously, only to find that the NAI model used in the base install instructions responded rather differently to the SD1.x I'd been used to. But no problem, now I could try other models! And by the end of the day, the best result had come from Waifu Diffusion 1.3 -

which is probably the only tolerable result I ever got from that model.

The next few days were a learning curve - that SciFi in a model name did not mean it could handle green Treens, or other similar staples, and that my purposes were better suited with anime models; the care and feeding of your VAE, use of LoRA and embeds, particularly negative prompt embeds. And so I embarked upon the project to illustrate the stories I'd written long ago.

And that was where the limitations of the technology became apparent. While generic 1girl pictures were simple enough to achieve, trying to translate from mind's eye to image via prompt was less so. Even simple descriptions of clothing like "black top and green skirt" or "green dress with white belt" were enough to confound matters; and while simple scenery was possible, the system often liked to insert a 1girl unprompted, as here -

but that could be treated as serendipitous in the right contexts.

With plenty of scenery or single-character scenes in the various stories I was trying to illustrate, I kept on trying different ones, building up a repetoire of test prompts for comparing new models/LoRA/whatever (𝕏/twitter thread). I might not be directly achieving what I wanted, but the results were generally pretty (even if faces often needed inpainting to fix).

But then some time around mid-April, I reached a point where the test-card activities (see a new model, ideally with an idiosyncratic style, and run the scripted set of prompts over it), and messing around for fun took over from the original intent to illustrate, and I started to dabble in AI art twitter as a brash and shameless n00b, generating things that had no illustrative intent, but scratched the making pictures itch.

Also at this point I had a catastrophic motherboard failure on my old workstation, and faced a decision point...

Friday, January 03, 2025

Anime 2024

Not much to report. One Piece got paywalled in the summer, but I did take advantage of the opening of Overlord IV and Natsume Yuujincho 5 & 6 in the autumn, which were really more of the same, both feeling like they were getting a little tired and losing focus, but still worth watching.

At the 11th hour, also Dai Mahou Touge, and incredibly silly magical girl parody, which was amusing enough, but no more.

I actually spent much more time reading manga this year from /a/ storytimes than watching anything.

24H2 Cycling

Q3 was windy again, cool and at times quite wet, so marked a collapse

The quarter started with 2594.1 on the winter bike, 292.8 on the folder, and 4825 on the summer bike, (2478.85 YTD)

Great Ringstead sign

July had the usual coach trip to Hunstanton, this time arriving early enough that I could ride out to the gin Trap Inn at Great Rinstead for lunch, then loop back through Heacham, and along the bridleway back on one of the good days. It was wet and windy on a day where I'd planned an early start long ride to an event, and momentum never built for any sort of expedition.

End of July went to 2725.82, 321.53 and 4974.2 with nothing off-meter, total 309.65 miles (2788.5 YTD).

Sudden puddle

August was cool, and dry, even though puddles still lurked on many off-road routes, but by late in the month, the railway underbridge on the Hauxton-Shelford permissive route was finally passable, as was the Thriplow-Great Chesterford bridleway. In some places, though, even when they had dried off, bridlepaths were difficult going, having become overgrown through lack of use.

End of August went to 2773.03, 343.6 and 5217 with ~2.3 miles off-meter, total 314.38 miles (3102.88 YTD).

Linton again

September had a last gasp of good weather, with chance to do a run up the Ickneild Way to Linton, and explore the new greenway on the return, near the start of the month, and one glorious day mid-month where I went on a river cruise rather than a long ride, but from then it was down to business rides.

End of September went to 2831.32, 343.6 and 5422.1 with ~2.9 miles off-meter, total 266.28 miles (3369.16 YTD).

Autumn colours

October, such a contrast to '23; where that had been T-shirt and shorts rides to mid months, this was getting out the winter gear at times.

End of October went to 3090.79, 346.95 and 5422.1 with ~1 mile during the folding bike's service, total 261.83 miles (3630.99 YTD).

Leaves on the bridleway

November was nondescript, until the stormy Saturday 23rd, where I was busy all the daylight hours, and for the first time in 693 days did not do a ride.

End of November went to 3357.74, 346.95 and 5422.1 with nothing off-meter, total 266.95 miles (3897.94 YTD).

Cyclepath works

December was comparatively mild, and freed from the daily chore, I still did longish rides to deliver postcards, and do shopping - though I didn't do the anniversary ride of the Abbey Bridge this year. New Year's Eve was even mild enough, ahead of a stormy New Year's Day, that I took a rather extended ride to mop up a couple of unrelated bits of business

End of December went to 3544.91, 346.95 and 5422.1 with nothing off-meter, total 187.17 miles (4085.11 YTD) - so not as much as the last couple of years, but better than others during retirement.