GyaanSetu WebDev

Frontend, backend và DevOps cho web hiện đại.

230 articlesDeep, practical knowledge

Flag mới của TS 6.0 bắt buộc sử dụng Bracket Notation, giúp giảm thiểu lỗi crash do thuộc tính undefined

Bằng cách chuyển việc truy cập bằng dấu chấm (dot-notation) trên các index signatures thành lỗi trong quá trình biên dịch, flag mới này giúp phát hiện sớm các lỗi thiếu key. Hãy kết hợp với --noUncheckedIndexedAccess để đảm bảo an toàn tối đa cho các kiểu dữ liệu undefined.

WebDev · 3 min read

TechForge cảnh báo: Microservices sơ khai dễ biến thành các khối Monolith phân tán gây độ trễ cao

Tài liệu hướng dẫn chỉ ra rằng nhiều startup gắn mác mã nguồn là “dựa trên microservices” nhưng vẫn duy trì một cơ sở dữ liệu dùng chung, tạo ra các module liên kết chặt chẽ và vẫn gặp phải tình trạng độ trễ mạng. Chỉ nên tách một dịch vụ riêng biệt khi thực sự có nhu cầu về mở rộng quy mô hoặc phân chia quyền sở hữu.

WebDev · 5 min read

World Labs triển khai quy trình Real-to-Sim-to-Real nhằm cắt giảm chi phí huấn luyện robot

Trong một podcast gần đây của a16z, Fei-Fei Li và Yunzhu Li đã giải thích cách SceniX của World Labs tạo ra các bản sao kỹ thuật số chính xác của kho hàng, nhà hàng và khách sạn, cho phép robot diễn tập các tác vụ trong môi trường mô phỏng trước khi thực sự hoạt động trong môi trường thực tế.

WebDev · 3 min read

Cách chặn các bot đào tạo nhưng vẫn giữ lại các bot trích dẫn để duy trì lưu lượng truy cập từ ChatGPT

Việc sử dụng lệnh “Disallow: /” chung cho GPTBot chỉ chặn trình thu thập dữ liệu dùng để đào tạo; các bot trích dẫn giúp hiển thị trang web của bạn trong khung câu trả lời của ChatGPT vẫn sẽ hoạt động. Hãy sử dụng các quy tắc robots.txt cụ thể hoặc tính năng AI Crawl Control của Cloudflare để cho phép OAI-SearchBot, ChatGPT-User và các bot tương tự, trong khi vẫn chặn GPTBot, ClaudeBot,

WebDev · 4 min read

Chuyển từ cơ chế Sắp xếp theo điểm số sang A-Res giúp giải quyết triệt để lỗi ‘Luôn hiển thị cùng một lưới’ trên Trang chủ của chúng tôi

Nhờ xử lý mỗi hàng ứng viên một lần duy nhất và chỉ duy trì một min-heap 24 phần tử, phương pháp lấy mẫu reservoir có trọng số mới không chỉ giúp làm mới lưới sau mỗi lần tải lại mà còn cắt giảm đáng kể mức tiêu thụ bộ nhớ của SQLite.

WebDev · 3 min read

Sửa lỗi trùng lặp JSON-LD sản phẩm trên Shopify trong 5 bước đơn giản

Sử dụng công cụ Schema Markup Validator của Google, xác định chính xác tệp theme hoặc ứng dụng gây lỗi, loại bỏ khối JSON-LD dư thừa và kiểm tra lại các ứng dụng—mỗi bước giúp khôi phục một schema sản phẩm duy nhất và chuẩn xác, giúp hiển thị kết quả giàu nội dung (rich results) tốt hơn.

WebDev · 1 min read

SMS Bombing che giấu các cảnh báo tráo SIM, giúp kẻ tấn công chiếm đoạt số điện thoại mà không có cảnh báo

Một nạn nhân đã nhận được 400 tin nhắn xác thực chỉ trong 10 phút, một thủ đoạn không chỉ làm quá tải điện thoại mà còn che đậy các vụ trộm ngân hàng và chiếm đoạt SIM đang diễn ra, buộc cả người dùng và các nhà phát triển phải hành động khẩn cấp.

WebDev · 3 min read

Thử thách Bot của Cloudflare làm gián đoạn các yêu cầu POST thanh toán trực tiếp, Fetch đã giải quyết vấn đề

Một biểu mẫu HTML đơn giản chuyển hướng đến Stripe hoạt động bình thường khi kiểm thử, nhưng lại gặp lỗi 503 đối với người dùng Chrome thực tế qua Cloudflare. Việc chuyển sang quy trình gửi dữ liệu bằng fetch trước đã giúp yêu cầu POST vượt qua thử thách bot, sau đó một lệnh chuyển hướng GET đã hoàn tất quá trình thanh toán.

WebDev · 4 min read

Sân chơi Python trên trình duyệt gặp sự cố trên các mạng chậm do đọc sai API mạng

Môi trường thực thi Python 5,5 MB ngay trên trình duyệt đã âm thầm bị hết thời gian chờ (timeout) đối với người dùng mạng 3G hoặc kết nối chậm, do Network Information API của Chrome trả về một giá trị downlink giả khiến mã nguồn hiểu lầm là tốc độ nhanh, dẫn đến một loạt các chẩn đoán sai lầm.

WebDev · 3 min read

Script dọn dẹp đã xóa mất các đoạn mã trong hàng chục bài viết

Một tác vụ bảo trì định kỳ đã nhận diện nhầm các thẻ {% raw %} của Liquid là các biến chưa được đóng, dẫn đến việc xóa sạch các khối mã xung quanh trong tất cả các bài viết có sử dụng chúng, buộc phải thực hiện khôi phục khẩn cấp và xem xét lại quy trình kiểm thử di chuyển.

WebDev · 3 min read

Hermes Agent mở rộng khả năng tự động hóa AI, nhưng lại chuyển gánh nặng bảo mật sang cho các nhà phát triển

Thiết kế dạng mô-đun của Hermes Agent giúp tách biệt mô hình ngôn ngữ, lõi điều phối và các công cụ thực thi, cho phép bạn tích hợp các tập lệnh, lệnh gọi REST hoặc lệnh Docker—tuy nhiên, điều này cũng đòi hỏi bạn phải chạy agent trong môi trường sandbox và bảo vệ các khóa API.

WebDev · 3 min read

Browser-Use và Steel giúp các Agent LLM thích ứng với việc thay đổi giao diện trang web với chi phí chỉ bằng một nửa

Bằng cách thay thế các bộ chọn CSS dễ bị lỗi bằng khả năng suy luận của LLM, bộ công cụ mới—Browser-Use, Stagehand, Steel và Playwright MCP—giúp duy trì hoạt động của các script khi trang web thay đổi, đồng thời cắt giảm mức tiêu thụ token thông qua việc lọc DOM, sử dụng các bản chụp ARIA và các lối tắt thị giác.

WebDev · 3 min read

Bản nâng cấp Astro 7 gây lỗi Công thức Toán học, Liên kết Tiêu đề và các Tùy chọn Tùy chỉnh – Cách khắc phục

Astro 7 hiện sử dụng công cụ markdown Sätteri dựa trên Rust, thực hiện làm nổi bật cú pháp trước khi chạy các plugin HTML-AST. Thay đổi này khiến các khối $$...$$ bị phân loại nhầm thành mã code, ngăn các plugin heading-slug tạo ID và loại bỏ mọi cài đặt markdown không tiêu chuẩn mà bạn đã thiết lập.

WebDev · 4 min read

FastPix vượt mặt tất cả với các lượt tải lên 177 MB, trong khi Cloudinary chiến thắng ở bài kiểm tra 65 MB

Công cụ kiểm thử Node.js đã đo lường cả thời gian tải lên thô và thời gian đạt trạng thái sẵn sàng trên đường truyền bị giới hạn 10 Mbps, cho thấy FastPix nhanh nhất với tệp 177 MB và Cloudinary đạt trạng thái sẵn sàng chỉ trong 2 giây cho clip 65 MB, trong khi Mux vượt trội ở các khung hình khởi động lạnh.

WebDev · 3 min read

AV2 hứa hẹn tăng 30% hiệu quả nhưng chưa hỗ trợ FFmpeg hay bộ giải mã phần cứng

Bộ mã hóa tham chiếu AV2 1.0.0, được phát hành vào tháng 5 năm 2026, cho thấy mức giảm 30% bitrate so với AV1, nhưng tốc độ xử lý chậm hơn nhiều so với các bộ mã hóa AV1 hiện có, thiếu tích hợp trong FFmpeg và chưa có bộ giải mã phần cứng, khiến nó không phù hợp cho các quy trình phát trực tiếp.

WebDev · 3 min read

Một sự cố ISP duy nhất có thể làm tê liệt ngày làm việc của kỹ sư từ xa như thế nào – và cách để ngăn chặn

Chỉ một sự cố ISP cũng có thể khiến lập trình viên làm việc từ xa mất kết nối trong nhiều giờ, tương tự như một vụ sập máy chủ. Bằng cách đo lường mức tiêu thụ điện, bổ sung bộ lưu điện (UPS) và lắp đặt bộ định tuyến dual-WAN với dự phòng hotspot 4G/5G, bạn có thể đảm bảo RTO và duy trì công việc lập trình liên tục.

WebDev · 2 min read

Coi Prompt Injection là một lỗi phân quyền và loại bỏ các công cụ không được ủy quyền

Các nhà phát triển phải ngừng việc để lộ các hàm đặc quyền trong bộ công cụ của mô hình. Bằng cách tạo danh mục hàm cho từng yêu cầu dựa trên quyền hạn của người gọi và áp dụng cơ chế từ chối mặc định khi danh tính không rõ ràng, các tác nhân LLM có thể loại bỏ lỗ hổng prompt-injection 1% vốn dẫn đến các vụ rò rỉ dữ liệu.

WebDev · 5 min read

Các bài kiểm tra không ổn định đang phá hủy quy trình CI của bạn – Hãy chuyển từ tỷ lệ vượt qua sang các chỉ số tin cậy lỗi

Các đội ngũ thường mải mê chạy theo tỷ lệ vượt qua cao, trong khi các lỗi chập chờn đang che lấp đi những lỗi thực sự. Bằng cách theo dõi tần suất lặp lại của lỗi, tỷ lệ phát hiện lỗi, mức độ phụ thuộc vào việc thử lại và thời gian chẩn đoán, bạn có thể biến những thông báo lỗi đỏ nhiễu loạn thành những tín hiệu đáng tin cậy để thực sự định hướng cho việc phát hành.

WebDev · 4 min read