ألإمتداد البرمجي لتطبيقات الحواسيب

لأبدأ بشرح العنوان أولاً. صدقوني.. أنا لا أتفلسف باختيار عناوين رنانة. فأنا حينما أدون أحب أن يفهم الناس ما أقول. المشكلة هنا الآن هي أنني أصف شيئاً غير مألوف. فقليل ما هم من ابتلي ببلوتي من الولع ببرمجة الحاسوب. وبرامج الحاسوب الأكثر تداولاً اليوم، كبرنامج وورد MS Word يوفر إمكانية عمل أدوات برمجية صغيرة عبر البرمجة بلغة فيزوال بيسك للتطبيقات، أو ما يسمى VBA. وهذا ما أسميه “إمتداد”، ترجمة لكلمة “Extension” المستخدمة في هذا السياق. والفكرة هنا توفير أداة قوية لمستخدمي هذه البرامج لتكييفها بما يناسب إحتياجات المستخدمين المتخصصة.

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

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

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

نمط كوفي قديم بقلم مصمم حديث

من أول التحديات التي واجهتها في هذا المشروع هو الحصول على النص القرآني حيث لم يكن النص القرآني متوفراً حينها بملفات قابلة للمعالجة كملفات برنامج وورد MS Word. وكان من الصعب تكليف واحداً أو أكثر من الطابعيين لتنضيد النص لما في ذلك من إحتمال الخطأ والحاجة الى المراجعة المتخصصة للنص بعد تنضيده. كان أملنا الوحيد هو برنامج سلسبيل للقرآن الكريم وهو من أوائل برامج القرآن الكريم التي شاع استخدامه على حاسبات الـ PC. إلا أن النص كان مغلقاً داخل البرنامج حيث لم يوفر وسيلة للحصول على نص مفتوح إلاّ أنه كان يرسل النص الى الطابعة. فخطر لي أن أعترض تيار الطباعة وأحوله الى ملف نصي مخزون على قرص الحاسبة. وبعد محاولات وتجارب بسيطة أستعطعت الحصول على الترميز لكامل النص وقمت بتحويله الى إحدى أنماط ترميز النص العربي الشائعة على نظم تشغيل MS DOS. وبهذا تسنى لي أمكانية التعامل مع النص في برامج النشر أو قراءة النص عبر الأدوات البرمجية المتخصصة التي أعدها.

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

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

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