Bí mật ẩn trong một triệu ô checkbox
(eieio.games)- One Million Checkboxes (OMCB) là một website nơi bất kỳ ai cũng có thể thay đổi cùng một triệu ô checkbox theo thời gian thực, và trong lúc vận hành, một mẫu URL ẩn đã được phát hiện trong cơ sở dữ liệu, hé lộ một màn hợp tác ngoài dự đoán
- Sau khi được công khai ngày 26/6/2024, trong 2 tuần đã có 500.000 người thao tác các ô checkbox hơn 650 triệu lần, biến một thử nghiệm đơn giản thành một trò chơi Internet quy mô lớn
- Do trạng thái checkbox được lưu dưới dạng 1 bit, nên 8 checkbox tạo thành 1 byte, và một số người dùng đã lợi dụng điều này để giấu các ký tự ASCII và URL dưới dạng thông điệp nhị phân
- URL ẩn dẫn tới một máy chủ Discord, nơi những người tham gia render một triệu ô checkbox thành hình ảnh 1000×1000 và thử nghiệm mã QR, thông điệp base64, hoạt ảnh và biểu diễn màu sắc
- Bot có thể làm tổn hại trải nghiệm của người dùng bình thường, nhưng quá trình lách qua các ràng buộc để khám phá hệ thống và để lại dấu vết cuối cùng đã trở thành một màn hợp tác Internet đầy sáng tạo
Cách One Million Checkboxes hoạt động
- One Million Checkboxes (OMCB) là một website ra mắt ngày 26/6/2024, cung cấp 1 triệu ô checkbox toàn cục
- Khi người dùng bật hoặc tắt một ô checkbox, trạng thái đó lập tức được phản ánh giống nhau tới mọi người đang truy cập website
- Người vận hành chỉ dự đoán vài trăm người sẽ bấm vài nghìn ô, nhưng thực tế trong 2 tuần có 500.000 người thao tác hơn 650 triệu lần
- Website lan rộng đến mức xuất hiện trên New York Times, Washington Post, Know Your Meme và cả Wikipedia
- Công nghệ mở rộng của OMCB đã được nói ở một bài viết khác, còn câu chuyện này tập trung vào thông điệp ẩn được phát hiện trong lúc vận hành
Những ràng buộc khiến việc vẽ trở nên khó khăn
- OMCB được thiết kế để việc vẽ tự do trở nên khó khăn, vì trên Internet công khai rất khó đoán người dùng sẽ vẽ gì
- Số checkbox hiển thị trên mỗi dòng thay đổi theo độ rộng cửa sổ trình duyệt
- Dù ở một độ rộng nhất định có thể tạo chữ như “EXAMPLE”, nhưng khi độ rộng trình duyệt thay đổi, cách xuống dòng cũng đổi theo và thông điệp sẽ biến mất
- Hình vẽ nguệch ngoạc trên điện thoại sẽ không hiện cùng hình dạng trên laptop, và chỉ người dùng có cùng độ rộng hiển thị mới nhìn thấy giống nhau
- Ràng buộc này hoạt động âm thầm đến mức người dùng khó nhận ra rằng chữ mình viết không hề hiện ra với người khác
- Nhiều người dùng đã yêu cầu “sửa lại” để có thể vẽ được, nhưng đó vốn là một lựa chọn có chủ ý
Cách các ô checkbox được lưu thành dữ liệu
- OMCB biểu diễn trạng thái của 1 triệu ô checkbox bằng 1 bit cho mỗi ô để lưu trữ và truyền tải hiệu quả
- Ô được chọn được lưu là
1, ô không được chọn được lưu là0 - 1 triệu bit tương đương 125.000 byte, tức 125KB
- Ô được chọn được lưu là
- Dữ liệu được lưu trong Redis, và khi gửi tới client thì dùng mã hóa base64
- Vì 8 checkbox có thể tạo thành 8 bit, tức 1 byte, nên điều này tạo nền tảng để giấu thông điệp
URL đáng ngờ được phát hiện trong cơ sở dữ liệu
- Vài ngày sau khi OMCB ra mắt, để chịu tải tốt hơn, backend được viết lại bằng Go, rồi các byte thô lưu trong Redis được dump dưới dạng ASCII
- Trong bản dump xuất hiện một URL dẫn tới
catgirls.win, và lúc đầu người vận hành cho rằng cơ sở dữ liệu đã bị hack- Họ kiểm tra log truy cập và mã nguồn nhưng không thấy dấu hiệu xâm nhập
- Vì nghĩ rằng trong cơ sở dữ liệu chỉ nên có 0 và 1, nên chuỗi ký tự đó trông như thể có ai đó đã nhét string vào
- Khi kiểm tra vị trí các checkbox tương ứng với URL, nguyên nhân thật sự mới lộ ra
- Một ký tự
hlà 1 byte, 1 byte là 8 bit, và trong OMCB điều đó tương ứng với 8 ô checkbox - Có một mẫu lặp theo cụm 8 ô khớp với URL, và nếu đổi một ô checkbox thì ngay sau đó mẫu ban đầu sẽ xuất hiện lại
- Một ký tự
- Không phải cơ sở dữ liệu bị hack, mà là ai đó đang thao tác các checkbox để viết một thông điệp nhị phân
Thông điệp nhị phân được đọc thành ASCII
- Khi Redis in dữ liệu ra dưới dạng ASCII, nó đọc dữ liệu thô theo đơn vị 1 byte, tức 8 bit
- Mỗi byte được chuyển thành một số từ 0 đến 255
- Nếu giá trị nằm trong khoảng ký tự ASCII có thể in được là 32–127, thì ký tự tương ứng sẽ được hiển thị
- Nếu không, nó sẽ được biểu diễn dưới dạng hex như
\x00
- Người tạo thông điệp đã bật tắt các checkbox để thay đổi bit, rồi các bit đó đi qua các bước thành số và ký tự để cấu thành URL
- Mẫu này vẫn được duy trì ngay cả trong môi trường có hàng nghìn người khác cùng lúc thao tác trên website
Lối đi bí mật dẫn đến Discord
- URL ẩn
https://catgirls.win/omcbdẫn tới một máy chủ Discord tên là Checking Boxes- Sau đó Discord gốc bị khóa, và URL hiện trỏ sang nơi khác
- Những người tham gia Discord tải toàn bộ dữ liệu checkbox của OMCB xuống và render nó thành ảnh lưới 1000×1000
- Ô chưa được chọn hiển thị màu trắng, ô được chọn hiển thị màu đen
- Trong hình ảnh này có nhiều dạng thông điệp khác nhau
- Phần nhiễu lặp ở phía dưới là thông điệp nhị phân đã được phát hiện
- Phía trên nó là phiên bản base64 của cùng thông điệp đó
- Bên trái là một mã QR có kèm sửa lỗi
- Tất cả đều là thông điệp dẫn tới Discord
- Những người tham gia cho rằng ai có khả năng tạo bot sẽ xem một trong ba dạng: dữ liệu base64, dữ liệu nhị phân hoặc ảnh 1000×1000, nên họ dùng đồng thời nhiều con đường
- Quy mô Discord lúc người viết tham gia là chưa đến 20 người, và đến khi website đóng lại thì đã tăng lên hơn 60 người
Bot, hình vẽ và các thử nghiệm hoạt ảnh
- Những người tham gia Discord dần tạo ra hệ thống vẽ tốt hơn và reverse engineer giới hạn tốc độ của OMCB để làm ra các hình vẽ ngày càng phức tạp
- Người vận hành từng đề nghị sẽ cung cấp thông tin về giới hạn tốc độ, nhưng người dẫn dắt Discord thích tự tìm ra hơn
- Theo thời gian, họ cũng thử nghiệm các giao thức cho hoạt ảnh và biểu diễn màu sắc
- Ví dụ, các ô liền kề được xem như các kênh đỏ, lục, lam để vẽ màu trên một lưới nhỏ hơn
- Vào ngày trước khi website kết thúc, sau khi cảnh báo trước, người vận hành đã gỡ bỏ toàn bộ giới hạn tốc độ để xem hệ thống chịu được bao nhiêu lưu lượng và người tham gia có thể tạo ra điều gì
- Khi đó nhiều hoạt ảnh đã được tạo ra, và một ví dụ là hoạt ảnh Rickroll
Tính hai mặt của bot
- Có rất nhiều phàn nàn về bot trong OMCB, và hàng trăm tin nhắn chỉ trích bot đã được gửi tới
- Những bot mà người dùng phổ thông thường gặp, như bot săn vé hay bot đặt bàn nhà hàng, thường bị cảm nhận là ích kỷ và không công bằng
- OMCB cũng có những bot có thể bị xem là phản xã hội
- Một số người dùng tạo các bot JavaScript nhỏ để bỏ chọn mọi checkbox có thể và công khai điều đó
- Cũng có người nói những hành động như vậy đã phá hỏng trải nghiệm của website
- Những người tham gia Discord có đặt ra một số quy tắc về nơi được phép dùng bot, và người vận hành đôi khi yêu cầu họ giảm cường độ xuống
- Việc dùng bot có thể đã làm giảm trải nghiệm của người dùng bình thường, nhưng đồng thời đây cũng là một ví dụ về việc khám phá hệ thống trong ràng buộc và tạo ra các sản phẩm sáng tạo
Một trải nghiệm còn lại như trò nghịch sáng tạo
- Người vận hành kể rằng hồi trung học từng tạo các quy tắc email đệ quy để gửi cho bạn mình hàng triệu tin nhắn, và vô tình làm sập máy chủ mail của trường nhiều lần
- Khi đó những người lớn xung quanh không quá giận dữ mà chủ yếu bảo dừng lại, thậm chí còn làm cả áo thun cho chuyện đó
- Những thông điệp ẩn, công cụ và hình vẽ mà nhóm Discord tạo ra cho OMCB là một kết quả sáng tạo ngoài dự đoán
- Người vận hành coi trải nghiệm được chứng kiến điều đó theo thời gian thực và có thể khích lệ họ là điều có ý nghĩa, đồng thời tự hào vì Discord đã xem OMCB là một thứ đáng để nghịch và vì những gì họ đã tạo ra
1 bình luận
Ý kiến trên Hacker News
Tác giả đây :)
Đây là câu chuyện tôi thích nhất trong số những chuyện đã trải qua khi vận hành trang web, và có lẽ cũng là câu chuyện hay nhất mà tôi từng được góp phần. Tôi không phải kiểu người dễ khóc, nhưng trong 2 tháng qua, mỗi khi nghĩ về việc này và cố viết nó ra, tôi đã khóc vài lần. Dĩ nhiên, bản thân quá trình phát hiện ra nó, cũng như quá trình chuyển từ sợ hãi sang phấn khích, cũng khá điên rồ.
Điều tôi đặc biệt thích là một niềm tin cốt lõi tôi mang theo khi làm thứ này đã được kiểm chứng. Đó là niềm tin rằng dù cần có những ràng buộc dành cho một số ít người xấu, nhìn chung những người chơi trên Internet là tốt bụng và rất sáng tạo, và họ sẽ biến chính những ràng buộc đó thành thứ để chơi đùa.
Bài viết này là một trong những ví dụ tốt nhất cho điều đó, và tôi thật sự thích việc bạn đã tạo trang web, quan sát cách mọi người sử dụng nó rồi chia sẻ trải nghiệm ấy. Đọc xong tôi thấy rất hạnh phúc và định sẽ chia sẻ thật nhiều.
Tôi chắc chắn đang bị burnout, nên bắt đầu nghĩ rằng mình nên làm một thứ gì đó nhẹ nhàng và có vẻ vô dụng. Tôi nhớ đến câu chuyện Richard Feynman, người đã trầm cảm suốt 10 năm sau chiến tranh, tìm lại niềm vui từ vật lý của chiếc đĩa xoay trong bữa trưa, và có thể tạm gác những việc mình từng làm sang một bên.
Tôi cũng hoàn toàn đồng ý với nhận định rằng phần lớn mọi người là tốt bụng và sáng tạo. Tôi đã tạo một bản clone OMCB; bị ý tưởng đó cuốn hút nên đưa nó lên mạng, và một ngày sau, dù cũng có vài người xấu, ai đó đã vẽ một bức The Great Wave của Hokusai khổng lồ lên đó. Phiên bản của tôi dùng một canvas cuộn lớn có chiều rộng/chiều cao cố định nên nó nổi bật ngay lập tức, và cảm giác nhìn thấy điều đó thật sự rất tuyệt và vui.
Đọc bài này khiến tôi hơi nghẹn ngào. Hồi cấp hai tôi học kỹ thuật phần mềm vì tôi kém toán và muốn tạo một chương trình làm bài tập giúp mình. Sau đó tôi cứ tiếp tục làm đủ thứ như chat LAN, máy chủ HTTP, phần mềm diệt virus, chỉ vì thấy vui.
Nó vui, đầy thử thách, đáng làm và đáng kinh ngạc. Nhưng sau khi bắt đầu đi làm, tôi dần trở nên chai lì vì những công nghệ mới tuôn ra không dứt, các tranh luận kiểu “X có hại”, “J tốt hơn K”, và làn bom tấn không ngừng của những thứ mới mẻ.
Niềm vui của kỹ thuật không còn giống bầu trời xanh nữa. Có lẽ nó vẫn xanh, nhưng với đôi mắt đã bị bạc rửa qua, mọi thứ đều trông xám xịt.
Đọc câu chuyện này khiến cảm xúc khi tôi học phần mềm lúc nhỏ sống lại. Nó vẫn có thể vui, và tôi có thể tạo thứ gì đó cho chính mình, chứ không phải vì một cú exit hay một SaaS mới bóng bẩy. Nó cho tôi một tia hy vọng rằng mọi thứ vẫn có thể vui.
Có lẽ bạn đã biết rồi, nhưng đây là triệu chứng burnout, và những ai cảm thấy tương tự nên xem nó một cách nghiêm túc. Trước đây tôi từng giúp một người ở chỗ làm học Python, và người đó đã thật sự vui mừng khi hiểu được định dạng file nhị phân. Khi ấy tôi nhận ra mình đã không cảm thấy như vậy trong nhiều năm, và không lâu sau đó tôi hiểu rằng mình đã quá kiệt sức để tiếp tục làm ở vị trí ấy và cần thời gian chăm sóc sức khỏe tinh thần.
Điều cốt lõi là nếu không thật sự cần thì hãy phớt lờ việc học công nghệ mới, và chỉ tập trung vào việc tạo ra thứ mới. Có lẽ điều khiến tôi nhớ lại code có thể đẹp đến mức nào bắt đầu từ các video của Sebastian Lague.
[https://youtu.be/X-iSQQgOd1A?si=aqriiWmcqqphOiuI]
Tôi nhớ lại thời niên thiếu, khi tôi viết code không phải vì cần mà vì muốn. Tôi đã dùng kỹ năng đó cho những việc tốt, nhưng cũng dùng vào những chuyện ngu ngốc như hack “đối thủ”, điều mà bây giờ tôi thấy xấu hổ. Dù vậy, xét tổng thể, trải nghiệm ấy đã tạo nên con người tôi hôm nay, và tôi vui vì thế hệ tiếp theo vẫn tìm thấy niềm vui trong lập trình.
[1] https://news.ycombinator.com/item?id=41306128
Cũng có thể cầm pico-8 lên và làm một trò chơi hay script tệ hại. Vì không có chỗ cũng chẳng có động lực, hãy dùng tên biến hai chữ cái thay vì những tên biến dài kiểu longDescriptiveVariableNames. Chơi những game như TIS-100 hay Shenzen I/O cũng được; nếu in cả manual ra, nhét vào chiếc bìa hồ sơ cũ nhất rồi làm đổ cà phê lên đó nữa thì càng hay.
Phần này thật sự rất quan trọng:
“Những người lớn trong đời tôi nhìn chung đã không nổi giận với tôi. Họ bảo tôi dừng lại, nhưng cũng làm áo thun cho tôi. Nếu không có sự khích lệ khi ấy, có lẽ tôi đã không làm công việc mình đang làm bây giờ.”
Thanh thiếu niên cần một không gian để có thể nghịch ngợm vừa phải, một không gian có một mức độ hệ quả xã hội thực tế nào đó, nhưng cũng có ranh giới và sự hỗ trợ để mọi việc không đi quá xa. Và thay vì những người lớn chỉ đứng ở vị thế quyền uy, các em cần những người lớn có những tài năng thú vị mà chúng muốn học hỏi
Tôi tạo một bài trình chiếu hai slide, cả hai đều nền đen chữ xám, giả lập một phiên DOS trông như Windows đã bị xóa; một slide có dấu gạch dưới ở prompt. Cho tự động chuyển mỗi 1 giây và phát lặp lại thì nó trông như con trỏ đang nhấp nháy, giống một máy tính bị hỏng, nhưng chỉ cần nhấn Escape là thoát được. Tất nhiên, những máy đó là Mac nên cũng chẳng có DOS hay Windows
Giáo viên nhìn thấy và nghĩ rằng tôi đã hack hoặc làm hỏng máy tính, rồi đưa tôi lên gặp hiệu trưởng. Hiệu trưởng không thấy chuyện đó buồn cười, và phạt tôi trong 2 tuần tiếp theo phải dành nửa sau giờ ăn trưa ở cùng người phụ trách IT của trường, quan sát những hành vi phá hoại tài sản mà anh ấy phải xử lý. Nhưng ngay khi người phụ trách IT thấy tôi đã làm gì, anh ấy cười rất nhiều và cho rằng việc xem nó như tôi làm hỏng máy tính là vô lý. Sau đó, kể cả khi hết phạt, tôi vẫn thường ghé văn phòng của anh ấy để trò chuyện hoặc đi cùng anh ấy sửa máy tính
Năm sau, tôi hỏi giáo viên liệu có thể truy cập PC vì có thứ muốn nghịch thử không; thầy ấy cho tôi quyền dùng phòng học kế toán sau giờ học, thêm dung lượng trên ổ đĩa mạng, và gần như toàn quyền với điều kiện không làm hỏng gì. Thế nên tôi đã không làm hỏng gì cả; tôi chạy Tierra trên nhiều máy qua đêm, sáng đến xem nó hoạt động rất hay, rồi lưu lại và khởi động lại máy. Điều đó trở thành nền tảng lớn cho tương lai. Tôi cũng không phá hỏng gì vì không muốn giết con ngỗng đẻ trứng vàng
PC trong phòng máy rất chậm, và có một trò nghịch nổi tiếng là giữ Win+E để mở hàng trăm cửa sổ Explorer khiến PC bị treo. Vì vậy tôi viết một chương trình VB6 nhỏ tên “DoraTheExplorer.exe” làm đúng việc đó khi được bấm vào, rồi đưa lên ổ đĩa dùng chung của trường
Ban đầu nó thành công, nhưng mọi người bắt đầu né bằng cách nhanh chóng đóng bằng Alt+F4; tôi làm cho nó tự chạy lại khi bị thoát, nhưng cách đó cũng bị chặn bằng cách nhấn Alt+F4 liên tục. Cuối cùng tôi tạo ra một Hydra: cứ mỗi lần đóng thì mở thêm hai cái nữa, và nó trở thành ICBM trong cuộc chiến trò nghịch Explorer, khiến bên kia phải tuyên bố thất bại
Quản trị viên đã biết ngay từ đầu nhưng nhìn chung khá thoải mái. Anh ấy nói rõ rằng nếu ai đó mất bài làm hoặc có thiệt hại thì tôi sẽ phải chịu trách nhiệm, nhưng chuyện đó không xảy ra vì mọi người đều biết dora.exe làm gì. Người ta cố tình bấm vào chỉ để làm PC sập một cách ngu ngốc và xem mình có tránh được không
Ngay cả lúc đó tôi cũng thấy thật vô lý và bất công, may là mẹ tôi cũng đồng ý. Giờ nhìn lại bằng con mắt người lớn, tôi cảm thấy đó là một thái độ gần như vô trách nhiệm đến mức mang tính tội phạm trong việc nuôi dạy trẻ. Thật sự cố chấp và thảm hại đến hết thuốc chữa, và tôi vẫn thấy tức giận khi nghĩ rằng vẫn có những đứa trẻ lớn lên trong môi trường như vậy và được dạy bởi những người như thế
“Đặc biệt, cách điển hình mà những người không lập trình tiếp xúc với bot là những thứ như bot phe vé hoặc bot đặt bàn nhà hàng. Đó là những bot tạo cảm giác ích kỷ, bất công và phản xã hội.”
Đọc đoạn này làm tôi nhớ đến việc khu nghỉ dưỡng trượt tuyết Palisades Tahoe mùa đông năm ngoái đã áp dụng đặt chỗ đậu xe miễn phí nhưng khan hiếm cho bãi đậu xe cuối tuần. Vì đây là một trong những điểm trượt tuyết được ưa chuộng nhất từ Bay Area, nên tất nhiên bot đã được tạo ra. Mỗi khi có chỗ mới được mở, chúng biến mất chỉ trong vài giây, rõ ràng là bot. Vì thế tôi cũng không còn cách nào khác ngoài việc tự làm một cái
Bot của tôi chỉ thông báo qua Pushover khi có chỗ trống do hủy đặt chỗ, chứ không tự đặt, nhưng như vậy là đủ cho tôi và nhóm đi cùng. Trên Reddit, những người không làm bot nói rằng bot đang hút sạch mọi thứ, và tôi cũng cảm thấy khá phản xã hội, nhưng thật sự không có lựa chọn nào khác
Nếu không, thay vì trao tài nguyên cho người sẵn sàng trả nhiều tiền nhất, nó trở thành một “cuộc đấu giá” trao cho người có kỹ năng lập trình tốt nhất. Những người đó lại có thể bán lại cho người trả nhiều nhất. Lập trình là một kỹ năng chuyên môn, và trong những bối cảnh mà ngay từ đầu việc trao cho người trả nhiều tiền nhất đã không được chấp nhận, thì điều đó khá bất công. Tôi được biết một số nơi trong ngành sneaker/thời trang đang dùng cách này
Điều thú vị là năm nào cũng có tin tức về việc liệu có bot được dùng để đặt các nhà nghỉ này hay không, và đơn vị vận hành thì phủ nhận kịch liệt. Nhưng tôi biết bot của mình đang cạnh tranh với vô số bot khác
Việc bạn có thể chọn giữa chiến đấu với bot để lấy một lịch hẹn sau 6–12 tuần, hoặc trả 50 euro cho đúng người để có lịch trong vài ngày, là một bí mật ai cũng biết
Sau khi đặt được lịch, tôi phải kéo thuyền suốt 9 tiếng và trên đường đi chỉ cầu mong trong thuyền không còn một giọt nước nào. Vì phần lớn nhân viên kiểm tra hễ thấy nước là đánh trượt ngay và cho quay về. May là đội kiểm tra tại chỗ khá tuyệt, họ rửa toàn bộ thuyền bằng nước nóng, nghe nói việc đó giết được ấu trùng hay trứng của trai Quagga
Tôi thật sự thích bài này, và nó làm tôi nhớ lại thời học Java ở trường trung học. Tôi đã làm một ứng dụng phủ kín toàn màn hình bằng một lưới các nút “x”, trong đó chỉ có một nút thật sự đóng cửa sổ. Khi ai đó rời máy mà không khóa máy tính, chúng tôi nhét đĩa mềm vào, chạy chương trình rồi bỏ đi
Nhân viên IT của trường lúc nào cũng hỏi chúng tôi đang làm gì, và chúng tôi trả lời thật. Ông ấy không nổi giận khi chúng tôi tìm ra cách chạy các game như Halo CE hay Starcraft trên mạng, nhưng nếu chúng tôi quá táo tợn thì ông ấy bảo dừng lại
Chúng tôi có chia sẻ tệp qua mạng nên không cần đĩa mềm, và rất dễ táy máy máy tính của mọi người. Tôi đã viết một script đọc tiêu đề cửa sổ đang mở để đóng các trang game phổ biến thời đó như free games.com. Vì trong giờ học thì không được chơi game mà. Nhưng do tên tệp lưu, nó đã đóng nhầm một chương trình dựng mô hình 3D nào đó, chuyện đó thì tôi hơi áy náy
Tôi tìm ra cách vượt qua: mở Notepad, vào hộp thoại mở tệp, rồi bước tiếp theo thì tôi không nhớ chính xác, nhưng File Explorer mở ra, và nếu nhập URL vào thanh địa chỉ thì nó chuyển thành Internet Explorer. Tất nhiên tôi cũng có Linux khởi động từ CD, nhưng cách đó quá lộ liễu
Nhân viên IT khẳng định game mạng đã ngốn hết băng thông, và để cài đặt tôi đã “hack” máy tính để lấy quyền quản trị. Cứ mỗi bình luận trong luồng này dường như lại có một câu chuyện của tôi tương ứng
Điều này làm tôi nhớ đến câu chuyện trong bài của New Yorker về Reddit, đặc biệt là phần giải thích r/Place:
Vào ngày Cá tháng Tư năm ngoái, thay vì một thông báo nhại, Reddit đã công bố một thí nghiệm xã hội thật sự. Nó có tên là r/Place, một hình vuông trống kích thước một nghìn pixel nhân một nghìn pixel. Ban đầu, cả một triệu pixel đều màu trắng. Khi thí nghiệm bắt đầu, bất kỳ ai cũng có thể đổi một pixel duy nhất ở bất cứ vị trí nào trên lưới sang một trong 16 màu. Ràng buộc duy nhất là tốc độ. Thuật toán chỉ cho phép mỗi người dùng Reddit đổi một pixel mỗi năm phút. “Làm như vậy thì một người không thể chiếm lĩnh được. Quá chậm mà,” Josh Wardle, quản lý sản phẩm Reddit phụ trách Place, giải thích. “Nếu muốn làm điều gì đó ở quy mô lớn, bạn phải hợp tác.”
https://www.newyorker.com/magazine/2018/03/19/reddit-and-the...
Tôi cũng từng là một trong những người ghét bot. Bài viết này là thứ tôi cần. Tôi cũng từng gặp rắc rối vì tạo ra một chương trình không được phép làm ở trường
Dù vậy, tôi sẽ biết ơn suốt đời thầy giáo toán đã cho phép tôi dùng chương trình trên máy tính TI-83+. Với điều kiện đó phải là chương trình do chính tôi viết và không chia sẻ cho người khác
Hồi trước, khi quản lý một diễn đàn vBulletin, tôi từng cài một hệ thống arcade. Đó là một tính năng vui vui: chơi game rồi kiếm thứ tiền tệ vô dụng gọi là “XMB Bucks” để khoe với nhau
Vài tháng sau, tôi phát hiện arcade đó có tính năng diễn đàn con ẩn, và khá nhiều người đang sử dụng rất tích cực. Có vẻ họ đã né màn hình đăng ký của vBulletin để đăng ký trực tiếp vào tính năng arcade ẩn này, rồi trò chuyện rôm rả với nhau như một đàn chuột sống dưới sàn nhà
Khi tôi vào đại học, WWW vẫn còn rất mới. Tôi nhanh chóng học được cách xem trang bằng NCSA Mosaic trong phòng máy CIP, nhưng hoàn toàn không biết nó hoạt động thế nào. Dù vậy tôi vẫn muốn tìm hiểu
Ở đâu đó tôi đọc được rằng để tạo trang riêng thì cần một “patchy server”, nên tôi tìm Apache trên Altavista. Sau khi thoáng ngạc nhiên vì kết quả đầu tiên không phải là về một bộ lạc, tôi cẩn thận làm theo mọi hướng dẫn dù chẳng biết mình đang làm gì
Một lúc lâu sau, tôi thấy trang thử nghiệm hiện trong Mosaic và vui vẻ về nhà. Dù đã muộn và mệt, tôi vẫn phân vân có nên bật máy tính, quay số kết nối và kiểm tra xem ở nhà có thấy trang của mình không. Tôi không hiểu nhiều thứ, nhưng nghĩ rằng nếu thấy được ở nhà thì bất kỳ ai trên thế giới cũng có thể thấy
Ý nghĩ đó cứ lởn vởn mãi, nên cuối cùng tôi đã thử, và thật ngạc nhiên là nó thực sự chạy.[1] Với một người lớn lên ở vùng quê thậm chí không có thư viện như tôi, đó là một trải nghiệm làm rung chuyển cả thế giới
Khoảng 2 tuần sau, tôi nhận được thông báo từ trường rằng không được vận hành dịch vụ trên tài nguyên của trường khi chưa được phép, nên phải gỡ xuống. Nhưng ngoài ra thì không có chuyện gì xảy ra, và tôi thật sự may mắn vì họ đã xử lý hợp lý
[1] Hồi đó máy tính của chúng tôi có IP công khai, và tường lửa thì vẫn chưa xuất hiện
\\x.x.x.x\c$là với xác suất khá cao sẽ kết nối được ngayMột câu chuyện tuyệt vời, làm bữa sáng của tôi thêm thú vị. Các lập trình viên trẻ được tự do khỏi những công cụ và quy trình hiện đại của thế giới chuyên nghiệp, kể cả những thứ không hẳn lúc nào cũng tốt
Tôi đang xây dựng một nền tảng kiểu như giải pháp thay thế Roblox mã nguồn mở, và nó thu hút những đứa trẻ kiểu này. Chúng thực sự sáng tạo, luôn sẵn lòng giúp đỡ, báo cho chúng tôi các lỗi và những cách hack có khả năng gây hại