Although I didn’t publish many posts last year, I still want to capture the highlights of 2024. The New Year’s celebrations are behind us, and all I have is a rough draft for this article. It’s time to look back at what I planned for last year and compare it with what I actually achieved.
Looking Back on 2024
Reading and English Learning – Done ✅
My book list didn’t shrink—in fact, I even added a few new titles. I ended up reading many books that weren’t on my original list — the ones gifted to me or already in physical form—since I didn’t want to lug them around all the time. While transferring my notes from Obsidian to Anytype, I also cleaned up the list. I now have 87 books listed, down from roughly 100 at the beginning of the year.
My progress in English is clear — I managed to read over five books in English. I tracked my progress by adding new vocabulary from these readings into separate Anki decks, making it easy to see my learning curve.
Spanish Language – Partially 🔁
I attended a month-long Spanish course and picked up some basic vocabulary and grammar. However, I soon realized that studying two languages simultaneously isn’t ideal. I’ve decided to focus on one language at a time and may return to Spanish in about a year and a half.
Upgrading to ARM – Done ✅
I had to upgrade to a 16-inch MacBook Pro with the M3 Max sooner than planned. My old MacBook developed a power module issue on the motherboard; despite trying to replace the battery, nothing worked until the service center replaced the faulty component.
Even though I bought the new M3 model just a couple of weeks before the M4 was released, I couldn’t be happier. The new laptop runs perfectly — it's cooler, quieter, and its camera and microphones are much improved. Plus, QEMU on ARM has made testing and development noticeably faster.
One minor drawback is that the laptop came with a Spanish keyboard layout (it was the only one available at the store), but since I type without looking and use an external English keyboard, it hasn’t been an issue.
Two Open-Source Pet Projects – Partially 🔁
Below is the focused, polished translation of the "Два Open-Source Pet Projects - Частично" section:
Two Open-Source Pet Projects – Partially
gopkgview – https://github.com/grishy/gopkgview
I partially completed this project by creating gopkgview, a tool for visualizing dependencies in Go. I spent just a couple of evenings on it, and it turned out quite well. I plan to add new features once the project earns over 100 stars on GitHub, so I'll know that someone besides me is actually using it.
Example usage:
Workflow Engine – Not Public
I also worked on a pet project initially built with Go, HTMX, and Alpine.js, which I later migrated to a Go and SvelteJS stack. As the project grew more complex, I felt the need for a change in technology.
I haven’t released it as open source yet due to emerging ideas for monetization, but I hope to open the code and complete the project in the future. Right now, it's roughly 20–30% finished.
Design and Typography – Done ✅
This summer, I sat down and created a brand-new design for the blog — a completely static site built with TypeScript (using Bun) and SQLite for caching. Everything runs incredibly fast; I don’t even need to construct a dependency tree to determine which parts require rebuilding. I initially started with Parcel, but found it too inflexible. The full rebuild (excluding images) is so speedy that I simply rebuild everything with every change.
I plan to write a post about this process — mainly for my own reference — so I don’t forget the details. Perhaps later this year, if I publish more posts, I’ll add a few new features to the blog and share the update.
Storing Notes Locally – Done ✅
I’ve completely transitioned from using Notion and Obsidian to a self-hosted version of Anytype. Incidentally, one of my upcoming pet projects is focused on simplifying this process for others. I had to dive deep into how Anytype works since everything I host is managed via Ansible. I even wrote Python modules to handle installation and configuration generation. Now, I only need to update the Docker image tags periodically and restart the Ansible playbook.
I left only my work-related materials in Notion, which I back up weekly, though I’ve already switched to monthly backups for the rest. The move to local storage was primarily driven by performance issues — Notion used to be sluggish, and Obsidian didn’t work well on iOS. Anytype, on the other hand, runs smoothly on both iOS and macOS. That said, the self-hosted version needs some refinement — it currently includes a lot of extra components for simple functions, and setting it up almost requires a doctoral-level effort.
So far, I’ve migrated everything from Notion and about half of my Obsidian notes. I’m taking it slow, transferring notes to Anytype as needed when I update them.
Making a Game in Rust – Not Started ❌
The idea of developing a game seemed too time-consuming, and the goal wasn’t very clear. My enthusiasm simply faded. If I had infinite time, I’d probably take it on, but I don’t regret not diving into it. Instead, I ended up working on a couple of load-testing projects at work using Rust.
What Else Happened in 2024
TravelLab – Minor Changes
There weren’t many significant changes to TravelLab, my portable self-hosted computer. I did add the option to use it as a workstation connected to an external monitor, which proved invaluable when my laptop broke.
The most notable update was switching from Gitea to Forgejo, primarily because Forgejo introduced the ability to run CI pipelines directly within it. I migrated all my repositories and settings, although the CI currently still runs on Drone. I plan to phase Drone out once I make some major infrastructure changes.
I also added Anytype for a small group of users. It runs well, though it comes with hefty resource usage for modules that only matter under high-load, distributed deployments—like the module managing node communication and Minio for file storage. When you’re running a single server, these components can be more of a hindrance than a help. At the moment, Anytype is the most “resource-hungry” module on my server, generating the largest number of logs and file changes, as is evident in my btrfs snapshots.
Finally, I added a Travel Router — the Beryl AX (running OpenWrt). I sometimes use it when the local Wi-Fi is unreliable, even for LAN connections. For example, I needed it during a project I did for the Kobo Libra 2 (mentioned below).
Anki and English
Despite occasional breaks, I studied my Anki flashcards on 76.71% of the days over the past year, which I consider pretty good. Of course, it could be higher, but I got a bit tired of reviewing every morning during the summer. I took a break and then came back to it, which I think is perfectly fine — sometimes it helps to switch things up. In addition, I started using LLM and other models to create flashcards based on the books I read.
At the end of each year, I usually take a vocabulary test. In November 2024, my level ranged between 9,303 and 10,450 words (tested multiple times, hence the range). In 2023, it was about 6,401 words, which shows clear progress!
I also developed a Python + Alpine.js system to generate flashcards based on the Cambridge Dictionary and Yandex.Translate. In 2023, it was just a simple Python script without a UI that only formatted the cards and added dictionary audio.
New Devices
Kobo Libra 2
I picked this up because I wanted to experiment with alternative reading apps that support my own custom dictionary. I was interested in testing and building something for this platform. It turned out to be a very convenient way to read non-technical books — I’ve already finished around 15 of them on it.
I even built a small application in Rust and Slint that runs directly on the device and renders on the framebuffer. It was mostly an experiment, though. I currently use KOReader and have also tried Plato. The app I built was actually based on Plato.
iPad Pro 11
I bought this model for drawing and reading technical PDFs that contain a lot of images. So far, I haven’t used it as much as I thought I would and haven’t read that many books on it. It turned out that reading on a computer is often more convenient because you can quickly look things up.
Garmin Venu 3
These are fantastic watches — they have a long battery life and don’t require a subscription to view your data. That’s why I skipped the Apple Watch (which barely lasts a day) and other fitness bands that need subscription plans. Plus, it’s possible to export data from their website — I found a few scripts to help with that.
Travel
This year, I visited many places in Spain and Germany. Here are some of the highlights.
🇪🇸 Valencia, Spain
The most delicious focaccia (an elevated type of sandwich) I’ve ever tried was in Valencia (🇪🇸). In some places, it’s as big as your face, but you can always order half. And of course, the oranges are amazing.
On the other hand, Agua de Valencia didn’t impress me — it’s a cocktail with alcohol and orange juice, but you can really taste the alcohol, which isn’t what I want in a refreshing drink. Tinto de verano (a light drink made with wine, soda, and ice) was much more to my liking.
🇪🇸 Alicante, Spain
Alicante (🇪🇸) won me over with its weather, friendly people, and laid-back pace. I spent a lot of time there, and what surprised me most was the food scene: Japanese ramen, Italian gelato and pizza that will be ready in 2–3 minutes after order, Argentine steaks, Chinese spices and dumplings — even Venezuelan cuisine, which I found a bit too sweet.
If you’re heading to the beach, it’s best to hop on the Tram (the local streetcar) to the neighboring ones — they’re bigger and quieter, without the crowds of the central beach.
I tried countless restaurants, from simple eateries to Michelin-starred spots. Almost all were excellent; only a couple were disappointing. The city lives in a festive mode whole year — it really comes alive after 8 p.m.
It’s an ideal place for a relaxed lifestyle or for families with kids. It’s funny that at local gyms, everyone just called me Sergio Ruso 😁
🇪🇸 Barcelona, Spain
Barcelona (🇪🇸) has the most interesting and experimental architecture I’ve seen in all of Spain—perhaps anywhere. The newly renovated districts are great for leisurely summer strolls in the shade. There are plenty of coffee shops, tours, and hidden courtyards with swimming pools.
I really liked a Chinese spot serving modern tea topped with cream—Charlie’s Tea. I also enjoyed the beautiful seaside train route from Alicante to Barcelona.
It’s a very stylish, lively city. It reminds me a bit of St. Petersburg, only with beaches and sun 🙂. If Madrid feels like Moscow to me, then Barcelona definitely feels like Petersburg.
🇪🇸 Madrid, Spain
It’s the main transport hub in the country’s center — every high-speed rail line goes through it. Sometimes, it’s even faster to travel via Madrid than to go directly. It’s huge and busy, like Moscow, and pretty much has everything.
I mostly used Madrid for practical reasons: picking things up, shopping, or catching flights. Usually, I’d stay overnight between trains and planes, meeting up with friends. I loved it most in the fall — when the leaves turned yellow and started falling. The city’s infrastructure is impressive; there are even underground passages beneath the center that let you traverse the city core.
🇪🇸 San Sebastián, Spain
This city sits between the ocean and the mountains. The ocean here feels completely different from the sea — it’s more majestic and calmer than in Alicante. It’s considered a gastronomic capital — there’s an incredible concentration of Michelin-starred restaurants per square meter.
What impressed me most is how a relatively small city can have such excellent infrastructure. They say this is where the famous Basque cheesecake was invented. I tried it at “the original spot” (based on online research), but honestly, I preferred the version from a popular chain. I also saw the most stunning sunsets of the year here.
🇪🇸 Granada, Spain
It’s a mix of Arabic and European cultures. Although it’s in the south, its higher elevation makes the nights surprisingly cool.
The city itself is great, but accessing its main attractions — especially the Alhambra — and finding audio guides can be frustrating. Granada is as hilly as Tbilisi, and from the highest points, you get an awesome view of mountains with snow on them.
🇩🇪 Berlin, Germany
Compared to Spain, it feels like a completely different world. It’s a huge city with unexpectedly lush greenery and countless contrasts. We stayed in a Turkish neighborhood, which felt like an entirely different city compared to the central areas. Building styles vary wildly, and the people, too. Some places look like upscale Scandinavian neighborhoods, while others feel almost abandoned. And these districts alternate — you don’t necessarily see a steady improvement as you move closer to the center.
Graffiti here is something special — it’s everywhere, with varying degrees of quality. Overall, Berlin is a city full of contrasts in every sense.
A funny situation happened — I stayed in an Airbnb with the host and his dog. Turns out, I get along great with dogs, but the challenge is figuring out where to keep them or how to bring them along. Still, it was a fantastic option if you miss having pets around.
🇩🇪 Erfurt, Germany
A genuine Christmas wonder. It looks like something straight out of a holiday movie — everything is beautifully decorated and glowing. It’s a very cozy, peaceful little town. It might not seem extraordinary on the surface, but it does have its own unique atmosphere.
It’s perfect for leisurely walks, especially during the Christmas markets. By the way, I found some of the prettiest, highest-quality postcards here and ended up buying quite a few.
🇮🇱 Tel Aviv, Israel
After being in Spain, the most striking thing here was the beach — the sand is softer, and the infrastructure is better. The city is constantly evolving to cope with the hot climate. I saw entire neighborhoods being transformed, closing off car traffic to make way for pedestrians. They’re even planning a tram instead of cars.
I was also shocked by the prices and variety in regular stores after Spain. On the upside, the bars here are among the coolest I’ve ever visited — some of them reminded me of those in Saint Petersburg.
Quick Highlights
- Civilisation VI is incredibly addictive but demands a huge time commitment. We only managed to play during New Year’s, and now we’re waiting for the next installment.
- Honest Green is a fantastic place to grab a tasty meal and try something new. Very filling and affordable.
- It’s amazing how different life can look in two cities within the same country—just compare Berlin and Erfurt in Germany.
- I discovered that making jewelry isn’t as hard as I thought. I made some rings during a workshop.
- Riding a Jet Ski is a blast, except when the waves are big.
- Making pizza under the guidance of a genuine Italian chef is both delicious and fun. I took a class where they recommended flour with more than 10g of protein per 100g.
- After tasting Basque cheesecake in San Sebastián, it’s tough to find one equally good in other cities.
- Michelin-starred restaurants aren’t necessarily expensive—especially in Alicante, Spain. It felt like an ordinary restaurant price but with impeccable service and a well-crafted menu.
- The ocean and the sea are two different worlds. The ocean feels so much larger, yet the water itself can be calmer.
- Germany is the kind of place where you’ll find an old CD player lying around without any security right next to a Starlink terminal in the same store.
2024 Summary
-
Travel
- Visited 3 countries: Spain, Germany, and Israel
- Stayed with pets in an Airbnb
- Compiled my own list of tasty dishes in various cities
-
Technology and Tools
- Migrated from Obsidian/Notion to a self-hosted Anytype environment
- Upgraded my setup: WezTerm, Fish, Zed (editor), Cursor (a VS Code alternative)
- Bought a new MacBook Pro M3
- Moved the blog from Gatsby.js to a TypeScript + SQLite stack
-
English Language
- Vocabulary of about ~10,000 words
- Read 5 books in English
- Started watching TV series in the original language
- Added ~700 flashcards to Anki for study from books
-
Hobbies and New Skills
- Learned how to make authentic Italian pizza
- Played Civilization VI
- Tried a "Jet Ski" (PWC)
- Created jewelry at a workshop
- Discovered Michelin-starred restaurants
Plans for 2025
-
Pet Projects
- Complete at least 3 projects:
- Anytype bundle for self-hosting (Go)
- Anki enrichment tool (Python/Rust + SvelteJS + LLM)
- Backup Travel Lab with btrfs to the cloud (Rust)
- Garmin backup (Python)
- Notion backup tool (Python)
- Complete at least 3 projects:
-
English Language
- Read 6 books in English
- Reduce the percentage of new Anki cards to 15% (currently 56%)
-
Blog and Media
- Write 3 articles in two languages
- Produce 2 project videos
-
Technology
- Upgrade my iPhone 11 to a newer model or switch to Android
- Explore the basics of cryptocurrencies and blockchain:
- Understand the technical aspects of how the network operates
- Perform transactions on the network
Work setup at the time of writing:
Thumbnail:
Font: Inter
Photo by Alexander Psiuk on Unsplash