A Year Remembered Through My Camera Roll

Published:

Note: This piece has not been updated in over 160 days, so some details may no longer be current.

As 2025 winds down, it feels like every big company puts out some kind of year-end recap in December. I figured I might as well join in.

I do not keep a proper diary, but in practice I have something close enough: my phone gallery. Since setting up Immich on my NAS, it has become very easy to scroll backward through the year and see what actually happened, large and small.

The journey begins with the first screenshot of 2025

Ever since I bought my current phone, I have developed a habit of almost never deleting photos. If I do anything at all—especially when dealing with school or other annoying formalities—I tend to take screenshots or photos to keep a record. The only things I regularly delete are blurry shots, privacy-sensitive images, accidental black frames, duplicates, and similar harmless clutter. In two years, that habit has produced more than 15,000 images. It even triggered a bug in Immich; I filed an issue and updated to a newer version, though I still do not know whether it is truly fixed.

Looked at another way, though, that giant mess of images is a fairly complete diary.

That is probably the real reason people write annual summaries in the first place: to hold on to the past. We cannot go back, but it matters that something remains behind, proof that we were here and that we passed through these moments. So using a photo album to revisit the year does not feel strange to me at all.

There are far too many pictures to go through one by one, so only the ones that left the deepest impression will do.

Getting my driver’s license

Finished all the theory test mock questions on 2025-01-05

The biggest achievement of 2025 was probably getting my driver’s license. It is only a C1 license, but a license is a license. At the very least, I now have the basics down and can spend the coming years getting more comfortable behind the wheel.

New Year at home

Cooking zongzi on 2025-01-25

I went home for the New Year.

In some parts of Guangdong, making zongzi during the holiday is part of the tradition, so there is no need to be surprised by that. It is one of the most enjoyable times of the year: helping the family prepare sticky rice and fillings, wrapping everything up, then boiling the finished zongzi in a huge pot.

That part requires a proper roaring fire, so an ordinary kitchen stove is not enough. In the past, the cooking setup was made by stacking large blue bricks into a temporary hearth. In recent years, that has been replaced by a stove made from an iron drum. They are not expensive, and because there is enough demand, it is easy to buy one at the local market.

This is one of the happiest parts of the holiday, especially in cold weather. In places without indoor heating, standing by that fire is a pleasure in itself. The flames crackle, the heat rolls out, and every so often you have to turn around because one side of your body is getting too hot.

Screenshot from 2025-01-26

Of course, New Year also means cleaning. That part is very real.

A coast radio station’s anniversary transmission

Screenshot from a Shanghai coast radio station transmission recording on 2025-02-12

This year marked the 120th anniversary of the Shanghai coast radio station, and to commemorate it, they broadcast a message in Morse code on the air. Anyone who received it could apply for a QSL card, although I did not.

Coast radio stations are a lifeline for ships at sea. Besides the shortwave maritime services they still provide, they once had another interesting role: telephone relay. A ship could register its call sign and prepay phone charges before departure. Once at sea, the crew could contact the shore station by radio, give the relevant number, and ask for a telephone connection. After that, they could call home to tell their family they were safe, or contact the shipping company about conditions at sea. I do not know the exact rates, though I have heard it was around one yuan per minute. In the era before modern marine communications, that was already a very useful service.

In recent years, maritime shortwave has seen less and less everyday use because satellite communication has become widespread. Many small vessels no longer carry shortwave equipment at all, keeping only maritime VHF as required and relying on BeiDou short messages or marine satellite systems for everything else. Some foreign ships have even installed Starlink for crew entertainment. Even on large vessels, shortwave often survives mainly as a backup, while daily communication is handled through satellites. But as long as ships are still sailing, coast radio stations will continue standing by to provide help when needed.

The year large language models became real to me

Trying to run a model on a very weak GPU on 2025-02-16

At the beginning of the year, DeepSeek released its R1 mode, and like everyone else, I wanted to try it. The problem was hardware. The RTX 4060 in my computer simply does not have enough VRAM. Smaller models tend to ramble nonsense, while larger ones spill into system memory and become painfully slow.

Still, this was around the point when I realized just how far large models had come. Since then, I have made a conscious effort to bring them into my workflow whenever they are useful. In practice, the online versions of DeepSeek and ChatGPT are what I use most.

The new shared walkie-talkie rules

Rules for shared walkie-talkies on 2025-02-17

A new regulation took effect in March concerning so-called shared walkie-talkies. In simple terms, the idea is to offer a more powerful but still legal radio option as an alternative to the current mess of unlicensed handheld devices.

To be honest, though, the policy still has not made much of a splash. As of now, Xiaomi seems to be the only company supporting the standard, and nobody else has shown much movement. What worries me is the possibility of a digital radio format war, with incompatible systems competing against each other. Judging from the current situation, that outcome may be hard to avoid.

Buying a pirated disc just to see what it was

A trip to Jiangjun East on 2025-03-17

This was probably not the first pirated disc I had ever bought, but it was likely the first pirated UHD Blu-ray I had picked up. The reason was simple curiosity: I wanted to know how these things were put together. I had also just bought a new Blu-ray drive, so I thought it would make a decent test.

Later I realized it was not really much of a test at all, because the disc was not a true UHD BD. It was just a regular single-layer BD-R, playable on any Blu-ray drive, so there was no practical difference to observe on that front.

The disc is still sitting in an unused guest room next door. The image quality is actually decent, but since everything had been compressed to fit on a single-layer BD-R, the bitrate took a hit. Compression artifacts are visible, and they do affect the viewing experience.

Taking on a commissioned website project

Screenshot of progress bar adjustment on 2025-04-23

Sometime around April—my QQ chat history on the phone was lost, so I cannot pin it down exactly—a friend contacted me about a project and asked whether I could build an official website for it. I said yes.

For a while, that became my routine: writing code in the dorm after class, remote-connecting and writing code during class, basically getting an early taste of what it feels like to do real client work or side gigs.

As for the design approach, the frontend did not use React, Vue, or anything like that. I wrote it directly in JavaScript and CSS by hand. I cannot say with confidence whether that was the “correct” choice, but there is a joke that programmers do not choose a path because it is simple—they choose it because it looked simple at the beginning. The backend was classic PHP. For a straightforward presentation website, there was no need to make life harder than necessary.

I did consider using a ready-made CMS such as WordPress, but eventually found that these systems were either too general-purpose or too specialized. In the end, it made more sense to write a lightweight backend myself and deliver that.

The biggest thing I learned from the project was how wide the gap can be between theory and actual use. For example, after uploading images, I originally planned to rename files on the server using Unix timestamps. On paper, that sounds harmless. In reality, the moment you have concurrency—even very mild concurrency, like uploading two images from the same page—you are asking for trouble. The proper solution is something like UUIDs or Snowflake IDs. Since this was only a simple showcase website without any real high-concurrency backend demand, I settled for appending a six-character random mixed-case string after the timestamp. That solved the problem well enough.

Not every meal requires delicacies. The important thing is to cook according to what is actually on the table.

To be honest, a lot of us are still living a little bit in the past. Promotion means a website, coding means hand-written pages, chatting means QQ, and file transfer means FTP—well, really SFTP. But these things still work, and they work perfectly well. Unless there is some outside requirement or a personal urge to explore something new, there is no real need to switch just for the sake of switching.

After handing over the source code, I earned a bit of money from it and gradually bought a few things I liked—some clothes, for instance, and an extra SSD for the computer.

A full set of new clothes bought on 2025-05-09

Hardware got more expensive

Screenshot of the LTT channel on 2025-07-02

A month or two after I bought that drive, I started hearing that memory and storage prices were going up. At first the increase did not seem too dramatic, but it kept moving.

As for why, one explanation floating around was that the AI industry had been buying in huge quantities. I cannot say whether that was really the full story, but prices definitely rose.

I was relatively lucky. Before the biggest jump happened, I had already brought my main PC and my two PVE machines—one large, one small—to a usable state, so the damage was limited.

“Graduation”

Dorm gathering on 2025-07-04

The quotation marks matter here, because this was not a true graduation in the strict sense. It was just the start of the planned internship period. Officially, I was still a student.

But classmates were about to scatter in different directions, and chances to meet again would be rare, so we had a meal together anyway and treated it as a kind of farewell worth remembering.

A villa trip

Second-floor pavilion area on 2025-08-02

At the beginning of August, I went on a small trip and got a brief look at what people like to call “the rich life.” That is about all there is to say.

I had forgotten to count it earlier, but since it was also a small family gathering, it deserves a place in the year’s record.

Upgrading the PVE host the hard way

Reinstalling the PVE host on 2025-12-07

Two weeks ago, after one shutdown, my PVE host refused to power back on. The original motherboard was dead, so I had no choice but to replace it.

That became my biggest expense of December. On the other hand, once the machine was rebuilt, performance improved, so perhaps it was not entirely a loss.

The quiet part of the year

After I returned home from school in July, there were not many major events left to speak of. Or maybe a better way to put it is that life simply kept moving in an orderly way.

Most days followed the same pattern: wake up, go out for a bike ride, eat breakfast, come back for online classes, take care of ordinary daily chores, have lunch, rest until the afternoon, go out cycling again, come back for dinner, and then start working on my own things.

That routine also explains why so many of my blog posts end up being published between 11 p.m. and midnight. Gathering materials, choosing images, drafting, revising, and polishing the wording can easily consume several hours.

A steady, repetitive life does not always produce dramatic memories. Still, there is a reason people say peace and plainness are a blessing. There is nothing wrong with an uneventful stretch of days.

At the very least, 2025 left me with plenty to remember. We will see what 2026 decides to bring.