A blog of Python-related topics and code.

DOI to BibTeX

The Digital Object Identifier (DOI) resolution service at exposes an API for retrieving the BibTeX markup for a reference given its DOI. The following Python 3 script takes a DOI on the command line and returns the BibTeX. For example,

Making word wheels

Just a small script to generate word wheel puzzles: run from the command line by giving the any number of letters (central letter first) and redirecting its output to a file. Output is as an SVG file.

The Brachistochrone problem

The Brachistochrone problem asks the question "what is the shape of the curve down which a bead sliding from rest and accelerated by gravity will slip, without friction, from one fixed point, $P_1$ to another $P_2$ in the least time?"

Solving word wheels

The Guardian is one of several newspapers which publish a daily "word wheel" puzzle: eight letters are arranged in a circle around a central letter and the goal is to make as many words as possible including the central letter and using each letter once. The words should be more than 4 letters in length.

Finding anagrams with a trie

A trie is an ordered tree data structure often used to store word lists, for example, for auto-complete applications. Each node in the tree is associated with a letter; the association of nodes with each other (parents, children, grandchildren, etc.) orders the letters into words. For example, the simple dictionary consisting only of the words "bat", "ball", "coo", "cow" and "cowl" could be represented by the trie in the figure below, in which the black circles indicate nodes which represent word terminators.