nói dối e blog

Nguyên Tắc Lựa Chọn Dự Án Mã Nguồn Mở

Cuối tuần này, tập đoàn Alibaba sẽ tổ chức sự kiện tuyển dụng tại Đại học Trung Nam. Với tư cách là cựu sinh viên, tôi được mời chia sẻ kỹ thuật dành cho các tân cử nhân. Tôi muốn dành thời gian nói về chủ đề mã nguồn mở.

Do thời lượng chia sẻ hạn chế, tôi không thể triển khai sâu các nội dung liên quan. Vì vậy tôi viết bài blog này để bàn về một chủ đề con: Tiêu chí lựa chọn dự án mã nguồn mở khi sử dụng chúng?

Vấn Đề Chuyển Đổi Từ Fbx Sang Gltf

Định dạng tài nguyên được sử dụng trong engine game của chúng tôi là gltf 2.0. Trong vài năm gần đây, định dạng gltf phát triển rất nhanh chóng và được đánh giá là chuẩn hóa tốt nhất trong các định dạng tệp 3D. Tuy nhiên, trong ngành công nghiệp game, các công cụ thiết kế quen thuộc với nghệ sĩ như 3ds Max và Maya vẫn còn tồn tại một số hạn chế trong hỗ trợ định dạng này. Autodesk gia nhập tổ chức Khronos với tư cách thành viên contributor vào năm 2019, và theo thông tin chính thức thì tính năng hỗ trợ gltf trong các công cụ của Autodesk như Max và Maya đang trong giai đoạn Under Review (xem xét) vào cuối tháng 3/2020. Chúng tôi kỳ vọng sẽ sớm được sử dụng phiên bản chính thức trong năm nay.

Vấn Đề Khởi Tạo & Thoát Khỏi Dịch Vụ

Tóm tắt: Mỗi đơn vị (dịch vụ) tồn tại song song với hệ thống trong hệ thống TL;DR đều phải cung cấp giao diện tắt thay vì giao diện giải phóng. Thao tác tắt chỉ cần thực hiện những bước thiết yếu, không cần giải phóng tài nguyên hay đồng bộ hóa với các thành phần khác. Khi toàn bộ hệ thống thoát, chỉ cần lệnh mọi thành phần tắt rồi dừng đột ngột toàn bộ hệ thống.

Cách Skynet Xử Lý Trạng Thái Đóng Một Nửa Kết Nối TCP

Giao thức TCP cho phép truyền dữ liệu song công, bao gồm cả chiều gửi lên (upstream) và nhận xuống (downstream). Khi một kết nối bị ngắt, hai kênh truyền này có thể đóng độc lập với nhau. Ở cấp độ API, nếu hàm read() trả về giá trị 0, điều này cho thấy kênh upstream đã bị đóng và không còn dữ liệu nào được gửi đến nữa. Tuy nhiên, điều này không đồng nghĩa với việc kênh downstream cũng bị đóng - đối phương vẫn có thể tiếp tục mong chờ nhận dữ liệu từ phía chúng ta. Ngược lại, khi write() trả về lỗi -1 với mã EPIPE, điều này xác nhận kênh downstream đã bị ngắt, không nên tiếp tục gửi dữ liệu. Tuy nhiên, kênh upstream vẫn có thể còn hoạt động, nghĩa là chúng ta vẫn có thể nhận được dữ liệu từ read().

Ltask: Thư Viện Đa Nhiệm Của Lua

ltask - Thư viện đa nhiệm cho Lua
ltask là thư viện đa nhiệm cho ngôn ngữ Lua mà tôi đã phát triển cách đây hai tuần. Dự án này kế thừa tên gọi từ một dự án tương tự trước đây của tôi, tuy nhiên thiết kế hoàn toàn mới đã được xây dựng từ đầu với mục tiêu tương tự nhưng tiếp cận hiện đại hơn. Tôi đã quyết định xóa bỏ kho mã nguồn cũ và tạo một kho mã mới với cùng tên gọi này.

Một Phương Pháp Tiền Xử Lý Tìm Đường Trên Bản Đồ

Trong bài viết trước, chúng ta đã thảo luận về việc tối ưu hóa thuật toán tìm đường trên máy chủ. Cuối bài có đề cập đến một phương pháp đặc biệt hiệu quả cho nhu cầu cụ thể: đó là tiền xử lý toàn bộ các tuyến đường và lưu trữ kết quả vào tệp tin. Nhờ đó, thời gian truy vấn tại thời điểm chạy chỉ cần O(1) để tìm bất kỳ đường đi nào.

0%