2024 quietly slipped by, 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 realize that university education does not provide me with the necessary skills. I find myself hiding in 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 relevant tech stack, I discovered that the major established three years ago is severely mismatched with current job market demands. I trudged through the tedious technology, only to find that, for me personally, this dull tech was useless due to the difficulty in finding employment. I couldn't even access millions of data points, and it was of no help in my daily life; messing around with this tech stack was devoid of any fun. After three years, 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 break, I chose to study frontend development, which is probably the most rewarding direction for programmers. During the break, I observed the frontend technologies used by some of my frequently visited websites and ultimately chose React as the framework to start learning. I followed along with two projects on YouTube from freeCodeCamp. In the first semester, I received a request from a former teacher to collaborate on developing an AI site, using the open-source NextChat and OneAPI for secondary development. Although the project fell through, it made me like frontend development even more. Compared to other directions, frontend development allows for quick results and positive feedback.
Decentralization#
My ideal vision for the future of the internet is decentralization, minimal regulation, and user-centered design. So, it was natural for me to explore Web3, especially various Dapp applications centered around IPFS. The Dapp format aligns 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 while also noticing the Orbitdb project, a decentralized database centered around 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 development.
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 entry barrier, and IPFS storage was unstable. Consider it an exploration of my technical values.
Vim#
In the middle of this year, with the increase in daily coding volume and seeing some tech bloggers using Vim as their primary input method during live streams, I began to learn Vim more systematically. However, I found the more advanced configurations and plugins too troublesome and didn't continue tinkering with them. Nevertheless, Vim had already become my primary input method by then. I configured Vim mode in all editors and browsers, and for any new desktop applications, I would check if they supported Vim-style shortcuts. My experience with learning Vim is that it has a certain entry barrier, but it's not too high, and you can learn and use it immediately, providing strong positive feedback. After learning it, the benefits were significant; it was a highly rewarding technical investment—one learning experience that lasts a lifetime.
Double Pinyin Input Method#
Another skill that feels like 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, and you can also learn and use it immediately. After forcing myself to use it for a week, I got the hang of it, and my input speed quickly matched that of full Pinyin. The positive feedback was equally strong. Another benefit of learning Double Pinyin is that it helped me better distinguish between nasal sounds and flat and retroflex 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 great gains. This note-taking method emphasizes atomization, a certain relational structure, and standardized indexing. Due to its atomized 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 review pressure is relatively low. Since it emphasizes relational structure, I can better recall the connections between various notes when writing new ones. With standardized indexing, combined with Obsidian's powerful search function, I can easily find the content I want among fragmented notes. Since I started using this note-taking method in October, I have produced over 300 notes so far, averaging three notes a 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. It's not enough to just implement functionality; a suitable UI is also necessary. I started learning UIUX in October, primarily through reading books to learn the theory, combined with browsing websites and following some favorite bloggers to validate the theory. This year, I read:
- "Made to Stick"
- "Color Design Principles"
- "Cognition and Design"
- "Wow! Unusual 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, when using various applications now, I examine them critically, thinking about whether they are good designs, 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 recommend that I should also learn to draw. It doesn't have to be perfect; it just needs to express the shapes in my mind. Given my experiences with learning Vim and Double Pinyin, I also believe that drawing could be a skill that offers lifelong benefits after a one-time learning experience. If I can develop an interest in it, the rewards would be even greater. So, at the end of November, I purchased a drawing tablet for over 100 and followed Mark Kistler's "30 Days to Learn Drawing" tutorial, spending about 40 minutes a day. I completed 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 4000 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 a day. My listening skills and habitual expressions did improve, but my reading ability didn't see much enhancement, and reading English documents remained challenging. After September, I switched to Anki and started memorizing the Macmillan 7000 vocabulary list, planning to memorize 40 words daily. In the first month, I didn't manage to review much, spending about 40 minutes a day. In the following two months, I spent around an hour daily. By the end of the year, I completed 70% of the vocabulary book, and my vocabulary grew to nearly 8000 words. This has indeed helped with reading; 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 trackpad, keyboard, and speakers compared to the Mac mini. The 16+256 configuration only cost 1500. I tried switching to Mac for development from May to September. The system wasn't as excellent as I had imagined, and the MacBook ecosystem is somewhat closed off. Unlike Linux, where you can easily find any application, 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 trackpad, but using the trackpad meant dealing with that hot keyboard. I plan to use it as a set-top box.
PixelBook 2017#
This was my favorite product this year, purchased for 500 yuan. It has excellent battery life and screen quality, and its online design level exceeded my expectations for a netbook and thin client. The ChromeOS system, which stitches together Linux and Android, offers a good experience for lightweight applications. The laptop is more portable than a thin laptop but heavier than a tablet, though 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 tolerate the poor battery life of the iPhone 13 mini, I repurposed the Redmi K40, which I originally used as a backup phone, flashed LineageOS on it, and made it my main device. I found that this second-hand phone, which cost 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 difficult to achieve on iOS. As for syncing photos with Apple, I continued using iCloud, backing up from the iPhone 13 mini to NAS, and then syncing with the K40. Through GSconnect and Linux system interconnectivity, the multi-device collaboration capabilities are not inferior to those of Mac+iPhone. The only regret is its poor imaging capabilities; the photos don't look good. 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 phones every year might want to reconsider whether they truly need a new phone.
X99 + E5 2690 + Rx580 Hackintosh#
This machine feels like a pure junk enthusiast's whim. Since middle school, I've watched junk enthusiasts play with foreign trash but couldn't afford to build one. Now, I can save on living expenses to build it, spending a total of 500 yuan using an old case and hard drive. Even though I already have a Hackintosh, I still built a Hackintosh without considering my needs. 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 the PVE system, hosting the ikukai main router and openwrt as a side router, along with a Windows system filled with various junk cloud storage software for downloads, running a Hackintosh and various Docker containers. The main Docker containers I use are Jupyter Notebook, Immich, and DDNSGO. 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
I couldn't stand the bloated nature of NetEase Cloud and its annoying daily recommendations, so I completely switched to the alternative, TuneFree, which supports NetEase Cloud login, allows access to my original playlists, doesn't require 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 its ad-blocking plugin, I found the experience quite good—clean and neat, though the downside is that I can't find some 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. So I tried Brave and found that it supports importing Chrome configurations, and browser extensions are compatible, allowing for a seamless transition. Brave also allows placing the tab bar on the left side, which suits me as a user who keeps hundreds of tabs open, and Brave natively supports IPFS. Overall, the experience is on par with Chrome, so I continue to use it. - IDE: VSCode -> Cursor & LunarVim
No need to elaborate; you've probably heard many stories about using Cursor for 10 hours to develop new products, even if they are all exaggerated. But it works well, is highly efficient for writing, and is compatible with VSCode plugins, so I have no reason to switch back. LunarVim is generally used for writing some demos, primarily 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 for choosing 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 application icons 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 an integration tool for GNOME and 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 won't be an annual summary this year, so I'll summarize it myself. I generally listen to albums, so I'll list the albums I listened to the most this year. The most frequently listened to artists this year were Tyler, Radiohead, and Daft Punk—artists I had heard before but didn't particularly like until I accidentally listened to them this year 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 number of anime, TV shows, and movies I watched was significantly less compared to previous years. I feel 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 back when I was watching 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. Besides watching, I hardly did anything else. The character development was very rich, and it was incredibly enjoyable to watch. The impact was strong, just like Breaking Bad, where several characters were developed over many episodes, and in the end, none of them had a good outcome, which was quite regrettable.
Anime#
I feel like my mindset has changed; the anime I watch now are more slice-of-life, stress-free, and enjoyable. I find it hard to watch anything slightly profound or heavy.
- 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 too few shows this year; it seems I've fallen out of the habit...
Summary#
I feel that most of this year has been spent on learning and coding. Exploratory learning is indeed more motivating compared to following a rigid training plan, and it doesn't make learning feel painful. Fortunately, this state hasn't exhausted me; otherwise, I wouldn't have realized by the end of the year that I hadn't engaged in much entertainment. I went through the year like this. However, I feel that the output this year has been somewhat less compared to the input. I hope to adjust the balance between entertainment and learning, as well as between input and output in the new year. I want to use the skills learned this year to create more interesting and useful projects and to practice the design knowledge I've acquired. Additionally, I aim to improve my English reading and writing skills. Ideally, I would also like to learn to draw anime girls. I hope to discover more skills that offer "one-time learning with lifelong benefits."