Building a Memex by Andrew Louis

The Memex heads to StrangeLoop

Greetings from the road! The Memex’s developer and a Memex beta user (Max) are heading to Strange Loop 2017, a conference about niche/emerging programming tools and languages.

We’re meandering down to St. Louis, Missouri by way of West Virginia and Tennessee. Along the way, we’ll visit a collapsed bridge, an uncollapsed bridge, a ghost coal town, the Cumberland Gap through the Appalachians, and the Grand Ole Opry.

(http://www.hrg-inc.com/portfolio-item/kinzua-viaduct/)

Strange Loop Conference

A Strange Loop is a term coined by Douglas Hofstadter in Gödel, Escher, Bach, to describe:

a phenomenon in which, whenever movement is made upwards or downwards through the levels of some hierarchical system, the system unexpectedly arrives back where it started.

Some examples: the art of M.C. Escher, works of Bach which use endlessly rising keys, and logical paradoxes.

The conference bearing the term’s name takes place yearly in St. Louis and is full of esoteric, emerging, or hipster programming techniques. Papers We Love, the meetup about academic computer science papers, is also doing a mini conference the day before. Should be a mind-bending week!

As soon as we arrive in St. Louis, I will have to pivot into “cram before deadline” mode because I got selected to do lightning talk!

It should be a pretty good opportunity to get the project in front of the right sort of crowd. Here’s what I’ll be talking about:

Building a Memex - Proposed in 1945, the Memex was supposed to be the ultimate personal database. I’ll tell the story of my decade-long quest to build my own, and about the event-sourced, temporal graph database that powers it.

(Full list of all the lightning talks.)

Fancy queries

Last week, a friend walked into the coffee shop I was working out of and we started catching up. As I was showing him a demo of my Memex, I was secretly a bit embarrassed about not being able to easily show a few of the queries I always talk about verbally.

The Memex’s importing API endpoint takes in data from various services but I rely on background processors to collate the data and create new associations in the graph database. A few of the processors were buggy so I had them turned. This week, I squashed the bugs and I can now easily demo queries like:

This should help with the wow factor when showing people at Strange Loop how the Memex works.

Automigrations

I recently built an auto updating system for the Electron desktop app for OSX. This week, I finished the code that handles updating and migrating the API when required. I start with an array of version numbers that require a migration. When the Electron app is booting, it detects if it’s been updated and checks if the previous version was earlier than any of the versions that requires a migration. If it is, we update the API code (packaged inside Electron), and run a migration script which takes care of any schema changes that might be needed. This lets me roll out updates seamlessly to new users.

As always, if you want to be a Memex guinea pig, shoot me an email!