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. […]

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 […]

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 […]

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 example@gmail.com now you could be me@example.com. Hurrah! At the time, they said: organizations that sign up during the beta period will […]

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: Upcycled an old eReader into an art frame.Displays a new black & white piece of art from Flickr every few […]

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: Generate the images Getting the data is left as an exercise for the reader (sorry!). This loops through the data […]

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 […]

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, […]

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 […]

Continue reading →

Sort Folders Into Alphabetic Sub-Folders


Scratching my own itch. I have a bunch of directories which I want moved into alphabetic sub-directories. This is handy is you have a bunch of MP3s, books, or other catalogued files. This bash script moves a top level directory (and all the files and subdirectories under it), to a folder based on the (upper-case) […]

Continue reading →