4 पॉइंट द्वारा GN⁺ 2024-06-27 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • One Million Checkboxes एक वेबसाइट है जो 1,000,000 चेकबॉक्स को एक स्क्रीन अनुभव में बदलती है, और अभी सभी बॉक्स checked स्थिति में दिखते हैं
  • ऊपर का “we checked every box!” मैसेज तुरंत बताता है कि सभी चेक पूरे हो चुके हैं
  • पूरा होने के बाद भी “अकेले खेलना” जारी रखा जा सकता है, इसलिए यह सिर्फ result screen नहीं बल्कि interaction भी बचा रहता है
  • मौजूदा user के चेक की संख्या “You checked 0 boxes” के रूप में दिखती है, जिससे कुल completion status और personal progress अलग-अलग रहते हैं
  • स्क्रीन पर Jump! action और checked बॉक्स की सूची लगातार दिखती है, जिससे बड़े पैमाने के checkbox experiment के निशान सीधे देखे जा सकते हैं

सभी चेक पूरे होने की स्थिति

  • One Million Checkboxes 1,000,000 boxes are ✅ दिखाता है
  • “🎉 we checked every box! 🎉” वाक्यांश दिखाता है कि सभी चेकबॉक्स checked स्थिति में हैं

पूरा होने के बाद भी बचा हुआ play

  • सभी बॉक्स checked होने के बाद भी “but you can still play alone if you'd like” बताता है
  • मौजूदा user के चेक की संख्या 0 boxes के रूप में दिखती है

स्क्रीन पर दिखने वाले elements

  • पेज में Jump! text है
  • मुख्य हिस्से में checked स्थिति वाले checkbox items बार-बार दिखते हैं

निर्माता

  • साइट eieio द्वारा बनाई गई वेबसाइट के रूप में दिखती है

1 टिप्पणियां

 
GN⁺ 2024-06-27
Hacker News की राय
  • डेवलपर के नज़रिए से यह उम्मीद से कहीं ज़्यादा लोकप्रिय हो गया है, इसलिए लगता है कि कुछ समय तक सर्वर की अच्छी-खासी हालत खराब रहने वाली है

    • implementation में गंभीर दिक्कत है। लाइन ब्रेक स्क्रीन zoom/width के हिसाब से बदलते हैं, इसलिए अगर मैं boobs वाला doodle भी लिखूं, तो दूसरे लोग उसे ठीक से नहीं पढ़ पाएंगे अगर उनके लाइन ब्रेक उसी जगह नहीं हैं
    • पुराने disk defragmenter tool की बहुत याद आ गई। nostalgia के लिए इसे background में लगातार खुला रखना चाहूंगा: https://www.youtube.com/watch?v=KR3TbL3Tl6M
    • मैंने इसे FediVerse पर पोस्ट किया था, और 4 घंटे बाद तक यह लगभग 700 बार boost हो चुका था, और 2 घंटे के भीतर Reddit तक फैल गया था। मैंने Reddit पोस्ट पर सीधे जवाब भी दिया है, इसलिए पता है कि शुरुआती traffic spike तो पक्का आना ही था
    • “उम्मीद से ज़्यादा लोकप्रिय” कह रहे हो, यहां HN पर क्या मायने रखता है यह सब जानते हैं
    • 5 और सर्वर चला दिए और कुछ optimizations भी डाल दिए, तो फिलहाल लगता है ठीक रहेगा
  • “ऐसे दस लाख checkboxes क्यों बनाए जिन्हें कोई भी check कर सकता है?” इस सवाल पर जवाब मिला कि पिछले शुक्रवार बातचीत के दौरान यह आइडिया आया और पता नहीं क्यों लगा कि इसे बनाना ही चाहिए। सबसे बढ़िया वजह यही है :)

    • यह इतना बेवकूफाना था कि इसी वजह से इसे बनाना ज़रूरी था
  • शुरुआत में मैं ऊपर की तरफ क्लिक कर रहा था, लेकिन लोग बार-बार मेरा किया हुआ undo कर रहे थे। लगा कि हम सब मिलकर अच्छे से सारे boxes check करने की दिशा में क्यों नहीं जा सकते
    सोचा नीचे जाऊंगा तो कम लड़ाई होगी, और कुछ देर तक मैं अकेला था; काम उबाऊ और अर्थहीन था, लेकिन शांति थी
    फिर मुझे अपने जैसा check करने वाला कोई मिला, लेकिन वह 5 सेकंड में गायब हो गया। मैं scroll करके check करता रहा, फिर थोड़ा ऊपर लौटा तो कुछ random boxes unchecked दिखे। मैंने किसी को uncheck करते नहीं देखा, लेकिन लगता है कोई checkbox uncheck करने वाला भूत है

    • नष्ट क्यों करना चाहते हो। मैं तो बस checkboxes को उनकी प्रकृति की मूल अवस्था में वापस ला रहा हूं
    • मैं बहुत नीचे किसी random जगह गया और checks से HELLO लिखने की कोशिश की, लेकिन H पूरा होने से पहले ही कोई आकर उसे बिगाड़ गया। लगा कि यह दस लाख checkboxes की art ledger आखिरकार पागलपन में ही ढह जाएगी
      कितना भी scroll कर लो, पहचानने लायक कुछ नहीं है, बस अर्थहीन बंजर मैदान है। सिर्फ अराजकता है
    • अजीब है कि मैं भी बिल्कुल उसी इरादे और तरीके से चला; यह जैसे हमारा ही आईना है
      शायद सिर्फ हम ही ऐसे नहीं थे। बहुत से लोग होंगे जो अपने दिमाग में व्यवस्था चिल्लाने वाले goblin को शांत करने के लिए हर line में, या किसी और नियमित pattern में ईमानदारी से check कर रहे होंगे
      अगर page खोलते समय सारे boxes checked होते, तो completion का एहसास होता और मैं उस perfect state में छोड़कर चला जाता। लेकिन उस खूबसूरती को नष्ट करके “boobs” लिखने वाले पागलों से सहानुभूति रखना सच में मुश्किल है ;)
  • $$('input[type=checkbox]').forEach(elt => elt.click()); आज़माया तो "CHILL LOL" warning आ गई। मज़ेदार site है

    • अब Playwright script लिखने की बारी है
      chromium से browser खोलकर page पर जाओ, और सारे input[type=checkbox] ढूंढकर click कर दो
      फिर भी मुझे थोड़ा गर्व है कि script चलाए बिना उंगली से पागलों की तरह दबाकर “CHILL” warning trigger कर दी
    • WebSocket से सीधे 42["toggle... भेजना होगा। बेशक अगर uncheck नहीं करना बल्कि toggle होने से बचना है, तो पहले यह पता करना होगा कि कौन-से boxes checked हैं
    • सोच रहा हूं क्या कोई तरीका है जिससे इसे सारे boxes check करने वाली JavaScript स्वीकार करने के लिए trick किया जा सके
    • document.querySelectorAll("input[type=checkbox]").forEach(i => { i.checked = false; }); थोड़ी देर के लिए काम करता लगता है, और warning भी नहीं आती
  • हर box checked होना चाहिए। जो लोग boxes uncheck कर रहे हैं, वे फिर से सोचें और check camp में आ जाएं

    • plot twist: देखने वालों में से आधे लोगों को यह उल्टा दिखता है
    • “दोनों पक्ष एक जैसे हैं” वाली सोच की वजह से ही हम शुरुआत में इस हालत तक पहुंचे हैं। नवंबर में Unchecked को vote करें
    • मैंने अपने हाथ से 1,000 यानी 0.1% boxes check किए और अपना हिस्सा पूरा मान लिया। बिना script, शुद्ध इंसानी मेहनत/algorithm से किया
      एक छोटी JS script से यह 2–5 गुना तेज़ हो सकता था, लेकिन लगा speed limit भी होगी और इस अजीब चीज़ की spirit से भी मेल नहीं खाएगा
      Peter Molyneux की Curiosity याद आ गई: https://en.wikipedia.org/wiki/Curiosity%3A_What%27s_Inside_t...
    • मेरे box से हाथ हटाओ। जितना ज़्यादा check करोगे, आज़ादी उतनी कम होगी, इसलिए मैं कुछ boxes को unchecked रहने देने के पक्ष में हूं। खासकर अगर उस box में मेरी निजी चीज़ें हों
    • मैंने दोबारा सोचा, और अब मैं uncheck gang की तरफ हूं
  • पसंद आए quotes: “bubble wrap MMO जैसा बेहद satisfying”, “पूरी दुनिया के लिए fidget toy”, “शानदार! WebSocket server brrr कर रहा होगा”
    https://x.com/itseieio/status/1805986839058079896

  • Tampermonkey के लिए checkbox automation userscript बनाया है। यह https://onemillioncheckboxes.com/ पर सारे checkboxes ढूंढता है, unchecked items को check करता है, और MutationObserver से DOM बदलने पर हर बार फिर चलता है

    • ईमानदारी से कहूं तो इससे site का मूल उद्देश्य ही ढहता लगता है
    • यह तरीका 1,000,000 checkboxes पर शायद काम नहीं करेगा। बेहतर होगा requestAnimationFrame इस्तेमाल करें, या सिर्फ unchecked items ढूंढने के लिए querySelectorAll('input[type="checkbox"]:not(:checked)') लगाएं, या हर change पर checkAllCheckboxes न बुलाएं
      या फिर querySelector('input[type="checkbox"]:not(:checked)') से एक-एक करके ढूंढें और while(true) जैसी loop में process करें
  • लगता है checkbox grid को किसी fixed width पर lock करना चाहिए था। दिख रहा है कि लोग चित्र बनाने की कोशिश कर रहे हैं, लेकिन मेरी screen पर वे टेढ़े-मेढ़े दिखते हैं

    • site बनाने वाले के हिसाब से यह जानबूझकर किया गया था। fixed canvas पर आसानी से collaborative internet drawing experiments पहले ही काफी हैं, इसलिए सोचा कुछ अलग करके देखें तो क्या निकलता है
      बेशक यह मूर्खतापूर्ण idea हो सकता है, लेकिन एक बार आज़माना चाहता था
    • अफसोस। मैंने जो विशाल लिंग बनाया है, वह सिर्फ उसी width पर दिखता है जिसे मैंने set किया था। सोचता हूं कितनी random drawings मैं miss कर रहा होऊंगा
      re-layout होने में भी समय लगता है, इसलिए window resize करके real time में देखना भी आसान नहीं कि लोग क्या कर रहे हैं
    • images पहचानने के लिए “scan” करना पड़ता है, यही बात उल्टा मज़ेदार है। और इसका मतलब यह भी है कि artist अपनी artwork की width खुद चुन सकता है
      बहुत से लोग मिलती-जुलती screen widths इस्तेमाल करते हैं, इसलिए combinations उतने ज़्यादा भी नहीं हैं जितना लगता है
  • बढ़िया काम है। थोड़ा जलन होती है कि ऐसा experiment बनाकर देख सकूं कि कितने लोग इस्तेमाल करते हैं और फिर उसे तेजी से scale करूं। लेकिन company वाली बेकार चीज़ों ने दिमाग इतना जला दिया है और creativity basement में पड़ी है
    सोचता हूं आज भी ऐसी company कहां मिलेगी जहां meetings और docs में 90% समय बर्बाद किए बिना काम किया जा सके
    शायद बहुत ज़्यादा click करने की वजह से, चुपचाप दर्द में मरने के बजाय मेरे दिमाग की बातें यहां बहकर आ रही हैं :D

    • यह feeling बहुत आम है, और मैंने भी उस bottomed-out feeling के बारे में लिखना शुरू किया है
      जवाब यह है कि अगर वह आपके लिए जवाब नहीं है, तो बस नहीं है। लोग दो तरह के होते हैं: जिनका काम उनके मन पर कब्ज़ा नहीं करता, और जिनका करता है। अगर कब्ज़ा कर ले, तो काम से समझौता किए बिना कुछ और करना मुश्किल हो जाता है
      ज्यादातर workplaces 90% meetings और docs ही हैं। मोटे तौर पर यही workplace की definition जैसी है। startups exception हैं, लेकिन वे निश्चित रूप से मन पर कब्ज़ा कर लेते हैं
      मेरी creativity भी पिछले करीब 1 साल से basement में थी। ऐसे दौर आते हैं। जबरदस्ती लड़ने के बजाय खुश रहने की कोशिश करना बेहतर है। मेरे अनुभव में creativity वापस पाने का वही इकलौता रास्ता था
    • आजकल early-stage startup या फिर शुरुआत से अपनी company बनाना ही ऐसी स्थिति के करीब लगता है। मैं भी उसी नाव में हूं, लेकिन side projects टिके रहने में मदद करते हैं
    • खुद बना लें तो?
  • इन सारे boxes को uncheck करना ऐसा काम है जिसे कोई credit नहीं देगा