Spinne Software
हिन्दी

एडिटर कहाँ खत्म होता है और मॉडल कहाँ शुरू।

ज़्यादातर टूल में एक सीवन होती है। आप एक्सपोर्ट करते हैं, अपलोड करते हैं, इंतज़ार करते हैं, डाउनलोड करते हैं, नतीजा वापस अपनी जगह रखते हैं और उम्मीद करते हैं कि वह अब भी ठीक बैठेगा। उस सीवन के एक तरफ़ आपका प्रोजेक्ट है; दूसरी तरफ़ एक ऐसा प्रोग्राम, जिसने उसका नाम तक नहीं सुना। Sparkle में वह सीवन है ही नहीं, और उसे हटाना ही इस पेज पर बताई गई ज़्यादातर इंजीनियरिंग है।

एडिटर यानी एक डॉक्यूमेंट और उसे बदलने वाले ऑपरेशंस

पैनलों के नीचे एडिटर एक ही चीज़ है: एक डॉक्यूमेंट, जो बताता है कि कब क्या होता है, और नाम वाले ऑपरेशंस का एक सेट, जो उसे बदलने का इकलौता रास्ता है। क्लिप स्प्लिट करना, उसकी टाइमिंग बदलना, रंग सेट करना, कैप्शन ट्रैक जोड़ना। डॉक्यूमेंट को इनके अलावा कुछ नहीं छूता।

सुनने में यह इम्प्लीमेंटेशन का कोई ब्योरा लगता है, जबकि यही पूरा आर्किटेक्चर है। जब ऑपरेशंस ही इकलौता दरवाज़ा हों, तो आगे जो कुछ मायने रखता है — undo, कनकरेंसी, replay, यह ऑडिट कि हुआ क्या था — वह दरवाज़े का गुण होता है, न कि उससे गुज़रने वाले हर फ़ीचर पर अलग-अलग जड़ी गई कोई चीज़।

इसलिए असिस्टेंट एक और कॉलर है, कोई दूसरा प्रोग्राम नहीं

असिस्टेंट न कोड बनाता है, न फ़्रेम। वह वही नाम वाले ऑपरेशंस भेजता है जो कोई मेन्यू आइटम भेजता है, उन्हीं टाइप्ड पैरामीटर के साथ, उसी डॉक्यूमेंट में। उससे कहिए कि वर्टिकल वर्ज़न काट दे, और वह उसी ऑपरेशन को कॉल करता है जो एडिटर के पास पहले से था।

इससे दो बातें निकलती हैं, और असल बात वही दोनों हैं। जो एडिटर नहीं कर सकता, उसे असिस्टेंट कह ही नहीं सकता — यानी AI के आउटपुट की ऐसी कोई किस्म बचती ही नहीं जिसे बाद में प्रोजेक्ट के साथ बिठाना पड़े। और जो कुछ उसने किया, वह आप भी कर सकते थे — यानी आप उसे पढ़ सकते हैं, बदल सकते हैं, या हाथ से खोलकर अलग कर सकते हैं।

एक ऑपरेशन, एक undo

असिस्टेंट का एक ऑपरेशन सौ क्लिप को छू सकता है: उनकी टाइमिंग बदल सकता है, उनका रंग बदल सकता है, हर कैप्शन का स्टाइल बदल सकता है। फिर भी वह सिमटकर एक ही checkpoint बनता है, इसलिए एक undo आपको वहीं लौटा देता है जहाँ आप कहने से पहले थे।

यह सहूलियत भर नहीं है। किसी एडिटिंग असिस्टेंट को बरतने लायक यह बात नहीं बनाती कि वह कितनी बार सही होता है — बनाती यह है कि उससे असहमत होना कितना सस्ता है। जिस असिस्टेंट को आप साफ़-साफ़ खारिज नहीं कर सकते, उस पर निगरानी रखनी पड़ती है, और निगरानी रखना खुद वह काम कर लेने से महँगा पड़ता है।

मॉडल आसान हिस्सा है। उसके इर्द-गिर्द जो कुछ है, वही एडिटर है।

दो हाथ, एक डॉक्यूमेंट

कोई लंबा ऑपरेशन चलता रहे तब भी आप काम करते रहते हैं, यानी डॉक्यूमेंट के दो लेखक हो जाते हैं। इसका भोला-भाला रूप एक एडिट गँवा देता है: जो धीमा लिखने वाला है वह सबसे बाद में सेव करता है और चुपचाप दूसरे का किया हुआ मिटा देता है।

हर सेव डॉक्यूमेंट के मौजूदा हेड ऑपरेशन के खिलाफ़ एक compare-and-swap है। जो राइट ऐसे वर्ज़न पर टिका हो जो आगे बढ़ चुका है, उसे मना कर दिया जाता है — न मर्ज किया जाता है, न चुपचाप लागू। मना करना ही काम की चीज़ है: खारिज हुए सेव को सच के मुकाबले दोबारा आज़माया जा सकता है, जबकि गुम हुई एडिट का पता उसे करने वाले को कई दिन बाद चलता है।

Exactly once, वरना बिल्कुल नहीं

असिस्टेंट के किसी प्लान का कोई स्टेप देर-सबेर किसी रीट्राई से टकराएगा, या डबल क्लिक से, टूटे हुए कनेक्शन से, रिफ़्रेश से, बीच में हुए क्रैश से, या दो ऐसे एक्ज़ीक्यूटर से जो दोनों खुद को उसका मालिक मानते हों। इनमें से कोई भी एक एडिट को दो बार लगा सकता है, और टाइमलाइन पर दो बार लगी एडिट डुप्लिकेट नहीं होती — वह एक अलग टाइमलाइन होती है।

इसलिए फ़ैसला एक्ज़ीक्यूटर के हाथ में है ही नहीं। कुछ भी बदलने से पहले उसे प्लान स्टोर से वह स्टेप claim करना पड़ता है, और प्लान स्टोर लॉक के भीतर, एटॉमिक तरीके से उसे यह मंज़ूरी देता है; एडिट की इजाज़त सिर्फ़ मंज़ूर हुआ claim देता है, और replay डॉक्यूमेंट को छुए बिना पहला ही नतीजा लौटा देता है। कोई ऑपरेशन हुआ, इसका सबूत दर्ज किया गया ऑपरेशन id है, न कि किसी ब्राउज़र टैब में लगा कोई फ़्लैग।

मॉडल टाइमलाइन के बगल में बैठते हैं, किसी अपलोड के पीछे नहीं

मैटिंग, सेगमेंटेशन और डेप्थ एडिटर की ही प्रोसेस में चलते हैं, उन्हीं फ़्रेम पर जो उसके हाथ में पहले से हैं। न कोई एक्सपोर्ट, न अपलोड, न इंतज़ार, न दोबारा इम्पोर्ट — और बाद में कुछ भी फिर से बिठाना नहीं पड़ता।

यह लेटेंसी को लेकर लिया गया डिज़ाइन का फ़ैसला है, और यह उस सवाल को भी निपटा देता है जिसे सीवन आमतौर पर खुला छोड़ देती है: जो फ़ुटेज एम्बार्गो में है वह एम्बार्गो में ही रहता है, क्योंकि वह कहीं गया ही नहीं। जिस काम को सचमुच क्लाउड चाहिए, वह एक ही गेटवे से होकर जाता है, जो उसे उसी अकाउंट के नाम मीटर करता है जिसने वह काम माँगा था।

ऐसा प्रीव्यू जो खुद एक्सपोर्ट है

स्क्रब और आखिरी रेंडर, दोनों वही शेडर बनाते हैं, इसलिए आप जिसे मंज़ूर करते हैं, वही डिलीवर होता है। इसके बिना हर AI एडिट अस्थायी रहती है: आप एक तस्वीर मंज़ूर कर रहे होते और फ़ाइल बाद में दोबारा जाँच रहे होते — यानी वही सीवन पाइपलाइन के दूसरे सिरे पर फिर उभर आती।

सब मिलाकर देखें — एक डॉक्यूमेंट, ऑपरेशंस का एक सेट, एक undo, एक हेड, एक एक्ज़ीक्यूशन, एक रेंडर पाथ — तो दिलचस्प सवाल यह रह ही नहीं जाता कि मॉडल कितना अच्छा है। सवाल यह बन जाता है कि उससे असहमत होना आपको कितना सस्ता पड़ता है। हम वही हिस्सा बनाते हैं।