Why do I use bidirectional links for note-taking?

The value of a person lies in finding connections between memorized information. I previously recommended bidirectional link software to my friends for rote memorization, and many people asked me “Why use bidirectional links? What are the benefits?”. I will write a short article here to answer these questions. I have tried many note-taking software before, such as Notion, Evernote, and even Typora managed directly with git. Most of the time, I didn’t have the motivation to take notes.

About Anxiety and Procrastination

Procrastination always allows us to live in peace, but the problem does not disappear. – “Pomodoro Technique Illustrated” Current Issues Stress causes anxiety, there is always a lot of pressure in Internet companies, some come from overly high OKRs, some come from colleagues' push, and even you will put a lot of pressure on yourself. For me, it might be all of these, and possibly the pressure given by the morning meeting and weekly report.

Golang: How to Handle Growing Interfaces

The bigger the interface, the weaker the abstraction. Go Proverbs Let’s start with the conclusion. If your Golang interface has too many functions that make it difficult for you to expand horizontally, then split it into multiple interfaces according to its responsibilities, and then use embed to combine them. Problem Encountered Recently, when refactoring a component that manages configurations, we have an interface and more than 5 structs implement this interface.

Using the Pomodoro Technique to Better Utilize Your Time

For me, it’s easy to fall into a state of working all day, being busy all day but not knowing what I’m busy with, leading to anxiety the next day, not knowing what to say at the morning meeting, and only being able to do things that make me feel like I can talk. Why introduce the Pomodoro Technique: To solve this problem, I thought of many methods, such as writing a TODO list every day, but I still wasted a lot of time due to various interruptions, which made it impossible for me to complete the tasks in my original TODO list.

How to kill a process and its descendants in Unix?

Recently, I was maintaining an open source project called air on the weekend. It is a hot loading code tool for Golang, which will monitor local file changes and then automatically reload. Problem encountered Recently, I encountered a particularly interesting problem, that is, when using the kill -9 pid command to kill the process, although it will kill its child process, its grandchild process will still survive. Background In short, our hot loading component will run commands, and then will monitor file changes, once the file changes, it will kill the previous process, then recompile the code, and then execute the running command.