I’m working on a new search feature in indiebookclub which uses Open Library and supports cover images. It has me tinkering with the UI of the posting form and I’m interested in feedback about this first pass.

My first thought was to display the selected book information in a more compact, read-only block at the top of the form so you only have to select the status (want to read, currently reading, finished reading), then optionally add tags and other choices if you are using Micropub.

However, I still want to give people the option to update the book information before they post, so I was considering a button that would change the book information into editable fields. I experimented with various options and did not come up with anything I loved. I am now leaning towards always showing the fields with the populated values. Keep it simple.

screenshot of new posting UI that has fields: read status, title, by, ISBN, tags, status, visibility, published date, and timezone offset; all displayed in a horizontal layout on a larger screen

Screenshot 1: on larger screens

screenshot of new posting UI with the same fields described above; all displayed in a vertical layout on a smaller screen

Screenshot 2: on smaller screens

I did make the form more compact overall: less padding inside the form fields, less vertical space between them, and a horizontal layout on larger screens (using this WCAG technique). I also moved the timezone offset field out of a collapsed details element.

For comparison, below is a screenshot of the form as it exists. There are still a few parts of it that need to be put into my mockups, like choosing ISBN or DOI.

screenshot of current posting UI with the same fields described above

Screenshot 3: the posting form as it appears currently, for comparison

There will still be an option to use this form without searching Open Library, so if you are using a bookmarklet or prefer to type in all the fields, that will continue to work.

I look forward to any feedback or questions!


Selfie with my mustache and beard
Selfie with my new clean shaved face

It’s the end of an hair-a.

I started growing the facial hair in April 2020 because, hey, why not? I had no idea if I would keep it for long, but fast forward six years and I guess I liked it. I still like it today, but I thought it was time for a change, especially with summer coming.


The Kids are Alright

I recommend listening to this performance while reading on:

UGA Wind Ensemble: A Mother of A Revolution! - Omar Thomas

The Watertown, Wisconsin school board voted to remove this song, “A Mother of a Revolution!”, from the spring concert. Why? Because the song was dedicated to Marsha P. Johnson, an important figure in the LGBTQ+ rights movement. And according to most of the board members’ bigotry, that must make it “indoctrination and radical curriculum.” 🙄

As TMJ4 News reports, the band director properly followed the board policy back in October, notifying families of the potentially controversial song and gave students the option to opt out. Only a few did.

Fast forward several months, and the board votes to remove the song just a week before the spring concert.

Students and family members spoke out at the board meeting:

“It is a band piece with no lyrics that is very technically challenging,” said Anderson. “We have worked so hard for months.”

“I don't think you guys understand how hard it is to listen to you guys not accepting,” one student told the board. “I know what it’s like to not be accepted.”

Students at the school and the middle school also staged walkouts. Good for them! I really hope the band will play the song anyway (surprise encore?) on May 18th.

Updates

A local church is hosting a community performance of the song by the school band and the composer, Omar Thomas, will be conducting! Wednesday, May 20, 2026 at 7:00PM Central. There will be a livestream as well: watertownimmanuel.org/concert

Watch:

Watertown, WI community members perform 'A Mother of a Revolution' following school ban



Me cheesing on the left, wearing a gray Viddler shirt, and Jon on the right wearing a green shirt

Throwback to 2009 at Steak 'n Shake with Kraz. Miss this guy. And Steak 'n Shake.

Original photo by Jon Krasnichan





Free idea for your website: Donnie Darkmode. Like regular dark mode, but it also adds an image of a man in a rabbit costume somewhere on the page.


I ran into this odd issue when trying to add two Yubico security keys to my Google account on a Windows machine. The process on myaccount.google.com keeps prompting to “Enroll Windows Hello” in order to create passkeys.

If you want to skip the preamble, jump directly to the steps.

Whenever I clicked the “Create a passkey” button in the middle of that page, it opened the special link ms-settings:signinoptions, which opens the Windows OS settings page for sign-in options. My best guess is that Google wants the machine itself to use one of those options, but I prefer not to at this point.

screenshot of the Google account security page for Passkeys and security keys, showing the prompt to enroll in Windows Hello

I did some clicking around between the security page, two factor authentication page, and the passkeys page, both with the security key plugged in and without. I don’t remember the exact steps, but I did eventually get to the “Use another device” prompt and was able to set up the passkey on the security key. At that point, I had my first security key and my phone listed as passkeys. I wanted to add my second security key (backups!), but no matter how I tried, I could not get back to that “Use another device” prompt.

I turned to the human internet and found some threads on Reddit. This one in particular had a comment suggesting signing up for Google’s Advanced Protection Program. It is free, so it was possible, but I persisted on mostly in spite because this shouldn’t be so hard!

Fast forward through several more clicking around adventures and here is how I got it to work:

  1. Visit https://myaccount.google.com/advanced-protection/onboarding and sign in
  2. Scroll down and expand the section “Passkeys and security keys”
  3. Select “Create passkey”
  4. In the popover, select “Use another device” (screenshot below)
  5. Another popover with a QR code instructs to scan with a phone or tablet. Ignore that prompt and click the “Back” button at the lower left of the popover
  6. The QR popover will go away and you should see the prompt “Choose where to save your passkey for google.com”. Select “Use an external security key” (screenshot below)
  7. From that point, follow the OS prompts to enter a PIN and touch the security key
  8. Done! The security key now shows up in the list of passkeys
screenshot of popover where you can select to use another device
Screenshot for step 4
screenshot of popover where you can select to use an external security key
Screenshot for step 6

Impeach and Remove

Here is a short and bitter letter I just sent to my representatives.


To:
Rep. Scott Peters
Sen. Alex Padilla
Sen. Adam Schiff

Donald Trump and Pete Hegseth are both responsible for blatant war crimes in Iran and language advocating for war crimes. You must introduce and argue strongly for impeachment and removal of both of them. I do not care if you “don’t have the votes,” it is the right thing to do and human lives are at stake.

Please join Congresswoman Yassamin Ansari in her intent to bring Articles of Impeachment.

Impeach. Remove. Trial by the International Criminal Court.


Reposted Al Abut:

“Movie nerds! Come hang out at our #indieweb zoom on Saturday April 11th to talk about surfing and aliens:”

https://events.indieweb.org/2026/04/march-april-movie-club-h6pXaMEkEjj1

Al Abut, https://techhub.social/@alabut/116342787994876100

Arrival: IndieWeb Movie Club

For the April IndieWeb Movie Club, my selection is Arrival (2016).

It is a unique approach to the science fiction story of aliens visiting Earth. Even if you don’t usually like the genre, I hope you’ll give it a chance because there’s some thought-provoking questions and deeper emotion in it. I’ve found it quite moving on multiple viewings.

A couple years ago I remembered that it was based on Ted Chiang’s short story “Story of Your Life” and I read it in his collection Stories of Your Life and Others. I enjoyed the whole collection and gave it five stars. If you enjoy the movie, I recommend checking it out as well. I lean towards recommending the movie first because it is more fleshed out and potentially a stronger impact in that form. I could be wrong, though; that’s just the order I experienced them in.

Arrival trailer

You’re invited to watch the movie and write a post on your site sharing your thoughts on it! You can share your link using the form below (webmention), leaving a comment, or tagging me elsewhere. The format is pretty casual; your post can be a short note, blog post, or review. I will keep an updated lists of participants on this page.

In the US, it is available on Kanopy, which I was recently reminded is usually free with your local library card. Visit JustWatch to find other options for streaming/renting in your region.

Submissions



I am trying out a method to reduce bot attempts on forms like on my contact page based on fluffy’s example.

On select pages, I now check for a specific cookie. If it is not found or is more than 24 hours old, then the browser redirects to the “Sentience Check” page. That page is a minimal form with a button to indicate “Yes, I am a hooman.” Submitting the form sets the expected cookie and redirects back to the original page. If Javascript is enabled, it will submit the form as soon as the page loads, so most hooman visitors will only see the intermediate page for a second and should be able to continue without issues.

Also at fluffy’s suggestion, the sentience check page returns a response code of 429: Too Many Requests with a header that indicates: retry after one hour. I have no high expectation of the bots respecting that, but maybe the lack of successful response codes will cause some to back off.

The last thing I did was add a noindex meta tag on the page, so search engines should ignore it.

If you’d like to view the page, I recommend turning Javascript off temporarily and then visiting: gregorlove.com/sentience-check/.

I am interested to see how much this will reduce bot attempts on the contact and public sign-in pages. I have had CSRF and honeypot form field protections on both for quite a while, but of course I still see a lot of attempts on them.

Depending how this goes, I might expand its usage to the “send a webmention” form and explore using it to block LLM bots.

I did consider using “I am a meat popsicle” on the button, but not everyone might get The Fifth Element reference.


I added a banner to go along with my Long Covid Awareness Day post.

screenshot of the banner currently at the top of my site: a horizontal band of black that transitions downward to teal at the bottom with a light grey shadow underneath it

“International Long Covid Awareness Color Codes: Teal: #18929A, Grey: #939393, and Black: #000000

https://www.longcovidawareness.life/graphics

Aside: I quite like this teal color. I might have to work that into my site in some places in the longer term.

Previously, Previously


Long Covid Awareness Day

March 15 is Long Covid Awareness Day.

“Long Covid is a multi-systemic disease following a COVID infection, this includes severe, mild, or asymptomatic infections. Long Covid can occur in young and healthy people, including children.

The wide range of symptoms and conditions caused by Long Covid can last for weeks, months, or years.

There are currently no proven treatments or cures for Long COVID.​”

What Is Long Covid? International Long Covid Awareness

If there were two things I wish people would understand about Long Covid, they would be:

  1. People are at risk of Long Covid after each infection, regardless of how “mild” the symptoms were. That risk is cumulative; each infection increases the risk.
  2. The research is young. Since there are a variety of symptoms and no tests/treatment currently, the best way to avoid Long Covid is to avoid Covid infections.

As always, I recommend a layered approach to prevention: wear high-quality respirators, clean the air, and stay up-to-date on your vaccinations, if possible.

Additional Information

Definition of Long Covid:

Advocates and Communicators:

Research:

  • Long COVID in Young Children, School-Aged Children, and Teens doi:10.1001/jamapediatrics.2025.1415
    “Long COVID is common, affecting up to 10% to 20% of children with a history of COVID-19. With almost 6 million US children potentially affected, this is higher than the number of children with asthma, the most common chronic health problem in children.”
  • Experiences of Canadians with long-term symptoms following COVID-19
    “As seen in Chart 2, Canadians reporting two known or suspected COVID-19 infections (25.4%) were 1.7 times more likely to report prolonged symptoms than those reporting only one known or suspected infection (14.6%), and those with 3 or more infections (37.9%) 2.6 times more likely.”

General:

Dark silhouette of a person with a red heart on their chest. Headline in teal: 'LONG COVID' Subtitle: 'Every heartbeat counts' followed by a list of cardiovascular conditions: 'Fibrosis, Necrosis, Pericarditis, Myocarditis, Hypertension, Heart Failure, Fibrillation, Heart Attack, Thrombosis, Vessel Damage, Arrhythmia, and more...' Text at the bottom in teal: 'Every COVID infection can cause damage. High quality masks can help protect you. Finally, hashtags in the bottom corner #LongCovid #LongCovidHeartbeats #LongCovidAwareness
Image from https://www.longcovidawareness.life/graphics

Previously


I really enjoyed watching Winged Migration (2001). Some breathtaking footage of bird migrations all around the world. I was shocked how close some of the footage was and learned via Wikipedia that the filmmakers raised several species from birth so they would imprint on the staff and be accustomed to the ultralights and camera equipment.

Thanks to Fractal Kitty for the recommendation for IndieWeb Movie Club!


A white coffee cup sleeve that the barista has written 'Chai XCX' in black marker

I ordered a dirty chai and I complimented the barista on his handwriting as he wrote out this “Chai.” As he drew the “X”, he explained he used to write “Chai XXX” since, ya know, dirty chai. Then he figured, “Why not Chai XCX?”. Much appreciated handwriting and wordplay.