Dropped a card in the mail to Mom this morning. Timed it perfectly, as the garbage truck was just collecting our trash, so I brought the container back up to the garage on my way back in the house. I flipped open the cover to the keypad and saw a flash of green and felt something cold and soft hit my forehead and stick!

Startled the heck out of me and I jerked my head forward to dislodge whatever it was. It fell to the dirt, happily not on the hard pavers. Little green tree frog! Seemed to collect itself and then hopped into the shrubs. Another Florida moment. One of the good ones.

Originally posted at Nice Marmot 14:01 Wednesday, 9 August 2023

Nagasaki

Dad was on occupation duty in Japan immediately after the war. While it was clearly the desire to achieve an immediate surrender following the use of the atomic bombs, the Allies were by no means prepared to undertake an occupation of the Japanese home islands. So sailors from the amphibs were used as occupation forces, and Dad spent some time in Japan and made it up to Nagasaki. How or why, I never found out. There are more pics around here somewhere, but they're pretty grainy. This is one of the better ones. I'm not certain of the date, but I can probably find it if I look hard enough.

Nagasaki Originally posted at Nice Marmot 11:31 Wednesday, 9 August 2023

Fascination

While things may be pretty grim, there is no denying that a lot of exciting things are going on as well. I really enjoyed this video, and welcome this research. Just wish we didn't have to wait two years to begin collecting the data!

Originally posted at Nice Marmot 08:43 Wednesday, 9 August 2023

You Can’t Go Home Again

Tom Murphy of Do the Math offers some consolations of the pastoral life of the hunter-gatherer in the absence of modernity.

As an abstraction, I have little quarrel with him. But it's only an abstraction. Short of a collapse leaving humanity on the very edge of extinction, modernity, with all its flaws, is going to survive.

It's likely, almost to a near certainty, that this civilization, as a dynamic system, is in overshoot. It can't go on as it has. It's operating beyond the constraints of its environment. It will collapse. The machine stops. All human civilizations before have, why should ours be any different?

There may be some deus ex machina, in the form of an unanticipated technological breakthrough (like the Green Revolution, which perhaps only delayed the inevitable and made it worse in terms of scale) and unprecedented efforts in global cooperation; but that seems as unlikely as the return to Eden Murphy describes. For whatever comfort or hope that offers, I welcome you to it.

I think the best we can hope for is that we avoid a significant nuclear exchange, though I'm not optimistic about that. If there is a significant nuclear exchange, modernity will probably still survive if human beings do.

The 8 billion people currently living on this planet are supported by an advanced technological civilization, based on an economic system that is in overshoot. When the system fails, billions will die.

Not all at once, but fairly rapidly. Many violently, most through deprivation. Lack of food, clean drinking water, disease. The descent will be episodic though, punctuated catastrophe. The system will attempt to adapt after each episode, breaking up into smaller and smaller units, regional in nature.

My guess is that we'll bottom out in some form of feudal agrarian existence. Some elements of "high technology" will continue to function in ways that afford advantages to some groups over others as we near the bottom, which is how the feudal structure will return. Even when the utility power stops working, the guns run out of ammunition, oil and gas are no longer widely distributed commodities, knowledge will still be in books, and there will still be those who can read. And modernity will survive, and likely return.

Not anytime soon and likely in a diminished form as a lot of the low hanging fruit has already been plundered with regard to energy in the form of fossil fuels. Agriculture will survive. All the "-isms" will survive along with literacy. It won't be a hunter-gatherer existence. Hopefully knowledge of complexity and dynamic systems survives too.

Who knows? Maybe without the "advantage" of all that fossil fueled energy, modernity will evolve slowly, in a way compatible with planetary constraints.

But we'll never return to Eden.

Originally posted at Notes From the Underground 05:28 Wednesday, 9 August 2023

An Illustration

Screenshot of a Tinderbox file containing a small outline

Perhaps this might help with regard to the previous post.

Originally posted at Nice Marmot 17:34 Tuesday, 8 August 2023

Maintenance Update

At the end of last month, I was working on trying to automate some of the aspects of maintaining the marmot by using some of Tinderbox's many features. I implemented the solution from Mark Anderson on the thread here.

That bit of action code looks like this:

if($Created.year == date("today").year){

var:string vName = date("today").format("MM y");

var:string vPath = create(vName);

};

That's a concise format, but what you're seeing is a conditional test, "if($Created.year==date("today").year)", which checks a built-in attribute "Created," (data type - date) which is automatically assigned to each note. The ".year" operator restricts the value to only the year, and compares it to "today," one of Tinderbox's keywords for date-type attributes, again with the dot-operator that restricts it to only the year.

If that condition is met (true), it executes the code within the curly-brackets. It declares two variables, each of type "string," one for the name of the note, and the other for the path within the hierarchy. The latter isn't essential for our purposes, but you can use vPath for some other purpose if you need it. You could also just go right to "create(vName);"

The next line creates the note, vName.

So you're seeing the type declaration and the value assigned in the same line. In the case of vName, today it'd create a note named August 2023.

On September 1st, it'll create a note named September 2023. The helpful bit of magic here is that create(vName) will check to see if the note already exists first. If it does, it doesn't create one, with no fuss.

So on the 1st of January, the Archive note will run its edict and notice that the archive container 2024 doesn't exist and create it. That note will run its edict, and discover that the container January 2024 doesn't exist and create it.

But there's one more important bit of magic that has to occur to make this a fully hands-off operation. How do you get the edict for the Year note into the edict tab of the 2024 container? That's where the idea of prototypes comes in.

Once I created the 2023 note that would automatically create new month containers, I duplicated that note (Edit=>Duplicate), and re-named it, p_Year. The "p_" is not a formal requirement, it's just a convention to offer a quick visual reminder within the name of the note that it's a prototype. You don't have to do that, or you can assign a little icon to it, or do nothing at all. But you do have to tell Tinderbox it's a prototype.

There are a number of ways you can do that. Each of them essentially does the same thing, it toggles the IsPrototype boolean attribute to "true" (puts a check in the box).

You can do that in the Prototype tab of the Properties Inspector for your file. You could also turn on the built-in prototypes from the File menu, which creates a Prototypes container at the bottom of your outline. Anything you place in that container is automatically assigned IsPrototype=True. (A lot of stuff happens in the Inspector, so here's a link to its entry at A Tinderbox Reference.)

I have that container open, so I just dragged the re-named duplicate to the Prototypes container. So now there's a prototype year container that already has the action code for creating all the months for any year in the future.

There's one thing left to do, to make the 2024 container (on January 1, 2024) automatically make the January 2024 container. Once a prototype is created, you add this bit of action code to the Action tab of the Action Inspector for the Archive container:

$Prototype="p_Year";

Once that's done, every year container the archive container creates will be based on the p_year prototype, and that action code for creating the month containers will already be embedded in it. Pretty cool.

I'll probably continue building out the test vehicle and writing about it, mostly to try and make myself more familiar with Tinderbox.

Originally posted at Nice Marmot 15:48 Tuesday, 8 August 2023

Backup

Screenshot of the iOS Tesla app during a power outage showing state of charge of the Powerwall, solar output and home consumption

We had a power glitch yesterday, FPL had a transformer fail. I never saw it while I was working on my iMac. Mitzi's iMac shut down and she said she saw her lights flicker, which prompted me to check the Tesla app on my iPhone.

The Powerwall is configured to switch to grid power once it has discharged to about 20% of capacity, leaving that as a backup reserve in the event of an outage. That's why the state of charge is at 22%, we'd been making enough power to start charging the batteries again, but we were still some way from peak production.

There were actually two outages yesterday, we never noticed the second one. We received an email from the HOA clubhouse that it was closed because the power went out around 1:10 PM. Though it was restored quickly, the HVAC units didn't come back up, so they closed the clubhouse. I checked the app and it shows two backup events yesterday, at 8:49 AM and 1:10 PM each about 5 minutes long.

I don't know if they were exactly 5 minutes long, or if the software running the switch-over waits a few minutes to see if power is stable before re-connecting to the grid. By all accounts, they were brief interruptions, but probably not good for anyone.

It got to over 100°F here yesterday, so we're using a lot of power for air conditioning; and Mitzi and I each used the car yesterday so we got about a third of our total power from the grid.

In the illustration above, the house is only consuming 400 watts at that moment, while the array is producing 2,000 watts so you see 1600 watts going to the Powerwalls. It's animated in the app, so it's clearer.

We've been in Saul Hall for four years now, three of those years receiving power wirelessly from a remote off-site fusion reactor you may know as "the sun."

Originally posted at Nice Marmot 15:26 Tuesday, 8 August 2023

Insured

Got our flood insurance renewal notice yesterday. $800 for this year, 16% increase from last year. Still, it's a relatively cheap form of risk mitigation. The downside is that the max policy coverage is $250K for the building and $100K for contents. I'm not certain that would be entirely enough, though it's also not clear to me what the process would be to leave this home after a total loss. Probably something I should learn about.

In any event, if we have enough storm surge to get to the house, my guess is we may have wind damage as well, so our regular policy should help out.

In any event, the most frustrating part of the process was that the renewal page wouldn't render correctly in Safari, and I ended up having to launch Firefox to do the renewal.

I fully expect there will be a similar increase next year.

Originally posted at Nice Marmot 12:13 Tuesday, 8 August 2023

Ok, Doomer

It's been interesting watching the change in tenor in the conversation about climate change over the past couple of decades. When I started blogging back in 1999 on Dave Winer's editthispage.com, my blog was called Time's Shadow and I was notionally going to focus on the things I thought were likely to yield big changes in society in the years ahead. I thought they were nano-technology (not so much, it turns out), genetic engineering (starting to see it) and climate change (can't miss it).

Back then, there was still a bad faith debate on whether climate change was even occurring. It wasn't bad faith on everyone's part, but the big oil companies were acting in bad faith, and many people of possibly good faith relied on them. That we were seeing anthropogenic global warming made sense to me, and the evidence seemed pretty strong even then.

Well, fast forward almost a quarter of a century, and the debate has shifted radically. While there are still holdouts who maintain, "the climate is always changing," nobody is denying that climate change is occurring. The parties still beholden to the fossil fuel industry (Republicans, in the main. Some "libertarians.") are now embracing adaptation and resilience as our response, while mitigation, that is, eliminating greenhouse gas emissions, never seems to enter the conversation.

Among the climate-"woke," it's no longer about trying to convince people that climate change is occurring and we're responsible for it, it's about overcoming the resistance to mitigation on one side, and the edge of the Overton window that now includes, "We're doomed" on the other.

I struggle on this issue, because I'm pretty far into the "we're doomed" end of the spectrum. But, it's not helpful.

I subscribe an RSS feed from The Invading Sea, which covers "Florida and the Climate Crisis." It's a news-aggregator, so there are pieces from other platforms and papers. Lately I've been seeing some op-ed pieces from "young Republicans" who are acknowledging climate change and seem to exhibit some appreciation for the threat it poses. They typically advocate for "conservative, market-based solutions" over "big government." The only specific action I've seen is advocacy for the carbon tax, and the usual deregulation to "spur innovation."

This makes me angry. The single biggest reason we have failed to address climate change and transition away from fossil fuels fast enough to matter, is because of Republicans. But we are where we are, and blaming people isn't going to help either, even if they are overwhelmingly responsible.

I'm still somewhat baffled by what I see going on around me. I'd say "astonished," but having read a lot of history recently, I realize there's an enormous quantity of hysteresis in social systems. America knew what was taking place in the Pacific and in Europe long before December 7, 1941. Roosevelt tried to do what was politically feasible for him to do, at least for Europe. Much like what Biden seems to be doing with regard to the climate emergency.

It took a galvanizing moment to move people to action, and that was Japan's attack on Pearl Harbor. It seems like this reservoir of concern or anxiety, a sense of needing to take some action, just builds and builds, until something comes along that breaks the dam. And then a lot can happen.

If there's a reason to be hopeful, WW II suggests what this country can do if it turns its will and its resources to it.

But I don't know what the catalyst will have to be. Will we be slowly boiled, or will we jump out of the pot?

I'd tell you that climate change is just one dimension of a larger problem, which is the root cause. But that's all really bad news, and this doesn't end well in any scenario. The best we might hope for is the least worst outcome.

For now, I remind myself every day that I am an incredibly privileged individual, and I try to appreciate that fact, be grateful for it and acknowledge that I in no way deserve it.

It's just an accident of birth.

Originally posted at Nice Marmot 10:22 Monday, 7 August 2023

Wave Power

I was an ocean engineering major at the Naval Academy. I wasn't an outstanding student by any measure, but I got the degree.

There are things that stuck with me, one of them is "wave power varies as the cube of the height." That is, a wave that is twice as tall has eight times as much power.

Energy is the capacity to do work. Power is the rate at which work is done.

Most ocean waves are wind-generated, and wave height varies linearly with wind velocity. That is, a 10% increase in wind speed yields 10% higher average wave heights.

Wind speed is a function of energy in the atmosphere, temperature and pressure differences in various regions of the atmosphere. A warmer atmosphere has more energy, and so larger differences can occur, although on a global scale one might think that the average atmospheric temperature is equally greater, so the differences that drive wind would be relatively the same. But, it's complicated and they're not.

So this report came as little surprise to me.

The analysis revealed that in the era beginning after 1970, California's average winter wave height has increased by 13% or about 0.3 meters (one foot) compared to average winter wave height between 1931 and 1969. Bromirski also found that between 1996 and 2016 there were about twice as many storm events that produced waves greater than four meters (13 feet) in height along the California coast compared to the two decades spanning 1949 to 1969.

So (average winter Pacific northwest) wave heights have increased 13% since 1970. That means average wave power has increased 1.13^3, or ~1.44. That's 44%!

That's 44% more power to erode shorelines, move sand. In a rising ocean.

Shoreline erosion is taking place at a much faster rate than it has in the past. We can quibble about whether it's 20%, 30%, or 44%, but no matter what number you want to put on it, you have less time to "manage" shoreline erosion.

We have to move faster.

Originally posted at Notes From the Underground 09:55 Monday, 7 August 2023

Damn the Torpedoes, Indeed

Heather Cox Richardson with a worthwhile history lesson.

Go Navy.

Originally posted at Notes From the Underground 10:41 Sunday, 6 August 2023

Better Today

Slept normally last night, and I feel pretty well today. Still a little groggy, but much closer to "normal," whatever that is anymore.

I mentioned the other day being distracted by old Hewlett Packard handheld computers. Well, that turned into owning another HP. I already had an HP-71b, the baby brother to the HP-75C.

I was a little bored, and I made the mistake of looking for calculators on shopgoodwill.com. There I saw an amazing "find." Someone donated a fairly complete HP-75 setup, computer, micro-cassette drive, thermal printer, 8KB memory expansion, RS-232 interface, a bunch of magnetic strips, several rolls of thermal paper and a couple of micro-cassettes. And the boxes and docs! I "favorited" it and planned to make a bid. The auction ended last night.

I know how these Goodwill auctions go, at least for "vintage" electronics. The prices get crazy. So I went to eBay to see what 75s were going for these days. There I found a roughly similar set-up, although not as all-inclusive: 75, cassette drive, thermal printer, HP-IL cables for all. Only one wall wart for the lot, no docs, no mag strips, one micro-cassette. Seller didn't appear to normally offer electronics and it was listed at $350, which was where the Goodwill listing was sitting right about then. They had a "make offer" option.

Price-wise, $350 was a reasonable deal with the peripherals and the case, but I always make an offer and it was accepted at $325.00.

That package arrived yesterday, prompt shipping and well packed. Computer works, but the battery pack is shot, which was no surprise. I've ordered an adapter battery holder that allows me to put rechargeable NiMH batteries in place of the NiCads. I won't charge them in the computer.

Computer is nearly pristine, so I'm quite pleased. Haven't tested the peripherals yet. Rubber rollers seem to be the main things that fail. We'll see.

While I was waiting for the Goodwill auction to come up, I looked for an 8KB expansion module, and found one of those and made an offer. Computer comes with 16KB onboard, 8KB more is nice to have, though not essential for the little "fun" diversions for which one buys these things.

Also spotted an HP-IL video interface, which was kind of pricy at $225, no "offers" entertained. Looked brand new, but who knows? Bought that too. Isn't here yet.

So last night I had to figure out my strategy. Computer looked like it'd seen use. Photo of the manual showed it was very worn, and there were little figures or something added to the keyboard. So that added some uncertainty about the state of the peripherals. They didn't have a closeup of the computer, but I'm confident the one I already have is cosmetically superior.

I did my math and figured that to buy that lot piecemeal on eBay would come in over $700. If I won the auction, I'd keep the best of everything and sell the remainder as a lot by auction. So entered my bid of $713 with about 56s remaining on the auction. Someone came bid $687 with 23s left, which wasn't enough to beat me. Don't know what their final bid was, but same bidder was able to get another one in with 11s remaining, and got it for $714.

Shipping and "handling" was estimated at over $40, so I'd factored that into my price. Add some sales tax and I think the final bill likely approached $800. The buyer can probably make some money piecing it out on eBay, but I don't think it'll be a windfall. Of course, if they're a collector it's a decent price, but not an eye-popping bargain. You're paying for the convenience of getting nearly everything in one package, though.

I'm not terribly disappointed. I went back on eBay and bought a package of mag strips for a ridiculous price, and the manual for the micro-cassette drive. I have pdfs of all the manuals, but I like paper ones for important things. I'll get a couple of new battery packs for the printer and micro-cassette drive. I won't miss the RS-232 interface very much.

I ask myself what the hell I'm going to do with this crap? I don't know. Leave it as a problem for my kids to figure out, I guess.

The HP-71b I bought came with the HP-IL interface module already installed, so it can use the other peripherals as well.

Lesson here is to stay off shopgoodwill.com when I'm bored!

Originally posted at Nice Marmot 09:13 Saturday, 5 August 2023

Uninsured Florida

I'm sharing this Washington Post piece with a "gift" link, so you can read it behind the paywall. It's about the state of the insurance market in Florida, and it's very troubling.

The "reforms" the legislature enacted last session mainly make it harder for homeowners to contest claims. Virtually all the reforms favor insurers, not policy holders.

Understand your risk before choosing to live in "the free state of Florida," owned and operated by the Republican Party for more than a generation.

Originally posted at Notes From the Underground 07:30 Saturday, 5 August 2023
Telephoto closeup of the back of a mourning dove looking over its left wing, perched on a pine brance.

This mourning dove. Got a killdeer and a bluebird too. Up on Flickr.

Originally posted at Nice Marmot 08:05 Friday, 4 August 2023

Update

We learned a bit more about the young man lost in the woods behind the house.

Turns out, he overturned his nice SUV on the road leading to the kayak launch point, which runs adjacent to the end of our street.

Some friends of friends were stuck on that road for a couple of hours while they worked to clear the wreck and get the kid out of the woods. They sent some pics to our friends, who sent them to us. They weren't very good, but you could tell it was a fairly recent SUV, maybe brand new. Have I mentioned that St Johns County is the third wealthiest county in Florida? So I guess his parents probably bought him a car, he wrecked it, and that precipitated a crisis. I'm inclined to think alcohol was involved and the legal drinking age is 21. So a wrecked car and a DUI before you're 21. Almost a rite of passage.

That little kayak launch point is a favorite for teenagers and young people. The county had put up an automatic swing-arm barrier that raised and lowered on a timer. People just smashed it. Did it enough that the county just gave up. So there are kids down there at night, blowing up fireworks, drinking, being kids. Deputies are there periodically, but not often enough to matter.

We complain that the road is in such terrible shape. I mean, it's really bad. But it's probably the only thing that keeps the speed down at all, and it doesn't do a very good job of that. Some of these kids love their big, loud pickup trucks and you hear them hauling ass up and down that road, confident in their beefy suspensions. I guess they're pretty confident in SUVs too.

Anyway, I'm glad I didn't wade out into the swamp looking for that kid.

Originally posted at Nice Marmot 05:49 Friday, 4 August 2023

Not Sleeping

Second night in a row I'm awake a little before 0200 and can't really fall back to sleep. I wasn't troubled by bad dreams tonight. What I recall of them involved cameras. Wednesday night was related to the events depicted in Oppenheimer, and they were unpleasant.

I hate not sleeping, because it makes me unproductive for most of the rest of the day. I was fairly productive yesterday morning, riding the bike and taking some pictures at the pond and posting them. But the rest of the day I just felt like my ass was dragging. I'd planned to work on the blog test platform, but couldn't summon the cognitive effort. I think today will turn out likewise.

We watched Sneakers last night, because it was a relatively lightweight, humorous adventure that was unlikely to disturb my dreams. We've been watching a lot of stuff dealing with serial killers. Deadloch, Luther, Lancaster, er, I mean, Halifax. Kinda creepy! We watched an episode of Archer as a kind of palate cleanser the other night when Hijack concluded. Wasn't about a serial killer, but pretty dark and violent in any case.

Looking foward to the return of Slow Horses on Apple TV+ in September. Can be kind of dark and violent, but mostly I just enjoy watching Gary Oldman!

I hope the actors and writers prevail in their strike. In any event, I'm not looking forward to the day when story-telling is done by simulants and replicants. The Chicken McNuggets of entertainment.

Originally posted at Nice Marmot 05:20 Friday, 4 August 2023

Dogears

In the blogosphere, a dogear may be a starred entry in NetNewsWire. It is for me anyway.

AKMA returns to a marmot missive from June to consider the contours of argument as they differ from disagreement.

I'm happy to report that I agree.

Being a platform that often seems more amenable to passionate argumentation than the deliberate, perhaps collaborative, exploration of one another's "patterns of limits," I think this is a welcome insight. Arguments tend to reduce people to opponents, which, if not rendering them and our common humanity invisible, can certainly reduce them to one-dimensional figures.

Which is something of a personal weakness I struggle to overcome, and I hope some personal ornamentation can be an aid to that end.

Originally posted at Nice Marmot 04:42 Friday, 4 August 2023
Telephoto closeup of the waning gibbous moon

Can't sleep? Well, bark at the moon. Or photograph it. E-M1X handheld high-res, 400mm (800mm efl), cropped and edited.

Originally posted at Nice Marmot 04:22 Friday, 4 August 2023

Planning

Over on the marmot, I called this post "Bullshit."

It's about a report on Gate Petroleum working to get some re-zoning for its premiere resort properties, the Ponte Vedra Inn & Club and the Ponte Vedra Lodge & Club.

The laughable quote in the piece was about them planning for what they'd "like to see out of these properties for the next 100 years."

That's a joke, because 100 years from now that property will probably be under water, or subject to flooding of such frequency that it'll be abandoned.

But Gate Petroleum isn't stupid, so I think there's more going on here, and this is what I think it is:

They're going to spruce the place up, add some additional units, likely built with an eye to becoming condominiums. They'll turn both properties into condos in about ten to fifteen years. Ideally soon enough that there will be plenty of suckers who will buy into them.

Getting that re-zoning done will be a key step.

Of course, the county will go along with it, because they likely stand to make considerable revenue on the purchase of each individual condo unit, and taxing individual homeowners.

In 30 years, it'll be clear that the property is in serious trouble, but it'll be too late for the condo owners, and the Peyton family will be sleeping on mattresses stuffed with cash, congratulating themselves on making bank unloading that white elephant.

You have to admire the vision.

Originally posted at Notes From the Underground 13:26 Thursday, 3 August 2023

This Morning’s Bird

Osprey in flight against a blue sky, bird looking to the right of its flight path with sunlight illuminating the left eye.

Overslept because Oppenheimer kind of disturbed my sleep. Rather than walk in the Florida sauna, Mitzi and I got on our bikes and rode to a retention pond called Settler's Pond, which has a walking path around it and some nice amenities.

At first I was disappointed, I didn't see many birds and I'd brought along the Olympus E-M1X with the 100-400mm zoom mounted. But it didn't take long before I started to see some. Put a bunch up on Flickr. (I think this link will take you to the "last" in the series, and then scrolling right will take you through the whole set.)

Originally posted at Nice Marmot 11:55 Thursday, 3 August 2023

Bullshit

This made me laugh out loud.

"About four years ago, we started really looking at both the Ponte Vedra Inn & Club and Lodge & Club ... and thinking about what we wanted to see out of these properties for the next 100 years," said Misty Skipper, vice president of external affairs for Gate.

That place isn't going to be there in 50 years, forget 100! Talk about "burying your head in the sand."

And what is the government subsidy going to be? Shoveling taxpayer money into the ocean every year for "beach renourishment."

Denial is an astonishing thing.

Originally posted at Nice Marmot 08:32 Thursday, 3 August 2023

Enjoyed the conclusion to Hijack last night. I suppose I might have liked all the loose ends neatly tied up, but the main questions were answered.

We've been watching Halifax on PBS, and for the first few evenings I kept calling the series, Lancaster. Too much reading WW II RAF history I suppose.

FWIW, Halifax is very uneven and some of the dialog sounds like it was written by an AI. But it's entertaining enough to keep me queuing it up.

Mitzi and I are going to see Oppenheimer at the World Golf Village IMAX theater. Said theater's future somewhat in doubt with the departure of the World Golf Hall of Fame from World Golf Village. A local operator is exploring taking it over.

Originally posted at Nice Marmot 13:44 Wednesday, 2 August 2023

Not So Fast, Rogers

While I was busy basking in the warmth of well-deserved accolades, it occurred to me that my little program for creating new monthly archive containers might bump into a problem in January 2024.

While I do have the Archive note, which will create a 2024 container, nothing tells the 2023 container to stop making new containers in December 2023.

So I looked for some conditional wrapper statement that would cause the edict to do nothing after December 2023. I came up with something I thought might work; but rather than wait five months to find out, I posted it in the Tinderbox Forum to get some feedback from the community.

As always, I got some useful feedback immediately. While (heh) there's nothing to suggest my solution wouldn't work, apart from improperly using a capital "F" in the ".format" operator (They're case sensitive. It would fail. It's correct in the previous post.), I got another approach that is a little shorter and accomplishes the same result.

So on January 1st, 2024, the 2023 container will notice that the year is no longer 2023, and it won't create a "January 2024" note in the 2023 container, something it would happily do without the conditional test.

The Archive container that creates the year containers is under no such constraint. It can keep creating a new year container as long as the file is open, no conditional tests necessary, other than perhaps "If Rogers==Deceased" or something along those lines.

Just shows you kind of have to think through these little programs.

Originally posted at Nice Marmot 13:18 Wednesday, 2 August 2023

Life’s Little Joys

So yesterday's project got sidetracked by old Hewlett-Packard handheld computers. That's another story.

But I couldn't sleep, so I figured I'd just get up and play around with Tinderbox. It's taken about an hour, but I've achieved success! The project isn't complete yet, but this progress is "noteworthy."

I created a "blog test vehicle" Tinderbox document. A file that I know I'd want to export as a web page in the form of a blog, and one that, not coincidentally, somewhat resembles the marmot.

One of the "features" of a blog is an archive of past posts. I put "features" in scare-quotes, because none of this is carved in stone, it's just the convention most familiar to me. You can structure your blog however you want.

I've organized my archives by year, each year containing twelve monthly archives, an html file of a month's posts, named by month and year.

Each year, I have to create a new container for that year's archives. I figured that's where I'd start in automating some of the maintenance features. Why not let the Archive container create the container for the year's archive?

Notes are containers in Tinderbox. They contain the text of the note, and a lot of other things called "attributes." Some of those attributes are little programs that work on other notes and other attributes. There's an "Inspector" window that let's you work on many of those attributes, the one's you're most likely to want to have easy access to in one convenient facility. One of the tabs in the Inspector is the Action Inspector, where you can store the code or little program. This is the place where much frustration, sorrow and suffering often resides.

It's also the place where the cool stuff happens.

I figured I'd have to write a bunch of logic that would tell the Archive note to look at all the other notes and see if any of them are named the current year, and if not, then create a new note with the current year as its name. I was kind of dreading this, but it was pretty damn simple.

Since I only need to create this container once a year, I placed the program in the Edict pane of the Action Inspector. An "edict" is a rule that's run relatively infrequently, you can read about when it's run here. My little program looks like this:

$MyDate="today";

$MyString=$MyDate.year;

create($MyString);

The cool part is "create" checks to see if the note it's trying to create already exists. If it does, it doesn't do anything. All that comparison logic (Which wouldn't be that hard, except it's parsing "date" data types, which I wasn't looking forward to because it can get a little tricky.)

Now that I have a container for the year, I want that container to create the container for the current month's posts. So I add an Edict to that note.

That little program looks like this:

$MyDate="today";

$MyString=$MyDate.format("MM y");

create($MyString);

What saves you a lot of hassle is that ".format" operator. Names of notes are strings, so we need to coerce a "date" data-type into a string in order to look for notes with the same name (which "create" does automatically, in the background). We want our month name to follow a particular convention, and that convention is defined by the variables in the ".format" operator, where "MM" connotes the full name of the month, i.e. "August," and "y" connotes the 4-digit year. The space between "MM" and "y" is relevant as well.

So the Edict looks at today's date, converts it to a string that looks like "August 2023," then checks to see if there's already a note by that name. If not, it creates the note, and does nothing if there already is.

In order to not have to type that little program in, we need to make a prototype year container, which contains this program already baked-in.

That's a topic for another day. It seems I may be building a generic Tinderbox blog file.

But gosh, don't I feel smart?!

Originally posted at Nice Marmot 05:47 Wednesday, 2 August 2023

Maintenance

At last Sunday's Tinderbox meetup, I mentioned how much I've been enjoying working in Tinderbox, and beginning to exploit some of its features since I've been attending all the meetups.

A couple of years ago, I had a zoom session with Michael Becker who's quite expert with Tinderbox. He's also a 400Hz kind of guy, while I run at 60Hz. He tried to show me how to automate certain aspects of the marmot and I could only follow about a third of what he was saying. I tried to implement some of his suggestions and failed at it, so I just went back to doing it the way I knew how to do it, which was mostly manually.

But in preparing for that zoom session, I decided to re-factor how the marmot was structured. Basically, every month's archive was a single file at the top level of the domain, and there was one Images folder divided into years for all the images. It was getting a bit cluttered, though it probably could have kept working that way well into the indefinite future. Nevertheless, I decided to structure things a little "better," and in the process kind of messed up a lot of the old image links.

Stuff happens. You live with it.

Today being the 1st of August, I had to add a new August 2023 container, which I did the same way I've always done it — manually.

Now I'm relatively confident that I can automate that function, so that's a little project for this morning. I'll do a "proof of concept" in a test Tinderbox file, make sure I understand what's happening. Then I'll duplicate the marmot and try to implement the change on the duplicate. If that works as intended, I'll make the change in the original and delete the duplicate.

I've learned that it's best to work on a test file before you try something new with a big file that works reliably. And then work with a duplicate of the actual production version to verify it works, before you start messing with the version you rely on.

I'll report back on my success or failure later today or tomorrow.

Originally posted at Nice Marmot 09:14 Tuesday, 1 August 2023