Simon Willison’s Weblog
swift-justhtml
- Emil Stenström phát triển JustHTML trong Python.
- Kyle Howells xây dựng một parser HTML5 không phụ thuộc vào thư viện cho Swift.
- Các kết quả benchmark cho thấy tổng thời gian phân tích của các ngôn ngữ là:
- Rust (html5ever): 303 ms
- Swift: 1313 ms
- JavaScript: 1035 ms
- Python: 4189 ms
Your job is to deliver code you have proven to work
- Kỹ sư phần mềm phải cung cấp mã đã được kiểm tra để đảm bảo tính hiệu quả, không thể chỉ dựa vào quá trình code review (18 tháng 12 năm 2025).
- Bước đầu tiên để chứng minh mã hoạt động là kiểm tra thủ công; chưa thấy mã hoạt động đúng thì mã vẫn chưa được coi là hoạt động (Kiểm tra thủ công là kỹ năng cần thiết).
- Phải ghi lại quá trình kiểm tra, có thể sử dụng lệnh terminal và đính kèm đầu ra vào nhận xét trong code review (một ví dụ gần đây được nhắc đến).
- Bước thứ hai là kiểm tra tự động; mỗi thay đổi nên đi kèm với bài kiểm tra tự động để đảm bảo nó hoạt động trong tương lai.
- Kỹ sư cần tránh bỏ qua kiểm tra thủ công vì nghĩ rằng kiểm tra tự động đã đủ; đây là một lỗi thường gặp và thường dẫn đến tiếc nuối.
- Các công cụ LLM đang phát triển mạnh mẽ và có thể thực hiện kiểm tra mã để đảm bảo mọi thay đổi hoạt động chính xác.
- Kỹ sư cần học cách sử dụng các công cụ này để xây dựng các bài kiểm tra tự động và kiểm tra thủ công cho mã của họ.
- Khoảng cách giữa bài kiểm tra tự động và thủ công khá nhỏ, nhưng cần lưu ý cách thức thực hiện cho từng loại.
- Lợi ích lớn của các bài kiểm tra tự động là các công cụ lập trình thường tự động mở rộng bộ kiểm tra mà không cần nhắc nhở.
- Tạo ra mã kiểm tra chất lượng tốt là kỹ năng phân biệt kỹ sư cấp cao và cần phải được phát triển.
- Vai trò của con người là quan trọng, vì máy tính không thể bị truy cứu trách nhiệm cho mã họ tạo ra.
- Khi gửi PR, cần phải có bằng chứng rõ ràng rằng mã hoạt động như mong đợi.
Inside PostHog: How SSRF, a ClickHouse SQL Escaping 0day, and Default PostgreSQL Credentials Formed an RCE Chain
- Một chuỗi tấn công RCE (Remote Code Execution) được phát hiện trong nền tảng PostHog do Mehmet Ince mô tả, kết hợp nhiều lỗ hổng khác nhau (đã được báo cáo và sửa chữa).
- Tấn công SSRF (Server-Side Request Forgery) được thực hiện thông qua hệ thống webhook có kiểm tra URL không chặt chẽ.
- URL bị tiêm dẫn đến việc thực thi truy vấn SQL trên PostgreSQL thông qua ClickHouse:
http://clickhouse:8123/?query=SELECT ++FROM+postgresql('db:5432','posthog',\"posthog_use'))+TO+STDOUT;...
- Truy vấn này cho phép thực thi lệnh shell thông qua COPY … FROM PROGRAM.
- Kết nối đến địa chỉ IP 172.31.221.180 trên cổng 4444 được thiết lập, mở một reverse shell cho phép kẻ tấn công thực hiện các lệnh tùy ý.
- Lỗ hổng này liên quan đến chức năng postgresql() của ClickHouse và một lỗi thoát (escaping bug) đã được khắc phục.
Engineering Leadership
How to Start With Public Speaking as an Engineer or Engineering Leader
- Tôi tham dự hội nghị TechLead tại London và nói về ảnh hưởng của AI đối với Lãnh đạo Kỹ thuật.
- Hai điều quan trọng là: quản lý kỳ vọng không thực tế từ lãnh đạo công ty và sự gần gũi giữa các vai trò trong kỹ thuật.
- Hội nghị là cơ hội tốt để học hỏi và kết nối với những người cùng chí hướng, nhất là trong bối cảnh nhiều kỳ vọng không thực tế về AI.
- Bài viết này chia sẻ hướng dẫn bắt đầu với public speaking cho kỹ sư và lãnh đạo kỹ thuật.
- Lợi ích của public speaking bao gồm: giúp người khác và củng cố kiến thức của chính mình.
- Public speaking xây dựng uy tín và mở rộng cơ hội nghề nghiệp cho người nói.
- Kỹ năng giao tiếp được cải thiện thông qua việc tham gia public speaking (ví dụ: Pramoda Vyasarao đã phát triển mạnh mẽ từ một kỹ sư nhút nhát thành một nhà lãnh đạo giao tiếp giỏi).
- Nhiều kỹ sư lo lắng về kỹ năng giao tiếp khi nghĩ đến public speaking, nhưng việc chia sẻ kiến thức và giá trị là điều quan trọng nhất.
Tech World With Milan Newsletter
10 software essays that changed how I think
- Các bài tiểu luận về phần mềm đã thay đổi tư duy kỹ thuật của tác giả qua thời gian.
- “Choose Boring Technology” của Dan McKinley khuyến khích sử dụng công nghệ ổn định để tối ưu hóa hiệu suất.
- McKinley nhấn mạnh rằng đổi mới là nguồn tài nguyên hạn chế và nên được sử dụng khôn ngoan.
- “Parse, Don’t Validate” của Alexis King dạy cách xử lý dữ liệu đầu vào hiệu quả hơn bằng cách phân tích thay vì xác thực.
- Thay vì chỉ xác thực dữ liệu, tác giả khuyến nghị tạo ra loại dữ liệu phong phú hơn để dễ dàng quản lý trạng thái không hợp lệ.
- Tác giả nhấn mạnh việc sử dụng công nghệ “không thú vị” giúp giảm thiểu vấn đề và tăng tốc độ làm việc cho nhóm.
- Việc chọn công nghệ và công cụ phù hợp giúp cải thiện sự dễ dàng trong việc onboard thành viên mới và giảm thời gian xử lý công cụ.
The Pragmatic Engineer
The Pulse #157: Internal dev tooling at Meta & the “trajectories” feature
- Elin và tôi đã phát hành báo cáo MCP chi tiết hơn cả báo cáo sâu của MCP trước đó.
- Danh sách diễn giả cho Pragmatic Summit sắp hoàn tất với các tên tuổi như Chip Huyen, Martin Fowler, Nicole Forsgren và Kent Beck.
- Sự kiện sẽ diễn ra vào ngày 11 tháng 2 tại San Francisco.
- Meta sử dụng ba công cụ AI-coding nội bộ và chia sẻ các prompt mà dev tạo khi tạo mã, gây tranh cãi trong cộng đồng.
- GitHub bắt đầu tính phí cho CI/CD tự lưu trữ, khiến các dev không hài lòng với tốc độ và độ tin cậy của GitHub Actions.
- Warsaw đang trên đà trở thành “thủ đô công nghệ của EU.”
- Apple không còn được phép cấm thanh toán trong ứng dụng thay thế tại Mỹ, nhưng tiếp tục áp dụng chính sách tương tự tại Nhật Bản.
- Meta vừa giới thiệu tính năng cho phép dev xem lịch sử prompt AI trên các đợt gợi ý (diffs), gây tranh cãi trong nội bộ.
Open Source Projects - Latest Discoveries
Easily and securely send things from one computer to another
Deploy Your Frontend in a Single Command
Single sign-on for self-hosted services
Hacker News: Best
🔥 We pwned X, Vercel, Cursor, and Discord through a supply-chain attack
🔥 Firefox will have an option to disable all AI features
🔥 GPT-5.2-Codex
🔥 Skills for organizations, partners, the ecosystem
🔥 Beginning January 2026, all ACM publications will be made open access
🔥 Your job is to deliver code you have proven to work
🔥 Are Apple gift cards safe to redeem?
🔥 Please just try HTMX
🔥 AI helps ship faster but it produces 1.7× more bugs
🔥 Classical statues were not painted horribly
A Day in the Life of a Marketing Manager Using Microsoft Planner
The Arbitrage Bot Arms Race: What We Learned Running FlashArb in Production
Supercapacitor Innovation with Graphene Aerogel & Carbon Fiber
Building a Real-Time Data Pipeline from Shopify to Meta’s Marketing API
Thank You for the Love ❤️
Amazon Athena
Evaluation: from precision, recall and F-measure to ROC, informedness,markedness and correlation
LAN Party
Revolutionizing Conversational AI: ChatGPT’s App Store Launch
Title: A Shift in Federal Policy: Understanding the Impact of Trump’s Executive Order on Marijuana Stocks
Designing Bitcoin Infrastructure Under Adversarial Assumptions
Securing Solace Metrics: How to Use OAuth with solace-prometheus-exporter