التواصل مع الدعم

نردّ عبر البريد الإلكتروني، عادةً خلال يومين.

يفحص Google reCAPTCHA هذا الإرسال للحماية من إساءة الاستخدام؛ وتُرسَل بيانات إلى Google. لا يُحمَّل السكربت إلا عند فتح هذا النموذج.

→ كل المقالات

تهريب زائد للمحارف في ثمانية مخططات

لفترة من الزمن، عرضت ثمانية مقالات في هذه المدونة المحارف السبعة — في منتصف جملة، داخل المخططات. لا شرطة. بل النص الحرفي. وقد أُصلح ذلك منذئذ في كل اللغات.

81 صفًا، و91 ظهورًا. وفي نص المقالات الثمانية نفسها: لا شيء على الإطلاق.

صفوف المخططات التي طبعت الكيان بدلًا من الشرطة إحدى عشرة لغة العدّ دون ملفات تعريف الارتباط middot, mdash تصدير البيانات بصيغة CSV أو JSON mdash العداد عبر مدير الوسوم mdash عداد على صفحة HTTPS mdash عداد في ملف شخصي على chomikuj mdash عنوان URL طويل أوقع العداد mdash لماذا لا تخضع قائمة الاستثناء للتجزئة mdash ذاكرة التخزين المؤقت التي تعيش في الذاكرة mdash 81 صفًا في 8 مقالات، و91 ظهورًا — ولا شيء على الإطلاق في النص فحص العرض رآها أعرض من اللازم، لا خاطئة أبدًا

تهريب واحد زائد

المخططات من نوع SVG مضمّن، مكتوبة في متن المقال. والتسمية التي تحتاج إلى شرطة تحمل —، فيحوّلها المتصفح إلى شرطة، تمامًا كما يفعل في الفقرة.

لكن ما خُزّن كان —. فحوّل المتصفح ذلك بأمانة إلى المحارف الخمسة التي تكتب كيانًا ورسمها. ولم يتأثر النص لأنه لم يمرّ قط بما أضاف التهريب الزائد؛ وحدها التسميات مرّت به، وفقط في المقالات التي بُنيت تسمياتها في ذلك الوقت.

السبب صغير وممل. أما الجزء الجدير بالتدوين فهو لماذا بقي ظاهرًا للعيان كل تلك المدة، وما الذي أنهاه.

الفحص رآه وقال شيئًا آخر

هناك فحص يقيس ما إذا كانت تسمية المخطط تتسع في صورتها. وظل يبلّغ عن هذه التسميات أيامًا — على أنها أعرض من اللازم.

وقد كانت كذلك. فالتسمية التي ترسم سبعة محارف بدلًا من واحد أعرض من المقصود بنحو خمسة وأربعين بكسلًا، فالقياس كان صحيحًا والبلاغ كان صحيحًا. أما الاستنتاج الذي سيستخلصه قارئ البلاغ فلم يكن صحيحًا. قال الرقم إن المساحة ضيقة. والحقيقة أن النص لم يكن ما بدا عليه.

هذا هو جوهر الأمر. الفحص يجيب عن السؤال الذي طُرح عليه، ولا يستطيع أن يبلّغ أن السؤال كان خاطئًا. لم يُقَس شيء خطأً هنا؛ كل ما في الأمر أن القياس كان عن مشكلة غير التي بدا أنه عنها.

ما الذي كشفه

عرض مخطط واحد والنظر إليه. Headless Chromium، ولقطة شاشة واحدة، وعشر ثوانٍ. كان الكيان في السطر الثالث من الصورة بحروف بحجم كل ما عداه.

كان الإصلاح عملية ترحيل تستبدل &amp; بـ & لأسماء كيانات من قائمة ثابتة، وداخل كتل <svg class="dg"> فقط، حتى تبقى علامة العطف المقصودة علامةَ عطف. وكل ما خرج عن تلك القائمة أُبلغ عنه وتُرك على حاله بدلًا من التخمين. صُحّحت الصفوف الـ 81 كلها في كل اللغات؛ والمواضع الوحيدة المتبقية في المدونة هي تلك المقتبسة في هذا المقال عن قصد.

ما يمكن تعميمه

كل فحص آلي في هذا المشروع يقيس شيئًا رقميًا، لأن الأرقام هي ما يستطيع البرنامج مقارنته. ولا يستطيع أي منها أن يرى أن صورة صارت بلا معنى، أو أن مربعًا ما فارغ، أو أن كلمة مكتوبة بحروفها حيث يجب أن يكون رمز.

لذا فالقاعدة التي خرجت من ذلك قصيرة: بعد أي تغيير في مخطط، اعرض واحدًا وانظر إليه، باللغة التي تحتاج إلى أكبر مساحة. وقد كشفت حتى الآن أمرين لم يكن أي قياس ليكشفهما — هذا الأمر، ومربعًا فارغًا بقي بعد نقل تعليق منه.

إعلان