Category Archives: computers

Squinting to Read Old Handwritten Church Records

It helps if you know what you are looking for. One Sallie Maria had gone before me and had [allegedly] successfully extracted the line of interest:

Jep (or Jeppe) Berthelsen married Mette Nielsdatter on June 20, 1732

And here is a facsimile of the original document.

Do you not see the marriage record for Berthelsen? Me neither. Even after a scrutinous look my human eye can’t even locate the individual(s). But, we have the notion that the record is there somewhere. Sallie had somehow transcribed the mess Danish penmanship.

Any genealogy explorer and interested hobbyist like myself may trust but should verify the investigations of others. A problem arises where if enough people take a single researched answer for granted as fact and (copy | paste) assimilate them as there own piece of the puzzle family tree then herd consensus becomes de-facto. Search indexing picks up on the trend, AI is trained on the indexed data and… history is printed.

Not immediately accepting the reading of this church record as gospel (see what I did there?) I perform my own diligence by looking harder and with AI as an assistant. AI is not [yet] a silver-bullet. As good or as weak as it is for the translation and transcription, it needs the person with the keyboard to steer it in the right direction or to keep it focused.

There is also an AI behavior known as confabulation. Beware that AI aims to please an can actually make up stuff thinking it’s fulfilling an expectation bias. It’s early days and not a sinister act. When called out on it, the AI apologizes and amusingly so, confesses the deed. (but you do have to expressly raise the doubt to sus it out)

Keeping this in mind it is prudent to distrust the bot. So, why bother? because the AI can spur you to look in certain direction and give insight into what was not obvious. Here’s what I mean: Following my Chat GPT ask for a full transcription, AI found 3 blocks that I had previously by eye, deemed to be incomprehensible and seemingly meaningless. e.g. the third one: “Exaudi (Sunday before Pentecost) – Third reading (banns) for Jep Berthelsen from Vinge Parish and Anne Nielsdatter from Svinninge Parish.

Without my asking the AI proceeded to explain: “These are the banns (public announcements of an intended marriage) for Jep Berthelsen of Vinge Parish and Anne Nielsdatter of Svinninge Parish, read on three consecutive Sundays leading up to their marriage. The specific Sundays mentioned are part of the liturgical calendar: Cantate, Rogate, and Exaudi, which fall in the weeks before Pentecost. This format suggests they followed the traditional practice of announcing marriages three times in church before the wedding could proceed.” Very good! I had no previous experience of what a Bann was and now I know. Nice.

The AI still hadn’t confirmed a date for this marriage and the AI had wandered off into the weeds with a subsequent Bann (Dom:14) from another party of record and made an [incorrect] assumption: “The 14th Sunday after Trinity would be in late August or early September, depending on the liturgical calendar of that year. This suggests their marriage would have taken place around early September 1772.” You can see what is meant by keeping the AI on point.

To expedite, I queried point blank: Is there a date of 20 JUNE to be found anywhere in this ANNO 1772 record? Answer: Yes, in the initial marriage record image you provided, there is indeed a reference to 20 June:

Torsdagen den 20 Juni, viet Jep Berthelsen af Vinge Sogn og Morten Nielsdatter af Svinninge Sogn.

AI Translation:

Thursday, 20 June – Jep Berthelsen from Vinge Parish and Morten Nielsdatter from Svinninge Parish were married. So, it appears that Jep Berthelsen and Anne Nielsdatter were actually married on 20 June 1772. It looks like the earlier banns we discussed (from Cantate to Exaudi Sundays) were for this marriage.

Now you can see it. With some coaxing which the lens of AI pinpointed and summarized we have clarity.

Betrothal: May 7, 1732
Three banns read on consecutive Sundays (Cantate, Rogate, Exaudi)
Marriage ceremony: Sunday, June 20, 1732

Sally Maria had it right.

AI Reading Pen and Paper Genealogy Records

This old Danish Church record, written in longhand, is fairly legible and as a human I can make out the various dates and names. But to get a complete understanding one must read the top most header row to understand what is contained in the columnar rows. To avoid the laborious task of Danish > English translation, it seems logical to let Artificial Intelligence (AI) take a crack at it.

I feed this record in its original high resolution image page format to 3 of the top AI bots and posed the same question:

the person of interest is Fanuel Peter August. what is the birth date and christening date?

Claude 3.5 Sonnet:

[reply] Looking at the church record, I can see Fanuel Peter August (written as "Samuel Peter August" in the entry) listed as entry #3. According to the record, his birth date is listed as 19 Jan 1817 ("19 Jan 1817") and his christening date appears to be on the same day as shown in the "Daabens Datum" (baptism date) column.

The entry number 3 is good as is the birth date. The mistaken S instead of F in the first name can be forgiven; it was penned with a flourish. The baptism date from its column in the record however is interpreted as being synonymous with date of birth. My eye can see that there appears to be a differing date in that column so I pose the following follow up question:

what actually does the Daabens Datum column say. it looks like an actual date?

Claude responds with:

Looking at the "Daabens Datum" column for Fanuel Peter August's entry (#3), it shows "19 Feb in die Kirch" (19 February in the church). So to correct my previous response:

Birth date: 19 January 1817
Christening/Baptism date: 19 February 1817

This would have been an apt first time answer but still the Christening/Baptism date shows the 19th when to my eye the number is clearly a 14. Confidence is low so I run this identical query with another flavor of AI: X’s Grok 2

Grok 2

[answer] For Fanuel Peter August:

Birth Date: 19th January 1817
Christening Date: 19th January 1817

This individual appears on line 3 of the document, with his full name listed as "Fanuel Peter August." Both the birth and christening (baptism) dates are noted as the same day, which was common in historical records where infants were often baptized shortly after birth.

This returned response, as far as the dates are concerned, is identical to that of Claude AI previously. There is the added claim that birth/christening dates are commonly one and the same (equal) in historical records. (expectation bias or confabulation? ) That will need to be a separate fact check investigation.

Now I come back with my follow-up question to try and coax the bot to have another look at the Daabens Datum column and:

[answer] Upon closer inspection of the Daabens Datum column for Fanuel Peter August, it reads:

Daabens Datum: 19 Jan 1817

This means that the christening or baptism date for Fanuel Peter August was indeed on January 19, 1817, which matches the birth date also listed as January 19, 1817. This is a common occurrence in historical records where infants were often baptized on the day they were born or shortly thereafter.

Grok doubles down sticking to its guns and refuses to modify its incorrect answer original interpretation. Let’s try ChatGPT.

ChatGPT

This was the best of the bunch. Chat pretty much nails it and with the single query . No follow up question necessary.

[answer] In this record, the entry for "Fanuel Peter August" provides the following details:

Birth Date: 9th January 1817
Christening Date: 11th February 1817

The christening date gets listed as the 11th however. So… less than perfect. Yet, very cool that a machine can scan a difficult document make sense of it and feed a summary back to me with only a one or two sentence plain English prompt. The consensus of bot+person:

Fanuel Peter August
Birth Date: 9th January 1817
Christening Date: 14th February 1817

ZHA Visualization

Overview

This visualization of a home automation shows a mesh network of smart switches, smart plugs, and sensors.

The rectangle object in the diagram identifies a Zigbee Coordinator (radio adapter) which is the go-between for the automation hub. Sensor end devices (circular object) that are within close proximity can signal back to the Coordinator directly. Data is transmitted using a low power RF so signal strength is a factor. Happily, since this is a mesh network, the more distant end devices can chain relay through smart devices (oblong object) which relay amplify to the Coordinator like a router.

Router Detail

Winter is Coming

In sympathy with peoples abroad who might be chilling these next few months and in consideration of rising energy costs closer to home I am implementing a new routine with hopes for conserving.

The first step is to adopt a “time of use” billing strategy that utility companies offer. The utility solicits a pricing incentive for customers to refrain from and reduce consumption during the part of day that is historically prime time for energy usage. My humble abode is equipped with a heat pump and that is a big consumer so I give you the following strategy:

On-peak is from  6 a.m. to 9 a.m., Monday through Friday excluding holidays, so I don’t intend to use the heat pump(s) or worse — system AUX heating, a big draw item. So to comply, the thermostat will be turned down for this time slot. To mitigate rise and shine shivering or breakfast hour discomfort the living space will be pre-heated using the Off-peak ($0.067) rate before it cuts off. On-peak is a penalizing $0.39 per kilowatt hour and to be avoided.

thermostat – settings

  • 0500-0600 74 degrees (pre-heating)
  • 0600-0900 65 degrees (On-peak)
  • 0900-1600 68 degrees
  • 1600-2145 72 degrees
  • 2145-0500 65 degrees

A Smart Thermostat simplifies the task of micromanaging the setting adjustments.

extra credit

Ensuring that the water heater, also electric, will never draw current during the On-peak is a bit more involved but easily controlled. A relay to open/close the 240v contactors for the heating element can be actuated by a 120v smart plug. An [smart-hub] automation routine then will pause the appliance like a timer.

future plan

There is a Super Off-peak between the odd hours of 10 at night and 5 in the morning. At a mere $0.043 cents per kWh this will be an opportune time period to charge the EV.

maybe…

At some point go off grid? Solar array? Powerwall? In any event, please stay warm.

screen grab a la 1958

A computer screenshot is trivial today. Using software or even simple button press of PRT SC on the keyboard. But, the terminology comes from the act of literally taking a picture of the screen — the television screen that is.

B&W televised demonstration of working steam engine recorded in the first grade classroom and broadcast as local news.

Using a hand held [Argus C3] film camera in 1958, the resulting capture lost contrast clarity as it was a copy of a copy. (a flatbed scanner was used to scan the original photographic print just posted here so a copy of a copy of a copy) The light would have to be right as the camera would not have had automatic exposure and any glare or refection on the TV screen minimized. Camera focus would be a consideration; pre WYSiWG. Though grainy, it was a resourceful method and the proud parental event was luckily/successfully recorded.

We have it easy. SAVE AS would have archived the entire video and WITH sound, but back in the day this screenshot example was high tech.

It’s a Goner

My initial concern was one of monetary loss ($750). My connected device was gone. Misplaced. Standing-by in the left front pocket of my trousers, normally, it lends a sense of form against my thigh. An occasional pat or  brush of hand reassures that it is secure. Previous experience told me that this was a good location. Too rigid for a hip pocket and prone to spill from an open shirt pocket; it had only slipped a very view times when seated within the soft confines of sofa or pillow chair. One naturally makes a wallet / phone check upon exit.

The last reaffirmation check revealed that the usual location was empty. Confounded, I checked the other pocket possibilities. Nope. It was missing.

Recovery would be a puzzle. I would have to recollect when last handled as well as account for all events and movements since. A window of confidence was roughly 45 minutes but then you realize that a general summary recollection is clear but all of the small ‘witness’ details insignificant at the time, are brain stored in short term low level memory. Initially I was assuring myself that my phone was likely safe and would “turn up” but no; it took hours of revisualization and introspective thought to reconstruct.

The other pilot and I were leaving the airport on foot for an impromptu round trip to Cooper’s Island but not before a quick pit back at the jet to retrieve hat and sunblock. I reckoned that while crouching beside open suitcase in the bag compartment perhaps it had deposited there (False hope.  It hadn’t ).

Early on along our route we encountered two young girls opposite direction who were keen on our uniforms. We side stepped clear of the road and had a pleasant chat on the shoulder  with one being a Londoner and the other a Local. Before carrying onward there was a FB friending and group Selfie. Did I withdraw my (camera) phone and mis pocket opening? Did it fall silently into the deep grass? I would later retrace this 1/2 mile stretch trying unsuccessfully to recall the exact spot we all stood. Sweep scanning blades of  green for a glint of case or reflection on gorilla glass a dark thought occurs. Pickpocket! (Possible I suppose but a stretch)

Having arrived at the park entrance and while stalling for a bit while the other fellow captured some white sand beach setting photo I angled my leg to retie shoe lace. (squeezed from pocket opening) Was it the first beach or the next? Which fence railing?

24 hours had elapsed and I had gone back twice to search replaying everything but to no avail. I had to exhaust the possibility that it wasn’t just laying there undiscovered. After all, an opportunist would surely have attempted to access and the clever Find-my-Smartphone feature would broadcast its coordinate location. Alas, being out of country as I was the phone’s antenna was in airplane mode and therefore off network. A thief would merely have to wait it out knowing that the owner would probably remotely erase the device contents eventually after losing hope.

In fact, I was seriously poised to do that very thing. A data breach would be ugly with personal information of every kind risking exposure. The phone is locked by 4 digit PIN but with time and sophistication a good hacker might succeed. I learned that while the data wipe feature would allay these concerns, this option would also kill any possibility of tracking or easily identifying the device. In fact, it would make it possible for the discoverer to activate a fresh install — finders keepers.

Disgusted that I lost control of my property, resigned to writing off the asset as a loss, disappointed in having failed to find it, soul searching; why I am such a slave to the thing in the first place. Like so many by habit, I find myself staring at the small screen during every possible moment. How to go about replacing? Perhaps now is a good time to go cold turkey and kick this addiction?  I’m part way there.

By the next day I’ve traversed many states of mind; bummed, gloom, depression withdrawal but I’m less frequently checking the empty pocket or having phantom sensations. I’m actually gazing about spaces and at people during the idle moments.

By now the lost phone should be at lo-batt or nearly depleted. Seriously ready to Nuke…

Reunited

[spoiler alert: review the previous post first]

The CSR behind the desk at airport FBO doubted that I’d ever see it again. It had not shown up at their lost & found. I hadn’t expected it to. Whoever picks it up will keep it, she says. Just the same, I was wondering if perhaps an honest citizen might  turn it in. I had asked a Park Service  maintenance employee if they knew and the suggestion was floated that I try the local Police Substation. The CSR was dubious and I was primed to agree but then somehow we decided; let’s try.

She picked up the phone. I was only party to the one sided conversation but when she started relaying bullet questions from the other end such as: What color is it? and: What is the screensaver? (Sailboat) and then: What is the name on the boat? it became crystal there was going to be a happy outcome.

The CSR personally drove me over to claim it. I would have liked to have rewarded the soul who turned it in. My faith in humanity is restored. May that individual enjoy their good Karma.

I credit good police work. The officer had actually called over to the Bermudian Maritime Authority and determined that the yacht pictured from the lock screen was not in country. I explained that a year ago that it had been and the official confirmed this to be known.

property receipt
BTW, I’m off the wagon but trying to be diligent about usage. It goes without saying I’m installing a collar and chain 😉

episode with git

A key piece to web developer modernization is a scheme called GIT which allows synchronization of files and versioning control. Further, one can easily invite collaborators to join in on a project or fork to their own. FTP gone social.

There is a learning curve. There isn’t a user friendly face on GIT. All interaction is via the command line. A new language with artful terms such as Branch, Merge, Add, Commit, Push, and Pull to understand along with esoteric switch options: e.g. -a -u -m

It can be simple or complex. Unfortunately I blundered into the latter by creating several local repositories. One of which was innocently placed downstream of a root repository thereby creating a submodule. I had no idea what I had done apart from the realization that I was no longer able to modify the contents of this submodule from within the main project. In laymans terms; it was screwed up. Simple to implement but so difficult to undo.

A search result offered instructions to eliminate a submodule reference with all sorts of caveats and cautions.

I eventually made a draconian choice and abandoned my local directory tree structure by emptying the files. The submodule became its own repository after I split it off from the root but kept the original files. Its git tracking was undisturbed. In the root repository it was hoped that a simple Clone from the remote would restore all but this didn’t pan out. The remote was linked to deleted files in the old structure and *new* copied files refused to be tracked. A fresh local directory with a new name was established in order to begin again.

While learning the complexities (the hard way), I plan to “keep it simple” going forward.

Heroku and mysqli

Giving Heroku another try, it was straight forward to deploy a php app / mysql database. The routine is similar to the OpenShift PaaS and Heroku is not much different using the CLI as well. Console functionality is barebones.

My test app bombed during its maiden run however with a fatal error: Class ‘mysqli’ not found in /app/www/db.php on line 5. I learn that the mysql_connect() syntax in php is old hat and myslqi is to be encouraged instead. The old way works fine on Heroku but for some reason mysqli syntax has not been configured — and my app is peppered with mysqli.

Thanks to this search result, what one does  is to configure Heroku to use a custom buildpack (see below).

1
heroku config:set BUILDPACK_URL=https://github.com/travstoll/heroku-buildpack-php

Then create an empty commit and push the app again to force heroku to recompile the runtime:

1
2
3
git commit --allow-empty -m "empty commit"
git push heroku master

That worked and my app is restored without recoding.

Modernization

S’man advises that using a traditional hosting service to render web pages is passe. Not wanting to be eclipsed by new technology I followed his encouraging to advance. Aided by online postings, hints, and narratives one can learn the new jargon and implement the latest in cloud computing methods.

OUT

IN

There are many solutions offerings. I discounted Google App Engine off the bat because their implementation is a bit arcane. Ditto the Amazon Elastic Compute Cloud. Heroku was limited in their programing language offerings. AppFog looked promising with a generous CPU allotment but their console system behavior was discouraging. OpenShift by Red Hat however, seems like a winner with excellent documentation and performance. Beware: Most PaaS(s) rely on the Command Line Interface but as the concept matures; user friendly interfaces will develop.  App templates are currently provided for common setups but fine tuning requires knowledge of the command line.

A domain name is furnished with each app that you build on OpenShift. The domain that you are viewing currently is actually: wordpress-strombotne.rhcloud.com/ It is possible to use a CNAME record to point to that URL with one more personalized i.e. the sub-domain  blog.strombotne.com One uses their domain name registrar for this purpose and this is fine. However, a weakness that I’ve discovered is in using a naked domain, e.g. strombotne.com for an OpenShift app. Here’s where it becomes a bit wonky.  You can’t use CNAME with a domain name but typically use an A record resource with an IP number. The OpenShift DNS is limited as one isn’t provided. The fix is to try Domain Forwarding and Masking — a band-aid.