Whenever I read something (novels, manga, etc; really anything that I track in Calibre), I always rank it on a five-star scale to indicate that I’m done with it. I know some people like to use half-stars or even hundred-point scales and I’ve always found that to be too granular for something which is ultimately not really all that objective or scientific.
The main purpose of this scale is to help me a way to help me decide whether to continue a series, recommend it to friends, etc. I’m posting it here so I can link to it in other posts where it might be relevant.
I used to have a really hard time understanding spoken Japanese, despite being (at the time) fairly comfortable with reading. I remember thinking I could improve by watching anime with Japanese subtitles, but if there was any benefit it must have been pretty minimal, and I realized eventually that I was just giving myself more practice reading, but when I tried watching without any subtitles at all, I just got frustrated and confused.
Fortunately I happened to hear about Subs2SRS around that time, which is a really cool tool that turns videos into flashcards by reading subtitle files. I didn’t exactly want to add a whole new SRS routine into my study routine, so I came up with a low-impact method that helped me out a lot in just a short amount of time.
The video above shows the method in action, but I’ll summarize it here as well.
#1: Pick the show you’re going to watch
You’re going to want to pick something that’s around your reading level. The goal is to bring your listening up to parity with your reading level, and you don’t want to be spending too much time puzzling out the text on each card when you check your results.
It’s also worth mentioning that anything that helps ease the process is good. For example: you could watch a show you’ve seen before with English subtitles, so you have an idea of what’s going on and don’t get totally lost, or you could watch an anime that was based on a manga you’ve already read.
The most important thing is that the show you watch should be interesting. You’re going to have a hard time staying engaged with something you’re watching just because you heard it was easy. Pick something you actually want to watch and don’t worry too much about it.
#2: Find (or make) a flashcard deck for it
This can be a bit tricky but it’s not that bad. In many cases the hardest part is just sourcing Japanese subtitles. Once you have all the necessary files, you can download Subs2SRS here. The manual should have everything you need in order to make your decks. Alternately, you can download a bunch of premade anime decks from here.
Whether you download or make your own, I really recommend you keep your card format as simple as possible. On the front, an image with an auto-play audio clip; on the back, the Japanese text line. You don’t need any special formatting or processing to make this work. It’s a pretty simple process, so don’t waste time trying to make the perfect card template.
#3: Watch an episode of your show
Nothing too special here. Watch an episode start to end without pausing to look up words or grammar. It’s okay if you feel overwhelmed at first; we’ll be reviewing this material later. Just try to pay attention for stuff you do understand.
When you watch anime with English subtitles, your brain has no reason to try and understand the spoken Japanese in the background, and as a result you’ll never develop that skill no matter how many hours you put in. The simple act of moving outside your comfort zone can shift you into almost a kind of survival mode, where you’re forced to start understanding the material just because you’re suddenly out of your depth.
#4: Study the material
The next step is to go through all the cards that correspond to the episode you just watched. Repeat the following steps for each line:
Listen to the audio clip, using the image on the front to remind you of context
If you understand it, suspend it immediately, otherwise flip the card
Compare the sentence on the back to the audio clip you just heard
Replay the audio as you read the sentence. Try to identify areas that are difficult for you, such as slurred sounds or fast speech. At this point, feel free to look up words or grammar that you didn’t understand on your first watch.
Pass the card
Repeat this process for each card until you reach the end of the episode. It’s a good idea to set your new card limit to something very high (or use the custom study option) so you can get through them all in one go. Don’t worry about overloading yourself with reviews; more on this in the next section.
It’s fine to watch a few episodes back to back and then go through all the cards afterwards, but I do recommend that you do the watching and reviewing on the same day. Without the context in your short-term memory, you might have trouble understanding certain lines that wouldn’t normally give you trouble.
For typical anki flashcards, I’m a firm proponent of “always review every card you have due”, but if you’re blazing through hundreds of cards per episode, you’ll probably have a hard time sticking to a regimen like that.
Here’s what I suggest instead:
In your deck options under “Lapses”, set your “New Interval” to 40%, so pressing “Again” won’t reset your card all the way to zero
Do as many reviews per day as you want to, but never zero
Press “again” if you feel like seeing the card soon would be helpful, otherwise press “good”
If you ever feel like you’ve got a good grasp on a card, suspend it
Use a card retirement addon to set your cards to automatically suspend themselves when they reach a certain interval (I used three months)
If you’re the kind of person that like keeping anki decks around forever, resist that urge in this case. The point of this method is to give you a way to smoothly and easily quiz yourself on audio cues. It’s not to serve as a brain backup or keep you fresh on rare vocab. The end goal for a deck using this method is for you to complete it and never touch it again. By suspending cards that you’ve mastered, you essentially give the deck itself an expiration date.
#6: Be free
Don’t feel like you have to do this for every show you ever watch. This method is ultimately just a way to give yourself a little kick into gear. If you ever catch yourself thinking “I could probably learn more by watching another show instead of revisiting this one”, follow that instinct! The ultimate goal is to leave flashcards and tools behind and make the language your own.
I used to be a huge fan of Spiderman when I was a kid. The Sam Raimi movie was my first introduction to the character, as well as one of my first exposures to what comic books could be (the DVD release came with a digital copy of Spider Man Blue #1 and Black Cat #1, both of which were quite a shock to the system). My family never got the newspaper, but when we would visit my grandparents I would always have a drawer full of comic pages waiting for me (my grandma, bless her heart, would collect them and set them aside) and I would spend hours cutting out the Spiderman strips and pasting them into a handmade paper album. Maybe it was just a combination of my general attraction to comic books and the fact that Spiderman was the only example that was remotely accessible, but the mythos had its hooks in deep for quite some time.
I had a favorite website around this time. I can’t remember for the life of me how I found it in the first place, but I still remember the url offhand — “alaph.com/spiderman”, aka “Eric’s Spiderman Homepage“, as preserved by the miraculous Internet Archive. It wasn’t even a dedicated site — the actual homepage appears to be some kind of ecommerce site or consultancy business — just a subdomain that some guy decided to devote to writing about his interests.
I think about Eric’s site from time to time but it really came back to me recently thanks to Wordle. It’s currently somewhat of a sensation, which is in no small part due to the clever way in which it displays your result when you solve a puzzle, which starts off inscrutable and quickly strikes home once you play it for the first time.
Something I found fascinating about Wordle is that it in less than a year since its launch, it had managed to become a daily routine for a huge number of people worldwide. Less than a week after I personally found it, @wordlestats was reporting 80k players, and two months later that number is over 300k. In an internet which has become so commodified and platform-driven, it’s amazing to see a subdomain on some random guy’s homepage become so huge.
Of course, as I write this, the link above will instead redirect to the New York Times, who purchased Wordle for a “low-seven-figure sum” and no doubt plan to monetize it or at the very least leverage it to attract a new audience to their other word games. The creator says it’s a perfect fit, and I have to say: props to him for getting his payout. But I feel a bit disappointed that this is the way things have gone. Wordle was a small independent website that managed to permeate the zeitgeist for a few months before being gobbled up by a big company and consolidated. The fact that the thousands-long word list had to be audited to remove potentially offensive words is just the icing on the cake.
There’s a lot of buzz these days about how “decentralization is the future”, which is one of those statements where I agree with all the words but not what people mean when they say it. This kind of line is always tied up with the push for Web 3, which is of course in reference to the distributed redundancy features built into blockchain applications. There might be some use case for a massively redundant database (blockchain or otherwise), but just because something is widely distributed around the world doesn’t make the internet more open or more interesting. In fact, the distributed nature of Blockchain is, is for my money, the single least interesting and desirable type of decentralization.
I’m certainly no hardline social media zealot (I spend a lot of time on Discord and stay somewhat active on Twitter), but the universal move towards centralized platforms doesn’t strike me as such a great thing. I’d like to see more Wordles and Eric’s Spiderman Homepages out there. I have a few blogs and webcomics I check daily and I wish that list was longer. Keeping a blog is a lot of fun, even if nobody reads it. It’s nice to be in charge of when your website theme changes and it’s empowering to know that you retain full ownership of everything you post.
The old internet was weird and interesting. I wish it would come back for real this time.
For the past nearly three years (thanks to the magic of backdating) I’ve averaged more than one post per week due to my Japanese reading reports, but since I don’t post about other stuff nearly as often, they’ve ended up taking over the entire feed. I’ve been thinking of posting more regularly, so starting today my reading reports will be filtered from the main page. They’ll still be available from the link above or through the category in the navigation bar.
I read a lot, and a common problem I have is keeping track of the series I’m currently reading. For a while I’ve toyed with the idea of writing a Calibre plugin that would allow me to see books that belong to a series which I’ve started but haven’t caught up with (I rate books as I finish them, but parsing my library at a glance to see what comes next is difficult). Today I found the Multi-Column Search plugin and it turns out to have exactly what I need to solve this problem: a freeform SQLite field.
select id from (
partition by series order by series_index asc
b.id, bsl.series, b.series_index, r.rating
from books b
inner join books_series_link bsl on b.id = bsl.book
left join books_ratings_link brl on b.id = brl.book
left join ratings r on brl.rating = r.id
) where rating is null
where row_num = 1 and series_index > 1
This script will filter the library to include the next unread (unrated) book in your library from each series that has at least one book that has been rated. It’s a little uglier than I would have liked, since I had to use one long query instead of CTEs, and I would have liked to be able to return them in order (maybe by overall average score), but due to limitations in the plugin this is as good as it’s going to get. Even so, I can tell it’s going to be super useful.
See, Date.toISOString() does indeed return a pretty nicely-formatted string that I can carve up and use for date components…the (obvious, in retrospect) problem is that it gives it to you in UTC time with a timezone offset, which can very well be a totally different calendar day than in local time. I probably would have never noticed this until I found myself on the other side of the world at some point in the future, or happened to be working in the app very early in the morning, so I’m very lucky to have a friend in Australia as an early adopter; she noticed that at certain times in the day, her work would be counted towards the previous day and her calendar wouldn’t display the right dates.
The fix ended up being pretty simple; instead of this:
A youtuber I follow recently uploaded the video below. There’s an “unsolved mystery” regarding the writing on a talisman that features in the model, but a bit of digging around on Japanese internet led me to some interesting discoveries. The following text was originally posted as a comment on the video itself, but I figured I would preserve it on my own blog as well since it involved a decent amount of research.
The “writing” on the talisman has its roots in Daoist magic (符籙 in Chinese, 呪符 in Japanese; English wikipedia has an article on it called “Fulu”), where the symbols are basically formed from kanji components but don’t actually make up real characters at all. These talismans are usually written in seal script, which ranges from “I can read it if I squint” to “how the heck is that supposed to be the same character”, but even so, the writing here is really more like drawing ; while it does contain valid characters like 竜 (dragon) and 王 (king), they aren’t arranged in such a way to suggest that they’re intended to either produce composite kanji nor that they should be interpreted on their own. There are also some other characters which are likely chosen for their appearance alone, like the one that looks like 丑 missing its bottom stroke, or 弗, which can be taken to mean “dollar” but considering the time period I think it’s more likely just the right-hand component of something like 沸. Other parts have no basis in writing at all, like the mirrored squiggles that extend from the bottom of the 田 character, or the cartouche that encloses the bottom two thirds.
Here’s a post (all in Japanese unfortunately) that has some interesting insights into this talisman and also some others that are found elsewhere in the game:
One other thing I’ll point out, is that this guy is definitely a wara-ningyou (lit. straw doll), but he’s not constructed in the typical way of tying together two straight bundles of straw. He’s actually made from a shimenawa, which is a type of rope which is used to cordon off sacred areas and provide protection from evil. The talisman itself (according to that link above) is a warding-against-evil type, though the author points out that depending on how the talisman is affixed, the effect can be reversed, resulting in an invitation for possession by an evil spirit. It’s not obvious which is the case here, but it’s an interesting thing to consider.
I recently added localization support to Moyase and wrote a Japanese locale file to test it with. Just for fun, I thought I would take the translation strings and run them through a machine translation service to see how it fared. The results are not dramatically bad, but they definitely aren’t good.
Moyase’s localization files are available on Github. The Deepl translation I made for this video is available in my recycle bin.
It’s midnight, January 1st, 2021. The ceremonial ball has dropped in Times Square and 2020 has just come to a close. As the festivities begin to wind down, your phone buzzes. It’s a text from your friend in Los Angeles.
My trusty Kobo Aura One recently died on me, and I replaced it with a Kobo Libra H2O, which…is honestly kind of a downgrade. I didn’t expect to like the physical buttons, but I’ve come around to them, and the screen is crisper, which makes reading small furigana easier, but the screen is also smaller and the storage size is pitiful (8gb compared to the 32gb I used to have, which is pretty important if you’re going to have a lot of manga on board). In any case…
The main thing I’ve been unhappy about with this new device is the fact that the database handling seems to be really flaky. I had my Aura for four years and never had a problem with it, but this new one has randomly corrupted its own database multiple times over the last few days. Since the only way to fix this is to reset the device and logging in is a hassle (especially since I don’t use any of the online features anyway), I wanted to figure out how to bypass the sign-in process entirely.
There are a few guides on the mobileread forums on how to set this up, but they’re all pretty old — the user database table was only five columns back then and it’s now at 27, which breaks the insert statements. Here’s an updated sqlite script that gets you into the device with minimal fuss, plus a little extra which blocks the analytics events (which seem to be the main culprit).
insert or replace into user
drop index if exists analytics_events_timestamp;
create trigger if not exists delete_analytics
after insert on AnalyticsEvents begin
delete from AnalyticsEvents;
Click “File/Open Database”, browse to your ereader, and select .kobo/KoboReader.sqlite
In the “Run SQL” tab, paste the above script and execute it by pressing F5 or clicking the play button
Click “File/Close Database” and save changes
Eject the ereader from your PC and disconnect it
You should be met with a fresh clean dashboard. One nice thing about this method is that the ereader never actually sees the internet, so it can’t download book suggestions. I recommend backing up the sqlite database after you set up your preferences (the calibre plugin Kobo Utilities can perform a backup automatically every time you connect the device, which is something I wish I had done much sooner).