XaiJu
Andy Matuschak
Andy Matuschak

patreon


Demonstrating a "personal mnemonic medium"

I've spent lots of time this past year thinking about how to use writing to develop ideas over time. Writing is an important part of my research process; those couple hours each morning are often "where the real thinking happens."

Of course, I also use spaced repetition systems to engage more deeply with ideas. But at least until late last year, the two systems were unpleasantly divorced. Existing spaced repetition systems treat prompts as write-once, atomic entities—not smaller parts of a larger whole, meant to evolve over time. So I've been iterating on a system connecting the two, creating a sort of "personal mnemonic medium."

In this system, the walls between SRS and static notes are removed, and one can fluidly write both simultaneously. The mental model is not that we "import" prompts from notes but rather that the prompts are in the notes, and the SRS displays them by-reference.

Writing prompts while writing notes has an interesting effect on the way I think when writing notes: framing ideas as questions (particularly questions which can work out of context) often requires more incisive understanding. I've only been writing in this way for about half a year, so I barely understand this medium—but it's certainly fascinating.

This video demonstrates my latest iteration, in which Orbit scans on-disk files for embedded prompts and tracks changes over time. Incidentally, though I don't demonstrate it, once the desktop Orbit has seen those prompts, they'll be available in the mobile and web experiences as well.

Note that like last time, the Orbit interface itself is very much a placeholder! I've been focused on infrastructure. One important missing element is provenance: I've found it's very important with this type of prompt to display the title (and a link) to the note it came from. That's extracted but not displayed in this demo. Art direction and more careful information architecture to come…

Demonstrating a "personal mnemonic medium"

Comments

> you mention that the source can be any file on disk, so have you decided on a format for the notes? At the moment, I parse them from plaintext using a fairly simple syntax. I expect the format will evolve as people experiment. Orbit itself doesn't have tags and organizational schemes. I hope we can go pretty far by using the schemes of the "parent" content. So when content's imported from a note, a link to that note is displayed in the interface. If tags become meaningful in Orbit (e.g. for creating special types of sessions), my inclination would probably be to draw them from the note files.

Andy Matuschak

Catching up on the backlog of your updates and had a question in watching this: you mention that the source can be any file on disk, so have you decided on a format for the notes? Will there be tags and organizational methods inside of orbit, or are all prompts equal in the view of the system? I ask as I'm interested if this kind of metadata (think tags, or descriptions) could be generated at prompt creation time rather than later in orbit.

I can see one day these q and a prompts being generated automatically by AI.

The OS level prompt idea over notes makes a ton of sense to me.

It looks like you are making great progress!

James Cham

Yes, hopefully this summer. See the last few posts here for more!

Andy Matuschak

Sorry if this been asked and answered before . Is Orbit something you plan to release?

SIM KIM SIA

Sorry, yeah, the first couple words got cut off, but they were really just throat-clearing, so I decided to just keep it instead of re-recording. You're not missing anything!

Andy Matuschak

Thanks so much for sharing this! When I see the video, it sounds like you're starting mid-sentence. Was that intentional, or was some of the video accidentally edited out? (What I see on YouTube is a clip that lasts 2:14)

Might I recommend the CRAPL? http://matt.might.net/articles/crapl/ The "guilt free academic license". Matt MIght had an office one floor down from me and I missed the opportunity to really connect with him. He spent a lot of time thinking about these sorts of things before he got distracted saving the world from genetic diseases.

I'll probably eventually offer a strategy which writes stable identifiers back into the source files (hence allowing edits without losing prompt state), but there are many difficult complications with that route.

Andy Matuschak

For now, the primary strategy is content-addressing, IPFS-style. This is very convenient for initial authorship and because it avoids polluting your notes with various machine identifiers, but it does make editing more onerous. Orbit won't let you edit these notes within Orbit: the edit action will simply open the source note in its original context. If you modify one of these prompts, Orbit will forget your state.

Andy Matuschak

Yes, and I think I'd like to do that more. One recent example is https://github.com/andymatuschak/note-link-janitor. I've experimented with sharing two other recent projects with others, but with net-negative results: I hadn't tidied them up for distribution, so a couple people wasted hours trying (and failing) to get them set up, and then I felt guilty about it, but also didn't feel like spending the extra time to make it happen. Still trying to find the balance here…

Andy Matuschak

Exciting! How are you assigning and storing flashcards IDs? If I edit the prompt from that flashcard program, will it update back in my original note?

Jason Benn

Would you ever consider making public orphaned pieces of software? Fragments of code to play with something like this? Almost like a starting point for other people to play? I know you have expressed resistance to this idea in the past because it ties you to a particular implementation. But I genuinely mean simply a snapshot of code for something raw like this. You could even just host it as a zip file instead of a git repository to drive home the point that it is an orphaned piece of code, an artifact that just popped off.

Yes! Love this, especially that it's outside of any one application/don't need to manually import things in an app. The neat freak in me is wondering whether I'd prefer a way to hide the markup in the text I want to add to Orbits (so that {} doesn't show up in Bear notes, for example).

Right, totally. I'm excited about that. Creating Orbit from an "API-first" angle has been a really important change in perspective. Indeed, the filesystem-based integration just feeds into APIs you can call yourself if you like.

Andy Matuschak

(What I appreciate about generic interfaces is that they’d allow me to extend your project with totally custom sources—e.g. I’ve been wondering if having an RSS feed piped into a spaced repetition system could make my lizard brain more excited to go through a SR session—or whether that’s really just distracting. A file-system based interface will allow others to experiment with such approaches!)


More Creators