Preface#
This article is a record and reflection on life from 2023-03-01
to 2024-03-16
.
As mentioned in the previous weekly report, I started a drifting plan, which concluded with a journey over the past two weeks from "Hangzhou -> Shanghai -> Huzhou -> Nanjing -> Beijing." Most of the time was spent in Jiangsu and Zhejiang, with no special scenery, focusing more on people and events. Due to my main wallet being stolen without finding out the cause, I reinstalled two main computers and reorganized my development environment configuration; I set up my home Mac Studio as a 24/7 Home Server, running Home Assistant and other applications to control smart home devices, which was a fun challenge; at work, our team has been busy with the Alpha mainnet launch, bringing back a long-lost sense of excitement; and there are many interesting things to share.
Drifting Plan#
The first stop of the drifting plan after the New Year was Shanghai. I have been there dozens of times over the years, with a couple of months spent interning and occasional short stays, usually for business or to meet someone. There were few opportunities for real "living." I didn't choose any bustling areas or arrange any special travel plans; I simply picked a location close to friends and booked a week's stay in a guesthouse, returning to the normal rhythm of work and study.
Occasionally, I went downstairs to the surrounding business district to find food, and on weekends, I met up with a long-lost college roommate for dinner. The remaining time was spent working in the hotel, and I finally finished watching "Westworld," which I had marked for a long time. Coincidentally, a colleague lived just a couple of kilometers away, leading to a small team-building gathering of three.
Next, I went to Huzhou, staying at my friend Xiao's home for a week. Our meeting stemmed from a tweet he posted a year ago while wandering around, suggesting that friends in Hangzhou could meet up. At that time, I had just returned to Hangzhou, filled with many uncertainties and expectations for the future. I mustered the courage to invite him for dinner and a walk by West Lake. Although it was our first meeting and we had no prior connection, it felt sincere and trusting.
Later, he moved to Huzhou. I had planned to meet him in August, but due to various reasons, it didn't happen, which was a bit regrettable. So, I took the opportunity to meet him during this drifting trip. We hiked up the mountain on wild paths in Mogan Mountain, strolled along the cliffs of the Anji Cloud Grassland, and visited two digital nomad communities, which I found very appealing. This year, I seem to have found a long-lost sense of relaxation in life, becoming more willing to meet people and experience things. Life is not just about work and study; everything related to people has become more attractive to me, and with deeper connections with many "online friends," my online and offline relationships have gradually blurred.
Thanks to the company's "Work Together 1 Hour" every Wednesday, a colleague recommended the hot springs in Tangshan and the forest bookstore in Mogan Mountain. I arranged to meet with a senior in Nanjing, spending a pleasant week and starting to explore some weekend destinations, making life feel more concrete.
Wallet Theft and Device Reinstallation#
Recently, I reinstalled the system on my laptop and desktop at home, prompted by the unfortunate theft of my main wallet. According to on-chain records, it happened around noon on the first day of the New Year, when all assets in the wallet (including some airdrops from participating in open-source projects) were converted to ETH and BNB and transferred away. There were also my ENS and some NFTs in the wallet (but the hacker didn't care about those, so they were left behind). The overall financial loss was not significant, but since I couldn't find out where the private key was leaked, I had to reinstall all my device environments, which was quite a project.
Since all systems are macOS, I was quite familiar with the system settings and software aspects. I mainly referred to my personal toolbox project "GitHub - yu-tools," but I made quite a few reductions, keeping only the essentials. I found that after uninstalling Rewind, my MacBook Pro's battery life improved significantly, allowing me to go out without needing to bring a charger.
Additionally, I took the opportunity to organize my software installation sources, development environment management, and command line configuration, and I tried out the "x-cmd" project developed by a friend's company.
With ohmyzsh, I simplified my command line configuration to just a few lines, allowing me to manage various environments and command line tools easily with commands like x env
.
Finally, I used x env
to manage my Go, Node, and Python development environments, eliminating the need to install nvm and set environment variables manually. I also experienced enterprise-level customer support (meaning I could directly bombard a friend on Telegram when I encountered issues 🤣). This will become my standard installation configuration, and I am still deeply experiencing it.
Additionally, I unified the management of SSH keys, GPG signatures, etc., between the two devices, using Elpass for password management and automatic server login, achieving a seamless switch between commuting and staying at home.
Home Server & Home Assistant#
Perhaps it's because I'm getting older, I can't escape the three major curses of routers, chargers, and NAS. I used the Asus AC86U router that I got from STRRL last year, flashed with the latest Merlin firmware, which is sufficient, so I didn't bother with soft routing anymore. As for chargers, after trying out the transparent charging treasure from Shanjiji, a 100W GaN charger, and a small electric charger from Hard Candy Factory (which I'm a bit hesitant to use now), I cooled down.
Eventually, I turned my attention to NAS. After chatting for a while with Ares, a reliable operations and NAS DIY enthusiast in our group, I decided to use my home Mac Studio as a Home Server.
The first step was to connect all my smart devices to Home Assistant. However, since it uses the Apple M1 chip, there was no ready-made official solution. After a lot of tinkering, I finally followed the article "Run Home Assistant on macOS With a Debian 12 Virtual Machine" to install an Arm architecture Debian virtual machine using UTM, running the full version of Home Assistant inside, and mapped the interface to the public network using frp. I currently operate it directly through the iOS app and the web version. Due to the virtual machine's network mode issues, I can't add it to Apple's Home App via HomeKit Bridge, but I can link all my Xiaomi, Yeelight, and Pet Feeder devices, which is sufficient for now.
Additionally, as a Home Server, it runs 24/7 with almost no noise or power consumption. I enabled SMB file sharing, SSH remote login, and remote VNC desktop control, ensuring that I can access my home devices while outside through internal network penetration.
To ensure security and stability, I adopted three different internal network penetration solutions.
- frp
- Surge Ponte
- Cloudflare Argo Tunnel
I have been using the first solution for nearly two years, and I have detailed it in the article "Developing a Thin Client Workflow Based on frp Internal Network Penetration." It requires a public server but is simple to configure and stable. Currently, I only keep the ports for SSH and Home Assistant.
The second solution allows for easy internal network penetration between macOS/iOS devices using Surge software. You can find detailed information in the "Surge Ponte Guide." It requires a proxy line that supports UDP, but aside from that, it's almost plug-and-play. I use it to access files on my home Mac Studio and some local services, and I can also directly access and configure my home router externally, mainly for personal use.
The third solution was recently added after I saw the article "Accelerate and Protect Your Website with Cloudflare Argo Tunnel (cloudflared)." Previously, I had manually configured it using the cloudflared command line tool, which was somewhat cumbersome, so I hadn't practiced it. Recently, Cloudflare integrated it into Zero Trust, allowing for various operations and configurations to be completed through the interface. I use it to run some public services that need to be exposed on my home server, such as running codellama:70b with ollama a few days ago, and then accessing it directly through ChatKit. The experience was quite good, but the generation was too slow, so it was just a taste.
Coincidentally, our factory's Alpha mainnet has recently launched, and I plan to run a public node on the Home Server later, but I can't afford it right now 🤣.
VR Driving Lessons#
Due to some upcoming self-driving needs, I re-enrolled in a driving school to start learning. This driving school has VR driving practice facilities, and I found myself less resistant than I had imagined.
Others#
There doesn't seem to be much else interesting happening, caught in a cycle of busyness and anxiety over unfinished tasks, but everything is slowly getting better.
GitHub provided a free Copilot license for open source, allowing me to continue enjoying code completion and Copilot Chat, along with Claude 3 Sonnet and the GPT-4 Token I got from "burn.hair," which can meet all my coding and various needs.
Oh, and I managed to arrange a meeting with my idol programmer "Randy" at the end of the month in Beijing!!!
Interesting Things and Items#
Inputs#
Although most interesting inputs are automatically synced in the "Yu's Life" Telegram channel, I still selected a portion to list here, making it feel more like a newsletter.
Books#
- The Monk and the Philosopher, some reflections on religion and philosophy; I just started reading it.
- The Red and the Black, I saw a video explanation that left a deep impression regarding Julien's pride and the arrogance it manifests; currently reading.
Collections#
- Million Lint is in public beta | Million.js
- Discover Daily by Perplexity
- Ehco Relay
- RSS3 Alpha Mainnet
- Velja — Sindre Sorhus
Articles#
- The Points of Happiness – Rainbow Line
- Why I Like Road Trips | Salted Bean Paste
- Software Has Eaten The Media
- No-Risk Annualized 360%? Crypto Arbitrage Explained for Beginners - TARESKY
- How NAT Traversal Works
- The Collapse and Rebirth of a Six-Year Open Source Project - DIYgod
- Creating an Efficient Daily Quest System with Notion Calendar | Salted Bean Paste
- Run Home Assistant on macOS with a Debian 12 Virtual Machine – Siytek
- Using Cloudflare Argo Tunnel (cloudflared) to Accelerate and Protect Your Website | Nova Kwok's Awesome Blog
Videos#
- I Realized That the Best Way to Change My Luck is to Get Married!
- Study Vlog #48 | A New Beginning at 26 | Programmer's Evening Study Routine | Some Small Gifts I Hope You Like
Movies#
- Monster, it indeed fits the theme Hiroshi Kore-eda wanted to describe, but perhaps too many metaphors were added, making it hard to convey, and I felt a disconnection between the plot and emotional rhythm.
- Zhou Chu Removes Three Harms, crime films from Taiwan indeed have a unique flavor; the theme and visuals are quite bold, but it's more of a visual thrill than anything else, and the portrayal of character personalities and changes feels a bit rushed.
- Westworld, I still prefer the first two seasons' park part, including William's transformation. The later seasons might have aimed to showcase a grand awakening of consciousness and self-choice, but it felt a bit like child's play.
Series#
- The Chef of the Geisha House, currently watching.
Music#
- Photograph by Ed Sheeran
- Gentle Surface by Zhao Dengkai
- Different Lives by Fly By Midnight
- After the Love Has Gone by Earth, Wind & Fire
- IN THIS WORLD - feat. Ryuichi Sakamoto Vocal: Hikari Mitsushima by Mondo Grosso