सहायता से संपर्क करें

हम ईमेल से जवाब देते हैं, आम तौर पर दो दिन के अंदर।

Google reCAPTCHA दुरुपयोग से बचाव के लिए इस सबमिशन की जाँच करता है; इसके लिए डेटा Google को भेजा जाता है। स्क्रिप्ट तभी लोड होती है, जब यह फ़ॉर्म खोला जाता है।

← सभी पोस्ट

आठ डायग्रामों में एक फ़ालतू एस्केप

कुछ समय तक इस ब्लॉग की आठ पोस्ट के डायग्रामों में, वाक्य के बीच में, ये सात कैरेक्टर दिखते थे: — – डैश नहीं, बल्कि हूबहू यही टेक्स्ट। तब से इसे हर भाषा में ठीक कर दिया गया है।

81 पंक्तियाँ, 91 बार। उन्हीं आठ पोस्ट के सामान्य टेक्स्ट में: एक बार भी नहीं।

डायग्राम की वे पंक्तियाँ, जिन्होंने डैश की जगह एंटिटी छापी ग्यारह भाषाएँ कुकी के बिना गिनती middot, mdash डेटा को CSV या JSON के रूप में एक्सपोर्ट करना mdash Tag Manager के ज़रिए काउंटर mdash HTTPS पेज पर काउंटर mdash chomikuj प्रोफ़ाइल में काउंटर mdash एक लंबे URL ने काउंटर ठप कर दिया mdash बाहर रखने की सूची हैश क्यों नहीं की जाती mdash मेमोरी में रहने वाला कैश mdash 8 पोस्ट में 81 पंक्तियाँ, 91 बार — और सामान्य टेक्स्ट में एक बार भी नहीं चौड़ाई की जाँच ने उन्हें बहुत चौड़ा माना, कभी गलत नहीं

एक एस्केप ज़्यादा

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

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

कारण छोटा और नीरस है। लिखने लायक बात यह है कि यह इतने समय तक सबकी आँखों के सामने क्यों पड़ा रहा, और किस चीज़ ने इसे खत्म किया।

जाँच ने इसे देखा और कुछ और कहा

एक जाँच है, जो मापती है कि डायग्राम का लेबल अपनी तस्वीर में समाता है या नहीं। वह कई दिनों से इन लेबलों के बारे में बता रही थी — कि वे बहुत चौड़े हैं।

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

मामले की शक्ल यही है। जाँच उसी सवाल का जवाब देती है, जो उसे दिया गया है, और वह यह नहीं बता सकती कि सवाल ही गलत था। यहाँ कुछ भी गलत नहीं मापा गया; माप बस उस समस्या के बारे में नहीं था, जैसी वह दिखती थी, बल्कि किसी और समस्या के बारे में था।

इसे किसने पकड़ा

एक डायग्राम रेंडर करके उसे देखना। हेडलेस Chromium, एक स्क्रीनशॉट, दस सेकंड। एंटिटी तस्वीर की तीसरी लाइन में थी, बाकी सब जितने ही बड़े अक्षरों में।

सुधार एक माइग्रेशन था, जिसने एंटिटी नामों की एक तय सूची के लिए &amp; को & से बदला, और सिर्फ़ <svg class="dg"> ब्लॉक के अंदर, ताकि जो एम्परसेंड एम्परसेंड के रूप में ही लिखा गया था, वह वैसा ही रहे। इस सूची से बाहर की हर चीज़ के बारे में अंदाज़ा लगाने के बजाय उसकी रिपोर्ट की गई और उसे वैसे ही छोड़ दिया गया। सभी 81 पंक्तियाँ हर भाषा में ठीक कर दी गईं; ब्लॉग में अब सिर्फ़ वही उदाहरण बचे हैं, जो इस पोस्ट में जान-बूझकर उद्धृत किए गए हैं।

आम सबक

इस प्रोजेक्ट की हर स्वचालित जाँच कुछ न कुछ संख्या के रूप में मापती है, क्योंकि प्रोग्राम संख्याओं की ही तुलना कर सकता है। इनमें से कोई भी यह नहीं देख सकती कि कोई तस्वीर बेतुकी हो गई है, कि कोई बॉक्स खाली है, या कि जहाँ चिह्न होना चाहिए, वहाँ कोई शब्द अक्षर-अक्षर लिखा है।

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

विज्ञापन