This is Yaobin, a software developer.
Being a software developer, I am maintaining my tech blog in yaobinwen.github.io which discusses topics related with computer technologies.
yaobinwen/robin_on_rails contains the notes or thoughts that I take when I read technical articles. The notes and thoughts in this repository may not be well structured yet,and my plan is to gradually turn them into articles once I've accumulated enough in the related topics.
Happy Hour ๐ป is my personal task tracker.
yaobinwen/work-env contains the scripts, guides, and programs that help me quickly set up my own work environment.
Sometimes a technical topic is best explored with code or a sandbox environment. I've created the following GitHub repositories for such topics:
- yaobinwen/backporting-gl2ps: This repository discusses the issue I ran into when backporting
gl2ps
from Ubuntu Impish to Ubuntu Bionic by looking deep into two packages:debhelper
and CMake. - yaobinwen/cpp-static-dynamic-linking: My study on how GCC static linking and dynamic linking should be configured to work.
- yaobinwen/git-log-S-G: Explain how
git log -S
andgit log -G
work using the repository itself. - yaobinwen/web-box: My notes and code of learning web development, including React.js, MUI, node.js, and Tornado web server.
- yaobinwen/ssh-tunneling-explained: Explain what is SSH tunneling and how to use it.
I'm currently working on the following projects but haven't finished them yet:
- yaobinwen/Robin-on-Math: My notes of learning mathematics.
- yaobinwen/local-https: Deploy a local HTTPS web service which is good for local testing and experimenting.
- yaobinwen/cmake-explained: A tutorial of modern CMake.
- yaobinwen/document-shredded: This project collects documentation good practices with examples and bad practices as counter-examples in order to create a repeatable process of creating easy-to-understand documentation.
- yaobinwen/Linux-Lab: How to create a home lab to study Linux kernel and C/C++ libraries (and possibly everything else).
- yaobinwen/dpkg: I work on Ubuntu and manage the Debian package building and publishing in my company, so I use dpkg(1) a lot. I forked the source code in order to learn the tool and Perl. See my README file dpkg: Annotated Version.
- Along with
dpkg(1)
, I also use yaobinwen/debhelper tool suite.
- Along with
I'm using the Guidelines to help me keep the good habbits and remind me of the good practices I want to do in my daily life. These guidelines are mostly about the non-technical aspects of my life, such as the physical and mental health, the mental models I want to internalize, etc.
- Thoughts: My personal thoughts on things that may or may not be important.
- Non-tech books, articles, movies, shows, talks, and so on.
- Chinese: Being a Chinese, I surely learned Chinese in schools. However, I didn't realize why I had to learn the language if it's already my mother tongue. I learned everything with the purpose of passing the examinations. One day in 2018, when I was sitting in my apartment in Pittsburgh, PA, it occurred to me that I had always learned Chinese for examinations but not for the language itself. Since then, I started to re-learn Chinese, including the classic Chinese literature.
- English: Originally from China, currently living in the United States, I need to keep learning English.
- Nonviolent Communication (NVC): Being an NVC practitioner, I believe this communication method can improve the quality of life, for me and others around me.
- (TODO: I should probably integrate NVC into my daily guidelines.)