A step-by-step guide to building semantic/AI-powered search in ASP.NET Core using PostgreSQL, pgvector, and the Gemini Embeddings API. Covers the limitations of keyword search, explains vector embeddings, and walks through adding an Embedding column to a Blog entity, configuring pgvector with EF Core, generating embeddings on record creation, and querying by cosine distance to return semantically relevant results. A complete demo repo with 100 seeded articles is provided.
Nguồn: https://mwaseemzakir.substack.com/p/build-ai-search-in-net-using-postgres. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Tailscale xây dựng mạng riêng ảo (tailnet) dựa trên WireGuard, cho phép kết nối an toàn các máy chủ, PC và điện thoại mà không cần mở cổng công khai. Hướng dẫn này hướng dẫn cài đặt Tailscale trên hai VPS, ràng buộc dịch vụ Docker (Postgres, Grafana, .NET API) vào IP của tailnet thay vì 0.0.0.0, đóng tất cả cổng tường lửa công khai kể cả SSH, và truy cập mọi thứ từ máy local thông qua hostname của tailnet.
Là lập trình viên phát triển ứng dụng hoặc quản trị hệ thống, bạn nên đọc bài này để hiểu cách xây dựng mạng riêng không cần mở nhiều cổng công khai, giảm thiểu rủi ro bảo mật và tối ưu hóa việc triển khai dịch vụ nội bộ mà không cần phụ thuộc vào reverse proxy hoặc TLS phức tạp.
SkiaSharp 4.0 (phiên bản 4.148.0) đã chính thức phát hành trên NuGet, nâng cấp engine Skia …
SkiaSharp 4.0 chính thức ra mắt với phiên bản ổn định đầu tiên, nâng cấp engine Skia lên m148 cùng nhiều cải tiến về hiệu năng, bảo mật, hỗ trợ OpenType variable font, color font palettes, và WebP animated. API được tối ưu hóa, tăng tốc GPU lên 24% và shader Perlin-noise nhanh gấp 6 lần trên CPU, đồng thời triển khai lịch phát hành song song Stable/Preview theo nhịp độ Skia của Chrome.
Nếu bạn làm việc với giao diện người dùng hoặc game 2D trên .NET, SkiaSharp 4.0 sẽ giúp bạn tối ưu hóa hiệu suất, cải thiện tính bảo mật và hỗ trợ các tính năng mới như font biến thể và mã hóa WebP động, giúp dự án của bạn nhanh hơn và hiện đại hơn.
Bài viết hướng dẫn xây dựng pipeline dữ liệu thời tiết toàn diện bằng các công cụ mã nguồn mở: Airflow điều phối, PostgreSQL lưu trữ, Metabase tạo dashboard BI, tất cả chạy trên Docker. Dữ liệu được thu thập mỗi giờ từ WeatherAPI cho các thủ phủ bang Brazil, xử lý qua DAG nhiều tầng của Airflow, rồi hiển thị dưới dạng dashboard thời tiết hiện tại, lịch sử và dự báo trên Metabase.
Lập trình viên muốn tự động hóa và tích hợp các công cụ phân tích dữ liệu từ API đến báo cáo trực quan sẽ tìm hiểu cách xây dựng một pipeline hoàn chỉnh với Airflow, PostgreSQL và Metabase để tối ưu hóa quy trình xử lý và chia sẻ thông tin thời tiết hiệu quả.
Một nhà phát triển phàn nàn rằng chu kỳ hỗ trợ 3 năm (LTS) của .NET là quá ngắn, không đủ cho nhu cầu nâng cấp doanh nghiệp khi phiên bản LTS mới ra mắt thì phiên bản cũ chỉ còn 1 năm hỗ trợ. Điều này khiến nhiều doanh nghiệp phải tiếp tục sử dụng .NET Framework cũ hơn do có chu kỳ hỗ trợ dài hơn (khoảng 10 năm) nhờ gắn liền với Windows OS.
Lập trình viên cần đọc bài này để hiểu cách Microsoft đang đối mặt với thách thức phải cân bằng giữa phát triển nhanh chóng của .NET Core/5+ với quy trình bảo mật và hỗ trợ lâu dài của các doanh nghiệp, và quyết định của họ có thể ảnh hưởng đến sự ổn định cho dự án hiện tại.
Postgres 19 bổ sung tính năng chuyển đổi checksum dữ liệu trực tuyến qua lệnh pg_enable_data_checksums(), thay thế phương pháp cũ yêu cầu tắt toàn bộ cluster. Tính năng mới sử dụng background workers, đánh dấu trang dữ liệu "dirty" để ghi checksum, hỗ trợ WAL-logging cho standbys, và có thể điều chỉnh tốc độ I/O. Trạng thái checksum được quản lý qua tham số data_checksums dạng enum.
Lập trình viên cần đọc bài này để hiểu cách tối ưu hóa bảo mật và khả năng phục hồi dữ liệu trong ứng dụng PostgreSQL của mình bằng cách sử dụng cơ chế checksum mới trong phiên bản 19, giúp giảm thiểu thời gian downtime và cải thiện hiệu suất trong các kịch bản phục hồi cao độ.
Các pipeline RAG phổ biến thường sử dụng cosine similarity trên các embedding, nhưng cách này bỏ qua cấu trúc tài liệu và không thể chứng minh sự vắng mặt thông tin. Bài viết đề xuất sáu bài học: truy xuất nên hoạt động như SQL (lọc trên bảng cấu trúc), từ khóa ưu tiên vì rẻ và có thể trả về kết quả trống, mục lục tài liệu là tín hiệu quan trọng bắt lỗi paraphrase. Embedding chỉ là phương án dự phòng khi từ vựng không khớp, không phải nền tảng. Co-occurrence vượt trội so với BM25 trên dữ liệu doanh nghiệp hẹp, và cần tách biệt anchor (khớp chính xác) với context (phạm vi xung quanh). Một lần chạy LLM trên mục lục có thể giải quyết paraphrase hiệu quả, tạo thành pipeline ba tín hiệu (từ khóa + TOC + embedding) với ưu điểm về chi phí và khả năng kiểm toán.
Lập trình viên nên đọc bài này để hiểu cách tối ưu hóa hệ thống RAG bằng cách kết hợp các phương pháp truyền thống và tiên tiến—tránh sai lầm đơn giản như chỉ dùng cosine similarity mà bỏ qua cấu trúc văn bản và hiệu quả của các signal như từ khóa, TOC, và embeddings để cải thiện chất lượng và hiệu suất của hệ thống.

Bài viết hướng dẫn kiến trúc sao lưu và khôi phục của pg_hardstorage, công cụ sao lưu PostgreSQL, bao gồm cách lưu trữ cơ sở (base backups) và WAL (Write-Ahead Log), tổ chức dữ liệu thành chunk, manifest và metadata. Nội dung cũng đề cập đến các quyết định kỹ thuật như lưu trữ theo địa chỉ nội dung, deduplication, thiết kế manifest, xác minh toàn vẹn, an toàn khi crash, thu gom rác và quy trình khôi phục.
Lập trình viên cần hiểu cơ chế của pg_hardstorage để tối ưu hóa giải pháp lưu trữ và phục hồi dữ liệu PostgreSQL hiệu quả, đặc biệt khi xây dựng hệ thống tự động hóa hoặc mở rộng quy mô với các tính năng như deduplication và crash safety.