šŸ’¬ Replied to: Todayā€™s Project: Backup all Pages

“A platform move for this blog is coming.Ā  WordPress is frozen on ver. 4.9.9 which is fine by me, but untenable in the long term because eventually I will start missing needed security upgrades.Ā  Also, Iā€™m beginning to suspect that my Indieweb stuff is not working everywhere with everyone and Iā€™m not willing to put the time in tracking down where the problems are on a platform I intend to leave.”

Brad Brad ( )

Last time I exported from a WordPress site, pages were included – you can either export them separately, or as part of “all content” – but it’s definitely good to have a manual backup, just in case!

I definitely feel your frustrations with IndieWeb on WordPress. I’ve had so much trouble and spent so much time getting things setup “just so,” and I’m still not quite there. I’m sure it would’ve been fine if I’d stuck to one of the recommended themes and default plugin optionsā€¦ but then I wouldn’t be running my site. Even though a lot of my issues appear to be fixed now, half the time I still don’t trust things not to break seemingly at random.

Add to that small frictions like how hard it is to post a like/reply/bookmark type of post from mobile, and frustrations start to mount up.

Have you decided what you’re moving to yet?

šŸ’¬ Replied to: Aaron Dembski-Bowden on Twitter

“Good morning, dear friends, foes, and fellow skeletons vine-wrapped in veins and sheathed in steaks of muscle.

Show me your kill teams? #warmongers #40K”

This is my teamā€¦ very much still WIP, despite these pictures being a few months old ?ā€ā™‚ļø

Time to take a look at my lovely limited edition copy of Andy Clark’s Celestine!

The packaging and presentation of the book is definitely very nice. Hopefully I can get stuck into the story later this evening!

Shared to IndieWeb.xyz

(Skip to the end for the TL;DR summary)

After an evening of debugging and rewriting sections of the HTML in “K”, I think I’ve fixed the markup and parsing issues I mentioned yesterday.

It turns out that X-Ray, the parsing engine used by IndieNews, Aperture, and probably others, was only finding the sidebar h-card in my markup. The rest of the content was being ignored. I’m not entirely sure why this is, to be honest, but it gave me a place to start.

Working from the (admittedly shakey) basis that if the parser was only going to find one mf2 entity on the page, then I’d want it to be the main h-feed or h-entryā€¦ so I started moving around some blocks of HTML and a few classes, and stripped out a few likely redundant pieces of HTML.

Thisā€¦ worked! The feed would show up in the X-Ray output instead of the h-card, and wasn’t all that different in the Pin13 parser compared to yesterday’s results. But it was far from ideal. The authorship information on every feed entry was screwed up; I’d made a change yesterday so only one full h-card was on the page (the sidebar) and followed the recommendation to markup the h-entry author details with u-author instead. Now came the conundrum: do I add back in a dedicated h-card to every h-entry, and by doing so re-break some of the other parsers looking for a single “representitive” h-card? I tried out adding them back in, just to see what happened. X-Ray was still fixed, but IndieWebify.me complained about it, and the IndieWeb Webring still couldn’t work out who I was.

I could have left it here. X-Ray was the main target, IndieWebify might not have liked it but could at least still see some details, and IndieWeb Webring was a “nice to have” in a way. But truth be told, it would have nagged at me. What if these “minor” issues were the proverbial canary? I want to achieve the widest possible compatibility now, to reduce potential issues at a later date.

It was around about this point that I remembered that an h-feed itself could have its own embedded h-card, which could potentially solve the issue. After moving my ‘h-feed’ class to the body element, instead of the main I’d been using up to then (so now it would use the sidebar h-card to represent the feed), it more or less did solve the issue.

It threw me at first that X-Ray didn’t list a separate h-card item like Pin13 did, but instead used the feed h-card for the authorship of every nested h-entry. Removing the now redundant author h-card from the entries stopped IndieWebify from grousing about these multiples. Oh, and here’s my new profile page on the IndieWeb Webring. Even my test microformat-based feed in Aperture/Monocle started displaying posts almost immediately after applying the change.

So, TL;DR: I moved my main h-card inside the h-feed, instead of it being a distinct entity on the page. By doing so I fixed pretty much all of the microformat parsing issues I was experiencing, which means “K” has taken a big leap forwardā€¦ and I can stop pulling my hair out ?

Shared to IndieNews (maybe) and IndieWeb.xyz.

I’ve been chipping away at several things over the last two weeks, mostly focussing on markup, presentation, and theme file organisation. I want to get these finalised before I look at theme customisation options. If you’ve visited the home page, you might have noticed the display of certain post types has been evolving, as I search for a pleasing balance of information, appearance, and not overwhelming a visitor with a wall of text. I don’t think I’m quite there yet, so expect a few more iterations. My current thinking is to treat the home page a bit like an “activity feed,” where action-type posts such as Likes are displayed in summary manner to give more emphasis to the written posts.

Of course, if you’re subscribed to the site RSS or JSON feeds in a reader of some description, you’ve probably not seen any difference!

The most challenging issue I’m facing is the markup of posts and other page elements to be compliant with the specs of h-entry, h-card, and the various post kinds such as: Like, Bookmark, Reply, Repost, and so on.

Everytime I think I have the markup nailed down, something comes along to show me it’s broken in some way. I liked a post on Aaron’s site earlier, and instead of showing as the like I intended it became a regular webmention showing my avatar as a photo, as I’ve clearly messed up the h-card and u-like-of markup in the last round of edits. So sorry to Aaron for mistakenly filling his responses with my face! The Pin13 parser shows the right elements as being present, but IndieWebify.me and Webmention.io both fail to pick them up. I’m guessing it’s an issue with how I’ve nested things, and/or some stray classes from previous experiments that I’ve not tidied up? I’ll try to get some time to look into it more tonight.

For other – minor – examples, IndieWebring also refuses to pick up my representitive h-card, even though IndieWebify.me tells me I have this setup correctly. Aperture doesn’t seem to pick up anything other than my h-card when I use the microformats feed instead of RSS or JSON.

If the markup isn’t right then IndieWeb features are unlikely to work correctly – so fixing this is key for an “IndieWeb integrated” theme.

As an aside, and while I’m on the subject of frustrations, I’m having a hell of a time with the Webmentions plugin. Most of the time it feels like they just don’t get sent, as I frequently have to manually ping sites (such as with the earlier like post). There’s a chance this is related to the above markup issues; if the receiving site can’t parse the post that mentioned it, it might just throw the mention away? That feels like a bit of a stretch though.

I need to come up with a better way of testing these things, rather than “just give it a try on here and see if it’s worked or not…”

But anyway, “K” is progressing, even if it sometimes feels like one step forward/two steps back. I’d hoped to have a proper “release” ready for some time in February, but at the moment I think March or April are more likely. I’m only getting an hour or two a week to tinker at the moment, and I know I’m going to be busier with other things in February.

Syndicated to Indieweb.xyz and IndieNews (hopefully!)

Updated to add – IndieNews still doesn’t like my site. “Error: no_link_found”, every time.

šŸ’¬ Replied to: State of the Indieweb in WordPress

“All of these items reflect the coming together and polishing of a complete Indieweb experience. As we move into the end of the first month of 2019, here is what I personally am hoping to see.”

This is a nice summary on where things are, and where they might be heading. As someone who has only jumped into the world of “IndieWeb in WordPress” at the end of 2018, it helps give me some context.

The idea of giving interested users more choice when it comes to integrated themes is the main reason I have been chipping away at getting my own custom theme ready for release.

As part of that effort, I’ve been working with the IndieWeb “toolbox” of plugins quite closely. If I can free up a bit more free time, then I would love to use that experience to help with improving documentation.

Thanks for all your efforts in 2018, David – I know I’ve benefitted from them!

I just had a weird issue where Cloudflare was blocking Bridgy from syndicating posts from my site.

Attempting to syndicate from either my WordPress editor, or the Bridgy user page would result in an error like this:

.

Now, Iā€™ve never consciously set anything to say ā€œdonā€™t let Bridgy access my site,ā€ have few settings turned on, and havenā€™t logged in to Cloudflare in months, so it felt like it mustā€™ve been that some rule update on the Cloudflare side that started flagging the requests as potentially malicious. Unfortunately, Cloudflareā€™s settings are rather opaque – especially on the free tier. More annoyingly, the ā€œRay IDā€ in the error didnā€™t match anything in the limited logs I do get access to.

But, Iā€™m nothing if not persistentā€¦ after a bit of trial and error – switching things off and testing again with Bridgy – and I was able to track down the culprit setting, in the ā€œScrape Shieldā€ section of the control panel, labelled ā€œServer-side Excludesā€:

With this turned off, Bridgy could syndicate my posts again.

Iā€™m starting to wonder if this setting is a contributing factor to the issues Iā€™ve had where Webmentions and associated posts like Replies, Likes, and others seemingly havenā€™t worked? Perhaps someone with more experience with Cloudflare or the various IndieWeb tools could shed some light?

At the very least, I hope this post saves someone a bit of head-scratching if they suddenly find their Bridgy integration stops working.

Shared to IndieWeb.xyz.

šŸ”– Bookmarked: How to Fix Social Media by Injecting A Chunk of the Blogosphere by Tim Carmody

“Not all hour-long podcasts are worthwhile, but I found this one by The Atlanticā€™s Matt Thompson and Alexis Madrigal to be pretty compelling. The subject: how to fix social media, or rather, how to create a variation on social media that allows you to properly pose the question as to whether or not it can be fixed.”

Tim Carmody (kottke.org)

Shared to IndieWeb.xyz.

šŸ“– Read: Fascist political group plans to infiltrate community councils (The Ferret) by Billy Briggs

“An extreme far right group modelled on Sir Oswald Mosleyā€™s British Union of Fascists plans to put candidates up for community council seats in Scotland.”

Billy Briggs (The Ferret)

I think this quote from the article sums it up well enough:

ā€œā€˜Never againā€™ was the popular slogan after the second world war against fascism. We should never forget that and never give these dangerous idiots an inch.ā€

šŸ’¬ Replied to: Grant Richmond: My New Posting Workflow

“Just wanted to say that Iā€™m enjoying the stuff youā€™re sharing on Indieweb.xyz! The ā€˜bootsā€™ quote the other day. A nice contribution to the book quotes sub.

You mentioned having some difficulty with my scraper getting identified as a malicious bot or somethingā€”any idea why I might be triggering Wordpress in that way? I can train it better.”

an author ( )

Thanks! I do worry sometimes Iā€™m ā€œthe new guyā€ flooding the site with links every couple of daysā€¦ ? IndieWeb.xyz has been invaluable to me lately, helping me to explore how people are using IndieWeb ideas and tools – and in giving me some cool stuff to read!

The parsing trouble I was having seems to have been entirely down to the WordFence plugin. It was consistently blocking anything coming from the indieweb.org hosts too. Unfortunately the free version of the plugin doesnā€™t give the best information or options to diagnose/fix issues. As near as I can tell, the issue seems to have been POST requests made with either a missing referrer or user-agent?

Iā€™ve disabled WordFence for now (I think it was overkill for my little site anyway) and most of my issues have disappeared. I have a lingering issue where sending Webmentions is intermittent, but thatā€™s probably user error on my part šŸ™‚

I had the need to change the status on several hundred wordpress posts by a particular author, from “publish” to “pending” (more on this in a future post). This would have taken me hours to do through the frontend, so I figured I’d make my first serious use of WP-CLI, and script the job.

You can list posts using WP-CLI, and specify which columns to display, and even pass in basic filters, like so wp post list --<column>=value --fields=ID,post_title,post_status,post_author. You can also update posts. By combining these with some shell scripting, big jobs can be done fairly easily.

Easily. Oh, the hubris. The problem I ran into was:

  • The display column names are the names of the columns in the database, so to list the post author, you would refer to it as post_author.
  • The filter column names are as they are referred to in WP_Query, not how they are named in the database.

I didn’t catch on to this distinction at first, and the number of rows I was returning was large enough it couldn’t display all of them in the terminal. Yes, I should have used less to check. I should have done a lot of things, like take a backup first (wp db export ~/export.sql), but that wouldn’t be as good a cautionary tale.

Long story short, I ran wp post list --post_author=3 --fields=ID,post_title,post_status,post_author, saw only the results I expected because some rows were cut-off. When I fed this into a loop which would update the post_status, I ended up setting every post as pending.

wp post list --post_author=3 --format=ids \
| xargs -d ' ' -I % wp post update % --post_status=pending

The correct command should have been

wp post list --author=3 --format=ids \
| xargs -d ' ' -I % wp post update % --post_status=pending

Thankfully, having realised my mistake, I could make use of WP-CLI to fix it:

wp post list --author=2 --format=ids \
| xargs -d ' ' -I % wp post update % --post_status=publish

For everyone following along at home, my mistakes so-far were:

  • Not reading the documentation fully
  • Not taking a backup before altering a live site
  • Not double-checking my test results before running the command “for real”

I’ve returned all of the wrongly-pended posts to “publish” status. I do still have an issue with Post-Kinds data being missing on most of these posts; I think this is due to some wierd interaction between WP-CLI and the plugin, but I can’t be sure. These posts (~60) I’m going to have to fix by hand — I consider it a reprimand for my earlier flippant approach!

Cross-posted to /en/wordpress.

I’ve been chipping away at K as time allows over the last week. It’s still a long way from where I’d like it to be, but it’s getting there…

  • All theme files should be compliant with the WordPress Coding Standards, apart from a few instances where I’m planning to rewrite what’s there.
  • I’ve made little tweaks here and there to the markup output by the theme, and plan to revisit this continually. I made a test post to indieweb.xyz, but it didn’t quite parse correctly last time. This post should also be submitted – fingers crossed it goes better this time! I’m also curious if IndieNews posting will be more successful.
  • Files have been refactored (albeit not yet fully reorganised), with a goal of splitting up what was a growing, monolithic functions.php into smaller logical chunks.
  • I’m wrestling with how to handle all of the different kinds of posts the theme will support, from a markup and display point of view. My biggest headache at the moment is the treatment of post titles. I might write another post on this topic.
  • I’ve been working on making plug-in support more optional than I had it at the outset. I make heavy use of Post Kinds and other IndieWeb plug-ins, but don’t want the theme to necessarily rely on them.
  • Oh, and the source code is now available on GitHub, in the spirit of “selfdogfooding“. I came to the realisation there wasn’t anything to be gained by holding the code back, and I even ran the risk of never releasing anything if I waited until it was “ready.”

I’m learning quite a bit through this exercise, which is great. It’s reinvigorated some of my love of code tinkering; I’m finding that some evenings I’m more keen to sit down at a keyboard than I am to sit at my hobby station, which is something that’s not happened in a long time!

Update 09:26 – IndieNews submission is still failing, unfortunately. Indieweb.xyz seems to be working, but I had to force a Webmention.

Just had one of the back garden fence panels implode under the high winds, and several others looking like they might go too. Just the thing I needed first thing in the New Year.