‏إظهار الرسائل ذات التسميات يوميات. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات يوميات. إظهار كافة الرسائل

الاثنين، 12 يناير 2015

عن فترة انقطاعي الأخيرة

السلام عليكم و رحمة الله

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

الاثنين، 11 نوفمبر 2013

تخصيص صفحتين لمدونة "أفكار علمية" علي فيسبوك و تويتر

كخطوة جديدة للفصل بين مدونتَيْ "أفكار" و "أفكار علمية" قمتُ اليوم بإنشاء صفحة خاصة بالمدونة العلمية علي الـfacebook:



و كذلك صفحة خاصة بها علي twitter:


و هكذا لا يتبقي للفصل النهائي بين المدونتين إلا إنشاء صفحة خاصة بكل واحدة منهن علي +google، و هو ما سأفعله في أقرب فرصة ممكنة بمشيئة الله تعالي.

و الفصل بين المدونتين كان (و لا يزال) أمراً هاماً للغاية بالنسبة لي؛ حتي لا أُجبِر أحداً علي قراءة مقالاتي الفكرية إن كان يختلف معي في الدين أو المذهب أو المنهج و يريد متابعة مقالاتي العلمية فقط، و بالتالي يجد القدرة علي متابعة المقالات العلمية علي المدونة الخاصة بها بدون تصديع رأسه بالبقية التي يختلف معي فيها. أو تكون له القدرة علي متابعة مقالاتي الفكرية دون المقالات العلمية إن لم يكن يرغب في متابعة تلك الأخيرة؛ لعدم ميله إلي مجال تخصصي أو لأي سببٍ آخر.

الأربعاء، 27 فبراير 2013

مُلخَّص ندوة "البرمجيات الحرة: توضيحٌ، تأريخٌ، أمثلة"

البارحة كنتُ في هندسة أسوان و ألقيتُ المحاضرة التي كانت تحت عنوان "البرمجيات الحرة: توضيحٌ، تأريخٌ، أمثلة". و رغم أن عدد الحضور كان للأسف قليلاً جداً (من عشرة إلي خمسة عشر) إلا أنني أُفضِّل العدد القليل المُنتبِه المُتفاعِل علي العدد الكبير الذي لا يسره شيءٌ قدر الانتهاء من الملل الذي يُسببه لهم المُحاضِر.

حاولتُ في العرض الذي قدمتُه أن أبتعد عن التفاصيل التقنية، لكني فشلتُ في ذلك إلي حدٍ كبير؛ بسبب أن الحديث عن البرمجيات الحرة يفرض علينا الحديث عن كثيرٍ من التفاصيل حتي نتمكن من إيضاح غموض أهم النقاط.
و ها هو ذا العرض البسيط الذي استعنتُ به يومها لتحميله إذا رغبتم في هذا (مع تعديلاتٍ طفيفةٍ جداً):
  

أهم ما أنصح به "فرع الـIEEE للطلاب في أسوان" هو ألا يستسلموا لليأس مطلقاً، و أن يحاولوا قدر الاستطاعة؛ فالصبر كفيلٌ بإيصالهم إلي مبتغاهم بإذن الله تعالي. صحيحٌ أن الجو المحيط سيءٌ للغاية من حيث عدم الإقبال من جانب الطلبة، و كذلك عدم التعاون الكافي من المسؤولين، إلا أن القاعدة التي تُرِيح دائماً في مثل تلك المواقف تقول "عليك بالعمل و ليس عليك النتائج".
و أرجو الله عز و جل أن يوفقهم و من هو مثلهم.

السبت، 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

السبت، 22 ديسمبر 2012

عن تعصب unix haters و لهجة كتابهم الساخرة

عقَّب أحد الفضلاء علي مقالي "(وَيْلَكُم) و (دليل كارهي اليُنِكْس)" الذي نشرتُه علي موقع (وادي التقنية) بقوله (بتصرُّفٍ يسير):

مجموعة unix haters مُتحيزون و مُتعصبون جداً ضد يُنِكْس، و عندهم كرهٌ أعمى لكل ما يتعلق به مثل لِينُكْس. و لا يُمكِن أن يكونوا مبرراً لأي أحدٍ ليتعصب في كتابه أو مقالاته أو يقتدي بهم في أسلوب سخريتهم و تهجمهم، إلا إذا أعلن ذلك صراحةً مثلهم و كان هدفه السخرية و التواصي بتنفير الناس.

و كان ردي عليه:

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

أما كونهم متحيزين و متعصبين فأمرٌ فيه نظر؛ فما قرأتُه في الكتاب يؤكد لي أنهم يتحدثون من منطلقاتٍ عمليةٍ واضحة، فكيف يكون في هذا تعصب ؟!
لو كنتَ تدري عنهم ما لا نعلمه فأرجو التوضيح.

الخميس، 20 ديسمبر 2012

(ويْلَكُم) و (دليل كارهي اليُنِكْس) !

واحدٌ من أجمل الكتب العلمية التي قرأتُها هو كتاب (unix haters handbook)، و ترجمة عنوانه الحرفية هي (كتاب يد كارهي اليُنِكْس) و لكني أُفضِّل ترجمته كـ(دليل كارهي اليُنِكْس).

هذا الكتاب عبارة عن شروحاتٍ لعيوبِ و نقائصِ نظام التشغيل المُسمَّي (يُنِكْس unix) اعتماداً علي ما حكاه مَن واجهوا مشاكل أثناء استخدامهم له، و كان الإعتماد التام في معرفة تلك المشاكل علي مجموعةٍ ضخمةٍ من الرسائل البريدية التي أُرسِلَتْ إلي المجموعة البريدية (unix haters) أو (كارهي يُنِكْس)، 

الحكاية و ما فيها أن هناك نظام تشغيلٍ غاية في الشهرة يُسمَّي بالـ(يُنِكْس unix) انتشر منذ فترة السبعينات من القرن العشرين بشكلٍ كبيرٍ جداً، بالطبع كان للنظام محبوه و كارهوه، أما محبوه فقد التحقوا بالدورات التي تُعلِّم كيفية التعامل معه و/أو البرمجة له، أما كارهوه فقد أنشأ بعضهم المجموعة البريدية سالفة الذِكر لشرح المشاكل التي قابلوها في تعاملهم معه و جعلتهم يكرهونه كالطاعون.
و بعد سنواتٍ من السباب العلمي الأنيق و غير الأنيق أصبح بالإمكان جمع أهم رسائل تلك المجموعة البريدية في كتابٍ واحدٍ بحيث تتسق مع بعضها البعض و تُكوِّن كتاباً شاملاً جامعاً، و قد فعلها (Simson Garfinkel) و (Daniel Weise) و (Steven Strassmann) مع آخرين و أصبح بين أيدينا كتاب (دليل كارهي اليُنِكْس).

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

يقع كتاب (دليل كارهي اليُنِكْس) في  أربعة أجزاء يتكون كلٌ منها من عددٍ من الفصول، و تلخيص الفهرست كما يلي:


* Foreword
    By Donald A. Norman
* Preface
    Things Are Going to Get a Lot Worse Before Things Get Worse
* Who We Are
* The UNIX-HATERS History
* Contributors and Acknowledgments
* Typographical Conventions
* The UNIX-HATERS Disclaimer
* Anti-Foreword
    By Dennis Ritchie
* Part 1: User Friendly ?
    - 1: Unix
    The World’s First Computer Virus

    - 2: Welcome, New User!
    Like Russian Roulette with Six Bullets Loaded

    - 3: Documentation?
    What Documentation?

    - 4: Mail
    Don’t Talk to Me, I’m Not a Typewriter!

    - 5: Snoozenet
    I Post, Therefore I Am

    - 6: Terminal Insanity
    Curses! Foiled Again!

    - 7: The X-Windows Disaster
    How to Make a 50-MIPS Workstation Run Like a 4.77MHz IBM PC
   
* Part 2: Programmer’s System?
    - 8: csh, pipes, and find
    Power Tools for Power Fools

    - 9: Programming
    Hold Still, This Won’t Hurt a Bit
   
    - 10: C++
    The COBOL of the 90s

* Part 3: Sysadmin’s Nightmare
    - 11: System Administration
    Unix’s Hidden Cost
   
    - 12: Security
    Oh, I’m Sorry, Sir, Go Ahead, I Didn’t Realize You Were Root
   
    - 13: The File System
    Sure It Corrupts Your Files, But Look How Fast It Is!
   
    - 14: NFS
    Nightmare File System

* Part 4: Et Cetera
    -A: Epilogue
    Enlightenment Through Unix
   
    - B: Creators Admit C, Unix Were Hoax
    FOR IMMEDIATE RELEASE
   
    - C: The Rise of Worse Is Better
    By Richard P. Gabriel
   
    - D: Bibliography
    Just When You Thought You Were Out of the Woods
   
    - Index


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

و قد أوحي هذا الكتاب لي بفكرةٍ أجدها جميلةً و تستحق العمل عليها عند من يجد وقتاً كافياً لها، الفكرة هي: جمع كل المشاكل التي تقابلنا أثناء العمل علي مختلف أنظمة التشغيل و تنظيمها و وضعها في كتابٍ خاصٍ بها، و أقترح تسمية الكتاب (ويْلَكم) و هو تحريفٌ لنطق كلمة (وِيلْكَم welcome) التي تكون عادةً الشاشةَ الافتتاحية لأنظمة التشغيل المختلفة (أو علي الأقل لنظام الـwindows الذي أظن أنه سيكون له نصيب الأسد من الكتاب المُقترَح)، و هو التحريف ذو المعني الواضح :)
أُكرِّر أن ذلك الكتاب لن يكون خاصاً بنظام تشغيلٍ واحد، بل سيكون مشتملاً علي كل المشاكل التي نواجهها علي مختلف أنظمة التشغيل، و هكذا يحكي مستخدموا اليُنِكْس و مستخدموا القنو/لينُكْس GNU/linux و مستخدموا الـwindows و غيرهن من الأنظمة عمَّا أَقََضَّ مضاجعهم في تلك الأنظمة. و يتم ترتيب الشكاوي علي أبوابٍ يختص كل واحدٍ منها بجانبٍ مُعيَّنٍ من تلك المشاكل كما في (دليل كارهي اليُنِكْس).

أجدها فكرةً حلوة: و لكن هل من مُتفرِّغٍ لها ؟

الخميس، 1 نوفمبر 2012

مصابيحٌ ودودة

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

الاثنين، 29 أكتوبر 2012

ثلاثة أعوامٍ بدون قاريء أسطوانات !

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

هل تظنون أن مثل هذه التقنيات القديمة لها مكانٌ في عالم اليوم حيث يوجد ما هو أفضل و أرخص و أكثر تطوراً منها ؟

السبت، 15 سبتمبر 2012

الـcaptcha من أفضل طرق التعذيب النازي

من اعتقاداتي الراسخة: أن الـcaptcha تُعتبر واحدةً من أفضل طرق التعذيب النازي التي يُمكنك تخيلها، لذا فإذا لم تكن تُريدُني أن أُعلق علي منشورات مُدونتك فيمكنك عزيزي الكاتب أن تستخدم الـcaptcha بمُنتهي الثقة و الاطمئنان، فحتي في الأحيان التي أقوم فيها بكتابة تعليقٍ ما علي منشورٍ لأحدهم و أُفاجأ بالـcaptcha أمامي: أقومُ بمنتهي البساطة بإغلاق صفحة التعليق تماماً !

الأربعاء، 29 أغسطس 2012

المقدمة المُختصرة للبرمجة الكائنية oop كملف pdf

قمتُ بفضل الله تعالي بتحويل مقال المقدمة المُختصرة للبرمجة الكائنية oop إلي ملف pdf و رفعتُه علي حسابي علي موقع 4shared لإتاحة تحميله و تداوله و قراءته لمن يرغب في ذلك.

يمكنكم تحميل الملف من هــــنــــا.

الاثنين، 6 أغسطس 2012

مدونةٌ خاصةٌ لمشروع موسوعة الالسن

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

الاثنين، 30 يوليو 2012

موسوعة الألسن: ساعدني أو افعلها بنفسك.

موسوعة الألسن: ساعدني أو افعلها بنفسك.


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

و أتمني علي الله تعالي أن يخرج هذا العمل للنور ففي ذلك الفائدة لي و لغيري.

الجمعة، 20 يوليو 2012

البرمجة في رمضان

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

الخميس، 19 يوليو 2012

the art of debugging

the art of debugging

انتهيت من فترةٍ من اكتشاف أكثر من غلطةٍ bug كُنَّ يُأرِّقنني لعدة أيام، و كالعادة اكتشفتُ أنهن أشياءٌ تافهةٌ جداً في الكود ليس إلا !؛ حيث علي سبيل المثال في إحداهن كتبتُ:

بينما كان من المفترض أن أكتب :

و يظهر هنا أن الخطأ كان نتيجة  عدم انتباهٍ بسيط: فقد كتبتُ في الجملة التكرارية الداخلية index بدلاً من inner_index في السطر الأخير، و لكنه أدي فيما بعد إلي ضياع أيامٍ من التعب و التفكير المحبَط و أحياناً اليأس!
الحقيقة أن الأمر تحول لمنحيً خطيرٍ للغاية؛ فالخوارزم الذي أبتكره في يومين ثم أكتب كوده في ساعةٍ أقضي ثلاث أو أربع أيامٍ في تنقيحه !
صحيحٌ أن الخوارزمات غايةٌ في التعقيد و أنني قليل الخبرة إلي حدٍ كبير: إلا أن كل هذا الجهد الضائع بسبب عدم تمكني من المهارات اللازمة لعملية التنقيح يجعلني أتوقف أمام هذه الأمور بجديةٍ واضحة.

هذا يؤكد مع التجارب السابقة أن مهارة التنقيح مهارةٌ هامةٌ جداً يجب تنميتها بالتجارب العملية و الدراسة لما كتبه المبرمجون المخضرمون.
و سأقوم بإذن الله عز و جل بالبحث عن بعض ما كتبه الهاكرز الكبار في هذه المسألة. 

حالياً قمتُ بتحميل ورقةٍ عمليةٍ تُسمي (the art of debugging) علي أن أُطالعها في أقرب وقتٍ ممكن، و ربما أقوم بترجمتها كذلك إذا ما أعجبتني و كان هناك متسعٌ من الوقت لفعل ذلك بإذن الله تعالي.

السبت، 14 يوليو 2012

قبل البدء في عملية التنقيح

قبل البدء في عملية التنقيح

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


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

السبت، 30 يونيو 2012

الـjvm تتصرف بغرابة !

الـjvm تتصرف بغرابة !

في مشروعي الذي أعمل عليه هذه الأيام أستخدم لغة الـjava للعديد من الأسباب التي تجعلها الأفضل بلا منازع في الوقت الحالي.
لكن الغريب أنني لاحظتُ منذ فترةٍ أن آلة الـjava الوهمية JVM تتصرف بشكلٍ غريبٍ في بعض الأحيان !؛ حيث أنه من الممكن عند اختباري لعمل البرنامج في مرةٍ من المرات يعمل بشكلٍ طبعيٍ جداً بدون أي مشاكل، و حينما أقوم بعدها بتجربته مرةً أخري يظهر استثناء exception في المكتبات الخاصة بمكتبة الـjava القياسية !
و هذه صورةٌ لإحدي تلك المرات:

و قد تكرر هذا الأمر بشكلٍ غير صغيرٍ في الأيام الماضية. و عن نفسي لا أظن أنها مشكلةٌ في المكتبة القياسية، بل أظن أنها ناجمةٌ عن مشاكل في نظام التشغيل عندي و إن كنتُ لا أدري كيف هذا !
و عامةً هو أمرٌ غريبٌ شاذٌ يستحق البحث عن أسبابه فيما بعد بإذن الله تعالي.

الثلاثاء، 26 يونيو 2012

انقطاع التيار الكهربائي كوسيلةٍ للتنقيح

انقطاع التيار الكهربائي كوسيلةٍ للتنقيح

كل يومٍ يتأكد لي بتجاربٍ عمليةٍ أن الابتعاد عن الكود و دقائقه و تفصيلاته يعتبر من أهم طرق التنقيح debugging؛ ففي المرة الأولي كنتُ قد ذكرتُ أنني جربت النوم كطريقة تنقيحٍ لا تخيب :) و ها أنذا اليوم أذكر انقطاع التيار الكهربائي كوسيلةٍ أخري.

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


الأحد، 17 يونيو 2012

تعلم فن التنقيح debugging

تعلم فن التنقيح debugging
منذ البارحة و أنا مشغولٌ بغلطةٍ bug في غاية التخفي (رغم توقعي المسبق بأن سببها بسيطٌ للغاية)، و لم أعثر عليها إلا بعد محاولاتٍ جاهدةٍ متعبة.
بعد التجارب العملية المرهقة (التي مررت بها في تنقيح كود التطبيق الأول في مشروع البرمجة بإبداع) أجد أنه من اللازم جداً بالنسبة لي أن أُفرِّغ جزءاً من وقتي و مجهودي في الفترة القادمة بإذن الله تعالي لدراسة ما كتبه المبرمجون المخضرمون عن فن التنقيح و مهاراته المختلفة.



السبت، 16 يونيو 2012

اكتب برامجك الخاصة

 اكتب برامجك الخاصة


كنتُ في بدية الأمر أحب أن أكون عالم رياضياتٍ أو فلك ! و لكني ما إن ولجت عالم الحوسبة و أحسست بجماله حتي أصابتني حمي الحوسبة :)
صرت في أكلي و شربي و نومي حاسوبياً، و صرت أنظر للحاسوب علي أنه لعبةٌ جميلةٌ يمكنني أن أجعلها تسليني بآلاف الطرق، و أن تساعدني في القيام بالأعمال المرهقة الطويلة المملة التي أحتاج للقيام بها. و هي ذات النظرة التي ينظرها لينوس تورفالدز إليه، و أظن أنها نظرة كل هاكرٍ hacker حقيقي.


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

فوائد ذلك:
  • الإحساس بمتعة البرمجة و أنها جزءٌ من الاستمتاع الشخصي لا العمل فقط.
  • زيادة المهارة بكثرة الممارسة.
  • الإحاطة بمجالاتٍ لم يتم التطرق إليها في العمل.
  • ربما: اختبار لغات برمجةٍ جديدة.
  • نشر تلك البرمجيات و مناقشتها مع الآخرين يرفع مستوي المبرمج و سقف طموحه و رؤيته.
  • ربما: تتحول البرامج الشخصية البسيطة إلي مشاريعٍ ضخمةٍ فيما بعد، بكل ما يحمل هذا من معاني.
من أمثة البرامج التي صنعتُها لنفسي ما يلي:
  • برنامج الفهرست:
    و هو برنامجٌ صغيرٌ يجعل قائمة (إرسال إلي send to) في الويندوز شبيهةٌ بتلك الخاصة بواجهة الـKDE. و كذا يمدد قائمة (المفضلة favourite) لتشمل الأماكن التي يريدها المستخدم و تفرعاتها كذلك إن أراد.
  • برنامج لتغيير أرقام الهاتف:
    حيث في الفترة الأخيرة في مصر تم زيادة أرقام الهواتف المحمولة لتصبح 11 رقماً بدلاً من 10 أرقام، و لأن الأرقام عندي كثيرةٌ جداً علي هاتفي و لن يمكنني تغييرها يدوياً بسهولة: فقد كتبت برنامجاً بسيطاً لتغيير الأرقام حسب القواعد المعلنة لذلك. لكني بكل أسف اكتشفت أنه لا يمكنني استعمال ذلك البرنامج لأنني لا أعلم كيف يمكنني الوصول إلي الموارد الداخلية للهواتف المحمولة ! و لا يمكنني أن أقتطع وقتاً أكبر مما تم اقتطاعه بالفعل للبرنامج بسبب انشغالي الشديد بمشروعي الأضخم (البرمجة بإبداع).
  • برنامج محاكي الماتلاب:
    و قد كان في بداية الأمر جزءاً من الدراسة ليس إلا، ثم فيما بعد استولي عليَّ الحماس لتطويره أكثر و أكثر بحيث صار الأمر شخصياً تماماً، بل إن هذا البرنامج هو ما جعلني أحسم القرار بخصوص مستقبلي و المجال الذي أريد التخصص فيه.
  • التطبيق الأول في مشروع (البرمجة بإبداع)، و الذي يحتوي علي ما يزيد علي الخمسٍ و عشرين ألف سطرٍ حتي الآن (بلغة الجافا)، و هو أهم و أجمل و أعقد ما عملت فيه علي الإطلاق حتي الآن (أسأل الله تعالي أن ينفع به).

الأحد، 10 يونيو 2012

بنك أفكار خاص

بنك أفكارٍ خاص


في الأيام الماضية واتتني فكرةٌ جميلةٌ أري أنها تستحق الاهتمام بها، و ربما تستحق نشرها بين الناس ليتبنوها بدورهم. الفكرة هي: أن ينشر كل واحدٍ منا الأفكار و المشاريع التي يراها مفيدةً في مجاله في مُدونته بشكلٍ مُتاحٍ للجميع، بحيث يكون لهم الحقوق التالية:
  • تعديل الفكرة بما يناسبهم.
  • تنفيذها بمعزلٍ عن صاحبها الأصلي حتي و إن لم يُعدلوا فيها مطلقاً.
  • نشرها بين الآخرين و الدعوة لتحقيق النقطتين السابقتين.
هذه الفكرة مفيدةٌ جداً في الأحيان التي يكون لدي الواحد منا فيها فكرةٌ يراها جيدة و لكن وقته لا يكفي لتحقيقها، أو أنه ليس من أهل التخصص فيها بما يكفي لتنفيذها، لذا فبدلاً من أن تضيع هذه الفكرة و يعدم الناس نفعها: يُمكن أن يضعها صاحب المدونة في قسمٍ خاصٍ في مُدونته ليستفيد منها الآخرون كيفما يعن لهم.

هل يُعتبر هذا تطبيقاً عملياً لمبدأ المُدارسة ؟ 
أم هو مجرد تشاركٍ للمعرفة ؟
عملياً هو يُعتبر منتمياً للنوعين السابقين؛ فهو مشاركةٌ للأفكار و المعرفة الشخصية مع الناس عن طريق تبادل الآراء التطويرية في المجال الذي نتخصص فيه، و كذلك فمن الممكن أن تدور بين صاحب الفكرة و من يضطلع عليها مناقشاتٌ حول الفكرة يستفيد منها كلاهما فيتحول الأمر إلي مدارسةٍ علميةٍ غايةٍ في الإفادة.
و بالتطبيق علي مجال البرمجيات فمن الواضح جداً أنه (أي بنك الأفكار الشخصي) خطوةٌ تزيد علي منهج البرمجيات المفتوحة المصدر؛ ففي معظم البرمجيات المفتوحة المصدر (إن لم تكن كلها) يتم التشارك في مشاريع موجودة فعلاً، أي أن أصحابها لم يُعلنوا عنها إلا بعد البدء في تنفيذها بالفعل، أما بنك الأفكار الخاص فمعظم زاده سيكون من الأفكار الخام التي لم تتشكل بعد.

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