Simon Willison’s Weblog
datasette-files-s3 0.1a1
- Phiên bản datasette-files-s3 0.1a1 ra mắt vào ngày 25 tháng 3 năm 2026.
- Backend datasette-files hỗ trợ lưu trữ và truy xuất tệp từ S3 bucket.
- Cơ chế lấy cấu hình S3 định kỳ từ một URL được bổ sung, cho phép sử dụng IAM credentials tạm thời hạn chế theo prefix trong bucket.
- Bài viết được đăng tải lúc 9:57 tối.
Thoughts on slowing the fuck down
- Mario Zechner phát triển framework Pi agent cho OpenClaw, có quan điểm về xu hướng trong engineering agent.
- Ông chỉ trích việc hy sinh kỷ luật để đổi lấy sự phụ thuộc vào tốc độ sản xuất mã.
- Lỗi của agent tích tụ nhanh hơn lỗi của con người, dẫn đến một mã nguồn phức tạp.
- Con người là nút thắt, không thể tạo ra 20.000 dòng mã trong vài giờ.
- Với nhiều agent, không có nút thắt, nhưng lỗi nhỏ có thể nhanh chóng dẫn đến vấn đề lớn.
- Việc ủy quyền hoàn toàn cho agent khiến con người không kiểm soát được sự phức tạp của mã.
- Tốc độ phát triển mã khiến thay đổi diễn ra chỉ trong vài giờ thay vì vài tuần.
- Cognitive debt là một vấn đề thực tế mà các lập trình viên phải đối mặt.
- Mario khuyên cần thời gian để suy nghĩ về những gì đang xây dựng.
- Cần đặt giới hạn cho lượng mã mà agent có thể tạo mỗi ngày.
- Các thành phần chính của hệ thống cần được viết bằng tay để giữ kỷ luật.
- Cần tìm ra sự cân bằng mới giữa tốc độ và sự thận trọng trong khi viết mã.
datasette-llm 0.1a1
- Phát hành phiên bản datasette-llm 0.1a1, plugin tích hợp LLM cho các plugin khác.
- Plugin mới cho phép các mô hình từ LLM sử dụng bởi các plugin Datasette khác như datasette-enrichments-llm.
- Thêm hook register_llm_purposes() và hàm get_purposes() để truy xuất chuỗi mục đích đã đăng ký.
- Plugin có trách nhiệm cấu hình mô hình nào được sử dụng cho mục đích nào.
- Các plugin phụ thuộc có thể chỉ định mục đích của prompt khi sử dụng mô hình bằng cách dùng model = await llm.model(purpose=”enrichment”).
- Các plugin này cũng có thể sử dụng hook register_llm_purposes() để đăng ký chuỗi mục đích, cho phép các plugin sau này liệt kê chúng để tạo UI quản trị.
LiteLLM Hack: Were You One of the 47,000?
- LiteLLM có 46,996 lượt tải xuống trong 46 phút khi bị xâm phạm trên PyPI (nguồn: Daniel Hnyk).
- Có 2,337 gói phụ thuộc vào LiteLLM, 88% trong số đó không ghi rõ phiên bản để tránh bị ảnh hưởng bởi phiên bản bị xâm phạm.
Daring Fireball
‘A List of Chain Restaurants Whose Names Contain Unusual Structures’
- Tên của các chuỗi nhà hàng có cấu trúc không bình thường được đánh giá theo độ hấp dẫn.
- Castle (White Castle): Khẩu hiệu “Fit for a king” ban đầu của Royal Castle.
- Villa (Taco Villa): Nơi ăn uống sang trọng, dù không bằng lâu đài.
- House (Waffle House, International House of Pancakes): Hai chuỗi chuyên bữa sáng sử dụng “house” trong tên.
- Roadhouse (Texas Roadhouse): Nơi truyền thống để ăn uống, mặc dù gọi phòng nghỉ tại đây khá thú vị.
- Cabana (Taco Cabana): Thích hợp cho đồ uống nhiệt đới hơn là ăn uống.
- Hut (Pizza Hut): Được coi là nơi không hấp dẫn để ăn, tương tự như cabana.
- Shack (Shake Shack, Harold’s Chicken Shack): Âm hưởng dơ bẩn hơn một cái hut.
- Factory (Cheesecake Factory, The Old Spaghetti Factory): Thường gợi ý về môi trường dơ bẩn.
- Warehouse (Spaghetti Warehouse): Hai chuỗi spaghetti với tên gọi kỳ lạ, ban đầu được coi là ít hấp dẫn nhất.
- Corral (Golden Corral): Cảnh báo về chất lượng thực phẩm.
- Pit (Pita Pit, Buca di Beppo): Coi pit là địa điểm tồi tệ nhất để ăn.
Improved Analytics in App Store Connect
- Ngày 25 tháng 3 năm 2026, Analytics in App Store Connect nhận bản cập nhật lớn nhất từ khi ra mắt.
- Tính năng có hơn 100 chỉ số mới, bao gồm dữ liệu monetization và subscription giúp hiểu rõ hơn về hiệu suất In-App Purchases và ưu đãi.
- Khả năng phân tích cohort cho phép theo dõi hành vi người dùng dựa trên các thuộc tính chung như ngày tải về và nguồn tải về.
- Hai chỉ số benchmark mới cho monetization: download-to-paid conversion và proceeds per download.
- Hai báo cáo subscription mới có thể xuất qua Analytics Reports API để phân tích ngoại tuyến.
- Có thể áp dụng đến bảy bộ lọc cho các chỉ số đã chọn để có cái nhìn sâu hơn.
- Hướng dẫn App Store Analytics mới giúp phát triển chiến lược dựa trên dữ liệu và hiểu công cụ App Store.
Pluralistic: Daily links from Cory Doctorow
Pluralistic: The cost of doing business (25 Mar 2026)
- Khả năng thi hành luật được gọi là “administrability” (có thể quản lý và áp dụng chính sách).
- Một khía cạnh chưa được nghiên cứu nhiều là “fact-intensivity”, tức là lượng câu hỏi dựa trên sự kiện cần phải giải quyết để xác định vi phạm chính sách.
- Luật xác nhận di sản (probate law) thường mất nhiều thời gian và chi phí, đặc biệt khi người quá cố không để lại di chúc.
- Việc lập di chúc giúp giảm thiểu sự phức tạp và chi phí trong quá trình xử lý tài sản khi người đó qua đời.
- Tần suất thực hiện quy trình phức tạp, như xác nhận di sản, là yếu tố cản trở khi áp dụng cho các giao dịch hàng ngày.
- Chính sách công nghệ có thể gia tăng gánh nặng hành chính khi số lượng giao dịch tăng lên do tính năng số hóa.
- Quyền tác giả (copyright) là một trong những luật phức tạp và dựa nhiều vào sự kiện trong thực tế, gây khó khăn cho các giao dịch hàng ngày.
Chris’s Wiki :: blog
Going from an IPv4 address to an ASN in Python 2 with Unix brute force
- Trang này yêu cầu User-Agent header cụ thể để truy cập nội dung.
- Các User-Agent quá chung chung hoặc đáng ngờ sẽ bị chặn.
- Vào đầu năm 2025, có nhiều bot thu thập dữ liệu gây ảnh hưởng đến blog.
- User-Agent không nên chỉ định phần mềm mà còn cả nhà phát triển sử dụng.
- Ví dụ User-Agent “Go-http-client/1.1” không được chấp nhận.
- Chris Siebenmann đưa ra thông báo này vào ngày 17 tháng 2 năm 2025.
Fedora’s virt-manager started using external snapshots for me as of Fedora 41
- Người dùng gặp lỗi khi truy cập blog “Wandering Thoughts” và CSpace do HTTP User-Agent header quá chung chung hoặc đáng ngờ.
- Tình trạng này xảy ra do sự gia tăng các crawler lớn để thu thập dữ liệu cho việc đào tạo LLM.
- Để giảm tải cho trang “Wandering Thoughts”, tác giả đang thử nghiệm chặn tất cả các crawler như vậy.
- HTTP User-Agent headers cần xác định rõ ràng phần mềm và người dùng cụ thể.
- Giá trị quá chung chung như “Go-http-client/1.1” không được chấp nhận.
- Tác giả là Chris Siebenmann, ngày 17 tháng 2 năm 2025.
Mass production’s effects on the cheapest way to get some things
- Trang này không có sẵn do HTTP User-Agent header quá chung chung hoặc nghi ngờ.
- Có nhiều crawler lớn đang thu thập dữ liệu cho LLM, gây ra quá tải cho blog “Wandering Thoughts”.
- Mục tiêu là chặn tất cả các truy cập từ những User-Agent không rõ ràng.
- User-Agent nên xác định rõ phần mềm và người sử dụng phần mềm đó.
- Các giá trị như “Go-http-client/1.1” không được chấp nhận.
- Ngày cập nhật: 17 tháng 2 năm 2025 (Chris Siebenmann).
A traditional path to getting lingering duplicate systems
- Trang web “Wandering Thoughts” chặn những HTTP User-Agent header quá chung chung hoặc nghi ngờ.
- Tình trạng này xuất phát từ sự gia tăng của crawlers với khối lượng cao, do nhu cầu thu thập dữ liệu cho LLM.
- HTTP User-Agent headers cần phải xác định rõ ràng phần mềm và người sử dụng.
- Những giá trị chung như “Go-http-client/1.1” không được chấp nhận.
- Biện pháp này được thực hiện để giảm tải cho blog “Wandering Thoughts”.
- Thời gian áp dụng biện pháp này là từ đầu năm 2025.
Lingering duplicate systems and the expense of weeding them out (an illustration)
- Bạn đang gặp khó khăn khi truy cập blog Wandering Thoughts hoặc CSpace do User-Agent HTTP quá tổng quát hoặc nghi ngờ.
- Từ đầu năm 2025, có sự gia tăng đáng kể các crawler với lưu lượng cao để thu thập dữ liệu cho đào tạo LLM.
- Chris Siebenmann đang thử nghiệm việc chặn tất cả các crawler này để giảm tải cho blog.
- User-Agent HTTP cần phải cung cấp thông tin rõ ràng về phần mềm và người sử dụng phần mềm đó.
- Giá trị User-Agent quá tổng quát như “Go-http-client/1.1” không được chấp nhận.
DMARC DNS record inheritance and DMARC alignment requirements
- Trang web “Wandering Thoughts” yêu cầu HTTP User-Agent header phải rõ ràng, không mơ hồ.
- Các User-Agent không phải trình duyệt cần xác định rõ phần mềm và người sử dụng phần mềm đó.
- Từ đầu năm 2025, có nhiều crawler với User-Agent quá chung chung, ảnh hưởng đến hiệu suất trang web.
- Chris Siebenmann đang thử nghiệm việc chặn các User-Agent này để giảm tải cho trang.
One problem with (Python) docstrings is that they’re local
- Người dùng gặp khó khăn khi truy cập blog do HTTP User-Agent quá chung chung hoặc đáng ngờ.
- Có tình trạng lạm dụng bởi các crawler có lưu lượng cao kể từ đầu năm 2025.
- Mục tiêu là giảm tải cho blog “Wandering Thoughts” bằng cách chặn các crawler này.
- HTTP User-Agent cần xác định rõ ràng về phần mềm và người sử dụng cụ thể.
- Giá trị User-Agent quá chung như “Go-http-client/1.1” không được chấp nhận.
Wayland has good reasons to put the window manager in the display server
- Trang web không cho phép truy cập do giá trị HTTP User-Agent quá chung chung hoặc đáng ngờ.
- Có một tình trạng về các crawler khối lượng lớn, chủ yếu để thu thập dữ liệu cho LLM training (năm 2025).
- Chris Siebenmann đang thử nghiệm khóa tất cả crawler để giảm tải cho blog “Wandering Thoughts”.
- HTTP User-Agent nên xác định rõ ràng về phần mềm và người sử dụng phần mềm đó.
- Giá trị User-Agent cực kỳ chung như “Go-http-client/1.1” là không chấp nhận được.
Cleaning old GPG RPM keys that your Fedora install is keeping around
- Người dùng đang cố gắng truy cập blog “Wandering Thoughts” hoặc wiki CSpace nhưng gặp vấn đề.
- Http User-Agent header của trình duyệt quá chung chung hoặc đáng ngờ.
- Kể từ đầu năm 2025, có nhiều crawler số lượng lớn thu thập dữ liệu cho LLM training.
- Để giảm tải cho “Wandering Thoughts”, tác giả đang thử nghiệm chặn các crawler này.
- Tất cả HTTP User-Agent headers phải xác định rõ ràng phần mềm và người sử dụng.
- Giá trị User-Agent quá chung chung như “Go-http-client/1.1” không được chấp nhận.
- Thông tin trên được ghi bởi Chris Siebenmann vào ngày 17 tháng 2 năm 2025.
Making empirical decisions about web access (here in 2026)
- Trang này không thể truy cập do HTTP User-Agent header quá chung chung hoặc nghi ngờ.
- Từ đầu năm 2025, có nhiều crawlers cao cấp thu thập dữ liệu cho LLM.
- Mục tiêu là giảm tải cho blog “Wandering Thoughts” bằng cách chặn các User-Agent không rõ ràng.
- Tất cả HTTP User-Agent headers nên xác định rõ ràng phần mềm và người sử dụng.
- Giá trị quá chung như “Go-http-client/1.1” không được chấp nhận.
- Nội dung là từ Chris Siebenmann, ngày 17 tháng 2 năm 2025.
The Old New Thing
How can I change a dialog box’s message loop to do a MsgWaitForMultipleObjects instead of GetMessage?
- Khách hàng muốn thay đổi vòng lặp thông báo của hộp thoại để sử dụng MsgWaitForMultipleObjects thay vì GetMessage.
- Vòng lặp thông báo chuẩn của hộp thoại chỉ kiểm tra thông báo, không kiểm tra handle hạt nhân.
- Cách thứ nhất là thay thế hộp thoại modal bằng một hộp thoại modeless và chạy vòng lặp thông báo riêng.
- Hộp thoại gửi thông báo WM_ENTERIDLE khi không còn công việc và sắp chờ đợi một thông báo.
- Trong hàm xử lý WM_ENTERIDLE, có thể sử dụng MsgWaitForMultipleObjects để chờ cả handle thời gian và thông báo.
- Nếu handle thời gian được kích hoạt, thì sẽ phát âm thanh. Nếu có thông báo, sẽ kiểm tra và để lại thông báo trong hàng đợi.
- Hàng đợi tin nhắn sẽ tiếp tục hoạt động cho đến khi có thông báo mới cần xử lý.
Andrew Nesbitt
The Top 10 Biggest Conspiracies in Open Source
- GitHub’s Dependabot thu thập dữ liệu để lập bản đồ thời gian phản ứng của các công ty đối với các thông báo bảo mật và quy trình đánh giá mã của họ.
- Các pull request là sản phẩm phụ của việc thu thập dữ liệu này, trong khi dữ liệu thời gian phản ứng được bán cho các nhà tuyển dụng qua một công ty con không xác định tên (Trần 2023).
- Dockerfile syntax có lỗi thiết kế cố ý, tạo ra doanh thu tư vấn cho các dịch vụ đào tạo và chuyển đổi Docker, điều này dẫn đến việc giữ nguyên cú pháp không chính xác.
- left-pad bị gỡ bỏ như một phần của hoạt động thanh khoản crypto, do một nhóm khai thác Ethereum cần làm gián đoạn CDN của npm để che giấu một giao dịch lớn.
- Mỗi node_modules chứa trung bình 247 MB dữ liệu cho một dự án với 11 phụ thuộc trực tiếp; không gian đĩa này được so sánh với một sổ cái phân tán đã tồn tại từ năm 2012.
Susam Pal
Wander 0.3.0
- Wander 0.3.0 là phiên bản thứ ba của Wander, một console web phân quyền và tự lưu trữ.
- Phiên bản này bao gồm các sửa lỗi nhỏ nhưng quan trọng.
- Phiên bản trước, 0.2.0, đã giới thiệu nhiều tính năng mới nhưng có hai tính năng gây ra sự cố.
- Tính năng “ignore list” định nghĩa các URL mà console không sử dụng để tìm kiếm gợi ý trang, đã được sửa lỗi khi không có ignore list được xác định.
- Một lỗi khác liên quan đến việc hiển thị <iframe> không thể tải một số website do phụ thuộc vào same-origin context đã được khắc phục.
- Các sửa lỗi nhỏ khác nhằm ngăn chặn cuộn ngang trên thiết bị nhỏ và loại bỏ khuyến nghị trùng lặp xuất hiện gần nhau.
- Để biết thêm chi tiết và thay đổi, xem CHANGES.md.
The Silicon Underground
Steve Ballmer, Microsoft executive and NBA owner
- Steven Ballmer sinh ngày 24 tháng 3 năm 1956, là CEO của Microsoft từ năm 2000 đến 2014.
- Ông hiện là chủ sở hữu của Los Angeles Clippers, một đội bóng rổ tại NBA.
- Tài sản của Steve Ballmer khoảng 145 tỷ USD, đứng thứ mười trong danh sách những người giàu nhất thế giới.
- Ballmer tốt nghiệp xuất sắc ngành Toán ứng dụng và Kinh tế của Harvard năm 1977.
- Ông gia nhập Microsoft vào ngày 11 tháng 6 năm 1980, là nhân viên thứ 30 với mức lương khởi điểm 50.000 USD.
- Dưới thời Ballmer, doanh thu hàng năm của Microsoft tăng từ 25 tỷ USD lên 70 tỷ USD, và lợi nhuận ròng tăng 215% lên 23 tỷ USD.
- Trong nhiệm kỳ của Ballmer, Microsoft phát triển mạnh mẽ các dịch vụ SaaS như Office 365 và dịch vụ đám mây.
- Tuy nhiên, giá cổ phiếu Microsoft không tăng trưởng trong thời gian này.
- Ballmer bị chỉ trích vì không tận dụng các công nghệ tiêu dùng mới như máy tính bảng và smartphone.
- Ông từng cho rằng iPhone sẽ không bán chạy do giá cao, nhưng đã sai lầm khi không dự đoán được sức mạnh của các nhà mạng.
Refactoring English
Which Design Doc Did a Human Write?
- Người đọc được khảo sát có 50% cho rằng phiên bản của tác giả là văn bản do con người viết.
- Khoảng 1/4 người đọc nhận định phiên bản của tác giả là “Chắc chắn AI”.
- Các ý kiến cá nhân và trải nghiệm cụ thể trong văn bản làm nổi bật tính chất con người.
- Các tiêu đề ToC trong phiên bản của tác giả hướng đến người dùng hơn so với các phiên bản AI.
- Lựa chọn công nghệ và giấy phép như NixCI và PolyForm-Noncommercial cho thấy sự tự tin trong việc viết mã.
- Người đọc nhận thấy AI viết có đặc điểm là “bloat”, văn bản dài nhưng nhiều thông tin không liên quan.
- Việc lạm dụng chữ in đậm trong văn bản AI bị chỉ trích là không có ý nghĩa.
- Phiên bản Codex được cho là do con người viết do lịch trình thực hiện kém phát triển hơn.
- Hình ảnh trong tài liệu thiết kế của giả lập tạo ra có vấn đề về bố cục mà con người sẽ nhận ra ngay.
- Tác giả không bao gồm sơ đồ từ cả ba phiên bản để tránh ảnh hưởng quá nhiều từ con người.
Open Source Projects - Latest Discoveries
Turn any HTML template into a PDF or image instantly
A minimalist React Native client for Bilibili with DASH and danmaku
The Market Doesn’t Lie. But Nobody Taught You to Listen
How to Build a Self-Healing AI Agent Pipeline: A Complete Guide
7 Mac Apps That Make You a More Disciplined Developer in 2026
600 Articles Later — The 4 Title Patterns That Actually Get Views on Dev.to
🥘 From Pixels to Proteins: Mastering Calorie Estimation with GPT-4o Vision and SAM
Azure Weekly: Microsoft Goes All-In on Agentic Infrastructure
I Built an Autonomous AI Outreach Swarm — Now It Reports to Notion in Real-Time
How Many Nanometers Until Physics Says No? The 3 Walls Beyond 2nm, Read Through Papers in 2026
The PostgreSQL MCP Server — Read-Only Protection That Wasn’t
What Memory Benchmarks Don’t Test
OCR on Patent Figures with DeepSeek-OCR
[DYK with Dash] Want a policy enforcement layer over your AI coding assistant?
Hacker News: Best
🔥 The EU still wants to scan your private messages and photos
🔥 Meta and YouTube found negligent in landmark social media addiction case
🔥 Slovenian officials blame Israeli firm Black Cube for trying to manipulate vote
🔥 Apple Just Lost Me
🔥 Thoughts on slowing the fuck down
💬 Meta told to pay $375M for misleading users over child safety
🔥 TurboQuant: Redefining AI efficiency with extreme compression
🔥 Miscellanea: The War in Iran
🔥 VitruvianOS – Desktop Linux Inspired by the BeOS
🔥 Flighty Airports