2024 quietly slipped away, and I would summarize my experiences of the year with a year of wild exploration. I am currently a student transitioning from a vocational college to a university. Having already graduated from a vocational program, I am aware that university education does not provide me with the skills I need. I hide in the university, skipping classes whenever possible, and approaching exams and major assignments with a mindset of just passing, which has freed up a lot of time for wild exploration.
What I Explored This Year#
I studied big data technology in my vocational program. After completing the technology stack related to big data, I realized that the program established three years ago is severely mismatched with the current job market demands. I followed the curriculum to get through the tedious technologies, only to find that, for me personally, this dull set of skills is useless due to the difficulty in finding employment. I couldn't even get in touch with millions of data points, and it was of no help in daily life. Messing around with this technology stack was also devoid of any fun. After three years of study, the only useful skills I can mention are databases, Linux, functional programming concepts, and machine learning. Therefore, I decided to stop following the educational training plan and learn entirely according to my interests.
Frontend#
During this year's winter vacation, I chose to study frontend development. Frontend is probably the direction where programmers can feel the most sense of achievement. During the winter break, I observed some frontend technologies used by websites I frequently visit and ultimately chose React as the framework to start learning. I followed freeCodeCamp on YouTube to work on two projects. In the first semester of the year, I received a request from a former teacher to collaborate on developing an AI website, using the open-source NextChat and OneAPI for secondary development. Although the project fell through, it made me enjoy the frontend direction even more. Compared to other fields, frontend allows for quick results and positive feedback.
Decentralization#
My ideal vision for the future of the internet is decentralization, minimal regulation, and user-centric design. So, it was natural for me to explore Web3, especially various Dapp applications centered around IPFS. The Dapp format aligns very well with my vision for the future of the internet. From April to September this year, I was continuously learning about IPFS and blockchain-related knowledge, and I also noticed the Orbitdb project, which is a decentralized database based on libp2p. It allows browsers to act as independent nodes for data storage. I wanted to test its reliability, so after writing some demos, I created a web management page for this database. This became my first independent project after learning frontend.
After completing the previous application, my understanding of libp2p deepened, and I attempted to develop my first Dapp project, which had relatively simple functionality: storing RSS Feed files on IPFS, using a wallet for identity verification, and mapping the IPFS stored cid with a smart contract. This project was deployed in a purely static manner on IPFS, requiring no server at all. In terms of results, it aligned well with my vision of decentralization, but as a product, it was a failed project. It was difficult to use, had a high barrier to entry, and IPFS storage was unstable. Consider it an exploration of my own technical values.
Vim#
Around the middle of this year, as my daily coding volume increased, I noticed some tech bloggers using Vim as their primary input method during live streams. I began to learn Vim more systematically, but I found the advanced configurations and plugins too troublesome to continue tinkering with. However, Vim had already become my main input method by then. I configured Vim mode in all editors and browsers, and for any new desktop application, I would check if it supported Vim-style shortcuts. My experience with learning Vim is that it has a certain learning curve, but it's not too high, and you can learn and apply it immediately. After learning it, the benefits were substantial; it was a highly rewarding technical investment—once learned, it can be used for a lifetime.
Double Pinyin Input Method#
Another skill that I feel is a one-time learning experience with lifelong benefits is the Double Pinyin input method. It feels similar to Vim, with some learning barriers, but not too high. I forced myself to use it for a week and quickly got the hang of it, matching the input speed of full Pinyin. The positive feedback was equally strong. Another benefit of learning Double Pinyin is that it helped me better distinguish between front and back nasal sounds as well as flat and curled tongue sounds. Previously, I relied on the error correction function of full Pinyin, but after switching to Double Pinyin, I had to spell correctly.
Card Box Note-Taking Method#
This is also a method that I feel has brought me significant gains. This note-taking method emphasizes atomization, a certain relational structure, and standardized indexing. Due to its atomic nature, I can complete a note in just a few minutes, making it less daunting to start a new note. Additionally, when reviewing random notes, the pressure of review is relatively low. At the same time, because it emphasizes relational structure, I can better recall the connections between various notes when writing new ones. With standardized indexing and the powerful search function of Obsidian, I can easily find the desired content among fragmented notes. Since I started using this note-taking method in October, I have produced over 300 notes, averaging three notes per day, which is indeed quite lazy.
UIUX#
After completing my personal Dapp project, I realized that finishing a project requires not only technical skills but also an understanding of user habits. Simply implementing functionality is not enough; a suitable UI is also necessary. I started learning UIUX in October, primarily through reading books to learn theory, combined with browsing websites and following some favorite bloggers to validate the theories. This year, I read:
- "Made to Stick"
- "Color Design Principles"
- "Cognition and Design"
- "Wow! Different Color Design"
- "Beyond Logo Design"
- "About Face 4"
- "The Design Book for Everyone"
Although I have learned a lot of theoretical knowledge, I haven't applied it in practice yet. However, I now approach various applications with a critical eye, pondering whether they are well-designed, why they are good, and why they are not. Engaging with a new field has indeed changed my way of thinking.
Drawing#
While studying UXUI, I saw someone on V2ex recommending that I should also learn to draw. It doesn't have to be perfect; it just needs to express the images in my mind. Given my experiences with learning Vim and Double Pinyin, I also believe that drawing could be a one-time learning experience with lifelong benefits. If I can develop an interest in it, the rewards will be even greater. So, in late November, I purchased a drawing tablet for over 100 and followed Mark Kistler's "Learn to Draw in 30 Days" tutorial, spending about 40 minutes each day. I finished the tutorial before New Year's Day and plan to learn to draw anime in the new year.
I am most satisfied with this piece after a month of learning.
English#
Since the transition exam from vocational college to university, I haven't continued studying English. My vocabulary has remained around 4,000 words, but after starting to learn libp2p, I needed to tackle a lot of primary materials, and this vocabulary was clearly insufficient. At the end of May, I downloaded Duolingo and persisted until early September, spending about 40 minutes each day. My listening skills and habitual expressions did improve, but my reading ability did not see much enhancement, and reading English documents remained difficult. After September, I switched to Anki and started memorizing the Macmillan 7000, planning to memorize 40 words daily. In the first month, I hadn't built up my review volume, spending about 40 minutes each day. In the following two months, I spent about an hour each day. By the end of the year, I had completed 70% of the vocabulary book, and my vocabulary had grown to nearly 8,000 words. This has greatly helped my reading ability, and I can now tackle "Efficient Linux at the Command Line" and "Command-Line Rust" with this vocabulary. In the new year, I plan to improve my speaking and writing skills.
What Electronic Waste Did I Tinker With This Year#
MacBook Pro 2019 Headless Knight#
I have always wanted to experience a MacBook to complete the last piece of my Apple ecosystem puzzle, but as a student, I couldn't afford it—not even a Mac mini. Eventually, I set my sights on the headless knight, which offers a touchpad, keyboard, and speakers compared to the Mac mini. The 16+256 configuration only cost 1,500. I tried switching to Mac for development, using it from May to September. The system was not as excellent as I had imagined, and the MacBook ecosystem is somewhat closed off. Unlike Linux, where you can easily find any application you want, you can't play games on it either, and the development tools are not as rich as those on Linux. Using a mouse felt less efficient than using a touchpad, but using the touchpad meant dealing with that hot keyboard. I plan to use it as a set-top box.
PixelBook 2017#
This is my favorite product of the year. I got it for 500 yuan, and it has excellent battery life and screen quality, with online design levels that exceeded my expectations for a netbook and thin client. The ChromeOS system, which stitches together Linux and Android, performs well with lightweight applications. The laptop is lighter than a thin laptop but heavier than a tablet, yet it comes with an extra keyboard. I usually use it for classes, reading in bed, taking notes, and watching shows while eating. For more feelings, check out this blog.
PixelBook2017 ChromeOS Initial Experience
Redmi K40#
Unable to endure the poor battery life of the iPhone 13 mini, I repurposed my Redmi K40, which I originally used as a backup phone, flashed LineageOS, and made it my primary device. I found that this second-hand phone, costing 500 yuan, could meet most of my needs. It supports dual SIM cards, has a high refresh rate screen, and offers decent battery life with a near-native experience. After flashing Magisk, I gained powerful permission management and ad-blocking capabilities, which are hard to achieve on iOS. As for Apple's photo synchronization, I continued using iCloud to back up to NAS via the iPhone 13 mini and then sync with the K40. Through GSconnect and Linux system interconnectivity, the multi-device collaboration capability is not inferior to that of Mac+iPhone. The only regret is its poor imaging capabilities; the photos turn out quite unattractive. However, for a 500 yuan device, it meets most of my needs. The smartphone market hasn't seen much progress in the past two years, and those who change their phones every year might want to reflect on whether they really need a new one.
X99 + E5 2690 + Rx580 Hackintosh#
This machine feels like a pure junk enthusiast's whim. I've been watching junk enthusiasts play with foreign trash since middle school, but I never had the money to build one. Now that I can save some living expenses, I spent a total of 500 yuan, using an old case and hard drive. Even though I already have a Hackintosh, I still wanted to build a Hackintosh without considering the need. The tinkering process was somewhat fun, and in terms of performance, it is better than my MacBook 2019, with a higher cost-performance ratio. However, I can't use so many computers by myself, which feels a bit wasteful.
N100 Mini PC All in One#
I bought this mini PC last year, and it has been running stably for two years. It runs a PVE system, with the N100 hosting the main router and OpenWRT as a side router, along with a Windows system filled with various junk cloud storage software for downloading, running a Hackintosh and various Docker containers. The main Docker applications I use are Jupyter Notebook, Immich, and DDNSGo. However, this year I replaced the Hackintosh with Feiniu, swapped Immich for the built-in photo album of Feiniu, and upgraded the original 1TB mechanical hard drive to a 2TB external hard drive because the 3.5-inch mechanical drive was too noisy and occasionally had power supply issues leading to disk drops.
What Am I Using This Year#
- Music Software: NetEase Cloud Music -> TuneFree & YouTube Music
Due to my dissatisfaction with NetEase Cloud's bloat and annoying daily recommendations, I completely switched to the alternative TuneFree, which supports NetEase Cloud login, allows access to my original playlists without needing VIP, and supports downloading songs for offline listening. As a music app, its experience is satisfactory. As for YouTube Music, after encountering ChromeOS and discovering the ad-blocking plugin, I found the experience quite good—clean and straightforward, though it lacks access to niche songs in China. - Browser: Chrome -> Brave
I switched from Chrome to Brave because Chrome's support for Wayland in Linux has always been poor, frequently crashing. I decided to give Brave a try and found that it supports importing Chrome settings, and browser extensions are compatible, allowing for a seamless transition. Brave also allows the tab bar to be placed on the left side, which is suitable for someone like me who keeps hundreds of tabs open, and it natively supports IPFS. Overall, the experience is on par with Chrome, so I continued using it. - IDE: VSCode -> Cursor & LunarVim
I don't need to say much; you've probably heard stories about using Cursor for 10 hours to develop new products, which are mostly exaggerated, but it works well, and writing with it is highly efficient. It is also compatible with VSCode plugins, so I had little reason to switch back. LunarVim is generally used for writing demos, and I use it most often for small Rust applications and for writing lightweight frontend pages and Markdown documents on ChromeOS. The standard configuration provided by LunarVim is sufficient for these scenarios. - Note-taking Software: Obsidian
The reason I chose Obsidian is simple: its functionality meets my needs, it has good cross-platform support, and it's free. I solve note synchronization using a Git solution. - Gnome Plugins:
-
[email protected]
This extension allows you to display icons of applications that support AppIndicator in GNOME. -
[email protected]
This extension provides a KDE application tray for displaying KDE-based application icons in the GNOME panel. -
[email protected]
Displays CPU, memory, and disk usage in the GNOME panel. -
[email protected]
This extension provides control features for audio and video playback. -
[email protected]
Automatically moves application windows to specified workspaces or screen positions based on preset rules. It's very useful for dividing different workspaces. -
[email protected]
GSConnect is a tool that integrates GNOME with KDE Connect, allowing for multi-device interaction with your phone. -
[email protected]
Displays a Pomodoro timer on the panel, generally used as a reminder for prolonged sitting.
-
Here’s a snapshot of my current desktop.
What Am I Listening to This Year#
Since I no longer use NetEase Cloud, there is no annual summary this year, so I'll summarize it myself. I generally listen to music by album, so here are the albums I listened to the most this year. The most listened-to artists this year were Tyler, Radiohead, and Daft Punk—artists I had previously listened to but didn't particularly like, yet this year I happened to hear them and became a huge fan.
- CHROMAKOPIA - Tyler, The Creator
- Flower Boy - Tyler, The Creator
- IGOR - Tyler, The Creator
- Awaken, My Love - Childish Gambino
- Gemini Rights - Steve Lacy
- The Age of Adz - Sufjan Stevens
- Carrie & Lowell - Sufjan Stevens
- The Ascension - Sufjan Stevens
- Javelin - Sufjan Stevens
- OK Computer - Radiohead
- In Rainbows - Radiohead
- Pablo Honey - Radiohead
- BTTB - Ryuichi Sakamoto
- Random Access Memories - Daft Punk
- Discovery - Daft Punk
- Homework - Daft Punk
- SPIRAL - She Her Her Hers
- location - She Her Her Hers
- Days With Uncertainty - The fin.
- There - The fin.
- COWBOY BEBOP - Seatbelts
What Am I Watching This Year#
This year, the anime, TV shows, and movies I watched were significantly fewer than in previous years. It feels like I've either been consumed by short videos or have been busy studying and coding, making it hard to settle down to watch longer films and shows.
TV Shows#
This year, I only watched three series: the "Better Call Saul" series, the "Peaky Blinders" series, and the recently released "Squid Game." My favorite was "Better Call Saul." I liked Jimmy when I watched "Breaking Bad." I had seen the first two seasons of "Better Call Saul" before, but this time I was completely captivated, finishing six seasons in seven days. Aside from watching, I hardly did anything else. The character portrayals were very rich, and it was incredibly satisfying to watch. The impact was strong, just like "Breaking Bad," where several characters were developed over multiple episodes, and none of them had a good ending, which left a sense of regret.
Anime#
I feel like my mindset has changed; the anime I watch now tends to be more slice-of-life, with less pressure and more enjoyment. I can't seem to get through anything that is slightly deeper or heavier.
- Mygo
- The Reincarnation of the Strongest Exorcist in Another World
- K-On! series
- Lucky Star
- High Score Girl
- Baki the Grappler
- Looking Back
- The Bold Party
Is that it? Is that really all? I feel like I've watched so little this year; it seems like I've fallen out of the anime scene...
Summary#
I feel that most of this year was spent on learning and coding. Exploratory learning compared to following a rigid training plan indeed provides more motivation, and learning doesn't feel painful. Fortunately, this state didn't exhaust me; otherwise, I wouldn't have realized by the end of the year that I had hardly any entertainment activities, and I just let the year pass like that. However, I feel that my output this year was somewhat less compared to my input. I hope to adjust the balance between entertainment and learning, as well as between input and output in the new year. I aim to use the skills I learned this year to create more interesting and useful projects, and after learning so much about design, I want to practice it well. At the same time, I hope to improve my English reading and writing skills. Ideally, I would also like to learn to draw anime characters. I also hope to discover more skills that are "one-time learning, lifelong benefits."