Monthly Log: 2024-12

Published on

Original language: Chinese . AI translations: English , Japanese .


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

  1. Input
    Learning: books, novels, essays, videos, podcasts. Any format is fine as long as it feels worthwhile after finishing
    Anime: new shows, older shows, TV anime, movies, just a running record of what I watched
    Others: films, dramas, and anything else that doesn’t fit the first two sections

  2. Random Thoughts
    Maybe I will write down whatever I’m thinking

  3. Output
    Maybe a blog, but I’m not good enough, so maybe I have no output for a whole month (lol)

  4. Travel
    If I went somewhere, I’ll jot it down. If not, then whatever

  5. Misc
    Small things that don’t fit in the categories above


Input

Learning

Recently I’ve been spending most of my study time on Elixir. Thanks to some genuinely good learning materials, getting into functional programming hasn’t been as hard as I had feared.

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 like if else in functional programming.
    In JavaScript, Destructuring Assignment feels somewhat similar to pattern matching.

  • Recursion
    Recursion: the core of functional programming, replacing loop control statements like for and while.
    A finite amount of recursion can be done via decrease or divide.
    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 of body recursion vs tail recursion. Since it repeatedly calls itself, body recursion must keep all call information to compute the final result later, so it consumes much more memory than tail recursion. But tail recursion is also harder to read and understand. You have to balance which one to use.

  • High-Order Function
    Higher-order functions. Combined with Elixir’s pipelining and & 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 similar pipelining. The method is described in MDN - Array.prototype.reduce() - Function sequential piping.

  • Streaming
    Similar to the Enum module, but for processing infinite queues. It doesn’t seem very useful for me right now.

I typed out all the example code from these early chapters by hand. There is still a real gap between understanding something when you read it and being able to write it yourself.

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 what official documentation could feel like. I used to assume official docs were basically giant dictionaries: endless tables of contents, endless links, and every page following the same concept-plus-code-sample template.
But the first half of these docs is instead made up of clear, progressive articles, organized into four themes:

  1. 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.

  2. 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.

  3. 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.

  4. Mix & OTP
    Introduces Elixir’s build tool Mix, plus some tools from Erlang’s OTP (Open Telecom Platform).
    Starting from the simplest, lowest-level process, it gradually expands based on needs to Agent, GenServer, Task, and then more powerful supervision tree and ETS.
    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

The end of the year was busy, work was still work, and this season’s anime also wasn’t especially exciting. As a result, I basically didn’t watch any TV anime this month.

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. Back when it first aired, I only watched the first three episodes before stopping. This time I made it to episode 14.
The production is excellent, the characters are fun, and the script is solid, though I still think the opening song fits the work terribly. Overall, I was very satisfied.
It looks like the next stretch is the First-Class Mage Exam arc. The mood seems to shift from road trip back toward a more familiar school-like Japanese story structure, which doesn’t interest me quite as much, so I’ll pause here at episode 14 and save the rest for 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 a fair amount of Elixir, so in theory I should have been able to整理 some notes out of it.
But that familiar problem showed up again: something feels like a real breakthrough in the moment, or at least mildly worth recording, and then a few days later I look back and think, “does this really deserve to be posted?”
While I keep wavering between knowledge that feels obvious once understood is still worth recording and this is too trivial to write down, those maybe-worth-recording fragments slowly blur and slip away again.
Oh well. If it disappears, then it disappears.

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 a reading 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 deliberately took a day off and got up early, only to arrive at the testing site and realize I had forgotten the documents.
There was an entire stack of materials I needed, and I had failed to bring a single sheet. Even if I turned around immediately, there was no way I’d make it back 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

Now that the December recap is done, 2024 is officially over, or rather it was over three weeks ago and I am only now catching up because of procrastination.
Next I have to think about how to write the annual review.
The original plan was to make it detailed, but after thinking about it a little longer, I should probably keep it simple. Repeating twelve months of monthly-log nonsense in the annual review doesn’t sound all that meaningful.

Anyway, I’ll sketch the annual review. If I finish before Lunar New Year, it’s a success.

Comments