"Yeah, well, you know, that's just like, uh, your opinion, man."

A Note About eBooks

18:19 Wednesday, 13 July 2022
Current Wx: Temp: 75.47°F Pressure: 1013hPa Humidity: 94% Wind: 5.75mph
Words: 824

I've been doing a lot of reading the past few years, history mostly. And since my house is nearly full when it comes to books (I guess I could start stacking them on the floor.), I've switched to ebooks.

For the most part, I find reading an ebook satisfactory. I've never been one to make margin notes, though I suppose ebooks do offer a better affordance for note-taking. The least favorable part of the experience is the weight of my 10.5" iPad Pro, with keyboard cover and case. I have a small Kindle, but I don't care for the screen brightness/contrast, nor the slow response. The iPad mini is lighter, being smaller with only a "Smart Cover," but I prefer the page size of the 10.5".

I may look into an iPad Air, perhaps with cellular so I can have a separate carrier from T-Mobile.

One thing I use a lot is the dictionary. Something seems to have changed in the latest Books app on iOS (16 beta). I used to be able to just select a word and the little bar would appear over it for Copy, Highlight, Add Note, Look Up, etc. Now it's weird. Sometimes the word is selected and the bar doesn't appear. I tap the selection hoping to prompt the bar to appear and the word is de-selected. I may have to go through this dance three or four times before the bar appears. And the Look Up selection now seems to include a lot of stuff I don't need or care about. Wasn't paying much attention before, but it seems different.

Anyway, I've been reading a lot of history, and one of the things I'd like to do "someday" is build a timeline of events. But that means taking notes, and then putting them in a timeline app, keeping track of which note came from which book, etc.

Then it occurred to me, why should I have to do this?

All books should come with a "timeline view." It could be programmatically created, recognizing dates in the text and associating nearby names of people, places or things, and placed in the timeline as an "event" with a link to the page in the text.

There should be multiple timelines arranged vertically for major subjects, but not for every person, place or thing. For instance, in the book I'm reading about FDR as a wartime leader, he's the main character, but events (mentioned in the book) in Britain, Japan, Russia and Germany should be shown in parallel. With perhaps separate Europe, Atlantic and Pacific timelines for other nations.

The point is, the view should take advantage of the full screen, not just a single timeline crowded with events. Perhaps a one with major battles mentioned in the book, or major legislation, would get its own timeline. And the reader could show or hide these different timelines with a disclosure widget, a little triangle that you tap.

You could scale the timelines by date range, with longer periods showing "major" events or milestones, while expanding the view to shorter ranges would reveal more details.

What I find is that I'm often a bit at sea trying to grasp the pace of events, especially as authors sometimes jump around in time, referring to prior events while discussing the one under present consideration.

These timeline views should be a standard data format, so that each is identically constructed. The Books app, or Kindle or whatever e-reader, should then allow you to overlay timelines from separate books you own, so you can see how different themes played out at the same time.

It's probably harder than it sounds, but I don't think it's impossible. I love reading narrative description, especially when it's well written, but it's often hard to get a feel for how fast or slow something developed unless the author specifically comments on the pace, and then it's just his or her POV; I'd like to see the dates laid out.

There are a lot of features about ebooks that seem haphazard. Notes are sometimes handled differently, or badly. A "footnote" that merely mentions a reference should be separately called out from an author's note where there's some additional text. I hate clicking a note to just see "ibid." Sometimes I'm interested in the reference, but mostly I'll skip those. Erik Larson often writes lengthy notes at the end of his books, and my practice is mostly to just read the text and the notes separately. If there's some additional information, I'd like to read it sort of "in-line", so perhaps those types of notes should be disclosed in the page when you tap the note number.

Anyway, ebooks have been around now for a very long time and it doesn't seem like there's much innovation taking place centered around making a better experience for the reader.

How do we go about making that change?

✍️ Reply by email

iPhone Camera Test Export

02:57 Thursday, 13 July 2023

Current Wx: Temp: 89.85°F Pressure: 1013hPa Humidity: 74% Wind: 11.5mph
Words: 999

Morning sun behind mackeral clouds reflected in a retention pond

This is the happy result of some frustration and study, trial and error. I suspect it's too early to declare victory, but initial indications look promising.

I attend a weekly Zoom meet-up of Tinderbox users, and I enjoy the social aspect as well as maybe learning something now and then. Most of the time, the techniques being demonstrated don't really relate to anything I'm doing with Tinderbox, nevertheless, I'm impressed and entertained by watching them unfold.

In the decade or so that I've been maintaining the marmot, I haven't really taken much advantage of the automation frameworks afforded by Tinderbox, Action Code and Export Code, and now, AppleScript. Mostly I just use a bare minimum of fairly static Export Code, and a little bit of Action Code to call the weather stuff, set the various attributes for the permalinks and export files.

My biggest challenge in automating the marmot was in posting photos. Prior to the change, I basically did everything manually, albeit with a lot of "copy and paste" action. The Photos to Tinderbox AppleScript automates nearly every aspect of that now. The only real manual effort is entering the title and caption info, and then hitting the Sync button in Forklift.

It was a pretty fair amount of effort, because Photos didn't seem to allow export from AppleScript. You could do it with Automator, so I had to create an Automator application to call from the AppleScript, and you can't specify a file path for the export. It always exports to folder in the ~/Pictures directory, and it always appends a ".jpeg" file suffix to the export.

After Automator exports the photo, Hazel comes in and moves the image to the marmot's Tinderbox directory and changes the suffix from .jpeg to .JPG, which matches the file suffix for images from my Olympus cameras. Export Code creates the html necessary to display the image from the photo's filename, which is why I have to change ".jpeg" to ".JPG" or I get a missing image icon.

Anyway, that was a fair amount of work, but it works well and I'm happy with it.

But if I want to post a picture taken with my iPhone, then I have to do some manual intervention. The iPhone stores images in HEIC format with a .HEIC file suffix. I could set the iPhone to store images as jpegs, but HEIC is more space efficient and I like that. So the filename, from which the html is constructed, is the original filename from the camera, with .HEIC as the suffix. Photos exports as JPEG (or TIFF or PNG), so the filenames don't match after export. I can't construct the html from the filename attribute I sent over from Photos. I've had to go manually change the .HEIC in the html to .JPG, which is not a big deal, but it's enough friction to keep me from posting images from the phone very often.

This particular challenge is something I've never tried before, manipulating the value of an attribute and creating a new attribute as a result. I wanted to just extract everything left of the file type suffix and make a new attribute I just call "Photo." Then in the export code, I just put the $Photo attribute in the html and append the ".JPG" in the Rule in the prototype.

But how do you manipulate attribute values in a note? Well, you do it with a Rule. Up until today, all the attributes I created with Action Code were part of an OnAdd action, which the monthly archive container applies when a new post is created, to every post. Since a photo post is a post, there's nothing wrong with all that code; but a photo post has attributes that only apply to photos, and it has its own embedded html in the note's $Text, so it uses a different prototype as a post. So OnAdd wasn't really the appropriate way to go here.

Well, a note's "Rule" is the way you mess with attributes in only that note. Then I had to figure out how to get everything to the left of the file suffix. There are text operators you can use that involve regular expressions, none of which I have ever used before.

Taking a tip from Dave Winer, I asked ChatGPT, "What is the regular expression needed to extract the text of a filename before the file type suffix?"

This is the response:

=========

To extract the text of a filename before the file type suffix using a regular expression, you can use the following pattern:

```regex

^(.+?)(\.[^.]+)?$

```

Explanation:

- `^` asserts the start of the string.

- `(.+?)` captures one or more characters non-greedily (lazy matching) into a group.

- `(\.[^.]+)?` captures a dot followed by one or more non-dot characters into an optional group.

- `$` asserts the end of the string.

In this pattern, the first captured group will contain the filename without the file type suffix.

========

Not being willing to trust ChatGPT, I tested this in an app called RegExRx and it seemed to work. $1 was just the name minus the filetype suffix, which is what I wanted.

Throwing caution to the wind, I created a new Tinderbox file, created the relevant user attributes ($PhotoFilename and $Photo) and entered the following rule in a new note:

$Photo=$PhotoFilename.replace("^(.+?)(\.[^.]+)?$","$1")+".JPG";

(The +.JPG part I added later when things went sideways a bit.)

In the test note, I got just the part of the filename I wanted.

Then I tried it here. (I just noticed another thing I have to fix, but it doesn't interfere with exporting from Tinderbox.)

I originally tried to add the ".JPG" in the photo post's $Note text. That got all wonky and I don't really know why. Then I figured I'd try to do it in the Rule and that worked fine.

Now I have to test this with a regular photo from a "real" camera. There are usually unintended consequences and breakage. We shall see.

✍️ Reply by email

Blue sky blue bird

03:22 Thursday, 13 July 2023

Current Wx: Temp: 89.37°F Pressure: 1013hPa Humidity: 74% Wind: 11.5mph
Words: 14

Closeup of a bluebird sitting on a lamp post light sensor against a blue sky.

Well, alrighty then. This seems to work!

I shall declare victory and go home.

✍️ Reply by email

ISS Pass 13 July 2023

17:23 Thursday, 13 July 2023

Current Wx: Temp: 76.53°F Pressure: 1010hPa Humidity: 91% Wind: 1.01mph
Words: 198

Light trail of the International Space Station over Nocatee amid star trails and a trees in the bottom right half of the frame.

<

Got a notification yesterday of another pass this morning at around 0500. They often come in threes. I wasn't sleeping anyway, so I got up and set up the camera on the tripod.

ISS appeared in the northwest and disappeared east-southeast (from left to right in the frame) and max elevation was 51 degrees. Bright spot in the trees is the crescent moon rising. If you're having trouble seeing it, it starts in the bottom left half of the frame, and most of it is somewhat obscured by trees.

What's interesting to me about this shot is that the light from the stars appears to be dimming. What's actually happening is the sky is growing brighter as morning twilight approaches, and the exposure for each of the shots is fixed, so the contrast between the dark sky of the initial exposure and the bright stars in each subsequent exposure is less, so they appear to be dimming. Sky is actually growing brighter, but the sky exposure is relatively static as the background against which "new" light is added.

Surprising thing to me is the absence of aircraft trails. Must not be much traffic this time of day.

✍️ Reply by email

Nobody Gets Out of Here Alive

22:24 Thursday, 13 July 2023
Current Wx: Temp: 86.99°F Pressure: 1012hPa Humidity: 72% Wind: 6.91mph
Words: 77

This is well worth your time and captures what I spend much of my time thinking about these days.

✍️ Reply by email

Blueberry Picking

08:09 Saturday, 13 July 2024

Current Wx: Temp: 80.37°F Pressure: 1020hPa Humidity: 85% Wind: 3mph
Words: 575

Selfie of Mitzi and I in blueberry field

Picked a couple of pounds of blueberries yesterday. It was a pleasant experience. There was only one other family in the field with us, no bugs to speak of, plenty of berries and it wasn't hot. The sun was kind of intense, but there was a breeze.

The farm store offered a range of baked goods, jams and jellies. I had a cookie concoction consisting of an oatmeal cookie with white chocolate chips (Yes, I know. It's not "chocolate."), and a lemon glaze. I'm counting on the fiber and protein content of the oatmeal making it "healthy," though I know that's just wishful thinking.

We stopped by a former firehouse in Burdett, NY that has been converted to kind of an indoor farmer's market. All local or regional products. Very pricey, but it supports local agriculture. Bought some mushrooms, a steak and an onion. Dinner tonight.

ars technica has a piece on sea level rise in the southeast. The St Johns Riverkeeper, Lisa Rinamen is quoted in it. I know Lisa and I support the St Johns and Matanzas riverkeepers. None of this is really a surprise, apart perhaps from the increasing rate, though even that was anticipated by some. Historically, sea level rise occurs in pulses, periods of rapid rise.

But we keep shoveling taxpayer money into the sea. At best, it might buy time, but we waste that time and that money by doing nothing meaningful to address the risk. But Florida faces so many risks that it's doing nothing about that it's hard to single out sea level rise.

What's going to happen to the housing market when you can't get insurance, and therefore can't get a mortgage? We're one major hurricane away from an insurance industry collapse. We will learn just how "effective" those "reforms" the legislature enacted will be. They chiefly make it easier for insurance companies to deny claims, or under-compensate claims, and make it harder to sue insurance companies.

Then there's the heat, which I guess we're just going to ignore.

And the generation of Republican environmental stewardship that led to things like the Piney Point environmental disaster. There's more where that came from, as the saying goes.

They tell us they don't get much snow around here anymore. My kids and grandkids are all in Florida, or I'd seriously consider, I mean seriously consider pulling up stakes and moving up here. Taxes are higher. Prices are higher. Much of rural upstate New York can be Trump country, but it feels less rabid than Florida. The state has the opposite problem from Florida with a seemingly permanent Democratic majority in the legislature because of NYC, but the governor's office flips back and forth from time to time. This state isn't laser-focused on culture war issues and the governor's political ambitions.

And the views. I asked the guy at the blueberry farm if he kind of takes the scenery for granted. He's lived here all his life, so he allowed that he probably does. I don't know how long it'd take before I stopped being moved by it. Florida is claustrophobic, which may go some way toward explaining why it's so insane. Even in "rural" Florida, it's mostly just flat. There are no expansive vistas that can open your mind and your heart. Just the heat, the humidity, the mosquitoes, the gators and all the invasive exotic pets, and the selfish cruelty of its Republican ruling class.

✍️ Reply by email

And I'm Back...

05:49 Sunday, 13 July 2025
Current Wx: Temp: 71.47°F Pressure: 1016hPa Humidity: 94% Wind: 6.73mph
Words: 860

It's been a busy week, and a lot has happened.

The kids left on Friday, and it was wonderful having them. The tiny cabin her daughter and son-in-law stayed in was comfortable, and fortunately it was big enough to accommodate their three-year-old, because Mitzi got sick.

She had a sudden onset of headache, fever, chills, muscle aches and just in general feeling miserable on Monday. Tuesday morning, she woke up feeling the same, and wondered if she might have Lyme disease. So we went to an urgent care clinic, which was located in Schuyler Hospital in Montour Falls. It opened at 0730, and I wanted to get there when it opened, but it's hard to move fast when you're ill.

We got there a little after 0800. From my experience with urgent care clinics in Florida, I anticipated a room full of people and a long wait, but the place was basically empty! We had to do all the intake paperwork, and then they took her right back.

A few minutes later the PA comes out to the waiting room and tells me we're taking her over to the ER! Oy!

I figured that was going to mean a longer wait, and asked why we were going there instead. She mentioned that because she was dizzy and might need an IV, and because the ER can do blood work "stat" and get faster results.

We later figured out that we had Medicare and Tricare For Life, and it's a rural hospital about to be slammed by the Big Ugly Bill, so they wanted to bill at the ER rate.

There was no wait, we were seen immediately. Blood was drawn, doc came in, we talked about Lyme and she mentioned that they were seeing a lot of it, along with something I'd never heard of before, anaplasmosis. She gave her a 10-day prescription for doxycycline and said the blood test may come back negative for Lyme if it was early in the infection, but it would be a couple of days before the results were in. If it was negative, it would be up to Mitzi whether to continue the antibiotic, but she said it would probably be best to finish the entire course.

Mitzi rallied a little and we stopped by a little bagel shop where the kids were having breakfast, after picking up her prescription. From there, we went home while they went on to the Science Center in Ithaca and spent a good part of the day out there.

By Wednesday afternoon, Mitzi was feeling better, so we were confident the antibiotics were having an effect. She still had a headache, but it wasn't her usual migraine and she could function. So we pretty much resumed normal activities and had a pretty nice time.

On Friday, we finally got the test results... Anaplasmosis. They wanted to extend her course of antibiotics by two days.

So I googled anaplasmosis and I was glad we went into the urgent care clinic. We aren't sure when she was bitten. We suspect it may have been when we did the walking tour of Montour Falls, but we don't know.

At any rate, I'm now taking the whole tick thing a lot more seriously because we are surrounded by deer. I'm treating sets of clothes for hiking with permethrin. I spent a good part of yesterday weed-whacking any high grass near where we walk on the property. And I'll be wearing long pants along with my Timberlands when I'm out there pulling up the last several yards of fencing.

I've been fairly vigilant looking for ticks as I've been pulling up the fence, which had tall grass on either side of it. Deer ticks are pretty small and can be easy to miss. So far, I haven't found any on me, but I don't know if I missed any. Now we're kind of holding our breath for a couple of weeks to see if her kids develop any symptoms. We're fairly confident they'll be okay, we didn't do any activities in areas with high grass, but we'll feel better once we get through this incubation period. At least they know what to look for, or expect, if one of them gets sick.

Mitzi's been a good sport about it. I felt bad, convincing her to move up here, only to have her get sick from something you can't get in Florida.

Speaking of Florida, she's on her way back there for a conference she's helped plan; and to see her primary care doc at Mayo, which was a previously scheduled appointment but a happy coincidence just now. I drove her to Elmira-Corning Airport at about 0400 this morning. It's not a long drive, but it's all country roads, some of them with no striping. Not a lot of fun in the dark. I drove slowly because I expected deer in the road and we saw a few. One stepped out in front of us just as we left the driveway!

I guess blogging will resume at my regular rate.

And the beat will go on.

✍️ Reply by email

Drone Shot

09:26 Monday, 13 July 2026

Current Wx: Temp: 72.19°F Pressure: 1022hPa Humidity: 77% Wind: 8.81mph
Words: 87

Walk-out basement formed with insulated concrete forms. Not poured yet.

My 9" iPad (9th version) is still on iOS 26 so I was able to control the DJI mini 2 using the DJI Fly app on the iPad.

It's not an ideal situation because you have to hold the controller separately, and it's hard to keep the iPad out of the sun's glare. Should be easier this afternoon after the sun gets behind the house a bit.

I'm going to try to use the mini 3 with the iPad next time. The camera is a little better.

✍️ Reply by email