1 टिप्पणियां

 
GN⁺ 2024-03-24
Hacker News की रायें
  • मेरे हिसाब से इस काम में सबसे शानदार चीज़ समय के काम करने का तरीका है
    चूँकि हर लेवल का एक स्टेप ठीक उसके नीचे वाले लेवल के ढेरों स्टेप्स से calculate होता है, इसलिए जितना zoom out करते हैं, उतना ऐसा लगता है जैसे आप एक exponential whirlpool में गिर रहे हों, जहाँ एक स्टेप में दिन, साल, या हजारों साल लग जाते हैं
    लेकिन simulator zoom के हिसाब से speed को smoothly adjust कर देता है और समय के अस्तित्व को ही मिटा देता है—यह बात काफी चालाकी भरी है
    अच्छा होता अगर यह दिखता कि real दुनिया के 1 सेकंड में game time कितना आगे बढ़ता है, लेकिन इसके लिए किसी एक level को “bottom” level, यानी real-time में चलने वाला level, तय करना पड़ेगा, जिससे पूरी चीज़ की fractal प्रकृति टूटती लगेगी

    • implementation समझाने वाले लेख में meta pixel pattern की अवधारणा बताने के बाद periodicity का “clock ratio” दिया गया है
      कुछ इस तरह: “इस pattern का period 35328 है, इसलिए 35328 generations आगे बढ़ाने पर meta level की generation 1 से आगे बढ़ती है”
      इस तरह की time delay को ज़रूरी भी माना जा सकता है, क्योंकि अगर pattern की self-similarity समय में फैली हुई है और दो levels अलग-अलग clocks पर चलते हैं, तो अगले level को पिछले level के self-similar animated view के साथ ऊपर आते समय slow down करना होगा
      यानी level n की संरचना को level n+1 की self-similar संरचना के 35328 repetitions चाहिए, इसलिए n+1 को n के self-similar view तक खींचते समय, time-based self-similarity मिलाने के लिए n+1 को भी धीमा होना पड़ेगा
      तो फिर यह भी उत्सुकता होती है कि क्या सभी zoom levels पर किसी view की “computational complexity” को constant बनाए रखने वाला कोई time-invariant constant जैसा कुछ है
    • zoom out करते समय हर बार circuit के किसी अलग हिस्से से बाहर निकलना खास तौर पर प्रभावशाली है
      इसलिए यह किसी सामान्य repeating fractal जैसा नहीं लगता, बल्कि machine के अलग-अलग हिस्सों को अलग-अलग temporal angles से देखने जैसा एहसास देता है
    • क्योंकि gravity time को धीमा कर देती है
      जितना ऊपर जाते हैं, gravity का असर उतना कम होता है और time उतनी तेज़ी से चलता है
      संदर्भ: https://en.wikipedia.org/wiki/Gravitational_time_dilation
    • ऐसा तय कर दें कि जिस level से शुरू किया है वह real-time में रहे, और second hand नीचे वाले levels में धीमी, ऊपर वाले levels में तेज़ चले—शायद यही ठीक हो
    • grid infinite है, इसलिए कोई एक level अगले level और उसकी पूरी history तक बिल्कुल समान भी हो सकना चाहिए
      तब सभी levels को एक-दूसरे जैसा मानकर असल में वही same level माना जा सकता है, और space व time दोनों scale पर circular हो जाते हैं
      वह single level फिर भी space और time दोनों में non-repeating हो सकता है
  • पहली बार zoom in करते ही मेरे मुँह से अनायास “ये क्या है” निकल गया
    20 साल से भी ज़्यादा समय से परिचित चीज़ को इसने पूरी तरह उलट दिया, और यह लंबे समय बाद देखी गई सबसे cool चीज़ों में से एक है

  • यह ऐसी चीज़ है जिसे सिर्फ comments पढ़कर नहीं छोड़ना चाहिए; खुद चला कर देखना चाहिए
    मैं बस बंद करने ही वाला था, लेकिन अंदर गया और पूरी तरह मंत्रमुग्ध हो गया
    सच में कमाल है

    • सिर्फ देखने और इधर-उधर zoom करने भर से सोचने के लिए बहुत कुछ मिल जाता है
    • लिंक पर click करना चाहिए—इससे सहमत हूँ
      मैं भी आम तौर पर पहले comments पढ़ता हूँ और देखता हूँ कि कहीं paywall, time waste, huge banner, या scam site तो नहीं, फिर तय करता हूँ कि click करना है या नहीं
      इसके बजाय article पढ़कर बाकी लोगों के लिए comments छोड़ने वालों का बहुत आभारी हूँ
      हर नई language सीखते समय मैंने Conway's Game of Life कम से कम दर्जन भर बार बनाया है, और मैं अभी से सोच रहा हूँ कि इसे कैसे implement किया गया होगा
      implementation के हिसाब से user के शुरू करने के लिए कुछ sample patterns डालना भी झंझट हो सकता है, लेकिन यह site तो लगभग still lifes, oscillators, और spaceships को अनंत layers में combine किए हुए लगती है
      pattern repeating लगता है, लेकिन सिर्फ base layer को इस तरह बनाना भी बहुत प्रभावशाली है
    • scroll करते समय “darude - sandstorm” चलाने की जोरदार सिफारिश है
    • लगता है site traffic के दबाव में है
      कुछ दिनों बाद फिर try करने का सोच रहा हूँ
  • यह Haxe में लिखा है, यह दिलचस्प है
    इस language के बारे में पहली बार सुना है; मैं एक ऐसी “hacker's language” ढूँढ रहा था जो लगभग किसी भी niche में fit हो सके, और शायद यह वही हो
    optional static typing और कई targets (खासकर C++) में compile करने की क्षमता देखकर समझ नहीं आता कि यह ज्यादा popular क्यों नहीं है
    यह ऐसी designers द्वारा बनाई गई बेहद practical language लगती है जो developers की ज़रूरतों को अच्छी तरह समझते हैं

    • मेरी समझ में Haxe Flash को replace करने के लिए बनाई गई थी
      यह ज्यादा popular क्यों नहीं है, पता नहीं, लेकिन game community में इसे इस्तेमाल करने वाले काफी लोग हैं
    • Haxe काफी established language है, लेकिन बहुत widely known नहीं है, और हमेशा underdog position में रही है
      फिर भी यह पूरी तरह शानदार है
      इसमें abstract syntax tree (AST) को transform कर सकने वाले macros भी हैं, जिससे compile time पर कमाल के काम किए जा सकते हैं
      ऐसी capability को mature तरीके से support करने वाली languages बहुत कम हैं
      अगर Lisp पसंद नहीं है लेकिन hacker's language चाहिए, तो Haxe try करने लायक है
    • यही वजह है जिससे सच में अच्छी चीज़ें अक्सर popular नहीं होतीं
      जो लोग शानदार चीज़ें अच्छी तरह बनाते हैं, वे उन्हें promote करने में कमजोर होते हैं; और इसके उलट, जो लोग hype बनाना जानते हैं, वे जटिल लेकिन बेचने लायक चीज़ें बनाकर बढ़ा-चढ़ाकर attention पैदा कर देते हैं
    • Haxe काफी बढ़िया है, और अगर इस्तेमाल नहीं किया है तो हाथ आज़माने लायक है
      मैं games नहीं बनाता इसलिए ज्यादा explore नहीं किया, लेकिन यह कुछ ऐसा लगता है जैसे “अगर ActionScript 3 Flash की दुनिया से बाहर निकलकर evolve होता रहता तो?”
      कभी और ज्यादा इस्तेमाल करके games जैसी चीज़ें भी बनाना चाहूँगा
    • websites और webapps बनाते समय PHP server-side classes/logic और JS client-side को strongly couple करने के पुराने ideas याद आते हैं
      HTML-based forms बनाते समय यह खास तौर पर अक्सर होता था: PHP में form define कर भी दें, लेकिन page load के बिना चलने वाला अनुभव user के लिए बेहतर होता है, इसलिए आमतौर पर TypeScript object define करके Ajax से form भेजते हैं
      field names दोनों तरफ define करने पड़ना maintenance के लिए भयानक था, इसलिए मैंने TypeScript से Ajax के जरिए server से जरूरी inputs की list मँगवाने का तरीका अपनाया
      Haxe से यह काम कहीं ज्यादा साफ तरीके से हो सकता है: https://haxe.org/use-cases/web/
  • सचमुच हैरान कर देने वाला
    यह कैसे काम करता है, इसकी detail यहाँ है: http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1

  • बेहद शानदार
    यह कैसे काम करता है, देखना चाहने वालों के लिए GitHub लिंक: https://github.com/saharan/works/tree/main/life

    • उस repository में कुछ और अच्छे simulations भी हैं, लेकिन यह बेशक सबसे बेहतरीन है
      लंबे समय बाद देखे गए Game of Life आइडिया में यह सबसे चौंकाने वाला है
  • कभी-कभी सोचता/सोचती हूँ कि क्या हमारा ब्रह्मांड भी कुछ ऐसा ही तो नहीं
    हम लगातार सबसे बुनियादी particle खोज रहे हैं, लेकिन शायद वैसी कोई चीज़ हो ही नहीं
    शायद हर चीज़ को अनंत तक zoom किया जा सकता हो, और हम बस अपने level को ही perceive करते हों
    पदार्थ किसी और पदार्थ से बना है, और वह पदार्थ फिर किसी और पदार्थ से बना है—ऐसे ही अनंत तक
    और दूसरे levels पर भी जीवन हो सकता है
    जैसे electron के अंदर, या शायद हम किसी कहीं ज़्यादा विशाल जीव के अंदर रह रहे हों

  • कुछ विचार आते हैं
    अगर cell values को जानबूझकर बदल दें तो क्या होगा? Chaos पैदा होगा और बदलाव आखिरकार हर level तक फैल जाएगा, ऐसा लगता है; इसे सच में देखना चाहूँगा/चाहूँगी
    और क्या हर cell को अलग simulation बनाते हुए भी बड़े zoom पर फिर भी Conway's Game of Life जैसा behave कराया जा सकता है? अगर boundaries बनी रहें और सही समय पर on/off हों, तो संभव लगता है; इसकी सीमा कहाँ है, यह जानने की उत्सुकता है

    • जिस level पर cell बदला गया है, वह शुरुआती damage point से बाहर की ओर फैलती chaos की wave से टूट जाएगा, और पीछे उबाऊ “ash” pattern बच जाएगा
      उसके नीचे के levels प्रभावित नहीं होंगे, और बिना टूटे हुए तकनीक से ऊपर घट रहे chaos को ईमानदारी से simulate करेंगे
      उसके ऊपर के levels अब Game of Life को simulate नहीं करेंगे
      नीचे वाले level का damaged हिस्सा न सफेद न काला, बल्कि धुंधले dot जैसा दिखेगा, और ऊपर की ओर जाते हुए exponentially धीमा होकर हमेशा बढ़ता रहेगा
    • अगर cell values को जानबूझकर बदलने पर chaos पैदा होता है और बदलाव सभी levels तक फैल जाता है, तो क्या यह cancer जैसा रूपक होगा?
      यह कैसे unfold होता है, और कोई “repair” या “immune system” जैसा effect पैदा होता है या नहीं, यह देखना दिलचस्प होगा
  • सच में बहुत खूबसूरती से implement किया गया है
    Game of Life शायद वह पहली simulation थी जिसे मैंने programmer के तौर पर आज़माया था, और उसके बाद भी कई सालों तक मैं इस पर लौटता/लौटती रहा/रही
    आज भी जब लोग consciousness जैसी चीज़ों पर सोचते हैं, तो यह याद आता है
    क्या हमारे पास कोई magical dust जैसी चीज़ है, या यह बस एक विशाल मंच पर सरल rules के unfolding का नतीजा है

    • इस 256-byte program के execution में दिखने वाला emergent behavior देखना आनंददायक हो सकता है
      यह mind के जन्म लेने का दृश्य है: https://www.youtube.com/watch?v=sWblpsLZ-O8
    • जैसे physics के नियम खोपड़ी की boundary पर नहीं रुकते, वैसे ही self-sovereignty जैसी कोई चीज़ भी नहीं है
      लेकिन अगर कोई thought खुद को अपने ही thoughts का सोचने वाला subject मान ले, तो किसी को फर्क नहीं पड़ता
      शुरुआत से ही कोई है ही नहीं; बस thoughts हैं
    • शायद सरल rules खुद ही “magical dust” हों
      ऐसे Turing-complete structures हर जगह दिखते हैं, और कई मायनों में एक-दूसरे के equivalent हैं
      शायद यही underlying structure हमारी metaphysics की नींव है, और reality उसकी permutation possibilities में से सिर्फ एक node है
      Game of Life के सरल rules meta-reality की fundamental nature का emergent reflection हो सकते हैं
      शायद ऐसा reflection हमारे neural structure और meaning structure में मौजूद होना ही consciousness के उभरने के लिए जरूरी “magical dust” हो
  • Game of Life को 3D में visualize करने वाला एक शानदार version भी है
    पुराने time frames नीचे की ओर क्रम से ऐसे stack होते हैं जैसे जड़ें बढ़ रही हों, और isometric projection view में animation के रूप में दिखते हैं
    यह इस work की तरह fractal नहीं है, लेकिन art और science के मिलने वाली vibe जरूर साझा करता है
    AlecsForum: https://www.instagram.com/reel/C2hoRnFsmQW/