flashcards
After talking the big talk about habits, I promptly ignored writing blog posts. Actually, that isn’t entirely true (only mostly true) - I have a lot of content queued up from the past few weeks that has been taking me longer than expected to churn out. Turns out, it is much easier to talk about what has just happened than to recall even things that happened a few days ago and write them down; also, when I was keeping the blog-writing habits up daily, I’d spend the day thinking about what I would want to write about, which made the writing process a lot easier. So, I definitely want to write about at least the highlights of the past few weeks, but I’m going to keep up the daily (likely much shorter posts) in the meantime regardless of my progress on the past posts. Basically, lowering the productivity bar for myself so I can output something and don’t fall behind more.
I honestly had a pretty uneventful day yesterday, did some morning at-home errands and then went to class. We finally finished learning hiragana and katakana (basically the “alphabet”, i.e. the easy version of Japanese), which we were supposed to learn before coming, so I wasn’t really sure what the point of those lessons were. However, that meant yesterday marked the start of learning kanji, i.e. Chinese characters, the actual hard part of Japanese. Interestingly, despite Miles’s class moving at a slower pace, they started kanji a week earlier. I think it’s because his school really meant it when they said you have to know hiragana and katakana (he was given an exam on the first day whereas I wasn’t). It’s been interesting comparing and contrasting our schools, and from the surface it really does seem like his class is better taught and has more well-thought through lesson plans as opposed to my school’s methodology, which seems to be: sprint through the textbook and look disappointingly at students who aren’t keeping up.
On the slow journey to befriending classmates, I’ve been hanging out with Zahra who is originally from Bangladesh. One of the big hurdles to hanging out with classmates is everyone lives all over Tokyo, but I think Zahra is the only one who lives close by to where I’m at now. I’ve been trying to look for a bathrobe and it is surprisingly hard to find - I have not seen any at Uniqlo or Muji, so we tried GU with no luck. She told me that Nitori (essentially Japanese Ikea) has them so we visited the one in Shibuya, which is I believe 7 stories tall. We did find the bathrobes but they were sold out! The staff told us they will return on February 6th. Wow, what a rare commodity - who would’ve thought? We went to Torikizoku afterwards, a yakitori chain. Was pretty solid.

I mentioned this a while ago in my first day of school post, but I’ve been on the hunt for a new flashcard program now that Quizlet is paid. I briefly tried knowt, but it was very flashy/heavyweight and reminded me a bit of Duolingo, which I don’t have anything against, but not what I was looking for. I’ve been primarily using StudyKit since then, but there are a few annoying things that are slightly specific to how I’ve been using flashcards to study Japanese that aren’t working well. I came across Mochi which looked pretty cool and seemed to have features specific to learning Japanese. I just couldn’t figure out how to import terms from a csv into the app. It is funny to think that at the end of the day, there’s nothing technically complicated about a flashcard app, but Quizlet had really nailed the UI/UX down. Realizing that finding a perfect solution is going to be harder than just doing it myself (I don’t know if this is a relatable experience to others, but do you ever use something and think to yourself, “agh, if I had access to the source code it would take me 5 minutes to fix this one annoying thing!”). I didn’t really want to build something from scratch though, so I decided to go for the open-source route.
I came across Flashbang which was already pretty close to what I was looking for. There were a few things I really liked:
- - Super lightweight and simple
- - Had almost all the basic features I wanted: import from csv, typing mode (as opposed to just flashcards)
- - Codebase very easy to read and navigate, easy to launch locally, so easy to spin up development environment There were a few things that were less optimal:
- - No web version (only locally hosted option)
- - No spaced-repetition algorithm (seemed like it was just randomly selecting cards)
- - Didn’t seem like it was actively maintained (last update was a year ago) And there were a few things specific to my needs that needed minor tweaks:
- - Didn’t ignore Japanese-style parentheses:()only English style: ()
- - Doesn’t handle keypresses specific to Japanese typing properly (e.g. Esc and enter are used to exit and confirm the variation of a given word or phrase you’re typing (since one pronunciation can have multiple writings), but they were clearly getting intercepted by the app)
I don’t have a lot of experience (er, no experience) working on open-source projects, but I just went ahead, forked it, and gave it a whirl. I was able to fix the parentheses issue and implemented a very basic, hardcoded spaced-repetition algorithm that I really just made up myself* as opposed to implementing an existing algorithm developed though rigorous research.
*So, regarding my made-up spaced-repetition algorithm, Miles and I have been doing a bunch of apartment hunting recently which means we’ve been spending a lot of time on the go (and less time studying at a desk). Since we’ve been using the same textbook, but my class is just a few chapters ahead, it’s been really handy because I already know the vocab that he needs to learn. I’ve been quizzing him as we’ve been walking around, so while on one hand, I definitely did not go through rigorous research practices to come up with a fool-proof methodology, but in some ways Miles has been my guinea pig to experiment various learning/quizzing techniques that are the most conducive to efficient and effective rote memorization. I settled on the following technique: ask what x is in Japanese. It’s a new term, so he doesn’t know. Tell him the answer. Immediately ask him again, and repeat until he is able to answer. Then introduce a new term, go through the same exercise. Then go back to the first term, if he gets it on the first try, go to the second term. If he doesn’t get it, start from the beginning again. Eventually as he starts to answer the prompts correctly, I go longer and longer between quizzing him until he fails to answer correctly, then go back to more frequent quizzing. Actually the reason why I was inspired to build my own flashcard app to begin with, is Miles told me he wished StudyKit’s algorithm was more like what I was doing with him in-person. I don’t think I was able to replicate it perfectly yet, but feel free to try it out if you’re curious, and send me feedback!