I've just removed categories as a thing from my website. I'm still using tags on all the content, but categories no longer exist. This is for a few reasons:

- categories are not Microformats2 markup-able (as we can't distinguish between tags and categories, it's just `p-category` which we use for tags)
- categories in the site are not currently hierarchical - although they may be defined as such, they're not presented like it
- categories are not any more meaningful than tags, as they're almost always the same, or a reduced set, compared to the tags

So we may as well just remove support for them, as they serve exactly zero purpose.

by Jamie Tanna's profile image Jamie Tanna . Tagged with: (24) .

Correctly using bookmarks (instead of reposts)

As I've embraced indie post types, such as reposts, I've noticed that actually I've been using them wrong.

Looking at it appears I've been conflating a "retweet" on Twitter with a "repost", thinking they were the same. Alas, they are not, and it makes more sense to be a bookmark.

I've since updated the posts using the wrong type and will get things right next time!

by Jamie Tanna's profile image Jamie Tanna . Tagged with: indieweb (23) .

My first impressions with the Pixel 3A

Last week I replaced my OnePlus 3 with a Pixel 3A.

Both Anna ( and I have been thinking about getting a new phone for a while, but as both our phones were doing fairly ok, and we didn't want any unnecessary expenses, we decided to keep an eye out but not yet get anything.

I'd originally heard about the Pixel 3A on the TechMeme Ride Home podcast ( which sounded really nice.

But then when I saw both Ed George ( and Graham Smith ( tweeting about the fact that they had just got one, I was very interested. As respected Android devs, I see them both as having done the research and know what they're doing - so it meant that I didn't have to do as much research, right??

I could've waited, in all fairness, but Google did a deal where you got a Nest Home Hub, too, so it meant the phone was effectively £280 instead of £400, and we all know I love a good deal. Unfortunately that it still in the box, as is the Google Home Mini I've got, but maybe one day they'll make their way out - we're an Alexa household currently, but are looking at being multi-platform.

So what are my opening thoughts, one week in?

- The migration tool was pretty cool, especially being able to just connect up another phone and have it sync, but for some reason my Google Play Store decided not to download anything so that didn't quite work as expected
- I had rooted my OnePlus 3 so I could get better privacy control over my device, but hadn't used much on the rooting side for a while, largely because Google are making it such a pain to do. I decided I wouldn't root this device quite yet, which means I'm able to use Google Pay - which so far I've done a couple of times and it's been pretty useful, but has just saved me getting my wallet out
- Battery is much better than my two year old OnePlus 3, and the second day I had it I was tethering + playing music almost all day without it even running out of charge the following morning. Pretty decent!
- I am however missing some of the convenience gestures I could use from the lock screen - turning the torch on quickly, and controlling my music
- I'm a fan of the always-on display, especially as it prompts me with the upcoming calendar event
- The fast charge seems to be on par with the OnePlus Dash Charge - again a big decided in whether I got it or not, as being able to quickly boost battery was very important
- It has a headphone jack, so I'm happy
- Booting is super speedy - not that I need to that often, but it's good to have!
- I'm liking Android Pie, although I'm sad I no longer have the multitasking button so can't toggle apps as quickly
- I bought an official case, which although a bit pricey was quite nice, and has a good feel to it
- The camera seems to be pretty decent, from the few shots I've taken of our black cat, Morph

Overall it seems to be going well - hopefully it'll last as long as my OnePlus 3!

EDIT: And something I forgot to mention was that the fingerprint sensor isn't in my location. I'm very used to it being where the home button is on my OnePlus 3, and combined with the placement of the headphone jack on top, it means I'll regularly unlock my phone as I'm taking it out of my pocket, which is quite annoying.

EDIT: I also found the way to easily swap between apps is by swiping on the soft touch buttons, left to right. And by holding it for longer I can skip between multiple apps - nice stuff!

by Jamie Tanna's profile image Jamie Tanna . Tagged with: android (1) phone (1) .

Joining PHPMiNDS' organising team

I'm super excited to announce that I'm joining the organising team for !

Trawling back through the group for PHPMiNDS, I found the earliest time I marked myself as attending was November 2016.

I've never been a PHP dev, although I've dabbled for years. But I've always seen it as a great community, and have been attending for most months since then.

Attending tech meetups has always been about bettering myself, and learning more, and the talks at PHPMiNDS can absolutely be applied to my work, despite it being a different tech stack.

Before Shaun had mentioned to me about looking for another pair of hands with organising PHPMiNDS, and after a little bit of time to mull it over I decided I would definitely be interested in getting involved.

I'm really excited to start to help out Adoni ( and Shaun ( with organising the meetup, and I hope continue making it as awesome for others as it has been to me.

by Jamie Tanna's profile image Jamie Tanna . Tagged with: announcement (21) phpminds (4) .

PHPMiNDS May: Running your PHP site on AWS Lambda with Bref

The May edition of the PHPMiNDS meetup, and things I've learnt about porting existing applications to AWS Lambda.

Tonight at we had a talk from Neal ( about and how you can use it to build serverless PHP applications.

Neal spoke about how, although PHP is officially supported in AWS Lambda, the difficulties of getting it running are still quite high, especially the complexities of getting Lambda Layers working.

This is where Bref comes in, which helps you scaffold the application and provide an easier interface for running applications on Lambda.

Neal spoke about how Bref was built to remove choices from you, rather than allow you to make things super configurable, as an opinionated setup is easier to manage and build for.

I was quite impressed with the AWS' Serverless Application Model (SAM) command-line tool and how you can easily spin up your serverless application locally - very cool!

An aside, but an interesting tidbit of info was that AWS charges you for CNAME lookups, opposed to A records which don't cost anything - a good thing to be aware of!

Neal started off by showing us a PHP page running `<?php phpinfo(); ?>`, but noted that it wasn't super impressive. So for something much more exciting, Neal took us through taking an existing application using a PHP framework, and chucked it onto Lambda with Bref, in an *incredibly easy fashion*. I was incredibly bowled over how easy it was. All we needed to do was:

- refer static assets to an S3 bucket/Content Distribution Network, not on the same host as the PHP process
- externalise session stores, as you will most likely hit a different instance of your function
- externalise your file store, i.e. an S3 bucket, as you can't store files long-term in a function's container, which can be done with pre-signed URLs

And now we had a pretty standard PHP app, with an admin backend, working in AWS Lambda. Awesome stuff.

As Neal mentioned, now we're delegating some of these pieces of work to the cloud provider, we can remove a load of code from our application - win-win!

Neal mentioned there are some performance impacts of running Lambdas in an AWS VPC, and how they can be ~10x increase in response times (citing

But Lambda can still make huge differences to your underlying bills - one user of Bref cited that for quite large workloads, they were saving ~25% against EC2.

Neal also mentioned that there has been some work towards getting WordPress running on Lambda, although it's still very much a work in progress.

Although I'm not a PHP dev, it was a great talk, and I can see lots of great things that I can apply to my own projects.

by Jamie Tanna's profile image Jamie Tanna . Tagged with: events (25) phpminds (4) .

Extending to allow for other post types

Announcing support for posting notes to my website.

Welcome to my first! Notes are short-form content that will be purely plain text (for now!) and are similar to tweets on Twitter or toots on Mastodon, but won't be size limited.

I've been wanting to creating other post types since starting to use and having a social feed. I've found that I want to interact with other posts, such as like or repost others' content, much as I would do with Twitter.

Discoverability of notes currently aren't super amazing, but I'm tackling it as part of because adding these post types was a large enough piece of work.

With this note, I'll now be able to,,,, and

RSVPs are an interesting one, because the end goal I want is for my RSVPs to be syndicated from this site to i.e.

I'm hoping to work on bringing support to this site, too, but as it's a static site with and hosted on with a full build/test/deploy pipeline, it'll be a little less straightforward, and slower, than other solutions.

I've designed the content schema to be Micropub-first, as I want to be writing these posts using a Micropub client, rather than my usual workflow. I've made the source files JSON files (which Hugo natively supports) which makes them easily machine writeable - hopefully it'll teach me to prioritise my Micropub support so I don't have to manually write JSON!

In terms of licensing, I'm going to start by them in line with my posts, as, but down the line I may look at other licenses.

by Jamie Tanna's profile image Jamie Tanna . Tagged with: announcement (21) indieweb (23) licensing (3) (24) .