Skip to content

Instantly share code, notes, and snippets.


Leigh Dodds ldodds

View GitHub Profile
ldodds /
Last active May 4, 2022
How to make your own Xanadu demo

Twitter informed that a demo of Xanadu had launched, so I went to have a look. The demo only works in Firefox and it seems to be a cut down version of demos that I've seen Ted Nelson give in the past. But still: running code in the wild.

I met Ted Nelson once when we both spoke at an STM Innovations conference in 2006. I suspect he wouldn't have agreed with my much of my talk which looked at the web as a hypertext system and compared it with earlier approaches. My point of view was that we could bring those features back into the web by creating new services and by exploiting Javascript and web browsers to upgrade our experience of using the web. Evolution doesn't need to happen in a coordinated centralised way.

(When I say I met Ted Nelson, I meant that I shyly sat next to him at lunch while he expounded on various topics and fiddled with the tape recorder he was using to record all his conversations. So maybe, "met" isn't the right word (he won't

ldodds / land-registry-price-paid.json
Last active Apr 20, 2022
Land Registry Monthly Price Paid Schema (CSV, new version)
View land-registry-price-paid.json
"title": "Land Registry Monthly Price Paid Data",
"description": "Schema for the land registry monthly price-paid data",
"fields": [
"name": "ID",
"description": "Unique transaction code",
"constraints": {
"required": true,
"minLength": 38,
ldodds / stats.rb
Created Dec 29, 2021
Quick script to count number of bookmarks recorded in pinboard
View stats.rb
require 'dotenv/load'
require 'pinboard'
require 'csv'
pinboard = => ENV["PINBOARD_TOKEN"])"stats.csv", "w") do |csv|
csv << ["YEAR", "POSTS", "VIA_POCKET"]
#I started social bookmarking in 2004 using, then pinboard from May 2013
#started logging read articles in Pocket to pinboard via IFTTT in mid-2018
ldodds / custom.jsonld
Last active Jun 3, 2021
Example of a simple custom JSON-LD context
View custom.jsonld
"label":"This is the label"
ldodds /
Last active Jan 27, 2021
Meteostat Interpolation Notes

Code for the hourly endpoints in Meteostat API can be found here:

Overall Flow

After initially accepting the request, connecting to the database, parsing parameters, etc. The bulk of work is done in the Fetch method.

This does the following, focusing only on temperatures:

  • parse the start/end dates, ading supplied timezone
ldodds /
Created May 15, 2013
Summarise dbpedia geographic coverage by reverse geocoding the lat/lng data
# Script to download English dbpedia lat/lng data and produce a
# summary of geographic coverage
# You'll need to have local-geocoder Ruby application installed:
# sudo gem install local-geocoder
View town.txt
ldodds / datapackage.json
Created Dec 2, 2013
Examples of describing a CSV file using a range of formats supported by different tools, including, csv-validator, datapackage.json, and schema.ini
View datapackage.json
"name": "CSV Validation Example",
"resources": [
"name": "Land Registry Example Data",
"path": "../lr-pp-nov-2013.csv",
"format": "csv",
"mediatype": "text/csv",
"encoding": "UTF-8",
"dialect": {
ldodds / osm-missing-benches-openbenches.geojson
Last active Dec 27, 2019
Benches in OpenBenches that are potentially missing in OpenStreetmap. Data published under CC-BY-SA. Generated on 27/12/2019.
View osm-missing-benches-openbenches.geojson
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.