nói dối e blog

Giới Thiệu Một Số Thứ Liên Quan Đến Lua

Dạo gần đây, mình có nhận dự án yêu cầu xuất dữ liệu Lua ra định dạng text đặc biệt. Mình đã dùng thử thư viện Lust – một công cụ tuyệt vời cho việc sinh mã tự động. Dù còn nhiều hạn chế vì số lượng người dùng ít, nhưng nhờ tính năng thú vị được phát hiện khi đọc source code (ban đầu tưởng là bug), tác giả đã rất nhanh chóng sửa lỗi theo góp ý trên GitHub. Điều này cho thấy tinh thần cộng đồng nhiệt huyết trong phát triển Lua.

Sửa Đổi Nhỏ Trên Mô-Đun Cổng Của Skynet

Module cổng giao tiếp của skynet được cập nhật nhỏ

Trong hệ thống skynet tồn tại một module có tên là gate, chuyên xử lý việc đọc dữ liệu từ các kết nối mạng bên ngoài. Module này ban đầu được phát triển dựa trên đoạn mã mà tôi vô tình viết ra để minh họa cho ví dụ về ringbuffer.

Lúc đầu tôi cho rằng việc sử dụng epoll để xử lý sự kiện đọc dữ liệu là hoàn toàn đủ, còn việc ghi dữ liệu thì cứ để ở chế độ đồng bộ (blocking) trực tiếp xuống socket. Lý do là bởi skynet có khả năng phân bổ các tác vụ vào nhiều luồng xử lý khác nhau, nên việc một vài kết nối bị nghẽn cũng sẽ không làm toàn bộ hệ thống dừng hoạt động. Có thể hình dung đơn giản đây là mô hình “độc đọc đa luồng, ghi dữ liệu đơn luồng”.

Tuyển Dụng: Chuyên Viên Quản Trị Hệ Thống Windows/Linux

Cập nhật ngày 30/05: Kể từ khi thông báo tuyển dụng được đăng tải, chúng tôi đã nhận được hồ sơ tự giới thiệu của 9 ứng viên qua email. Hiện bộ phận Nhân sự của công ty đang tiến hành các bước tuyển chọn tiếp theo. Đến hôm nay, giai đoạn tuyển dụng bên ngoài cho vị trí này chính thức khép lại. Xin chân thành cảm ơn sự quan tâm của tất cả mọi người!

TUYỂN DỤNG: NHÀ PHÁT TRIỂN LUA

Ngày 16 tháng 5 - THÔNG BÁO: Do đã nhận đủ hồ sơ ứng tuyển, đợt tuyển dụng chính thức kết thúc sớm. Xin chân thành cảm ơn sự quan tâm của tất cả ứng viên!

Công ty Gian Nhạc (Simple Joy) mở đợt tuyển dụng vị trí Lập trình viên phát triển server game trực tuyến (hạn chót nhận hồ sơ đến hết ngày 01/06/2013).

YÊU CẦU CHUNG:

  • Có kinh nghiệm lập trình thuần túy bằng ngôn ngữ Lua tối thiểu 1.000 dòng code
  • Thành thạo C/C++ với khối lượng code đã viết trên 10.000 dòng
  • Từng tham gia phát triển dịch vụ mạng, có khả năng độc lập xử lý vấn đề (bao gồm nhưng không giới hạn ở: thiết kế giao thức truyền thông hợp lý, đánh giá hiệu năng và tính bảo mật hệ thống)
  • Ưu tiên ứng viên có kinh nghiệm làm việc trong ngành game từ 2 năm trở lên

QUYỀN LỢI:

Lỗi Hy Hữu Do WM_CREATE Gây Ra

Trong quá trình bảo trì một ứng dụng Windows, mình đã gặp phải một lỗi khá đặc biệt khiến mình phải ghi chú lại để rút kinh nghiệm. Đây là một chương trình Windows đơn giản, sử dụng hàm callback WinProc để xử lý các thông báo như WM_CREATE, WM_PAINT, WM_TIMER và một số thông báo khác.

Hiện tượng lỗi rất lạ: Luồng xử lý WM_CREATE chưa hoàn tất thì ứng dụng đã bắt đầu xử lý các thông báo khác như WM_TIMER. Điều này tạo cảm giác như hàm WinProc bị gọi lặp lại (re-entrancy) một cách bất ngờ.

Một Lỗi Đặc Biệt Trong Lua 5.2.2

Vài ngày trước, phiên bản Lua 5.2.2 chính thức được phát hành, tập trung sửa chữa 4 lỗi đã biết tồn tại trong Lua 5.2.1. Trong đó có một lỗi mà gần đây tôi và một bạn đồng nghiệp từng trao đổi qua email thảo luận chi tiết.

Tôi đã cập nhật Lua 5.2.2 vào nhánh chính của dự án công ty, đồng thời phải tiến hành cập nhật cuốn sách “Chiêm ngưỡng mã nguồn Lua” do tôi biên soạn. Việc đồng bộ thay đổi mã nguồn này vào tài liệu rất vất vả nhưng đầy ý nghĩa. Trong quá trình làm việc, tôi phát hiện phiên bản mới không chỉ đơn thuần sửa 4 lỗi chính thức công bố, mà còn có nhiều điều chỉnh nhỏ giúp mã nguồn Lua trở nên chuẩn mực hơn.

0%