Spinning(?) the Indie Web

Hi! You might want to know that this post continues ideas from the following.

When I left off in last week’s Indie Web exploration, I didn’t expect to post, this week. I thought that I had hit a steady state, and could put off progress on Webmentions and whatever lies beyond for me. The week turned out to have a couple of pleasant surprises in store.

A spider web with dew, in front of presumed concrete blocks

In this post, I’ll talk about where that stands.

This section may get extracted into a fourth Indie Web post for Wednesday, but for now…

Webmentions, Continued

It took some manipulation of cached files, but I managed to finally get my Webmentions to send, at least some of them. The debugging output specifically told me…

[jekyll-webmention_io] 19 webmentions sent.

However, it looks like, of the nineteen, most come from ordinary links to the Indie Web website, which doesn’t seem like a place for a conversation, and so don’t show incoming Webmentions. The remainder either failed because the site doesn’t have their work set up correctly, or they haven’t set their page to show the Webmentions.

Also, it looks like I can’t send myself Webmentions, for whatever reason. I don’t know if the plugin refuses to do it, or the Webmentions server that I use sees it as an error. Either of those seem valid, however, and since I don’t actually need that functionality, that doesn’t seem like a blocking issue.

In other words, they send, but I don’t know that any of them landed anywhere.

One More Outbound

It occurs to me that one kind person sent me a reply, and I never followed up on that. Therefore, I’ll finally do that now.

in reply to: Reply to John

Thank you, and I apologize for the delay in confirming that everything worked!

This probably doesn’t quite conform to the specification, with the reply text in a “like,” but I assume that it’ll at least go through without the message, and debug if it doesn’t.

Earburn

As mentioned in Monday’s developer diary post, I have Earburn in a stable position, so I submitted this working version to Mozilla as a Firefox extension. And they accepted it quickly.

If you want a little icon that tries to inform you when the current page claims to support Webmentions, you can now install Earburn on Firefox like you would any other browser extension.

I marked it as experimental, because it feels experimental to me. But you can see that the code doesn’t have any significant risk to it.

What about Chrome?

For the Chrome Web Store, I needed to—for whatever reason—give them five dollars for the privilege of posting some code. And then I needed to fill out a far more (pointlessly) aggressive application form that I’ve ever seen. Among other things, it demands the following of all extensions, regardless of what they do.

  • Language, irritating because this has no text interface, but it has no option for that, because I should’ve internationalized my non-text, if I wanted Spanish- or Arabic-speaking users to find it.
  • Screenshots or “global promo video,” for—again, an extension that only changes an icon. Oh, and you can only have 1280x800 or 640x400 sizes, so recycling the icon won’t work.
  • Single purpose, which apparently differs from the description…somehow.
  • Justification for running JavaScript, because apparently we’ve only stated the purpose twice.
  • Justification for running against specific or all web pages, because apparently we’ve only stated the purpose three times.
  • Oh, and justification for using code not part of the extension remotely…even though it doesn’t do that.
  • Kinds of data the extension collects, even though it doesn’t collect anything.
  • Certifying that the data that the extension doesn’t collect won’t get sold…unless Google approves of the sale, presumably because they need a piece of the action.
  • A privacy policy for the extension that doesn’t collect anything.
  • A verified contact e-mail under the Account tab…which doesn’t exist.

Did I mention that I also needed to pay for the luxury of doing all this work for them? It all genuinely feels like Google sees Chrome extensions primarily as a vector to deliberately defraud users. And they don’t seem to mind if you agree, provided that you let them in on your grift in advance.

Oh, and they also won’t support version 2 of the manifest file anymore, so that needs to get bumped to version 3. And apparently, you can’t only bump the manifest version, nor do they provide any guidance on what needs to change, because why should they take responsibility for informing people of policy. They will pontificate for page after page on their migration plan timelines, though. From what I can gather, the “manifest version” actually refers to an entire programming model for extensions, which therefore seems misnamed to me on top of the added work.

In short, especially since I can’t identify whether Firefox supports “Manifest v3,” yet, and I will absolutely not maintain and support multiple versions of this code, it will take some time to push Earburn out to the Chrome Web Store as I figure out how this all now needs to look.

If you have the experience, here, and would like to accelerate the process, I’ll happily accept pull requests on the repository or broader input. Otherwise, I can only recommend adding the extension through the various debugging routes, until I have my act together, here.

Tweaking

Content Warning: This section gets more into the specifics of Jekyll, so if you don't use it or a comparable static-site generator, probably won't want to pay as much attention for the next few paragraphs.

Do you remember my mentioning, above, that I needed to manipulate a cached file? That turned out to run afoul of my existing publication process. At the top of my build-and-publish script, I’ve traditionally had (something like) this.

jekyll clean

I don’t trust caching in the build process, generally, because so many systems over the years have done it poorly and provided no debugging for when it goes wrong, beyond failing to build. In this case, though, I need to take a tiny leap of faith, because the alternative involves me constantly updating that status file to avoid the problematic things-that-look-like URLs.

And between that and the throttling that I mentioned two weeks ago, my build-and-publish cycle now looks roughly like it used to, less than a minute.

RSS Feed Issues

However, the outbound Webmentions caused me a new problem. Eagle-eyed watchers of the RSS feed—a group that I assume only actually includes me, honestly, but I apologize if you got caught, there, too—will have noticed that one post went out including the existing Webmentions in it. Those people got an update that included titles that I didn’t write and linked to pages that now look like this example Webmention reply.

Digging around, it turns out that the Jekyll Atom/RSS plugin doesn’t ignore posts marked hidden. Somebody offered a pull request to filter out hidden posts earlier this year, but nobody has interacted with it…except me giving it a 👍 thumbs-up emoji. The actual work only takes adding one line of code.

Oh, wait, let me warn the faint of heart, here.

Content Warning: I'll do something that defies all good programming practice and general common-sense computer usage, next. Avert your eyes, if that might bother you...

They write everything related to Jekyll in Ruby, and most versions of Ruby interpret code. I started to wonder, then, could I quietly apply the patch in the aforementioned pull request locally, and go on with my life? In the console, I check the following.

bundle info jekyll-feed

This gives me the path to the version of the plugin that Jekyll uses.

You know what I have coming, here, right? Since Ruby interprets source code, and since I know where I have the plugin’s code stored, then I can defy all good programming practice and patch the live version of the feed generator to do what the pull request does.

I know. I hate myself for doing this. It’ll come back to bite me, when I need to build the blog on another computer, at some point, guaranteed. However, this hack does have the rather important virtue of not requiring me to wait for the existing maintainers to release a new version of the plugin for me to install. I can get that future patch applied today.

And it worked, so now the RSS/Atom feed no longer has those one-off, social-style posts in it.

Three Weeks Down

This time, I think that I’ll actually take some time before the next post. I have two Jekyll plugins where I need to wait a while for updates, irrelevant-to-the-Indie-Web changes to make to Earburn, and publishing on one of the Indie Web protocols looks like it’ll require more research than my current “try some things and hope for the best” approach will allow.


Credits: The header image is Web by Martyn Wright, made available under the terms of the Creative Commons Attribution 2.0 Generic license.


No webmentions were found.

By commenting, you agree to follow the blog's Code of Conduct and that your comment is released under the same license as the rest of the blog. Or do you not like comments sections? Continue the conversation in the #entropy-arbitrage chatroom on Matrix…

 Tags:   blog   indieweb   programming   techtips

Sign up for My Newsletter!

Get monthly * updates on Entropy Arbitrage posts, additional reading of interest, thoughts that are too short/personal/trivial for a full post, and previews of upcoming projects, delivered right to your inbox. I won’t share your information or use it for anything else. But you might get an occasional discount on upcoming services.
Or… Mailchimp 🐒 seems less trustworthy every month, so you might prefer to head to my Buy Me a Coffee ☕ page and follow me there, which will get you the newsletter three days after Mailchimp, for now. Members receive previews, if you feel so inclined.
Email Format
* Each issue of the newsletter is released on the Saturday of the Sunday-to-Saturday week including the last day of the month.
Can’t decide? You can read previous issues to see what you’ll get.