After Dzut — A few notes

Sau Dzựt năm nay thì nhiều bạn quan tâm vào hỏi “Ủa có sao không!?”, mình cũng chỉ trả lời là ngoại trừ bị “chửi” thì chương trình ổn, hoàn thành tốt đẹp, không sao cả :D

Thật ra thì năm nào làm Dzut thì Tiki cũng đều chuẩn bị sẵn chương trình sẽ có một số khách hàng vì nhiều lý do khác nhau (đa số là vì thất vọng không Dzựt trúng giải nào) nên lên Facebook chửi Tiki và chương trình Dzựt rồi. Bài trả lời chính thức của Tiki thì các bạn có thể coi ở đây, và nếu không am hiểu về tech thì mình nghĩ câu trả lời này đã giải đáp được hầu hết thắc mắc của bạn rồi.

Tuy nhiên, với vai trò người lead dự án Dzựt của năm 2017 về mặt sản phẩm và kỹ thuật, mình cũng muốn giải thích thêm cho một số complain phổ biến của khách hàng, đồng thời đưa thêm insights cho những bạn muốn hiểu hơn về cách Tiki đã làm Dzựt 2017 như thế nào, có khó khăn gì không, có cheaters không…

Lý do đầu tiên vì sao mọi người không Dzựt được: tỷ lệ chọi quá cao.

Mỗi năm Tiki chuẩn bị sẵn khoảng 1000 sản phẩm để khách hàng Dzựt, nhưng số lượng người đăng ký Dzựt của 2 năm gần đây đều lớn hơn 100000, tính ra tỷ lệ chọi là lớn hơn 1/100.

Như vậy nếu bạn không nằm trong top 1% những người nhanh nhất thì bạn sẽ không Dzựt được, rất chia buồn với những bạn chậm chân.

Lý do thứ hai mà nhiều khách hàng của Tiki phàn nàn, đó là bộ đếm không đồng bộ giữa nhiều thiết bị và platform khác nhau.

Ngay khi tổ chức dzựt test trong nội bộ của Tiki thì team Dzựt đã phát hiện ra vấn đề này.

Cách giải quyết của team là khi thời gian trên máy của người dùng (client) đếm ngược tới còn 20s thì sẽ tự động sync lại với giờ của server.

Như vậy trong 20s cuối cùng trước mỗi đợt Dzựt thì giờ của client sẽ đếm cùng lúc với giờ của server để hạn chế tối thiểu những sai lệch về thời gian Bắt đầu của mỗi đợt Dzựt. Tiki chỉ sync 1 lần vì nếu gần đến thời gian Dzựt mà hit liên tục lên server để sync mỗi giây thì chắc là hệ thống Tiki sẽ sập trước khi có thể Dzựt mất :(

Cũng vì sync lại với giờ server mà dẫn đến 1 feedback của khách hàng là tự nhiên thấy bộ đếm bị nhảy số. Điều này có thể đem đến cảm giác hơi “bất an” cho khách hàng, nhưng lại là cách mà Tiki cố gắng đem đến sự công bằng nhất cho tất cả khách hàng.

Phàn nàn thứ 3: sao kết quả trên App và trên Desktop không giống nhau. Sao giờ Dzựt của tôi lại bị thay đổi sau khi có kết quả.

Thực tế là kết quả tính toán không sai, nhưng do thời gian để xử lý team Dzựt cho đếm đến hàng milisecond và microsecond nên format trên bản web và trên App sẽ hiển thị khác nhau. Sau khi phát hiện ra điều này thì team Dzựt đã cập nhật để thời gian trên bản app thể hiện giống với thời gian trên bản web để bảo đảm tính đồng bộ giữa các phiên bản.

Phàn nàn thứ 4: thời gian ping lên Server còn lâu hơn thời gian Dzựt như tốc độ ánh sáng của người chiến thắng. Vô lý???

Khi đến thời điểm Dzựt, từ phía Server sẽ gửi tín hiệu xuống cho máy của bạn (client) để mở deal Dzựt. Thời gian Dzựt được tính là từ thời gian máy của bạn (client) mở cho Dzựt cho đến khi bạn click nút Dzựt (vẫn trên client) rồi mới được gửi kết quả lên server. Do đó chuyện tốc độ ánh sáng là dễ hiểu nếu bạn click đủ nhanh.

Phàn nàn thứ 5, 6, 7…: Có người Dzựt gian lận không? Có người Dzựt bằng bot không? Làm sao mà Tiki biết được? v.v…

Mình khẳng định luôn là CÓ những người tham gia Dzựt bằng cách viết bot, đặc biệt là những bạn developers am hiểu về công nghệ, thay vì tham gia Dzựt bằng tay một cách “chân chính” như mọi người, .

Team Dzut rất trân trọng những nỗ lực hacking của các bạn developers giàu kinh nghiệm, vì đối với team Dzut thì mỗi lần đến sự kiện này là một thách thức và cuộc đua để ngay cả chúng tôi cũng nâng cao skill của mình hơn khi đối diện với những cao thủ và quái kiệt trong nghề. Tuy nhiên, để đảm bảo tính công bằng cho tất cả khách hàng tham gia Dzut, chúng tôi sẽ ngăn chặn loại bỏ hết tất cả những lượt Dzựt mà chúng tôi phát hiện ra là hack :D

Case 1: với mỗi sản phẩm cho mỗi đợt Dzựt, nếu bạn Dzựt nhiều lần (dù bằng nhiều thiết bị hay bằng bot) thì chúng tôi sẽ ghi nhận thời gian của lần Dzựt cuối cùng trên sản phẩm đó chứ không phải lần Dzựt đầu tiên. Xin chia buồn đến hơn 3000 bạn đã chua xót bị loại vì lý do này :D

Case 2: nhiều bạn Dzựt được rất nhiều giải thưởng với tốc độ ánh sáng. Bản thân team Dzut không thể ngăn chặn toàn bộ các chương trình bot, script, auto click… access trực tiếp vào chương trình Dzut, nhưng sau khi có kết quả team Dzut có sử dụng Machine Learning để lọc lại tối đa những trường hợp trên.

Tất cả người chơi khi tham gia Dzựt đều được log lại pattern và behavior Dzựt, nên chúng tôi đã kiểm tra behaviour pattern của tất cả những bạn Dzựt thành công dựa trên 5 tham số: tốc độ Dzựt nhanh nhất, tốc độ Dzựt chậm nhất, trung bình và phương sai của thời gian Dzựt, tổng số lần hit vào sản phẩm.

Sau đó chúng tôi sẽ chạy anomaly detection c trên tập dữ liệu này để phát hiện ra những users có behavior khác hẳn với người bình thường (outliers) và khoanh vùng để xử lý tiếp bằng các kỹ thuật khác nữa (xin được phép không đi sâu thêm nữa để làm challenge cho các bạn hackers ở những đợt Dzut tiếp theo :D) để loại ra những trường hợp được đánh dấu là gian lận.

Hình minh họa những vùng tập trung nhiều chấm đỏ là vùng khả nghi của những lượt Dzựt không công bằng.

Những trường hợp này Tiki sẽ đánh dấu là Cheater để đảm bảo công bằng cho những người chơi khác. Từ list này chúng tôi phát hiện ra thêm 66 cao thủ giấu mặt đã dùng bot để Dzựt thành công, cạnh tranh với người chơi bình thường.

Danh sách những người trúng giải thực sự sẽ được cập nhật lại sau khi LOẠI hết những trường hợp “ăn gian” rõ ràng mà Tiki phát hiện ra được.

Team Dzut luôn cố gắng để nâng cao trình độ của mình qua mỗi năm tổ chức sự kiện Dzut để đem đến sự hài lòng và vui vẻ cao nhất cho tất cả những khách hàng của Tiki. Nếu các bạn có thắc mắc gì thêm, hãy comment trực tiếp ở đây để chúng ta có thể trao đổi tiếp.

Rất cảm ơn sự tham gia của mọi người và hẹn gặp lại ở lần Dzut năm tới!