Dr James Ashford
Blog
Personal Blog
About
Projects
January 28, 2026
You’re Not Distro Hopping, You’re Probably Just Desktop Environment Hopping
November 14, 2025
Changes to my ThinkPad Setup: October 2025
May 12, 2025
My Latest ThinkPad Setup: New Laptop and Distro
May 7, 2025
More Than Just a Title: Rethinking the Value of a PhD
April 22, 2025
For the Love of JavaScript! — Notes from a Python/Go Dev Going Back to the Browser
April 17, 2025
Fun with Bluesky and Websockets
March 11, 2025
Honest Review of ThinkPad X240
February 17, 2025
Solving Word Ladders With Graph Theory
January 22, 2025
Projects
January 8, 2025
Announcing My First Open Source Project: Graphkit
December 11, 2024
Mastering the Bluesky Firehose with Python: A Simple Tutorial
October 30, 2024
Experimenting with Thermal Printing: My Setup, Mishaps, and Tips
October 17, 2024
Raspberry Pi + Receipt Printer = Hours of Fun
April 17, 2024
About Me
March 25, 2024
Finding Peaks in a Dataset and Why It Is Not Straightforward
January 31, 2024
Notes on Crawling Instances on the Known Fediverse
November 1, 2023
Visualising Paper Co-Author Collaboration Networks
August 25, 2023
Analysing the 2023 FIFA Women's World Cup with Graph Theory
August 17, 2023
How to Stream from the Mastodon API via HTTP in Python
July 31, 2023
Your Social Network Is Bigger Than You Think!
June 23, 2023
How to Build a Self-Organising Map (SOM) in Python Step-by-Step
June 2, 2023
How Self-Organising Maps Work: Explained with Graphics
May 12, 2023
Analysing Posts About the #Coronation on Mastodon
April 21, 2023
How to Build Tag Clouds From Mastodon Hashtags
April 14, 2023
The Relationship Between Coding and My Mental Health
March 6, 2023
Linux Software I Use for Data Science Via the Terminal
March 3, 2023
Top 5 Software I Use For Data Science Projects Everyday
February 24, 2023
How to Create Simple Dynamic Graphs in Gephi
February 22, 2023
Finding New Followers on Mastodon Using Python and Network Science
February 20, 2023
How to Import a Network From a Spreadsheet Using Gephi
February 17, 2023
Analysing #ClimateChange and Related Hashtags on Mastodon
February 16, 2023
Modelling Discussion Threads From Mastodon Timelines Using Python and Networkx
February 14, 2023
Building User-Hashtag Co-occurrence Network from Timelines on Mastodon
February 13, 2023
How to Scrape Mastodon Timelines Using Python and Pandas
February 8, 2023
Interacting With REST APIs in Python With 5 Lines of Code
August 2, 2022
Loading Data into Pandas: 5 Tips and Tricks You May or May Not Know
January 28, 2022
Will They Reply? Analysing the Reply Networks of 32 Programming Language Subreddits
January 21, 2022
Creating Reply Networks from Reddit Comment Threads
January 19, 2022
How to Collect Data From Reddit - Introducing PRAW
April 4, 2020
Fun with Forwarding and SSH Tunnelling
January 1, 1