Công cụ 22/09/2026 6 phút

Git là một cơ sở dữ liệu nội dung địa chỉ hoá: blob, tree, commit

Đa số người dùng Git như một hộp đen với add/commit/push. Nhưng bên dưới, Git chỉ là một key-value store đơn giản: khoá là SHA của nội dung, giá trị là object. Bài này mổ xẻ ba loại object (blob, tree, commit) bằng lệnh git thật — tự tính ra khoá SHA của Git và chứng minh nó băm nội dung, không phải tên file.

Công cụ 22/09/2026 6 phút

Ba vùng của Git: working directory, index (staging) và repository

Ai cũng gõ git add rồi git commit, nhưng ít người biết index (staging) thực chất là gì. Bài này mổ xẻ ba vùng của Git bằng lệnh thật: index là một file nhị phân lưu SHA blob + mode + path, git add ghi blob mới và cập nhật index, và hai lệnh diff soi hai khe khác nhau — hiểu điều này giúp bạn đọc đúng git status và dùng đúng git reset.

Cơ sở dữ liệu 22/09/2026 6 phút

random_page_cost cho SSD: vì sao mặc định 4.0 làm PostgreSQL né index oan

random_page_cost là tỉ số nói với planner đọc trang ngẫu nhiên đắt gấp mấy lần đọc tuần tự. Mặc định 4.0 hợp ổ cứng cơ HDD (thời gian seek), nhưng quá cao với SSD. Đo thật: cùng truy vấn khớp 1% dữ liệu, rpc=4.0 quét tuần tự cả bảng mất 84 ms, rpc=1.1 dùng index còn 7 ms — nhanh gấp 12 lần. Và cạm bẫy hạ quá tay. PostgreSQL 16.

Công cụ 22/09/2026 6 phút

cherry-pick và detached HEAD: bê một commit lẻ, và vì sao HEAD rời không đáng sợ

Bạn chỉ muốn một commit hotfix từ nhánh tính năng sang main, không phải cả nhánh — đó là cherry-pick. Và trạng thái detached HEAD mà bisect/checkout hay đẩy bạn vào khiến nhiều người hoảng. Bài này đo thật: cherry-pick tạo commit mới cùng nội dung khác SHA, và một commit tạo trong detached HEAD mất hay được cứu tùy bạn có đặt tên nhánh hay không.

Công cụ 22/09/2026 5 phút

tar và nén: vì sao tar không nén, và cái bẫy thứ tự cờ khiến bạn mất file

tar chỉ GỘP nhiều file thành một — nén là bước riêng (gzip/zstd/xz). Hiểu lầm này cùng cái bẫy thứ tự cờ -f khiến nhiều người tạo nhầm archive hoặc ghi đè mất dữ liệu. Bài này chạy thật: tar cf vs czf, so gzip vs zstd về kích thước và tốc độ, xem nội dung không cần giải nén, và minh chứng tar -cf data goi.tar báo lỗi.