Tim Sherratt

Sharing recent updates and work-in-progress

Jul 2025

The future of the past... in the present

I’ve been on a bit of a self-archiving binge lately. It started because I needed to cut back some of my web hosting costs, and was looking at ways of bringing together a group of separately hosted Heroku apps onto a single Digital Ocean droplet. While taking stock of my various apps and experiments, I remembered there were some that hadn’t survived earlier migrations – in particular, the future of the past.

The the future of the past was a weird little app built on top of a collection of 40,000 newspaper articles, harvested from Trove, that included the phrase ‘the future’. I created it as part of my Harold White Fellowship at the National Library of Australia in 2012, and told the story of its genesis in my fellowship lecture. In short, I extracted words with the highest TF-IDF values for each year in my dataset, and fell in love with them. The word groupings were so odd and evocative that I felt I had to find some way of sharing them.

The future of the past made words the primary means of navigating the collection of newspaper articles. At first you were presented with a random selection of words, sized according to their TF-IDF values. When you clicked on a word, you limited the results to years in which that word appeared. You kept clicking words until only one year matched. Then you were shown a random selection of words from that year, along with the words you’d followed to get to that point. Once you’d arrived at a year, you could click on words to display the content of articles that contained that word. But you could also make poetry.

Screen capture from the original instance of the future of the past, showing a jumble of words of different sizes in light coloured rectangles. The cpation invites users to 'choose a word...'.

The future of the past gestured towards fridge magnet poetry in its design and odd jumble of words. And when you finally landed on a single year, you could create your own poems by dragging words into the box at the bottom of the screen. Once you were happy with your poem you could share it on Twitter. And people did.

Examples of poems created by Bethany Nowviskie and shared on Twitter.

The most exciting and enjoyable part of the project was watching people create and share their poems. The future of the past even managed to win the ‘Best use of DH for fun’ in the 2012 DH Awards. As I said in my Harold White lecture, I wasn’t really sure what the future of the past was – a discovery interface? a game? a piece of art? But I suppose that’s one of the reasons why I liked it so much.

More examples of poems created using future of the past and shared on Twitter.

When I built the app, I was going through a stage of putting everything in Django. Only later did I realise that Flask was a much more suitable framework for the sort of small, experimental apps I was creating. Django was overkill, and the maintenance demands coupled with hosting issues made it difficult to keep things alive. At some point, the future of the past went dark and it just seemed too hard to get it going again…

But last week I had another look, and decided I could resurrect the app in a more maintenance-friendly form by converting it from Django to Flask, and migrating the data from MySQL to SQLite. Django and Flask are both Python frameworks, so it was mainly a matter of unpacking all the logic in Django’s views, models, and handlers and consolidating it into a couple of simple Flask functions. Fortunately, I managed to find an SQL dump of the original database in the backed-up downloads folder of an old laptop. It took a bit of fiddling, but I got the dumped data loaded into SQLite without too many problems.

I also realised I could use the new database to fix up another app I created during my fellowship – a word frequency browser. It’s just a static HTML page, so I added a couple of JSON APIs to the Flask app so it could access the data.

Both Django and Flask use Jinja2 templates, so I didn’t have to do anything much to the interface of the future of the past. I made sure that all the assets (fonts and javascript) were being loaded from local copies to avoid any future problems and, of course, I had to replace the Twitter integration. I decided to add options to share poems on both Mastodon and Bluesky. Mastodon was a little tricky because you need to know a user’s instance before you can post their toot. There are a number of solutions available, but I went with the pattern documented in this GitHub repository. It’s a little clunky because you need to enter your instance name each time you post, and you might also have to allow pop-ups for it to work properly, but it seems to do the job. I did think about updating some other aspects of the interface, but decided to preserve it in its original 2012 grey-toned glory.

So the future of the past lives again in the present!

Screenshot of the current future of the past interface, including options to share poems on Mastodon and Bluesky.

Create your own poems!