Posted by: خالد محمد خالد | نوفمبر 27, 2010

روعة البرمجة

في دراستي الثانوية في مصر الحبيبة كان لي زميلان هما أولاد عم أو أولاد خالة، لا أتذكر. ولكني أذكر هذه الحادثة حينما اعتمد أحدهما وكان اسمه ميسرة على ابن عمه محروس في أحد امتحانات اللغة العربية. ويبدو أن ميسرة المسكين لم يكن قد حضّر للإمتحان بالمرة ووطّن نفسه لنقل الإجابات من ابن عمه محروس. وفي حصة العربية اللاحقة جاء المدرس يسأل في أول الحصة بعد تصليح الأمتحان: “هو فيه كم محروس في الفصل ده؟”. ويبدو أن ميسرة قد غش الإمتحان كله ونقل من ضمن ما نقل أسم ابن خالته محروس المنوفي إلى دفتره أيضاً.

ويبدو أن النقل الأعمى متفشي في مجال التصميم الطباعي العربي أيضاً. وقد يبدو ذلك واضحاً في تصميم بعض الفونتات العربية الحديثة إلا أنني سأذكر مثالاً متطرفاً في التقليد الأعمى. فمصممو الحروف اللاتينية يجربون تصاميمهم في عبارة: “قفز الثعلب البني السريع فوق الكلب الكسول – The quick brown fox jumped over the lazy dog” باعتبار أن هذه الجملة تحتوي على كل الحروف اللاتينية وبالتالي تكون ملائمة لعرض او اختبار التصميم بها. الغريب أنّي وجدت أحدى المتصدرات لتصميم الحروف العربية الحديثة لعرض نماذج من الخطوط العربية باستخدام العبارة إياها دون الإهتمام بأصل الفكرة من حيث تمثيل العبارة لمجموعة مناسبة من الحروف لتوضيح التصميم.

أداة المصمم الكسول

وقد الهمتني مقالة قرأتها قبل فترة عن لقاء مع حسن أبو عفش صاحب موقع هبة حينما سُئل حسن عن العبارة المفضلة لديه لاختبار توازن واتساق الحروف التي يصممها حيث ذكر أنه يستخدم العبارة التي اقترحها له المتخصص الطباعي جون هدسن (John Hudson): “نص حكيم له سر قاطع وذو شأن عظيم مكتوب على ثوب أخضر ومغلف بجلد أزرق”. فحينما عددت حروفها وجدت الكثير من الأشكال الحروفية المهمة ناقصة في هذه العبارة ومنها: الجيم-حاء-خاء النهائية أو المنفصلة، السين-شين النهائية أو المنفصلة، الصاد-ضاد النهائية أو المنفصلة، الكاف النهائية أو المنفصلة، اللام النهائية أو المنفصلة، الهاء الأولية والوسطية والمنفصلة، والياء النهائية أو المنفصلة.

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

وخطر لي أن أستخدم برمجة VBA في برنامج أكسل Excel لسببين، أولاهما أن منصة البرمجة هذه تدعم التعامل مع النصوص العربية بسهولة والسبب الثاني هو توفر نص عربي موسّع وهو نص القرآن الكريم بشكل ملف xls التابع لبرنامج Excel. وقد قمت سابقاً بعمل تطبيق أحصائي لاستخراج جذور كلمات القرآن باستخدام هذه المنصة وهذا سبب أضافي لاختياري أياها. ويمكن تحميل ملف الفرآن الكريم بهيئة xlsm من هذه الوصلة.

وباستخدام لغة VBA قمت بكتابة بعض الوظائف التي من شأنها أن تبحث في النص عن كلمات تحتوي على تشكيلات حروفية محددة. وقد اخترت منصة VBA في برنامج أكسل (Excel) لتطوير هذه الأداة لعدة أسباب منها قدرة هذة المنصة البرمجية على التعامل مع النصوص العربية بسهولة، ومعرفتي المقبولة بمنصة البرمجة هذه إضافة الى ما ذكرته من توفر النص. وحيث أن برمجة فيزوال بيسك شائعة لدى شباب اليوم فقد رأيت أن أقدم مثالاً عما يمكن عمله من خلال البرمجة في مجال الأعمال المتخصصة، وذلك مباشرة من أصحاب الأختصاص أنفسهم دون الحاجة الى المبرمجين المتخصصين.

وفي الملف المضغوط الذي يمكن تحميله من هذه الوصلة ستجد ملف xlsm الذي يحوي على النص في صفحة أكسل مع الشفرة البرمجية بالإضافة الى ملف التعليمات بصيغة MSWord. وملف التعليمات يحتوي على أرشادات التنصيب والتشغيل لذا يجدر الأطلاع عليه قبل البدء بتشغيل ملف الأكسل، وذلك لأن احتواء ملف الأكسل على شيفرة برمجية يتطلب أجراءات معينة حددتها شركة مايكروسوفت لتأمين الحواسيب من البرامج الضارة والمشبوهة.

وفي حالة نجاح تشغيل الأداة الموفرة سترى أنه بالإمكان العثور على الكلمات التي تحتوي على تشكيلات حروفية معينة. وفائدة ذلك يكون بتوفير كلمات لتكوين جملة أو عبارة معينة تستطيع اختبار حروفك التي تصممها عليها. ومن بين تشكيلات الحروف المهمة التي يجدر ملاحظتها في التصميم هي:

  • الراء مع الياء أو الباء الوسطية: لاحتمال ملامسة ذيل الراء النازل لنقاط الحروف أسفل خط السطر
  • الراء مع الراء أو الواو: لاحتمال تلامس أجزاء الحروف النازلة تحت خط السطر
  • التاء مع الثاء: بأي ترتيب كان لملاحظة وضوح النقاط وعدم تراكمها
  • الياء النهائية مع أكثر الحروف المتصلة قبلها: لملاحظة عدم ظهور مسافة زائدة بين الحروف وبين الياء النهائية
  • السين بين الكرسيين: للتأكد من وضوحها وسهولة تمييزها
  • الهاء والعين في كل المواضع (أولي، وسطي، نهائي، منفصل): لتغير هذين الحرفين في كل موضع

ومع أن توازن الحروف من أهم الأهداف التي يبغي المصمم الجيد تحقيقها إلا أن الرسالة الرئيسة في هذه التدوينة هي في فائدة معرفة شئ من برمجة الحاسوب لعمل الأدوات المساعدة للتصميم. ولعلي أستطيع تلخيص خبرتي في هذا المجال بالنقاط التالية:

  1. من المفيد تعلم لغة البرمجة المضمنة مع التطبيقات الرئيسة التي تستخدمها مثلاً لغة Python التي هي لغة برمجة عامة مضمنة مع برنامج فونتلاب تتيح للمستخدمي البرنامج عمل التطبيقات المتخصصة. وأغلب البرامج الكبيرة من أمثال برامج أدوبي وكوريل توفران منصات لتطوير التطبيقات بواسطة لغات برمجة مختلفة.
  2. إن إعداد تطبيقات موسعة تتضمن واجهة استخدام يعتبر عمل معقد. لذا يجدر التركيز على عمل أدوات برمجية بسيطة في البداية باستخدام منصة التطوير المضمنة في التطبيقات الرئيسة التي تستخدمها وفي حالة نجاحها التوسع في جعلها سهلة الاستخدام من قبل الآخرين عبر واجهة الأستخدام.
  3. هناك لغات عديدة ومن الأفضل التركيز على اللغات الأكثر شيوعاً لتوفر الموارد المعرفية عنها. ومن اللغات الشائعة: VB.net و JavaScript و Python و VBA.
  4. قم بدراسة أسس البرمجة المهمة. وهذا استثمار سيفيد على المدى البعيد حيث سيمكنك إعداد برامج يمكن أستخدامها مراراً وفي استخدامات متنوعة بعد التعديلات البسيطة. وهذا يتطلب معرفة بعض الأساليب التي من شأنها أن تجعل الشيفرة البرمجية قابلة للإستخدام المتنوع.
  5.  حاول أن توازن بين ما تحب أن تحتفظ به لنفسك على أمل الترويج التجاري وما بين ما تنشره الى الأخرين. تذكر بأن المجال المعرفي في تطبيقات اللغة العربية قليل ولا بأس من المشاركة في زيادة المعرفة في هذا المجال من خلال نشر أعمالك وأبداعاتك.

وختاماً أود أن أعرض خبرتي المتواضعة لحل المشاكل البرمجية التي قد تواجهونها لذا أرجو أن لا تترددوا بطلب المساعدة عبر هذه المدونة. وختاماً تمنياتي لكم بكل التوفيق في مشاريعكم البرمجية.


Responses

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

    • كنت أخشى أن تسألني عن الجملة إن كنت توصلت أليها أم لا، أخي أحمد (لذا تهربت من الرد كل هذه الفترة وأرجو المسامحة فالتأخر في الرد ليس من غالب عادتي). فبعد انهماكي بالبرنامج نفسه ومحاولة إنجازه في وقت معقول لم يبق لدي وقت للإختبار. ولذا فهي معروضة للشباب للتجربة والتحقيق والعثور على الجملة المناسبة.

      وقد يصعب العثور على جملة واحدة. ذلك لأن على المصمم الطباعي أن يتأكد من شكل كل حرف في كافة مواضعه. وسأحاول في مدونات لاحقة إن شاء الله استخدام طريقة أكثر موضوعية لاختبار تصميم الحروف العربية ودون الاستعانة بالثعالب والكلاب ومع قليل من البرمجة.


أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

تصنيفات

%d مدونون معجبون بهذه: