5 ms·
Theory / 2 Cents: don't just work on a GUI for spaced repetition cards, invent an open file format for spaced repetition (perhaps an XML plus an schema, or a JS
by emmanueloga_ 6y ago
Theory / 2 Cents: don't just work on a GUI for spaced repetition cards, invent an open file format for spaced repetition (perhaps an XML plus an schema, or a JSON based file format, a subset of HTML or markdown, etc...).
The idea is that you create a file format spec, perhaps even some open source libraries to operate on the file format. And then you sell a really nice GUI for editing that (perhaps a web page, perhaps a mobile app, perhaps both?).
If your format is good people will use it, perhaps create new editors for it: if you have competition on GUIs it means you succeeded :-). Some people may be willing to pay for a hosted version or an app, others will likely host it themselves, I'm sure people would donate to you, the main developer if that was the case.
- tasogare 6y agoI created a file format designed for sharing data in-between language learning apps (JSON based + signature). It’s not released yet but if someone is interested please reply below. It would be great to have software other than mine using it.
- andreaorru 6y agoI'm definitely interested.
- tasogare 6y agoThanks for your interest! I'll edit the spec draft a little more, write a quick big picture explanation and then send you an email.
- tkuichooseyou 6y agoI’m interested as well!
- wkrause 6y agoI would also like to learn more when it is ready
- adsjhdashkj 6y agoI'm interested, though primarily because i'm duplicating the work you're describing - hah. I'm interested in writing two main components: 1. Information storage, with retention / etc. My initial feature scope is likely going to focus on retention (spaced rep) and storage (archiving sources), long term i want to dog food a general purpose knowledge base. 2. Data storage. Unfortunately every time i start working on the schemas for the information storage i end up reinventing so many features of general purpose data storage, like versioning, data deduplication, etc - i end up with a clone of Git :( So i'd love to hear some words of wisdom on this subject. I imagine you - sanely - focus more on #1, but that's not an area i've obsessed about yet too much. This whole topic does interest me though - part of the reason i'm writing the data layer is because i want a git-like behavior to be able to slice other sources of information up with the ease and safety of git. So the idea of information source interop is close to my hear - but the idea of IO with external formats has not been big on my radar. As i make progress with the information side of things, i'll have to keep that in mind. My model embraced self-hosting and i really want to avoid information hostage. So this convo has already been valuable :)
- deleted 6y ago[deleted]
- knubie 6y agoThis is how Mochi[0] works. It exports a .EDN file that describes the cards, decks and review history. There are a few libraries out there that work with the format[2] but no one has adopted the format in their own apps AFAIK. Anki also has an export format but it's not documented. [0] https://mochi.cards/ https://mochi.cards/ [1] https://mochi.cards/faq.html#how-can-i-create-my-own-mochi-files- https://mochi.cards/faq.html#how-can-i-create-my-own-mochi-f... [2] https://github.com/knubie/subs2srs https://github.com/knubie/subs2srs
- DAllison 6y agoThe Anki Database format (.anki2) is documented here: https://github.com/ankidroid/Anki-Android/wiki/Database-Structure https://github.com/ankidroid/Anki-Android/wiki/Database-Stru...
- ape4 6y agoHow about a directory (or zip file) of .txt files for the format of the cards.
- allenu 6y agoAnki does it sort of like this. It's just a zip file but instead of a txt file, it stores cards in a Sqlite database. All the resources are in the same folder. Unfortunately, the data schema is not great (in my opinion) and so it has some limitations on how it can be extended. I'm working on my own flash cards app (see my other comment) and decided to do something similar. I actually want people to create tools to create new decks. I think the ideal is something like what Anki has in Ankiweb, a place to share decks with others.
- andymatuschak 6y agoAgreed. I'm working on a set of specs like this[1] to expand on the mnemonic medium[2][3] work Michael Nielsen and I started last year. I'll be interested to see how the ecosystem evolves… [1] https://www.patreon.com/posts/bringing-ideas-36925173 https://www.patreon.com/posts/bringing-ideas-36925173 (despite the URL, this is an unlocked post describing the high-level concept) [2] https://quantum.country https://quantum.country [3] https://numinous.productions/ttft/ https://numinous.productions/ttft/
- mathnmusic 6y agoHi Andy, Is it possible to see the draft spec for the file format? A standards-based approach sounds great and I'd like to support this in LearnAwesome.org and perhaps contribute in development too?
- andymatuschak 6y ago(for those following the thread, I replied on Twitter: Yes, that’d be great! I want to spend some more time working with authors before formalizing as a spec, but certainly will reach out when things feel less molten. https://twitter.com/nileshtrivedi/status/1287150574480134145 https://twitter.com/nileshtrivedi/status/1287150574480134145)
- mathnmusic 6y agoLove this idea! I had built a widget so that any website anywhere can embed practicable flashcards (like quantum.country) by storing user's progress in localStorage. But the idea of an open file format that can be imported in any app of user's choice would be a better approach. https://github.com/learn-awesome/flashcard https://github.com/learn-awesome/flashcard