I’ve taken the decision to switch my site away from the custom theme called “K” I was building, and for now I’m using the excellent Autonomie by Matthias Pfefferle instead1. Development of K had already slowed to a standstill, and realistically, I’m not going to go back to it anytime soon. It feels a little like a failure, a little like giving up, but I think it’s ultimately the right thing to do.

I made a lot of mistakes while building K, which overcomplicated things, made development more difficult, and ultimately led me into a dead-end. I thought “for simplicity” that I would use the Bootstrap frontend framework, as it would give me a robust foundation to build on. It did, but I had to bend and twist WordPress in increasingly hacky ways to get the output to “play nice.” A large chunk of the K codebase was being taken up by code solely tasked with massaging the output of WordPress to add the right Bootstrap classes or container markup. It felt increasingly fragile and hacky, and it was a bad sign. K would work for my setup, but I couldn’t ensure it would work for everyone.

Bootstrap added other complications: to properly manage my CSS “overrides” I had to create a build system that would compile a whole lot of SASS files together. When I started K, the CSS was stripped down to the bare minimum needed, and came to a few KB. After a while I ended up including the whole Bootstrap framework, just to make the build process easier.

There were no “options” to speak of, so it couldn’t be tailored to suit someone else using the WordPress customiser. I didn’t even want to think about Gutenberg support.

Microformats always felt like whack-a-mole. I’d get them working, then make adjustments somewhere else, and promptly see things break again. I put this on my need to make so many adjustments to the WordPress output – inadvertant issues kept creeping in.

Then there were the visual design choices. K grew out of the simple design I employed when I was writing 1-2 short posts a month, in the traditional format. In that scenario it worked fine. Once I started to use the various post kinds, things became more problematic. Now I was posting several posts per day, most of which weren’t in a traditional blog format. The home page became cluttered; it started to remind me of a badly thought-out notification area, rather than a well designed blog. The archive page was a disaster and I had no good ideas on how to fix it. There were a thousand other little niggles.

None of this is meant as a knock against Bootstrap, or WordPress, or build systems, or any other tool or technology I used to get to this point. K failed because of my decisions, rather than deficiencies in the tools. There were things I liked about K… it used zero JavaScript, and I did my best to stop unnecessary plugin resources from loading. Markup was as minimal as I could make it (within the constraints of what I could remove from WordPress output, microformats, and what Bootstrap needed). It worked well across browsers and devices (thanks Bootstrap!), and the accent colours were fun. I learned a lot about the excellent Post Kinds plugin during the development process. I’m filing it away as a failed experiment, which I’ll learn from and apply the lessons to the IndieWeb WordPress theme I’m still intending to create. One that will hopefully work for more people than just me ?

I put the source code to K on GitHub right back near the start of the project. If you want to take a look, steal any code, rework it into something usable – feel more than welcome to!

1 As a result, a couple of things that were setup specifically for K are broken. I’ll look into fixing those over the next few days. ⤴️

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…)

The first batch of Primaris Space Marines are just about finished, with just a few details and the decals to finish before basing.

One of the choices I had to make was what secondary colours to use for contrasting and spot colours. The main armour is fairly monochromatic, being essentially black and bone-white. The main contrast would come from the gun casing, for which I chose a fairly bright orange. Orange isn’t a colour often seen on Space Marines, so this in itself helps the models stand out. To offset this, purple was added as a spot colour, used  on lenses and purity seals.

I decided these marines would be from the 3rd Company, so red was also added to the palette. Each marine  will get a red trim added to one knee (still to do), and the shield of the Ancient was painted red to match this.

The Lieutenant was given some basic freehand on his tilt-shield, also integrating the red of the company. I’m not happy with the blade of the scythe, so I plan to repaint it.

The Intercessors finally received their helmets. Once the shoulder pads are added, I think these will look quite intimidating on the tabletop!

With the first batch nearing completion, I needed to start preparing the next wave! Needing a break from Intercessors, I decided to build something fun – a Redemptor Dreadnought. This kit was a joy to build, going together in just a few hours. Many of the parts are designed to remain unglued, so they can be reposed. I didn’t bother with this, as it would make things more difficult to paint. A couple of parts are unglued for now so I can paint them seperately.

With the Dreadnought assembled quicker than I thought it would be, I moved on to some Hellblasters. I have to admit I think I prefer this kit to the Intercessors. I might swap some of the bodies around between the two kits.

With these built, I just need to build five more Intercessors and I’ll have everything for Armies on Parade assembled. I might make these from the models found in the 40K starter sets, to add some variety. My plan for the wider army is for each ten-man Intercessor Squad to be half multi-part kit, half “easy to build,” so there is a better mix of poses throughout.

The first of many updates on the progress of painting everything for Armies on Parade.

I finally managed to get hold of a can of Zandri Dust spray, so I was able to finish the base colour of the board. Everything was sprayed lightly from above, leaving the grey showing in recessed and in random areas of the walls and roads. The important thing was to make sure it wasn’t uniform, for a more natural appearance.

As luck would have it, the sun was setting as I took a picture of my progress, giving me this shot of the building glowing in the sunlight:

From the other side, things looked a lot more washed out:

The marines started to get their base coats and initial airbrush highlights.

At first I wasn’t too happy with how things were looking, but after sleeping on things, and adding in a few more highlights to the characters, and spots of other colours, I’ve come around to how they look.

I’ll be giving them an all over wash of black ink, to give more shading, contrast, and richness to the colour. That should help a lot, even before I add the remaining “main” colours.

Over the weekend I plan to build the remaining marines (5 Intercessors, plus 5 Hellblasters), and the Dreadnought. If I can get the black armour finished on everything in the next few days, it frees me up to concentrate on other details and finishing the board.

Only 36 days to go!

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.

Krebs on Security recently wrote about investigations into the wave of extortion spam doing the rounds. As chance would have it, I recently started receiving these emails myself. I’ve had three, so far, over the last week or so. All from the same @yahoo.jp email address (obviously not the real origin), and all with slight variations on the same message, and a unique Bitcoin wallet each time. For example:

These are the first few mail systems used by the most recent message, before the message reaches my own setup:

Interesting things to note:

  • The password given must be from the Tesco data breach – I remember that one as their sign-up form cut off part of the password I had typed in – I don’t remember being a Tesco Bank customer, but I have used their online grocery store, and I assume it’s all the same login system.
  • The amount they want paid has decreased over time – it started at $3000, the most recent email is $1000
  • Similarly, the number of friends they threaten to send their “recording” to has gone from 9 to 5. Perhaps the scammer is testing at what “level” they get the most returns?
  • The English is good, but not quite native-speaker level.

Given I already know this is a scam (and I don’t even have a webcam attached to my PC, for another thing… ?), I’m not exactly a prime “mark” for this. But I can easily see how some less clued-up person could be scared into handing over their savings.

[Addendum] – as I’ve been writing this, a fourth email has arrived. Same sender, same basic message, but this time asking for $5000, and threatening to send to 14 friends.

Update:- I added some of the mail headers to the post, for a bit more information.