Hacker News new | ask | show | jobs
by AndreRauh 3049 days ago
Founder here. Note: This is spaced repetition. I bootstrapped this over the past 1 1/2 years.

A few key differences:

- A central DB (it has over 1.8M flash cards) which anybody can edit. Card owner can accept/reject the change request.

- Courses are just references to flash cards, nothing else.

- You decide what you want to learn "Display me field X,Y,Z and prompt me to enter field 'A'. You can choose any field/audio)

- Efficiently add bulk audio to a course

- A super fast UI (it's an SPA)

I have a few ideas for premium which (as far as I know) would bring features that don't exist yet for any spaced repetition platform:

- Prioritized learning (learn the most pressing ones)

- In advance learning (You'll be gone for the weekend, but it's Friday and you have 1h time: You can prelearn "long term" flash cards that'd come around over the weekend).

Also for some tech background: Frontend is pure Clojurescript + Datascript. Backend is Clojure, Cassandra, Datomic, Elasticsearch. I'd use the tech stack again, hands down.

The best introduction is the video at the bottom of the landing page it show all the features. There are only few courses right now so early adopters should (hopefully) be willing to create their own courses.

Questions welcome.

15 comments

Hopefully my use case is useful to you.

I'm a heavy user of Duolingo. Been trying to teach myself Russian for the past 2-3 years. Almost use it on daily bases (I have missed a few days here and there by accident or when I had no connection). Usually my repeat usage is anywhere from 20 days to now 143 consecutive days. My biggest frustration with Duolingo (Russian language) is that none of the grammar rules are explained. So even thought I'm able to repeat something, it's only after I google variations of a verb or a noun and the grammar case, is when I get the answer why something is, for example, ending in a "e", etc.

I have not paid the premium fee for Duolingo. Mainly because the premium adds no value to my learning. I've spent over $100-150 on Russian books from grammar to vocabulary.

If Duolingo added more grammar explanation for premium price, I would pay for that.

It takes Duolingo a few years to roll out a new language. It's hard to do it in-house. And still, with Russian language, they don't have all the grammar hints that exist on other languages like French (I've been told, French has it).

My view is, why not turn Duolingo into a marketplace and let other language expert create additional educational material to augment the lessons and let them sell it to me and follow the Apple's revenue share model. Perhaps a specific lesson might have 3-4 additional learning modules that I can buy from different providers. Each module has a star-rating (you can filter out the fake stars by how often someone is using Duolingo). Also once I find one provider's way of explaining, I'll look for more teaching modules from them.

My point is, if you can look into Udemy and how they turned their video system into a paid learning platform, you might come up with a premium model for your business.

Good luck!

Are you using Duolingo on iOS, Android, or a computer?

My wife has used all three, and says that grammar explanations are not on iOS and is on the other 2 platforms. She also believes that the explanations make us feel good, but don't actually help. (Then again she's using it to learn Polish and already knows Russian. So the grammar rules are pretty close to what she already knows.)

Plus there are some natural language rules that are just a mass of exceptions. For example try to explain to a non-native speaker why you ride in a car and on a bus.

And furthermore, most native speakers don't know their own grammar rules. For example why do we say "big red truck" and not "red big truck"? Odds are that you've never been taught this order, but you do it correctly:

    Quantity or number
    Quality or opinion
    Size
    Age
    Shape
    Color
    Proper adjective (often nationality, other place of origin, or material)
    Purpose or qualifier
I use it on iOS. So, for me the explanations really help. Because I understand the rules after seeing a few examples and the rules help me grasp it easier or see something subtle that I may have missed. Especially important in Russian.

But I can see it in a case where if you come from a language that has some grammatical overlap with Russian. It may not be as helpful, because she already has a mental language mapping for it. For English speakers or languages that some of these concepts are not native, it's quiet hard.

I do agree many native speakers do not know the rules. But they'e not the ones who would be creating the additional teaching modules. I'm sure there are plenty of Russian teachers who would love to make side money teaching Russian to non-native speakers and create explanation material.

I use Duolingo premium on android and PC and I haven't seen the grammar blurbs on the android app either, maybe I just don't know how to access them. They're not very high quality anyway in my experience (for the portuguese course) so I didn't miss them too much. I use other sources to learn the grammar. Actually the more I progress the more I end up preferring memrise, it's much better for drilling vocabulary and the phrases it teaches you are more practical than Duolingo's "my uncle spoke to the tiger".

>Plus there are some natural language rules that are just a mass of exceptions. For example try to explain to a non-native speaker why you ride in a car and on a bus.

Some grammar and syntax is more important than other. If I told you "I rode in a bus" I'm sure you'll get immediately what I said. If on the other hand I told you "I rided on a bus" it might make you pause to process what I meant. Learning all the rules of a language is generally a daunting task but getting the basics right can save you a lot of time and trouble. When are you supposed to use the preterite and when the present perfect? What's the difference between "I will do it" and "I'm going to do it"? Etc...

>And furthermore, most native speakers don't know their own grammar rules.

Sure, in the same way that I never wonder when I'm supposed to use the subjunctive or about the gender of nouns when I speak my native french while a foreigner could struggle with that. I don't think it means that grammar courses are not hugely important when you learn a foreign language.

Learning one's mother tongue by being completely immersed in it 24/7 for years as a child and learning a foreign language as an adult in a few hours per week is hardly comparable. If you want to maximize your result you should learn the basics of the grammar instead of going entirely by trial and error like a child would do.

Furthermore as an adult you're more likely to require the use of complex and diverse concepts because you're not actually a 3 year old child. That means that you need to be able to actually "invent" new phrases that are not like any you've encountered before. "I've been asked to get the blueprints and bring them to the 3rd floor, could you tell me where they are?". Eventually as you become fluent the rules fade and you get a more intuitive grasp of the language.

FYI, if you are interested in the gramatical explanation of a level, you could log into the web version of Duolingo (your same account will work) and they are all there for many languages, as well as several other features (depending on the language) such as a full dictionary of words you've studied, and each has its own "health bar". There are also flash cards although now Duolingo has a separate app for that called TinyCards.

I'm not affiliated with them in any way but with the number of people I've convinced to use it, I should be getting commission.

One of my complaints on DuoLingo was that there was no Russian, I am glad thay added it. I am learning Spanish and could use some grammar explanation for sure.
The following advice is based on the assumption that you want to eventually acquire both adult level fluency and adult level proficiency in your second language. If you do not, then it's a whole other conversation. Having learned Japanese late in life, and also taught English as a second language professionally for 5 years, my advice is -- don't bother with grammar explanations. Instead of using Duolingo, read books.

There is nothing inherently wrong with learning grammar (and if you want to, I recommend reading grammar books in your target language). However, it is unnecessary. Memorising grammar rules will especially lead you down the road of approaching language like a recipe. The problem with grammar rules is that there are a lot of sentences that are grammatically correct from a prescriptive sense, but that are idiomatically impossible to understand.

Programs like Duolino are nice because the give you vocabulary in the context of sentences. However, you'll never get very much beyond basic sentence construction because you don't have the larger context. You don't know when to use one phrase and when to use another. You don't know the situations where idioms naturally pop up. You don't know how to organise your thoughts and to express them in the target language as opposed to translating your English ideas.

It's really funny, but when I read a Natsume Souseki book, I can't help but think how similar a writer he is to Dickens, and yet if I try to translate his writing to English it ends up incredibly dry and uninteresting. The charm of it is the expression in Japanese. Especially because Japanese and English are nothing alike, I find that I can't speak Japanese fluently unless I abandon English.

The thing that makes people worry is that they think that their second language is not good enough to become fluent. It's important to understand that fluency and proficiency are different things. Children are not at all proficient in their native languages -- especially 3 or 4 year olds are awful. But they are very fluent. With 2-3 years of Russian, you will also be awful, but there is no reason why you can't be very fluent with what you have -- and that includes reading.

It's too bad we can't have adopted parents in our second language to read us bed time stories because that would be awesome. But you can read by yourself. When I was very small, I had to be made to read because it was difficult for me. Eventually I got to the point where people had to tear the books away from me. The same thing was true in Japanese.

The advantage you have by doing it this way is that you have an endless supply of natural language. Your only task is to try to understand what it is saying. What I used to do when I was learning was to scan a piece of text to find vocabulary I didn't know. I would take about 20 pieces of vocabulary and look them up in a dictionary (I actually wrote software to make that efficient, because I'm a geek). Then I used a spaced repetition drill program (my own) to remember the vocabulary. Then I would read the text. Most of the time I could understand it based on vocabulary alone. If I ran into new grammar I would enter the sentence into the SRS drill with my understanding of the meaning. Rinse and repeat. Every week or so I would go back and reread bits of the book, updating my SRS data with my new understanding -- and it's incredible how quickly you form new understanding. After I read a section of text about 5-10 times, I could read it just like I was reading English.

After you get about half way through a novel, you start to learn the idioms that an author uses. You can then often read several books in a row without having to study -- just read them. But then when you switch to a different author, it's back to study mode. Of course I didn't start with novels. I started with picture books (Momotarou!!!), moved on to manga (great for conversational Japanese), then novels for elementary students and I'm currently in a phase where I'm enjoying books that are in the Japanese junior high school curriculum -- but at that point you're pretty functional in the language. I don't actually study at all any more (though I really should practice writing my kanji).

Not sure if any of this is helpful to the OP as well. I spent a lot of time writing my Japanese SRS tool (now sadly a victim of bitrot -- I don't think it even runs any more). I never could find a good way to really efficiently bootstrap native sources of information, but things like a built in dictionary and a deinflection/deconjugation tool are life savers. Honestly, if I were to concentrate on anything it would be that because Anki is already pretty hard to beat on any other front. Focusing on making it easy to create cards based on material found in the wild would be a great differentiator.

P.S. Last word on the grammar thing -- I actually learned Japanese grammar eventually. I had to teach English grammar in Japanese, so that forced me to read Japanese grammar books so that I knew what the vocabulary was. It was actually a lot easier than I thought it would be.

This is great advice. Thanks for the anecdotes.

I'm a native English/Russian speaker who took a few Spanish courses in high school and college, and recently decided it would be a waste if I didn't finally learn to speak it fluently, at least like a child. In some sense, I suppose I already do. I can read many things and spoken slowly enough can understand partially -- but there is some mental block, mostly in the smaller, connecting words and other "minor" details that are actually major and completely central to the language. So I drill duolingo from time to time but it seems like mostly a waste of time since I know a majority of the words, and the ones I don't know such as "curtain" aren't critical for me. I always had the idea to visit Spain for several months to force myself to adapt to the language but that's been impractical thus far. I knew reading would be good too and your story of learning Japanese is inspiring, so I think I will find some children's books or Mexican menus. Thank you

I highly recommend LibriVox audiobooks for listening comprehension. My German had deteriorated greatly from when I was living in Germany and I decided I wanted it back so I listened to Anna Karenina in English and German, chapter by chapter. Wonderful book, beautifully read in English and in German. LibriVox has Don Quijote in English and Spanish though I can’t speak to the quality of the reading.

And LibriVox is free.

Oh wow! I didn't know about this. And there are 126 Japanese books there. This is like gold! Japanese audio books are basically non-existent. Thanks!
I was so looking forward to using the Kindle for reading a book in a different language and easily being able to highlight a word I didn't know and have it translate it.

Unfortunately the process of doing that on the Kindle is so arduous that it is unusable.

Yep. And the dictionaries are terrible (at least the Japanese ones). I still use the Kindle for reading, but it's not nearly as nice as I'd like. Strangely the English -> Japanese setup is much nicer. My wife uses it all the time and is thrilled with it. I use a dead tree version of a kid's Japanese to Japanese dictionary most of the time, but it's slow. I haven't been able to find anything similar that will work on the Kindle so far. I highly recommend transitioning to a native children's dictionary as soon as you can manage it (maybe with a translation dictionary as backup).
Have you tried Memrise or something simpler such as Anki?
I noticed that there are no Chinese flash cards, which seems like a pretty major omission. While looking into adding some, I was overwhelmed by the options presented: https://slack-files.com/T02TG6LJ5-F99RX9799-a147044b72

The app seems incredibly responsive, but adding a card could be easier. And are you planning on adding Chinese language flash cards in the near future?

The entire cedict.org Chinese-English dictionary is available on SYL (it's over 115,000 flash cards) including traditional chinese (I want to do Japanese very soon). Make sure to watch the video on the landing page, it goes into a lot of the hidden features that I offer. And thanks, I worked A LOT on optimizing the performance of the SPA (size and speed).
Ah yeah, then I must have run afoul of some UX issues. There are a few other UX oddities like the wording on "exploring" cards - I think I was looking for either a global search or specifically the word "search." And the fact that I couldn't find the Chinese flash cards without watching the video on the landing page seems like it's another UX hotspot.

I'll check it out again later. Thanks for the hard work.

UX is not my strength, for years before this I was doing fulltime math + MATLAB :). But it's improving! Yes, it was even worse than it is now not too long ago :o
You're doing well. 加油!
A premium feature which might also be valuable to users would be tie-ins with other platforms. E.g. you are taking a Udemy course and it has a batch of cards created by the instructor.

Looks really cool, congrats on building it!

> Wikipedia-like database

Where can I download the freely-licensed data?

There is currently no download option for the DB. I had to focus on other stuff. Though, most of the 1.8M flash cards that I currently have are under a Creative Commons SS BY licenses. So you can certainly reuse them.
Nice! Excuse my crankiness. :)
Looks great and helpful. Spaced repetition is such a powerful concept. That said...

One of my pet peeves about new projects is when there is a complete lack of information on eventual pricing.

Even if you don’t yet know the pricing you will end up with, are you always going to have a free core set of features?

Are we going to lock in to your system only to face big charges when you leave beta, etc.?

No, the currect feature set will remain free forever! I will offer additional features for premium. I anticipate similar prices to my competitors which should be $8-$10/month or $40-$60/year.
I'm currently learning ASL, which along with other sign languages would greatly benefit from a spaced repetition platform like this. Maybe an expert signer can weigh in here.

The interesting differences between, say duolingo and what a sign student would want to see:

* Flashcards are okay for some signs but plenty of signs are much better seen animated

* some signs are complicated and you need to see the whole signer from waist up; others are simple enough a simple image would do

* Short youtube embedded clips are okay except loading times are aggravating

* clips should be high res; some finger actions are small and detail can be hard to see

* there are variations between different sign languages, eg BSL and ASL

* source material is hard to get but there are a few sign teachers working on their own, one video at a time. They might be interested in partnering.

I'd probably suggest animated webp. They're super small so they're fast to load. Browser support is limited but since it'd be specific to a course... User will just have to live with it. I do currently create webp for every png/jpg upload but I'm actually not sure if I accept webp uploads. What do you think? Whould that help you? Please do reach out per email, I'm definitely interested in supporting sign languages. That'd definitely be prioritized since I think it's important.
I'm excited about this project. A few questions about your tech stack:

How's Datomic? Are you using the community edition?

Also about databases, are you using or have you considered using a graph for Cassandra like Titan?

I guess also, if you do a mobile app will you use ClojureScript with React Native, like Re-natal?

Thanks.

Datomic is awesome! I'm loving it. I'm using the "Pro Starter" edition with a single transactor + 2 Cassandra nodes. Only thing I disliked was that ref-many are unordered (a set).

I have not considered Titan, I looked into JanusGraph the other day but I have intention to switch.

I dabbled in RN + CLJS a few weeks ago and got some toy screens running. So: Yes I'd use that stack for a native app!

Sorry to ask another question, but one thing holding me back from a Clojure-oriented stack is JS interop. I know there's work being done on getting CLJS to work with npm and now there's this thing about global exports for foreign libraries[0]... for a new project I need to use a bunch of libraries not in CLJSJS.

How was your CLJS experience with JS interop? Would you still use ClojureScript if you had a lot of JS dependencies?

I'd still use CLJS. Just fighweel alone is worth it. I can see any code change in <1s and have the exact same UI state. It's just much faster for developing.

Interop is not bad, I don't do too much interop. I don't use npm-deps but just bundle the React builds separately and include them in the HTML. They rarely change and I set caching header to immutable so the browser will just read them from memory (my CLJS app changes multiple times a week). If you want to use a lot of NPM deps I'd recommend shadow-cljs, there has been a lot of development by the maintainer and it seems to work incredibly well for NPM deps. Feel free to ping me on the Clojure slack, there is also a beginners channel that is very active. And there is a shadow-cljs channel where the maintainer will quickly respond.

How would you tackle prioritized learning? When I research spaced repetition topics, the algorithms are normally not well suited to reviewing something before than its turn...
I have a different model than most existing spaced repetition algorithms that's more of a continuous model (I currently just sample it to get a due/"not due"). I actually worked a lot on it at the end of my PhD in signal processing (not publish research). But the idea is relatively simple to explain:

1. Let's assume: The flash card isn't new. You last review was 100 days ago.

2. It is due in 3 days but you have some extra time today! You have only 10 cards to review but but have some extra time right now and you're are gone for the weekend.

3. It shouldn't matter if you review the flash card today already even though it's only due in 3 days. If it ends up being 100 or 103 days... It doesn't matter. It's all just a probabilistic model anyways with much larger errors.

4. So in premium: After you've reviewed your most pressing/recently-learnt ones you can keep going and pre-learn your old ones.

There is a few more ideas I have but this is basically it.

How is this different from Anki’s review ahead custom study mode? I had extra time today so I studied two days ahead in my reviews. It shows up as cram time on the statistics tab.
I'm in the EdTech space - would love to chat some more on potential opportunities to use this.
I would love to give this a shot. Is there any way I can upload my existing Anki decks?
No there is not. I have kind of the feeling that Anki users are tough to convince to switch to an online platform (judging by comments I've received so far). It's tough since you'd have to find a corresponding flash card for each flash card in Anki. But if there was enough interest I'd probably see what I can do. Maybe just provide a JS API so users can write an import script? Just a thought, not a promise.
Uploading Anki decks would be nice just to grow the corpus of cards available on the system.
It would be a bit of a copyright nightmare. My economics cards are _all_ copyright infringing, either copy and pasted summaries or definitions from different textbooks.
There is actually a CSV import at "Create flash cards" in SYL. Obviously no pictures/audio importing possible. But it's nice for some bulk data.
I love Anki because it has LateX support. I wish you did!

Also, I was not able to create a new category. I am learning Circuits right now, which is not an available category.

Please use the category "Engineering". Categories are currently hard coded and some have special handling in front-side code so categories will have to be manually requested.

I think Latex support is interesting. I could lazily load it and then render it. Something to think about for the future...

My use case is I want my child to grow their native vocabulary, eg. when they read books with new words that they don't know. I couldn't seem to be able to pair the languages that way. Is this supported?
I strongly suggest using Anki. It’s free unless you want to use the iPhone app and cloze cards are exactly what you want if the goal is to be able to use new vocabulary correctly. You can even add dictionary definitions in the Extra field.

All that said the best way to increase native vocabulary is to read more.

Absolutely! This is actually one of the key differences from other SRS software. Ie. you can search the central DB for flash cards and just "add them to the learn queue" or "Claim known". Check out the video on my landing page at 4m:40s for how to do it.
So is it down or something? Because I'm stuck at this screen: https://i.imgur.com/meZ14js.png

Windows 10/Chrome browser

Yes, something is wrong. I'm debugging it with my Clojure REPL right now...

Edit: Fixed, Rate limiting was hitting for some reason. :/

Sorry about the rate limiting. Accounts without much history are sometimes subject to extra restrictions because of past abuses by trolls and whatnot. We've marked your account legit so it won't happen again.
I actually did hit the rate-limiting on my server :) But yeah, I then also hit your HN rate limiting for my account. Thanks for the quick fix!
> Card owner can accept/reject the change request

Can users make private forks of cards? For example if I liked some set of cards as a base but needed to make some alterations for my own purposes

They cannot currently. My goal right now is to avoid too much fracture and try to build a high quality central DB with lots of audio/image files and the right synonyms and (not yet impl) linked example sentences. Though, I can probably see the value in private forks flash cards (as well as courses!) but it's not a near term goal (gotta focus on more core stuff).
Which version of the spacing algorithm are using ?
My own custom one actually. I wanna get more data however to improve upon it. Right now I don't claim that it's better (or worse) than the existing ones.
can you publish it ?
How well does it adapt to memorizing texts? Do you recommend any particular approaches for that?
SRS is excellent for memorising texts but better as part of a solution than as the solution. What you _need_ is a recording of you reading the text so you can listen to it repeatedly and repeat it after the recording as fast as you can. If you do that enough times and pause to try and say it before and after the recording you’ll get there eventually. What SRS does is makes it easier to chunk the text so you remember sub units.

Take the entire text and make each paragraph or page a card and make many, many clozes (fill in the blank) for phrases, sentences or words. This will work as a complete solution all by itself but not as fast as doing it and attempting to recite your chosen text.