Exobrain, or "second brain", or "brain dump" is something like public wiki where you can keep your bookmarks, notes, ideas and thoughts. Other people can search in your exobrain without having to physically interact with you. The point is not to avoid physical interaction altogether, but to scale collaboration and knowledge exchange with other people.
Years passed, I became a software engineer, and realized just how far we are from all these fancy technologies I wanted. So my aspirations have become more modest, and I've chosen a more realistic and plausible target: using my digital trace (such as browser history, webpage annotations and my personal wiki) to make up for my limited memory.
- Why can't I search over all of my personal chat history with a friend, whether it's ICQ logs from 2005 or Whatsapp logs from 2019? - Why can't I have incremental search over my tweets? Or browser bookmarks? Or over everything I've ever typed/read on the Internet? - Why can't I search across my watched youtube videos, even though most of them have subtitles hence allowing for full text search? - Why do I have to suffer from poor management and design decisions in UI changes, even if the interface is not the main reason I'm using the product? - Why can't I easily share my web or book highlights with a friend? Or just make highlights in select books public?
Typically though, you end up with some JSON/XML from the API, or HTML if you had to scrape. After that, you have a choice: keep it in a databaseThis is what I see some projects doing; I also bruised myself with this approach when I started exporting my data. I want to argue on this point because I feel like an unnecessary use of databases is a source of friction for implementing, and more importantly, maintaining your personal data exports, and restricts you from using your data to the full capacity when you want it.
When I started solving some of these problems for myself, I've noticed a common pattern: the hardest bit is actually getting your data in the first place. It's inherently error-prone and frustrating. But once you have the data in a convenient representation, working with it is pleasant – you get to explore and build instead of fighting with yet another stupid REST API. This package knows how to find data on your filesystem, deserialize it and normalize it to a convenient representation. You have the full power of the programming language to transform the data and do whatever comes to your mind.
