[UserScript] Hide answers, not learned items and shuffle cards

Sometimes when I’ve finished lessons or reviewing I like to open the current level I’m on and just run through the items again in the list.

First problem I had was that the answers were obviously visible on the cards, so that didn’t help me when quickly checking to see if I remember the answer. 

The next one was that they’re sorted alphabetically, that made it easier to quickly remember the word based on the words around it, and finally, I’m not doing the ‘quick review’ on words I’ve yet to learn.  

So I made this simple script that adds three buttons to solve those issues for me:



If someone wants to test/use it it’s both available on github and self-hosted (serving from where I update my scripts).

fair warning, this may interfere with the SRS. i wouldn’t recommend using it excessively between reviews…

however, it looks great for quickly checking how well i know all my burned stuff! so i’ve installed it. i’ll also add it to my list of api and third party apps. :slight_smile:

ShotgunLagoon said... fair warning, this may interfere with the SRS.
 I don't think this is a problem. SRS is great for getting loads of information into long term memory and keeping it there, but it's not so great for attaining the unconscious mastery necessary for fluency. However, I also think that excessive use of this script wouldn't be as helpful as reading/listening to native materials, improving grammar, and/or using another SRS for vocab not on WK.
Darcinon said...
ShotgunLagoon said... fair warning, this may interfere with the SRS.
 I don't think this is a problem. SRS is great for getting loads of information into long term memory and keeping it there, but it's not so great for attaining the unconscious mastery necessary for fluency. However, I also think that excessive use of this script wouldn't be as helpful as reading/listening to native materials, improving grammar, and/or using another SRS for vocab not on WK.
 well what you're basically doing is reviewing material in the middle of the SRS interval, right? i'm pretty sure that with SRS, reviewing material in between actual reviews is a no-no. like, it's ok to encounter it in context and stuff while you're reading or studying grammar, but looking over the items and testing yourself on them before you're supposed to review them interferes with the SRS.

I agree with ShotgunLagoon

I’m trying it out right now, seems to work nicely, except for the fact that you have to add each pages individual URL under the User Scripts preferences, so that you can see the buttons on the page. Otherwise, I like this a lot :slight_smile: I’ve been doing a manual version of this in excel ( write down the lists per level in order then go through it forward and backwards to practice writing them by hand) so this will save me tons of time. Thank you :3

I partially disagree about studying between reviews being bad.  Try looking at the SRS from a different perspective:

Suppose you are taking a difficult class in school.  Here are three scenarios:

a) You cover the material during the year, and you don’t see it again until the final exam.  If you cram just before the final, you will probably pass because you are refreshing your short-term memory.  But you will forget the material soon after the test.

b) So, let’s restructure the class.  Instead of just a final exam, we’ll give you a weekly quiz for a while, then a quarterly and semester test, and a final exam. Now you’re seeing the material more frequently.  You might be able to pass the final without studying… or maybe you’ll fail and have to retake the class next year, but that’s okay because the point is to learn the material.  Just let the tests do their work in determining whether you’re ready to graduate.

c) And a third option:  You decide to develop a solid study regimen, where you study your material on a cycle, reviewing each piece of information at no more than a 2-3 week interval.  You don’t really need to study for the final, because you’ve been studying consistently throughout the year.  You breeze through the test and pass with ease.

Obviously, (a) is bad.  Who wants to pay good money for school (WaniKani), only to forget it all at the end of the year (or two)?
Also obvious is that (c) takes the most work.  But you’ll know the material better than with any other method.

The SRS is like (b).  It tests you to make sure you’re ready to move on… and if not, it sets you back.  So, what would be the effect of cramming before each test?  You’d pretty much be doing (a), which is bad.  You’ll ultimately forget the material.  But suppose you studied regularly, like (c).  Would that ‘interfere’ with the purpose of the tests?  No, not as long as you really are studying regularly.  But if you LIE to yourself, and don’t really study regularly, and end up cramming for the tests, then you are essentially doing (a).  Bad monkey!

I’m not saying there’s anything wrong with the SRS.  Quite the contrary.  The SRS is a time-management tool, not a memorization tool.  It bridges the gap between (a) and (c) by minimizing the amount of studying you have to do, while still retaining most of what you learn… though perhaps not as well as if you had done (c), and while most likely taking longer to get through everything.

I opt for (c), because I want to finish quickly and know the material very well.  Many people opt for (b) because the work can be overwhelming otherwise.  It’s a pretty good compromise.

Great script, by the way.  I been doing the ‘hide’ thing for a while, but I’ve been sorely missing a ‘shuffle’ feature.  Awesome idea!

Hah thanks for all the feedback! 

ShotgunLagoon said…fair warning, this may interfere with the SRS. i wouldn’t recommend using it excessively between reviews…
however, it looks great for quickly checking how well i know all my burned stuff! so i’ve installed it. i’ll also add it to my list of api and third party apps. :slight_smile:
I personally only “review” immediately after session and only the current level, that is, I’ve maybe done a review of ~30 items and after it I wanted to make sure that I understood some radical, kanji or vocabulary I was failing repeatedly on during said review. I don’t look at the items inbetween normal lessons/reviews. 

But I’ll definitely keep it in mind. :slight_smile:

WanderLustxx said…
I’m trying it out right now, seems to work nicely, except for the fact that you have to add each pages individual URL under the User Scripts preferences, so that you can see the buttons on the page. Otherwise, I like this a lot :slight_smile: I’ve been doing a manual version of this in excel ( write down the lists per level in order then go through it forward and backwards to practice writing them by hand) so this will save me tons of time. Thank you :3

 Hm, I’m only using this on the /level/ URLs, so the match lines work fine for me for any level:

// @exclude      http://www.wanikani.com/level//*
 If anyone has any fixes, changes or issues, feel free to to PRs against the repo or file issues there.

EDIT: Hm, I’m wondering if I can easily add a button to hide all that I haven’t reviewed within the last ~30 minutes or something like that? Just to make sure I’m not seeing the answer to items that are about to show up on reviews later that day or something like that. I’ll have a look at the API later today to see if that’s possible.

absalon said...EDIT: Hm, I'm wondering if I can easily add a button to hide all that I haven't reviewed within the last ~30 minutes or something like that? Just to make sure I'm not seeing the answer to items that are about to show up on reviews later that day or something like that. I'll have a look at the API later today to see if that's possible.
You'll need the user's API key.

Some sample code based on one of my scripts (error handling removed for simplicity):

    // Request kanji information.
    $.getJSON('/api/user/'+api_key+'/kanji/'+user_level)
    .done(function(data){
        $.each(data.requested_information, function(idx, item) {
            if (item.user_specific && item.user_specific.available_date) {
                var sec = item.user_specific.available_date - Math.round((new Date()).getTime()/1000);
                // Check if review is coming up within 30 minutes
                if ((sec >= 0) && (sec < (30*60))) {
                    // Hide the item
                }
            }
         });
      });

absalon said...  Hm, I'm only using this on the `/level/` URLs, so the match lines work fine for me for any level:


 I've tried it on my Mac at home and my work PC this morning and and both make me manually add the pages, even the level ones, so I don't know lol
ShotgunLagoon said...
Darcinon said...
ShotgunLagoon said... fair warning, this may interfere with the SRS.
 I don't think this is a problem. SRS is great for getting loads of information into long term memory and keeping it there, but it's not so great for attaining the unconscious mastery necessary for fluency. However, I also think that excessive use of this script wouldn't be as helpful as reading/listening to native materials, improving grammar, and/or using another SRS for vocab not on WK.
 well what you're basically doing is reviewing material in the middle of the SRS interval, right? i'm pretty sure that with SRS, reviewing material in between actual reviews is a no-no. like, it's ok to encounter it in context and stuff while you're reading or studying grammar, but looking over the items and testing yourself on them before you're supposed to review them interferes with the SRS.
I think we mostly agree, but I'm going to keep arguing :D
Personally, I think quizzing between reviews is still mostly a no-no, especially for a huge undertaking like learning a language. But why? It's the same reason that WaniKani cares about recognition over recall and doesn't recommend handwriting practice - because that time could be spent doing something else. That's also the reason for using flash-bulb-memory-inducing mnemonics and radicals - so we learn more in less time. But "interfering with the SRS" makes it sound like it's a problem to know something better than the SRS intervals allow. I just don't want people to avoid immersion techniques or extensive reading because of that.
WanderLustxx said...

 I’ve tried it on my Mac at home and my work PC this morning and and both make me manually add the pages, even the level ones, so I don’t know lol 


What’s your setup?  Are you using a userscript manager like TamperMonkey/GreaseMonkey/GreaseKit?  What browser(s)?

It works fine for me on TamperMonkey/Chrome/Windows without having to add pages to the include list.
I know in TamperMonkey, there’s a checkbox for “Original Includes” that must be checked to use the includes in the script’s header.
I’m also wondering if the script’s @match tag in the header is the issue.  Every other script I have installed uses @include.  I’ve never investigated compatibility for @match.

Darcinon said...
ShotgunLagoon said...
Darcinon said...
ShotgunLagoon said... fair warning, this may interfere with the SRS.
 I don't think this is a problem. SRS is great for getting loads of information into long term memory and keeping it there, but it's not so great for attaining the unconscious mastery necessary for fluency. However, I also think that excessive use of this script wouldn't be as helpful as reading/listening to native materials, improving grammar, and/or using another SRS for vocab not on WK.
 well what you're basically doing is reviewing material in the middle of the SRS interval, right? i'm pretty sure that with SRS, reviewing material in between actual reviews is a no-no. like, it's ok to encounter it in context and stuff while you're reading or studying grammar, but looking over the items and testing yourself on them before you're supposed to review them interferes with the SRS.
I think we mostly agree, but I'm going to keep arguing :D
Personally, I think quizzing between reviews is still mostly a no-no, especially for a huge undertaking like learning a language. But why? It's the same reason that WaniKani cares about recognition over recall and doesn't recommend handwriting practice - because that time could be spent doing something else. That's also the reason for using flash-bulb-memory-inducing mnemonics and radicals - so we learn more in less time. But "interfering with the SRS" makes it sound like it's a problem to know something better than the SRS intervals allow. I just don't want people to avoid immersion techniques or extensive reading because of that.
 I think that SRS theory is more than just "don't spend time on things you already know." From what I've read, SRS is based on two ideas:

1. Memory is strengthened through active recall (quizzing) more than through passive review. That is, quizzing is not merely for the purpose of assessment, but the act of recall itself strengthens memory. The quiz itself is the lesson. Because of this point, I disagree with someone else who compared WK with not studying for a final. Most exams (at least, final exams) in a traditional classroom are merely assessment, rather than themselves being a tool for developing long term memory.
2. Recalling a memory immediately before you're about to forget strengthens memory more than recalling a memory that is fresh. That is, the struggle associated with trying to remember is good for long term memory. You *want* this struggle to occur. Hence, the long SRS intervals.

With that said, I don't think independent reviewing after a review session will hurt the SRS, as long as you maintain a discipline of only reviewing apprentice items, or items on your level and perhaps one level below. After an item is guru'ed, then extra review probably will interfere with the spacing effect (that is, point 2 above). Of course, extra reviews for apprentice items will improve on point 1, so I think that limiting reviews to freshly introduced items is a good way to improve point 1 without compromising point 2.

Hi absalon! Thanks for this script. I’ve installed it manually through Tampermonkey in Chrome, and it doesn’t seem to be working. Could you maybe take a look at it? Thank you!

kthxbye said... Hi absalon! Thanks for this script. I've installed it manually through Tampermonkey in Chrome, and it doesn't seem to be working. Could you maybe take a look at it? Thank you!
Just realized (due to another thread), the problem is that the script is set up to work on http, not https.  Open the script, look at the header, and change the http links to https: 

// @match        https://www.wanikani.com/level/*
// @exclude      https://www.wanikani.com/level/*/*


Thanks mate for this great script! It works like a charm!

Exactly what I have been needing, however I use Greasemonkey on FireFox… Any adaptations for that, by any chance? (From what I read this is for Tampermonkey on Chrome, if I am mistaken please let me know.) ~frankiebluej

frankiebluej said... Exactly what I have been needing, however I use Greasemonkey on FireFox... Any adaptations for that, by any chance? (From what I read this is for Tampermonkey on Chrome, if I am mistaken please let me know.) ~frankiebluej

Did you try to input the script in Greasemonkey? Most of the time it will work for both. 
Doublevil said...
frankiebluej said... Exactly what I have been needing, however I use Greasemonkey on FireFox... Any adaptations for that, by any chance? (From what I read this is for Tampermonkey on Chrome, if I am mistaken please let me know.) ~frankiebluej

Did you try to input the script in Greasemonkey? Most of the time it will work for both. 
 Seriously? Thanks I'll try it. ~frankiebluej

EDIT : Works wonderfully. Thank you Doublevil for your advice and Absalon for the script.