تيارات فكرية

“تيارات فكرية” هو عنوان دورة علمية أقيمت الأسبوع الماضي في مكة المكرمة، لم أتمكن من حضورها لكن محتوياتها مسجلة على موقع Liveislam (الجزء الأول، الثاني، الثالث، الرابع، الخامس) حضرها بعض الأصدقاء و أثنو عليها كثيراً.

البرمجة بالكائنات … نصف خطوة للأمام

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

سواءً أكنت تعلم ماذا نعني بكلمة Class أو لاتعلم، فإن أهم ما يجب أن تعرفه الآن أن لكل Class وظيفة محددة،فكما أن لكل Function في البرمجة التقليدية وظيفة أساسية واحدة، فدالة fopen تقوم بفتح ملف، ودالة print تطبع نص، فإن الأمر مشابه بالنسبة Classes فلكل منها وظيفتها الخاصة، و سيتبين من خلال الأمثلة و المواضيع القادمة كيف تختلف وظائف Functions عن وظائف الكائنات.

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

إذاً أول نصف خطوة تنص على أن لكل كائن وظيفة واضحة محددة …

أتوقف الآن و بالنسبة لمن تأكلهم أصابع يدهم و يريدون كتابة أكواد برمجية سنبدأ في ذلك في النصف خطوة القادمة ^_^ ..

البرمجة بالكائنات …

“قديماً كان المبرمج يفكر في البرنامج على انه مجموعة من الدوال Routines أما في القرن الواحد و العشرين فقد أصبح يفكر فيه على أساس أنه مجموعة من الكائنات”

قالها Steve McConnel في كتاب Code Complete

أضحكتني يا سيد Steve، بالرغم من احترامي لكتابك الرائع Code Complete إلا أني أختلف معك كثيراً في الجملة السابقة التي ذكرتها (هذا من باب التسلق على أكتاف العظماء و إلا من أنا حتى أرد على كاتب تقني عظيم مثل هذا) ،فإني أرى مِن حولي أن بين كل 10 مبرمجين هنالك 12 مبرمج يجدون فكرة البرمجة بالكائنات غامضة إلى حد ما… كيف لا و قد امتلأت كتب البرمجة بأمثلة تشرح هذا الموضوع بطريقة عجيبة و غريبة !! فعندما تقرأ في أحد الكتب مثالاً يوضح فكرة الكائنات فيذكر بأن “الإنسان” يعتبر Class و أن “أحمد و محمد و علي و عباس و شعبان عبد الرحيم” عبارة عن Objects فكيف تريدنا بالتحديد أن نربط هذه المعلومة بالتطبيقات التي نبرمجها يومياً ! ..

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

لذلك سأحاول أن أكتب مجموعة تدوينات توضح مفهوم البرمجة بالكائنات، و قد تجولت قليلاً بين المواقع العربية لأقرأ ما كُتب في هذا الموضوع حتى لا أكرر ما ذكره من سبقوني و بنفس الأسلوب، فخرجت بفكرة أظنها و الله أعلم ستساعد على إيصال مفهوم البرمجة بالكائنات بدون تعقيد …

حان و قت النوم .. اكمل لاحقاً بإذن الله .. ^_^

DZONE ..

على غرار موقع digg يأتي موقع DZONE ليقدم خدمة نشر الروابط و ترشيحها من قبل الزوار، لكن يتميز عن الأول بأن الروابط المنشورة تتعلق بالمواضيع البرمجية فقط، وهذا تعريف الموقع كما ورد فيه :

dzone.com (DZ) is a link-sharing community where member participation determines what gets published and what does not. Members submit links to developer-related content into a queue, and you vote to indicate whether or not you like those links…..

تصفحته على عجالة ، و يظهر أنه يستحق المتابعة ..

الحلقة الثانية .. “عين على الشحمة و عين على اللحمة”

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

موضوع في الصميم !!! و أبشركم أن النتيجة ثلاثة صفر لصالح سوق العمل ^_^ …

عين على الشحمة و عين على اللحمة !!

أردت أن أرتب أولوياتي و أحدد الأمور التي يجب أن أركز عليها خلال هذا الصيف، فواجهت أمراً طالما حاولت أن أتجنبه، لكن لا مفر منه هذه المره، فالظاهر أن الإختيار أصبح اجبارياً !!

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

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

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

اللهم أرني الحق حقاً و ارزقني اتباعه ^_^ …

هكذا كنا ..

هذا المقطع النصي قرأته منذ فترة طويلة جداً، لكنه لا يزال عالق برأسي، فقد كانت المرة الأولى التي أقرأ فيها شيء يدل على عزتنا ، وهو منقول عن كاتب مسيحي أسباني عاش في القرن التاسع الميلادي يسمى “Alvaro” حيث يقول بألم :

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

* المصدر : مذاهب فكرية معاصرة ، محمد قطب .

الآن جرب أن تقرأ النص السابق مره أخرى مع تبديل كلمات مثل “المسيحين” بـ “المسلمين” و “العرب” بـ “الغرب” .. لتعرف أين كنا و أين أصبحنا!

على الهامش : الله اكبر .. هكذا كنا فمتى نعود … رسالة

مرحباً يا روحي ..

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

و تحت هذا الكم من الضغوط، مالت نفسي إلى الراحة و اللعب و النفور من كل ما له علاقة بالدراسة أو العمل ..

لكن و بعد أن تأكدت من تسليم المسودة الأخيرة من مشروع التخرج، بدأت تعود إلي نفسي التي ألفتها و أحس أخيراً بشوق للعمل و بهدوء و سكينة كنت قد فقدتها قبل أكثر من ثلاثة أشهر …

فمرحباً يا روحي من جديد … و حشتيني ! .. فينك من زمان ^_^ !

أو بشكل آخر … سأعود للكتابة قريباً بإذن الله ^_^

فرصة للإستفادة من الصيف مع Google

SoC 2006 – Summer of Code 2006 هي فرصة عظيمة تقدمها شركة Google لطلبة علوم الحاسب ( و و الأقسام الأخرى المتعلقة بهذا المجال ) للمرة الثانية، حيث يتمكن الطالب من الإشتراك في تطوير بعض البرمجيات مفتوحة المصدر و الحصول على مبلغ مالي مقابل عمله.

المزيد من المعلومات على هذا الرابط :
http://code.google.com/soc/studentfaq.html

لا تفوتوا الفرصة …

الرسم ثلاثي الأبعاد مجاناً من Google

أعلنت Google عن نسخه مجانية من برنامج الرسم ثلاثي الأبعاد SketchUp حجمها20 MB تقريباً ; إسم البرنامج يذكرني ببرنامج آخر بنفس الإسم يستخدمه بعض الأصدقاء في العمل و لست أعلم أهو هو ! أم تشابه أسماء فقط .

رواسب التفكير القديم ستؤخرنا .. التغريد خارج السرب

” إن الحياة مليئة بل و تزخر بالجديد، و لكن من الضروري التخلص من القديم كي تفسح المجال للجديد “

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

وليست الأمثلة عنا ببعيدة، فما حدث مع مبرمجي Visual Basic و ASP مع صدور Dot Net يظهر لنا كيف أنخفضت قيمة المبرمجين السابقين و الذين لم يتأقلموا مع الوضع الجديد حتى أن أعمالهم باءت مهددة بالخطر، كذلك الحال من قبل مع Perl و COBOL و غيرهم، من لا يتأقلم سرعان ما يبدأ التغريد خارج السرب حتى يخفت صوته مع الزمن فلا تكاد تسمع له صوتاً !، ابحثوا حولكم ستجدون الكثير من هؤلاء المغردين.

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

Ruby On Rails .. لهذا أحببتها و لهذا تركتها ..

ماهي Ruby و ماهي Rails ؟
Ruby هي لغة برمجة تشبه إلى حد كبير لغة Python، يقول “يوكيهيرو” المطور الرئيسي للّغة :

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

أما Rails فهو إطار عمل-Framework مكتوب باستخدام لغة Ruby لتسهيل عملية إنشاء تطبيقات الويب ، و عندما يذكر الإسم Ruby On Rails أو RoR فالمقصود به إطار العمل و ليس لغة البرمجة.
(معلومات و رابط متعلقة بـ Ruby و RoR في موضوع “سويعات مع روبي”)

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

من أبرز المميزات لإطار العمل أيضاً اعتماده على نمط يسمى Active Record، هذا النمط يسهل عملية التفاعل مع قاعدة البيانات، فإذا أفترضنا أن لديك جدول يسمى articles يحتوي على ثلاثة حقول id,title,description فبإمكانك أن تضيف سجل جديد لهذا الجدول بالشكل التالي :

article = Article.new
article.title = "Article Title"
article.description = "Description"
article.save

لهذا أحببتها و لهذا تركتها ..
هذه الميزتان (الميزتين؟) و غيرهما كانتا سبباً في إعجابي بإطار العمل ، و في فترة من الفترات بدلت إسمي على الماسنجر ليصبح : I Love Ruby ^_^، لم يدم هذا الإعجاب طويلاً ، فكلما تعمقت في معرفة التفاصيل، بدأت أكتشف أنه مجرد إطار عمل!!، تنبهت لاحقاً أن الـ scaffold طبقت بالفعل في إطارات عمل للغة PHP مثل Symfony و Cake الذي يستخدم نمط ActiveRecord أيضاً .

أستطيع أن أفهم الآن السبب وراء حماسة الكثير من المبرمجين لـ Ruby on Rails، إنه الإنطباع الأولي الذي تتركه اللغة عند استخدامها لأول مره -بالأخص ميزة الـ scaffold، أما غير ذلك فأكاد أجزم بأنها مجرد إطار عمل، و ليست Cake و Symfony ببعيده عنها.

أعداد مجلة Before & After الخاصة بالتصميم

48 عدد يصدر عن مجلة Before & After كل عام، وهي مجلة لطيفة جداً تهتم بالتصميم و تقدم نصائح قيمة، في العادة لا تتجاوز صفحات العدد الواحد العشرين صفحة – و غالباً أقل من ذلك بكثير.
المواضيع التي تناقشها المجلة مفيدة للجميع، حتى غير المصممين، على سبيل المثال في الشهر السابق وجدتهم يقدمون في عشرة صفحات فقط نصائح لتصميم شرائح العرض، و هذه الصفحات العشر في الحقيقة تغلب عليها الصور التوضيحيه أكثر بكثير من النصوص و الشرح.
على أية حال وجدت لكم موقع يحتوي على أغلب أعداد المجلة، و يمكن معرفة مواضيع الأعداد من خلال الملف BA-TOC الموجود في نفس الموقع أيضاً.

مداعبة لبعض المشاعر

“الحب أبو العواطف الإنسانية و أبو التاريخ البشري : الدين في جوهره حب الله، و القومية حب الوطن، و الفلسفة حب الحقيقة، و السياسه حب السلطة، و العلم حب الإكتشاف”

“… هذا الحب العظيم كيف ينتهي بهذه البساطة ؟ دون أن يشعر به أحد ، دون أن يحس به العالم ؟ لو كان العاشق إنساناً عادياً لما أمكنه أن يغير من الوضع شيئاً، ولكن العاشق شاعر، و الشاعر باستطاعته أن يقيم الدنيا و يقعدها ..”

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

من كتاب قصائد أعجبتني للدكتور غازي القصيبي، في تعليقه على قصيدة الأطلال لإبراهيم ناجي.

لماذا تفشل المشاريع البرمجية ؟ (كتاب الكتروني)

Book Coverمضت فترة طويلة منذ أن نشرت آخر كتاب الكتروني في هذه المدونة، وقد قرأت منذ ذلك الوقت مجموعة من الكتب المتفاوته في جودتها بين الجيد جداً و السيء جداً – من جهة نظري- ، و الآن سأبدأ في وضع هذه الكتب لكم مع تعليقات سريعة عليها – و تجدون روابط التحميل في نهاية الموضوع- .

أبدأ بكتاب قرأته قبل أيام بعنوان : Software Project Secrets و قد حصل على خمسه نجمات من قبل اثنين من القراء في Amazon.
الكتاب مقسم إلى جزئين ، الأول يتحدث عن أسباب فشل المشاريع البرمجية ، و الثاني يشرح طريقة تلافي هذه المشاكل عن طريق أسلوب يسمى الـ Agile.
أما تقيمي له، فهو يستحق نجمتين من ثلاثه، وهذه النجمتين للجزء الثاني بالأخص، اما الجزء الأول فأكثره عبارة عن “دش كلام”، علماً أن عدد صفحات الكتاب تقريباً 170 صفحة.

الخلاصة : إذا لم تقرأ في هذا الموضوع من قبل، قد يكون هذا الكتاب مدخل جيد و بسيط بالنسبة لك، أما إذا كنت قد قرأت عن الـ Agile أو عن الموضوع هذا بشكل عام فأنصحك بتجنب الكتاب، فلن تجد فيه أي شيء جديد.

يمكن تحميل الكتاب عن طريق Rapidshare أو من سيرفري مباشرة.