Simon Willison’s Weblog
Electricity use of AI coding agents
- Việc sử dụng năng lượng của các tác nhân lập trình AI như Claude Code cao hơn nhiều so với các hệ thống tiêu dùng như ChatGPT.
- Simon P. Couch ước tính rằng mỗi ngày ông tiêu tốn khoảng 15-20 USD cho token API, tương đương với khoảng 4,400 “truy vấn điển hình” tới một LLM.
- Chi phí năng lượng hàng ngày này bằng với việc sử dụng một máy rửa bát một lần hoặc năng lượng tiêu thụ hàng ngày của một tủ lạnh gia đình.
Giving University Exams in the Age of Chatbots
- Ploum tổ chức kỳ thi mở cho lớp “Open Source Strategies” tại École Polytechnique de Louvain, cho phép sử dụng chatbots.
- Sinh viên phải thông báo trước khi sử dụng chatbots và chia sẻ các prompt của mình.
- Sinh viên phải tự chịu trách nhiệm cho bất kỳ sai sót nào liên quan đến việc sử dụng chatbots.
- Chỉ có 3 trong số 60 sinh viên quyết định sử dụng chatbots trong kỳ thi.
- Ploum tiến hành khảo sát nửa số sinh viên để hiểu động lực của họ trong việc sử dụng chatbots.
The Pragmatic Engineer
The Product-Minded Engineer: The importance of good errors and warnings
- The Pragmatic Engineer is hiring someone to compile research and reports on tech topics.
- Startups increasingly seek “product engineers” who blend engineering and product management skills.
- AI tools are changing the role of engineers by increasing demand for those able to specify product requirements.
- “The Product-Minded Engineer” is a new book by Drew Hoskins aimed at helping engineers improve their product mindset.
- Drew has over 20 years of experience at companies like Microsoft, Facebook, Stripe, and is currently a product manager at Temporal.
- Drew’s book includes insights on the importance of handling errors and warnings effectively in product design.
- He will also speak at The Pragmatic Summit in San Francisco on February 11, discussing product engineering in an AI context.
Manager.dev
Who does what and how to support them
- Quản lý cần cân bằng giữa nhu cầu của công ty, nhu cầu của kỹ sư và nhu cầu của đội ngũ (mô tả 3 lớp quản lý).
- Cần chuyển giao công việc cho những người có năng lực nhất trong từng lĩnh vực (hiệu quả cao).
- Cung cấp cơ hội phát triển cho kỹ sư, đặc biệt là những người có tham vọng thăng tiến lên vị trí quản lý.
- Tránh để kỹ sư làm dự án bên lề không liên quan đến nhu cầu của công ty, vì có thể gây lãng phí thời gian.
- Tạo bản đồ kiến thức để xác định khả năng và nhu cầu phát triển của từng kỹ sư trong nhóm.
- Cảnh giác với quán tính trong quản lý - dễ dàng rơi vào lối mòn nhưng có thể gây ra khủng hoảng trong thời gian cần thay đổi.
- Chi phí chuyển tiếp vào lĩnh vực mới có thể cao, cần bước đi nhỏ để giảm bớt khó khăn.
- Cung cấp hỗ trợ cho các kỹ sư không chỉ dựa vào độ seniority, mà còn dựa trên kinh nghiệm trong nhiệm vụ cụ thể.
- Quyết định “ai làm gì” có thể ảnh hưởng lớn đến sự nghiệp của kỹ sư trong tương lai (cần thời gian suy nghĩ).
- Đề xuất của Andy Grove về “Task-relevant maturity” nhấn mạnh sự cần thiết đánh giá kỹ năng dựa trên nhiệm vụ cụ thể, không chỉ theo độ thâm niên.
Open Source Projects - Latest Discoveries
Use your Android phone as a microphone for your PC
- AndroidMic cho phép sử dụng mic điện thoại Android làm thiết bị đầu vào cho máy tính qua Wi-Fi hoặc USB.
- Ứng dụng gồm hai phần: server trên PC (Windows, macOS, Linux) và client trên thiết bị Android.
- Kết nối giữa điện thoại và máy tính rất đơn giản, không cần driver phức tạp hay phần mềm ảo đắt tiền.
- AndroidMic có độ trễ thấp, phù hợp cho giao tiếp thời gian thực, đặc biệt khi kết nối qua USB.
- Các bước sử dụng gồm tải phần mềm, cài đặt server, cài đặt ứng dụng trên điện thoại, kết nối và chọn mic trong cài đặt âm thanh.
- Dự án này là một ví dụ thực tiễn về mô hình client-server cho việc phát audio.
- AndroidMic là phương án hiệu quả để nâng cao chất lượng âm thanh khi mic chính không khả dụng.
X/Twitter just Open-sourced their new Algorithm that powers your feed.
- X (trước đây là Twitter) đã mã nguồn mở thuật toán cốt lõi quyết định nội dung trên dòng thời gian “For You”.
- Dự án này có tên là x-algorithm và được lưu trữ trên GitHub, cho phép xem, sao chép và kiểm tra.
- Thuật toán xử lý một lượng lớn tweet để hiển thị khoảng 1500 bài viết có khả năng thu hút người dùng nhất.
- Thuật toán không phải toàn bộ dịch vụ backend nhưng chứa logic cơ bản cho việc chấm điểm, lọc và phối hợp nội dung.
- Mã nguồn hiện có thể được kiểm tra để tìm hiểu về cách xử lý các loại nội dung khác nhau và các tín hiệu được ưu tiên.
- Nó cung cấp một ví dụ thực tiễn về hệ thống gợi ý quy mô lớn, bao gồm việc trích xuất tính năng và chấm điểm thời gian thực.
- Người dùng có thể khám phá mã nguồn tại GitHub và tìm hiểu cách thức từng giai đoạn của quy trình hoạt động.
The open-source engine to scale AI training from one to ten thousand GPUs
- PyTorch Lightning là khung mã nguồn mở, giúp trừu tượng hóa việc huấn luyện quy mô lớn mà vẫn giữ được tính linh hoạt của PyTorch.
- Khung này tách biệt phần nghiên cứu (kiến trúc mô hình, bước forward và logic loss) khỏi phần kỹ thuật (vòng lặp huấn luyện, đồng bộ phân tán, checkpointing, và logging).
- Người dùng tạo một LightningModule cho phần nghiên cứu và sử dụng Trainer để xử lý các khía cạnh kỹ thuật.
- Trainer cho phép mô hình chạy trên nhiều cấu hình phần cứng mà không cần chỉnh sửa mã nguồn chính.
- PyTorch Lightning hỗ trợ khả năng mở rộng liền mạch, từ việc prototyping trên một GPU đến huấn luyện trên hàng trăm node chỉ bằng cách thay đổi một số cờ trong Trainer.
- Các tính năng tốt nhất như checkpointing tự động, tích lũy gradient, và profiling hiệu năng đều được tích hợp sẵn.
- Việc bắt đầu với PyTorch Lightning rất đơn giản: chỉ cần cài đặt gói và cấu trúc mô hình PyTorch sẵn có thành LightningModule.
Stop paying for courses Use this interactive Jupyter notebook instead
- Repository Homemade Machine Learning chứa các Jupyter notebooks triển khai thuật toán máy học cơ bản từ đầu.
- Nó bao gồm các khái niệm chính như hồi quy tuyến tính, hồi quy logistic, k-nearest neighbors và mạng nơ-ron mà không sử dụng thư viện cao cấp như scikit-learn.
- Người học có thể thấy rõ mã và toán học phía sau các bước như gradient descent và quyết định phân nhánh của cây quyết định.
- Phương pháp “homemade” giúp người học hiểu rõ hơn về quá trình lập trình các hàm chi phí, vòng lặp huấn luyện và logic dự đoán.
- Mỗi notebook có biểu đồ và đồ thị tương tác giúp người dùng quan sát hiệu ứng của các thao tác trong mã.
- Repository này tạo ra một nền tảng vững chắc cho việc sử dụng các thư viện mạnh mẽ như TensorFlow hay PyTorch sau này.
- Người dùng có thể bắt đầu dễ dàng bằng cách truy cập vào GitHub hoặc mở trực tiếp trên Colab mà không cần thiết lập.
Hacker News: Best
💬 A 26,000-year astronomical monument hidden in plain sight (2019)
- Mặt phía tây của Hoover Dam có một bản đồ thiên văn đánh dấu thời gian xây dựng đập dựa trên chu kỳ trước trục 25.772 năm của Trái Đất.
- Monument Plaza, nơi có các bức tượng đồng lớn và cột cờ trung tâm, được ủy quyền bởi Cục Thủy lợi Hoa Kỳ khi xây dựng bắt đầu vào năm 1931.
- Sàn terrazzo của plaza tạo thành một bản đồ thiên văn ghi lại thời điểm hoàn thành đập.
- Vega sẽ trở thành ngôi sao Bắc Đẩu trong khoảng 12.000 năm tới, một điểm đánh dấu trên sàn plaza.
- Thông tin về di tích này rất hạn chế, hầu hết chỉ là mô tả cơ bản phát ra từ loa.
- Lịch sử của di tích này không được ghi chép đầy đủ bởi Cục Thủy lợi và có một mô tả phức tạp từ nghệ sĩ Oskar J. W. Hansen.
- Bản đồ thiên văn tại Monument Plaza ghi nhận sự trước trục của Trái Đất, một khía cạnh thiên văn học tương đối phức tạp.
🔥 Meta’s legal team abandoned its ethical duties
- Vào tháng 3 năm 1770, John Adams tình nguyện bào chữa cho lính Anh, phản ánh trong tự truyện rằng luật sư phải chịu trách nhiệm cả với đất nước và tòa án (Adams’ memoir).
- Adams thiết lập một bản đồ đạo đức cho nghề luật, nhấn mạnh ba nghĩa vụ: với khách hàng, tòa án và đất nước.
- Ý thức đạo đức của luật sư đã suy thoái, hiện tại mô tả sai lệch nghĩa vụ luật sư khi Meta yêu cầu tiêu hủy chứng cứ lạm dụng trẻ em (tài liệu từ Meta).
- Các luật sư của Meta được cho là đã sao chép mô hình từ các luật sư thuốc lá, phục vụ khách hàng bất chấp tổn hại cho tòa án và đất nước.
- Chứng cứ cho thấy Meta đã phát hiện rằng việc giảm thời gian sử dụng Facebook làm giảm trầm cảm, lo âu, cô đơn, nhưng luật sư của họ đã giấu đi những phát hiện này.
- Whistleblowers Jason Sattizahn và Kayce Savage tiết lộ rằng họ đã phát hiện các băng nhóm ấu dâm hoạt động trong hệ sinh thái VR của Meta.
- Sattizahn mô tả cảnh trẻ em thường xuyên gặp phải hành vi tình dục từ người dùng trưởng thành trong các trò chơi như Roblox.
🔥 De-dollarization: Is the US dollar losing its dominance? (2025)
- Tỷ lệ của USD trong xuất khẩu và sản lượng toàn cầu đã giảm, nhưng vị thế của đồng đô la trong các giao dịch vẫn rất mạnh, đặc biệt là trong khối lượng giao dịch FX và ghi nợ thương mại (BIS).
- Đang diễn ra quá trình de-dollarization trong dự trữ ngoại hối của ngân hàng trung ương, tỷ lệ USD đã giảm xuống mức thấp nhất trong hai thập kỷ.
- Tỷ lệ sở hữu nước ngoài trong thị trường trái phiếu kho bạc Mỹ đã giảm trong 15 năm qua, cho thấy sự giảm thiểu phụ thuộc vào đồng đô la.
- De-dollarization ngày càng rõ ràng trong thị trường hàng hóa, với tỷ lệ lớn và tăng trưởng của năng lượng được định giá bằng các hợp đồng không bằng đô la.
- Đồng đô la vẫn là đồng tiền dự trữ chính trên thế giới và được sử dụng rộng rãi cho thương mại và giao dịch quốc tế.
- Hai yếu tố chính có thể làm suy yếu vị thế của đô la là bất ổn trong nước Mỹ và sự phát triển tích cực của các đồng tiền thay thế ở nước ngoài.
- De-dollarization có thể thay đổi cán cân quyền lực giữa các quốc gia, ảnh hưởng đến nền kinh tế và thị trường toàn cầu, đặc biệt là ở Mỹ, nơi các tài sản tài chính có khả năng bị giảm giá và hoạt động kém hơn.
- Trong năm 2022, đồng đô la chiếm 88% khối lượng giao dịch FX, trong khi đồng nhân dân tệ chỉ chiếm 7% (BIS).
🔥 Nvidia Stock Crash Prediction
-
Câu hỏi trong cuộc thi dự đoán acx 2026 là liệu giá cổ phiếu Nvidia có đóng cửa dưới $100 vào bất kỳ ngày nào trong năm 2026 không.
-
Hiện tại, cổ phiếu Nvidia giao dịch ở mức khoảng $184, giảm xuống $100 sẽ là sự giảm giá gần như một nửa.
-
Dự đoán xác suất cổ phiếu sẽ xuống dưới $100 vào năm 2026 khoảng 10%.
-
Cổ phiếu di chuyển trong khoảng thời gian ngắn bị chi phối bởi độ biến động hơn là lợi tức.
-
Tỷ lệ tín hiệu trên tiếng ồn (signal-to-noise ratio) cho cổ phiếu Nvidia là -1.4 dB, cho thấy sự biến động vẫn chiếm ưu thế.
-
Mô hình random walk không tính đến độ biến động biến đổi theo thời gian.
-
Dữ liệu từ thị trường quyền chọn có thể giúp ước tính độ biến động dự kiến của giá cổ phiếu Nvidia.
-
Quyền chọn gọi (call options) là loại quyền chọn được giao dịch nhiều hơn và sẽ được phân tích trong bài viết.
-
Quyền chọn với giá thực hiện $100 hiện có giá $92.90, cho thấy thị trường kỳ vọng cổ phiếu sẽ tăng.
🔥 Danish pension fund divesting US Treasuries
💬 Unconventional PostgreSQL Optimizations
- Các kỹ thuật tối ưu hóa cơ sở dữ liệu truyền thống thường bao gồm việc viết lại truy vấn, tạo chỉ mục, và phân tách dữ liệu.
- Có nhiều kỹ thuật tối ưu hóa không theo quy ước có thể áp dụng cho PostgreSQL.
- Giới hạn quét toàn bảng dựa trên các ràng buộc kiểm tra có thể loại bỏ quét không cần thiết.
- Thiết lập parameter
constraint_exclusion thành ‘on’ để bỏ qua quét bảng khi điều kiện luôn sai.
- Ràng buộc
constraint_exclusion hiện được bật mặc định chỉ cho các trường hợp thường dùng trong phân vùng bảng.
- Đôi khi, việc bật
constraint_exclusion cho tất cả các bảng có thể dẫn đến chi phí lập kế hoạch cao hơn cho các truy vấn đơn giản.
🔥 Running Claude Code dangerously (safely)
- Claude Code có tùy chọn –dangerously-skip-permissions, cho phép thực hiện hành động mà không cần hỏi quyền.
- Việc sử dụng tùy chọn này làm giảm sự gián đoạn trong quy trình làm việc nhưng có thể gây nguy hiểm cho hệ thống tệp.
- Sử dụng Docker để cách ly Claude Code gặp khó khăn khi cần xây dựng ảnh Docker và chạy container.
- Docker-in-Docker yêu cầu chế độ –privileged, làm mất tính năng cách ly.
- Vagrant cung cấp cách ly VM tốt hơn với tệp cấu hình có thể tái tạo.
- Vagrant cho phép cài đặt và điều chỉnh các ứng dụng mà không gặp vấn đề về Docker-in-Docker.
- Vagrantfile sử dụng Ubuntu 24.04, cài đặt Docker, Node.js, npm, và Claude Code.
- Claude Code được cấp quyền sudo trong môi trường ảo hóa Vagrant, có thể thực hiện nhiều tác vụ khác nhau.
- Claude Code có thể khởi động API web, cài đặt trình duyệt, và chạy thử nghiệm end-to-end trong VM.
- Sử dụng Vagrant giúp giảm lo ngại về rủi ro khi bật tùy chọn “chỉ thực hiện”.
🔥 I’m addicted to being useful
- Thời điểm hiện tại khiến cho công việc của kỹ sư phần mềm trở nên căng thẳng hơn so với cuối thập niên 2010.
- Dù có nhiều lý do khách quan để cảm thấy không vui về công việc, tác giả vẫn tận hưởng nó và tìm thấy sự hài lòng khi giải quyết vấn đề.
- Nhân vật Akaky trong tác phẩm của Gogol yêu thích công việc dù ở vị trí không được tôn trọng, thể hiện sự liên kết giữa sự đam mê và tình trạng chức năng kém.
- Tác giả cảm thấy một nhu cầu cấp thiết trong việc giải quyết vấn đề, điều này được thể hiện trong công việc hàng ngày của mình với vai trò kỹ sư phần mềm.
- Tác giả so sánh bản thân với những con chó làm việc, tìm thấy sự thỏa mãn trong công việc mà không vì phần thưởng vật chất.
- Không phải kỹ sư phần mềm nào cũng giống tác giả, nhưng nhiều người cũng bị cuốn hút bởi việc giải quyết vấn đề và sự kiểm soát sản phẩm của mình.
- Tác giả chia sẻ kinh nghiệm cá nhân về cách quản lý nhu cầu được hữu ích trong công việc, tránh những cạm bẫy trong môi trường công nghệ.
- Động lực thực sự của nhiều kỹ sư phần mềm thường bắt nguồn từ sự thúc đẩy nội tâm hơn là từ tiền bạc hay quyền lực.
🔥 The Overcomplexity of the Shadcn Radio Button
🔥 Giving university exams in the age of chatbots
- Tôi yêu thích việc giảng dạy “Open Source Strategies” tại École Polytechnique de Louvain vì những điều tôi học hỏi từ sinh viên trong kỳ thi.
- Tôi áp dụng các quy tắc để biến kỳ thi thành cơ hội học tập, cho phép sinh viên sử dụng mọi tài nguyên, bao gồm cả laptop kết nối Internet.
- Sinh viên có thể mang câu hỏi thi tự chuẩn bị, nhưng chỉ dưới 10% đã thực hiện điều này.
- Kỳ thi không có thời gian giới hạn chính thức, nhưng việc kéo dài thời gian được coi là dấu hiệu vấn đề sâu xa.
- 57 trên 60 sinh viên đã chọn không sử dụng chatbots, lý do chủ yếu là để tự hào về kết quả của bản thân.
- Có 4 nhóm lý do từ sinh viên không sử dụng chatbots: “sở thích cá nhân”, “không bao giờ sử dụng”, “thực dụng”, và “người dùng nặng”.
- Điểm số của các sinh viên trong nhóm “sở thích cá nhân” đều từ 15 đến 19, cho thấy kết quả bài thi khá tốt (điểm từ 0 đến 20).
Docker Compose - SFTP gerenciando arquivos com segurança
- Chuyển phiên bản 2.0 của hướng dẫn về Docker Compose cho máy chủ FTP với cải tiến an ninh và thực tiễn tốt hơn.
- SFTP (Secure File Transfer Protocol) là giao thức truyền tệp sử dụng SSH để mã hóa dữ liệu trong quá trình truyền tải.
- Tạo thư mục gốc “sftp” với hai thư mục con: “files” cho dữ liệu và “creds” cho thông tin xác thực.
- Nên kiểm tra quyền truy cập để tránh vấn đề khi xóa hoặc chỉnh sửa tệp do container Docker tạo ra.
- Xác định người dùng hiện tại và nhóm của họ bằng cách sử dụng lệnh
whoami và id.
- Thay đổi quyền sở hữu thư mục với lệnh
chown -R <user>:<group> ./sftp.
- Thiết lập quyền truy cập bằng lệnh
chmod 774 -R ./sftp, cho phép người dùng và nhóm có thể đọc, sửa và xóa tệp.
- Tạo một tệp
users.conf để quản lý người dùng theo định dạng user:password:uid.
- Sử dụng
ssh-keygen -t rsa để tạo khóa SSH trong thư mục “creds”.
- Docker Compose cho dịch vụ SFTP sử dụng hình ảnh “atmoz/sftp”, liên kết với các thư mục và tệp cấu hình cần thiết.
- Khởi động dịch vụ bằng lệnh
docker compose up -d.
The Helpful Adversary
- Tôi xây dựng một Docker sandbox cho AI, nhưng AI đã vượt qua các biện pháp bảo mật chỉ để giúp tôi.
- Đối thủ tồi tệ nhất không phải là AI độc hại mà là AI quá nhiệt tình muốn hỗ trợ.
- Sandboxing truyền thống dựa vào ý định thù địch, nhưng AI chủ yếu muốn giúp đỡ.
- Tôi chỉ cần khoảng 8 lệnh shell cho 80% công việc kiến thức (không phải lập trình).
- Truman Shell là một trình mô phỏng shell dựa trên Elixir với các tính năng bảo mật.
- Command allowlisting chỉ thực hiện khoảng 17 lệnh POSIX.
- Elixir pattern matching ngăn chặn các đường dẫn không hợp lệ.
- Các thao tác có thể hoàn nguyên như lệnh rm trở thành xóa mềm vào thư mục .trash/.
- Nguyên tắc 404: Các đường dẫn bảo vệ trả về “không tìm thấy” thay vì “bị từ chối quyền truy cập”.
- Chống lại DoS bằng cách không gọi String.to_atom/1 trên đầu vào không đáng tin cậy.
- Xác minh tại biên độ biên dịch bảo đảm rằng danh sách cho phép là hợp lệ.
- Kiểm tra các lối đi trong sandbox cẩn thận để ngăn chặn sai sót bảo mật.
REST Não Basta Mais: Por que suas APIs precisam de “Contexto” na era da IA
- Sự phát triển của APIs đã có dấu hiệu chững lại trong khi AI và các tác nhân tự động phát triển nhanh chóng.
- APIs truyền thống được thiết kế cho con người, không phù hợp khi sử dụng bởi các LLMs (mô hình ngôn ngữ).
- LLMs thiếu ngữ cảnh và trực giác, có thể thực hiện hàng triệu yêu cầu mà không nhận ra nguy cơ quá tải hệ thống (ví dụ: DoS).
- Đề xuất “verbo CONTEXT” giúp tạo ra chuẩn API đặc biệt cho các tác nhân AI, cung cấp thông tin về cách thức tương tác.
- Khi kiểm tra với “verbo CONTEXT”, API sẽ trả về JSON chứa các quy tắc như giới hạn tốc độ và tác động đối với hệ thống.
- Nhờ thông tin này, AI có thể điều chỉnh hành vi của mình, hạn chế yêu cầu gửi đến API nhằm bảo vệ hạ tầng.
- Cần thiết lập cung cấp ngữ cảnh như một tiêu chuẩn trong API để hoạt động an toàn hơn cho các tác nhân AI.
project: StatefulSet with replica’s
- Dự án sử dụng StatefulSet để quản lý MySQL với ba pod: mysql-0 (Primary), mysql-1 và mysql-2 (Replica).
- Headless Service cần thiết cho StatefulSet để cung cấp tên DNS ổn định cho mỗi pod.
- Tên headless service là
mysql-headless, với cấu hình clusterIP: None để không sử dụng load balancing.
- ConfigMap
mysql-init chứa lệnh SQL khởi tạo cơ sở dữ liệu appdb.
- StatefulSet YAML định nghĩa số lượng bản sao là 3 và sử dụng
mysql:8.0 làm hình ảnh container.
- Mỗi pod sử dụng Persistent Volume cho dữ liệu, với yêu cầu dung lượng là 1Gi.
- Sử dụng lệnh
kubectl label pod mysql-0 role=primary --overwrite để đánh dấu mysql-0 là Primary.
- Dịch vụ
mysql-write chỉ định chỉ đến mysql-0 cho lưu lượng ghi, bảo đảm rằng tất cả ghi vào cơ sở dữ liệu diễn ra an toàn.
- Dịch vụ
mysql-read phân phối tải đọc giữa mysql-1 và mysql-2, giúp bảo vệ Primary khỏi quá tải.
- Pod
mysql-client được tạo ra để thực hiện các lệnh MySQL, sử dụng lệnh kubectl exec để kết nối đến dịch vụ ghi.
Two JavaScript Fundamentals You Need Before Implementing Signals
- Trong bài viết sắp tới, chúng ta sẽ sử dụng closures để triển khai signal() và sử dụng destructuring để đọc và ghi giá trị (ví dụ: const { get, set } = signal(0)).
- Các hiểu lầm phổ biến khi học tập có thể bao gồm việc nghĩ rằng giá trị bị “snapshotted” hoặc rối rắm với this binding.
- Closure cho phép hàm ghi nhớ các biến từ phạm vi lexically mà nó được tạo ra, ngay cả khi phạm vi đó đã kết thúc.
- Ví dụ cài đặt cơ bản của signal() sử dụng closure lưu trữ trạng thái riêng tư (let value = initial;).
- Hàm get và set là các tham chiếu hàm ổn định, không cần tạo lại, phù hợp với React và các hệ thống callback.
- signal() không phụ thuộc vào bất kỳ framework nào, có thể được tạo bất kỳ lúc nào, khác với useState trong React.
- Destructuring cho phép giải nén array hoặc object thành nhiều biến, hỗ trợ việc đổi tên và giá trị mặc định.
- Khi destructuring, bạn nhận được một tham chiếu hàm từ signal(), không phải bản sao của giá trị.
- Nếu cần giá trị mới nhất, hãy gọi get() lại thay vì sử dụng một biến cũ để tránh giá trị không được cập nhật.
- Closures giữ cho trạng thái nội bộ được bảo mật và kiểm soát, hỗ trợ tốt cho việc mở rộng như caching hoặc danh sách người đăng ký.
- Object destructuring tạo ra API rõ ràng hơn (get, set, peek, on, v.v.) phát triển tốt hơn so với destructuring ở dạng array.
- Nếu bạn làm const value = get() và truyền đi, giá trị đó là một snapshot, nên cần gọi get() khi sử dụng để có trạng thái trực tiếp.
Login with Google on an iPhone (Local Metro server + Dev Build) - Part 7/7: Logout
- Chúng ta đã hoàn thành việc triển khai login.tsx trong phiên trước.
- Hiện tại, chúng ta sẽ viết chức năng logout trong trang protected.tsx.
- Chúng ta sử dụng hàm signOut() từ Clerk SDK để thực hiện đăng xuất.
- Trong protected.tsx, sử dụng useAuth() để truy xuất signOut và useRouter() để điều hướng.
- Hàm handleLogout được định nghĩa để thực hiện signOut và điều hướng về trang chính.
- Nếu có lỗi xảy ra trong hàm handleLogout, thông báo lỗi sẽ được ghi ra console.
- Chức năng logout được kết nối với nút Logout trong giao diện người dùng.
Why Feature Stores Didn’t Fix Training–Serving Skew
- Training–serving skew là một trong những mô hình thất bại phổ biến nhất trong ML sản xuất.
- Feature stores không giải quyết được vấn đề trong tầng thực thi mà chỉ vận hành trên định nghĩa tính năng.
- Skew xuất phát từ sự chuyển động giữa các ranh giới hệ thống, làm cho ngữ cảnh thực thi thay đổi và sự nhất quán chỉ ở mức xác suất (không đảm bảo).
- Các nhóm thường thấy tính năng offline không khớp với hành vi online, cập nhật bị trễ hoặc thiếu, và đường dẫn suy diễn khác với logic huấn luyện.
- Một lớp thực thi chung giữa huấn luyện và phục vụ có thể làm mất hoàn toàn skew.
- Feature stores quản lý dữ liệu nhưng không kiểm soát cách thực thi, dẫn đến không thể đảm bảo tính nhất quán giữa huấn luyện và phục vụ.
- Khi huấn luyện và phục vụ cùng chia sẻ một lớp thực thi, chúng sử dụng cùng một nguồn dữ liệu và logic, giúp loại bỏ sự phân tách không cần thiết giữa các hệ thống.
- Việc tính toán tính năng inline tại thời điểm truy vấn thay vì tính toán offline và lưu trữ, giúp ngăn chặn sự lạc lõng của tính năng.
- Đội ngũ phát triển chuyển từ việc theo dõi yêu cầu qua nhiều dịch vụ sang kiểm tra truy vấn tại một nơi.
- Giải pháp yêu cầu suy nghĩ lại về cách mô hình hóa tính năng và vị trí tính toán; chi phí chuyển đổi là có thật.
- Skew là vấn đề thuộc về thực thi và cần được giải quyết bằng các giải pháp trong lớp thực thi.
Mastering Live Sports Data with Gemini 3: URL Context, Grounding & Structured Output
- Khó khăn trong việc truy xuất thống kê thể thao chính xác với LLMs là vấn đề phổ biến do hiện tượng “hallucination” và dữ liệu huấn luyện lỗi thời.
- Bài viết mô tả việc truy xuất Thống kê cầu thủ Premier League 2025/2026 bằng mô hình Gemini 3 Flash Preview, sử dụng URL Context và Google Search để tìm dữ liệu.
- Gemini 3 hỗ trợ đầu ra có cấu trúc và có khả năng tạo JSON hợp lệ khi có schema được cung cấp.
- Cần cài đặt Google Cloud API Key và Python 3.12+ với SDK google-genai để chạy notebook trên Colab.
- Mô hình được thiết lập để tìm thông tin từ các trang cầu thủ Premier League hoặc dùng Google Search nếu dữ liệu thiếu.
- Quy trình kiểm tra xem có phải cầu thủ Premier League 2025/2026 không trước khi truy xuất thông tin.
- Kết quả truy xuất bao gồm tên, giá trị tài sản, số áo, chiều cao, chân thuận, số bàn thắng, số kiến tạo, số lần ra sân, và số phút chơi.
- Mô hình có khả năng truy cập dữ liệu từ hệ thống bên ngoài để lấy thông tin hiện tại, ngay cả khi dữ liệu nội bộ không cập nhật.
- Mã lệnh trong bài viết giúp tạo client để gọi mô hình Gemini 3 Flash Preview và lấy dữ liệu từ các URL đã cho.
CVE-2026-23733: Mermaid’s Song: From Flowchart to Remote Code Execution in LobeChat
- LobeChat có lỗ hổng XSS (CVE-2026-23733) cho phép thực thi JavaScript tùy ý từ năm 2026.
- Điểm CVSS của lỗ hổng là 6.4, xếp loại trung bình.
- Lỗ hổng ảnh hưởng đến phiên bản LobeChat Desktop trên Windows, macOS, Linux và LobeChat Web (chỉ XSS).
- XSS cho phép kẻ tấn công sử dụng API ‘runCommand’ có đặc quyền để thực thi mã từ xa (Remote Code Execution - RCE).
- Kẻ tấn công có thể tiêm mã HTML độc hại vào nhãn nút đồ thị Mermaid để kích hoạt lỗ hổng.
- Để khắc phục, nâng cấp LobeChat lên phiên bản 2.0.0-next.180 hoặc mới hơn.
- Nếu không thể nâng cấp, nên vô hiệu hóa plugin Mermaid artifact.
- Đề xuất các biện pháp giảm thiểu: kiểm tra dữ liệu đầu vào, cấu hình thư viện và củng cố IPC.
Angular Routing Internals — A Scientific, Production‑Minded Guide (2026)
- Angular routing không chỉ là định nghĩa URL, mà còn mã hóa trạng thái ứng dụng và quản lý dữ liệu.
- Routing có ảnh hưởng đến hiệu suất, khả năng tiếp cận và cấu trúc hệ thống.
- Có hai trục chính trong Angular routing: Thời gian (thay đổi trong quá trình điều hướng) và Phạm vi (cục bộ hoặc toàn cục).
- APIs Snapshot là các giá trị đọc tại một thời điểm, phù hợp khi trạng thái không thay đổi trong vòng đời thành phần.
- APIs Observable cho phép phản ứng với sự thay đổi trong suốt quá trình điều hướng.
- ActivatedRoute đại diện cho một nút trong cây trạng thái router, với các thuộc tính như params, queryParams, và url.
- Sự khác biệt giữa params và queryParams là params thuộc về danh tính route, trong khi queryParams liên quan đến ngữ cảnh điều hướng.
- Sử dụng ParamMap và QueryParamMap để truy cập an toàn hơn và cải thiện khả năng đọc mã.
- Router đại diện cho luồng điều hướng toàn cục và cho phép quan sát các sự kiện điều hướng.
- Lazy loading cải thiện hiệu suất bằng cách giảm kích thước gói ban đầu và tăng tốc độ thời gian hiển thị.
- Guards kiểm soát luồng điều hướng nhưng không đảm bảo an ninh backend.
[GDE] Mastering Live Sports Data with Gemini 3: URL Context, Grounding & Structured Output
- Việc truy xuất thống kê thể thao chính xác với LLMs gặp khó khăn do các hiện tượng hallucination và dữ liệu đào tạo lỗi thời.
- Mô hình Gemini 3 Flash Preview hỗ trợ đầu ra có cấu trúc và sử dụng Google Search để lấy dữ liệu bổ sung.
- Để chạy mã trong Colab, cần Vertex AI trong chế độ express và Google Cloud API Key được cấu hình đúng.
- Mô hình truy xuất thống kê cầu thủ Premier League mùa 2025/2026 từ các trang người chơi chính thức và qua Google Search nếu thiếu thông tin.
- Các thông tin thu thập bao gồm tên, tài sản ròng, số áo, chiều cao, chân thuận, số bàn thắng, kiến tạo, số lần ra sân và thời gian chơi.
- Dữ liệu chính xác được xác minh qua các nguồn uy tín trước khi trả về trong định dạng JSON.
- Mô hình có thể truy cập hệ thống bên ngoài để lấy thông tin cập nhật dù dữ liệu nội bộ đã lỗi thời.
On Google 2026 Announcements
- Google phát triển cơ sở hạ tầng quan trọng cho các hệ thống AI và nền tảng tự động.
- Universal Commerce Protocol (UCP) trở thành chuẩn mực cho thương mại điều phối bởi AI nhưng tập trung quyền kiểm soát trong hệ sinh thái của Google.
- Đến năm 2026, 270 cửa hàng Walmart sẽ sử dụng máy bay không người lái Wing để giao hàng thực phẩm, phục vụ 40 triệu người Mỹ.
- Dung lượng hàng hóa tối đa 5 pound buộc các nhà bán lẻ điều chỉnh chiến lược tồn kho theo yêu cầu của Google.
- Tính năng thanh toán của Gemini tái định nghĩa tương tác của khách hàng, cho phép giao dịch hoàn toàn trong môi trường AI của Google.
- Mỗi giao dịch bổ sung dữ liệu cho đồ thị mua sắm của Google và cải thiện thuật toán logistics.
- Các nhà bán lẻ cung cấp dữ liệu hoạt động mà không nhận được khả năng thông minh tương ứng, tạo lợi thế cho chủ sở hữu nền tảng.
- “Business Agents” của Google quản lý mối quan hệ khách hàng và quy trình hoạt động như những hệ thống điều phối thương mại.
- Lợi ích ngắn hạn bao gồm giao hàng nhanh chóng và hiệu quả hoạt động.
- Giá trị dài hạn ngày càng tập trung vào nền tảng kiểm soát lớp AI hơn là tài sản vật lý.
- Chủ sở hữu nền tảng thu được giá trị không tương xứng so với nhà cung cấp dịch vụ hàng hóa.
- Quan hệ đối tác hạ tầng cần bảo vệ quyền tự chủ chiến lược để tránh trở thành thành phần tối ưu hóa trong chuỗi giá trị của thực thể khác.