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

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

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


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

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

الأحد، 29 يوليو، 2012

برنامجٌ لضبط الهاتف تلقائياً في أوقات الصلوات

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

الفكرة هي:
كتابة برنامجٍ ليعمل على النوكيا والأجهزة الذكية بحيث يقوم بتشغيل نغمة انتظار call tone (مع منع الرنين مؤقتا أو تحويله لاهتزاز) بحيث يسمعها المتصل إن كان اتصاله وقت الصلاة؛ فلا يحتاج أصحاب الهواتف أن يتذكروا إغلاقها كل مرةٍ كانوا في المسجد وقت تأدية الصلاة، و يكفيهم مؤنة و حرج الاضطرار لإخراج المحمول من الجيب لإغلاقه و هم في حالة ركوعٍ أو سجود، ناهيك عن مسألة المتصلين الذين لا يفهمون سبب إغلاق الإنسان لهاتفه فيستمرون في الاتصال مرةً تلو الأخرى، والرجل المسكين صاحب الهاتف يجاهد لإخراسه !

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

مثال للرسالة الصوتية التي سيسمعها المتصل عندما يكون البرنامج في حالة عمل (أي وقت صلاة)
صاحب الهاتف الذي طلبته يصلي، من فضلِك أعد الاتصال به بعد دقائق“.

اقتراح لاسم البرنامج: ”مغلق للصلاة“.

اقتراح لتصميم اللوجو: حرفا اللام في كلمة (للصلاة) على هيئة مئذنتين.
فائدة إضافية: التطبيق مجاني، لكن مع شاشة دعائية في مكان مناسب تقول: "هذا البرنامج المجاني برعاية شركة كذا للبرمجيات" مع إظهار شعار الشركة ورابط صفحتها.

-------------------
بريد صاحب الفكرة الإلكتروني هو: SalamaCast@yahoo.com

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

هندسة برمجيات المصادر الحرة

هندسة برمجيات المصادر الحرة
من الواضح جداً أن معظم (إن لم يكن كل) اهتمام هندسة البرمجيات التي يتم تدريسها و التركيز عليها في الكتب في العالم العربي ينصب علي البرمجيات المملوكة مغلقة المصدرclosed source، و يبدو هذا واضحاً جداً في نماذج التطوير develpoment models و تنظيم فرق العمل و كيفية إدارتها و حتي الأدوات التي يتم شرحها علي عجالة، و كذا في حساب التكلفة و العائد المادي و الالتزام بالخطط الزمنية المحددة.
و علي الرغم من انتشار التفكير و المشاركة في مشاريع مفتوحة المصدر بين المبرمجين العرب إلا أن هندسة البرمجيات التي تتناسب مع هذا النوع من المشاريع البرمجية لا يوجد لها أثرٌ فيما أعلم في المؤلَّفات و المترجَمات !

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

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

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

الأحد، 22 يوليو، 2012

برنامج إدارةٍ لحسابات مواقع التخزين السحابي

بنك الأفكار الخاص:
برنامج إدارةٍ لحسابات مواقع التخزين السحابي

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

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

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


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

الثلاثاء، 10 يوليو، 2012

كيفية تحصيل العلوم البرمجية للمبتدئين ؟

كيفية تحصيل العلوم البرمجية للمبتدئين ؟
 

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


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

و أؤكد علي ضرورة أن تكتب برامجاً خاصةً لنفسك لتقتنع بأن البرمجة "متعة" و ليست مجرد "مهنة".

الثلاثاء، 3 يوليو، 2012

ترجمة Why Pascal is Not My Favorite Programming Language

ترجمة الورقة العلمية
Why Pascal is Not My Favorite Programming Language


هناك ورقةٌ علميةٌ تُسمي Why Pascal is Not My Favorite Programming Language كتبها  البروفيسور الشهير (Brian Kernighan)، و تحتوي علي مجموعةٍ من الانتقادات المنطقية لتصميم لغة الـpascal بما يجعل المؤلف لا يستخدمها كلغةٍ أولي للبرمجة.

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

و هناك مجموعةٌ أخري من الأوراق العلمية و المقالات و التدوينات المشابهة أنقل منها ما يلي: 
  • Why Python is not my favorite language 

    و لو كان بالإمكان ترجمتها جميعاً لكان في هذا استفادةٌ قصوي.  

     

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


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

نصائحٌ لهواة التقنية

نصائحٌ لهواة التقنية

 

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



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

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

عن نفسي دائماً ما أحاول الالتزام قدر الاستطاعة بتلك القواعد السابقة، و لاحظتُ أنني كلما التزمت بها أكثر و أكثر كلما كنتُ أكثر قدرةً علي التقدم و التحصيل العلمي.