ShiftCam SnapGrip & SnapPod Review

MagSafe has been around for the iPhone since the 12 variants released in 2020 and works incredibly well. I carry this Anker MagSafe power bank with me when I am out and about that snaps onto the back of the phone and gives it a bit of a top-up. Other than power banks I haven’t really seen anyone make much of the iPhone MagSafe.

Enter ShiftCam which does a series of accessories that use Apple’s MagSafe in interesting ways. I am taking a look at the SnapGrip and the SnapPop here.


SnapGrip is a snap-on accessory that adds a … Read the rest

Posting to Bluesky via the API from PHP – Part Five – Putting it all Together

In this series of posts we have looked at:

In this final post we are looking at putting it all together. This includes a worked example plus a complete library of functions that will allow you to easily interact with the Bluesky API.

The Prerequisites

What this project has predominately been about is the correct formatting of the parameters that need to be passed to the Bluesky API. This code does not directly call the API but uses BlueskyApi by Clark Rasmussen to do that.

Here’s … Read the rest

Posting to Bluesky via the API from PHP – Part Four – Link Cards

In this we post we are continuing to look at accessing Bluesky from the API via PHP. Previously we looked at making a connection to Bluesky, posting text, images and handling links and in this post we take a look at Link Cards.

What Even IS a Link Card?

Link Cards are the snippets of a website that is linked to a post that you will no doubt be familiar with seeing elsewhere. Typically, elsewhere these are handled for you but not in Bluesky – here you do all the heavy lifting.

Example of a Link Card

Fetching Details

Read the rest

Posting to Bluesky via the API from PHP – Part Three – Links

So far we have looked at making a connection to Bluesky, posting text and images. In this post I want to look at how links are handled. Unlike X and Mastodon on Bluesky when you post text that includes one or more links these are not parsed and activated. You have to tell Bluesky that you have links in your text and where they are.

Parsing for Links

In order for links to be handled correctly by Bluesky in addition to the text itself you also need to pass an array as part of the parameters giving the start … Read the rest

Posting to Bluesky via the API from PHP – Part Two – Images

In the first of these posts we looked at creating the connection to the Bluesky API and posting a text post. In this second post we are going to extend that out to post images as well as text.

The code posted here are snippets from a larger library of functions that you can drop in and use to post to Bluesky. If some parts look more complex than they need to all will be revealed in the final version.

Uploading Images

In order to post an image to Bluesky you have to take a few steps:

  1. open and ingest
Read the rest

Posting to Bluesky via the API from PHP – Part One

With all the uncertainty surrounding the future of X (née Twitter), I decided to take a look at Bluesky which somewhat ironically has its roots in Twitter where it was started as an internal project. Bluesky is still in beta and is invite-only. I worry about its long-term given that ultimately it too has to make money, something that Twitter has singularly failed to do. None of this, of course, affects the topic today which is posting to Bluesky via the API.

Basic Concepts

The first thing to say is that I am using the following library to actually post … Read the rest

Automatically Restarting Unresponsive MySQL Service

This blog and others that I run are all hosted on a cloud server with MySQL installed locally. Occasionally MySQL becomes unresponsive and I have to login to the server to kick it back into life by restarting msqld.

The most likely reason for MySQL becoming unresponsive is lack of resources so the best solution would be to increase the size of the server – however, that requires money that I don’t want to spend. Therefore, the next best option was to write a script to detect when MySQL was unavailable. Enter mysqladmin.

mysqladmin — A MySQL Server Administration Program

Read the rest

PiHuts Maker Advent Calendar “unboxing” Video 2023

Last year for the first time PiHut released an advent calendar called “The 12 Projects of Codemas!” which included 12 projects based around a Pico covering such things as temperature sensors, switches and the like. I did a series of unboxing and project videos covering their content. I had great fun so I was pleased to see that PiHut have brought them back for this year too.

This time there are not one but two advent calendars to get stuck into. This year alongside “The 12 Projects of Codemas!” is a second one called “Let it Read the rest

Leaving the MacBook at Home

I’ve recently returned from holiday and for the first time in a while, I travelled without a laptop. I wanted to return to the question of whether it was possible to do a trip without one. My requirements while I am away are pretty light: blogging and editing photos to go with the posts – not too much to ask surely?

Heading Out

I left my MacBook Pro at home and in its place I took my iPad Mini, a Bluetooth keyboard with the same footprint as the iPad and a Magic Mouse.

The immediate advantage of this was a … Read the rest

Simple Remote Wake on Lan with Raspberry Pi Zero W

As part of my drive to help the planet, I am trying to use less electricity. We have a Windows machine in the lounge that acts as a Plex media server. This works very well but I realised that it was only being used at certain times of the day, usually in the evenings, meaning that it was running for hours on end unnecessarily. Therefore, the plan was to have the machine automatically turn off each night at midnight when I knew we would definitely not be using it, but what about turning it on?

If I was at home … Read the rest