प्रेरणा: “डिस्क जीतती है” क्यों?¶
आभा दादी-मोड में समस्या¶
Aura Oma Mode (पंक्ति 67 देखें) में, ऑरा काफी हद तक स्वायत्त रूप से संचालित होता है: उपयोगकर्ता कमांड बोलता है, और ऑरा स्वयं फाइलों को लिखता है - कॉन्फ़िगरेशन, स्क्रिप्ट, लॉग प्रविष्टियाँ, उत्पन्न पाठ।
निम्नलिखित परिदृश्य लगातार होता रहता है:
उपयोगकर्ता के पास संपादक में एक फ़ाइल खुली है (उदाहरण के लिए एक नियम फ़ाइल या एक स्क्रिप्ट)।
वे भूल जाते हैं कि संपादक अभी भी सक्रिय है और ऑरा कमांड बोलते हैं।
ऑरा डिस्क पर फ़ाइल को बदलता है।
संपादक बाहरी परिवर्तन का पता लगाता है - और पूछता है।
यह प्रॉम्प्ट ओमा मोड में शोस्टॉपर है:
उपयोगकर्ता ध्वनि इनपुट का उपयोग करते हुए, सोफे पर बैठा हो सकता है, और संवाद को देख या उस तक नहीं पहुंच सकता.
या उन्होंने गलती से संपादक में एक कुंजी दबा दी, बफर अब है “संशोधित”, और प्रत्येक बाहरी परिवर्तन a के साथ अवरुद्ध हो जाता है “पुनः लोड करें? / स्थानीय रखें?” संवाद.
परिणाम: आभा काम करती रहती है, लेकिन संपादक एक पुराना संस्करण दिखाता है। उपयोगकर्ता सोचता है कि वे वर्तमान फ़ाइल को देख रहे हैं, लेकिन संपादन आधारित है पुरानी स्थिति में - अराजकता की गारंटी है।
हमें क्या चाहिए¶
संपादक का व्यवहार जो हमेशा डिस्क को प्राथमिकता देता है। जब ऑरा (या कोई अन्य टूल) फ़ाइल बदलता है, तो संपादक को ऐसा करना होगा तुरंत और बिना किसी संकेत के नई सामग्री दिखाएं। संपादक में सहेजे न गए इनपुट को चुपचाप त्याग दिया जा सकता है - क्योंकि ओमा मोड, ऑरा सत्य का स्रोत है, मानव कीबोर्ड इनपुट नहीं।
मानक संपादक विफल क्यों होते हैं¶
लगभग सभी सामान्य संपादक (केट, वीएस कोड, सबलाइम टेक्स्ट, नोटपैड++, Emacs, Vim, CudaText आउट-ऑफ़-द-बॉक्स) में एक सुरक्षा तंत्र है: जैसे ही बफ़र में सहेजे न गए परिवर्तन होते हैं, वे हमेशा पूछते हैं जब कोई बाहरी परिवर्तन होता है. यह सामान्य के लिए एक सुविधा है डेवलपर कार्य - लेकिन ऑरा ओमा मोड के लिए एक बग।
यह प्लगइन CudaText के लिए बिल्कुल उस अंतर को बंद कर देता है।
लक्षित दर्शक¶
ऑरा ओमा मोड के उपयोगकर्ता जो समानांतर में एक संपादक में फ़ाइलें देखते हैं।
स्वचालन परिदृश्य जहां एक प्रक्रिया फ़ाइलें और एक संपादक लिखती है केवल एक सजीव दर्शक के रूप में कार्य करता है।
कोई भी जिसके लिए “डिस्क हमेशा जीतती है” वांछित व्यवहार है।