An Easy Guide To BlueSky Verification


Change Handle screen.

The new Twitter-Wannabe BlueSky has an interesting approach to verifying accounts. Rather than you sending in your passport, or paying a 3rd party, or bribing an employee - you can self-verify for free! This opens up verification to small organisations, individuals, and anyone who wants to prove who they are. Brilliant! Verification means that your @username will change to @Your.Website.com - this means that everyone can see your BlueSky account is owned by that specific website. When you…

Continue reading →

Importing IntenseDebate Comment XML into Commentics


The Logo for WordPress.

This is ridiculously niche. If this is of help to anyone other than to me... please shout! The IntenseDebate comment system is slowly dying. It hasn't received any updates from Automattic for years. Recently it stopped being able to let users submit new comments. So I've switched to Commentics which is a self-hosted PHP / MySQL comment system. It's lightweight, pretty good at respecting users' privacy, and very customisable. But it doesn't let you easily import comments. Here's how I fixed…

Continue reading →

How to make the Watchy vibrate


Watch with a big USB cable plugged in.

I am enjoying playing with the eInk Watchy. It is a cute package and is everything I want in a Smart-Watch; geeky, long battery life, and not obnoxious. But - fuck me! - the documentation is atrocious! Well, that's a lie. There is no documentation. It has the "Chat to us on Discord" anti-pattern that infects so many otherwise great projects. So I'm left to figure out how to make the Watchy's haptics work. The example watchfaces have a file called settings.h which contains .vibrateOClock =…

Continue reading →

Getting Started with Mastodon's Conversations API


A threaded conversation. You can see the order in which people have replied to each other - and what posts they are referencing.

The social network service "Mastodon" allows people to publish posts. People can reply to those posts. Other people can reply to those replies - and so on. What does that look like in the API? Here's a quick guide to the concepts you need to know - and some code to help you visualise conversations. When you scroll through the website, you normally see a list of replies. It looks like this: Because it acts as a one-dimensional list, there's no easy way to figure out which post someone is…

Continue reading →

How to search Mastodon by date & time


The Mastodon logo. It sort of looks like a smiling elephant.

Two years ago to the day, I built Twistory - a service for seeing what you posted on Twitter on this day in previous years. If you've ever used Facebook, you'll know how it is supposed to work. You see posts which show that exactly 5 years ago you were starting a new job, 6 years ago you were at a wedding, etc. The Twitter version never really worked properly because the Twitter API doesn't support searching for historic Tweets. What I had to do was manually build search queries like:…

Continue reading →

A quick (and silly) way to create generative avatars


I was asked to help create some pseudo-NFT style avatars for Cambridge Digital Humanities' Faust Shop project. Something with vaguely the same æsthetic as those daft "Crypto Punks". You can see it in action partway through this TikTok video. @cambridgeuniversity Visit the #Faust Shop and see what happens when you make a deal with your digital double. #Devil #EduTok #Cambridge #Performance #Philosophy ♬ original sound - Cambridge University Here are some examples of the types of av…

Continue reading →

How to migrate Google For Your Domain to normal Gmail


The Gmail icon.

Google has decided to fuck over its early adopters. Way back in 2006, Google announced Google Apps for Your Domain. Basically it was Gmail - but you could use your own domain. No more [email protected] now you could be [email protected]. Hurrah! At the time, they said: organizations that sign up during the beta period will not ever have to pay for users accepted during that period (provided Google continues to offer the service). Google still offers the service - since renamed G-Suite, then…

Continue reading →

Turning an eInk screen into a monochrome art gallery


Previously on Terence Eden's Blog: I turned an old eReader into an Information Screen. This time, I'm taking a different Nook, and turning it into a magic gallery. Here's what it looks like in action: Terence Eden is on Mastodon@edentUpcycled an old eReader into an art frame.Displays a new black & white piece of art from Flickr every few minutes.Full write-up this weekend, but pretty straightforward to do. pic.x.com/ttvrbhz3ee❤️ 137💬 14🔁 021:20 - Wed 22 September 2021 Video With the front l…

Continue reading →

Animated TreeMaps in R - the hard way


A treemap which show a volumetric view of data.

As I am a bear of very little brain, these are notes to myself on my slightly shonky process for creating animated TreeMaps in R. The aim is to end up with something like this: https://shkspr.mobi/blog/wp-content/uploads/2021/06/animated-tree-map.mp4 Generate the images Getting the data is left as an exercise for the reader (sorry!). This loops through the data and generates a separate image for each TreeMap: for(week in weeks) { weekly_data <- subset(file_data, Week == week) size…

Continue reading →

Quick and Dirty Self-Hosted Alexa Skills (2019)


I hate creating Alexa skills. What should be a 3-click process inevitably ends up requiring trips to multiple websites, to set up weird parameters, and reading outdated tutorials for obsolete libraries. So this is how to create a self-hosted Skill, using PHP. It runs on your own server and doesn't require any interaction. The Skill At a basic level, all your website has to do is spit out a piece of JSON for Alexa to read out. // Set the correct header for JSON data header('Content-Type:…

Continue reading →

Adjusting timestamps on images with Python


A cute penguin.

As ever, mostly notes to myself. I have a bunch of old images which don't have any timestamp associated with them. This quick Python script will add a DateTime EXIF metadata tag to an image. This uses piexif which can be installed using pip install piexif This simple script reads a photo, adds a timestamp, then saves a copy of the new photo. from PIL import Image from PIL.ExifTags import TAGS import piexif from datetime import datetime im = Image.open("test.jpg") exif_dict =…

Continue reading →

Easy Tutorial For Getting Twitter Friends Using Python & Tweepy


Here's a very simple introduction to getting started with Tweepy - a Python program which lets you access Twitter. This will work on small computers like the Raspberry Pi. Everything here takes place in the Terminal on the Command Line. This should work on Windows and Mac - but I'm using Linux. Get Python Open your terminal or command prompt. Type python You should see something like: Python 2.7.9 (default, Dec 28 2016, 18:26:44) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits"…

Continue reading →