If you are an old visitor, then when you clicked on this article, you might have some doubts, because it is obvious - this guy has overturned his own blog again. Last blog reconstruction, it was only four months ago in December last year, and at that time, this guy also solemnly declared:
I don't remember how many times I have rewritten the code for my blog, but I'm sure this is the (last time in a short period of time). Anyway, it's time to put a temporary end to my perfectionism that can't find any balance between customizability, maintainability, and cost.
At least he has some self-awareness, adding in parentheses that it is the "last time in a short period of time," and indeed, it is a short time.
If you are a new visitor, you might as well take a cup of coffee and listen to this fool who likes to mess around, just like other visitors and me.
The Opportunity and Reflection After the Opportunity#
Actually, I was very satisfied with the blog after the last reconstruction, both in terms of design and the experience of publishing. It was quite satisfactory, at least comfortable for me to use. In the first two months of this year, I was willing to spend a lot of time polishing this project, mainly to optimize my user experience. However, soon, in the second semester of my freshman year, because I took on a lot of work for myself, I had less time and energy to spend on the blog. For example, I have always wanted to change the blog's classification system to a more flexible tagging system, but I haven't found time for it until this iteration.
The decrease in energy is one reason, and the direct reason is that in March of this year, the blog was attacked.
At that time, I should have been busy with part-time work outside. When I received the bandwidth usage reminder from Vercel the night before (already exceeded 50%), I was just puzzled and didn't think much of it. But the next day, when I finished my work and checked my email during my break, I found that Vercel had sent me two more emails in the past two hours. One reminded me that my free bandwidth had exceeded 75%, and the other reminded me that it had been used up.
When I logged into Vercel and took a look, it wasn't just used up, it used up 150% of the free quota.
I remember it very clearly. I discovered that my blog was attacked on March 9th. After checking the records, I found that the attacker started the attack on the day before, which was International Women's Day. No, you attack male servers on Women's Day, right? At that time, I hadn't received the reminder from Upyun (because I didn't set up an alarm, it was negligence), and I didn't realize that Upyun was overdue until March 10th. When I checked the bill, I found that this dirty hacker left me with a bill of over 140 yuan.
I was still busy at that time and didn't have time to deal with the blog, so I did some protection and put this matter aside. In April, which is recently, I found that Vercel had sent me an email again. It seems that the 100GB bandwidth used before is not a monthly limit, but the total limit for free accounts. If the usage continues to increase, it is likely to be banned.
So I moved the project documentation that was originally on Vercel to GitHub Pages; some web applications were moved to Railway, and this process went smoothly, with almost no loss.
The more troublesome thing is my blog. My blog is written using Next.js's App Router - if I want to migrate to GitHub Pages, I have to remove the server-side rendering function, and I am not familiar with GitHub Actions, so the learning cost would be high. If I want to migrate to Railway, which is similar to Vercel, I also have to consider whether Railway's free quota is enough.
I can no longer spend an afternoon tinkering with these things like a high school student, and the things I can learn in this process are not as useful as other skills I can learn by spending time on them, so I don't plan to continue using this self-written blog program.
I also thought about using Hugo + GitHub Pages/Actions to build a blog automatic publishing solution, but I gave up later because I definitely won't use ready-made blog themes, and I will probably write my own set of Hugo themes again, which will take a lot of time. I also thought about whether using productized blog solutions like Typlog or Gridea Web would be better. Since I don't want to solve the problem with time, I can solve it with money. But I also gave up because on the one hand, they didn't give me a very impressive feeling, and on the other hand, I still have to tinker with the appearance.
Finally, I suddenly remembered DIYGod's xLog. After searching, I found that this project is still alive and even better than when I saw it a year ago, and it is almost zero cost for me.
Although xLog's customization in appearance is worse than Typlog and Gridea, I finally realized that tinkering with the appearance of the blog is like a bottomless pit. Instead of wasting time on this, it is better to spend more time thinking about how to produce better content.
xLog is a blog publishing platform based on blockchain. Although I don't know much about blockchain, I am willing to explore this field through this platform. Moreover, as a self-proclaimed geek, I still have a good impression of topics related to blockchain and encryption.
After saying so much, the biggest reason for me to choose xLog is: within a few hours of trying to import the blog content into xLog, someone started following my blog. My first follower was Telebookstall, so thank you.
Oh, I also have to thank the person who attacked my blog.
New Name and New Positioning#
You may have noticed that this blog has changed its name, and the new name is "極客死亡計劃" (Geek Death Plan).
The previous name was very simple, completely tied to my name, called "Eltrac's". The reason for choosing this name at that time was mainly because I didn't want to come up with a name. I thought naming was a painful thing. Now I think about it, the reason I had this idea at that time was mainly because I didn't fully understand the positioning of the blog, so I felt that no name could summarize what I wanted to write on the blog.
I didn't want to use a name that was strongly related to the content before, and there was another reason - I was worried that I would want to change the name again soon. However, the root cause of this worry is also the unclear positioning of the blog, so I thought that I would have new ideas about this issue after a period of time, or I would be dissatisfied with the current expression. In short, changing the name all the time is not good.
So why did I finally decide on a specific name this time? Actually, I can't say for sure if I will change the name again one day, but I now think that the positioning of the blog is relatively clear.
First, let's analyze the name from an overall perspective. At first, I thought of names like "杀死极客" (Kill the Geek), but then I thought it was too cliché, so I changed it to another expression, but the core is similar. The "geek" mentioned here is actually referring to myself, representing the person who used to love tinkering, love taking detours, and love playing with various cyber toys, but in the end, couldn't produce anything valuable. So-called "killing the geek" means bidding farewell to the past self.
As I write this, I suddenly realize that I really like the idea of "bidding farewell to the past self". If you have been following me for a while, you may know that I didn't use to be called Eltrac. This name is also a product of "bidding farewell to myself".
The final name "極客死亡計劃" (Geek Death Plan) can be understood by breaking it down into three words:
- 極客 (Geek): Although I mentioned killing the geek earlier, it doesn't mean that I want to get rid of the identity of being a geek. In other words, the word "geek" here has two meanings. The first layer is the self who loves tinkering but cannot create value, and the other layer is the opposite.
- 死亡 (Death): I think death is a topic of eternal discussion for humans from ancient times to the present. It is probably one of the most easily thought-provoking philosophical questions. I also believe that seeking the meaning of life is exploring the meaning of death, and the two are connected - and as this rebellious character, I will definitely not put the seemingly beautiful word "life" in the most prominent place.
- 計劃 (Plan): Because I am trying to build my own note-taking system and task management system, and they are constantly being updated and iterated, so I may occasionally share some efficiency tools and various related insights, which can be related to the keyword "plan". But to be honest, the word "plan" is just used to fill the gap.
In short, the content of "極客死亡計劃" (Geek Death Plan) mainly includes records of exploration related to the Internet and computers, in-depth discussions on various topics in life, and sharing of some efficiency tools.
Future Plans#
Not having to maintain the code and server myself is much easier, and I don't have to worry about the cost of storing images, or adjust the thumbnail size in Image Resizer every time I upload an article, and then compress it with TinyPNG. In short, I can spend more time on personal learning and content creation.
March and April of this year were the busiest two months for me, but I also felt extremely fulfilled. I did a lot of things, found a part-time job that most computer students would not even think of, was busy with work in school departments, read a lot of books, built my own note-taking system with Obsidian, built my own task management system with TickTick, and it is constantly being iterated... I have a lot of experiences that can be written down and shared, and I can't wait to spend more time writing.
In addition, I also want to try to start my paid subscription newsletter, to spend more time writing valuable content and create more value for myself. However, I plan to do this when I have accumulated a certain amount and received enough positive feedback.
That's about it, thank you for reading this.