Your leaking thatched hut during the restoration of a pre-Enlightenment state.


Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").


decay & ruin
Biosphere II
dead malls
Irving housing

got that wrong

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff

(nobody does!)

Like my brownhouse:
   not prohibitively so
Thursday, June 24 2021
This afternoon, Gretchen and I drove out to Sharp Transmission to pick up the Subaru. My first destination in it (with both Ramona and Neville) was the Home Depot, where I wanted to buy a small amount of treated lumber. I noticed on the drive there that the transmission seemed normal, though the accleration felt a big vague. That's probably just because I've gotten used to the Chevy Bolt, which has great acceleration starting at just about any speed (and doesn't need to shift through gears to apply it efficiently). The question at Home Depot was whether lumber prices were still badly inflated, as they had been throughout the spring as the coronavirus pandemic began to ebb. They were a bit high, but not prohibitively so. So I bought two eight foot two by sixes and an eight foot two by four, with the plan being to use them to create another parallel deck rail to put yet more planters on top of. The great thing about planters on decks is that they're immune to critters like deer and slugs. Frieda the Friendly Deer (who may actually be a male) has devastated our tomatoes, and slugs have eaten every trace of all the sunflowers I planted the moment their dicotyledons pushed up out of the ground.
Meanwhile Gretchen and I have decided to sell our 2010 Prius to Powerful for $2000 (about half what it's worth) so he can take it with him to Albany and do with it as he likes. The Prius has a lot of minor body damage, but it's extremely reliable.

In the remote workplace, today and this evening I figured out how to have some C# code look through its own classes and call a common method on each one. To do this, though, I had to go through all the classes and add a zero-parameter constructor to the existing three-parameter one. This allowed me to then cycle through all the classes and lookup their versions so I could convert from the names of the classes to their versions, thus saving me a lot of human error as I try to determine other things. I'm not loving C#, but I'm gradually figuring it all out. It definitely helps that Visual Studio seems to catch nearly every error before I even attempt to compile the code. Here's the code that did what I needed to do today:

public long LookupMigrationFromName(string name) { foreach (var asm in AppDomain.CurrentDomain.GetAssemblies()) { if (asm.FullName.Contains("Importer")) { foreach (var type in asm.GetTypes()) { if (type.FullName.Contains(".Migrations.") && !type.FullName.Contains("_") && !type.FullName.Contains("<>")) { //Console.WriteLine(type.FullName); Type t = Type.GetType(type.FullName); IMigration instance = (IMigration)Activator.CreateInstance(t); //Console.WriteLine(instance.Version); // Console.WriteLine(type.GetParent()); if(type.FullName.ToLower().EndsWith("." + name.ToLower())) { //Console.WriteLine(instance.Version + " : " + type.FullName); return instance.Version; } } } } } return -1; }

For linking purposes this article's URL is:

previous | next