Thuật toán Consistent hashing: thêm bớt máy chủ mà không xáo trộn toàn bộ dữ liệu Băm chia dư cho số máy chạy hoàn hảo tới khi bạn thêm máy thứ 4 vào cụm 3 — gần như mọi khoá đổi chỗ. Consistent hashing chữa đúng bệnh đó bằng một vòng tròn.
Thuật toán Bloom filter: trả lời 'chắc chắn không có' bằng vài bit Một tỉ URL lưu vào bảng băm tốn hàng chục GB; Bloom filter làm gần đúng bằng vài trăm MB. Nó không bao giờ nói sai 'không có' — và chính điều đó quyết định cách dùng.
Thuật toán HNSW: cách tìm hàng xóm gần nhất trong hàng triệu vector So một vector với một triệu vector kiểu vét cạn không dùng được ở quy mô thật. HNSW đổi độ chính xác tuyệt đối lấy tốc độ lô-ga-rít — và đây là cách nó làm được.
Ngôn ngữ lập trình SBOM và chữ ký số: biết chính xác trong sản phẩm của bạn có gì Khi lỗ hổng lớn nổ ra, câu hỏi sống còn là 'ta có dùng nó không, ở đâu, phiên bản nào'. SBOM và chữ ký số là cách trả lời trong vài phút thay vì vài ngày.
Ngôn ngữ lập trình Go hay Rust cho dịch vụ mạng: chọn theo ràng buộc nào Với dịch vụ HTTP thông thường, cả Go và Rust đều thừa sức — chọn sai không giết dự án, nhưng chọn đúng tiết kiệm nhiều công. Cân theo ràng buộc thật, không theo sở thích.
Ngôn ngữ lập trình Rust: quyền sở hữu giải quyết bài toán gì mà GC không giải được 'Nhanh như C mà an toàn' bỏ sót phần thú vị nhất: cơ chế giúp Rust an toàn cũng chính là cơ chế chặn lỗi đồng thời — thứ không bộ gom rác nào làm được.
Ngôn ngữ lập trình WebAssembly ngoài trình duyệt: chạy mã không tin cậy một cách an toàn WebAssembly có hai đặc tính hiếm khi đi cùng nhau: chạy gần tốc độ mã máy, và bị nhốt hoàn toàn không quyền gì mặc định. Chính sự nhốt kín làm nó hữu ích khắp nơi ngoài trình duyệt.
Ngôn ngữ lập trình Zig và triết lý không phép màu Trong khi ngôn ngữ mới đua thêm tính năng, Zig đi ngược: đọc mã là biết chính xác máy làm gì, không gì xảy ra sau lưng. Triết lý 'không phép màu' và chỗ nó thật sự tỏa sáng.
Phần mềm Local-first: dữ liệu ở máy bạn, đám mây chỉ là bản sao Một hướng thiết kế đang quay lại: ứng dụng chạy đủ khi mất mạng, dữ liệu nằm ở máy bạn, đồng bộ chỉ là tính năng chứ không phải điều kiện sống.
Kinh tế Định dạng mở và khoá nhà cung cấp: chi phí rời đi Không ai chọn công cụ với ý định rời bỏ nó. Nhưng chi phí rời đi chỉ hiện ra đúng lúc bạn cần rời nhất — nên nó phải được tính từ ngày đầu.
Ngôn ngữ lập trình Rust trong nhân Linux: vì sao chuyện này quan trọng Lần đầu trong ba mươi năm, một ngôn ngữ thứ hai được chấp nhận vào nhân Linux. Vì sao — và vì sao khoảng hai phần ba lỗ hổng nghiêm trọng là lỗi bộ nhớ, không phải lỗi trình độ.
Phần mềm Tự host dịch vụ: được quyền kiểm soát, mất thời gian rảnh Tự dựng dịch vụ cho mình nghe rẻ và riêng tư hơn thuê bao. Nhưng chi phí thật — sao lưu, vá lỗi, và nhất là sự chú ý của bạn — không nằm trên hoá đơn nào.
Ngôn ngữ lập trình Chuỗi cung ứng phần mềm: vì sao một gói nhỏ làm sập cả hệ thống Cài một dự án web mới, đếm số gói tải về: thường vượt một nghìn. Bạn đọc mã bao nhiêu? Vì sao một gói nhỏ ở tầng sâu làm sập cả hệ thống, và cách phòng thủ theo mức công sức.
Hệ điều hành io_uring: vì sao mô hình I/O này nhanh hơn hẳn cách cũ Mỗi lời gọi hệ thống đều có phí; máy chủ xử lý hàng trăm nghìn thao tác mỗi giây thì phí đó cộng dồn lớn. io_uring gần như xoá nó bằng hai vòng đệm chia sẻ — và trả giá.
Hệ điều hành Container không phải máy ảo: namespace, cgroup và ảo giác cách ly Hình dung container như máy ảo nhỏ dẫn tới quyết định bảo mật sai. Thực ra nó chỉ là tiến trình Linux chạy trên nhân của máy chủ — namespace, cgroup, và ảo giác cách ly.
Hệ điều hành eBPF: soi vào ruột nhân Linux mà không cần vá nhân Trước đây, muốn soi ruột nhân Linux phải vá nhân rồi khởi động lại — bất khả trên máy chủ đang chạy. eBPF cho nhìn vào nhân đang chạy một cách an toàn, và đây là cách.
Hệ điều hành Hệ điều hành bất biến: khi bạn không được phép sửa hệ thống Cài phần mềm kiểu cũ ghi tệp rải khắp hệ thống; vài năm sau không ai biết máy có gì. Hệ điều hành bất biến giải bài toán đó bằng cách cấm ghi — được và mất.
Hệ điều hành Wayland thay X11: thứ gì thực sự đổi dưới nắp máy X11 được thiết kế cho một thế giới đã biến mất — máy tính đầu cuối nối tới máy chủ phòng khác. Wayland gỡ bỏ giả định bốn mươi năm tuổi đó, và đổi lại vài cái giá.
Kinh tế Chi phí chìm: cái bẫy khiến bạn giữ mãi thứ đã hỏng Tiền đã tiêu không lấy lại được, nên nó không nên tham gia vào quyết định tiếp theo. Biết vậy mà rất ít người làm được — và đây là lý do, cùng cách thoát.
Thuật toán Đọc Big-O cho đúng: khi hằng số quan trọng hơn bậc Big-O mô tả xu hướng khi dữ liệu tiến tới vô cùng — nhưng dữ liệu thật hiếm khi ở gần đó. Khi nào hằng số quan trọng hơn bậc, và vì sao trượt bộ đệm đổi mọi thứ.
AI Embedding và tìm kiếm ngữ nghĩa: nền móng của RAG Tìm từ khoá thất bại khi người hỏi và tài liệu dùng từ khác cho cùng một ý. Embedding biến ý nghĩa thành vị trí trong không gian vector — nền móng của mọi hệ RAG.
Thuật toán Bảng băm: cấu trúc bạn dùng mỗi ngày mà ít khi nghĩ tới Mỗi lần viết d["key"] là một bảng băm đang làm việc. Cấu trúc vô hình nhất trong lập trình — và va chạm, hệ số tải, cú giật băm lại đều đáng để hiểu.
Ngôn ngữ lập trình Ba trường phái quản lý bộ nhớ: gom rác, đếm tham chiếu, sở hữu Mọi chương trình phải trả lời: khi nào giải phóng vùng nhớ đã cấp? Ba trường phái — gom rác, đếm tham chiếu, sở hữu — mỗi cách hy sinh một thứ khác nhau.
Hệ điều hành Bộ nhớ ảo: vì sao chương trình nào cũng nghĩ nó có cả máy Khi chương trình đọc địa chỉ 0x400000, đó không phải vị trí thật trên RAM — một lớp phiên dịch chạy ở mỗi truy cập. Nó là nền cho cách ly, chia sẻ, và vì sao hết RAM thì chậm khủng khiếp.
Hệ điều hành Tiến trình và luồng: vì sao mở 100 tab máy vẫn chạy Máy có 8 nhân mà chạy hàng trăm tiến trình — không phép màu, chỉ là nhân cắt thời gian thành lát mỏng và luân phiên. Tiến trình khác luồng ở đâu, và vì sao 100 tab vẫn mượt.