nói dối e blog

Chuyển Hướng Stdout Của Tiến Trình Hiện Tại Đến Kết Nối Mạng Trên Windows

Gần đây mình gặp một yêu cầu cần chuyển hướng đầu ra chuẩn (stdout) của tiến trình hiện tại sang một kết nối TCP. Trên hệ thống POSIX, việc này đơn giản chỉ cần gọi hàm dup2 để sao chép file descriptor. Tuy nhiên, Windows không tuân theo chuẩn POSIX, khiến việc triển khai trở nên phức tạp hơn nhiều.

Mình đã lục tung Stack Overflow và MSDN nhưng hầu như không tìm được giải pháp nào hiệu quả. Sau một ngày mày mò, mình rút ra được một số kinh nghiệm đặc biệt liên quan đến bản chất hoạt động của Windows.

Kỹ Thuật Nén Lưu Trữ Số Quaternion Sáng Tạo

Khi nghiên cứu mã nguồn thư viện hoạt ảnh gần đây, tôi đã phát hiện một phương pháp xử lý quaternion vô cùng độc đáo. Trong đồ họa 3D, quaternion thường được dùng để biểu diễn phép quay không gian với 4 thành phần số thực (x, y, z, w). Tuy nhiên nhờ tính chất chuẩn hóa x² + y² + z² + w² = 1, chúng ta không cần lưu trữ toàn bộ thông tin.

Công Việc Gần Đây Trên Bgfx

Trong khoảng thời gian gần đây, mình đã thực hiện một số công việc thú vị liên quan đến bgfx bên cạnh việc phát triển bộ ràng buộc lua trước đó đã công bố. Dưới đây là những cập nhật đáng chú ý:

Cải tiến trình điều khiển Direct3D12 cho nền tảng MinGW
Mình đã đóng một bản vá (patch) quan trọng để sửa lỗi thiết kế giao diện trong trình điều khiển Direct3D12 của bgfx, giúp nó có thể biên dịch thành công và chạy ổn định bằng MinGW. Đây chính là lỗi đã đề cập trong bài blog trước đây về thiết kế interface của Direct3D12. Bản yêu cầu kéo (pull request) này đã được đội ngũ phát triển bgfx chính thức chấp nhận.

Hỗ Trợ Tên Tệp UTF-8 Cho Lua Trên Windows

Trong quá trình phát triển ứng dụng gần đây trên nền tảng Windows, mình nhận ra một điểm hạn chế đáng kể của thư viện Lua gốc: các hàm liên quan đến thao tác tập tin (như fopen trong thư viện chuẩn C) không hỗ trợ tốt Unicode. Điều này gây khó khăn khi làm việc với các tên tệp sử dụng.UTF-8 - bộ mã hóa mình mong muốn được sử dụng thống nhất trong toàn bộ dự án. Để giải quyết vấn đề này, mình đã dành thời gian xây dựng một thư viện thay thế với đầy đủ tính năng hỗ trợ UTF-8.

Phiên Bản Skynet 1.1.0 Chính Thức Ra Mắt

Chúng tôi vui mừng thông báo phiên bản skynet 1.1 đã chính thức được phát hành!

Phiên bản này chủ yếu tập trung vào việc sửa chữa các lỗi đã được phát hiện kể từ phiên bản 1.0 ra mắt vào tháng 7 năm 2016. Nhờ việc skynet ngày càng được nhiều dự án tích hợp sử dụng, nhiều lỗi mà chúng tôi chưa phát hiện ra trong quá trình vận hành nội bộ đã được cộng đồng xác định và sửa chữa thông qua kho mã nguồn GitHub.

Thư Viện Bao Bọc BGFX Bằng Lua

Vài năm trước, một người bạn đã giới thiệu tôi về thư viện BGFX. Ấn tượng đầu tiên khiến tôi bị cuốn vào chính là khẩu hiệu của nó: “Bring Your Own Engine/Framework” - một thư viện render theo phong cách độc đáo. Trong thời đại mà cứ mỗi thư viện nhỏ cũng vội vã tự xưng là “engine 3D”, việc tập trung hoàn toàn vào nhiệm vụ cốt lõi - làm một thư viện render chuyên nghiệp - thật sự rất đáng trân trọng.

0%