Personal Development

Using Ruby To Build A Modern Memex!

Using Ruby To Build A Modern Memex!

by Andrew Louis

In the video titled "Using Ruby To Build A Modern Memex!" presented by Andrew Louis at the Keep Ruby Weird 2018 conference, the speaker discusses his personal project—creating a digital Memex inspired by Vannevar Bush's original concept from the 1940s. The Memex was theorized as a device to organize and navigate vast amounts of personal information, allowing users to traverse their memories and data in a meaningful way. Andrew highlights various key points regarding the project's development, including:

  • Historical Context: Andrew begins by explaining Vannevar Bush's contributions, particularly during WWII, when the explosion of information necessitated a better way to manage and make sense of data.
  • The Concept of the Memex: He describes the Memex as a tool that would store books, photos, and research, featuring a unique navigation system that mimicked human thought processes.
  • Personal Motivation: Andrew shares his obsessive habit of saving personal information, from old journals to digital histories, which propelled him to create his version, called MMX.
  • Project Overview: MMX consolidates data from various sources—YouTube history, GitHub interactions, personal notes, travel logs, and even social interactions—allowing Andrew to visualize and search through his experiences effectively.
  • Technological Aspects: He provides a demo showcasing how users can query their data in a graphical format, visualizing connections and associations between different pieces of information.
  • Surprising Discoveries: Andrew discusses how tracking aspects like coffee consumption correlated with productivity, reflecting on the rich context the data provided about his life.
  • Future Aspirations: He concludes by expressing his desire to open-source the project and explore its potential further, advocating for experimentation in technology similar to the quirky approach of the Ruby community.

Overall, Andrew's presentation not only revives interest in the original Memex concept but also illustrates how modern tech can be used to organize and retrieve personal information in an innovative way, echoing the relevance of Bush's ideas today.

00:00:09.320 Cool! Hey everybody, it's nice to be in Austin. My first time here, and I'm having a great time.
00:00:12.360 So I'm Andrew. Pay attention here—my name is Andrew Lewis. If you notice carefully, I'm not wearing a badge, and something happened here.
00:00:19.680 There’s an identity issue somewhere. I think my name is pretty common, and someone thought, 'Oh, Andrew, nobody will notice that one is gone.' So, look around you and if there's someone wearing an Andrew badge, and they're not an Andrew, let me know, because I really want one of these badges.
00:00:31.560 I'm going to be talking about a personal project I've been working on for the last little while. But before I get into it, I'm going to talk about history.
00:00:40.969 Usually, we don't hear too much about history at tech conferences, but I love history and find all kinds of excuses to share it with people.
00:00:51.899 So we're going to start in the 1930s. It started with a person named Vannevar Bush. He was a cool scientist and engineer who worked at MIT in the 30s. He built some of the first analog computers—giant mechanical devices that mostly did calculus. This was a hard problem that required a lot of work, which he automated with mechanical systems.
00:01:05.430 This is an example of one of those devices. The operator on the right is actually tracing the curve, and the integral is calculated mechanically. These were really cool devices. However, he was pressed into management, as happens to many engineers.
00:01:20.450 Then in the 1940s, something big happened that reshaped much of what science and academia looked like—World War II. Everybody got mobilized, and everybody had to play a part in the war. With the war came an explosion of information.
00:01:43.350 New bureaucracies formed, new offices emerged, and new information was flowing out everywhere. Papers, reports, and new scientific findings were being generated at an unprecedented rate. Vannevar Bush’s job during the war was to distill this information, summarize the research, and provide recommendations to the President.
00:01:58.860 He stated we were being buried under our own products, indicating that while science created new ways of generating and sharing information, we lacked the tools to make sense of it and stay on top of the information overload.
00:02:20.250 When the war wrapped up, he put his engineer hat back on and thought about how to solve these problems. In 1945, he wrote an essay titled "As We May Think," describing a dream device that he envisioned to solve these issues.
00:02:31.530 He called it a Memex (short for Memory Extender). This was a device envisioned to store books, records, communications, and photos. Users could navigate it mechanically to find everything they needed.
00:02:50.700 The Memex would have cool additional devices—like a stylus for taking notes, a voice recorder for leaving voice memos, and a camera for adding photos. Yet the most exciting aspect of the Memex was its approach to navigation.
00:03:03.000 Instead of filing information categorically or alphabetically, it would allow users to navigate personal data as a graph, associating information in a way that reflects how the mind connects ideas. As users navigate through data, the trails they create could be saved and later retraced, offering a unique way to revisit information.
00:03:37.800 The problem with the Memex is that it was never built. It remained a conceptual device because Vannevar Bush was busy and never got around to constructing it. When I learned about this concept, it made me really sad.
00:03:50.400 A little about me: I’m an information pack rat. If I come across a piece of information, I save it. That's just a rule I live by. For example, this is my grade five journal, where I started documenting my days. I have report cards from kindergarten, and I save all my movie stubs from over the years, keeping a record of every film I attended.
00:04:09.780 Before Google Maps, I tried to manually track my walks around Toronto. I saved all of my chat logs from high school, despite them not being worth preserving, just because I wanted to possessively save them.
00:04:34.080 With all these services inundating me with personal information that I want to keep, it's becoming a significant problem. I think some obvious solutions could include talking to a therapist. However, that's not what I did. Instead, I decided to use Ruby to tackle this problem.
00:04:46.770 I set out to build MMX, which aims to gather all data, encompassing everything I read or see, my browser history, and digital consumption—like the photos I look at, videos I watch, music, and podcasts. It also tracks my location history from my phone, along with my messaging and social interactions from apps like Slack and email.
00:05:12.540 I also handle soft data—journaling, notes, and annotations. For all these various services, I wrote importers and scrapers to consolidate everything into one place. Now, I’d like to share a little demo of this project.
00:05:40.170 What you're looking at is the main interface, where I have a query for everything I've watched on YouTube. I can search for videos by Ruby, which will show every video on YouTube about Ruby that I’ve viewed.
00:05:58.460 I have the capability to change how the display presents that information. I can also do different queries, such as searching for every repository on GitHub that I've liked.
00:06:12.560 Everything is stored in a graph inspired by the original memex. I can enable graph view to show how everything's organized. In the center is me, representing my personal perspective. We have repositories associated with tags, which allows me to navigate through my personal history with the graph.
00:06:38.970 For example, if I want to search for everything tagged with 'electron', I can do so. The query is updated, showing all the related elements I've engaged with. This powerful search capability allows me to navigate my history this way.
00:07:00.210 I also have my travel history from my phone. Did anyone fly in last night to Austin? If so, you'll remember there were significant thunderstorms in the area. I can look at my travel history, noting that we flew from Toronto to Houston. Our pilot had to make the decision to turn back due to the thunderstorms, which contributed to me feeling tired today, since we had to wait them out.
00:07:35.220 I have a complete record of my travels over the last half-decade. For example, a couple of years ago, I went on a road trip with a friend named Max. We listened to many podcasts and music during our travels.
00:08:03.170 Suppose I want to recall a particular song we enjoyed on that trip. I can search through my records and track what we listened to during our travels, showing all the relevant songs.
00:08:31.440 If I'm trying to remember a podcast that we listened to, I can specifically look for those too. Tracking our shared experiences through the various mediums makes it easy to reflect on those memories.
00:09:00.470 When we arrived at Strange Loop, I was taking notes and looking up related topics concurrently. If I wanted to see my browsing history specifically during the event, I can query to find all the resources viewed while at the Peabody Opera.
00:09:30.000 Again, if I want to narrow my focus to the repositories I considered during that talk, I can find a good log of all the relevant content and notes taken during those sessions.
00:09:55.950 Now, being at a Ruby-themed event, I can search my entire history related to Ruby. This includes browser data and messaging, allowing me to catalog every interaction regarding Ruby.
00:10:26.250 I can even correlate messages on Ruby with my mood, discovering how expressing interest correlates to my emotional state or productivity throughout the day. There’s a fascinating relationship revealed through that data.
00:10:50.489 I also track my coffee consumption to note any correlations. The data shows that generally speaking, more coffee leads to greater productivity. I can visualize consumption visually too, changing parameters to see patterns according to time.
00:11:25.840 This will include the hours of coffee consumption, with predictable increases in intake. I can also track food habits like burritos, representing ways I can link information across various contexts.
00:11:54.450 If I remember reading a book while eating a specific burrito, I can use the map view to search for it, gaining spatial context and visual cues about my experiences. This lets me surface meaningful patterns across time as I recall things.
00:12:25.450 This may sound contrived, as it’s rare to find myself in those scenarios, but when I do seek what seems like a lost memory, I have different strategies to help retrace my steps.
00:12:46.610 So that’s a quick dive into this personal project and its demo. The next part involves going over technical specs, but I'm not going to delve too deeply into that. If anyone is interested, I’ll be presenting a more technical version of this at RubyConf next week.
00:13:10.610 Alternatively, you can come to me after this talk. I love discussing the technical aspects, but for now, I want to focus on something else. Does anyone recognize what's displayed here?
00:13:36.150 It's a Delta Epsilon proof! When I was a new computer science student, these proofs were giving me such a hard time, and I often felt overwhelmed to the point of considering leaving my studies behind.
00:14:05.800 During this period, I started learning about Ruby on Rails. It was a big deal for me because discovering Ruby allowed programming to become fun again, igniting my passion for technology and development.
00:14:31.060 There were so many fresh ideas and a great community, and Ruby brought me back into tech. It reminded me of the importance of the quirky, playful aspects of the Ruby community.
00:14:54.060 Keep Ruby Weird resonates deeply with me, as it keeps me engaged in this industry, and I truly enjoy it.
00:15:10.490 To connect back to the Memex history, it's important to highlight that the Memex itself was also quite quirky and influenced by its creator.
00:15:34.400 Vannevar Bush envisioned the Memex as a strange project, representing a different approach that didn't necessarily aim for perfection. Its form factor was strange, being designed as a personal device that would be smaller yet capable of storing significant amounts of information.
00:16:04.350 During the 1930s, computers looked vastly different than they do today. The term 'computer' often referred to a room full of people working collectively. The Memex, on the other hand, was designed as a smaller, more personal tool.
00:16:31.780 It was also out of sync with the prevailing tech of the time, using microfilm, which had started to become outdated by then. Vannevar Bush worked with what he knew, preferring concepts over specific technologies.
00:17:00.800 He danced into odd territories, like using crystals for data storage and even mind control. Despite the outdated methods, he aimed for the broader vision of what the Memex could achieve for individual users.
00:17:24.700 What’s fascinating is how the Memex was perceived when it was first published. It didn’t reach the tech crowd through major journals but instead appeared in general publications, such as the Atlantic Monthly and Life Magazine—even side-by-side with poetry and light articles.
00:17:48.660 Remarkably, one of the most significant essays in computing history was nestled amongst these general reader articles. Vannevar Bush's Memex concept was never just a technical idea; rather, it blended everyday life with the potential of computing.
00:18:14.690 It can be said that the Memex was just one of many side projects for Vannevar Bush, who had extensive responsibilities in academia, the military, and technology. His attention was split among many ventures, and while he returned to the Memex repeatedly, he never completed it.
00:18:42.170 Yet, despite its unfinished state, the Memex had an outsized impact on subsequent history. Side projects like these are crucial—they represent an opportunity that not everyone has.
00:19:11.650 One of the important takeaways from this process is to make those side projects weird and experimental. As a quick addition, let me show you something I've been working on—a potential next version, combining the Memex with voice technology like Alexa.
00:19:47.700 Let's demonstrate this. I can query, 'When was the last time I was in Texas?' and it works seamlessly. I can also branch out into less direct inquiries, like recalling the last time I saw someone.
00:20:09.300 The responses are based on true data, as it derives from my travels and interactions. I can also explore photos related to discussions with specific people.
00:20:48.630 In the end, I’d like to discuss an activity, like making apologies. For example, I apologize if I seem too eager or creepy. I joked with one of my friends about how this talk might come across.
00:21:05.920 Secondly, I apologize for working on this on the plane and possibly being a tad disruptive to my neighbor. It's for the sake of this presentation.
00:21:19.500 As this long-running personal project has developed, I observe potential business cases. My true interest lies within the experiment itself—discovering how I can put my life into a database, and what that brings about.
00:21:46.680 There’s a concept from Vannevar Bush where as people engage with the Memex, dynamics between themselves and the tool clarify. My project follows this notion, and I find the interplay leads to enlightening results.
00:22:07.620 Playfulness is integral to Ruby. Keeping that playful experimentation going embodies the spirit of this endeavor.
00:22:28.400 Thank you all for listening! If you're curious about more information or want to connect, feel free to reach out or sign up for my upcoming newsletter. I plan on open-sourcing this next year.
00:22:40.780 Wow! I guess as an American, I don’t quite grasp GDPR, but I would be happy to take questions. We have about five minutes for that.
00:22:49.560 If anyone has queries, go ahead!
00:23:15.960 My question revolves around how you input all this data. Do you type into your phone as you go, or is there some form of automated tracking?
00:23:40.175 The majority of data on display comes from automation. The manual entries are more for food and drink segments, and I entered simpler commands using an app on my phone. The rest mainly comes from Twitter likes, browser history, and travel logs automatically generated by my devices.
00:24:06.200 As for speech recognition, I use the web speech API which functions well across popular browsers and its implementation wasn't complex.
00:24:29.179 Furthermore, the graph modeling relationships is central to this project, and it does use Postgres. It’s effective because it provides solid querying capabilities with marking and categorizing to showcase associations.
00:24:57.999 When it comes to monetization or turning this into a product, I want to ensure I don't host people's data directly. I’m designing a system to deploy updates while keeping personal data secure, and a Kickstarter might be in the works for production.
00:25:18.280 Are there any remaining questions? I’d love to answer.
00:25:43.800 What sort of insights have you achieved through all this data?
00:26:13.350 I haven't gained any lightning-strike realizations about my life yet. Most of the correlations seem trivial, and I'm not particularly chasing down deep insights. Instead, the greatest benefit is the ability to search terms and recall all related history quickly.
00:27:00.000 It has fundamentally changed how I navigate my life, offering a rich context that's readily approachable.