Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I wrote a kanji learning app around Anki’s Flexable Spaced Repetition (FSRS) algorithm https://shodoku.app

My design principal is that I don’t need to be limited to few words, a sentence, and maybe a picture for each flash card. Instead each flashcard can be the all the relevant parts of the whole dictionary related to the kanji that you are learning.

Another design principal (where I deviate from Wankikani) is that drawing the kanji helps remembering it. So my app has two sided cards, one for drawing and one for reading. Both reading and writing practice include every word in the dictionary + example sentences that contains that kanji.

My third design principal is that I can learn vocabulary at the same time as I learn the meaning and the writing of the kanji (in fact, I like to learn a few vocab words instead of memorizing the different readings). So you can bookmark vocab words you want to learn along the kanji, and the next time the SRS system picks the kanji up for review, these words pop up at the top, to help you recall.

Note that the app is still in development, so use at your own risk, although I am actively using it for my kanji-studies. I still have a couple of features missing before I can call it done enough.



> I still have a couple of features missing before I can call it done enough.

I've checked your website and HN profile but there's no email to contact you, so here are some simple suggestions: when you enter a deck, I would suggest you add 2 shortcuts or buttons: one to randomly jump from the present card to another one of the same deck, and the other to randomly jump to another deck in the review set

This is because when faced with a sequence, the brain learns the order the element in the set, which may affect recall.

Being able to randomize the set helps prevent that, and give better results.


Thanks for the suggestion. The code is open sourced at https://github.com/runarberg/shodoku

I think you were browsing the cards and using the quick navigation to go to another card in the same deck. When you actually review the cards using the SRS system to review the cards (the big “Review” button), there is a setting (in the settings view) to enable fuzz (a small random delay; defaults to on) which will effectively scramble the cards for your next review. I actually had been using it for a couple of months without fuzz and just random noise in my retention abilities were enough to scramble the decks, at least in my experience.

But a button in the quick navigation bar when browsing the cards to jump to a random card is not a bad idea.


> I think you were browsing the cards and using the quick navigation to go to another card in the same deck.

Yes, I was just looking at how it works because I liked how you presented your design principles.

My personal design principle is to minimize friction and allow immersion to concentrate on the task and not on the navigation.

> I actually had been using it for a couple of months without fuzz and just random noise in my retention abilities were enough to scramble the decks, at least in my experience.

I don't know about you, but when using cards or other repetition-based systems, I've found my recall is strongly increased by randomization: if you can "predict" which card you will be shown next (and I often did), you are not learning the content of the card, but their sequence. This is helpful for some tasks where order matters, but it's often an hinderance for things that don't have a natural order

> But a button in the quick navigation bar when browsing the cards to jump to a random card is not a bad idea.

A button is nice, but since your content doesn't fully fit on the screen, you should also consider keyboard shortcuts: being able to immerse in the viewing helps a lot for memorizing (cutting distractions)

After a while, I guess you must have nailed the common part (the drawing) while still benefiting from the varying part (the list of words): if you can have that on the screen more easily, without much friction (like scrolling down past the drawing), you will be able to immerse into that. Exposing the drawing area could be a setting, or more simply you could have shortcuts or buttons to jump to the word section.

Actually, maybe you should also get a button and a shortcut to randomize the words themselves: to take a quick example, https://shodoku.app/kanji/%E5%85%88 lists 104 words.

I think you know the #1 better than say the #103, because you have seen the top of the list more. If they are sorted by frequency (ie how common they are), that could be good when begging, but after a while you may want to learn the less common one, and having to scroll down may reduce your desire to do so.

I tested jumping to the bottom of the page with the End key, and I think you have a "load-on-demand", so you should be able to test my hypothesis quickly: look at the web server stats for the chunks of a given page for your own IP, and plot the frequencies: I think the bottom where the #103 word is will be seen far less often that the top where the #1 word is.

You have made a very cool project, and I like your design principles, so I hope you won't find my suggestions offensive or disrepectful.


> You have made a very cool project

Thanks, I appreciate it ;)

> Keyboard shortcuts

It is on my missing feature list.

Another missing feature is next or previous stroke buttons (and keyboard shortcuts). I want to be able to use this flawlessly on a device without a touch screen, where you simply draw the kanji on a peace of paper (or even your palm). Users that use it like that should be able to benefit from stroke hints as well.

On the vocab list, the purpose is to give you some example words which you can use to learn the reading. I usually bookmark 1-3 words in my first writing practice, which will then appear at the top of the vocab list for later reviews, I will than try to learn along with the kanji. Another missing feature is integration with Anki proper. I would like to quickly create a vocab card for that word and add it to my Anki deck (I would rather not use this app for vocab practice). My current ordering of the vocab words is kind of a mess, I do some JLPT word-list prioritization. Having the most basic words on top. randomizing could be a good feature here. Another could be alternate sorting for the vocab words, or even a search bar.

I actually just host this on github pages, so I don’t have access to access logs (or I don‘t know how to access them). In the near future this is going to be a progressive web app with a hard cache of all the assets (which I generate into static assets from an sqlite3 database on my own machine) so you could actually use this offline with if you previously browsed the kanji.


Random bit of UX feedback. When on https://shodoku.app/decks/add the + symbol means to add the deck, but in the interface even knowing that I accidentally pressed it 3 or 4 times to try and fold back the kanji after having clicked "show".


Thanks for the feedback. I am a UX engineer and frankly I‘m a little embarrassed I was caught employing such a bad UX pattern.

Even without the confusion of toggling a hidden detail, the or-or-off toggle button is known to be bad UX as it is unclear whether the toggler is on or off, unless clarified with a label. https://news.ycombinator.com/item?id=39342649

My next feature is going to be custom decks, which is implemented on this page. I will for sure fix this (by adding labels, and changing the icon to a checkmark for active decks).

Thanks again, this was helpful.


> Anki’s Flexable Spaced Repetition (FSRS)

Sorry to nitpick: Free Spaced Repetition Scheduler

https://github.com/open-spaced-repetition/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: