Disclaimer! Work In Progress! See source code. I recently read this wonderful blog post about using 17th Century Dutch fonts on the web. And, because I'm an idiot, I decided to try and build something similar using Shakespeare's first folio as a template. Now, before setting off on a journey, it is worth seeing if anyone else has tried this before. I found David Pustansky's First Folio Font. There's not much info about it, other than it's based on the 1623 folio. It's a nice font, but missing …
Continue reading →
I'm a big fan of Untappd. It's a social drinking app which lets you check in to a beer and rate it. Look, we all need hobbies, mine is drinking cider. You can see a list of everything I've drunk over the 13 last years. Nearly 900 different pints! After checking in, the app automatically posts to Twitter. But who wants to prop up Alan's failing empire? Not me! So here's some quick code to liberate your data and post it elsewhere. There are two ways - APIs and Screen Scraping. API First up,…
Continue reading →
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 →
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 →
I'm doing an apprenticeship MSc in Digital Technology. In the spirit of openness, I'm blogging my research and my assignments. This is my paper from the PP1 module - where I take some CPD related to my profession. I picked Machine Learning in Python. I've blogged about the course itself. The middle two parts of this paper are about that - why I chose it and how I put it into practice. The first and fourth parts are, as far as I can tell, unrelated. We have to write about reflection in the…
Continue reading →
As part of my MSc I'm taking a short course in Practical Machine Learning via QA.com. The first three days were just about basic stats visualisation using Python. It was great to have a refresher - but I would have expected that to be a pre-requisite. The tutor was excellent - very patient at explaining complex concepts. And the use of Jupyter Notebooks is a gamechanger for taught courses like this. Ultimately, it was a useful course - although I expected a lot more time to be spent on…
Continue reading →
Scratching my own itch. I want an alert when there's been a price drop on an item on my Amazon wishlist. I couldn't find an easy way to get an email directly from Amazon (customer-focused my shiny metal arse) so I knocked something up in Python. This is heavily inspired by Leigh Dodds' Wishlist Monitor. Amazon don't offer an API for wishlists (innovative my shiny metal arse). So this uses Beautiful Soup to grab the data from the HTML. To be fair, there's also some microdata on the page, which …
Continue reading →
Way back in 2010, Paul Battley was blogging about device discrimination on the Internet. The new iPlayer service was using TLS certificates to ensure that only specific devices were able to stream media from the BBC's servers. That's a situation which continues over a decade later. If you watch iPlayer on your laptop, you're stuck with 720p quality. If you want 1080p and above, you need a specially certified device. Well, that's what everyone thought! A few weeks ago, I found this curious…
Continue reading →
I recently had cause to take a beginners course in R - a language I'm fairly familiar with. One of the other students had never used it before, so we were buddied up in order for me to show them the ropes. The first lesson of R is always the same. Read a CSV, manipulate it a bit, draw a graph. We did it all without much fuss - and a graph appeared on screen. Nifty! "I don't get it," the student said, "Why wouldn't you just use Excel for this?" To a programmer, it seems obvious - but it's…
Continue reading →
Last year, I blogged about why I make my work calendar public. It is useful to have a public website where people can see if I'm free or busy. But the version I created relied on Google Calendar which, sadly, isn't that great. It doesn't look wonderful, especially on small screens, and is limited to only one calendar feed. So I used the mighty power of Open Source to build my own! https://edent.tel/calendar It uses two cool components. First, the DHTMLX Scheduler tool - a GPL-licensed…
Continue reading →
Many text based conversations threads can be visualised as a tree. This is a follow-up to yesterday's blog post about Twitter conversation trees. Mailing list archives often use nested <ul> to show a conversation. That's fine, but has the major drawback of not being interactive. There's no way to collapse a branch of a tree if you're not interested in that strand of the conversation. Older readers may be familiar with how USENET displayed threads: Younger readers are probably familiar…
Continue reading →
It's quite popular to see high street shops names "Somesuch and Sons". Indeed, my grandparents ran "Eden & Sons" for many year. Much rarer is seeing "... & daughters". But, of course, the plural of anecdote is not data! The UK register of businesses - Companies House - has a pretty good search engine. Doing a search for AND SON returns 220,000 results. We use the singular because that should also match the plural. Instinctively, how many "AND DAUGHTER" businesses do you think they are? …
Continue reading →