Review of the Week#
The time I can spend at home is getting shorter and shorter. Two months have passed in the blink of an eye. This week, most of my time was spent on setting up my blog and catching up on assignments. There's nothing much to say about the assignments, they were just boring things that had to be done. But I think it's necessary to summarize the process of setting up the blog. First, let's review why I decided to set up a blog:
Firstly, a blog is a great platform for deep thinking. When writing a blog, I have a great opportunity to think deeply. Influenced by other Twitter users, I also started writing weekly reports to at least understand what I have done and thought during this period when I look back on this time in the future. Currently, my main goal is this, and it is also a great opportunity to improve my writing skills. I plan to write some truly useful articles based on what I have learned in the future, but for now, it is too difficult for me. In short, setting up a blog will be a starting point.
Secondly, there have been frequent business adjustments on Twitter recently, such as banning third-party clients and charging for API usage. These have made me pessimistic about the future of this platform. It makes me feel that it is not safe to put my written content on this platform. Similarly, I am no longer willing to be tied to such a platform. The main reason I can't give it up now is that the people I follow are all on it, and it is difficult to change this in a short period of time. In order to reduce my dependence on it, I have decided to expand my channels for information output.
Finally, let's review the process of setting up my blog. First of all, my summary of this process is full of twists and turns and helplessness. The specific steps are as follows:
- I googled tools for setting up a blog and learned about Hugo. Then I found that the blogs I often visit are also built with Hugo, so I chose it.
- Since I had previously learned about GitHub Pages, I searched for tutorials on how to build a blog with Hugo and deploy it to free GitHub Pages.
- Then I created my own Hugo site, and the first problem appeared. After adding the
git submodule
, I kept getting errors when starting the hugo server. After a long time, I found that thesubmodule
repository was not correctly cloned to the local machine. I found the commandgit submodule update
and finally solved the problem. - The next problem I encountered was beyond my understanding: GitHub Actions couldn't correctly deploy the Hugo static files to the corresponding
gh-pages
branch. Every time I ran the workflow, it didn't have any response. And because I didn't understand GitHub Environments, I didn't realize that my workflow had never been run from start to finish. Only thispages-build-deployment
was running. I didn't know why at the time, and I still don't know now. All the configurations and workflow files I used were from the respective Actions documentation and the official Hugo documentation, but they didn't solve this problem. - So, I deleted the repository twice and finally gave up. I could only choose another method that didn't use GitHub Actions and manually deploy it. This method requires two repositories, one for the Hugo site and the other for the corresponding domain repository of GitHub Pages. This method finally allowed me to access my blog through GitHub Pages, but updating it was more troublesome, and it used two of my repositories, which I couldn't tolerate.
- Finally, I copied the contents of a normally deployed repository's workflow to my repository and decided to give it a try. To my surprise, it worked! I'm not sure why, I just know that this time there were two differences from previous attempts: the names of the corresponding steps in the workflow were different, and the key for the input parameter of the final deploy was in all uppercase, while it was lowercase before; the name of the deployed repository was not the domain of the pages, but another name, but I later changed it to the domain name, and it still ran normally.
So far, my blog is running smoothly, although setting it up wasted a lot of my time. I have also learned some lessons from this process: - When encountering problems, many times it may not be your fault. It may be errors produced by the tools or configurations and usage methods beyond your knowledge. So the first thing to do is to eliminate any known issues, such as checking for typos in configuration files or using incorrect parameters. If the problem still exists after eliminating these errors, the next step should be to check the logic for errors through methods such as reading documentation or searching. I think this step should be the most effective way to locate problems, but the only drawback is that it requires a lot of time and effort, and due to the vast amount of information, it may not be possible to find useful information. Therefore, if this step still cannot locate the problem, it is time to try another approach and start over. In short, time is precious, and when encountering problems, you should not stubbornly believe that starting over again will solve everything when you cannot locate the error. If one path doesn't work, try another.
- Before starting a project, it is important to plan ahead and list the services and tools that will be used. You should have a basic understanding of them in advance, which will help you locate problems when they occur. It will also give you a sense of what goals you can achieve with them, preventing wasted time due to unmet expectations.
Exploration of the Week#
Nostr#
Recently, the decentralized Damus based on the nostr protocol has become very popular. I also created an account with the public key npub17yq9a5ua9e5c8389xfy0n0yea6py3slzh0z8e8c77js67nx9glzqcqdjth
if anyone is reading this, feel free to add me. After trying it out, the most impressive experience for me was the registration process, which was incredibly simple. Just copy two strings of random characters, and then your account is created. It was a strange experience. As for other aspects, to be honest, there is nothing worth mentioning. However, I did realize the flaws caused by its decentralized information architecture, such as the inability to modify or delete posts, and the ability to see the information and message timestamps of both parties when logging in with someone else's public key. Therefore, I don't think it will become mainstream, especially with the proliferation of spam and other junk information. Users are concentrated in the top Relay, and Nostr currently does not have good solutions to these issues. In my opinion, it is just a rudimentary version of Twitter with simpler account creation. However, I still believe that Nostr has its own significance. Its popularity and emergence are spreading the concept of decentralized networks to the world. I hope it can succeed.
Finally, after Twitter was transformed by Ma Yilong into its current closed state, I couldn't help but imagine what the future community would be like and how the Internet could truly connect people faithfully and allow information to flow freely. The emergence and popularity of protocols like Nostr mean that we have taken another step towards the future.
I also read some NIP content, but it is too advanced for me at the moment. I can't understand the underlying technologies that implement these protocols. My knowledge is still too limited and insufficient.
Learning Content#
This week, as I mentioned before, I hardly learned anything new. I only learned about Hugo's configuration and setup. However, due to the frustration caused by exploring Nostr NIP, I have started to doubt my learning direction. Since this winter vacation, I have spent most of my learning time on front-end development. However, the more I see outstanding predecessors, the more I feel that my learning ability is inadequate and my existing skills are lacking. I may not be able to excel in the field of front-end development, and I may even stay at the beginner level for a long time. It is difficult for me to obtain a job solely based on this skill. So, at this point, I think I need to adjust my learning focus. I believe I am good at UX, so I should delve deeper into this field and build a solid foundation in UI design. This should be my current priority. Front-end development, or CS in a broader sense, should be a secondary learning goal. Instead of treating them equally as I am doing now, I should spend most of my time on the primary goal.
I feel more and more urgent about time. I hate myself for wasting so much time in the past, but I can't undo it. From now on, I need to learn selectively, plan my time well, and focus on what is important to me.