June 18, 2017

Improving the onboarding experience

iCal support

I want the Memex to let people search their past and make sense of all the information they’ve come across. One problem I’m going to have is that when new users install the app for the first time, value won’t be demonstrated until a certain amount of time has passed and the importers have gathered a good chunk of data.

It’s important for me to find ways to backfill historical data for users so they’ll see value right away. To this goal, I just finished a prototype of a calendar importer based on the iCal format (available in Google Calendar, most importantly). Calendars for most people are the best record of what a given day was like. Many people even go beyond and use their calendars as a journalling, retroactively filling in events and details; this importer will be especially useful for this type of user.

However, for others (like myself), calendar events are merely aspirational — pencilled-in meetings never happen, events can have fluid times, and attendee/location fields are rarely filled out completely. Thus, importing these calendar events and using the verb attended gives a false sense of certainty, especially stark when they’re placed on a timeline surrounded by other activities that have more accurate data (like geo activity from a phone’s GPS or photos with precise timestamps. A better solution in the long run might be importing calendar events as drafts and provide a good interface for quickly converting some of these into proper items for your life’s timeline.

Contact names for iMessage/SMS

The iMessage/SMS importer is similar to the ical importer in that it will give new users a lot of data right from the start. The importer reads the local database where OSX stores these messages but it only makes available the message body and sender phone number or icloud id. This week, I expanded the importer to read the local Contacts database to get full names that can be collated with message senders. Seeing proper names associated with messages is way less confusing than trying to remember phone numbers of friends. It was also fun to learn about international phone number normalization and if you find yourself having to do this in Ruby/Rails, this is a great gem .


I miss the glory days of RSS and Google Reader and use Feedly to keep the dream alive. I indulged myself by building an importer for the posts I read/fav. Not too many people use RSS readers anymore so this shouldn’t be a priority importer but being able to see my favs laid out like this brings me so much joy:

Docker updates

Slow and steady work on packaging and Dockerizing the backend continues. The biggest amount of outstanding work before I can ship an Electron+Docker beta to users is the setup process for the importers. I’ll have to spend a lot of time this week on the onboarding flows and figure out solutions to things like the oauth problem that I described in last week’s newsletter.

Memex Book Club


I’m about halfway through Who Owns the Future by Jaron Lanier , a book that examines the loss of control over our personal data and how automation is destroying middle class jobs. Our clicks, likes, and annotations are free labour that gets aggregated into incredibly valuable data that helps tech giants automate away middle-class jobs. Lanier’s proposal [SPOILER ALERT!!] is to add a system of microtransactions where money can flow back to us users each time we use a service. This is a pretty good summary .

The idea of microtransactions for content can be traced to another hypertext hero, Ted Nelson who spelled it out as part of his bigger vision . Though people talk about how his ideas of linking content led to the internet, his concept of links (and same with Vannevar Bush’s ideas in the original 1945 Memex) are different in one crucial way: they would have been two-way links instead of the one-way links we have on the internet now. The characteristics of the network would be radically different if content had a way of knowing what other nodes linked to it. Lanier/Nelson’s idea of microtransactions rely on bidirectional linking and it’s hard to imagine how we could reconfigure the internet in such a significant way.

On another note, a theme of these newsletters is how acquiring personal data to import is an uphill battle against big tech giants who don’t want to give it up easily. Lanier argues that this is a side-effect of early net culture thinking that insisted “information just wants to be free”:

And it’s not Facebook’s fault! We, the idealists, insisted that information be demonetized online, which meant that services about information, instead of the information itself, would be the main profit centers. That inevitably meant that “advertising” would become the biggest business in the “open” information economy. But advertising has come to mean that third parties pay to manipulate the online options in front of people from moment to moment. Businesses that don’t rely on advertising must utilize a proprietary channel of some kind, as Apple does, forcing connections between people even more out of the commons, and into company stores. In either case, the commons is made less democratic, not more. To my friends in the “open” Internet movement, I have to ask: What did you think would happen? We in Silicon Valley undermined copyright to make commerce become more about services instead of content: more about our code instead of their files. The inevitable endgame was always that we would lose control of our own personal content, our own files. We haven’t just weakened old-fashioned power mongers. We’ve weakened ourselves.

Memex visits Hamilton

Hamilton is a city of half a million people and it’s less than an hour away from where I’ve lived all my life. Embarrassingly, I only paid it my first visit this week.


I used the great bike sharing system to explore McMaster University and downtown, coworked/hung out with former Torontonians Carsten and Jamie, and then in the evening attended a local tech meetup where I got to do a talk on the Memex. In the past, I’ve started by talking about how the project started as a quantified self experiment to track food intake, etc. For the last few talks I’ve done, I’ve changed the framing by starting with my obsession with archiving/journalling, talking about the feeling of drowning in information and then segueing to the the historical concept of the Memex and my implementation of it. Based on the fewer number of confused questions, I think I’ll stick with this approach rather than talking about things like how I can track how many burritos I’ve eaten in the last ten years.

As always, if you come across any events where I could do a talk or demo of this project, I’d love to hear about it.

Father’s Day

I’m extremely privileged that I both have my dad and have a good relationship with him. Here’s a graph of our minutes spent together, plotted by month.


The thing that gets me when I tally time with people is how little it actually ends up summing up to. Make the time with your loved ones count.

© 2021