When Did I Last? (WDiL)

My electric toothbrush seems to be running out of charge quicker and quicker but is it or am I just misremembering when I last charged it? This is the first world challenge that I set about to change with WDiL!

Introducing When Did I Last? (WDiL)

WDiL aims to help solve those sorts of problems by allowing you to record every time you do something and then see stats on things such as frequency and average interval.

While I have tried to make it very simple it still requires a bit of setup and hosting by you. As part of … Read the rest

Computer Education in Schools Instruction Language (CESIL)

When I first learned programming in about 1978 the school I attended was lucky to have a Research Machines 380Z on which there was the BASIC language. Using this one of the pupils then wrote a CESIL interpreter for their (I guess) O Level project. Other pupils then used this to learn the fundamentals of programming.

Skip forward a few years and I now owned a Sinclair ZX Spectrum having also previously had a ZX81 too. I decided that I would also write a CESIL interpreter this time using Sinclair’s variant of BASIC. Remarkably I still own the sheets of … Read the rest

Overcast Statistics

Podcasts are huge at the moment and they are pretty much all I listen to these days when I am out walking or in the car. I do this by the (mainly) excellent Overcast app. I say mainly because it has a UI that I struggle to find things in. Anywho, the one thing that it lacks (other than an intuitive UI) are decent stats and I really wanted that for my annual Review of the Year posts over on my personal blog.

After a quick DuckDuckGo I found the following post from James Hodgkinson with a Python … Read the rest

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

NOTE: This post is mainly about how I developed the php2Bluesky library. If you are looking for information on using the library in your own code please see here: https://github.com/williamsdb/php2Bluesky/

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 … Read the rest

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

NOTE: This post is mainly about how I developed the php2Bluesky library. If you are looking for information on using the library in your own code please see here: https://github.com/williamsdb/php2Bluesky/

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 … Read the rest

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

NOTE: This post is mainly about how I developed the php2Bluesky library. If you are looking for information on using the library in your own code please see here: https://github.com/williamsdb/php2Bluesky/

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 … Read the rest

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

NOTE: This post is mainly about how I developed the php2Bluesky library. If you are looking for information on using the library in your own code please see here: https://github.com/williamsdb/php2Bluesky/

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 … Read the rest

Posting to Bluesky via the API from PHP – Part One

NOTE: This post is mainly about how I developed the php2Bluesky library. If you are looking for information on using the library in your own code please see here: https://github.com/williamsdb/php2Bluesky/

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, … Read the rest

Sending messages to Pushover from PHP

One of the things that I regularly bake into my own applications is notifications of when things go really bad and need my immediate attention. For this, I use the excellent and simple Pushover service which allows me to send a push notification to my mobile device. In this post, I run through how to set up your application in Pushover and then send a notification via PHP.

Setup Pushover

I am assuming that you have already created your Pushover account. You get a 30-day trial and after that, it is just $5 as a one-off purchase.

From your dashboard … Read the rest

Changing the Default PHP Version in MAMP

When doing any development on my laptop I use the very useful MAMP to give me an xAMP (Apache, MySQL & PHP) environment.

I recently upgraded and found that the free version offers two versions of PHP: 7.4.33 and 8.2.0 which would be fine but my production server is still on 8.1 and so I needed to match that. I could have upgraded to MAMP Pro but £90 just to switch to PHP 8.1 seemed a bit much, although, I do appreciate that by doing so I would be supporting the developers.

Changing the PHP Versions in MAMP Free Edition

Read the rest