Simon Willison’s Weblog
AoAH Day 15: Porting a complete HTML5 parser and browser test suite
- Anil Madhavapeddy phát triển thư viện OCaml mới mỗi ngày vào tháng 12.
- Anil xây dựng một bộ phân tích HTML5 trong OCaml, gọi là html5rw, vượt qua bộ thử nghiệm html5lib.
- Khái niệm “vibespiling” được Anil đặt ra cho việc chuyển đổi mã giữa các ngôn ngữ bằng AI.
- Anil chia sẻ lo ngại về quyền sở hữu trí tuệ và khía cạnh đạo đức khi phát hành thư viện.
- Thư viện được cấp phép chung với Emil Stenström, người đã phát triển JustHTML.
- Anil bày tỏ sự không chắc chắn về việc phát hành thư viện trong kho opam trung tâm.
- Anil ghi nhận Emil cho dự án của mình theo cách tương tự.
Gemini 3 Flash
- Ngày 17 tháng 12 năm 2025, Google ra mắt Gemini 3 Flash, mẫu mới trong dòng sản phẩm Flash.
- Gemini 3 Flash có hiệu suất mạnh mẽ với chi phí chỉ bằng một phần tư so với Gemini 3 Pro, với giới hạn tốc độ cao hơn.
- Mẫu mới vượt qua Gemini 2.5 Pro trên nhiều chỉ số và cung cấp tốc độ nhanh hơn.
- Giới hạn đầu vào là 1,048,576 token và đầu ra là 65,536 token; thời điểm cắt kiến thức là tháng 1 năm 2025.
- Giá của Gemini 3 Flash là 0.50 USD/million token đầu vào và 3.00 USD/million token đầu ra, cao hơn một chút so với các mẫu Flash trước.
- Gemini 3 Flash hỗ trợ bốn mức độ suy nghĩ: minimal, low, medium và high.
- Nhà phát triển đã phát hành phiên bản llm-gemini 0.28 hỗ trợ mô hình mới này.
firefox parser/html/java/README.txt
- Trình phân tích HTML5 được sử dụng bởi Firefox được duy trì dưới dạng mã Java và chuyển đổi sang C++ bằng script chuyển đổi tùy chỉnh.
- Để thực hiện việc chuyển đổi, người dùng có thể tải xuống kho lưu trữ Firefox (~8GB) và chạy các lệnh sau:
cd parser/html/java
make sync
make translate
- Mã thực hiện công việc chuyển đổi nằm trong kho Nu Html Checker trên GitHub, phục vụ cho dịch vụ xác thực validator.w3.org/nu/.
- Một đoạn mã trong
htmlparser/cpptranslate/CppVisitor.java cho thấy cách một khai báo lớp được chuyển đổi sang C++.
- Henri Sivonen đã giới thiệu trình phân tích mới vào Firefox vào năm 2009 (blog của John Resig).
Stay SaaSy
The Compensation Commandments
- Quyết định về tiền lương rất nhạy cảm và có ảnh hưởng lớn đến tình hình kinh doanh.
- Mục tiêu chính khi quản lý quá trình tiền lương là tối đa hóa tài năng và sự nhiệt huyết của đội ngũ.
- Chi phí tiền lương không phải là yếu tố quyết định sự hài lòng lâu dài của nhân viên.
- Cần cung cấp mức lương đủ để nhân viên không dễ dàng tìm kiếm công việc tốt hơn.
- Sự công bằng trong tiền lương quan trọng để duy trì động lực làm việc của đội ngũ.
- Các dải lương rõ ràng giúp ngăn ngừa cảm giác bất công trong tiền lương giữa các nhân viên.
- Thiếu sót trong việc theo dõi và điều chỉnh tiền lương có thể dẫn đến sự không hài lòng lớn trong đội ngũ.
- Nhân viên thường thảo luận về tiền lương, vì vậy cần sẵn sàng giải thích lý do xác định lương của mỗi người.
The Pragmatic Engineer
The history of servers, the cloud, and what’s next – with Oxide
- Statsig cung cấp nền tảng thống nhất cho flags, analytics, experiments và hơn thế nữa, với chương trình miễn phí và các gói linh hoạt cho doanh nghiệp.
- Linear phát triển hệ thống cho phát triển sản phẩm hiện đại, tích hợp API mở và SDK hỗ trợ AI agents như GitHub Copilot và OpenAI Codex.
- Bryan Cantrill, CTO của Oxide Computer, phân tích sự tiến hóa của hạ tầng máy chủ hiện đại từ Boom đến Bust.
- Sự kiện Dotcom Bust thúc đẩy sự đổi mới kỹ thuật nhiều hơn so với Boom, do áp lực từ nguồn lực hạn chế khiến các nhà phát triển phải sáng tạo hơn.
- Trong giai đoạn Bust, Bryan phát triển các công nghệ quan trọng cho hệ điều hành như ZFS filesystem và DTrace.
- AWS tạo ấn tượng về việc kinh doanh kém khi liên tục giảm giá, nhưng thực tế lại đang hỗ trợ cho sự phát triển của Amazon Prime và ngành bán lẻ.
- Kubernetes trở nên phổ biến một phần nhờ vào sự thống trị của AWS, khi các nhà cung cấp đám mây cảm thấy cần phải tương thích với API của AWS.
Open Source Projects - Latest Discoveries
Add Windows Hello-style facial login to Linux systems
Open-source tool for forensic disk analysis and deleted file recovery.
A free, simple weather TUI that pulls data without the need for an API key, account, or subscription
AI-powered desktop app for real-time posture correction - detects forward head posture
Open source Canva AI alternative
Multi-lingual large voice generation model, providing inference, training and deployment full-stack …
Production-grade client-side tracing, profiling, and analysis for complex software systems
A Rust compiler front-end for IDEs
Vibe Workflow Platform for Non-technical Creators
A Git-compatible VCS that is both simple and powerful
Hacker News: Best
💬 How SQLite is tested
💬 A Safer Container Ecosystem with Docker: Free Docker Hardened Images
🔥 AWS CEO says replacing junior devs with AI is ‘one of the dumbest ideas’
🔥 Tell HN: HN was down
🔥 Gemini 3 Flash: Frontier intelligence built for speed
🔥 Coursera to combine with Udemy
🔥 Is Mozilla trying hard to kill itself?
🔥 I ported JustHTML from Python to JavaScript with Codex CLI and GPT-5.2 in hours
🔥 No AI* Here – A Response to Mozilla’s Next Chapter
🔥 MIT professor shot at his Massachusetts home dies
Build Once, Reuse Forever: Why Developers Need Customizable Tools & Templates for Faster, Smarter Projects
Musashi vs Kojiro: What Software Architecture Can Learn from Fundamentals
Seven Core Activities of Great Digital Teams (RAADDDR)
Building a Thinking Photo Editor: Migrate to Gemini 3 Pro Image with Angular and Firebase
Funções de Conversão e Expressões Condicionais em SQL Oracle
SQL Interview Prep: Last-Minute Brushup for Experienced Professionals
C# Loops — From for and foreach to CPU Pipelines and LLM‑Ready Code
The Liskov Substitution Principle, A Model for Parenting
OWL-Aware Chunking Strategies: A Comprehensive Performance Analysis
Explorando el paralelismo real: Python 3.14 (No-GIL) y Rust
TypeScript Strict Mode in Practice: Catching Bugs with Type Safety
Day 1288 : Lake