Personal Programming Notes

To err is human; to debug, divine.

Kubernetes: Pod-to-Node Communication Loss

This post goes over what happens if we misconfigure etcd and flannel to use the same network (e.g., “”) as the infrastructure (e.g., “” node). This newbie mistake is rare but very perplexing and this post shows how to troubleshoot it with busybox container.

Automated Downloading BART Parking Permits


I have been commuting to San Francisco using BART. For BART commutes, before having the Monthly Parking Permit, you usually have no choice but using Daily Parking Permits for car parking. You will often end up having to download multiple PDF files for the daily permits and print them to put on your vehicle’s dashboard. The BART reservation website offers no easy way to download all of them in one click (see the screenshot).

BART Screenshot

Personally, the BART commute itself is not that bad, especially when I usually find a seat. But it is really painful to download every … single … PDF … permit manually before printing them.


This post summarizes what I learnt about Datadog, a third-party monitoring service.

Analytic Functions in MySQL

MySQL has traditionally lagged behind in support for the SQL standard. Unfortunately, from my experience, MySQL is often used as the sandbox for SQL code challenges and interviews. If you are used to work with Vertica SQL, writing SQL statements in MySQL can be challenging exercises, NOT necessarily in a good way, because many useful features are not supported.