Simon Willison’s Weblog
Introducing GPT‑5.4
- Ra mắt GPT-5.4 với hai mô hình API mới: gpt-5.4 và gpt-5.4-pro (đến từ OpenAI).
- Ngày cắt đứt dữ liệu là 31 tháng 8 năm 2025 với bối cảnh 1 triệu token.
- Giá của GPT-5.4 cao hơn một chút so với gia đình GPT-5.2; tăng giá nếu vượt 272.000 token.
- GPT-5.4 vượt qua GPT-5.3-Codex trong tất cả các bài kiểm tra liên quan.
- Có cải tiến trong khả năng tạo và chỉnh sửa bảng tính, bài thuyết trình và tài liệu.
- GPT-5.4 đạt điểm trung bình 87.3% trong các bài kiểm tra mô hình bảng tính, so với 68.4% của GPT-5.2.
- Một hình vẽ của pelican trên xe đạp được tạo ra bởi GPT-5.4.
- Hình vẽ tương tự từ GPT-5.4 Pro mất 4 phút 45 giây và tốn 1.55 USD.
Can coding agents relicense open source through a “clean room” implementation of code?
- Các đại lý lập trình có khả năng tạo ra một phiên bản “clean room” của mã rất nhanh chóng.
- Chardet được tạo ra bởi Mark Pilgrim vào năm 2006 và phát hành theo LGPL; từ 2011, Dan Blanchard duy trì thư viện này.
- Phiên bản chardet 7.0.0 được phát hành với giấy phép MIT, cho rằng đây là bản viết lại hoàn toàn, nhưng Mark Pilgrim cho rằng điều này vi phạm LGPL.
- Dan xác nhận mình có kinh nghiệm sâu rộng với mã gốc nhưng khẳng định rằng mã mới không phải là tác phẩm phái sinh.
- Công cụ JPlag cho thấy sự tương đồng tối đa giữa phiên bản 7.0.0 với phiên bản trước là 1.29%.
- Dan sử dụng Claude cho quá trình viết lại, bắt đầu ở repo trống và không truy cập vào mã nguồn cũ.
- Có một số mẫu đáng chú ý và chi tiết trong repo về quy trình viết lại, bao gồm kế hoạch từng bước.
- Vấn đề phức tạp hơn do Dan đã bị ảnh hưởng bởi mã gốc trong nhiều năm và Claude có thể đã được huấn luyện trên chardet.
Yegor Bugayenko
Fast Software: More Programmers, Not Fewer
- Tác giả kế thừa những đôi giày của anh trai khi mới năm tuổi, không phải vì gia đình nghèo mà vì chất lượng tốt (2026).
- Câu chuyện về phần mềm cũ cho thấy phần mềm “nếu được viết đúng cách” có thể tồn tại qua một thế hệ.
- Các công ty lớn sẽ sa thải lập trình viên không phải vì nhu cầu giảm mà vì không cần những công ty phần mềm lớn (Jack Dorsey đã sa thải khoảng 40% nhân viên công nghệ).
- Giá trị của phần mềm sẽ giảm, tương tự như váy không còn giá trị trừ các thương hiệu cao cấp.
- Phát triển hệ thống ERP mới sẽ chỉ tốn vài ngàn đô la và vài ngày thực hiện.
- Thị trường phần mềm sẽ cần nhiều lập trình viên hơn, nhưng là những người vận hành AI, thay vì những lập trình viên truyền thống.
- Sẽ có thị trường cho nhiều phần mềm tùy chỉnh, như Photoshop hay IDE, mà người dùng sẽ không ngần ngại vứt bỏ để mua mới.
- Sự cần thiết của phần mềm mã nguồn mở sẽ ngày càng tăng, cung cấp nguyên liệu chính cho AI và các nhà khai thác của nó.
- Thế giới mới sẽ cần nhiều lập trình viên (người vận hành AI) hơn nữa vì nhu cầu cho phần mềm tùy chỉnh sẽ gia tăng.
Engineering Leadership
Inside OpenAI’s Engineering Culture: How the Teams Behind ChatGPT Work
- Đội ngũ phát triển ChatGPT nhỏ hơn nhiều so với tưởng tượng của người ngoài.
- Các kỹ sư chiếm số lượng nhiều hơn so với các vai trò khác trong tổ chức.
- Cấu trúc đội ngũ bao gồm hai loại: đội ngũ hạ tầng ngang (horizontal teams) và đội ngũ sản phẩm dọc (vertical teams).
- Đội ngũ hạ tầng chú trọng vào độ tin cậy, chất lượng và hiệu quả phát triển.
- Đội ngũ sản phẩm tập trung vào các vấn đề và chỉ số trải nghiệm người dùng cụ thể.
- Vai trò giữa các kỹ sư và quản lý sản phẩm thường bị mờ nhòa; kỹ sư thường tham gia định nghĩa vấn đề và xây dựng giải pháp.
- Mục tiêu là cho phép nhiều ý tưởng phát triển đồng thời mà không làm giảm tính sáng tạo do quá nhiều cấu trúc.
- Mỗi dự án có một DRI (Directly Responsible Individual), người này chịu trách nhiệm toàn bộ các khía cạnh của dự án.
The Pragmatic Engineer
The Pulse: AWS region knocked offline by drone attack in historic first
- Block công bố cắt giảm 40% nhân sự, nguyên nhân không phải do AI.
- Antigravity ra lệnh cấm cho thấy Google không ủng hộ việc trả tiền cho khách hàng.
- Các cuộc tấn công quân sự gây ảnh hưởng đến dịch vụ cloud lần đầu tiên.
- Các cuộc tấn công bằng drone tại Bahrain và UAE khiến các trung tâm dữ liệu AWS bị gián đoạn.
Martin Fowler
Ideological Resistance to Patents, Followed by Reluctant Pragmatism
- Tôi cảm thấy không thoải mái với các bằng sáng chế, cho rằng chúng gây hại nhiều hơn lợi.
- Bằng sáng chế phần mềm thường được sử dụng như rào cản cho sự đổi mới.
- Tôi đã trải qua tình huống cụ thể ở Hike Messenger vào năm 2016, khi nhận được thông báo pháp lý về việc vi phạm IP.
- Có ít nhất hai bằng sáng chế (US10051104B2 và US20130305164A1) liên quan đến các yếu tố UX cơ bản trong ứng dụng nhắn tin.
- Những yếu tố này giờ đây trở thành công cụ pháp lý, ảnh hưởng đến khả năng đổi mới.
- Martin Fowler đã chỉ ra rằng các bằng sáng chế phần mềm thường thiếu tính mới lạ và có tuyên bố quá mơ hồ.
- Chúng tôi quyết định nộp một vài bằng sáng chế để bảo vệ sự đổi mới của mình trong bối cảnh này.
- Nộp bằng sáng chế đã khiến chúng tôi phải tăng cường trí tuệ và mô tả chính xác ý tưởng của mình.
- Tìm kiếm nghệ thuật trước đã giúp chúng tôi thấy được những công trình tồn tại trước đó và khơi nguồn cho các ý tưởng mới.
- Tôi vẫn tin rằng hệ thống bằng sáng chế có nhiều thiếu sót, nhưng giờ đây tôi hiểu rõ hơn về sự chênh lệch quyền lực.
- Các công ty lớn sử dụng bằng sáng chế như công cụ khai thác tiền bản quyền, trong khi các công ty khởi nghiệp cần bằng sáng chế để bảo vệ công việc của mình.
Daring Fireball
Steve Jobs in 2007, on Apple’s Pursuit of PC Market Share: ‘We Just Can’t Ship Junk’
Pluralistic: Daily links from Cory Doctorow
Pluralistic: Blowtorching the frog (05 Mar 2026) executive-dysfunction
- Vào năm 2018, blog Singletrack đã đăng một bài viết về giao lộ Ipsley Cross, nơi lái xe thường va chạm với người đi xe đạp do “hình học kỳ quái”.
- Hiện tượng “constant bearing, decreasing range” là nguyên nhân chính dẫn đến các vụ va chạm, được hiểu bởi các thủy thủ trước đây (Singletrack).
- Metaphor của “boiling a frog” thể hiện cách nhận thức các thay đổi từ từ khiến con người không thấy được mức độ nghiêm trọng của vấn đề.
- Những thay đổi về khí hậu trong 25 năm qua hầu hết diễn ra từng bước, gây khó khăn cho việc nhận thức về sự cấp bách cần hành động.
- Khủng hoảng có thể thúc đẩy thay đổi nhanh chóng, mặc dù trước năm 2022, châu Âu cũng gặp khó khăn trong việc ứng phó với khủng hoảng khí hậu.
Terence Eden’s Blog
Book Review: Katabasis by R. F. Kuang ★★★★⯪
- R.F. Kuang’s sách mới mang lại tiếng cười sảng khoái chưa từng có.
- Cốt truyện xoay quanh nhân vật phải xuống địa ngục để đưa giáo viên về.
- Kuang khai thác kinh nghiệm cá nhân từ thời gian học đại học để viết.
- Sách có nhiều yếu tố châm biếm, như việc nhân vật muốn đọc Proust.
- Cốt truyện giống như một cuộc phiêu lưu triết học, khám phá logic và ảo tưởng.
- Các nhân vật giúp khám phá mối quan hệ giữa thực tế và học thuật.
- Có một số điểm thiếu chỉnh chu, nhưng tổng thể rất thú vị.
The Old New Thing
The mystery of the posted message that was dispatched before reaching the main message loop
- Khách hàng nghĩ rằng các thông điệp đã được đăng sẽ không được xử lý cho đến khi vòng lặp thông điệp chính bắt đầu, nhưng điều này không chính xác.
- Các thông điệp đã được đăng được xử lý khi ai đó gọi GetMessage hoặc PeekMessage để lấy thông điệp đó và sau đó gọi DispatchMessage.
- Hệ thống không biết vòng lặp thông điệp nào là “chính” của bạn; không có quy tắc nào yêu cầu điều đó.
- Một số công việc chuẩn bị của khách hàng có thể diễn ra trong một vòng lặp thông điệp nhỏ, điều này kích hoạt quy trình gửi và xử lý thông điệp.
- Khách hàng có thể xác nhận lý thuyết này bằng cách đặt dấu gãy ở trình xử lý thông điệp và theo dõi ngăn xếp để thấy các cuộc gọi đang kích hoạt việc xử lý thông điệp.
- Giải pháp là không gửi thông điệp cho đến khi tất cả các công việc chuẩn bị hoàn tất.
Armin Ronacher’s Thoughts and Writings
AI And The Ship of Theseus
- Giá viết code ngày càng rẻ, bao gồm cả việc tái triển khai (re-implementations).
- Một thư viện tên chardet đã được người duy trì tái triển khai từ đầu chỉ dựa vào API và test suite để chuyển từ LGPL sang MIT.
- Tác giả gốc, Mark Pilgrim, phản đối tái triển khai này và coi đó là một tác phẩm phát sinh.
- Người duy trì mới cho rằng đây là một tác phẩm mới và đã chứng minh tính độc đáo bằng JPlag.
- Tái triển khai mới nhanh hơn, hỗ trợ đa lõi và có thiết kế khác biệt so với bản gốc.
- Mã nguồn mở như GPL phụ thuộc vào bản quyền và khó khăn để thực thi, nhưng việc tái viết mã trở nên đơn giản hơn.
- Sẽ có nhiều phần mềm GPL tái xuất hiện dưới dạng MIT hoặc mã nguồn mở.
- Nếu AI tạo ra mã, có thể không đủ yếu tố con người để được bảo vệ bản quyền.
- Vercel đã tái triển khai bash nhưng phản ứng khi Next.js bị tái triển khai tương tự.
- Những thay đổi này có thể dẫn đến tranh luận về giấy phép và bản quyền trong tương lai.
- Tranh luận về copyleft và giấy phép tự do có thể gia tăng khi mã nguồn bị tái sử dụng quá mức.
- Tác giả ủng hộ việc công khai và chia sẻ thay vì hạn chế từ các giấy phép.
matklad
JJ LSP Follow Up
- Trong Majjit LSP, tôi đã mô tả ý tưởng thực hiện UX theo phong cách Magit cho jj, sử dụng giao thức LSP.
- Phiên bản LSP 3.18 sắp tới sẽ có tính năng mới mang tên Text Document Content Request.
- LSP có thể cung cấp tài liệu ảo chưa được lưu trữ trên đĩa.
- Tài liệu ảo này cho phép nhấn mạnh với các token ngữ nghĩa.
- Những hành động như “kiểm tra cam kết” trở thành các code actions.
- Chức năng “goto definition” chuyển từ diff trong tài liệu ảo đến một tệp thực trong cây làm việc.
Andrew Nesbitt
Package Manager Magic Files
- Các trình quản lý gói đều có file manifest và lockfile, nhưng còn nhiều file cấu hình khác quan trọng hơn mà nhiều lập trình viên chưa biết đến.
- Các cấu hình như URL registry, auth tokens, cài đặt proxy thường nằm ngoài manifest.
- File .npmrc giúp cấu hình các thông số cho npm và pnpm, có thể gây rủi ro nếu file này bị đưa vào gói đã xuất bản.
- File .yarnrc.yml là cấu hình cho Yarn, áp dụng các cài đặt quan trọng bao gồm pnpMode và yarnPath.
- bunfig.toml là file cấu hình của Bun, chứa thông tin về registry và hành vi cài đặt.
- pip.conf và pip.ini dùng để cấu hình cho pip, nhưng file cấu hình sai có thể bị bỏ qua mà không có thông báo lỗi.
- .cargo/config.toml là file cấu hình cho Cargo, có khả năng kế thừa cài đặt từ các thư mục con.
- .condarc chứa các cài đặt cho Conda, tìm kiếm từ nhiều đường dẫn khác nhau.
- ~/.m2/settings.xml chứa thông tin về kho và thông tin xác thực cho Maven, nhưng nhiều lập trình viên không biết đến settings-security.xml.
- gradle.properties chứa các thiết lập cho Gradle ở cấp độ dự án và người dùng.
- auth.json giữ tài khoản Composer tách biệt khỏi composer.json để tránh bị tiết lộ.
- nuget.config chứa các cài đặt cho NuGet, tìm kiếm theo cấu trúc thư mục từ dưới lên.
- deno.json kết hợp cấu hình và biểu đồ nhập, kiểm soát nhiều yếu tố trong một file duy nhất.
Susam Pal
Feb ‘26 Notes
- Tôi đã thu thập các ghi chú ngắn về các ý tưởng và tài liệu từ tháng trước, phần lớn từ sách “Algebraic Graph Theory” của Godsil và Royle.
- Tháng này, tôi chuyển sang cuốn “Algebraic Graph Theory” của Norman Biggs, bắt đầu từ chương 15 về tự đẳng cấu của đồ thị.
- Tôi bỏ qua 14 chương đầu vì đã có hiểu biết tốt về chủ đề này từ cuốn sách trước.
- Tôi muốn hiểu kết quả nổi tiếng của Tutte về đồ thị cubic ( s )-arc-transitive phải thỏa mãn ( s \le 5 ).
- Đồ thị có cùng quỹ đạo thì có cùng bậc: nếu ( x ) và ( y ) thuộc cùng một quỹ đạo, thì ( \deg(x) = \deg(y) ).
- Các đồ thị Frucht và Folkman là ví dụ về đồ thị ( k )-đều nhưng không phải là vertex-transitive.
- Đồ thị thang tròn ( CL_3 ) là ví dụ về đồ thị vertex-transitive nhưng không phải là edge-transitive.
- Các đồ thị bipartite hoàn chỉnh ( K_{m,n} ) với ( m \ne n ) là ví dụ về đồ thị edge-transitive nhưng không phải là vertex-transitive.
Jan ‘26 Notes
- Tháng 1 năm 2026, tác giả ghi chú về các ý tưởng và tài liệu trong tháng này, chủ yếu xoay quanh cuốn sách “Algebraic Graph Theory”.
- Cayley graph ( X(G, C) ) được định nghĩa với tập đỉnh ( V(X(G, C)) = G ) và tập cạnh ( E(X(G, C)) = { gh : hg^{-1} \in C } ) với tập kết nối ( C ).
- Đồ thị vertex-transitive có nhóm tự đẳng cấu tác động chuyển vị lên tập đỉnh ( V(X) ), nghĩa là không đỉnh nào có vai trò đặc biệt.
- Đồ thị ( k )-cube ( Q_k ) và các Cayley graphs là vertex-transitive, trong khi đồ thị đường ( P_3 ) không phải như vậy.
- Đồ thị ( Q_3 ) là ( 2 )-arc-transitive nhưng không phải ( 3 )-arc-transitive do sự khác biệt trong kết nối của các đỉnh.
- Đồ thị bipartite không chứa chu trình lẻ; mọi chu trình trong đồ thị bipartite đều có độ dài chẵn.
- Định lý Tutte khẳng định rằng với đồ thị cubic ( s )-arc-transitive, ta có ( s \le 5 ).
- Năm 1973, Richward Weiss chứng minh một định lý tổng quát hơn với ( s \le 7 ) cho đồ thị ( s )-arc-transitive.
- Tutte’s 8-cage có thể được xây dựng từ khối lập phương với các đỉnh được kết nối đặc biệt như trong mô tả.
The Silicon Underground
Remembering the Michelangelo virus
- Virus Michelangelo được lập trình để ghi đè lên 100 sector đầu của ổ cứng vào ngày 6 tháng 3 năm 1992.
- John McAfee đã dự đoán virus này sẽ lây nhiễm 5 triệu máy tính, nhưng điều đó không xảy ra.
- Virus Michelangelo là một ví dụ về virus và logic bomb, với khả năng tự sao chép và hoạt động theo sự kiện kích hoạt.
- Trong thời điểm đó, máy tính Macintosh không bị ảnh hưởng vì virus này chỉ lây nhiễm trên máy IBM chạy DOS.
- Eradication của Michelangelo chỉ cần chạy lệnh FDISK /MBR từ DOS 5 trở lên.
- Virus này đã tạo ra sự hoảng loạn lớn nhưng so với các loại malware sau này, như Melissa hay Code Red, thì nó không gây thiệt hại lớn.
- Michelangelo là lần đầu tiên vấn đề an ninh máy tính được đưa tin trên truyền thông chính thống.
Open Source Projects - Latest Discoveries
A Go-based monitoring agent that finds anomalies and explains them through interactive chat
Build self-updating knowledge graphs that your AI agents can query live
Create native desktop apps with the simplicity of Go and JavaScript
Unlock hidden features in your Android apps with this open-source patcher
A minimalist tiling compositor that gives you complete control over your workflow
Full Auto — What It Feels Like When No One’s Watching
Updated Test Article
Scaling AI/ML Workloads: 3 Architecture Lessons from HashiConf 2023
Introducing ACP: An Open Protocol for Agent-to-Agent Commerce
I built a free browser-based image toolkit with JavaScript
From Black Box to Traceable Swarm: OpenTelemetry Patterns for AI Agents
Cost Tracking, Auth & Production Hardening
Boosting Lightweight ETL on AWS Lambda & Glue Python Shell with DuckDB and Apache Arrow Dataset
Build Your First Paid Agent Service in 10 Minutes
Simple Python Login System
The SaaS Architecture Guide: How to Handle Multitenancy in Rails Routing
How to Audit What Your AI Agents Actually Did — Visual Behavioral Proof with PageBolt
Hacker News: Launches
💬 Launch HN: Vela (YC W26) – AI for complex scheduling
Hacker News: Best
🔥 Pentagon formally labels Anthropic supply-chain risk
🔥 GPT-5.4
💬 The government uses targeted advertising to track your location
💬 A GitHub Issue Title Compromised 4k Developer Machines
🔥 Wikipedia was in read-only mode following mass admin account compromise
💬 Google Safe Browsing missed 84% of confirmed phishing sites
🔥 Judge orders government to begin refunding more than $130B in tariffs
🔥 Good software knows when to stop
🔥 No right to relicense this project
🔥 Nvidia PersonaPlex 7B on Apple Silicon: Full-Duplex Speech-to-Speech in Swift