Box

The box itself has a card sleeve with the product photo over the main box, which features the artwork from Warhammer Fantasy Battle 5th Edition (the best edition, don’t @ me)

Instructions

I didn’t really need these, but it was fun to flick through the instructions, for old times’ sake. For those unaware, the last picture is of a “datafax” – every vehicle in 2nd Edition had one of these, which gave the profile, armour values, and damage charts.

Parts and Contents

The parts I received were in good condition – which I expected, as this was a still-sealed, never-been-opened box! The blister pack and transfer sheet both showed a lot of discolouration, beyond what I’d expect for the age and unopened state, and more than shows up in the pictures; I suspect at least one previous owner smoked. As I was about to assemble everything, I wasn’t concerned by this.

Mould lines weren’t really an issue on the plastic parts. There are a couple of regular problem areas on this kit – the grab rails, and the exhausts – but most other parts were fine. The metal parts had the usual assortment of metal tags and casting imperfections, but nothing out of the ordinary or problem-causing. I’ve had more issues with 2019 GW metal castings than I had with this kit.

Assembly

The original Rhino chassis, which forms the basis of the Immolator kit, is so simple and straightforward to put together. Glue the two halves of the hull together, add the hatches and track sections, and you’re pretty much done. The only thing you have to be mindful of, is some of the parts and connection points are small and/or fragile. I broke one of the top hatch handles just by holding it too tight between my forefinger and thumb, and had to carefully glue it back together before assembly. I did quite a bit more clean-up than 14 year-old me would have, to take care of gaps and mould lines. Modelling knives, clippers, and sanding blocks will be your friends if you ever have to build this kit yourself!

The metal parts of the kit were always a little annoying to work with. The tolerances and variance are much bigger in a spin-cast part than injection moulded plastic, so things don’t quite line-up or fit right. I did as best I could, with a bit of filing, bending, and using some superglue to gap fill where needed. I completely forgot to take pictures of the turret assembly!

I did allow myself a couple of nods to modernity – I added 3mm x 2mm magnets to the tracks and turret, to make transportation easier and stop the turret falling off all the time. To speed things along I used my power drill on the slowest setting, rather than my pin vice.

Finishing Up

After building the Immolator I sprayed it with with Halfords Grey Car Body primer to make sure paint would stick to the metal areas as well as the plastic. Once the primer was dry, I sprayed it with a couple of thin coats of Retributor Armour to match the rest of my Sororitas.

I knew the old Rhino kit was smaller than the current kit, but I hadn’t realised by how much until I put the Immolator next to a Razorback. It’s easily 25% smaller.

When I started opening the box for the Immolator, I was a little intimidated… mainly because I’d never find another in this good a condition if I messed up! By the end though I’d enjoyed myself so much I scoured eBay to find a retro Rhino kit to work on next!

I mentioned last week I had setup iOS Shortcuts to post Likes, Reposts, and Bookmarks to my website, and automatically syndicate those posts to Twitter. This solved a particular pain point in my “workflow,” where I’d share something to my website with Indigenous, but then have to go in to the WordPress editor through a browser to get the post to share back to Twitter. This was enough of a pain I avoided it where possible. With the new shortcuts I don’t have to worry about that. A couple of taps, and everything “Just Works”(tm).

This post is an attempt to document how I have my shortcuts setup, so you can make some of your own. I’ve tried to keep things as jargon free as possible, but the instructions do assume the following:

  • you have a website of your own,
  • that website has a Micropub-compatible endpoint, such as self-hosted WordPress with the Micropub plugin,
  • your iPhone or iPad is running iOS 12 or above,
  • optionally, your website can syndicate to other sites through Micropub syndication target. WordPress users can use the Syndication Links plugin.

My own setup uses WordPress with all of the IndieWeb plugin pack, so that is what this guide has been tested with, but everything here should be universal to any Micropub server. To get started, you will first need to install a pre-requisite shortcut.

Install the IndieAuth Shortcut.

This is the foundation for the other shortcuts. With out this, your shortcuts cant authenticate with your site. It can be found here, with some more notes found on this IndieWeb wiki page about Shortcuts. While installing it, you can configure it with the URL of your site and run through the authentication process to get a token, or enter a pre-existing token. Alternatively, if you already have a valid token from somewhere, you can enter that into the shortcut for it to use.

Note for WordPress users.

I ran into an issue with the IndieAuth shortcut, where WordPress didn’t interpret the authentication scopes properly, meaning the generated token wouldn’t work. I didn’t spend much time debugging this, so I don’t know if the issue is in the plugin or how Shortcuts sends the request. Thankfully, there’s a workaround. Go to your WordPress admin area > Users > Manage Tokens. At the bottom of the screen will be a form where you can generate an appropriate token. You’ll want to select at least the “create” scope. Do this, then copy and paste the token code in to the text field at the top of the shortcut, like this:

With our authentication mechanism setup, it’s time to build the shortcut proper.

Building the Shortcut.

Initial Setup.

In the Shortcuts app, create a new shortcut. The first thing we need is a “Get URLs from Input” block, then a “Set Variable” block. Name the variable something memorable, as we’ll be using it in a couple of places. I called mine “repost” in my Retweet shortcut.

Next, add a “Run Shortcut” block, and another “Set Variable” block after it. The shortcut block should be set to run your IndieAuth shortcut, and you can turn off “Show While Running”. Set the variable name to “token.” Once done, you should have something like this:

Posting to Your Site.

This is “where the magic happens.” In broad terms, the next few blocks will:

  1. Be configured with the Micropub endpoint of your site,
  2. Craft a POST request to your endpoint, with the following pieces of information:
    1. Your authentication token
    2. The type of Micropub post we’re creating (“entry”)
    3. The URL we’re sharing, as a “repost-of”, “like-of”, or whatever
    4. Set a syndication target.

With these steps in mind, onward we go!

Add a URL block to your site. Enter the URL of your Micropub endpoint. If you’re not sure exactly what this is, check the source of your site. Look for a link tag with rel=“micropub”. Alternatively, I’ve written another shortcut which will try to detect an endpoint for a given domain. You can find it here. Note that I’ve not tested this shortcut on any device but my own, so there may be bugs. The Get Endpoint shortcut will check if the endpoint variable is set, and if not, ask for a domain to parse for the endpoint. Once parsed, the endpoint URL will be copied to the device clipboard for pasting elsewhere, and return a URL.

Back in the sharing shortcut, add a “Get Contents of URL” block. Tap on “Advanced,” then set the Method to POST. Tap on “Headers.” Add a header called “authorization” (note the US spelling, if you’re using a UK keyboard or similar). Set the value of this header to “Bearer ” – with the space at the end – then insert the token variable created earlier.

Next, in the Request Body section, set it to Form. If you’re replicating my setup, add three new fields: h, repost-of (or like-of, etc.), and mp-syndicate-to. Set the value of h to entry. Set repost-of to the variable you created from your input URL, right back at the start.

Finally, set mp-syndicate-to to the UID of the syndication target you want to share to. In my WordPress setup, this is twitter-bridgy. Your system may vary, if you’re not using WordPress + the Syndication Links plugin. If you’re not sure what your UID might be, you can try running another shortcut I’ve created, which will query your site to find all the places you can syndicate to. The shortcut requires the “Get Endpoint” shortcut linked above, and will return text listing all UIDs configured for your site. As an example, the output for me looks like this:

{"name":"XYZ IndieWeb","uid":"xyz-indieweb"}
{"name":"XYZ Linking","uid":"xyz-linking"}
{"name":"IndieNews En","uid":"indienews-en"}
{"name":"XYZ Books","uid":"xyz-books"}
{"name":"Twitter via Bridgy","uid":"twitter-bridgy"}
{"name":"Github via Bridgy","uid":"github-bridgy"}

If you don’t want to syndicate your post, remove the mp-syndicate-to field entirely – don’t just leave it blank, or you might run into issues.

Once all fields in your Like/Repost shortcut have been filled in, you should have something like this:

You can leave things here, if you want, or you can add something like a Notification block to show you the returned response from your site, for debugging purposes. Unfortunately, the current limitations of Shortcuts mean we can’t get the URL to our new post from the results. Maybe that will change in iOS 13.

Set your new shortcut with an appropriate name and icon. Turn on the option “Show in Share Sheet,” and optionally set the “Accepted Types” to “URLs.” Tap Done a couple of times, and your shortcut should be complete! The best bit is, you can duplicate the shortcut, change repost-of to like-of (or viceversa), and you’ll have a working Like shortcut too 😃

Now, you can use the iOS share sheet for any URL to run your shortcut. Tap the share icon, tap Shortcuts, then tap the relevant shortcut from the list:

As a bonus, here’s a couple of short clips of the Like shortcut in action:

If you run into any issues getting the shortcut created, please do let me know through a comment or Webmention, and I’ll try to help where I can.

If you’re a Monocle user, you might have noticed a new feature in your UI today. If you self-host, you’ll want to update your installation to the latest version. Two nice “quality of life” features have gone live, and I’m a little excited, because I helped build one of them 😁

The biggest feature I’ve been missing in Monocle over, say, Feedly, is a “mark all read” button. I follow too many busy sources to be able to keep up with everything, so I frequently mark everything as read and carry on. It helps me not get overloaded.

Monocle "view menu" on desktop

Aaron had raised an issue to build the feature at some point, but I wanted it, and had a spare weekend, so figured I’d make myself useful!

In all, it was surprisingly straightforward. The Microsub spec is well documented, so I knew how it needed to work. All I had to figure out was how to fit that into how Monocle already did things, and there was already a “mark read” for single entries to work from.

The UI took the longest to build, mostly because I had to figure out the Bulma frontend framework. Rosemary had already come up with some ideas on how it should work, so the hard part had pretty much been done.

Monocle "view menu" on mobile

And with a little bit of testing, there it was – “Mark All Read” in Monocle. I’ve been running it in my install for a little over a week now, and I hope you’ll find it as useful as I have if you’re a heavy Monocle user.

I can’t take any credit for in the slightest for the new “Show Only Unread Entries” feature – to my knowledge, that was all Aaron. It was a nice surprise to find once I updated my local install from the master branch!

With the recent change in ownership, I’ve been wondering if Flickr could become a viable alternative to Instagram for photo sharing (again)? I have a nostalgic view of Flickr, even though I haven’t used it in years. I closed my account, but I’d like to see them do well, and could be convinced to sign up.

As much as I’d love for people to be using their own site/domain, many (most?) don’t want that hassle – so a good service app will be their go-to.

As an aside, I need to get back in the habit of posting photos on this site. I haven’t really been taking pictures with the intent to share over the last couple of months, but one or two have ended up on social media regardless.

I mentioned that I was thinking about installing Manjaro Linux… well I went ahead and did it. Not even just a little, by dual-booting with Windows 10. No, I wiped everything and just went for it as my one and only operating system. What follows is my notes from the install, so if I want to get back to where I was at some point in the future, I can retrace my steps.

“Live USB” Installer

Due to having a Broadcom wireless adapter in my self-built PC, the networking didn’t work “out of the box” for me. Which was a surprise, because it did work the last time I installed Linux. From what I’ve read, kernel 3 worked fine, but kernel 4 (on the Live image) has some problems with these cards, due to their drivers. This actually stumped me for a while, but in the end… iPhone tethering to the rescue! Put an iPhone into “hotspot” mode, then plug it in to the PC via USB, and Manjaro picks it up as a working network adapter pretty much instantly. It worked over Bluetooth as well. I’ll admit I was impressed by this.

This let me connect to the internet and test how to get the WiFi card working. Once I had a plan for that, it was on to the installation

Installation

Other than the network adapter, everything else about the installation was a breeze. Manjaro came pre-installed with the proprietary Nvidia graphics driver, and after picking a few options (user account, disk partitioning), the installer formatted the disk, set everything up, and prompted me to reboot within a couple of minutes.

Post Installation

So here’s where I had to fix a couple of things.

Network Drivers

With the iPhone still tethered, the process was something like this:

  • Perform a full system update using the package manager
  • Use the Manjaro Kernel Manager to install and switch to the latest Linux 5.0 kernel
  • Uninstall the broadcom-wl driver package
  • Reboot
  • Install the broadcom-wl-dkms drivers
  • Reboot
  • Configure the network connection in the connection manager

I configured my VPN by downloading the profiles from NordVPN, imported one of them, then set my WiFi connection to automatically connect to the VPN when the network started up.

Blank Screen during/after boot

I encountered a really strange issue where the login screen would not show after boot, and the system would appear to hang until I pressed some keys. It wasn’t a huge deal, once I figured out to press something, but it did start to niggle and made my system feel slower. After a lot of searching I came across this thread talking about similar symptoms. I installed the recommended package haveged, enabled the service, rebooted, and the problem was instantly fixed. After a little more reading, I replaced haveged with rng-tools, and everything has been fine since.

Other tweaks

I followed some of the suggestions from this video – namely install the fonts, reduce “swappiness”, install Pamac and a firewall.

Look and Feel

This was my first time using KDE as my desktop environment, so I was keen to spend some time customising it to my liking. So far I’ve settled on the “Adapta Breeze Nokto” theme, some additional icons, and played around with the panel + widget setup. It’s not fancy, but my desktop currently looks like this:

I’m generally a fan of darker themes, as they’re less of a strain on my eyes.

Other Random Notes

So far I’ve only installed a couple of extra software packages and tweaked a couple of small things.

  • I installed Lutris, for running Blizzard games. Hearthstone and World of Warcraft run flawlessly in my limited testing.
  • Visual Studio Code was also installed, for pretty much anything involving an editor.
  • Steam came pre-installed. A quick check shows around half my existing library is already compatible with Linux; the rest I’ll check through “Steam Play” and Proton.
  • I added a “bootsplash” loading screen using the (kinda vague) instructions in this thread. Basically: install a suitable theme, edit a kernel hook and rebuild the kernel, then add an option to GRUB. Given the speed everything loads at, this might be unnecessary – it’s shown for at most 1.5 seconds.
  • On SSD-based systems, enable the fstrim.timer service to enable TRIM support (recommended).
  • With the Nvidia driver, get better looking scrolling in Firefox by enabling layers.acceleration.force-enabled in about:config.

That’s all my notes for now. No doubt I’ll post up more as I get more comfortable with the OS and explore the capabilities a bit more ?

I noted the other day that Textpattern might be a good fit for some people trying to build their own websites, but that there wasn’t much in the way of resources to get them plugged into the IndieWeb.

Well, I went and started to do something about that. #IndieWeb TextPattern is a site where I will be exploring and documenting how to add various IndieWeb building-blocks to their Textpattern website. There’s not a whole lot of stuff there yet: just the mission statement, and how to add an h-card using form templates; but my intent is for the site to grow into a kind of guidebook for interested parties to be pointed to from the IndieWeb wiki and elsewhere. I was inspired by the short series of posts Gary put together about Blogger recently.

It’s been years since I last used Textpattern — possibly more than a decade(!) — so there will have to be a lot of experimenting and exploration before I figure out everything that will be needed. I want to get the “quick wins” out of the way at the start, then at some point I anticipate having to write new code as part of this project… hopefully just as Textpattern plugins, but there might be some features which need a “bridge” service to get working. I mention in the introductory post some of the areas where I think I’m going to have to write code, but for now, those are all later concerns ?

In the more immediate future, my planned content includes: getting a site ready for IndieAuth, adding microformats to post templates, receiving WebMentions, and possibly implementing post kinds in a manual capacity. If you have any suggestions at all for the site or topics, please do let me know!

Why isn’t the internet more fun and weird? by Jarred Sumner

“MySpace inspired a generation of teenagers to learn how to code. We have Dark Mode now, but where did all the glitter go?”

I may be showing my age here, but I was never on MySpace. That said, this blog post (and the CodeBlog service it’s advertising) reminds me a lot of platforms I do remember, like Tripod and Geocities. Pages were built from raw HTML, and adorned with all sorts of widgets found on places like DynamicDrive and BraveNet. The <blink> tag ran rampant! Early Tumblr had a similar vibe, but look how that turned out.

These early services were places you could experiment and explore until you had the confidence, skills (and cash) to get your own domain name and server. Nowadays anyone can have their own domain and site quickly and cheaply on somewhere like WordPress.com/Blogger, but they are very cookie-cutter and locked down. Even using self-hosted tools like WordPress.org reign-in a lot of the free-form creativity.

One of the reasons I love Kicks Condor is because of how anachronistic and fun it looks; I can easily imagine 15 year-old me, magazine HTML tutorial in hand and full of enthusiasm to learn something fresh and new, creating something similar by accident and having a blast doing it.

By making things easier, more accessible – and safer – it feels like we’ve hidden away the building blocks. It’s harder for people to get at the pieces they need to try their own thing out of curiosity. Can you imagine if LEGO pieces were keyed to only fit a certain way, so you could only build what was shown on the box art?

Shared to IndieWeb.xyz and IndieNews

(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.

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.

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.

I mentioned before the festive break that I was thinking about open-sourcing “K”, the custom theme I’ve been developing for this site. Since then, I’ve decided I’m going to do it, but I’m going to work to tidy things up beforehand. Some of this has already happened, some of it is yet to be done. For a bit of fun, I’m going to [try to] blog about it whenever I make some progress ?. All-in-all, I’ve identified three main themes I want to focus on before the intial public commits.

My first job is to make the theme more “generic.” As I mentioned, the theme has been very much a hacking together of what I’ve needed, as I’ve needed it. This means a lot of it isn’t as customisable as people expect a modern WordPress theme to be. For example:

  • The site logo is an embeded SVG, rather than an image that can be swapped out in the WordPress Customiser.
  • The sidebar was, until recently, entirely hardcoded HTML.

I’ve made some progress here – there’s now a “widget area” in the sidebar – but my custom author h-card is still mostly manual (although it does use a WordPress menu for the social profile links). I think I’m going to recreate this as a bundled widget. I could try using the IndieWeb h-card widget, but I liked having the flexibility of my manually crafted card, and the IndieWeb version doesn’t support multiple profiles at the same service.

The second main focus is going to be standards support. I want the markup to be as fully compatible with MF2 and structured data as possible. I’ve spent hours debugging this so far, and I think I have it mostly sorted. IndieWebify.me picks up everything I expect it to, and every parser/validator I’ve thrown at the different pages and types of content have come back correct to my eye. For some reason, IndieNews hasn’t liked any of my submitted posts, but that’s lower priority for now. I haven’t done much with marking up elements like comments, but the main page/blog post/author details seem to be correct.

Finally, the third focus is on the code quality and maintenance. This loops back to the customisability/flexibility theme as well. By its cobbled-together nature, “K” has been a bit… loose in the quality of the PHP code, and the frontend files were/are a nightmare to maintain. Up to now I’ve used a hacked to pieces copy of Bootstrap with a bunch of customisations on top to provide the layout framework (literally just the rules I needed, obtained through UnCSS), and a similarly cutdown set of FontAwesome icons. That’s fine for my use case – even if it has been a faff to add to the site – but it won’t work for other people.

I’ve started adding a build system for these frontend files, but it does mean I’m probably going to have to include the entirety of the minimised version of Bootstrap, and the full FontAwesome SVG sprites. Unless someone has a good suggestion? Unstyle has a CLI tool, but integrating that is probably a step beyind what’s needed for the moment. I haven’t added FontAwesome to the live site yet, but this page should be using the new style.css that’s been compiled from SCSS.

On the PHP side I’ve started making sure it conforms to at least the WordPress Coding Standards. There’s still a few files to update, but functions.php and most of the template files are done. After that I want to make sure everything is as modular as possible. I’ll need to add files to handle the various post-types, error pages, and other screens a more rounded theme would handle. I’ll also be bundling a selection of Post-Kinds templates, once I figure out how I want to display them on this site.

There are other things that will need done no doubt, but these are where I want to focus my efforts for now.

Not all of them need to be fully completed before “K” gets open-sourced, but I would feel a lot more comfortable if at least the first steps were taken along these paths. It is a little dependent on having enough free-time, but I’ve set a goal of uploading to GitHub by the end of the month.

If you have any suggestions, or other feedback, please do let me know — either as a comment below, or on your own site.

I published my first POSSE post earlier today, so I could see how well it works syndicating to Twitter. POSSE (Post on Own Site, Syndicate Everywhere) is a key tenent of the IndieWeb, but something I’ve never quite got working properly when I tried previously.

Things still need a little tweaked, and I won’t be syndicating every post, but ultimately I think it turned out OK. After a bit of to-and-fro with Brid.gy, my status post was posted to Twitter, and a like from one of my followers showed up on this site.

I’m not sure if I’ll want to include a link back to the site or not. The first post included a source link, but in my view it looks a bit odd on Twitter. I’ve turned source links off for the time being, and I’ll see how I get on.

Now, if I could just get OwnYourGram to start working properly…

I’m not one for New Years resolutions, but I wanted to set out a few hobby-related goals for 2019. The main driver for these is to clear some of my backlog, and also to let me play some games of Warhammer 40,000 for the first time since near the end of 7th Edition.

  • Finish Knight Household
    • 3x Questoris
    • Castellan
    • 6x Warglaives
  • Finish Adeptus Custodes Battalion
    • 3x Guard squads
    • 2x Vertus Praetor squads
    • 1x Terminator squad
    • Characters
  • Finish Adepta Sororitas Battalion
    • 3x battle squads
    • 2x Cannoness
    • Imagifier
    • Seraphim squad
    • <stretch> Celestine + Geminae

To achieve this, I think I’m going to have to cut down on the number of one-off miniatures and competition entries I paint.

As I’ve been experimenting more with IndieWeb ideas on this site, I’ve been kicking around the idea of open sourcing the custom theme I use to power this site (currently called “K”). Part of this is from a desire to start sharing useful code again. I haven’t really put anything out there in years now. Once upon a time, long before the rise of Github, any code I wrote for myself would at least have ended up as a downloadable .zip file.

The other reason I’ve been giving myself, is to add to the pool of MF2-compatible themes available, in an effort to give people more options for deploying Indieweb sites. Right now, the Indeweb wiki only lists a handful of themes as compatible out of the box, so the more that can be added, the better it will be for growing the community.

The thing is, the theme is very much not ready for other people to lay eyes on, in its current state:

  • I (currently) do a bunch of non-standard things under the hood.
  • I’m also not doing a bunch of theme “best practices”. Simply because I’ve not needed to.
  • I’ve not really cared much about testing in browsers beyond the ones I use day to day.
  • A lot of the code has been cobbled together as and when I’ve needed it, so there are loads of “standard” features straight-up not implemented.
  • There’s a tonne of things hard-coded specifically for me. Those would have to be stripped out or altered to be configurable. That’s more code I’d have to write.
  • I’ve hacked up a bunch of dependencies, in the name of optimisation for my own needs. A public release would need to include the full code of these dependencies, or it’ll severely restrict anyone who wants to use the theme.

All in all, there’s quite a lot to do to make the theme usable by anyone who isn’t me. My natural instinct is to hold it back until it’s “ready” but as I’ve been typing this out, I’ve been wondering if I should just go ahead and put the code on Github anyway?

I’ve been thinking about what I’m going to work on, now I’ve got past Armies on Parade. The last few weeks have been a hobby holiday so I could recharge and avoid burnout, but I’m getting to a point where I can feel a pull towards my workspace again. I’ve had a few ideas kicking around my head, along with several projects I could revisit. In the “revisit” category, I’ve got:

  • Idoneth Deepkin; I have some Eels, a Shark, and a King still waiting to be added to the small army I painted earlier in the year. I also have a few Daughters of Khaine models to add as Allies.
  • Adeptus Custodes; I’ve got a bunch of Custodian Guard built and primed in gold, just waiting for me to get the spark of inspiration again. Then I’ve got some bikes, Terminators, and a Dreadnought to build.
  • Adepta Sororitas; at the end of last year I picked up some of the old metal Sisters of Battle sculpts, which I planned to be a companion to the Custodes. With the beta Codex coming in Chapter Approved next month, it might be time to get them back on the painting table.
  • Dark Angels; I’ve been slowly chipping away at the mass of non-Primaris Space Marine kits I have stockpiled over the years by painting them as Dark Angels. I painted a couple of 5-man Tactical squads and Razorbacks last year, and it might be time to finish these to the point they’re usable on the table.
  • Alpha Legion/Deathwatch; I had an idea when Kill Team came out, that I would create a highly customised Alpha Legion warband, using Primaris bodies and the Deathwatch rules. I made a start, but Armies on Parade ended up being more work than I’d anticipated. A lot of the kits I’d acquired for this project ended up going into the Armies on Parade project as well.
  • Death Spectres; I still have plans to expand the army I started in Armies on Parade. I want to fill out at least a battalions-worth of models, so this project needs another troop choice and HQ to reach that goal.

None of these are particularly grabbing me right now. The most likely to get worked on are actually the Dark Angels, as my local GW store is looking for 1000 points of Dark Angels to display in their cabinets. By painting up three Ravenwing units I already have, I could get to that target pretty easily. But I just finished painting a bunch of black-armoured Space Marines, so I can feel my brain resisting.

Over on the new ideas side, there are:

  • Stormcast Eternals.
  • Nighthaunt.
  • Imperial Knights.
  • Various “competition pieces.”

At the moment, I’m leaning very heavily to Knights. I have accumulated three kits over the years, but have never got around to doing anything with them. The thought of having a “grab and go” army of just three-five models definitely appeals to me, and painting such large models would be a great change of pace. I’m in two minds whether I’d want to go with the fairly realistic, heavily weathered style I often apply to large vehicles – or to go with something simpler and cleaner. I’d also like to do some minor conversions and reposing, but I don’t know if that’s just setting myself up for a lot more work than I’m looking for.

Both of the Stormcasts and Nighthaunt ideas are really just painting the lovely models from the Soul Wars box. I’ve had an idea for applying more of a heraldic look to the Stormcasts, but I haven’t nailed down all of the details yet. I might save them for Armies on Parade 2019.

Competition entries is as it sounds. I have at least two competitions pencilled in for the next nine months, and it might be a good idea to make a start on these. I have one firm idea for the second contest, that will take quite a lot of effort, and a couple of secondary ideas where I know what I want to paint, just not how. I might start chipping away at my most developed idea, and leave the others for now. There’s also a themed monthly competition that happens in my area, so sometimes I’ll want to take part at those.

So as you can see, I’ve got a lot of choice! In fact, it’s too much choice, really, and choice paralysis has been kicking in something fierce. At this point I’m 80% sure I’ll start on some the Knights, as those seem like win-win: clearing something from my backlog, and being a viable army with only a few models needed.

But as any GW hobbyist knows, there’s always something new and shiny on the horizon to distract us…!

I don’t know what this is, beyond a “Spindle Drone” from the upcoming Warhammer Quest: Blackstone Fortress game, but it sure has got me interested and excited to find out more! In 25 years, I can’t recall ever before seeing or reading about anything like it in the Warhammer 40,000 lore.

https://www.warhammer-community.com/wp-content/uploads/2018/10/BlackstonePreview-Nov1-Content1jvfr.jpg

Given the setting of the game, and some of the teases, it seems likely it’s tied to either the Eldar/Old Ones or the Necrontyr/C’Tan. But the legs and the curves of the armour remind me more of the Tyranids than anything else, despite it appearing to be (entirely?) mechanical.

Blackstone Fortress should be out by the end of November, so it shouldn’t be too long before we get some answers.

There’s a point, approximately five hours or so into Assassin’s Creed: Odyssey, where you realise “this game is vast.” By then, you’ll probably have followed through the introductory quests on Kephallonia, got a handle on the basics of combat, levelled up a bit, and unlocked a couple of abilities; the title screen is finally shown, and suddenly the world really opens up.

img_0946

I should note right up front that I’ve not finished Odyssey yet. In fact, I have the feeling I’m about half-way through the main story (maybe two-thirds, at a push), and even less through the supporting and side quests — even though I’ve invested around 67 hours into the game at this point. The rest of this post will be as spoiler-free as possible, but if you don’t want to risk it, assume it contains light spoilers.

With the caveat that I haven’t yet seen everything Odyssey has to offer, I feel comfortable in saying it’s my new favourite Assassin’s Creed game, and it’s definitely in the running for my favourite game I’ve played this year. The story doesn’t have the immediate emotional depth of God of War (so far), but it’s wider ranging and isn’t as linearly told. Kassandra is that rare video game protagonist: simultaneously complex, consistent, likeable, vulnerable, and emotionally well rounded. Sure of herself, but unsure of her place in the world. Fiery and righteous (and violent) when she needs to be, but warm and kind at her core.

I’ll mention Kassandra exclusively throughout this post, even though there is an option to play as Alexios. I tried a little bit of the game as Alexios, but just didn’t connect with him anywhere near as much. As far as I’m concerned, Kassandra is the “canonical” way to play Odyssey, with Alexios providing a mirror universe “what-if?” imagining. I just can’t imagine any of the emotional beats of the story I’ve experienced having anywhere near the same depth or impact when played as Alexios. Maybe I’ll be proved wrong during a later play-through, but for now, my recommendation is to play Odyssey for the first time as Kassandra. Much of the credit for this goes to the voice acting and scripting, which for Kassandra has been superb.

img_0947

Part of that connection with Kassandra might also come from the addition of dialogue options, something I hadn’t expected to make as much difference as they have to my enjoyment of the game. Earlier games in the series (with the possible exception of last year’s Origins, which I haven’t played yet) were fairly linear Action/Adventure games. For most of them the only choices you had were which secondary weapons to equip, and which side-quests or collectibles to complete.

Odyssey is a full-on RPG, and is all the better for it. Dialogue options actually seem to matter, with many choices having subtle or far-ranging effects further down the line. You’re free to explore the various regions of Ancient Greece at your leisure, completing the main quests at your own pace.

I keep trying to come up with a good comparison for a previous game which has hooked me so completely with the right combination of story, scope, and gameplay, and the game I keep coming back to is Skyrim. I’ve put in multiple hundreds of hours in Skyrim, across more than one platform, and right now I’d be willing to do the same with Odyssey. I’d actually buy a Nintendo Switch if there was a native version of Odyssey available for it.

It’s not just dialogue choices that affect the game. Other actions and choices as you play are made to feel like they matter. At one point I was given two quests by the same doctor NPC. One of those was simple – “go get my notes from X, so I can treat this patient,” while the other was a branching quest that opened up further quests to do at another location, and which offered insight to the main story. Previous RPG experience has taught me to complete all quests before returning to the NPC to turn them all in at once, for optimal gains. Only this time, because I didn’t return immediately after obtaining the notes, and went to the other quest location first – as Kassandra noted in the accompanying cutscene, she decided that was more important – the patient died as a result. At other times NPCs have remarked on whether I managed to complete their quests without killing anyone. Earlier choices are referenced in later interactions, or inform how an NPC reacts to you. Weaken a region by killing soldiers in the course of your quests, and you might find it is conquered by the opposing army whether you take part in the “conquest battle” or not. In short, it feels like the world is reacting and reshaping around Kassandra as she travels through it, and since I noticed this it’s been influencing how I approach certain quests. Instead of simply murdering every guard in sight at a location (the default approach), I’m looking for alternative ways to achieve the objective where appropriate. Murder-fests are still required for some missions.

If I had to “ding” Odyssey for anything, it would be the ship-to-ship combat system… but even then, it’s as much because I’m not very good at it as anything mechanically “bad” in the game itself. I didn’t like the addition of ships in Assassin’s Creed 3, and purposefully skipped Black Flag because of it, so I spent the earlier parts of Odyssey rolling my eyes whenever a quest required me to take to the seas. Non-essential naval side-quests were avoided entirely during the early game. After several upgrades and some necessary practice I’ve started to get the hang of how best to handle the Adrestia, and I’m getting more comfortable with taking part in this part of the game. Time will tell if I can truly enjoy naval exploration and combat as much as the rest of Odyssey.

Apart from travelling to an island for the first time so you can unlock a synchronisation point, enforced ship missions have been relatively few and far between so far. Ship combat is also relatively easy to run from when required. On balance I don’t think it’s enough to really mark down Odyssey for this.

One other, minor, gripe is the resource cost of upgrading gear between levels, particularly if you focus on a particular “build”. Right now I have focussed heavily on Assassination damage, with additional fast adrenaline build-up/regeneration. This has been super fun to play, as it fits my usual RPG play style… but I’m stuck with several pieces of equipment that are several levels below me, as I haven’t been lucky enough to come across anything at my current level that isn’t a relatively big stats downgrade for this build, or would force me into a different build.

So far I haven’t obviously suffered in game because of this, but I suspect at some point I will hit a wall where progression will slow and I’m forced to hunt out new gear or grind for materials to upgrade. You can dismantle unwanted gear for some resources, but it’s rarely enough, and having some spare specialised gear for certain tasks can be useful – the best example I can think of is “X% damage bonus against <faction>” gear for when going into a conquest battle.

img_0972

But both of these are so minor in the grand scheme that is Assassin’s Creed: Odyssey, I really am reaching to find things to “balance” against the glowing praise I have for the rest of the game. If you were on the fence about Odyssey because it’s such a departure from the formula which has defined the rest of the series, then I really do recommend you give it a try. I had thought God of War was a certainty for my “Game of the Year,” but I’m far less certain now.

A few weeks back I caved and bought the Battle for Azeroth expansion for World of Warcraft. No, that’s not why I didn’t blog much in the last 2 weeks of September. Anyway, I played it heavily for the first few days I had it; I leveled my “main” (a Human Protection Paladin) to level 120 very quickly. Surprisingly quickly in fact. I just followed the quest chains, and by the end of my first session I was already at 116 or so. By the end of the weekend I was at 118, and with a couple of hours mid-week, I was at max level. In Legion, using similar play patterns, it took me a couple of weeks to reach 110.

In general, levelling and questing through the new zones has been wonderful. There’s always a new storyline to discover, and the atmosphere of the zones themselves has been amazing. I only fell to my death off the side of that mountain in Drustvar once twice three times.

I’m about halfway through the “free” game time I had for WoW, and I’m probably going to resub for at least another 6 months. A lot has been made on forums/Reddit/YouTube about “Beta for Azeroth” and the general quality of the systems in the expansion, but honestly? I’m having a blast.

Granted, I’m not your usual modern WoW player. I’m more interested in the solo experience and I’m only logging in a couple of times a week at most. The “time-gating” and Azerite armour issues many players are complaining about simply don’t apply to me. I hated World Quests when I first unlocked them in Legion, but for some reason I’m really enjoying them in BfA. I log in, check my map to see what WQs have the best rewards (gear or rep tokens are my targets right now), and knock out 4-8 in short order. If I have time, I then carry on any questlines I’m working on. If a Warfront is open, I’ll jump on the several quests available for that – the rewards and drops have been pretty good for me so far for a handful of “kill 20 of X” quests.

My goals in the game, in rough order right now, are: to get the Pathfinder achivements in Legion and BfA, unlock WoD flying, then start unlocking Allied Races. Whenever I need a break from that I’m experimenting with how far I can get soloing Dungeons and Raids. I went into Legion’s Emerald Nightmare (Normal) with ~ilvl 290 gear and soloed everything upto Ursoc with only a few deaths along the way. Those deaths were mostly on Elerethe, which I put down to unfamiliarity with the mechanics. I can get Ursoc to between 8%-15% remaining health fairly consistently, but I seem to be just short of getting over the finishing line before the debuffs get too much. I’ll try again after a few gear upgrades. I even tried Trial of Valor before that (I had a quest), but – while I was in little danger of dying – the length of time it would take to down the first bosses was impractical. My hands started to cramp up after 15 minutes or so, with me, Hymdall and Hyrja all still above 70%, so I bubble-hearthed out of there.

I’ll get them eventually. It’s just a matter of time.

Marco has updated my favourite iOS podcast app, Overcast, to version 5, which brings a whole host of new features and improvements.

I’d actually  switched away from Overcast for the last few months, as I knew Podcasts were being added natively to WatchOS 5, and figured I better get used to using the Apple app ahead of time. Thankfully, WatchOS 5 added enough extra plumbing under the hood that Overcast could offer many of the features I was looking for on my Watch, so this turned out to be a whole lot of time lost on my part (literally, given Overcast’s “Smart Speed” feature…)

I got an email from BA about this, first thing this morning, but per The Guardian:

British Airways is investigating the theft of customer data from its website and app over a two-week period and has urged customers affected to contact their banks or credit card providers.

The airline said around 380,000 payment cards had been compromised and it had notified the police.

In a statement it said: “The stolen data did not include travel or passport details. From 22.58 BST August 21 2018 until 21.45 BST September 5 2018 inclusive, the personal and financial details of customers making bookings on ba.com and the airline’s app were compromised. The breach has been resolved and our website is working normally.

I’m waiting to hear back from my bank, but I’m a little annoyed that this was the extent of the information BA provided:

Dear Customer,

From 22:58 BST 21 August 2018 until 21:45 BST 5 September 2018 inclusive, the personal and financial details of customers making or changing bookings at ba.com, and on our app were compromised. The stolen data did not include travel or passport information.

The breach has been resolved and our website is working normally.

We’re deeply sorry, but you may have been affected. We recommend that you contact your bank or credit card provider and follow their recommended advice.

We take the protection of your personal information very seriously. Please accept our deepest apologies for the worry and inconvenience that this criminal activity has caused.

Further information can be found at ba.com.

Pretty much just “we’re sorry this happened, and you should contact your bank” but without any helpful advice on what to say to the bank, or even which department is best to speak to. Fraud? Card Services? General Customer Services? Banks aren’t known for their stellar customer service at the best of times, so dumping the responsibility of assuring potentially stressed out customers on what to do next onto the banks seems like an epic case of “slopey shoulders” from BA.