Before New Year’s break I planned a December recap and a 2024 annual review; after the break ended I still hadn’t started. Isn’t that fine.jpg
Post Structure
-
Input
Learning: books/novels/good articles, videos/podcasts, any format, anything that feels rewarding after finishing
Anime: new shows / old shows, TV season / movies, notes on what I watched
Others: movies, TV series, etc., put here -
Random Thoughts
Maybe I will write down whatever I’m thinking -
Output
Maybe a blog, but I’m not good enough, so maybe I have no output for a whole month (lol) -
Travel
If I went somewhere, I’ll jot it down. If not, then whatever -
Misc
Small things that don’t fit in the categories above
Input
Learning
Lately I’ve been mainly learning Elixir. Thanks to good materials, getting started with functional programming wasn’t as hard as I imagined.
Learn Functional Programming with Elixir
An intro book recommended on the Elixir forum. It’s indeed very readable and explains things clearly. I’m about 60% through.
Quick notes on a few points that left an impression in the first chapters:
-
Pattern Matching
The thing that replaces control structures likeif elsein functional programming.
In JavaScript, Destructuring Assignment feels somewhat similar topattern matching. -
Recursion
Recursion: the core of functional programming, replacingloopcontrol statements likeforandwhile.
A finite amount of recursion can be done viadecreaseordivide.
For infinite recursion (or when the count is unknown ahead of time), you need to think carefully about termination conditions to avoid infinite recursion.
Recursion also has the important concept ofbody recursionvstail recursion. Since it repeatedly calls itself,body recursionmust keep all call information to compute the final result later, so it consumes much more memory thantail recursion. Buttail recursionis also harder to read and understand. You have to balance which one to use. -
High-Order Function
Higher-order functions. Combined with Elixir’spipeliningand& capturing, you can build very intuitive and elegant function call chains. It really feels like an assembly line processing data.
By the way, I found that JavaScript can implement similarpipelining. The method is described in MDN - Array.prototype.reduce() - Function sequential piping. -
Streaming
Similar to theEnummodule, but for processing infinite queues. It doesn’t seem very useful for me right now.
I typed out all the example code from these chapters by hand. There’s still a distance between understanding and being able to write it.
The next chapters build a command-line mini game in Elixir. I plan to type it out along with the book.
Elixir Documents
Elixir’s official docs completely changed my stereotype about documentation. I used to think official docs were just a thick dictionary: a long long directory where every link has the same template, explains a concept, and adds some code samples.
But the first half of these official docs is a set of easy-to-understand, progressive articles, organized into four themes:
-
Getting Started
It’s called an introduction, but it’s more like a rapid onboarding: Elixir data types, core functional concepts, common modules, everyday operations.
After finishing it you get a comprehensive and basic understanding of Elixir. -
Anti-Patterns (or code smells)
After you’ve read/written enough code, you’ll always run into some code that runs, but only runs: the logic is terrible, and reading it makes you tear up.
This section introduces common anti-patterns in Elixir. Each pattern gives bad code, analyzes what’s wrong, and shows how to fix it.
It doesn’t feel limited to Elixir. Many problems are general. People using other languages can also benefit from reading this. -
Meta-Programming
To be honest, I didn’t really understand this part. Eloquent JavaScript also has a metaprogramming chapter, and I didn’t really get it there either. Same here.
But it should be fine. I’ll just read through once to get a rough impression, and study again when I actually need it. -
Mix & OTP
Introduces Elixir’s build toolMix, plus some tools from Erlang’sOTP (Open Telecom Platform).
Starting from the simplest, lowest-level process, it gradually expands based on needs toAgent,GenServer,Task, and then more powerfulsupervision treeandETS.
The best part of this doc is: it walks through a real case. You start with the simplest requirements, write code to satisfy the current needs, then when you want to expand functionality, it shows what modules you should introduce (or what modules can achieve the goal). It also explains what problems you might run into when adding more complex features, and what solutions you can use for those problems.
It doesn’t just tell you how (how), it teaches you why (why).
It really tries so hard to teach me. I’m moved
In short: excellent docs. Recommended~
Anime
End of the year was busy, plus I’m a wage slave, plus this season’s shows weren’t particularly interesting. This month I basically didn’t watch any TV anime.
I do want to watch アオのハコ (Blue Box), but it seems to be a two-cour show, so no rush, I’ll stockpile more episodes.
Dandadan is very well produced, but I’m not that interested in the plot and character designs, so I probably won’t catch up.
I might catch up on 魔王 2099 (copium
葬送のフリーレン Ep.14
I randomly caught up a bit on Frieren: Beyond Journey's End. When it aired, I watched only the first three episodes and stopped. This time I got to episode 14.
Great production (except the OP song doesn’t fit at all), fun characters, solid script. Very satisfied.
Next seems to be the First-Class Mage Exam arc. It goes from a road trip back to the traditional Japanese school-like theme. I’m not that interested, so I’ll stop at episode 14 for now, and catch up after season 2 starts.
Even though I didn’t watch much TV anime, this month I watched movies intensively.
Others
Recent TV/movies. I try not to spoil.
Arcane S2
I watched it last month but forgot to write it in the November Monthly Log. Adding it here.
Production quality needs no comment. The story is fine too. The policewoman is so cool. The ending… is sort of pulled back in, I guess?
Overall I’m quite satisfied.
尼罗河女儿
This might be the first time I’ve watched an art film (or non-commercial film). The whole thing felt like it had no main plot line, and with my face blindness, the already-confusing plot became even worse. I couldn’t understand it.
銀河鉄道999
When 1979 showed up at the end, I was surprised. I knew it was old, but didn’t expect this old: it’s already 45 years.
The imagination still doesn’t feel outdated. Hard to believe it’s from 45 years ago.
But… the male lead is so young. Is he even in elementary school? The female lead could be his mom. And that glass woman… are these people all shotacon?
The kid protagonist has maxed-out protagonist aura: picking up girls, picking up equipment, picking up companions.
The ice tomb in the snow world is interesting. How does it feel for a mechanized person to come back and see their original flesh body?
Personally, I think the ending is very smart: the kid and the goddess didn’t end up together. They were never from the same world. Since it can’t last, it’s better to part here and keep a beautiful memory.
命运石之门 劇場版
The legendary Steins;Gate. I still haven’t watched the TV series (
I was worried that watching the movie directly would make the plot hard to follow, but it actually felt fine.
So where do I find a tsundere red-haired assistant who majors in physics?
Also, the protagonist and the assistant are both mega-tsundere. Can’t they just get married already?
TV series catch-up: added to queue (definitely won’t procrastinate ((
少女歌劇 劇場版
I feel my Japanese listening improved. The first time I watched this, I couldn’t understand a lot of lines and mostly just looked at the visuals. This time I could understand most of the lines, and once you understand the story, the movie feels less “stream-of-consciousness” and more immersive.
The sports-ground Revue between Mahiru Tsuyuzaki and Hikari: the scene where Mahiru pounds the ground startled me too. The locked-room chase segment later is also extremely oppressive. Mahiru-chan is scary.
The Kyoto duo and the labyrinth duo Revue are so beautiful. Call and response!
Of course, Banana’s 皆殺しのRevue at the beginning is as cool as ever. Great.
Except the childhood-memory scenes of Hikari and Karen made me yawn, this movie is endlessly rewatchable. If there’s another re-screening, I’ll go again.
パプリカ(红辣椒)
I thought my Japanese improved when watching Starlight, until Paprika beat me back to reality. Japanese is hard
Paprika seems to be the highest-rated work of Satoshi Kon. I can feel the atmosphere and direction, but I couldn’t understand a lot of lines, which affected my understanding of the plot. I’m too weak.
Random Thoughts
Recently I’ve started trying to keep a diary: just open a Markdown file and record life, plus random thoughts that I don’t know where else to put.
So this section might have less content. After all, it’s already written in the diary, and I’m too lazy to copy it into the Monthly Log again.
Maybe if I have something I want to publish, I’ll paste it here.
Output
This month I studied Elixir, so in theory I could整理 some notes.
But during learning, things that felt like a sudden realization, or felt valuable at the time, a few days later often just feel like: “is this really worth publishing?”
While wavering between knowledge points that feel ordinary after understanding are still worth recording and this content isn't worth writing down at all, those “maybe-worth-recording” points gradually blur and become unreachable again.
Oh well. If it’s forgotten, it’s forgotten.
After saying all this, what I mean is: another blank output month~
Travel
少女歌劇 Special 3 Days

A Revue Starlight Christmas tree in a merch shop 🎄
Reading play + song festival + movie screening: three days, three events. Quick notes:
-
少女歌劇 朗読劇「遥かなるエルドラド・序章」
A reading play with a medieval Europe vibe. In the middle, the Starlight movie BGM suddenly barged in; the Kyoto duo turned into flirting/arguing, Claudine started speaking French. That part was hilarious.
Futaba, Maya Tendo, and Hiryuu: a three-person Revue. I didn’t expect to see a Revue in areading play. Worth the ticket.
After it ended, I scrolled Twitter for a bit. Quite a few people said this isn’t a朗読劇at all, it’s reverse fraud 🤣 -
少女歌劇 音楽総選挙
Everyone around me had prepared penlights. Japanese otaku combat power is terrifying.Meanwhile I had empty hands, exposing myself as a stingy fake fan who won’t spend money on penlights
The program itself was good (though I liked yesterday’s reading play more). They sang 15 songs in total, and even let Seiran sing several songs, but I’m completely uninterested in the outer school. I’d rather have the 99th class sing more (
No Revue, and no encore. After the last song, it ended immediately.Ended like lightning -
少女歌劇 劇場版コメンタリー応援上映
コメンタリー応援上映was a new experience for me: a bunch of people watching together, allowed to comment out loud / wave penlights, plus voice actors interacting in sync. It felt like taking online danmaku into reality.
In the closing remarks, Hinata Sato said it’s her birthday today. She joined the Starlight project at 18, and now she’s 26. In my head I thought she was still in her early 20s. I didn’t realize she’s already 26.
Also: Starlight is an original project, and it has lasted 7 years without cooling down. That’s pretty rare.
After I got home, I struggled for a long time about whether to go to the Starlight concert in early January. After agonizing, I decided not to. All the good seats were sold out long ago. Next time. (Later I saw on Twitter they performed the movie Revue. Regret. I really wanted to see it.)
Walk

As usual, a riverside walk. This time I saw a group of ducks. The blue-pink-purple gradient sky was beautiful, and the water had a tiny bit of moon reflection.
The only regret: I opened the aperture too wide, and the moon got completely blurred. Mistake.
For landscape photos, when you need both foreground and background in focus, the aperture should be at least 7-8.
Misc
License exchange: dark future
I took a day off on purpose and got up early, but when I reached the exam site entrance I realized I forgot to bring my documents.
A whole stack of documents, and I didn’t bring a single sheet. Even if I went home immediately, I still wouldn’t make it in time.
Since that’s the case, I might as well go home and sleep.
A one-day exam-site trip. I didn’t even enter the gate.
There’s no way I’m exchanging this license…
Closing
After finishing the December recap, 2024 is officially over (thanks to procrastination, it ended three weeks ago). Next I need to think about how to write the annual review.
The original plan was to write a detailed summary, but after thinking, I’ll keep it simple (lazy). Repeating twelve months of nonsense in the annual review doesn’t seem that meaningful.
Anyway, I’ll sketch the annual review. If I finish before Lunar New Year, it’s a success.