On Personal Knowledge Management
Machine-translated from Chinese. · Read original
Human Brain’s Memory Limitation
The human brain’s memory capacity is limited. I often encounter many problems while tinkering with computers, and after solving them, I forget about them. When I encounter the same problem again, I have to seek help from Google, which wastes a lot of time. Many online knowledge and skills are not worth spending time memorizing. Building a knowledge base to store these skills and knowledge is the best approach. On TL, many people have shared various methods for establishing a personal knowledge management system. There is no one-size-fits-all solution, only what suits you best. I have tried using bookmarks, self-built wiki sites, Evernote, Dropbox, and other tools to build a knowledge base, but I always feel that they are not convenient enough. After multiple attempts, I finally chose to use Zim wiki in combination with GitHub and Dropbox to establish my personal knowledge management system.
Zim Wiki
Zim wiki is a cross-platform personal wiki software. Its Linux version is very useful, without the unnecessary features of Evernote, and it has a fast startup speed, making it suitable for saving text from web pages or terminals. It’s the most suitable tool for simple personal knowledge management. However, Zim wiki lacks synchronization functionality, so I set up GitHub to add this feature. Since each entry in Zim wiki is a plain text document, I only need to set up Git in the corresponding directory of my Notebook and sync the content to GitHub. Then, I can implement automatic synchronization by writing a bash script with git pull and git push commands.
# syncwiki.sh
cd ~/knowledge
git pull origin master
git add *
git commit -m "new"
git push origin master
Automatic Synchronization
To make it more convenient, I modified the Zim program in /usr/bin by adding the following line before sys.exit(1):
os.popen("sh ~/syncwiki.sh")
I saved the new program as zimm. Now, when I open Zim wiki with zimm, it will automatically sync with GitHub before closing. You can also set up a crontab to schedule synchronization.
Cross-System Synchronization
Using GitHub allows me to sync the wiki system between different Linux hosts. For synchronization between Linux and Windows systems, I chose Dropbox. The synchronization method is simple: I created a symbolic link to the Dropbox folder using the ln command and set Zim wiki to open the Dropbox folder on Windows. However, this method has some drawbacks, such as a few seconds of lag when opening Zim wiki on another system after modifying it, and potential conflicts if both systems modify the wiki simultaneously.
Alternative Methods
Although there are some shortcomings, it’s rare to add wiki content on both Linux and Windows systems simultaneously. As I always say, “good enough is good enough.” Besides using GitHub, you can also use other online version control systems, such as Sina’s SAE, to implement wiki synchronization. If you need to share your personal knowledge management system with others, you can use Zim wiki’s built-in http server to share it as a web page. For long-term sharing, you can search for “zim wiki deploy” (author’s blog: blog, GitHub address: GitHub), which provides a script to convert Zim wiki to Dokuwiki.
Remote Synchronization
Alternatively, you can try using ssh -X to remotely start Zim wiki and implement synchronization.
还没有人留言,在下面说两句吧。