Simon Willison’s Weblog
Our approach to advertising and expanding access to ChatGPT
- OpenAI sẽ thử nghiệm quảng cáo cho các tài khoản miễn phí và Go tại Mỹ trong vài tuần tới.
- Tầng Go mới có giá 8 USD/tháng và vừa được ra mắt tại Mỹ.
- Tầng Go ban đầu được thử nghiệm ở Ấn Độ vào tháng 8 năm 2025 với giá 399 INR/tháng (khoảng 4.40 USD).
- Các gói Pro, Business và Enterprise sẽ không có quảng cáo.
- Các gói miễn phí và Go sẽ có giới hạn khác nhau về số lượng token và cửa sổ ngữ cảnh.
- Cửa sổ ngữ cảnh cho gói miễn phí là 16K, gói Go và Plus là 32K, gói Pro là 128K.
- Quảng cáo không ảnh hưởng đến các câu trả lời của ChatGPT; câu trả lời được tối ưu hóa cho người dùng.
- Những cuộc hội thoại với ChatGPT sẽ được giữ bí mật và không bán dữ liệu cho nhà quảng cáo.
- Quảng cáo sẽ được hiện thị rõ ràng và tách biệt với nội dung chat.
- Một ví dụ quảng cáo cho thấy sự tương tác với chatbot từ một doanh nghiệp cho thuê cottage ở Santa Fe.
Stay SaaSy
The Most Important Teams in Tech
- Đội ngũ kỹ thuật và đội ngũ bán hàng là hai bộ phận quan trọng nhất trong một công ty phần mềm B2B.
- Kỹ thuật xuất sắc (nhanh chóng, đáng tin cậy) không thể thay thế.
- Sự phù hợp giữa sản phẩm và thị trường (PMF) thường được củng cố thông qua hoạt động bán hàng hiệu quả.
- Bán hàng là động cơ chính để SaaS mở rộng quy mô.
- Nếu không có đội ngũ kỹ thuật, các nhà quản lý sản phẩm (PM) không thể tạo ra giá trị.
- Tối ưu hóa hiệu suất của kỹ thuật là nhiệm vụ hàng đầu của các bộ phận khác.
- Chia sẻ ngân sách R&D giữa các đội ngũ và cần xem xét cẩn thận việc sử dụng tài nguyên.
- Quản lý các ưu tiên ngay lập tức của kỹ thuật và bán hàng là rất quan trọng.
- Các bộ phận không phải kỹ thuật cần phải ‘biết chỗ đứng’ của mình và hỗ trợ tối đa cho các đội ngũ chính.
Open Source Projects - Latest Discoveries
A real-time silent speech recognition tool.
- Chaplin là công cụ nhận diện giọng nói im lặng, sử dụng webcam để chuyển đổi chuyển động môi thành văn bản.
- Công cụ này được phát triển bằng Python, kết hợp giữa computer vision và machine learning.
- Chaplin cung cấp khả năng nhập văn bản mà không cần nói, hữu ích trong môi trường công cộng, văn phòng mở, hay thư viện.
- Dự án sử dụng OpenCV để xử lý video và MediaPipe để theo dõi chuyển động môi chính xác.
- Người dùng có thể thử nghiệm Chaplin thông qua GitHub với các bước cài đặt đơn giản.
- Gợi ý cách chạy ứng dụng: cài đặt môi trường Python, cài đặt phụ thuộc từ file requirements.txt, sau đó chạy lệnh python main.py.
- Dự án là một mẫu tham khảo tuyệt vời cho các nhà phát triển về quy trình video thời gian thực và giảm độ trễ trong xử lý.
Build your own ChatGPT from scratch using PyTorch and Jupyter
- Dự án “LLMs from Scratch” hướng dẫn chi tiết quá trình xây dựng mô hình ngôn ngữ sinh học bằng cách sử dụng PyTorch.
- Bắt đầu từ khái niệm dự đoán token tiếp theo, bạn sẽ xây dựng từ mô hình bigram đơn giản đến kiến trúc transformer hoàn chỉnh.
- Dự án bao gồm các khía cạnh như tokenization, embedding layers, transformer blocks và training loop, đi kèm với mã nguồn thực thi.
- Bạn sẽ có một mô hình ngôn ngữ nhỏ được xây dựng và huấn luyện riêng, mang lại kiến thức sâu sắc về các thành phần.
- Mỗi notebook được thiết kế để giúp việc học dễ dàng bằng cách tăng độ phức tạp một cách từ từ.
- Dự án có sẵn trên GitHub và có thể chạy cục bộ bằng Python 3.10+ với các thư viện cần thiết như torch, numpy, tqdm, và matplotlib.
- Việc tham gia vào dự án này giúp các nhà phát triển nâng cao khả năng giải quyết vấn đề và hiểu rõ hơn về kỹ thuật đằng sau các thư viện AI.
The open-source engine for AI-powered quantitative investment research
- QLib là một framework mã nguồn mở từ Microsoft, hỗ trợ ứng dụng machine learning trong tài chính.
- Nó cung cấp công cụ quản lý dữ liệu, kỹ thuật tạo đặc trưng tự động, kiến trúc mô hình đa dạng và hệ thống kiểm thử lại (backtesting) chặt chẽ.
- Thiết kế AI-First cho phép xử lý dự đoán lợi nhuận cổ phiếu hiệu quả với hỗ trợ cho GBDTs và mạng nơ-ron.
- ExpressionEngine trong QLib tính toán đặc trưng phát sinh (như chỉ báo kỹ thuật) một cách hiệu quả, tiết kiệm thời gian.
- Hệ thống kiểm thử lại tính toán các vấn đề thực tế như trượt giá và chi phí giao dịch.
- QLib khuyến khích nghiên cứu có thể tái sản xuất, dễ dàng chia sẻ và so sánh các mô hình.
- Cách bắt đầu đơn giản với lệnh cài đặt pip và hướng dẫn chi tiết từ tài liệu.
Train and deploy machine learning models directly in the browser
- TensorFlow.js là thư viện JavaScript cho việc đào tạo và triển khai các mô hình machine learning trong trình duyệt và trên Node.js.
- Nó cho phép chạy các mô hình hiện có bằng cách chuyển đổi từ Python và chạy suy diễn trực tiếp trong trình duyệt.
- Model có thể được đào tạo hoàn toàn trong trình duyệt, tận dụng phần cứng thiết bị của người dùng thông qua WebGL.
- Ưu điểm chính của việc chạy trong trình duyệt là bảo mật, vì dữ liệu không bao giờ rời khỏi thiết bị của người dùng.
- Tính năng suy diễn ngay lập tức khi mô hình được tải giúp cải thiện trải nghiệm người dùng ở các ứng dụng thời gian thực như lọc hình ảnh và phát hiện tư thế.
- TensorFlow.js dễ tiếp cận cho các lập trình viên, chỉ cần mở bảng điều khiển trình duyệt để bắt đầu không cần thiết lập môi trường Python.
- Các ví dụ điển hình gồm dự đoán tư thế, phân loại hình ảnh với MobileNet và trình phân loại KNN tương tác.
- Có thể tích hợp TensorFlow.js qua thẻ script hoặc cài đặt qua npm.
- Kho lưu trữ GitHub là trung tâm cho toàn bộ thư viện, plugin và ví dụ.
The open-source engine to build your own Shopify alternative
- Medusa là một engine thương mại đầu cuối (headless commerce engine) mã nguồn mở dựa trên Node.js.
- Medusa cung cấp các API cốt lõi cho các hoạt động thương mại điện tử như quản lý sản phẩm, xử lý giỏ hàng, và đơn hàng.
- Nó cho phép người dùng tự kiểm soát frontend, triển khai, và logic tùy chỉnh mà không bị khóa bởi nền tảng nào.
- Kiến trúc plugin của Medusa cho phép mở rộng dễ dàng với các gateway thanh toán như Stripe và PayPal, dịch vụ hoàn tất, và phân tích.
- Medusa cho phép xây dựng frontend bằng nhiều công nghệ khác nhau như Next.js, Gatsby, hoặc React Native mà không bị ràng buộc với một giao diện cụ thể.
- Người dùng có thể khởi động một máy chủ Medusa địa phương với một vài lệnh đơn giản sau khi cài đặt Medusa CLI và PostgreSQL.
- Medusa giúp các nhà phát triển tạo ra trải nghiệm thương mại độc đáo một cách dễ dàng, từ cửa hàng trực tuyến đến thị trường hoặc tích hợp vào ứng dụng hiện có.
Open-source, Self-host disposable email service to avoid spam and protect privacy
- TempFastMail là một dự án mã nguồn mở cho phép bạn chạy máy chủ email tạm thời của riêng mình.
- Dịch vụ cung cấp địa chỉ email tạm thời, tự động xóa sau một khoảng thời gian tùy chỉnh (ví dụ: 10 phút).
- Bạn không cần phụ thuộc vào dịch vụ công cộng, mà tự kiểm soát dữ liệu và email nhận được.
- TempFastMail xử lý email qua SMTP và cung cấp giao diện web sạch để kiểm tra hộp thư tạm thời.
- Để bắt đầu, bạn cần một máy chủ (có thể dùng Raspberry Pi) và một miền để trỏ đến.
- Bạn có thể tải mã nguồn từ GitHub và cấu hình các bản ghi DNS (bản ghi MX cần thiết để nhận email).
- Dự án cung cấp tệp docker-compose.yml để dễ dàng triển khai dịch vụ.
A complete collection of useful skills for the Claude AI platform
- Repository agent37-skills-collection trên GitHub cung cấp bộ kỹ năng mô-đun cho nền tảng Claude AI.
- Mỗi “kỹ năng” là một khả năng cụ thể, tích hợp logic hoặc ứng dụng mà có thể sử dụng trong agent hoặc ứng dụng dựa trên Claude.
- Các kỹ năng bao gồm: web_search, code_interpreter, file_processor, database_query, v.v.
- Bộ sưu tập này giúp tiết kiệm thời gian và khuyến khích các cách làm tốt nhất trong phát triển AI.
- Các kỹ năng được thiết kế có cấu trúc, cung cấp tài liệu rõ ràng và xử lý các API call và phản hồi.
- Repository là nguồn tài nguyên do cộng đồng phát triển và dự kiến sẽ phát triển theo thời gian.
- Người dùng có thể truy cập repo tại github.com/Agent-3-7/agent37-skills-collection để khám phá và tích hợp kỹ năng.
- Tài liệu hướng dẫn trong README mô tả yêu cầu và cách sử dụng các kỹ năng có sẵn.
- Người dùng có thể clone repo hoặc sao chép các mô-đun kỹ năng cụ thể vào dự án của mình.
- Hầu hết các kỹ năng yêu cầu cấu hình bổ sung, chẳng hạn như thiết lập API keys trong biến môi trường.
A minimalist tool to kill any process and manage every port forward and tunnels.
- Port Killer là công cụ dòng lệnh giúp giết các quy trình chiếm port và quản lý tunnel mạng hiệu quả.
- Công cụ có thể giết một quá trình theo PID hoặc theo số port đang sử dụng.
- Port Killer cung cấp cái nhìn tổng quan và quản lý cho tất cả SSH tunnels và port forwards đang hoạt động.
- Lệnh sử dụng rất đơn giản: chỉ cần gõ port-killer kill thay vì sử dụng nhiều lệnh phức tạp.
- Dễ dàng cài đặt từ GitHub bằng cách clone và chạy với Go hoặc biên dịch và cài vào thư mục PATH.
- Các lệnh chính bao gồm port-killer list để xem danh sách tunnels và port-killer kill để giải phóng port.
- Port Killer tập trung vào một nhiệm vụ cụ thể mà không cố gắng trở thành một công cụ giám sát hệ thống lớn hơn, mang lại sự đơn giản và hiệu quả trong quản lý port và tunnels.
Roadmap for a self-taught hacker
- Repo “be-a-hacker” cung cấp lộ trình học tập có cấu trúc cho những người tự học về an ninh mạng.
- Nó bắt đầu từ các kiến thức cơ bản như thiết lập môi trường lab và hiểu biết về mạng.
- Repo tổ chức nội dung thành các giai đoạn quản lý, tiến dần đến các lĩnh vực nâng cao như bảo mật ứng dụng web và phát triển exploit.
- Các công cụ thiết yếu như Burp Suite, Nmap, và Wireshark được đề xuất để người học dễ dàng làm quen.
- Hướng dẫn nhấn mạnh việc học tập thực hành với các nền tảng như Hack The Box và TryHackMe.
- Người dùng không cần cài đặt mà chỉ cần sử dụng repo như hướng dẫn học tập và truy cập vào tài liệu tại docs/.
- Tài liệu bắt đầu từ 0.0.md (Cơ bản) và có thể được khám phá tuần tự theo các giai đoạn.
The open-source platform that centralizes secure access to your entire infrastructure
- Jumpserver là một nền tảng mã nguồn mở, đóng vai trò như một bastion host và hệ thống quản lý quyền truy cập đặc quyền (PAM).
- Jumpserver cung cấp giao diện web thống nhất để kết nối với các tài sản như máy chủ Linux, máy chủ Windows, cơ sở dữ liệu (MySQL, PostgreSQL, Redis) và cụm Kubernetes.
- Người dùng không được cấp trực tiếp SSH keys hoặc mật khẩu; thay vào đó, họ nhận quyền truy cập thông qua Jumpserver.
- Tất cả các phiên làm việc đều được ghi lại, cho phép phát lại phiên để kiểm tra sự cố.
- Jumpserver áp dụng nguyên tắc ít quyền truy cập nhất: có thể cấp quyền hạn cho người dùng một cách cụ thể.
- Nó giúp đơn giản hóa quản lý tài sản bằng cách giữ danh mục các nút và tổ chức chúng theo nhãn.
- Jumpserver là mã nguồn mở và có thể tự lưu trữ trên hạ tầng của riêng bạn mà không bị ràng buộc bởi nhà cung cấp.
- Cách nhanh nhất để trải nghiệm Jumpserver là kiểm tra phiên bản demo trực tuyến hoặc cài đặt bằng Docker.
- Hướng dẫn nhanh để cài đặt bao gồm việc nhân bản kho cài đặt và chạy script cấu hình.
Minimal Claude Code alternative. Single Python file, zero dependencies, ~250 lines.
- Nanocode là công cụ hỗ trợ lập trình nhẹ nhàng, chỉ gồm khoảng 250 dòng Python.
- Nó hoạt động mà không cần phụ thuộc, chỉ cần một tệp duy nhất để thực hiện công việc.
- Nanocode tạo mã, giải thích mã hoặc hỗ trợ các tác vụ lập trình đơn giản chỉ với một prompt đầu vào.
- Tính năng của nó bao gồm hỗ trợ lập trình khi offline hoặc trong môi trường hạn chế.
- Cài đặt dễ dàng chỉ cần clone từ GitHub và chạy với Python:
git clone https://github.com/1rgs/nanocode và python nanocode.py.
- Repository bao gồm các ví dụ về prompt và hướng dẫn sử dụng.
- Nanocode là tài nguyên học tập tuyệt vời, giúp hiểu cách hoạt động của các công cụ hỗ trợ mã.
The open-source alternative to expensive AI design subscription services
- OpenLovart là một nền tảng thiết kế AI mã nguồn mở, cho phép người dùng tự lưu trữ (self-hosted) các tác vụ thiết kế với sự hỗ trợ của AI.
- Người dùng có thể tạo, chỉnh sửa và biến đổi tài sản thiết kế mà không cần gửi yêu cầu tới API bên thứ ba.
- Dự án giúp người dùng kiểm soát chi phí và dữ liệu của họ, giảm thiểu các khoản phí đăng ký hàng tháng.
- OpenLovart cho phép người dùng tùy chỉnh mã nguồn và tích hợp vào hệ thống thiết kế nội bộ của họ.
- Chi phí chính cho dự án là chi phí tính toán, như thời gian GPU, có thể tiết kiệm hơn so với phí SaaS theo từng ghế.
- Người dùng có thể bắt đầu với OpenLovart thông qua GitHub, nơi có hướng dẫn cài đặt và thiết lập Docker.
- Để chạy OpenLovart, cần có hệ thống đủ tài nguyên, bao gồm GPU đủ mạnh để vận hành các mô hình AI.
Hacker News: Launches
💬 Launch HN: Indy (YC S21) – A support app designed for ADHD brains
Hacker News: Best
🔥 Our approach to advertising
🔥 STFU
- Tác giả phát triển một ứng dụng nhỏ để phát lại âm thanh mà nó nghe được, với độ trễ khoảng 2 giây.
- Ứng dụng hoạt động hiệu quả, giúp làm giảm tiếng ồn xung quanh.
- Tên ban đầu của ứng dụng là “make-it-stop”, nhưng sau đó đổi thành STFU để giống với tên của một ứng dụng tương tự.
- Ứng dụng được tạo ra từ sự châm biếm và sử dụng Web Audio API.
💬 East Germany balloon escape
- Cuộc vượt biên bằng khinh khí cầu diễn ra từ Đông Đức vào Tây Đức vào năm 1979.
- Hai người đàn ông, Peter Strelzyk và Günter Wetzel, thực hiện cuộc trốn thoát này.
- Họ thiết kế và chế tạo một chiếc khinh khí cầu bằng chất liệu nylon.
- Ngày 16 tháng 9 năm 1979, họ bay từ chức vụ Đông Đức sang Tây Đức trong 28 phút.
- Chiếc khinh khí cầu bị rơi khi đến gần biên giới Tây Đức, nhưng họ đã an toàn.
- Cuộc trốn thoát thành công của họ tạo ra một cơn sốt ở Đông Đức.
- Sau cuộc trốn thoát, chính quyền Đông Đức gia tăng kiểm soát biên giới.
🔥 Canada slashes 100% tariffs on Chinese EVs to 6%
- Thủ tướng Mark Carney công bố quan hệ đối tác chiến lược với Trung Quốc, mở cửa biên giới Canada cho xe điện Trung Quốc.
- Canada đồng ý cho phép 49,000 xe điện Trung Quốc nhập khẩu với mức thuế chỉ 6.1%.
- Con số này chiếm chưa đến 3% thị trường xe mới tại Canada.
- Chính phủ dự kiến rằng trong vòng năm năm, hơn 50% xe điện này sẽ có giá dưới 35,000 USD.
- Trung Quốc đồng ý cắt giảm thuế đối với hạt cải dầu Canada từ 85% xuống 15% và dỡ bỏ các hạn chế với tôm hùm và cua Canada.
- Thỏa thuận này được cho là sẽ kích thích đầu tư liên doanh mới của Trung Quốc vào Canada để phát triển chuỗi cung ứng xe điện trong nước.
- Việc Canada nhập khẩu xe điện Trung Quốc có thể gây ra căng thẳng với Mỹ, vốn đang cố gắng bảo vệ thị trường nội địa trước Trung Quốc.
- Canada tìm cách thu hút các công ty như BYD và CATL thiết lập cơ sở tại Canada thông qua chính sách quota này.
🔥 6-Day and IP Address Certificates Are Generally Available
- Chứng nhận ngắn hạn và chứng nhận địa chỉ IP hiện đã có sẵn từ Let’s Encrypt. (15/01/2026)
- Chứng nhận ngắn hạn có thời gian hiệu lực 160 giờ, khoảng hơn 6 ngày.
- Để lấy chứng nhận ngắn hạn, người dùng chọn hồ sơ chứng nhận ‘shortlived’ trong ACME client.
- Chứng nhận ngắn hạn cải thiện bảo mật bằng cách yêu cầu xác thực thường xuyên hơn và giảm sự phụ thuộc vào cơ chế thu hồi không đáng tin cậy.
- Thời gian dễ bị tổn thương khi chứng nhận bị lộ khóa riêng đã giảm so với thời hạn truyền thống kéo dài 90 ngày.
- Chứng nhận ngắn hạn là tùy chọn và không có kế hoạch trở thành mặc định tại thời điểm này.
- Thời gian hiệu lực mặc định của chứng nhận sẽ giảm từ 90 ngày xuống 45 ngày trong vài năm tới.
- Chứng nhận địa chỉ IP cho phép xác thực kết nối TLS tới địa chỉ IP thay vì tên miền.
- Let’s Encrypt hỗ trợ cả IPv4 và IPv6 cho chứng nhận địa chỉ IP.
- Chứng nhận địa chỉ IP phải là chứng nhận ngắn hạn do tính chất tạm thời của địa chỉ IP.
🔥 Cursor’s latest “browser experiment” implied success without evidence
- Vào ngày 14 tháng 1 năm 2026, Cursor công bố bài viết trên blog về “Scaling long-running autonomous coding”.
- Họ thí nghiệm chạy các “coding agents” tự động trong nhiều tuần với mục tiêu hoàn thành dự án lớn.
- Bài viết đề cập đến việc xây dựng một trình duyệt web từ đầu với hơn 1 triệu dòng mã trong gần một tuần.
- Tuy nhiên, họ không khẳng định trình duyệt này hoạt động thành công.
- Nhiều lần biên dịch trên GitHub cho thấy lỗi và cảnh báo, không có mã nào biên dịch mà không có lỗi.
- Mã nguồn được mô tả như “AI slop”, không có chất lượng cao và không thể biên dịch được.
- Bài viết không cung cấp hướng dẫn xây dựng hay phiên bản đáng tin cậy để kiểm tra.
- Câu kết của bài viết khẳng định câu hỏi về khả năng mở rộng lập trình tự động có câu trả lời lạc quan hơn mong đợi, nhưng không có bằng chứng hỗ trợ.
- Họ không đưa ra bất kỳ chi tiết cụ thể nào để chứng minh tiến bộ thực sự, chỉ đưa ra ấn tượng về một nguyên mẫu hoạt động.
🔥 Cloudflare acquires Astro
- Công ty Astro Technology — nhà phát triển framework Astro — gia nhập Cloudflare.
- Tốc độ áp dụng framework Astro tăng gấp đôi hàng năm.
- Astro 6 sẽ ra mắt sớm.
- Astro vẫn mở và được cấp phép MIT.
- Astro tiếp tục được duy trì và hỗ trợ nhiều mục tiêu triển khai, không chỉ Cloudflare.
- Tất cả nhân viên chính thức của Astro hiện là nhân viên của Cloudflare, làm việc toàn thời gian cho Astro.
- Astro đã tải xuống gần 1.000.000 lần mỗi tuần và được sử dụng bởi hàng trăm nghìn lập trình viên.
- Đã có nhiều nỗ lực phát triển sản phẩm thương mại nhưng không thành công.
- Cloudflare và Astro chia sẻ tầm nhìn về tương lai của web với công nghệ AI.
- Cloudflare ủng hộ các dự án mã nguồn mở và đảm bảo sẽ giữ Astro miễn phí và mở.
- Astro sẽ duy trì vai trò là framework không phụ thuộc vào nền tảng, hỗ trợ cải tiến cho tất cả các mục tiêu triển khai.
🔥 Michelangelo’s first painting, created when he was 12 or 13
- Bức tranh “The Torment of Saint Anthony” được Michelangelo vẽ khi ông khoảng 12-13 tuổi.
- Bức tranh đã bị nhầm là của người khác trong khoảng nửa thiên niên kỷ.
- Năm 2008, bức tranh được bán tại Sotheby’s và đã được phân tích tại Bảo tàng Nghệ thuật Metropolitan.
- Phân tích cho thấy màu sắc và phong cách của bức tranh giống với kỹ thuật của Michelangelo ở thời điểm sau này.
- Infrared reflectography phát hiện “pentimenti”, cho thấy đây là một tác phẩm gốc chứ không phải là bản sao.
- Bảo tàng Nghệ thuật Kimbell ở Texas đã mua bức tranh sau khi không tìm thấy lập luận nào phản đối về nguồn gốc.
- Bức tranh hiện là tác phẩm duy nhất của Michelangelo ở châu Mỹ và chỉ là một trong bốn bức tranh easel trong sự nghiệp của ông.
- Nghệ sĩ lịch sử nghệ thuật Giorgio Bonsanti xác nhận bức tranh là tác phẩm của Michelangelo trẻ tuổi sau một thập kỷ phân tích.
- Một số người vẫn hoài nghi về nguồn gốc của bức tranh, nhưng khả năng tạo ra tác phẩm này rất cao là từ Michelangelo.
🔥 Just the Browser
- Just the Browser giúp loại bỏ các tính năng AI, báo cáo dữ liệu telemetry, nội dung tài trợ và các phiền toái khác từ trình duyệt web.
- Dự án cung cấp các tệp cấu hình cho Google Chrome, Microsoft Edge và Mozilla Firefox, tài liệu hướng dẫn cài đặt, và script cài đặt dễ dàng.
- Script cài đặt có thể cài đặt các tệp cấu hình chỉ trong vài cú nhấp chuột.
- Các chức năng bị loại bỏ bao gồm hầu hết các tính năng AI, tính năng mua sắm, nội dung tài trợ và thông báo về trình duyệt mặc định.
- Just the Browser sử dụng group policies, không sửa đổi ứng dụng hay tệp thực thi nào.
- Cài đặt sẽ vẫn được áp dụng miễn là trình duyệt hỗ trợ các tệp cấu hình.
- Chưa có hỗ trợ cài đặt cho điện thoại hoặc máy tính bảng.
💬 Interactive eBPF
- Học eBPF thông qua các bài tập thực hành.
- Viết, biên dịch và chạy chương trình trực tiếp từ trình duyệt.
- Chương 0: Giới thiệu.
- Chương 1: Làm quen với các khái niệm.
- Chương 2: eBPF có trạng thái.
- Chương 3: Các phép đo trong kernel.
🚀 New Year, New You — My AI-Powered Portfolio
- Đây là bài dự thi cho Thử thách Portfolio “Năm Mới, Bạn Mới” do Google AI tổ chức.
- Tác giả là Senthil Kumar, một Full Stack Tech Lead, đam mê xây dựng ứng dụng có khả năng mở rộng và khám phá AI.
- Mục tiêu của dự án là trình bày hồ sơ chuyên nghiệp theo cách hiện đại và sạch sẽ.
- Tác giả sử dụng Google AI Studio để tạo ra cấu trúc nội dung và cải thiện độ rõ ràng của bản sao.
- Ứng dụng được triển khai trên Google Cloud Run, cung cấp bộ điều hành ít yêu cầu.
- Tác giả cho thấy khả năng kết hợp phát triển hỗ trợ AI với việc triển khai thực tế.
- Tác giả cảm thấy tự hào về việc cấu hình nhãn và metadata triển khai chính xác.
Git and GitHub: A Beginner’s Guide
- Hệ thống quản lý phiên bản (version control) miễn phí, mã nguồn mở, theo dõi mọi thay đổi trong tệp tin (Git).
- Quản lý mã nguồn cho phép nhiều người cùng làm việc trên một tệp tin và hợp nhất các chỉnh sửa của họ.
- Mỗi thay đổi được ghi lại với timestamp, mô tả và tên người thực hiện.
- Có khả năng tạo “branch” để thử nghiệm tính năng mới mà không làm ảnh hưởng đến dự án chính.
- Các bước đẩy mã lên GitHub: khởi tạo kho cục bộ (git init), thêm tệp vào kho (git add .), cam kết thay đổi (git commit -m “Project added”), thêm remote (git remote add origin [URL]), và đẩy mã (git push origin master).
- Các bước kéo mã từ GitHub: sao chép kho (git clone [URL]), tạo nhánh mới (git checkout -b update-name), sửa đổi và kiểm tra trạng thái (git add ., git status).
- Ba khu vực theo dõi tệp tin: thư mục làm việc (working directory), vùng tạm (staging area), và kho lưu trữ (repository).
- Luôn kiểm tra trạng thái hiện tại bằng lệnh (git status) để biết tệp nào đã được theo dõi hay chưa.
- Để thêm tệp vào vùng tạm, sử dụng lệnh (git add .) để thêm tất cả.
- Sử dụng (git commit -m “Mô tả ngắn gọn về sự thay đổi”) để lưu trạng thái hiện tại chính thức trong lịch sử của Git.
From Shaky Squats to Perfect Form: Master Workout Analysis with Dynamic Time Warping (DTW)
- Đánh giá chất lượng động tác là thách thức trong thể dục, không chỉ đếm số lần tập (Nguồn: phân tích chuyển động).
- Dynamic Time Warping (DTW) “kéo dài” hoặc “nén” trục thời gian để so sánh hai chuỗi động tác, giúp nhận diện hoạt động của con người (HAR).
- Dữ liệu chuyển động được thu thập từ Apple Watch và xử lý để tạo “Standardness Score” (Điểm chất lượng).
- Cần thu thập dữ liệu với tần số 50Hz - 100Hz cho độ chính xác cao (Nguồn: Swift & Core Motion).
- Sử dụng FastDTW để so sánh chuỗi, với độ phức tạp tính toán $O(N)$ thay vì $O(N^2)$ (Nguồn: Python và NumPy).
- Tham số hóa dữ liệu bằng chuẩn hóa Z-score trước khi so sánh (Nguồn: FastDTW).
- Điểm chuẩn sẽ từ 0-100, với điểm số cao hơn thể hiện sự tương đồng cao hơn (Nguồn: mã nguồn Python).
n8n Integrates Note, Obsidian, Dify, and SNS - Complete Overview of the Increasingly Chaotic Automation Workflow
- Tôi tích hợp note và Obsidian với n8n để tài liệu được tạo ra tại một nơi duy nhất.
- Khi đăng vào note, RSS feed tự động kích hoạt workflow n8n.
- Workflow đăng bài vào Discord như một bài báo tin tức cho người dùng Premium (500 yen/tháng).
- Tôi đăng nhập vào note để lấy access token và định dạng JSON cho API.
- Thông tin từ RSS feed được định dạng và kết hợp với thông tin đăng nhập để lấy nội dung note.
- Tôi đăng ký thông tin đã trích xuất vào Dify knowledge để có thể truy vấn qua chatbot.
- Tôi tạo tóm tắt nội dung và bình luận liên quan đến Perfume để tạo bài viết quảng cáo.
- Hiện tại, việc quảng cáo chỉ diễn ra tự động trên Misskey.
- Tóm tắt và bình luận cũng được ghi vào Obsidian.
- Tôi tự động đăng bài lên dev.to nếu có hashtag cụ thể, sử dụng API để kiểm soát điều này.
- Việc tự động thực hiện những công việc kể trên rất thú vị và tiện lợi.
# Building a Clean REST API in Go: From Spaghetti Code to Clean Architecture
- Ban đầu, API REST trong Go của tôi không có cấu trúc tốt, với tất cả mã nguồn trong main.go (1,500 dòng).
- Việc thêm tính năng mới trở nên khó khăn do mã không được tách biệt, khiến việc tìm kiếm và thay đổi trở nên phức tạp.
- Tôi đã áp dụng Clean Architecture để tạo cấu trúc rõ ràng, tách biệt các thành phần như HTTP handlers, business logic và database.
- Mỗi thành phần thực hiện một nhiệm vụ riêng, giúp việc phát triển và bảo trì trở nên dễ dàng hơn.
- Một ví dụ cụ thể: Hàm CreateUser được chia thành Handler, Service và Repository để xử lý các yêu cầu một cách rõ ràng và có tổ chức.
- Handler chỉ xử lý các yêu cầu HTTP, Service kiểm soát logic kinh doanh, còn Repository giao tiếp với cơ sở dữ liệu.
- Khi cần thêm OAuth, chỉ cần thêm phương thức mới vào UserService mà không làm ảnh hưởng đến các phần khác trong hệ thống.
The Upstream Problem: Why Context Graphs Are Starving
- Foundation Capital cho rằng giá trị doanh nghiệp đang chuyển từ hệ thống record sang hệ thống agents với context graphs là yếu tố quan trọng.
- Context graph là bản ghi sống của hành trình quyết định, nhưng quyết định không chỉ xuất phát tại thời điểm thực thi mà còn trong các cuộc trò chuyện trước đó.
- Quy trình ghi lại các cuộc họp hiện nay chưa hiệu quả, làm cho ngữ cảnh quyết định dễ dàng bị mất mát.
- Thị trường data observability ước tính sẽ đạt 2.5 tỷ USD vào năm 2027, nhưng chủ yếu tập trung vào việc phát hiện vấn đề sau khi xảy ra.
- Quyết định trong các pipeline dữ liệu thường không được ghi lại rõ ràng, gây khó khăn trong việc hiểu rõ nguồn gốc và lý do đằng sau.
- Sự bất cập này không chỉ xảy ra trong phát triển phần mềm mà còn trong lĩnh vực dữ liệu, nơi lý do quyết định hay giải pháp thường không được lưu giữ.
- Thông tin về quyết định tốt nhất thường có tại thời điểm nó được đưa ra; việc ghi lại sau đó dẫn đến sự thiếu chính xác và thiếu ngữ cảnh.
- SpecStory và sản phẩm Intent được xem là một giải pháp quan trọng để cải thiện khả năng ghi nhận và xây dựng ngữ cảnh cho các quyết định.
Stop Redeploying for Config Changes: The 5-Minute Rails Key-Value Store
- Hệ thống cài đặt động trong Rails cho phép thay đổi cấu hình mà không cần deploy lại (ví dụ như bật tắt “Holiday Sale Banner”).
- Tạo bảng
system_settings trong cơ sở dữ liệu để lưu trữ cặp khóa-giá trị cho các cài đặt.
- Model
SystemSetting sử dụng phương thức self.[] và self.[]= để truy cập dữ liệu như Hash Ruby.
- Cài đặt giá trị bằng cách sử dụng cú pháp:
SystemSetting[:key] = "value".
- Truy xuất giá trị bằng cú pháp:
SystemSetting[:key].
- Có thể sử dụng hệ thống cài đặt cho các tính năng linh hoạt như “Kill Switch” và cờ tính năng động.
- Thêm tính năng caching để giảm tải cho cơ sở dữ liệu và tối ưu tốc độ truy xuất dữ liệu.
- Caching sử dụng
Rails.cache giúp lấy giá trị từ bộ nhớ, tối ưu hóa cho các truy vấn thường xuyên.
Alexandra
- Forem cung cấp nhiều Subforems để cải thiện trải nghiệm cho người dùng.
- DEV Community tạo không gian thảo luận về phát triển phần mềm và sự nghiệp trong lĩnh vực này.
- Future bàn luận về khoa học và công nghệ, bao gồm AI, VR, cryptocurrency, và điện toán lượng tử.
- Open Forem là nơi để thảo luận chung cho cộng đồng Forem.
- Music Forem tập trung vào sáng tác âm nhạc, biểu diễn, và thiết bị âm nhạc.
- Vibe Coding Forem chuyên về phát triển phần mềm AI và chia sẻ sản phẩm công nghệ.
- Security Forem tập trung vào bảo mật, bao gồm ethical hacking và phát triển nghề nghiệp trong lĩnh vực này.
- Golf Forem phục vụ cho cộng đồng những người đam mê golf.
- Crypto Forem thảo luận về tất cả các khía cạnh của cryptocurrency, từ Bitcoin đến DeFi.
- Parenting cung cấp không gian cho các bậc phụ huynh chia sẻ kinh nghiệm nuôi dạy trẻ.
- Forem Core đề cập đến dự án phần mềm nguồn mở chính của Forem.
- Maker Forem phục vụ cho những người đam mê chế tạo như Arduino và Raspberry Pi.
- HMPL.js Forem dành cho các nhà phát triển sử dụng HMPL.js để xây dựng ứng dụng web nhẹ.
CVE-2026-23735: Singleton Roulette: Racing for Context in GraphQL Modules
- Vulnerability ID là CVE-2026-23735 với CVSS Score 8.7, được công bố vào ngày 16 tháng 1 năm 2026.
- Sự cố liên quan đến race condition trong thư viện graphql-modules cho phép ngữ cảnh yêu cầu chồng chéo khi sử dụng @ExecutionContext trong các dịch vụ Scoped Singleton.
- Người dùng A có thể vô tình thừa hưởng phiên, mã xác thực hoặc dữ liệu của người dùng B khi các yêu cầu của họ được xử lý đồng thời.
- Tình trạng này có thể dẫn đến nhầm lẫn danh tính nghiêm trọng và rò rỉ dữ liệu.
- Cách khắc phục yêu cầu nâng cấp lên phiên bản 2.4.1 hoặc 3.1.1 hoặc tránh sử dụng context injection trong các Singleton.
- CWE liên quan là CWE-362 (Race Condition).
- Điểm mạnh của cuộc tấn công là thấp và không yêu cầu quyền hạn hay tương tác của người dùng.
- Các hệ thống bị ảnh hưởng là graphql-modules, với các phiên bản từ 2.2.1 đến trước 2.4.1 và từ 3.0.0 đến trước 3.1.1.
- Để giảm thiểu rủi ro, cần nâng cấp graphql-modules lên các phiên bản đã được sửa lỗi hoặc tái cấu trúc các dịch vụ Singleton.
- Các bước khắc phục bao gồm xác định các dịch vụ sử dụng @Injectable({ scope: Scope.Singleton}), kiểm tra việc sử dụng @ExecutionContext, và chạy lệnh nâng cấp npm.
How I Finally Understood Wi-Fi (Hint: It’s Like a Rhythm Game)
- Router Buffalo (WXR-1750DHP2) gặp sự cố ngắt kết nối ngẫu nhiên, switched sang modem/router của ISP (KAON từ J:COM) và tốc độ kết nối được cải thiện.
- Wi-Fi sử dụng sóng radio để truyền tải thông tin bằng cách chuyển đổi tín hiệu số thành sóng điện từ qua modulation.
- Wi-Fi 5 sử dụng 256-QAM, trong khi Wi-Fi 6 sử dụng 1024-QAM, cho phép Wi-Fi 6 xử lý 4 lần lượng thông tin chi tiết hơn.
- Wi-Fi hoạt động giống như một trò chơi nhịp điệu, nơi các nút nhạc phải được nhấn đúng thời điểm.
- Wi-Fi 5 xử lý các thiết bị lần lượt, trong khi Wi-Fi 6 sử dụng OFDMA, cho phép nhiều thiết bị hoạt động đồng thời như một dàn nhạc.
- Wi-Fi 6 có MU-MIMO và TWT, giúp tiết kiệm năng lượng và nâng cao hiệu suất cho các thiết bị.
- Cần có hình mẫu tư duy cá nhân để hiểu công nghệ, như việc sử dụng analogies với trò chơi nhịp điệu giúp nâng cao nhận thức về Wi-Fi.
Proper file names
- FOREM là nền tảng cho cộng đồng phát triển phần mềm, thảo luận và quản lý sự nghiệp công nghệ.
- Có các Subforems chuyên biệt như Future (tin tức về công nghệ), Music Forem (thảo luận về âm nhạc), và Security Forem (an ninh mạng).
- Crypto Forem tập trung vào các chủ đề liên quan đến Crypto, từ Bitcoin đến phát triển giao thức và phân tích thị trường.
- Forem Core thảo luận về dự án mã nguồn mở Forem, bao gồm tính năng và hiệu suất.
- Vibe Coding Forem tập trung vào phát triển AI software và các dự án liên quan.
- Maker Forem phục vụ cho cộng đồng những người đam mê chế tạo, như Arduino và 3D printing.
CVE-2025-8217: Amazon Q’s Self-Sabotage: The Backdoor That Couldn’t Code
- ID Rủi ro: CVE-2025-8217.
- Điểm CVSS: 5.1 (Trung bình).
- Ngày công bố: 30/07/2025.
- Mã độc được tiêm vào quy trình xây dựng của extension Amazon Q Developer v1.84.0.
- Payload bị lỗi cú pháp, không thể thực thi (CWE-506).
- Vụ tấn công thuộc dạng supply chain nhưng không thành công.
- Phiên bản bị ảnh hưởng: Amazon Q Developer VS Code extension v1.84.0.
- Đã sửa lỗi trong phiên bản 1.85.0.
- Đề xuất nâng cấp lên phiên bản Amazon Q Developer VS Code 1.85.0 hoặc mới hơn.
- Kiểm tra sạch sẽ mã nguồn và quy trình xây dựng để ngăn chặn tấn công tương tự.