Introduction Anki and Quizlet are two of the most popular flashcard apps. Anki is for serious learners with its splendid Spaced repetition (SRS) learning method. Quizlet is popular among casual learners with its game-like, fun learning and SNS factors. You may have tried and given up Anki before because its SRS is too strict. If you skip learning for a weekend or a vacation, you’d be overwhelmed by hundreds of due words. You might feel as if Anki is punishing you for a break. ...
vocaBull 2 - the Guide to vb2
What is vocaBull 2? vocaBull 2 (‘vb2’ for short) is a modern remake of a flashcard web app: vocaBull 1 (‘vbs’). vb2 is unique in that it adopts the lenient SRS (Spaced-Repetition) learning methodology, which makes vb2 a better fit as a vocabulary building partner in your real life. The github repo is here. Hybrid learning method vb2 adopts a hybrid learning method of: Shifting Learning Window (SLW) — frequency-based repetition for words you are actively learning. Details here. SRS — time-based scheduling for words that are marked as ‘review’ (ie, memorized) Lenient SRS spaced-repetition (SRS) is an algorithm for optimal memorization backed by academic studies (see the Wikipage link for more info). ...
vocaBull 2 - AI-assisted development
I used AIs for vocaBull 2 (vb2) development. It’s not vibe-coded. I designed database tables, Pydantic classes, backend endpoints, UI workflow, practice card design, etc. I wrote more than 90% of backend code and 60-70% of frontend code. In this post, I write how I used AIs for developing vb2. Use multiple AIs (all free-tiers) I think using multiple AIs is a good idea. I can ask the same question to them, which can reduce the hallucination risks. Some AIs are good at coding. Others are good brainstorming partners. ...
Deployed vocaBull 2 on PythonAnywhere
It’s been a while since my last post. I have been developing the flashcard web app (vocaBull (2); vb2). I successfully deployed vb2 in PythonAnywhere (PA) at https://achiwa912.pythonanywhere.com. Note that it’s still alpha quality with debug info shown. In this post, I write what I did for the deployment for the record. Prep on local MacBook Update required Python versions I use python 3.14 for the development on mac. As PA supports up to 3.13, I needed to change the python version for the project. ...
vocaBull 2 - a remake of a flashcard web app
I developed vocaBull which is a flashcard web app a few years ago, and I use it almost every weekday. Introducing vocaBull github repo vocaBull (vb, for short) is deployed on Pythonanywhere.com, but the free plan for pythonanywhere gets slow frequently, forcing me to wait for a few seconds before I see a new flashcard. As vb is Flask and Jinja2-based, it needs to render an HTML page for every flashcard at the server. This has made it frustrating to use vb from Pythonanywhere. ...
Is it OK to say that I hate something?
Probably not. But I have to say that I hate subscriptions because they are monthly cost that are not predictable. We start subscribing services because we think they are priced reasonably. But, subscription fees are completely up to them. They can change fees anytime they want. It’s pretty common that some services are first cheap and later change pricing. Look at Spotify and Netflix. Look at Apple. Look at Google. ...
Going full-stack
(I’ve forgotten to publish this…7/19/2026) Currently, I’m working on the 3rd full-stack project that involves Python+SQLAlchemy+Pydantic+FastAPI backend and JavaScript+Vue+Pinia+TailwindCSS+DaisyUI frontend. Before these projects, I knew Python+SQLAlchemy+Flask+Jinja2+BootStrap, ie, server-side only. I didn’t know that context switching is the hard part for full-stack. If I notice while working on a Vue file that I need to add a column to a database table, I need to change database ORM → Pydantic class → FastAPI → Pinia → Vue. ...
How to force DeepSeek to use English only
I like to talk with AIs and find anomalies in their answers. I think I have a basic understanding of how LLMs work, and so I want to know how those anomalies map to LLM architecture. How GenAI works - Transformer internals Recently, DeepSeek tends to answer in Chinese more often than before. More than half of the time, it even thinks in Chinese (we can observe its thinking/reasoning). As DeepSeek is developed and trained mostly in Chinese, I think this is understandable. ...
Don't ask AI about its new feature
I know that AI doesn’t know much about itself, but I can’t help asking an AI about its new feature. Today, I asked DeepSeek if it has a new memory feature, and it confidently hallucinated that it has a new DeepSeek++ Chrome plugin. As it turned out, DeepSeek++ is actually a popular third party project. What’s hilarious is that humans never mix up a 3rd party feature as their own 1st party one. ...
I think AI should remember me
Some AIs have memory. I’m sometimes surprised how much ChatGPT remembers about me. But, the AI memory is a trick. It’s just a context injection at the start of a new chat session. The real memory for AI (transformer) should be ingrained to matrices W1 and W2 in the MLP layer. How GenAI works - Transformer internals What’s fascinating about the transformer mechanism to me is that the vast amount of world knowledge is kept in the W1 and W2 matrices. ...