1 पॉइंट द्वारा GN⁺ 2025-04-11 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Susam Pal ने एक Debian सर्वर पर 24x7 एक netcat beeper loop खुला रखा, जिसमें कोई भी कनेक्ट कर सकता था; हर कनेक्शन पर यह ok जवाब देता था और टर्मिनल में 4 बार बीप बजती थी
  • यह one-liner इस तरह बना था कि nc कनेक्शन स्वीकार करता, बैकग्राउंड for loop bell character आउटपुट करता, और बाहरी while loop अगला कनेक्शन लेने के लिए तुरंत एक नया process शुरू कर देता
  • पहले प्रयोग में 24 घंटे के दौरान 4,761 connections आए, जिससे कुल 19,044 बीप बजे; इसमें ब्राउज़र, nc, curl, ssh, irssi जैसे अलग-अलग clients से हिस्सा लिया जा सकता था
  • 10 अप्रैल 2025 को इस पोस्ट को Hacker News पर शेयर करने के बाद, 14 घंटों में 352,831 connections और 1,396 unique client addresses दर्ज हुए, जिससे कुल 1,411,324 बीप तक बात पहुँच गई
  • दूसरे राउंड में anonymized client C0276 ने 327,209 requests पैदा किए और अधिकांश ट्रैफ़िक उसी ने लिया; HN exposure ने इस छोटे मज़ाकिया प्रयोग का पैमाना बहुत बढ़ा दिया

netcat से बना टर्मिनल beeper

  • यह प्रयोग Debian सर्वर पर random connections स्वीकार करने वाले एक छोटे netcat loop से बना था
    • client कनेक्ट होने पर ok मैसेज भेजा जाता था
    • कनेक्शन तुरंत बंद कर दिया जाता था
    • टर्मिनल में 4 बार बीप बजती थी
  • चलाया गया कमांड यह था
while true; do (echo ok | nc -q 1 -vlp 8000 2>&1; echo; date -u) | tee -a beeper.log; for i in 1 2 3 4; do printf '\a'; sleep 1; done & done
  • nc कमांड ok भेजने के बाद कनेक्शन बंद कर देता था, और अंदर का for loop बैकग्राउंड shell में asynchronously चार बार bell character आउटपुट करता था
  • बाहरी while loop तेज़ी से नया nc process चलाता था ताकि अगला कनेक्शन लिया जा सके
  • HN thread में बताया गया था कि पोर्ट 8000 पर किसी भी तरीके से कनेक्ट करने पर 4 बार बीप बजेगी
    • उदाहरण: web browser
    • उदाहरण: nc HOST 8000
    • उदाहरण: curl HOST:8000
    • उदाहरण: ssh HOST -p 8000
    • उदाहरण: irssi -c HOST -p 8000

HN पर दो बार बढ़ा connection surge

  • पहला प्रयोग एक अजीब DIY notification system पर HN thread में आई प्रतिक्रिया से निकला मज़ाकिया प्रयोग था
    • मूल चर्चा HN thread में है
    • 24 घंटे में 4,761 connections हुए
    • हर कनेक्शन पर 4 बार बीप बजने से कुल 19,044 टर्मिनल बीप हुईं
    • डेटा beeper.log में है
  • 10 अप्रैल 2025 को इस पोस्ट को Hacker News पर शेयर करने के बाद connections फिर से तेज़ी से बढ़े
    • 14 घंटों में 352,831 connections दर्ज हुए
    • unique client addresses की संख्या 1,396 थी
    • कुल बीप 1,411,324 तक पहुँचीं
    • डेटा beeper2.log में है
  • दूसरे प्रयोग का बहुत-सा ट्रैफ़िक संभवतः एक persistent client loop से आया जो beeper loop से लगातार कनेक्ट हो रहा था
    • anonymized client C0276 ने सबसे ज़्यादा 327,209 connections किए
    • दूसरे सबसे सक्रिय C0595 ने 6,771 connections दर्ज किए
    • ठीक एक बार कनेक्ट करने वाले clients की संख्या 491 थी
    • client-वार connection counts beeperclient2.log में हैं
  • पहले राउंड में comment thread देखने वाले कुछ पाठकों से 4,761 connections आए थे, लेकिन HN front page पर पहुँचे दूसरे राउंड में यह संख्या 352,831 तक पहुँच गई
  • यह प्रयोग समस्या-समाधान से ज़्यादा अजीब विचारों की खोज और दूसरों के साथ मिलकर उसमें हिस्सा लेने के आनंद पर केंद्रित computing activity के रूप में समाप्त हुआ

1 टिप्पणियां

 
GN⁺ 2025-04-11
Hacker News की राय
  • शानदार। मुझे पता है कि मैं खुद भी पाखंडी हूं; कहता हूं कि ब्लॉग इसलिए लिखता हूं क्योंकि लिखना पसंद है और analytics metrics का गुलाम बनना भयानक है, लेकिन असल में, जब किसी ऐसे project पर visits की बाढ़ आती दिखती है जिसमें कुछ घंटे लगाए हों, तो वह instant feedback बहुत अच्छा लगता है
    आखिरकार, पूरी analytics tool तक गए बिना अपनी recognition की इच्छा पूरी करने के लिए मैंने site पर एक छोटा-सा visit counter लगा दिया। वह beep नहीं करता, लेकिन शायद करना चाहिए

    • यह साबित करने के लिए कि मैं कितना भ्रष्ट हो चुका हूं, मैंने अभी-अभी एक one-line shell script बनाई है जो visit counter के react करने पर beep करती है
      tail -F -n 0 /var/log/visitlog | while read ; do printf '\a' ; done
      अब बस किसी को मेरी site visit करनी है
    • मैंने भी कुछ ऐसा ही किया। users की privacy छीनना नहीं चाहता था, इसलिए 2022 में खुद एक simple counter बनाया, और blog पर अपने bedroom में रखे Raspberry Pi 400 के बारे में लिखा
      अभी-अभी click sound file download की है, और उसे जोड़कर देखना चाहता हूं कि क्या मैं पागल हो जाता हूं
      https://joeldare.com/private-analtyics-and-my-raspberry-pi-4...
    • मुझे हैरानी है कि किसी चीज पर कुछ घंटे लगाने के बाद recognition चाहना बुरा क्यों महसूस होना चाहिए
    • पहले जब मैं खुद बनाए हुए PHP pages से site चलाता था, तो internally एक साधारण text file इस्तेमाल करने वाला visit counter था। उम्मीद से ज्यादा कारगर था और मजेदार अनुभव भी था
  • एक सामान्य HN thread में दबा हुआ मेरा कम-ज्ञात comment article में आ गया \o/

    • यह दिखाता है कि बहुत दबे हुए comment भी हजारों views ला सकते हैं। असल में comment पढ़ने वालों में से कुछ ही लोगों ने react किया होगा, लेकिन वही कुछ 4 हजार से ऊपर थे, तो perspective बदल जाता है
  • Susam की घंटी बजाने के बजाय Fish Doorbell देखना चाहिए। मछलियां जब गुजरने के लिए इंतजार कर रही हों, तो बस बता देना होता है
    https://visdeurbel.nl/en/

    • Fish Doorbell AI use case के तौर पर शानदार होगा, लेकिन मैं ऐसी दुनिया में रहना चाहता हूं जहां जब मछलियां गुजरना चाहें तो volunteers video देखकर खुद घंटी बजाएं
  • मजेदार है। दिख रहा है कि अभी इसे काफी प्यार मिल रहा है
    while true; do; sleep 5; curl http://susam.net:8000 ; done
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (7) Failed to connect to susam.net port 8000 after 11 ms: Couldn't connect to server
    curl: (56) Recv failure: Connection reset by peer
    curl: (7) Failed to connect to susam.net port 8000 after 8 ms: Couldn't connect to server
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (7) Failed to connect to susam.net port 8000 after 8 ms: Couldn't connect to server
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (7) Failed to connect to susam.net port 8000 after 10 ms: Couldn't connect to server
    curl: (7) Failed to connect to susam.net port 8000 after 11 ms: Couldn't connect to server
    curl: (56) Recv failure: Connection reset by peer
    curl: (56) Recv failure: Connection reset by peer
    curl: (1) Received HTTP/0.9 when not allowed

    • इस स्थिति में सचमुच बहुत मदद कर रहे हो…
    • curl में --http0.9 flag जोड़ना बेहतर होगा। इससे उसे बताया जा सकता है कि सिर्फ "ok" वाला response, यानी बिना headers के सिर्फ body वाला HTTP 0.9 तरीका error नहीं है
    • अगली बार watch -n 5 इस्तेमाल करके देख सकते हो
  • “आखिरकार यह एक मजेदार experiment था। बेकार, लेकिन मजेदार!”
    ऐसे experiments सबसे अच्छे होते हैं। कभी-कभी इन्हीं से बड़ी innovation, inventions, medical advances, और ज्यादा मजा निकल आता है

    • मैंने पहले एक phrase सुना था: “बेकार होने का मतलब बे-मूल्य होना नहीं है”, और यह वाक्य मुझे बहुत पसंद है
    • किसी दिन आप बस corridor के end में break room में fresh coffee है या नहीं पता करना चाहते हैं, और अगले दिन webcam invent हो जाता है
      https://en.m.wikipedia.org/wiki/Trojan_Room_coffee_pot
  • इस idea का ज्यादा advanced, और पुराना 2000 वाला version Peep (The Network Auralizer) है: आवाज के जरिए network monitor करने वाला tool [1]
    मैंने इसे पहले कुछ महीनों तक चलाया था और living room जंगल जैसा सुनाई देता था। आजकल traffic के बढ़े हुए volume के साथ वही setup चलाएं तो शायद नरक का दरवाजा जैसा लगेगा
    यह अभी भी SourceForge पर मिल सकता है, लेकिन शायद इसमें थोड़ा काम करना पड़े, या पुराने Linux distribution चलाने वाली VM की जरूरत हो सकती है
    https://sourceforge.net/projects/peep/
    [1] https://www.usenix.org/legacy/publications/library/proceedin...

  • 1998 के आसपास, एक ग्रुप था जो अपने निवेश किए हुए startups के लिए नए technical talent ढूंढ रहा था। शायद उन्होंने /., जैसी किसी जगह पर पोस्ट किया था कि वे non-standard port पर SMTP के जरिए resumes लेंगे, और इसे filtering mechanism की तरह इस्तेमाल किया था
    मुझे कोई जवाब नहीं मिला, लेकिन आखिरकार अगले साल मैं उनकी invest की हुई कंपनियों में से एक में काम करने लगा

    • लगभग उसी समय, कुछ websites अपने HTML source के अंदर job postings भी डालती थीं। उस समय मैं tech role नहीं ढूंढ रहा था, इसलिए apply नहीं किया, लेकिन मुझे यह हमेशा clever लगा
      web development में दिलचस्पी रखने वाले geeks हर interesting page पर लगातार “View Source” दबाते रहते थे। early web frontend techniques फैलने का यह एक मुख्य रास्ता था, और सच में अच्छा था। आप HTML को copy-paste कर सकते थे, .css और दूसरे resources खुद download कर सकते थे, offline site mockup चलाकर secrets सीख सकते थे। सारा magic खुला था, और अगर आप परदा हटाकर देखने को तैयार हों तो future अंतहीन खुला लगता था
    • इसी तरह मुझे एक company याद है जिसने DNS के जरिए job posting की थी। लगता है कोई TXT record था जो actual apply करने का तरीका बताता था
    • मुझे जिज्ञासा है कि वह port documented था, या खुद scan करना पड़ता था
  • आज सीखा: बिना headers के सिर्फ text देने वाला HTTP/0.9 response modern browsers में अब भी काम करता है। कमाल है

    • उम्मीद है यह हमेशा ऐसा ही रहे। छोटे projects के लिए useful है
  • थोड़ा related, मैंने कभी HN पर #1 post से मिले traffic को animation में बदला था
    https://idiallo.com/blog/surviving-the-hug-of-death mobile-friendly नहीं है, माफ़ कीजिए
    bots हैरान करने वाली संख्या में होते हैं। अगली बार HN traffic मिले तो ऐसा कुछ setup करना मजेदार हो सकता है

    • “शुरू में मैंने manually मुकाबला किया और उन्हें fake data खिलाया। लेकिन जल्दी ही बोर हो गया। इसलिए मैंने अपना secret weapon, zip bomb, deploy किया। जब कोई bot मेरी site access करता, तो मैं एक छोटी compressed file serve करता, और उनके servers उसे पूरी लगन से download करके unzip करते, फिर कई gigabytes की chaos फूट पड़ती। धमाका। खत्म।”
      लेकिन मुझे हैरानी है कि उन्हें कैसे पता था कि वह bot unzip करेगा। अगर bot है, तो वह शायद article का HTML content और images copy करके अपनी site पर paste करेगा; file edit करने या decompress करने की जरूरत नहीं दिखती
      animation प्रभावशाली है, और bots की संख्या बहुत ज्यादा है
  • http://susam.net:8000 ने response देना बंद कर दिया है, इसे देखकर लगता है आज beep sound बहुत ज्यादा बजेगी

    • करीब 14 बार कोशिश करके ok 2 बार मिला ;)
    • यह HTTP server नहीं है। nc या telnet जैसी चीज़ों से try करें तो connection टूटने से पहले ok response मिल सकता है
      telnet -4 susam.net 8000