1 पॉइंट द्वारा GN⁺ 2024-08-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • One Million Checkboxes(OMCB) एक ऐसी वेबसाइट थी जहाँ कोई भी उसी 10 लाख checkboxes को real time में बदल सकता था, और संचालन के दौरान database में छिपा हुआ URL pattern मिलने पर एक अप्रत्याशित collaboration सामने आया
  • 26 जून 2024 को सार्वजनिक होने के बाद 2 हफ्तों में 5 लाख लोगों ने 65 करोड़ से अधिक बार checkboxes को बदला, और एक साधारण experiment बड़े पैमाने के internet खेल में बदल गया
  • checkbox state को 1 bit में स्टोर करने वाली संरचना के कारण 8 checkboxes मिलकर 1 byte बनते थे, और कुछ users ने इसका इस्तेमाल ASCII characters और URL को binary messages के रूप में छिपाने में किया
  • छिपा हुआ URL एक Discord server तक जाता था, और प्रतिभागियों ने 10 लाख checkboxes को 1000×1000 image के रूप में render करके QR codes, base64 messages, animations और रंग अभिव्यक्ति पर प्रयोग किए
  • bots सामान्य users के experience को खराब कर सकते थे, लेकिन सीमाओं को पार कर system को explore करने और उसमें अपने निशान छोड़ने की प्रक्रिया रचनात्मक internet collaboration के रूप में याद रही

One Million Checkboxes कैसे काम करता था

  • One Million Checkboxes(OMCB) 26 जून 2024 को सार्वजनिक की गई एक वेबसाइट थी, जो 10 लाख global checkboxes प्रदान करती थी
    • जब कोई user checkbox को on या off करता, तो वही state साइट पर मौजूद सभी users को तुरंत दिखाई देती
    • संचालक को लगा था कि सैकड़ों लोग कुछ हज़ार boxes दबाएँगे, लेकिन वास्तव में 2 हफ्तों में 5 लाख लोगों ने 65 करोड़ से अधिक बार checkboxes को बदला
  • साइट इतनी फैल गई कि New York Times, Washington Post, Know Your Meme और Wikipedia तक में इसका ज़िक्र हुआ
  • OMCB की scaling technology पर अलग लेख में चर्चा की गई थी, और यह कहानी संचालन के दौरान मिले छिपे संदेश पर केंद्रित है

चित्र बनाना मुश्किल करने वाली सीमाएँ

  • OMCB को इस तरह design किया गया था कि खुले internet पर users क्या बनाएँगे इसका अनुमान लगाना मुश्किल है, इसलिए मुक्त drawing करना आसान न हो
  • एक पंक्ति में दिखने वाले checkboxes की संख्या browser window की चौड़ाई के अनुसार बदलती थी
    • किसी खास चौड़ाई पर “EXAMPLE” जैसा शब्द बनाया जा सकता था, लेकिन browser की चौड़ाई बदलते ही line breaks बदल जाते और संदेश गायब हो जाता
    • phone पर बनाई गई doodle laptop पर उसी आकार में नहीं दिखती, और केवल समान display width वाले users को ही वैसी दिखती
  • यह सीमा इतनी सूक्ष्म तरह से काम करती थी कि users के लिए यह समझना भी मुश्किल था कि उनका लिखा दूसरों को दिखाई नहीं दे रहा
  • कई users ने इसे “ठीक” करने की मांग की ताकि वे चित्र बना सकें, लेकिन यह व्यवहार जानबूझकर चुना गया था

checkboxes डेटा के रूप में कैसे स्टोर होते थे

  • OMCB 10 लाख checkboxes की state को कुशलता से स्टोर और transmit करने के लिए हर checkbox को 1 bit के रूप में दर्शाता था
    • checked box को 1 और unchecked box को 0 के रूप में स्टोर किया जाता था
    • 10 लाख bits यानी 125,000 bytes, अर्थात 125KB
  • डेटा Redis में स्टोर होता था, और client को भेजते समय base64 encoding का उपयोग किया जाता था
  • क्योंकि 8 checkboxes मिलकर 8 bits यानी 1 byte बना सकते थे, इससे छिपे संदेश बनाने की बुनियाद तैयार हुई

database में मिला संदिग्ध URL

  • OMCB के सार्वजनिक होने के कुछ दिनों बाद load संभालने के लिए backend को Go में फिर से लिखने के बाद, Redis में स्टोर raw bytes को ASCII रूप में dump किया गया
  • dump में catgirls.win तक जाने वाला URL दिखा, और पहले लगा कि database hack हो गया है
    • access logs और code की जाँच की गई, लेकिन घुसपैठ के कोई निशान नहीं मिले
    • database में सिर्फ 0 और 1 होने चाहिए, ऐसा सोचा गया था, इसलिए ऐसा लगा जैसे उसमें string घुस गई हो
  • URL से जुड़ी checkbox positions की जाँच करते हुए असली कारण सामने आया
    • character h एक byte है, एक byte 8 bits है, और OMCB में यह 8 checkboxes के बराबर था
    • URL से मेल खाने वाला 8-के-group का दोहराया जाने वाला pattern था, और एक checkbox बदलते ही जल्द ही वही pattern वापस आ जाता
  • database hack नहीं हुआ था, बल्कि कोई checkboxes को बदलकर binary message लिख रहा था

ASCII के रूप में पढ़े गए binary messages

  • जब Redis डेटा को ASCII में print करता है, तो वह raw data को 1 byte यानी 8 bits की इकाइयों में पढ़ता है
  • हर byte को 0 से 255 तक की संख्या में बदला जाता है
    • अगर value printable ASCII character range 32~127 में हो, तो वही character दिखाया जाता है
    • वरना \x00 जैसी hexadecimal notation दिखाई जाती है
  • संदेश बनाने वाले users checkboxes को on और off करके bits बदलते थे, और वे bits संख्याओं व characters के रास्ते URL बनाते थे
  • यह pattern उस माहौल में भी बना रहा जहाँ हज़ारों दूसरे users एक ही समय पर साइट को बदल रहे थे

Discord तक जाने वाला छिपा रास्ता

  • छिपा URL https://catgirls.win/omcb Checking Boxes नाम के Discord server तक ले जाता था
    • मूल Discord बाद में lock हो गया, और URL किसी दूसरी जगह जाने लगा
  • Discord के प्रतिभागियों ने OMCB के सभी checkbox data को डाउनलोड करके उसे 1000×1000 grid image के रूप में render किया
    • unchecked boxes सफेद और checked boxes काले दिखाए गए
  • इस image में कई तरह के संदेश छिपे थे
    • नीचे का दोहराया जाने वाला noise वही खोजा गया binary message था
    • उसके ऊपर उसी संदेश का base64 version था
    • बाईं ओर error correction वाला QR code था
    • ये सभी Discord तक ले जाने वाले संदेश थे
  • प्रतिभागियों का मानना था कि bot बनाने की संभावना वाले लोग base64 data, binary data या 1000×1000 image में से कोई एक देखेंगे, इसलिए उन्होंने कई रास्ते एक साथ इस्तेमाल किए
  • शामिल होने के समय Discord में 20 से कम लोग थे, और साइट बंद होने तक यह संख्या 60 से अधिक हो गई

bots, चित्र और animation प्रयोग

  • Discord प्रतिभागियों ने बेहतर drawing system बनाए और OMCB की rate limits को reverse engineer करते हुए धीरे-धीरे अधिक जटिल चित्र बनाए
    • संचालक ने rate limit की जानकारी देने की पेशकश की, लेकिन Discord leader ने खुद पता लगाना पसंद किया
  • समय के साथ animations और रंग अभिव्यक्ति के protocols पर भी प्रयोग हुए
    • उदाहरण के तौर पर, पास-पास की cells को red, green, blue channels की तरह मानकर छोटे grid में रंग दिखाने का तरीका सामने आया
  • साइट बंद होने के एक दिन पहले, संचालक ने चेतावनी देने के बाद सभी rate limits हटा दीं ताकि देखा जा सके कि ट्रैफिक कितना सहा जा सकता है और प्रतिभागी क्या बना सकते हैं
  • इस दौरान कई animations बनाए गए, और उदाहरणों में से एक Rickroll animation था

bots को लेकर दोहरी प्रकृति

  • OMCB में bots को लेकर बहुत शिकायतें थीं, और bots की आलोचना करने वाले सैकड़ों संदेश आए
  • आम users जिन bots से अक्सर टकराते हैं, वे ticket resale bots या restaurant reservation bots जैसे होते हैं, जो स्वार्थी और अनुचित लगते हैं
  • OMCB में भी कुछ bots ऐसे थे जिन्हें असामाजिक कहा जा सकता है
    • कुछ users ने ऐसा छोटा JavaScript bot बनाया जो जितने संभव हों उतने checkboxes को uncheck कर देता था, और इसके बारे में बताया भी
    • कुछ users ने कहा कि इस व्यवहार ने साइट का experience खराब कर दिया
  • Discord प्रतिभागियों ने bots कहाँ इस्तेमाल किए जाएँ इस बारे में कुछ नियम बनाए, और संचालक ने कभी-कभी उनसे तीव्रता कम करने को कहा
  • bot उपयोग से सामान्य user experience गिरा हो सकता है, लेकिन साथ ही यह सीमाओं के भीतर system को explore करने और रचनात्मक काम बनाने का उदाहरण भी था

रचनात्मक शरारत के रूप में बचा अनुभव

  • संचालक ने बताया कि हाई स्कूल के दिनों में उसने recursive mail rules बनाकर एक दोस्त को लाखों messages भेजने वाली शरारत की थी, और गलती से स्कूल के mail server को कई बार down कर दिया था
  • उस समय आसपास के बड़े लोग बहुत नाराज़ होने के बजाय बस रुकने को कहते थे, और उन्होंने उसके लिए T-shirt भी बनवाई थी
  • OMCB के Discord प्रतिभागियों द्वारा बनाए गए छिपे संदेश, tools और चित्र अप्रत्याशित रचनात्मक परिणाम थे
  • संचालक ने इसे real time में देख पाने और प्रोत्साहित कर पाने के अनुभव को अर्थपूर्ण माना, और इस बात पर गर्व किया कि Discord ने OMCB को खेलने लायक चीज़ समझा और उससे इतने दिलचस्प परिणाम निकाले

1 टिप्पणियां

 
GN⁺ 2024-08-30
Hacker News की राय
  • लेखक यहाँ है :)
    साइट चलाते हुए जो कहानियाँ हुईं, उनमें यह मेरी सबसे पसंदीदा है, और शायद जिन कहानियों का मैं हिस्सा रहा हूँ उनमें सबसे बेहतरीन भी। मैं ज़्यादा रोने वालों में नहीं हूँ, लेकिन पिछले 2 महीनों में इस घटना को याद करते हुए और इसे लिखने की कोशिश करते हुए कई बार रो पड़ा। ज़ाहिर है, इसे खोजने की प्रक्रिया खुद भी, और डर से उत्साह में बदलती गई प्रक्रिया भी काफ़ी पागलपन भरी थी।
    ऐसी चीज़ बनाते समय मेरी एक मुख्य धारणा सच साबित हुई, यह बात मुझे खास तौर पर अच्छी लगी। धारणा यह थी कि कुछ बुरे लोगों के लिए रोक-टोक ज़रूरी होती है, लेकिन कुल मिलाकर इंटरनेट पर खेलने वाले लोग अच्छे और बेहद रचनात्मक होते हैं, और वे उन्हीं रोकों को भी खेलने की चीज़ बना लेते हैं।

    • कुछ समय पहले एक दोस्त से मेरी बड़ी बहस हुई थी। उसका पक्का मानना था कि इंटरनेट trolling और toxic comments से भरी जगह है और social media बच्चों को नुकसान पहुँचाएगा। मेरा पक्ष यह था कि अगर आप सिर्फ X या Facebook जैसी जगहों को देखकर जीते हैं, तो यह नरक जैसा लग सकता है, लेकिन इंटरनेट में इससे कहीं ज़्यादा संभावनाएँ हैं।
      यह लेख उसे दिखाने वाले सबसे अच्छे उदाहरणों में से एक था, और मुझे यह बात बहुत अच्छी लगी कि आपने साइट बनाई, लोगों ने उसे कैसे इस्तेमाल किया यह देखा, और फिर वह अनुभव साझा किया। इसे पढ़कर बहुत खुशी हुई और मैं इसे खूब शेयर करने वाला हूँ।
    • लंबे समय बाद इंटरनेट के बारे में पढ़ी चीज़ों में खेलने की भावना और यह कहानी मुझे सबसे ज़्यादा पसंद आई।
      burnout साफ़ तौर पर हो चुका है, इसलिए लगा कि कुछ हल्का-फुल्का और बेकार-सा दिखने वाला बनाना चाहिए। Richard Feynman की कहानी याद आती है, जो युद्ध के बाद 10 साल तक उदास रहे, फिर lunch के समय घूमती हुई प्लेट की physics में दोबारा आनंद मिला और वे अपने पहले किए कामों को थोड़ी देर के लिए छोड़ पाए।
    • यह लेख सचमुच प्यारा और cute था। काश इंटरनेट का इस्तेमाल इस तरह ज़्यादा बार होता।
    • लेख और video, दोनों में storytelling शानदार थी। अच्छा लगा कि हम उन लोगों का जश्न मना सके जिन्होंने कुछ उस तरीके से कर दिखाया जिससे हम सबने बहुत कुछ सीखा।
    • यह लेख, scalability वाला लेख, और कुल मिलाकर पूरा काम शानदार और बहुत प्रेरक था।
      इस बात से भी पूरी तरह सहमत हूँ कि ज़्यादातर लोग अच्छे और रचनात्मक होते हैं। मैंने OMCB clone बनाया था; idea दिमाग में अटक गया था, इसलिए उसे online डाल दिया। एक दिन बाद कुछ बुरे लोग भी थे, लेकिन किसी ने उसमें विशाल Hokusai की The Great Wave बना दी थी। मेरे version में fixed width/height वाला बड़ा scrolling canvas था, इसलिए वह तुरंत नज़र आ गया, और उसे देखना सचमुच बहुत अच्छा और मज़ेदार लगा।
  • यह लेख पढ़कर मेरी आँखें थोड़ी नम हो गईं। middle school में मैंने software engineering सीखी थी, क्योंकि मैं maths में अच्छा नहीं था और homework हल करने वाला program बनाना चाहता था। उसके बाद LAN chat, HTTP server, antivirus वगैरह बहुत कुछ सिर्फ मज़े के लिए बनाता रहा।
    यह मज़ेदार, challenging, rewarding और हैरान करने वाला था। लेकिन काम शुरू करने के बाद लगातार आती नई technologies, “X harmful है”, “J, K से बेहतर है” जैसी बहसें, और रुकने का नाम न लेने वाली नई चीज़ों की बौछार ने मन को सुन्न करना शुरू कर दिया।
    engineering का आनंद अब नीले आसमान जैसा महसूस नहीं होता। शायद वह अब भी नीला हो, लेकिन चाँदी से धुली आँखों को सब कुछ धूसर दिखाई देता है।
    यह कहानी पढ़कर बचपन में software सीखते समय वाली भावना फिर लौट आई। यह अब भी मज़ेदार हो सकता है, और exit या चमकदार नए SaaS के लिए नहीं, बल्कि अपने लिए कुछ बनाया जा सकता है। इसने यह उम्मीद की किरण दी कि अब भी मज़ा आ सकता है।

    • “चाँदी से धुली आँखों को सब कुछ धूसर दिखाई देता है” — यह अभिव्यक्ति सुंदर है। अच्छा लगा कि आपको इस एहसास को फिर जीवित करने की उम्मीद महसूस हुई।
      शायद आप पहले से जानते हों, लेकिन यह burnout का लक्षण है और जो लोग ऐसा ही महसूस करते हैं उन्हें इसे गंभीरता से लेना चाहिए। पहले मैंने workplace में Python सीख रहे एक व्यक्ति की मदद की थी; जब वह binary file format समझ गया, तो वह सचमुच बहुत खुश हुआ। तभी मुझे एहसास हुआ कि मैंने कई सालों से वैसा महसूस नहीं किया था, और थोड़े ही समय बाद समझ आया कि मैं उस जगह काम जारी रखने के लिए बहुत थक चुका था और mental health का ध्यान रखने के लिए समय चाहिए था।
    • मैंने भी एक समय coding का आनंद खो दिया था, लेकिन उसे फिर पा सका।
      असली बात यह थी कि जब तक बिल्कुल ज़रूरी न हो, नई technology सीखने को ignore करना और बस नई चीज़ें बनाने पर ध्यान देना। coding कितनी खूबसूरत हो सकती है, यह मुझे फिर याद दिलाने की शुरुआत शायद Sebastian Lague के videos से हुई।
      [https://youtu.be/X-iSQQgOd1A?si=aqriiWmcqqphOiuI]
    • मेरे साथ भी ऐसा ही था। latest Phrack issue का “Calling All Hackers” [1] याद आया, और उम्मीद जगी कि अगर हम उसे दबाने के बजाय बढ़ावा दें, तो hacker spirit युवा पीढ़ी में भी बनी रहेगी।
      teenage में वे दिन याद आते हैं जब जरूरत से नहीं, इच्छा से code लिखता था। उस skill का इस्तेमाल अच्छे कामों में भी किया, लेकिन “competitors” को hack करने जैसी बेवकूफियों में भी किया, जिन पर अब शर्म आती है। फिर भी कुल मिलाकर उसी अनुभव ने मुझे आज का मैं बनाया, और यह देखकर खुशी होती है कि अगली पीढ़ी भी coding में आनंद खोज रही है।
      [1] https://news.ycombinator.com/item?id=41306128
    • “चाँदी से धुली आँखों को सब कुछ धूसर दिखाई देता है” वाकई शानदार वाक्य है। जिज्ञासा है कि यह कोई मुहावरा है या आपने खुद बनाया है।
    • कभी-कभी एक कदम पीछे हटकर कोई भी random चीज़ करना अच्छा होता है। Advent of Code को competitive तरीके से न करें; best practices की परवाह किए बिना किसी भी language में बस उसे चलने लायक बना लें।
      pico-8 उठाएँ और कोई घटिया-सा game या script बना लें। जगह भी न हो और motivation भी नहीं, तो longDescriptiveVariableNames जैसे लंबे variable names के बजाय दो-अक्षर वाले variable names इस्तेमाल करें। TIS-100 या Shenzen I/O जैसे games खेलें, और बेहतर हो तो manual print करके सबसे पुराने folder में डाल दें और उस पर coffee भी गिरा दें।
  • यह हिस्सा सच में बहुत अहम है:
    “मेरी ज़िंदगी के बड़े लोग आम तौर पर मुझ पर गुस्सा नहीं होते थे। उन्होंने कहा कि अब बंद करो, लेकिन उन्होंने मेरे लिए टी-शर्ट भी बनवाई। अगर उस समय वह प्रोत्साहन न मिला होता, तो शायद मैं आज जो काम कर रहा हूँ, वह नहीं कर रहा होता।”
    किशोरों को ठीक-ठाक शरारत कर सकने की जगह चाहिए—ऐसी जगह जहाँ कुछ हद तक असली सामाजिक परिणाम हों, लेकिन साथ ही सीमाएँ और मदद भी हो ताकि बात बहुत आगे न बढ़े। और उन्हें ऐसे वयस्क चाहिए जिनके पास वे शानदार हुनर हों जिन्हें बच्चे सीखना चाहते हैं, न कि ऐसे लोग जो सिर्फ अधिकार जताते रहें

    • 1999 में, हाई स्कूल में रहते हुए, मैंने स्कूल के कंप्यूटर पर एक बेवकूफाना लेकिन नुकसान न करने वाला प्रैंक किया था
      मैंने दो स्लाइडों वाली एक presentation बनाई; दोनों में काले background पर grey text था, जो ऐसे DOS session की नकल करता था जैसे Windows delete हो गया हो, और एक स्लाइड में prompt पर underline था। उसे हर 1 सेकंड में auto-transition और loop में चलाने पर वह blinking cursor जैसा दिखता था, और खराब कंप्यूटर जैसा लगता था, लेकिन Escape दबाते ही बाहर निकला जा सकता था। बेशक वे कंप्यूटर Mac थे, इसलिए उनमें DOS या Windows था ही नहीं
      एक teacher ने उसे देखा और सोचा कि मैंने कंप्यूटर hack कर दिया है या खराब कर दिया है, इसलिए मुझे principal के पास भेज दिया। Principal को यह मज़ाकिया नहीं लगा और उन्होंने सज़ा दी कि अगले 2 हफ्तों तक lunch break के बाद का हिस्सा स्कूल के IT प्रभारी के साथ बिताऊँ और वह जिस vandalism से जूझता है, उसे देखूँ। लेकिन IT प्रभारी ने जैसे ही देखा कि मैंने क्या किया था, वह ज़ोर से हँसा, और उसे लगा कि इसे कंप्यूटर खराब करने जैसा मानना बेतुका है। उसके बाद भी, सज़ा खत्म होने के बाद मैं अक्सर उसके office में जाकर बात करता या उसके साथ घूमकर कंप्यूटर ठीक करता था
    • हाई स्कूल में मेरे साथ भी ऐसा ही कुछ हुआ था। मैंने एक virus का modified version बनाया था, जिसने कई कंप्यूटरों को infect किया और समस्या पैदा की, इसलिए अगले साल तक मुझे lab में प्रवेश से ban कर दिया गया। सितंबर के अंत की बात थी, इसलिए कोई बहुत बड़ी बात नहीं थी
      अगले साल मैंने teacher से पूछा कि क्या मुझे PC access मिल सकता है, क्योंकि मैं कुछ चीज़ों से खेलना चाहता था। उन्होंने मुझे school के बाद accounting classroom इस्तेमाल करने की permission, network drive पर extra storage, और यह शर्त रखते हुए लगभग पूरी आज़ादी दी कि मैं कुछ खराब नहीं करूँगा। इसलिए मैंने कुछ खराब नहीं किया; रात भर कई machines पर Tierra चलाया, उसे शानदार तरीके से काम करते देखा, और सुबह आकर save करके reboot कर दिया। यह भविष्य के लिए बड़ा आधार बना। मैं सोने के अंडे देने वाली हंस को मारना नहीं चाहता था, इसलिए मैंने कुछ तोड़ा भी नहीं
    • हमारे हाई स्कूल में computer lab में VB6 सिखाने वाली programming intro class थी, और वह काफी self-directed थी, इसलिए मनमर्जी से experiment करने की काफी गुंजाइश थी
      Lab के PC बहुत धीमे थे, और Win+E दबाए रखने पर सैकड़ों Explorer windows खुल जाती थीं और PC hang हो जाता था—यह प्रैंक काफी मशहूर था। इसलिए मैंने एक छोटा VB6 program बनाया, “DoraTheExplorer.exe”, जिसे click करने पर वही काम होता था, और उसे school shared drive पर डाल दिया
      शुरू में यह कामयाब रहा, लेकिन लोगों ने Alt+F4 से जल्दी-जल्दी बंद करके बचना शुरू कर दिया। मैंने उसे exit होते समय खुद को फिर से launch करने वाला बनाया, लेकिन उसे भी लगातार Alt+F4 दबाकर रोक लिया गया। अंत में मैंने एक Hydra बनाई, जिसमें हर बार बंद करने पर दो और खुल जाती थीं, और वह Explorer prank war का ICBM बन गई, जिसके बाद हार मान ली गई
      Admin को शुरू से पता था, लेकिन कुल मिलाकर वह relaxed था। उसने साफ कर दिया था कि अगर किसी का काम खोया या कोई नुकसान हुआ तो ज़िम्मेदारी लेनी पड़ेगी, लेकिन सब जानते थे कि dora.exe क्या करता है, इसलिए ऐसा कुछ नहीं हुआ। लोग जानबूझकर उसे click करते थे, यह देखने के लिए कि क्या वे PC को बेवकूफाना तरीके से down कराकर उससे बच सकते हैं
    • मैंने भी स्कूल में लगभग यही किया था। Network storage में अनंत text files लिखने वाली VB6 script से system down कर दिया, और school ने मेरी माँ को एक letter भेजा जिसमें मुझ पर terrorism का आरोप लगाया गया था
      उस समय भी मुझे यह बेतुका और unfair लगा था, और शुक्र है कि मेरी माँ भी सहमत थीं। अब एक वयस्क की नज़र से पीछे मुड़कर देखता हूँ, तो लगता है कि बच्चे पालने के मामले में यह attitude लगभग आपराधिक रूप से गैर-ज़िम्मेदार था। सचमुच इतना संकीर्ण और दयनीय कि आज भी जब सोचता हूँ कि कुछ बच्चे ऐसे माहौल में बड़े हो रहे हैं और ऐसे लोगों से सीख रहे हैं, तो गुस्सा आता है
    • यह तरीका सच में बहुत संवेदनशील है। मुझे लगता है कि बचपन में मुझे जो प्रतिक्रिया मिली थी, उससे कहीं बेहतर मैं इस पर प्रतिक्रिया देता
  • “खासकर जो लोग programming नहीं करते, उनके लिए bots से सामना होने का आम तरीका ticket scalping bots या restaurant reservation bots जैसी चीज़ें होती हैं। ये bots स्वार्थी, unfair और antisocial लगते हैं।”
    यह हिस्सा देखकर मुझे याद आया कि Palisades Tahoe ski resort ने पिछले winter weekends में parking के लिए मुफ्त लेकिन कम उपलब्ध parking reservation शुरू किया था। Bay Area के सबसे popular ski destinations में से एक होने के कारण, जाहिर है bots बन गए। जैसे ही नए spots खुलते, वे कुछ seconds में गायब हो जाते थे, और साफ़ तौर पर यह bots का काम था। इसलिए मजबूर होकर मैंने भी एक बना लिया।
    मेरा bot cancellation से खाली जगह बनने पर बस Pushover से notify करता था, खुद reservation नहीं करता था, लेकिन मेरे और मेरे group के लिए इतना काफी था। Reddit पर जिन लोगों ने bots नहीं बनाए थे वे कह रहे थे कि bots सब कुछ खींच ले रहे हैं, और मुझे भी यह काफी antisocial लगा, लेकिन सच में कोई विकल्प नहीं था।

    • दुख की बात यह है कि solution बहुत simple है। इतने लंबे समय तक interest registration खुला रखो कि हर कोई आराम से apply कर सके, और उस period के खत्म होने पर lottery कर दो। Winners को, उदाहरण के लिए, magic link वाला email मिले जिससे उन्हें खरीदने का मौका मिले, और अगर वे जवाब न दें तो किसी और को चुन लिया जाए।
      वरना resource उसे देने के बजाय जो सबसे ज्यादा pay करेगा, यह एक ऐसी “auction” बन जाती है जिसमें resource सबसे अच्छी programming skill वाले व्यक्ति को मिलता है। वे लोग फिर उसे सबसे ज्यादा देने वाले को resell कर सकते हैं। Programming एक specialist skill है, और जिन contexts में शुरुआत से ही सबसे ज्यादा पैसा देने वाले को देना स्वीकार्य नहीं है, वहाँ यह काफी unfair है। मेरी जानकारी में sneakers/fashion industry के कुछ हिस्सों में ऐसा तरीका इस्तेमाल होता है।
    • Covid के दौरान local swimming pool में lane reservation पाने के लिए मजबूर होकर reservation bot बनाना पड़ा। Slots दो दिन पहले आधी रात को खुलते थे, लेकिन सुबह 7 बजे नियमित रूप से तैरना चाहने वाले लोग आम तौर पर आधी रात तक जागने की आदत नहीं रखते। सुबह 6 बजे उठता तो हमेशा सब reserved होता था। इसलिए मैंने bot बनाया, और वह हैरान करने लायक मजेदार और effective था।
    • हमारे देश के popular hiking trails पर मौजूद mountain huts में stay reservation के लिए bot इस्तेमाल करता हूँ। हर साल तय समय पर online reservation खुलता है और कुछ seconds बाद सब गायब हो जाता है। एक भी reservation पकड़ने का इकलौता भरोसेमंद तरीका bot का इस्तेमाल है।
      मजेदार बात यह है कि हर साल इन hut reservations में bots इस्तेमाल हो रहे हैं या नहीं, इस पर news आती है, और operators जोरदार denial करते हैं। लेकिन मुझे पता है कि मेरा bot ढेर सारे दूसरे bots से compete कर रहा है।
    • दक्षिणी Europe के कुछ इलाकों में government service reservation systems भी यही झेल रहे हैं। संगठित groups system पर कब्जा कर लेते हैं और फिर reservation times बेचते हैं।
      यह open secret है कि या तो 6–12 हफ्ते बाद का appointment slot पाने के लिए bots से लड़ो, या सही व्यक्ति को 50 euro देकर कुछ दिनों में appointment पा लो।
    • Covid की पहली summer में अपनी boat को Lake Tahoe में उतारने के लिए मुझे कुछ ऐसा ही करना पड़ा। Lake Tahoe और California की ज्यादातर lakes में पानी में जाने से ठीक पहले boat inspection जरूरी होता है, मुख्यतः Quagga contamination रोकने के लिए। Covid के दौरान वह inspection online book करना पड़ता था, और parking reservation की तरह demand और supply लगभग बराबर थी, इसलिए मैंने खाली slot आने पर Pushover से notify करने वाला bot बनाया।
      Reservation पकड़ने के बाद boat को 9 घंटे tow करना पड़ा, और पूरे रास्ते यही दुआ करता रहा कि boat में पानी की एक बूंद भी न बची हो। क्योंकि ज्यादातर inspectors पानी दिखते ही fail करके वापस भेज देते हैं। सौभाग्य से site पर inspection team काफी अच्छी थी, और उन्होंने पूरी boat को hot water से धो दिया, जो बताया गया कि Quagga mussels के larvae या eggs जैसी चीज़ों को मार देता है।
  • यह लेख सच में बहुत अच्छा लगा, और high school में Java सीखने के दिन याद आ गए। मैंने एक app बनाया था जो पूरी screen को “x” buttons की grid से भर देता था, लेकिन उनमें से सिर्फ एक सच में window बंद करता था। अगर कोई computer lock किए बिना seat छोड़कर जाता, तो मैं floppy disk लगाकर program run करता और निकल जाता।
    School का IT in-charge हमेशा पूछता था कि हम क्या कर रहे हैं, और हम ईमानदारी से जवाब देते थे। वह इस बात पर नाराज नहीं होता था कि हमने network पर Halo CE या Starcraft जैसे games चलाने का तरीका खोज लिया है, लेकिन अगर हम बहुत bold हो जाते तो रुकने को कहता था।

    • मेरा दोस्त StarCraft CD key याद रखता था ताकि जल्दी reinstall कर सके। अच्छे दिन थे।
      हमारे पास network file share था, इसलिए floppy की जरूरत नहीं थी, और सभी के computers से छेड़छाड़ करना बहुत आसान था। मैंने एक script बनाई थी जो open window titles पढ़कर free games.com जैसी उस समय popular gaming sites बंद कर देती थी। आखिर class के दौरान game नहीं खेलना चाहिए। लेकिन save file name की वजह से उसने कोई 3D modeling program बंद कर दिया, उसके लिए थोड़ा अफसोस हुआ।
    • हमारे school के shared computers theoretically locked थे। Internet access पाने के लिए IT in-charge की permission चाहिए होती थी, वरना सिर्फ Word जैसी चीज़ें इस्तेमाल कर सकते थे।
      एक workaround मिला: Notepad खोलो, file open dialog में जाओ, फिर अगला step ठीक से याद नहीं, लेकिन file explorer खुल जाता था, और address bar में URL डालने पर वह Internet Explorer में बदल जाता था। बेशक मेरे पास CD से boot होने वाला Linux भी था, लेकिन वह बहुत ज्यादा noticeable था।
    • पता चला कि Quake 2 admin rights के बिना run हो जाता है, तो मैंने school के कई computers पर install कर दिया। बहुत लोग उसके आदी हो गए, लेकिन आखिरकार “Internet खराब कर दिया” के आरोप में suspension और parents को बुलाने तक की बड़ी punishment मिली।
      IT in-charge का दावा था कि network game सारी bandwidth खा रहा था, और install करने के लिए मैंने computers को “hack” करके admin rights हासिल किए थे। इस thread के कई comments में जैसे मेरी एक-एक कहानी मौजूद है।
  • New Yorker के Reddit article की बात याद आती है, खासकर वह हिस्सा जिसमें r/Place समझाया गया था:
    पिछले April Fools’ Day पर Reddit ने parody announcement के बजाय एक असली social experiment जारी किया। नाम था r/Place, और यह हजार pixels गुणा हजार pixels का खाली square था। शुरुआत में सभी दस लाख pixels सफेद थे। Experiment शुरू होते ही कोई भी grid में किसी भी जगह का सिर्फ एक pixel 16 colors में से किसी एक में बदल सकता था। एकमात्र constraint speed था। Algorithm हर Reddit user को हर 5 minutes में सिर्फ एक pixel बदलने देता था। “इससे कोई एक व्यक्ति कब्जा नहीं कर सकता। यह बहुत slow है,” Place के responsible Reddit product manager Josh Wardle ने समझाया। “Scale पर कुछ करना है तो collaborate करना होगा।”
    https://www.newyorker.com/magazine/2018/03/19/reddit-and-the...

    • “इससे कोई एक व्यक्ति कब्जा नहीं कर सकता” वाली बात के उलट, Reddit admins/moderators ने time limit bypass करके Place पर जितने चाहें उतने pixels लगाने के लिए इसका abuse किया।
  • मैं भी उन लोगों में से था जिन्हें bots नापसंद थे। मुझे इस लेख की ज़रूरत थी। मैंने भी स्कूल में ऐसा program बनाया था जिसे नहीं बनाना चाहिए था, और उससे समस्या हुई थी
    फिर भी मैं उस math teacher का जीवनभर आभारी रहूंगा जिन्होंने मुझे TI-83+ calculator पर program इस्तेमाल करने की अनुमति दी। शर्त बस इतनी थी कि program मैंने खुद लिखा हो और उसे किसी और के साथ share न करूं

  • पहले जब मैं vBulletin forum manage करता था, तब मैंने एक arcade system install किया था। यह एक मज़ेदार feature था जिसमें games खेलकर “XMB Bucks” नाम की बिल्कुल बेकार currency कमाई जाती थी और लोग एक-दूसरे को दिखावा करते थे
    कुछ महीनों बाद मुझे पता चला कि उस arcade में छिपे हुए sub-forum का feature है, और काफी लोग उसे actively इस्तेमाल कर रहे हैं। लगता था कि उन्होंने vBulletin registration screen को bypass करके सीधे इस छिपे arcade feature में signup कर लिया था, और जैसे फर्श के तख्तों के नीचे रहने वाले चूहों का झुंड हो, वैसे वे आपस में खूब बातें कर रहे थे

  • जब मैं university में आया, WWW बहुत नया था। CIP pool में NCSA Mosaic से pages देखना तो जल्दी सीख गया, लेकिन यह कैसे काम करता है, बिल्कुल नहीं जानता था। फिर भी मैं पता लगाना चाहता था
    कहीं पढ़ा कि अपना page बनाने के लिए “patchy server” चाहिए, और Altavista पर Apache search किया। पहला result किसी tribe के बारे में नहीं था, यह देखकर थोड़ी देर के लिए हैरान हुआ, फिर बिना यह जाने कि मैं क्या कर रहा हूं, सारे instructions ध्यान से follow किए
    काफी देर बाद Mosaic में test page दिखा और मैं खुशी-खुशी घर गया। देर हो चुकी थी और मैं थका हुआ था, लेकिन सोच रहा था कि क्या computer on करके dial-up से connect करूं और check करूं कि घर से भी मेरा page दिखता है या नहीं। मुझे बहुत कुछ समझ नहीं आता था, लेकिन लगा कि अगर यह घर से दिखता है, तो दुनिया में कोई भी इसे देख सकता है
    यह विचार मन से गया ही नहीं, इसलिए आखिरकार मैंने try किया, और हैरानी की बात कि सचमुच काम कर गया।[1] बिना library वाले देहात में पले-बढ़े मेरे लिए वह दुनिया हिला देने वाला अनुभव था
    करीब 2 हफ्ते बाद university से notice मिला कि बिना permission university resources पर service चलाने की अनुमति नहीं है, इसलिए मुझे उसे हटाना पड़ा। लेकिन इसके अलावा कुछ नहीं हुआ, और मैं सच में खुशकिस्मत हूं कि उन्होंने rational तरीके से respond किया
    [1] उस समय हमारे computers के पास public IP था और firewalls अभी आए नहीं थे

    • मुख्य point से थोड़ा अलग है, लेकिन यह सोचकर मज़ा आता है कि NAT हमेशा से नहीं था, और कई networks में public Internet address वाले PCs और बिना firewall वाली structure होती थी। उस समय NetBIOS भी सीधे Internet पर चलता था। \\x.x.x.x\c$ type करने पर काफी high probability से सीधे connect हो जाता था
  • शानदार कहानी थी, इसने breakfast का मज़ा और बढ़ा दिया। छोटे developers professional दुनिया के modern tools और processes—और उन चीज़ों से भी, जो हमेशा अच्छी नहीं होतीं—से आज़ाद होते हैं
    मैं open-source Roblox alternative जैसा platform बना रहा हूं, और इस तरह के बच्चे इसकी ओर खिंचे चले आते हैं। वे सचमुच creative हैं, bugs और potentially harmful hacks बताते हैं, और हमेशा मदद करने की कोशिश करते हैं

    • काफी समय बाद HN पर पढ़ी कहानियों में यह मेरी सबसे पसंदीदा है