Chương 3 - Khi Tương Lai Bị Đánh Cắp
Nhưng tầng thấp nhất của dự án này chính là do tôi viết script triển khai. Ai đăng nhập lúc nào, đã chép đi những file nào, sửa dòng cấu hình nào, tôi còn rõ hơn bất kỳ ai.
Khi trang nhật ký tải ra, tôi nhìn chằm chằm vào mấy cái tên tài khoản quen thuộc đó, ngón tay siết chặt từng chút một.
Quả nhiên.
Trong vòng một tuần gần đây, Châu Yến đã dùng quyền chia sẻ của tôi.
Tài khoản phòng thí nghiệm của Lâm Nghiên chiều nay cũng vừa có lượt truy cập bất thường vào thư mục dự án.
Còn ông anh khóa trên “tốt bụng” nói sẽ giúp dọn dẹp lịch sử hệ thống kia, cũng vừa mới xóa dấu vết truy cập từ nền tảng quản trị thêm một lần nữa.
Tôi trích xuất toàn bộ trang, lưu về máy, tiện tay tạo luôn một bản sao lưu cục bộ (mirror).
Sau đó tôi mở email, gửi tất cả các file quan trọng vào hòm thư dự phòng ngoài trường của mình, đồng thời CC (sao chép) cho một trợ lý hướng dẫn – người luôn công tư phân minh, không bao giờ chia phe phái mà chỉ nhìn vào kết quả.
Thời gian từng phút từng giây trôi qua.
Trong ký túc xá yên tĩnh đến mức chỉ còn lại tiếng quạt trần và tiếng gõ bàn phím.
Cuối cùng tôi cũng hiểu ra, có những mối quan hệ một khi đã mục nát, phản ứng đầu tiên sẽ chẳng phải là đau đớn.
Phản ứng đầu tiên là sự tỉnh táo.
Tỉnh táo nhận ra rằng, niềm tin mà mình từng cam tâm tình nguyện trao đi, sẽ có một ngày biến thành nhát dao người ta đâm ngược lại mình.
1 giờ 17 phút sáng, tôi kéo tệp log máy chủ cuối cùng vào thư mục mã hóa.
Màn hình điện thoại chợt sáng lên.
Châu Yến lại gửi đến một tin nhắn.
“Vi Vi, ngày mai xong việc, chúng mình đi ăn lẩu Sukiyaki mà em thích nhất nhé, chịu không?”
Tôi nhìn dòng chữ đó, mặt không cảm xúc đổi biệt danh của anh ta từ “A Nghiên” trở lại thành “Châu Yến”.
Sau đó, tạo một thư mục mới.
Tên thư mục chỉ có đúng mấy chữ.
Bằng chứng lật kèo.
Tôi tựa lưng vào ghế, nhắm nghiền mắt lại.
Lúc mở mắt ra lần nữa, trái tim đã hoàn toàn chai sạn.
Bọn họ không phải muốn ăn cắp sao?
Vậy thì cứ để cho họ ăn cắp.
Không phải muốn cuỗm dự án của tôi, dẫm lên đầu tôi để leo lên cao sao?
Vậy thì tôi sẽ đích thân dựng sẵn sân khấu cho họ.
Đợi đến lúc họ đứng ở chỗ cao nhất, rồi ngay trước mặt tất cả mọi người, tôi sẽ vung một cước đạp đổ tất cả.
Tôi rút ổ cứng di động ra, nhét vào ngăn trong cùng của balo.
Trên màn hình máy tính, thời gian chuyển sang 1 giờ 29 phút sáng.
Tôi không hề khóc.
Chỉ là đăng nhập lại vào máy chủ, lặng lẽ thay đổi toàn bộ quyền truy cập thêm một lần nữa.
2
Tôi lặng lẽ thay đổi toàn bộ quyền truy cập.
Sau đó, bắt đầu từng mục từng mục một, lôi hết toàn bộ những thứ mà bọn họ tưởng rằng đã có thể xóa sạch sành sanh về lại.
Đầu tiên là code.
Kho lưu trữ dự án trên Git tôi tạo tổng cộng 4 branch (nhánh): bản chính thức, bản test, bản tái cấu trúc API và bản nháp bỏ đi từ thời kỳ đầu. Bình thường Châu Yến chỉ theo dõi phần giao diện (presentation layer) cùng tôi, tưởng rằng thứ có giá trị nhất là bộ giao diện trực quan hóa cuối cùng kia.
Nhưng thứ thực sự quyết định việc dự án có chạy được hay không, lại là mô hình cốt lõi (underlying model) và logic làm sạch dữ liệu.
Tôi trích xuất toàn bộ lịch sử commit trên Git.
Thời gian commit, người chỉnh sửa, lịch sử merge nhánh, thông tin ghi chú của từng dòng… tất cả đều được đóng gói lại.
Để đề phòng đối phương sau này cắn ngược lại một ngụm, bảo rằng “chỉ là cùng nhau thảo luận”, tôi còn cố tình đào lại cả lịch sử khởi tạo hồi mới lập repo hai năm trước —— username là tôi, email là tôi, bộ khung thuật toán phiên bản đầu tiên là tôi, ngay cả cái từ viết tắt tiếng Anh gõ sai trong dòng chú thích báo lỗi sớm nhất… cũng là của tôi nốt.
Tiếp theo là nhật ký thực nghiệm.