4 điểm bởi GN⁺ 2024-06-27 | 1 bình luận | Chia sẻ qua WhatsApp
  • One Million Checkboxes là một website biến 1.000.000 ô checkbox thành một trải nghiệm trên một màn hình; hiện tại tất cả các ô đều có vẻ đã được tích
  • Thông báo “we checked every box!” ở phía trên cho biết ngay trạng thái đã tích xong toàn bộ
  • Ngay cả sau khi hoàn tất, bạn vẫn có thể tiếp tục “chơi một mình”, nên đây không chỉ là màn hình kết quả đơn thuần mà vẫn còn tính tương tác
  • Số ô mà người dùng hiện tại đã tích được hiển thị là “You checked 0 boxes”, tách biệt trạng thái hoàn tất tổng thể với tiến độ cá nhân
  • Trên màn hình có thao tác Jump! và danh sách các ô đã được tích nối tiếp nhau, cho phép trực tiếp nhìn thấy dấu vết của thử nghiệm checkbox quy mô lớn

Trạng thái đã tích xong toàn bộ

  • One Million Checkboxes hiển thị 1,000,000 boxes are ✅
  • Dòng chữ “🎉 we checked every box! 🎉” cho thấy tất cả checkbox đều đã được tích

Vẫn còn có thể chơi sau khi hoàn tất

  • Ngay cả sau khi tất cả các ô đã được tích, trang vẫn hướng dẫn “but you can still play alone if you'd like”
  • Số ô mà người dùng hiện tại đã tích được hiển thị là 0 boxes

Các yếu tố hiển thị trên màn hình

  • Trang có văn bản Jump!
  • Trong phần nội dung, các mục checkbox ở trạng thái đã tích được hiển thị lặp lại

Người tạo

  • Website được hiển thị là do eieio tạo ra

1 bình luận

 
GN⁺ 2024-06-27
Các ý kiến trên Hacker News
  • Từ góc nhìn của nhà phát triển, nó nổi tiếng hơn dự kiến rất nhiều, nên có lẽ máy chủ sẽ khá vất vả trong một thời gian

    • Phần triển khai có vấn đề nghiêm trọng. Điểm xuống dòng thay đổi theo mức phóng to/chiều rộng màn hình, nên dù tôi có viết hình vẽ nguệch ngoạc “boobs” thì người khác cũng không đọc được đúng nếu điểm xuống dòng của họ không giống
    • Gợi nhớ rất nhiều đến các công cụ chống phân mảnh ngày xưa. Muốn bật nó chạy nền mãi chỉ để hoài niệm: https://www.youtube.com/watch?v=KR3TbL3Tl6M
    • Tôi đã đăng lên FediVerse, và tính đến 4 giờ sau thì nó đã được boost gần 700 lần, rồi lan tới Reddit trong vòng 2 giờ. Tôi cũng đã trả lời trực tiếp bài trên Reddit nên chắc bạn biết, đợt tăng vọt lưu lượng ban đầu chắc chắn là không tránh khỏi
    • “Nổi tiếng hơn dự kiến” à, ở HN này ai cũng biết điều gì là quan trọng mà
    • Tôi đã bật thêm 5 máy chủ và nhét vào vài tối ưu hóa, nên có vẻ tạm thời sẽ ổn
  • Với câu hỏi tại sao lại tạo ra “một triệu checkbox mà ai cũng có thể tick”, câu trả lời là nó nảy ra trong một cuộc trò chuyện thứ Sáu tuần trước và không hiểu sao cảm thấy phải làm. Đúng là lý do tuyệt nhất :)

    • Nó ngốc đến mức ngược lại là nhất định phải làm
  • Ban đầu tôi đang nhấp ở phía trên, nhưng mọi người cứ liên tục gỡ những gì tôi đã làm. Tôi tự hỏi tại sao tất cả chúng ta không thể hòa thuận cùng nhau theo hướng tick hết mọi ô
    Tôi nghĩ xuống dưới thì chắc sẽ ít tranh giành hơn, và trong một lúc chỉ có mình tôi; công việc chán ngắt và vô nghĩa, nhưng yên bình
    Rồi tôi gặp một người cũng đang tick như mình, nhưng chưa đầy 5 giây đã biến mất; tôi tiếp tục cuộn và tick, rồi quay lên trên một chút thì thấy xuất hiện những ô bị bỏ tick ngẫu nhiên. Tôi không thấy ai gỡ cả, như thể có ma gỡ tick vậy

    • Sao lại muốn phá hoại chứ. Tôi chỉ đang cố đưa các checkbox trở về trạng thái tự nhiên ban đầu của chúng thôi
    • Tôi nhảy xuống một vị trí ngẫu nhiên rất sâu phía dưới để viết HELLO bằng các ô được tick, nhưng còn chưa xong chữ H thì đã có ai đó tìm tới phá hỏng. Tôi tự hỏi liệu sổ cái nghệ thuật một triệu checkbox này rốt cuộc có buộc phải sụp đổ trong điên loạn không
      Cuộn mãi cũng chẳng thấy thứ gì nhận ra được, chỉ là một vùng hoang địa vô nghĩa. Đơn giản là hỗn loạn
    • Thật lạ là tôi cũng di chuyển với đúng ý định và cách làm như vậy, như thể nó là tấm gương phản chiếu chính chúng ta
      Có lẽ không chỉ có chúng ta. Chắc có rất nhiều người chăm chỉ tick theo từng hàng hoặc theo một mẫu đều đặn nào đó để xoa dịu con goblin trong đầu đang gào đòi trật tự
      Nếu khi vào trang mà tất cả các ô đều đã được tick, tôi hẳn sẽ cảm thấy hoàn tất rồi rời đi trong trạng thái hoàn hảo ấy; thật khó đồng cảm với những kẻ điên muốn phá hủy vẻ đẹp đó để viết “boobs” ;)
  • Tôi thử $$('input[type=checkbox]').forEach(elt => elt.click()); thì hiện cảnh báo "CHILL LOL". Trang này vui đấy

    • Giờ đến lượt viết script Playwright
      Chỉ cần mở trình duyệt bằng chromium, vào trang, tìm toàn bộ input[type=checkbox] rồi nhấp là được
      Dù vậy, tôi cũng hơi tự hào vì không chạy script mà vẫn dùng ngón tay bấm điên cuồng đến mức làm bật cảnh báo “CHILL”
    • Phải gửi trực tiếp 42["toggle... qua WebSocket. Tất nhiên, nếu không muốn bỏ tick mà muốn tránh bị đảo trạng thái, trước tiên phải kiểm tra ô nào đang được tick
    • Không biết có cách nào lừa nó chấp nhận JavaScript tick tất cả các ô không
    • document.querySelectorAll("input[type=checkbox]").forEach(i => { i.checked = false; }); có vẻ hoạt động trong chốc lát, và cũng không hiện cảnh báo
  • Tất cả các ô đều phải được tick. Mong những người đang bỏ tick hãy suy nghĩ lại và gia nhập phe tick

    • Plot twist: với một nửa người xem thì nó hiện ngược lại
    • Chính thái độ “hai bên đều như nhau” đã đưa chúng ta tới tình cảnh này ngay từ đầu. Tháng 11 hãy bỏ phiếu cho Unchecked
    • Tôi đã tự tay tick 1.000 ô, tức 0,1%, và coi như đã làm phần của mình. Làm bằng sức lao động/thuật toán thuần con người, không dùng script
      Dĩ nhiên một script JS đơn giản có thể nhanh hơn 2–5 lần, nhưng tôi nghĩ có lẽ cũng có giới hạn tốc độ, và nó cũng không hợp với tinh thần của thứ kỳ lạ này
      Gợi nhớ đến Curiosity của Peter Molyneux: https://en.wikipedia.org/wiki/Curiosity%3A_What%27s_Inside_t...
    • Bỏ tay khỏi hộp của tôi ra. Càng tick nhiều thì tự do càng ít, nên tôi ủng hộ việc để một số hộp không được tick. Nhất là nếu đó là hộp chứa đồ riêng tư của tôi
    • Tôi đã nghĩ lại, và giờ đứng về phía băng bỏ tick
  • Những câu trích tôi thích: “thỏa mãn kinh khủng, như MMO bóp bong bóng xốp hơi”, “đồ chơi cầm tay cho toàn thế giới”, “tuyệt vời! chắc máy chủ WebSocket đang brrr lắm”
    https://x.com/itseieio/status/1805986839058079896

  • Tôi đã tạo một userscript tự động tick cho Tampermonkey. Nó tìm tất cả checkbox trên https://onemillioncheckboxes.com/, tick các mục chưa được tick, rồi dùng MutationObserver để chạy lại mỗi khi DOM thay đổi

    • Thành thật mà nói, làm vậy có cảm giác như phá hỏng chính mục đích của trang
    • Cách này có lẽ không hiệu quả với 1.000.000 checkbox. Nên dùng requestAnimationFrame, hoặc chỉ tìm các ô chưa tick bằng querySelectorAll('input[type="checkbox"]:not(:checked)'), hoặc đừng gọi checkAllCheckboxes mỗi khi có bất kỳ thay đổi nào
      Hoặc có thể dùng querySelector('input[type="checkbox"]:not(:checked)') để tìm từng ô một rồi xử lý trong vòng lặp kiểu while(true)
  • Tôi nghĩ lưới checkbox lẽ ra nên được cố định ở một chiều rộng nhất định. Có thể thấy mọi người đang cố vẽ hình, nhưng trên màn hình của tôi thì trông bị lệch

    • Với tư cách người tạo trang, tôi cố tình làm vậy. Các thử nghiệm vẽ tranh cộng tác trên Internet bằng canvas cố định, dễ vẽ đã có quá nhiều rồi, nên tôi tò mò nếu thử một thứ hơi khác thì sẽ ra gì
      Dĩ nhiên có thể đó là ý tưởng ngu ngốc, nhưng tôi muốn thử một lần
    • Tiếc thật. Cái dương vật khổng lồ tôi vẽ chỉ hiện đúng ở chính chiều rộng mà tôi đã căn. Không biết có bao nhiêu hình vẽ ngẫu nhiên mà tôi đang bỏ lỡ
      Việc bố trí lại cũng mất thời gian, nên không dễ vừa chỉnh kích thước cửa sổ vừa xem mọi người đang làm gì theo thời gian thực
    • Điểm phải “quét” để nhận ra hình ảnh lại khá thú vị. Và điều đó cũng có nghĩa là tác giả có thể tự chọn chiều rộng cho tác phẩm của mình
      Vì nhiều người dùng chiều rộng màn hình tương tự nhau, số tổ hợp cũng không nhiều như tưởng tượng
  • Công việc rất hay. Tôi hơi ghen tị vì cũng muốn thử làm một thứ phải mở rộng thật nhanh khi thấy có bao nhiêu người dùng những thử nghiệm như thế này. Nhưng mấy thứ vớ vẩn ở công ty đã đốt não tôi quá mức, còn sức sáng tạo thì nằm dưới tầng hầm
    Tôi vẫn tự hỏi liệu còn có thể tìm được công ty nào cho phép làm việc mà không lãng phí 90% thời gian vào họp hành và tài liệu không
    Có lẽ vì nhấp quá nhiều, nên thay vì lặng lẽ chết trong đau khổ, mọi thứ trong đầu tôi đang tuôn ra đây :D

    • Cảm giác đó rất phổ biến, và tôi cũng bắt đầu viết về cảm giác chạm đáy ấy
      Câu trả lời là: nếu nó không phải câu trả lời cho bạn thì đơn giản là không phải. Con người chia làm hai nhóm. Nhóm không để công việc chiếm lĩnh tâm trí, và nhóm bị nó chiếm lĩnh. Một khi bị chiếm lĩnh, rất khó làm việc khác nếu không lơ là công việc
      Hầu hết nơi làm việc đều là 90% họp hành và tài liệu. Đại khái đó gần như là định nghĩa của công sở. Startup là ngoại lệ, nhưng phía đó chắc chắn sẽ chiếm lĩnh tâm trí
      Sức sáng tạo của tôi cũng đã nằm dưới tầng hầm khoảng một năm qua. Có những giai đoạn như vậy. Tốt hơn là đừng cố cưỡng lại, mà hãy thử làm mình hạnh phúc. Theo kinh nghiệm của tôi, đó là con đường duy nhất để lấy lại sức sáng tạo
    • Dạo này có vẻ chỉ startup giai đoạn đầu, hoặc tự lập công ty ngay từ đầu, mới gần với trường hợp đó. Tôi cũng ở hoàn cảnh tương tự, nhưng các dự án phụ giúp tôi trụ được
    • Hay là tự làm đi?
  • Việc bỏ tick tất cả những ô này là công việc không ai ghi nhận