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 blog again. Last time the blog was rebuilt, it was only four months ago in December last year, and at that time, this guy even declared with confidence:
I don't remember how many times I have rewritten the code for my blog, but I am sure this is the (last time in a short period of time). In any case, it's time to put a temporary end to my perfectionism that can't find any balance between customization, maintainability, and cost.
At least he has some self-awareness and added in parentheses that it is the "last time in a short period of time". Indeed, this time was quite short.
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.
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 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 always wanted to change the blog's classification system to a more flexible tag system, but I didn't find 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 confused 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 previous day, which was International Women's Day. No, attacking a male server on Women's Day, right? At that time, I hadn't received any reminders 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 emails 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 troublesome part 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 in this process, what I can learn is actually not as useful as other skills I can learn by spending time seriously, 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 Hugo theme again, which will take a lot of time. Then I thought, would it be better to use a productized blog solution like Typlog or Gridea Web? Since I don't want to solve the problem with time, I can solve it with money. But I gave up too, on the one hand, they didn't give me a very impressive feeling, and 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 has less customization in appearance compared to 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 电书摊, 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 and 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. Looking back now, 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 lack of clear positioning for the blog, so I thought I would have new ideas about this issue after a period of time, or I would be dissatisfied with the current expression. In any case, 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 whether 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 as a whole. 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 essence is similar. The "geek" mentioned here actually refers to myself, representing the person who used to love tinkering, love taking detours, and love playing with all kinds of cyber toys, but in the end couldn't produce anything valuable. So "killing the geek" means saying goodbye to my past self.
As I write this, I suddenly realize that I really like the idea of "saying goodbye to my 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 "saying goodbye to myself".
The final name "極客死亡計劃" 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 to tinker 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 a rebellious character, I will definitely not put the seemingly beautiful word "life" in the most prominent place.
- 計劃 (Plan): Because I am trying to establish 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 experiences, which can be associated with the keyword "plan". But to be honest, the word "plan" is just used to fill the gap.
In short, the content of "極客死亡計劃" 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 wouldn't even think of, was busy with work in school departments, read a lot of books, established my own note-taking system using Obsidian, established my own task management system using TickTick, and it is constantly being updated... 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, while spending more time writing valuable content and creating 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.