Physical Address

115 W Rainey Ave
Weatherford, OK 73096

Anki Load Balancer

I’ve recently released a tool that I’ve personally been using (hoarding) for ten months to generate Anki language cards given only a list of terms. The Anki Reverso Cloze Generator uses Reverso in order to pull example sentences and create cloze cards.

How Flashcards Succeed: Solutions on Using Anki for Serious Study

Awhile back, I wrote an epic post called How Flashcards Fail: Confessions of a Tired Memory Guy. I had to get pretty frustrated and discouraged to write that post, and when I did, I went all in. I dove deep into all the ways that Anki can backfire when you’re using it for thousands of flashcards.

Then something awesome happened.

People commented. With solutions.

Seriously, I got some of the most amazing comments on this post I’ve ever seen. Many of them deserved to be articles in their own right.

So I’ve taken my favorite suggestions from these comments, and organized them here for your reading pleasure. I’ve only taken selections, and I’ve added paragraph breaks here and there, but otherwise, I’ve let these awesome people speak for themselves.

I haven’t tried all of these myself yet, but I didn’t want you to have to wait. Take a look, and I’d love if you left a comment to share what you think.

In this Epic Solution List, You’ll Find.

  • Tweakng Anki
    • Limit new cards
    • A “Load Balancer” Plugin for Anki!
    • Put the answer on the question side
    • Take as long as you need
    • Rework the card
    • Set leeches aside to fix later
    • And don’t be afraid to delete the card
    • Use a card to remind you to think
    • Use Anki to Review a Larger Web of Knowledge
    • Use Anki to Practice
    • Use Separate Sub-Decks to Keep Cards in Context

    Tweakng Anki

    Limit new cards

    Bill, I too had problems with clustering, until I found the cure. The trick is to limit the number of new cards that you are seeing to a fairly low number each day. eg. 20. This allows you to build up a back log of new cards and not have to worry about “lumps” nearly as much.

    – Anonymous

    A “Load Balancer” Plugin for Anki!

    In case someone else finds this post, here a few tips, because all the points discussed in the post are real. There is no point in pretending these issues don’t exist, but there are also ways around them.

    First, there is a “load balancer” plugin for Anki. This will take care of the peak days with many reviews and spread the reviews out a little bit. Yes, these demoralizing mammoth days are really a thing if the past once you’ve used this for a while. Unfortunately it doesn’t take care of existing peaks, but you could simply “skip” a day by choosing “hard” on all the reviews for a day (without looking at them). It may feel like cheating, but there is more gained than dropping out of Anki.

    – Claire Kellogg

    Note: Claire didn’t leave a link, but she probably meant this load balancer addon. I haven’t tried it yet, but this would be a huge help to reduce those huge reviews. Anyone else tried this?

    Dealing with Leeches (cards you keep getting wrong)

    Put the answer on the question side

    Hi. As a heavy Anki user (almost 300,000 reviews so far), I’ve faced the same problems as you. When we face a difficult card and try to remember the answer, we begin to travel along the well-established neural pathways that lead us to the wrong answer or to nowhere, and this attempt to remember strengthen those incorrect paths, creating a vicious circle of error.

    Here’s what I do with leeches now: I put a mnemonic on the question side. If even that doesn’t work, I put the answer on the question side.

    At that point I’m obviously not testing myself, but I realized that testing myself isn’t the goal. Every time I see that now-easy card, I’m reviewing it anyway. It will probably end up forming a memory. If it’s truly useful, I’ll see it in the real world and will later associate it with that encounter.

    – AnotherAnkiAddict

    Take as long as you need

    I guess I’m a little bit too late for the party but another tip, aside from the obvious one of rewriting the card, would be to remove the time limit and take as much time as necessary to answer correctly. It’s better to take longer and answer it right than to answer it wrong and get the wrong circuitry reinforced inside your brain.

    And also, practice only with full concentration. If you’re the kind of person who answers flashcards while walking or waiting for the bus, then at least skip this kind of card when you find yourself on such environments.

    – Ruan

    Rework the card

    The point of the cards, as you said in the article, is to get them right. So, I figure, why not do whatever I can to help myself get them right?

    This is a drastically different approach to study from when I was a teenager in high school and expected myself to be able to be able to produce extraordinary answers based on minimalist questions. Anki and other SRS software is quite flexible about editing cards later and about how much info can be displayed on a card.

    If I find a card difficult, I can add gobs of more content to the question side and usually I’ll find that it has become much easier. If a card takes too long to answer, I’ll rework it to call for a shorter, more instantaneous response.

    In addition to the extra hints, I think the time spent reworking the card helps retain it: If we spend fifteen minutes with a dictionary or looking up usage examples online, consider what we find, and select some of that information to place on out reworked cards, we’re resorting those missing components–active, critical thinking and networking–to our flashcard study experience.

    – AJ

    Set leeches aside to fix later

    In regards to difficult cards and leaches, I create a separate deck called “FIX THESE”. So whenever I am reviewing and do not want to disrupt my flow I simply move obstinate cards into this deck and deal with them later. It can be done pretty quickly on anki droid as well.

    Rewording or reorganizing the card differently is usually enough to prevent future leaching.

    – Justin

    And don’t be afraid to delete the card

    … take leeches seriously. At a minimum, you should reformulate the card. Often I delete the card. Yes, I wanted to remember this after learning what it is, but given the effort it takes, I often choose not to remember this. This is quite liberating. (And incidentally also what makes Anki different from school exams: I can choose what I want to remember, I can choose to delete an item.

    – Claire Kellogg

    Finding Context

    For decks with higher level concepts like Algorithms or Game theory every time I review a card I explain it and I let me my mind linger and come up with associations. It’s rare the card where at least 1 or 2 associations new associations don’t pop in my mind including questions. Besides that it’s also usually the case that when I try to explain a concept I find little nuances or questions that I then research. And that builds new associations too.

    This requires time, of course, that’s why I find it important to prune knowledge aggressively. I am generally eager to add new knowledge and overestimate its value. Boredom is actually a godsend for me.

    – Juan Alonso

    Note: I love this idea, and I explore a similar approach in “Reviewing as Thinking”.

    Use Anki to Review a Larger Web of Knowledge

    What i am trying recently, is to keep the information suited for pure memorization in ANKI as individual cards, but then to make longer notes into a powerpoint presentation document, and then link an ANKI card to that note.

    So when it comes up, you use the link, review the whole card and emmerse yourself in that note, then exit and rate how well you recalled it. This way atomized information can be atomized. And deeper concepts can stay deeper and connected. And all are reviewed with spaced repetition.

    – Neil

    Note: I love this idea too, but I’d probably use mind maps. I’ve used a similar approach to schedule reviews of long chunks of text.

    Use Anki to Practice

    Atomizing Random Knowledge and Flash Cards Kill Clustering

    I see this criticism of Anki a lot. I think the problem with it is that it sets up a false dichotomy. For example, people will talk about how their friend went to Mexico for a year and learned Spanish without ever using a flash card. Actually, the BEST way to learn Spanish is to study flash cards AND practice talking to native speakers, listening to Spanish podcasts, reading Spanish books–using Spanish. They are complementary systems. So don’t only depend on Anki, and don’t over do it.

    As you have said, it is easy to get sucked into the game, and to start thinking of your Anki numbers as your knowledge level. That is because Anki is quantifiable, and having a conversation is not. So you need to schedule the other knowledge synthesizing methods, and make sure they happen. For example, I use Anki for practicing musical knowledge: chords, scales arpeggios. I schedule 15 minutes for Anki, and I schedule 15 minutes for drawing on that knowledge to create musically interesting ideas–jamming.

    …Anki will never be perfect, but no study method is, and it was never meant to be a “complete” learning system.

    – Jon

    Use Separate Sub-Decks to Keep Cards in Context

    … you don’t need tags to review similar items, but separate sub-decks. If you create separate decks for categories of words, and put move (drag) them into one, Anki will do the reviews in order/by category. It took me a bit of experimenting which sub-decks are pertinent (it also depends on the number of cards you typically review). I certainly wouldn’t want to mix my say Spanish and Chemistry reviews.

    – Claire Kellogg

    Choose What to Learn

    Humans are terrible at predicting what knowledge they will need to know.

    The truth is, even in technical professions– a doctor for example, probably should only remember about 1% of what they learned in medical school, 0% in college, and 0% of high school….

    My current theory is to read widely – highlight 1% of that reading — 1% of those highlights I put in a mindmap using http://www.thebrain.com/ then 1% of that material (maybe less) goes into Anki.

    –Luke

    Note: I love how this method uses the 80/20 rule to winnow down your potential cards to the best stuff, before you put it into Anki and start reviewing.

    The Right Mindset

    Flash Cards as Video Games

    I think I just have a different attitude about this. I am comforted by the fact that right or wrong don’t matter. I appreciate Anki telling me that I no longer know something I thought I had learned. That is the whole point. I think that perhaps the reason that you feel you are “losing” the game is that you are “punished” with additional study time when you miss a lot of cards. Limiting new cards, time boxing, addressing leaches, and creating efficient cards to begin with will make it easier to appreciate failed cards.

    – Jon

    Note: I love this idea of actually being “comforted” to know what you don’t know.

    If you want more on changing our whole mindset of how we approach review, check out this third article for advanced Anki learners: “Reviewing as Thinking.”

    What about you?

    But maybe you’ve already found the perfect solution for your Anki woes. Wasn’t all that awesome? So much great advice here!

    So what about you? Have you tried any of these tips yourself? Are you going to? Leave a comment and let us know what’s working or not working for you. Share your Anki tip that wasn’t on this list. I’d love to hear it!

    Effectively Using Anki Flashcards for Language Learning

    I’ve been using Anki to study foreign languages for three years now, and I consistently spend about an hour a day using it. So far, I’ve utilized Anki, to varying degrees, in my study of three languages: Turkish, Russian, and Italian.

    But truthfully, I can’t say that my time spent doing Anki has always been effective. In fact, when I look back, I feel that sometimes I actually wasted time by using Anki. However, Anki does have its role in effectively learning languages.

    The goal of this article is to provide tips to use Anki for those who have already tried or are currently using it but may be using it ineffectively. It assumes background knowledge about how Anki works; I won’t explain the Anki-related terminology.

    Running Cheap gRPC Web with Docker Containers on ECS and EC2

    This article summarizes my quest to stubbornly run a cheap Dockerized gRPC server capable of interacting with gRPC Web. I was trying to set up a staging instance (not a production instance) for my startup.

    In this article, you can learn one of two things:

    1. How to deploy Docker containers exposed to the internet for cheap on AWS (price of a micro instance)
    2. How to deploy a gRPC web server with Envoy on AWS ECS

    In this example, we use a TypeScript Node server, but you can generalize it to any gRPC server.

    I’m aware there’s others, but I have AWS credits, and for production, I do, for better or worse, have brand loyalty to AWS. Eventually, I’d need to figure out how to deploy there.

    The TypeScript Web Protobuf Environment in 2023

    Another title of this post would be: for protocol buffers in web clients, which TypeScript protocol buffer libraries are well-documented, and which ones are badly documented?

    In this post, I’ll talk about the mess that’s the open source TypeScript protocol buffer ecosystem. For historical reasons, based on various libraries that were released when others didn’t exist, there are some libraries that work with each other, some that are outdated, etc. In general, this happens quite commonly in the open source ecosystem, and I hope this post helps others.

    The TLDR, if you want to use protocol buffers with the browser:

    • Use protobuf-ts and grpc/grpc-web
    • Do NOT use ts-proto or improbable-eng/grpc-web

    Automatically Generating Anki Cloze Cards from Reverso

    I’ve recently released a tool that I’ve personally been using (hoarding) for ten months to generate Anki language cards given only a list of terms. The Anki Reverso Cloze Generator uses Reverso in order to pull example sentences and create cloze cards.

    Supetar Bus Departure Schedule (Croatia)

    This article contains the bus schedule for departures Supetar, Croatia on the island of Brač.

    Liden and Denz Moscow Review, aka Language Group Courses vs italki

    This article will answer the following questions in order:

    • What exactly happens in the course at Liden and Denz?
    • What are the pros and cons of taking the class? These are mostly generic to any group language course.
    • How do I personally evaluate the time-effectiveness of a group course versus italki in the broader language learning process?

    I took Russian language courses at Liden and Denz in Moscow for about five weeks, having purchased six weeks initially but, like many, ultimately leaving Russia following the start of the war in Ukraine.

    Before enrolling, it was difficult to find any details on the internet of exactly what the Liden and Denz course entailed. The purpose of this post is to help those who are curious about the course and whether it would be useful to them.

    Connecting an Elastic Beanstalk Backend to Cloudfront

    Given an existing server on Elastic Beanstalk, this tutorial describes how to connect it to Cloudfront, including using Route53 and managing CORS.

    This post assumes that you already have an environment in Elastic Beanstalk.

    Step 1: Application Load Balancer

    Follow the [Application Load Balancer] documentation to check if a load balancer exists; if not, then add one. If this is a server receiving requests from a web frontend, then you should have listeners at 443 HTTPS and 80 HTTP, wit han SSL certificate connected to the HTTPS port.

    Step 2: Create a CloudFront distribution

    Create a new CloudFront distribution. The most important step here is to select the appropriate origin under – Elastic Load Balancers – for Origin Domain Name.

    • If you have multiple environments, such as staging and production, I’m actually not sure how to distinguish the two (I used the creation date of the load balancer by searching for “load balancers” and going to EC2 in the search box above). Find some means to select the appropriate one as the Origin Domain Name.
    • Give a meaningful Origin ID. You should be able to use any string here, pick one that you can remember.
    • Select Redirect HTTP to HTTPS.
    • Pick Allowed HTTP Methods based on what your app is doing; if you want to be safe or aren’t sure, select the longest list here. This option is simply what’s allowed, what’s actually cached ony includes GET, HEAD, and optionally OPTIONS (see Cached HTTP Methods section).
    • For Cache Policy, this is totally application dependent; you can pick a default for now and change it later, but this is application-specific. If you simply want to test things first, I suggest making a custom cache policy with all cache durations set to 0.
    • For Origin Request Policy, to get CORS to work (at least in the case of my application), create a new policy with Whitelist: Origin , Access-Control-Request-Method , Access-Control-Request-Headers . Without this, you may see CORS errors from a web frontend. These will allow preflight CORS requests to properly propagate to your server through Cloudfront.

    Anything can be changed later; you can save here or read the next step for setting up a custom domain.

    Step 3 (optional): Repoint your domain to CloudFront

    If you have a custom domain name like api.foo.com , then you’ll want to set it in Alternate Domain Names as well as setting up the SSL certificate. If this is already in Route 53, clicking Request or Import a Certificate with ACM should be enough.

    If you already aliased api.foo.com to your Elastic Beanstalk endpoint, then, after the distribution is created, you’ll need to create a new alias record pointing to the CloudFront endpoint and removing the old api.foo.com record in Route53 (presumably this is a CNAME or A record).

    Conclusion

    At this point, you should have a CloudFront distribution pointing to the load balancer on top of your Elastic Beanstalk environment. If you followed step 3, api.foo.com will point to your CloudFront distribution, otherwise you can use the *.cloudfront.net domain shown under “CloudFront” (also connectable via Route53). Happy caching!

    Understanding the Turkish Accusative

    The purpose of this post is to answer: “when do I use or not use the Turkish accusative?” Most resources on the accusative describe it as a case ending applied to a definite direct object. Some say it’s the equivalent of when you use “the” in English. I found these definitions to be vague and often actively misleading.

    Much of this knowledge is thanks to the Türkçe Öğrenelim Discord. Feel free to join the community and support them on Patreon.

    Next.js Rewrites, Amazon S3, and Trailing Slashes

    This post talks about how to set up Next.js rewrites to point to a static site hosted on Amazon S3, in particular how to deal with trailing slashes.

    Advice for Coding Bootcamp Students

    As an instructor, I find myself giving the same advice frequently to many students. In this article, I’ve distilled my most common recommendations into one place, especially since I worry that students might be missing out on advice if I don’t say it in front of the class.

    This article contains advice for students in different stages of their programming career, from entering the bootcamp to landing their first development job. It describes some keys to success:

    • As a bootcamp student
    • As a programmer
    • As a job applicant
    • As an employee

    My hope is that this will be a resource for all students of the Re:Coded bootcamps (and possibly other bootcamps, but it’s catered to my experience).

    For the students: as with all improvement, simply hearing or reading it once isn’t enough to build good habits.

    Copyright © 2023 – Louis Li

    Theme originally by Shashank Mehta

Maddie Otto
Maddie Otto

Maddie is a second-year medical student at the University of Notre Dame in Sydney and one of Level Medicine’s workshop project managers. Prior to studying medicine, she worked and studied as a musician in Melbourne. She has a background in community arts, which combined her love for both the arts and disability support. She is an advocate for intersectional gender equity, and is passionate about accessibility and inclusive practice within the healthcare system.

Articles: 1166