السبت، 19 يناير، 2013

برنامج (الحاسب) 0.1

في الأيام الماضية بعدما انتهيتُ من العمل علي بناء الإصدارة 0.1 من بيئة أندلس، و حينما حاولتُ رفعها علي الشبكة و نشر خبر الانتهاء من الإصدارة حتي يتمكن الناس من تحميلها: وجدتُ أن الشبكة لا تعمل لأنني نسيت شحن الـ "usb modem" قبل انتهاء الشحن الشهري !
أصابني ضيقٌ شديدٌ لأنني كنتُ أريد أن أنتهي من الإعلان عن أول إصدارةٍ لأندلس و من كل ما يخصها قبل مطلع شمس اليوم الجديد، و بما أن الوقت ساعتها كان متأخراً (بعد منتصف الليل) فلم أجد حلاً سريعاً للأزمة، و لم يكن بمقدوري إلا الانتظار حتي الصباح للشحن ثم إتمام العمل. و بما أن أذان الفجر كان قد اقترب موعده قررتُ أن أظل مستيقظاً لأصلي الفجر ثم أنام بعدها.

تسليتُ قليلاً بمشاهدة بعض الفيديوهات للينوس تورفالدز و غيره، لا يزال لينوس تورفالدز قادراً علي إدهاشي بقوةٍ بسبب كمية الثقة بالنفس التي عنده، و تلك السهولة التي يتحدث بها عن إنشاء البرمجيات الضخمة بمفرده (أو علي الأقل بناء المرحلة الأولي منها)، و كان الفيديو الذي شاهدتُ جزءاً منه خاصاً بالمحاضرة التي ألقاها لينوس ضمن محاضرات google tech talk لعام 2007م، و قد سمعتُها بالكامل عدة مراتٍ من قبل !
ثم فجأةً خطرت ببالي فكرةٌ جيدة: لِمَ لا أكتب ذلك البرنامج الذي كنتُ أحتاجه منذ فترةٍ طويلةٍ و بحثتُ عن شبيهٍ له فلم أجد ؟!

الحكاية أنني كنتُ (و لا أزال) أحتاج إلي برنامجٍ يقوم بحساب عدد الأسطر البرمجية التي توجد في أكواد مشاريعي المختلفة المكتوبة بلغة الـjava؛ حتي أعلم إلي أي حدٍ وصلت الضخامة النصية لكل مشروع، و بالطبع
فإن مُفسِّر أُبْدِع علي رأس تلك المشاريع. و حينما بحثتُ عن هذه الخاصية في بيئة الـnetbeans لم أجدها، و حينما بحثتُ علي الشبكة عن برنامجٍ منفصلٍ يقوم بتلك المهمة لم أجد بُغيتي.
ساعتها قررتُ أن أكتب البرنامج بنفسي؛ للاستفادة منه كما سبق القول، و كذلك لاكتساب خبراتٍ جديدة (هدفي المقدس أبداً و دائماً).

شَمَّرتُ عن ساعِدَي الجِد ثم بدأتُ التخطيط و البناء، و لدهشتي اكتشفتُ أن كثيراً من الأكواد التي كنتُ احتاجها لبناء البرنامج كانت موجودةً لديَّ بالفعل في مشروع أندلس ! و من ثم وجدتُ النواة الأولي للبرنامج الجديد تتكون بسرعةٍ أمامي، و لفرحتي عمل البرنامج كما كنتُ أريد منه قبل صلاة الفجر :)
هنا يظهر الإثبات العملي علي أن المبرمجين طماعون أكثر من الطمع نفسه؛ فقد سال لعابي لزيادة إمكانيات البرنامج، كما طمعتُ أيضاً في وضعه داخل بيئة أندلس و زيادة قوتها من خلال ضمه إليها. لذا شمَّرتُ مرةً أخري عن ساعِدَي الجِد (أظن أنني مزَّقتُ أكمام قميص الكسل تماماً :) ) و بدأتُ مشوار زيادة الإمكانيات، و في نهاية اليوم انتهيتُ من وضع الإمكانيات التي أريدها في البرنامج. و نظراً لأن عمله يتعلق بإجراء حسابٍ لعددٍ من الأمور التي تتعلق بالمشاريع البرمجية أسميتُه الحاسِب.

في الختام أصبحت إمكانات البرنامج كما يلي:
- حساب العدد الكلي لأسطر الأكواد في المشاريع البرمجية،
- حساب العدد الكلي للملفات النصية داخل المشروع،
- إمكانية تخصيص عملية الحساب بأنواعٍ معينةٍ من الملفات (للتركيز علي ملفات لغة برمجةٍ معينة) عن طريق استخدام الامتدادات الخاصة بها،
- حساب عدد الملفات الخاص بكل امتدادٍ بمفرده و عدد الأسطر التي تخصه من عدد الأسطر الكلي.

و قد جربتُ البرنامج علي الكثير من المشاريع البرمجية، سواءٌ تلك التي كتبتُها أنا أو التي توافر لديَّ كودها المصدري، و منها الكود الخاص بمكتبة الـOpenCV في الإصدارة 2.0 منها، و بالطبع اهتممتُ بإجراء تحليلٍ لمشروع مُفسِّر أُبْدِع كما في الصورة:
و بعد أن انتهيتُ من بناء البرنامج كتطبيقٍ منفصلٍ قمتُ بحمد الله تعالي بدمجه داخل بيئة أندلس في الإصدارة 0.2 التي أعمل عليها هذه الأيام.

و قد كان هذا بعد عناءٍ شديد :)

يمكن لمن يرغب في استخدام البرنامج تحميله من هنا:
علي الـ4shared
علي الـsourceforge



و هناك كتيبٌ لتعليم كيفية تنصيبه و استخدامه، يمكن تحميله من هنا:
علي الـ4shared
علي الـsourceforge


كما أن البرنامج مفتوح المصدر open source لمن يرغب في استعمال أكواده أو البناء عليه، و يمكن تحميل كوده من هنا:
علي الـ4shared
علي الـsourceforge

هناك تعليقان (2):

  1. مجهود طيب الله يوفقك.
    نتمني قريبا ان شاء الله ان نري البرنامج فى مستودعات ابينتو كــ Gui-Ccount
    تقبل مروري

    ردحذف
    الردود
    1. اللهم آمين، و وفقك الله تعالي لما يحب و يرضي.

      حذف

تابع الجديد علي البريد الإلكتروني.