Database Practice: SQLite and PostgreSQL

Database Design Database is a system to manage data, which is built on file system offered by OS. Broadly speaking, there are two cases in which database is utilized: OLTP, OnLine Transaction Processing, for supporting daily business OLAP, OnLine Analysis Processing, for supporting data analysis in Data Warehouse Database design is actually the design of data tables (entities) and their relationships. The design purposes are: store information without unnecessary redundancy retrieve information easily and fast Normal Form (NF) NFs are used to eliminate information redundancy. The higher NF, the less redundancy. ...

July 19, 2026

Concurrent Programming in Python

Modern Python has come up to free-threading version. We can achieve real multi-thread programming in Python. Programmers need to be more careful. Generally speaking, multi-thread is easier than multi-process since resource-sharing is straightforward because all threads are in one process. Python offers lots of thread synchronization and coordination primitives! Race Condition and Atomicity Race Condition is a result of uncontrolled access to shared resources. When the wrong access pattern happens, something unexpected occurs. Atomicity is the key to avoid race conditions. If an operation is atomic, no other thread can interrupt it mid-way. It either hasn’t started, or it is completely finished. ...

March 16, 2026

Built-in Data Structures and Algorithms in Python

It’s very important to design or choose the proper data structure and algorithm for various programming tasks. Even when we are using high-level programming language such as Python, it’s still crucial in terms of time and space complexity. In this post, I’ll try to summary the built-in data structures and algorithms in Python as a recap and reference. There are so many details which couldn’t be covered in this post, please refer to Python’s official documents. ...

July 18, 2025