التدوينات الموسومة بـ ‘نصائح’

التعقيد

May 15, 2011 - الأحد 13 جمادى الثانية 1432

التعقيد البرمجي من أسوأ الأحوال التي يمكن أن يصل إليها الشخص، أحياناً كثيرة يكون التعقيد من جهة الزبون، ولكن التعقيد داخل العمل أو المشروع قاتل، بالفعل مقولة لينوس تسطر بماء الذهب، “Talk is cheap, show me the code”، من الأمثلة الشائعة التي تقتل المشاريع الريادية (startups) هو التعقيد، فلا يقبل مؤسس المشروع لإطلاقه إلا أن يكون بأبهى حلة، وبتلك الحالة لايطلقه أبداً ﻷنه لم ولن يصبح أي مشروع أو برنامج بهيئة متكاملة، يقودنا الموضوع لنقيض التعقيد وهو البساطة ولكن أحياناً كثيرة نقع بالتعقيد دون أن نعرف أو ننجرف مع التيار.

أذكر قصة قرأتها في موقع The Daily بعنوان The Complicator’s Gloves أو قفازات المُعقّد (لاحظوا التشكيل)، القصة تتحدث عن شركة يوجد فيها منتدى حواري لمبرمجي الشركة، ففي يوم من اﻷيام طرح موضوع غير برمجي من قبل شخص مُعقّد عن أنه لديه فكرة رائعة لبرودة مقود الدراجة في صبيحة اﻷيام الباردة في إنجلترا، وتدفق الكثير من الناس إلى ذلك الموضوع يطرحون أفكار حيث بدأت الأفكار بتركيب دينامو على الدراجة ثم تركيب دينامو مع بطارية وتدرجت الإبداعات اللامتناهية في التعقيد وكيف أن أحد لم يفكر بهذه الفكرة من قبل! حتى وصلت هذه الأفكار العبقرية إلى طريقة أكثر بساطة وفاعلية! تلك الفكرة البسيطة والفعالة كانت عبارة عن جاكيت مفرغ من الداخل فيه أنابيب تجري فيها المياه الدافئة من منطقة اليدين إلى المعدة وستجري المياه بفعل حركة الجسم، ويمكن إضافة الدينامو أو البطارية إليه لفعالية زائدة إلى موديل الدراجة وليس المشي.

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

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

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

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

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

مستقبل الدروبال

May 3, 2011 - الثلاثاء 01 جمادى الثانية 1432

السلام عليكم،

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

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

أيضاً سأشارك في نواة دروبال 8 في مجالي التوطين (localization) وسماحيات الوصول (Access Control)، وهما تركيزي الأكبر حالياً في مجتمع دروبال.

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

ما أريده هو بالفعل أن أرى أناس مختصين بكل مجال، لا بالكلام ولكن بالأفعال وكما قال العم لينوس (Talk is cheap, show me the code).

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

فكر جيداً قبل أن تشتري

April 25, 2011 - الاثنين 23 جمادى الأولى 1432

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

مؤخراً جهازي المسكين Vostro 1400 بدأ يتعب بشكل عام، منافذ لم تعد تعمل وبعضها يعمل بشكل متواضع، والأداء أيضاً أصبح ثقيلاً، أسبابي الرئيسية كانت عندما اشتريت هذا الجهاز هي سرعة المعالج، حجم الشاشة الصغير (13 إنش) ممايخفف وزنه، سعره المناسب، وإمكانية شراؤه من دون نسخة ويندوز (يأتي معه بهذه الحالة FreeDos).

الآن لدي منظور مختلف عندما أقوم بشراء جهاز جديد، أي جهاز سواء جهاز كهربائي، جوال، شاشة أو حاسب محمول.

سأقارن الآن بين منتجات شركة Lenovo Thinkpad وشركة Macbook (موديل Pro وموديل Air) كونهم يقدمون أفضل أداء (لاتنسى الفايو أيضاً Sony Vaio ولكن لن أذكره هنا).

لنبدأ بشاشة الجهاز المحمول، أكثر مايقال عن شاشة Mac هي دقتها الممتازة، هل تعلم ماذا تعني VGA؟ WXGA؟ و WXGA+؟ دقة الأخيرة هي الأفضل نظراً لعدد البيكسلات الموجودة فيها، مثلاً الفرق بين شاشة iPhone4 و iPhone3 واضح، الجيل الرابع يحمل دقة شاشة من حيث عدد البكسلات أكثر بأربع مرات من الجيل الثالث من هذا الهاتف. دقة الشاشة عامل حاسم بالنسبة لي عند اختيار جهاز، مثلاً ThinkPad T-Series لديه إصدار يمتلك دقة شاشة أعلى من الماك بوك برو (أعتقد يوجد خيار في الماك بوك برو 15 إنش مع دقة شاشة WXGA+ تأكد منها بنفسك، أيضاً بعض موديلات الثينك باد لديها خيار UXGA وفرقه عن WXGA أن الأخير للشاشات العريضة Wide بينما UXGA للشاشات العادية Standard) وأيضاً خيار SXGA و SXGA+.

نأتي للمعالج، الماك بوك برو على سبيل المثال الجديد يشحن مع معالج إنتل من عائلة i والأسرع هو i 7 ولكنه يشحن مع الجيل الأول من هذه العائلة بينما الثينك باد على يأتي مع الجيل الثاني من هذه العائلة (أعتقد الموديلات اﻷحدث من البرو بدأت تشحن مع الجيل الثاني)، هي نقطة مهمة ولكن تهمل في موقع الشركات المصنعة (لاتعتمد على مواقع الشركات ﻷنهم لايذكروا سوى الحسنات)، لايكفي بالمعالج سرعته وحسب ولكن يوجد سرعة النقل بين المعالج والذاكرة (الجسر الشمالي) وتعرف هذه السرعة بال FSB، الثينك باد لديه السرعة الأكبر ب 1066 ميغا هرتز بينما الماك بوك 800 ميغا هرتز، هذه السرعة مهمة نظراً للكم الهائل من المعلومات الذي ينقل بين المعالج والذاكرة، نأتي لآخر نقطة بالمعالج وهي ذاكرة المعالج (الكاش)، كاش الماك بوك برو يصل لحد 8 ميغا بينما الثينك باد يشحن مع 3 ميغا كاش، معالجات الماك بوك برو الحالية من عائلة “الجسر الرملي” (Sandy Bridge) المطورة في معامل أبحاث إنتل في حيفا، راجع تفاصيل هذه العائلة لتتعرف أكثر على التقنيات المستخدمة فيه، Macbook air مازال يشحن مع معالج من عائلة Core 2 Duo!

إذا كنت تبحث عن وزن خفيف مع أداء عالي فبالتوفيق، الوزن الخفيف = أداء متواضع مثل عائلة Macbook air من الماك وعائلة X-Series من الثينك باد، بينما عائلتي Macbook Pro و T-Series هما للأداء العالي، ولكن يبقى الوزن عامل مهم مع الأداء العالي، فغالباً من يريد أداء عالي هم المبرمجين الذين يعملون بشكل كبير على أجهزتهم وبمعظم الأوقات لايرتحلون ولايحلون إلا مع هذه الأجهزة، الماك بوك برو وزنه أثقل من الثينك باد، بينما Macbook air وزنه أقل.

البطارية تعتمد على مدى استخدامك للجهاز بدون شاحن (في الأماكن العامة والمواصلات)، يوجد لديك خيار تبديل البطارية بأخرى أكبر، كلا الجهازين يفخران باستخدام البطارية المقنن (الافتراضية تأتي مع 6 خلايا شحن يمكنك التمديد ل 9 خلايا لكن على حساب الوزن)، يوجد مشكلة في Macbook air وهي استخدامه لل USB تقريباً في كل شيء، فمثلاً استهلاك البطارية عند استخدام شبكات Ethernet عن طريق منفذ USB ستكون مميتة!

عرّجنا على سيرة الترقية، حظاً موفقاً بترقية عتاد Macbook خصوصاً مع إزالة ExpressCard من موديلات الماك بوك برو الجديدة، لايوجد مخرج فاير واير Firewire ولايوجد eSata (الساتا الخارجي).

القرص الصلب (harddisk) للثينك باد متفوق بسرعته ذات 7200 دورة بينما الماك بوك برو 5400 دورة في الثانية، سعة قرص الماك الأساسية أكبر من الثينك باد ولكن يمكنك تكبير الحجم عند التخصيص وقت الشراء. macbook air يشحن مع مساحة تخزينية من نوع الفلاش flash storage أو مايسمى ب SSD وميزته بسرعة النقل الكبيرة حيث لاتوجد الحركة الميكانيكية البطيئة، تأكد من واجهة القراءة\الكتابة هل هي Sata؟ لا أعرف نوع الواجهة controller في macbook air ولكن بشكل عام flash storage أبطىء من أقراص SSD على الرغم من أنهم يستخدمون نفس التقنية SSD. الثينك باد لاتقدم سوى HDD اﻷبطىء من SSD.

الشكل الخارجي للثينك باد سقيم (الحمد لله أني لا أهتم بالشكل!) طلاؤه عبارة عن طلاء مت بينما الشكل الخارجي للماك بوك عبارة عن unibody من الألمنيوم، للثينك باد قفص سفلي لحماية الجهاز من الأسفل ومحيط الشاشة مدّعم بألياف الكربون.

سعر الماك بوك برو أغلى بكثير من الثينك باد (البرو يتراوح بين 1200 إلى 2500 بينما الثينك باد T410 بين 1300 إلى 1700 دولار) (أيضاً يمكنك الحصول على  كوبونات حسوم للثينك باد) بينما سعر macbook air مشابه وقريب جداً للثينك باد.

سيطول الموضوع قليلاً اليوم ولكنه موضوع مهم، سأتحدث الآن عن شاشة اشتريتها موديل Samsung SyncMaster 940B، دقة الشاشة وألوانها الممتازة كانت العامل الحاسم لشرائها، أضف إلى ذلك كمية الأعطال الكلية القليلة لشركة سامسونج في مجال الشاشات مقارنة على سبيل المثال مع إل جي LG. نظام الألوان في الشاشة ممتاز وتغيير النظام يعني صور مختلفة كلياً ليس بشدة الإضاءة فحسب ولكن بدرجات الألوان الممتازة التي تناسب عدة أوضاع (قراءة، ألعاب، أفلام، مخصص) اسم التقنية هي MagicColor وهذا الموديل يأتي مع الجيل الثاني من تلك التقنية، لا يأتي مع الشاشة مكبرات صوت (لم أكن أريد ذلك)، لاتدعم الدقات العالية، ليست شاشة عريضة ولكنها مربعة Standard انتبه لذلك في حال كنت تريد شاشة عريضة حيث لكل استخدامات معينة تعتمد على البرامج التي تستخدمها. يوجد لها مخرجي صورة VGA وهي DVI ولكن انتبه في حال كنت تستخدم الأخير فاطلب من البائع أن يعطيك كبل DVI ﻷنه لايأتي مع الشاشة (أعطاني البائع كبل مجاناً، صفقة جميلة!). الشكل الخارجي عادي ويمكن تنظيفها بسهولة (لايوجد الكثير من المنحنيات في هيكلها)، زاوية الرؤية فيها ممتازة تصل تقريباً لمستوى موازي لسطح الشاشة (160 درجة)، تأتي بلون أسود وأعتقد أنه يوجد لون فضي أيضاً.

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

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

موضة CMS

February 3, 2011 - الخميس 29 صفر 1432

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

دعونا نفترض كافة الاحتمالات لهذا اﻷمر:

  • المطور يريد أن يتعلم كيف يصنع نظام إدارة محتوى خاص به كي يطور مهاراته، ممتاز ولكن لاتبقى في هذه المرحلة طويلاً أي لاتتجمد مكانك بل انتقل إلى مراحل تالية إما بنشر هذا النظام على الإنترنت لتأسيس مجتمع خاص به إن كان هذا النظام كما يدعي الكثيرين “ممتاز ومميز” أو انتقل إلى نظام إدارة محتوى وشارك معهم كي تنقل مهاراتك إلى المستوى التالي.
  • المطور يعتبر أن نظامه يحتوي على ميزات لا يحتويها أي نظام آخر، السؤال هو لماذا لاتضع هذه الميزات الخاصة والخطيرة في نظام موجود بالفعل (ووردبريس أو دروبال أو أي نظام آخر)؟ لاتقل لي بان هذه الميزات لايمكن استيرادها إلى نظام شهير فهذا عذر أقبح من ذنب. أو كما ذكرنا انشر نظامك الخاص بك على الإنترنت ولاتبقه حبيس جهازك.
  • المطور لايعرف كيف يستخدم نظام إدارة محتوى شهير بشكل كبير لذلك يستخدم نظامه الخاص كذريعة لذلك. تعلم وأسأل فالسؤال ليس نقيصة أو انشر نظامك.
  • المطور يعتبر أن كلمة “استخدم نظامي الخاص” ستعطيه سمعة أفضل من “استخدم نظام x”، لاداعي ﻷقف عند هذه النقطة ﻷنها لاتستحق.

أمثلة لأصدقاء أفتخر بهم:

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

أخيراً كل الأنظمة الشهيرة ظهرت من أناس وجدوا أن اﻷنظمة الشبيهة لاتخدمهم، فطوروا نظامهم ونشروه. لايمكن لنظام أن يعرف بدون نشره ومشاركته، ولايمكن لمطور أن “يتطور” إن بقي على حالة static void. أيضاً لاتدع الغرور يتسلل لقلبك لترى نظامك فوق باقي اﻷنظمة أو كما يعرف بالمثل الشعبي “القرد بعين أمه غزال”، كيف ستكتشف إن كان قرداً أو غزالاً؟ انشره فإن رأيت إقبالاً عليه فهو غزال أما الاحتمال الثاني فسيكون قرداً بكل تأكيد.

هل استخدم دروبال 7 أم 6؟

January 29, 2011 - السبت 25 صفر 1432

سؤال يطرحه الكثيرون علي في الآونة الأخيرة، السؤال لايمكن الإجابة عنه بجواب قطعي، أقول لهم أنها تعتمد على العديد من الأمور:

  • ماهو الوقت المرصود لمشروعك؟
  • لماذا تريد استخدام النسخة السابعة ولماذا تريد استخدام السادسة؟
  • ماهي نوعية مشروعك؟
  • ما الإضافات التي ستستخدمها في مشروعك؟
  • هل لديك المبرمج المحنك بدروبال أم مبرمج دروبال عادي؟

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

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

التعليم لماذا وكيف؟

January 17, 2011 - الاثنين 13 صفر 1432

السلام عليكم،

تنبيه: الموضوع يحتاج إلى دماغ متفتح (open mind)، فإذا كنت كذلك واصل، وإن لم تكن فعليك بتعطيل الجزء التقليدي من دماغك طوال فترة قراءة هذه التدوينة، وإن لم تستطع فأنصحك بالاستمرار بحياتك دون الالتفات إلى هذه التدوينة من أساسها.

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

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

لننظر إلى الأمر بزاوية جديدة، تبدأ في المدرسة بتعلم علوم كثيرة وهذا شيء جميل، سرعان ماتتوسع هذه المعارف والعلوم بشكل أسي لتبدأ بتعلم فلسفة اليونان، دورة حياة الدودة الشريطية، الكيمياء العضوية، لا أمزح هنا وفي هذه المجال لايوجد مكان للمزاح، سرعان مايمتلىء دماغك بآلاف المعلومات التي تحتاجها والتي لاتحتاجها، التي تحبها والتي تكرهها وتجبر على دراستها (لماذا؟) هل تتخيلون إنسان يدفع لإنسان آخر (بغض النظر عن المدارس الحكومية كونها تمول من الدولة والدولة تمول من المواطن يعني بالأخير تمول منك!!) إنسان يدفع لآخر كي يعلمه علم لايريده ويعاقبه بالرسوب إذا فشل في تعلمه؟؟

تعلم العلوم شيءرائع، بل العلم بحد ذاته رائع، ولكن لماذا اضطر إلى تعلم أشياء أكرهها ولن أستفيد منها في الوقت نفسه؟ القدماء وحتى عصر أجدادي في القرن الماضي كانوا يتبعون أسلوب الكتاتيب، حيث يذهب الطالب إلى أستاذ بعلم ما ليدرسه هذا العلم، حالياً التخمة العلمية لاتستفيد منها الدولة إلا بنسبة أقل من 5% أو 10% بأفضل التوقعات والتفاؤل الكبير. أخبروني أين ذهبت العلوم التي تعلمتموها بالمدرسة (دون النسبة السابقة)؟ اه على الأغلب ستذهب لتدريس أبناءكم نفس المناهج وهكذا دواليك!!!

لماذا نجد طلاب المدرسة يكرهون المدرسة؟ ودائماً يحبذون أيام العطل ولو حدث وجاءت عطلة لسبب غير اعتيادي تجدهم يقفزون من الفرح؟ للأسف نحن نعاني من كرهنا للمدارس وبالتي كرهنا للعلوم وهذا شيء خطير ينعكس على المجتمع بشكل مباشر وكبير. بالمناسبة هذا الشيء ينعكس على اﻷساتذة أيضاً حيث يظهر لنا جيل من الأساتذة يكرهون المدرسة، المادة التي يدرسونها والطلاب!! بالله عليكم بعد هذه المعطيات كيف لنا أن نخرج “جيل علمي” وبالعلم ترقى الأمم (العلم مقوم أساسي في قيام الدول، راجع تاريخ اﻷمم السابقة والحالية وكتاب مقدمة ابن خلدون).

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

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

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

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

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

وسيبقى السؤال دوماً لماذا؟ لماذا تعلمت، لماذا دخلت ذلك الفرع، لماذا أعمل في هذا العمل الذي لا أحبه؟ أسئلة كثيرة تنم عن فشل ذريع بالنظام التعليمي.

(اقرأ المزيد …)

متابعة لتوليفة تقانات الويب

December 17, 2010 - الجمعة 12 محرم 1432

السلام عليكم،

أستأذنت اﻷستاذ المخضرم كفاح عيسى بكتابة هذه المتابعة لمقالته أفضل توليفة لتقانات تطوير تطبيقات الويب لعام 2010، حيث رغبت بالتوسع في بعض الأمور التي ذكرت فيها وأيضاً التعليق على البعض الآخر.

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

- لغة البيزك انتهت صلاحيتها بكل بساطة، تعلمتها في الثانوية وفقط.

- لغة الباسكال (بشكل خاص التيربو باسكال) لغة تعليمية رائعة لهذا الغرض، لايوجد فيها تعقيدات البرمجة الغرضية التوجه (الشيئية)، الديلفي هي امتداد للباسكال لدعم البرمجة الغرضية والواجهات الرسومية وكان من المؤلم مشاهدتها وهي تموت ببطىء (بالمناسبة موتها جاء نتيجة سلسلة أزمات مالية حلت بشركة بورلاند وليس بسبب عيب في اللغة)، من اﻹنصاف أن نذكر أن الجافا والسي شارب استمدت العديد من الأفكار منها. بصراحة لغة لايسعني الكلام عنها بأسطر يكفي أن مبتكر التيربو باسكال (أنديرز) وأحد رؤوساء شركة بورلاند التي كانت تقف وراء الديلفي وهو الآن (Lead Architect) للغة السي شارب في مايكروسوفت، المبرمج الآخر حائز على جائزة Turing Award وهي من أكبر الجوائز في عالم البرمجة والكمبيوتر.

- السي لغة رائعة، صعبة عند التعمق بها ولم أجد الفرصة ﻷتابع بها، السي++ تضيف طبقة لابأس بها من التعقيد، أيضاً لاننسى مشكلات مترجم اللغة، فهناك المترجم الخاص بمايكروسوفت ومترجم GCC والاختلافات بينهم لينتهي الأمر باقتراح معايير قياسية لها.

- الجافا لغة ذات إمكانيات ضخمة، أظن أنها ضخامتها وتعقيدها جعل من الصعب مقارنتها مع مرونة باقي اللغات، الشيء الرئيسي الذي يبقيها واقفة على قدميها هو الدعم الكبير لها من IBM وبعض الشركات الآخرى.

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

- البايثون لغة مازالت صعبة الهضم علي حسب تعبير اﻷخ كفاح، لحد الآن لا أستسيغ فكرة المسافات بتحديد المجالات البرمجية! ربما سأمنحها فرصة ثانية في المستقبل القريب.

لايمكنني الحكم على روبي كوني استخدمتها ﻷسابيع معدودة فقط قبل التركيز بشكل كامل على البي إتش بي، لكنها لغة “شبابية”، حيث تجد معظم الأفكار الجديدة والغريبة تبرمج بها ربما لكونها حديثة وسلسة وتجتذب محبي الماك :)

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

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

بالنسبة لتتمة حديثه عن قواعد البيانات، فأفضل تجربة ماريا فهي نتاج مبرمجي MySQL الأصليين وبالتأكيد لديهم خبرة لاتقدر بثمن. سبب آخر يدعوني لاستخدامها وهو دعم الدروبال 7 لها.

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

وبيئة التطوير لدي هي المحرر الافتراضي في كوبنتو kate وأحياناً vim، ربما سأجرب Emacs يوماً ما ولم أعد أكترث للمحررات البرمجية المتقدمة IDE مثل النت بينز والإيكلبس.

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

شكراً كفاح على تحفيزك لي في مقالتك لكتابة هذه التدوينة!

Ubiquity سطر أوامر الفايرفوكس

May 26, 2009 - الثلاثاء 03 جمادى الثانية 1430

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

تنقيح الكود باستخدام PDT + Xdebug

May 3, 2009 - الأحد 10 جمادى الأولى 1430

السلام عليكم،
لعل تنقيح كود PHP من أهم الأمور التي تشغل مبرمجي هذه اللغة، فيضطر دائماً إلى استخدام تعليمات (echo, print_r, var_dump) لرؤية المتحولات وتغيراتهم. أما باستخدام منقح Xdebug فالحال يختلف كثيراً حيث يمكنك وضع نقاط التوقف (break points) ومشاهدة حالة المتحولات في هذه النقاط والمحتولات الموجودة أيضاً.
PHP PDT Xdebug
(اقرأ المزيد …)

كتاب الكود النظيف

March 2, 2009 - الاثنين 07 ربيع الأول 1430

السلام عليكم،

مشاغل الجامعة والعمل والعديد من الأمور شغلتني عن المدونة لمدة لا بأس بها، ولكن إن شاء الله سأحاول الالتزام أكثر.

قرأت كتاب Clean Code من العم بوب كما يسمي نفسه، العم بوب أو Robert C.Martin من أشهر المبرمجين على مستوى العالم ومن مؤسسي الآجايل (Agile)، لذلك كلما تجد كتاباً له فحاول أن تقرأه.

غلاف الكتاب

(اقرأ المزيد …)