كتاب رائع أنصح بقراءته – مطبوع و الكتروني و مسموع

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

كتاب “رجال حول الرسول” للكاتب خالد محمد خالد أول طبعه له كانت في سنة 1994م و بين يدي طبعه منقحة من دار الجيل أصدرت سنة 2001م لونت فيها العبارات المميزة بلون أحمر يزيد من جمال الكتاب .

الكتاب يتحدث عن قصة ستين شخصية من أصحاب رسول الله ، رويت  سيرة كل شخصية في بضع صفحات متوسط عددها 10 صفحات، و سيرة كل شخصية منفصلة عن الأخرى فيمكنك اختيار من شئت منهم و قراءة سيرته بدون ترتيب .

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

Zend PHP Collaboration Project

اليوم أعلنت Zend عن مبادرة لمشروع تعاوني بينها و بين مجموعة من الشركات للإرتقاء بلغة PHP إلى مستوى جديد يناسب مستوى متطلبات مشاريع قطاع الأعمال ، و بحسب ما ذكر في موقع Zend سيكون التركيز في بداية المشروع على بناء إطار عمل framework و بيئة تطوير Development Environment قياسية و ستكون بيئة التطوير هذه معتمدة على Eclipse ، ومن أبرز الشركات التي انضمت للمبادرة حتى الآن شركتي MySQL و IBM و Marco Tab النشره لمجلة PHP|Arch .

لو تأملنا في المشروع لرأينا أنه سيعني تحول جذري في مسار اللغة ، فهذا النوع من التعاون و هذا النوع من المشاريع سيعطي للغة نوع من المصداقية فدعم شركة بقوة IBM سيشكل بالتأكيد فرق في نظرة المجتمع للغة .

المزيد من المعلومات على الروابط التالية :

الإنقطاع المتكرر عن الكتابة

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

لذلك فهذا عذر أقدمه لكل من راسلني و سأل عن تكملة سلاسل الدروس التي بدأنها، فامّا بالنسبة لسلة دروس Ajax كنت قد أنهيت ما يقارب الخمسة دروس و سأحاول أن أحملها إذا يسر الله، و أمّا ما يخص سلسلة “ثقافة تقنية 101” فبالنظر إلى التعليقات التي و صلتني على الموضوع وجدت أن الأولى صرف الاهتمام بشيء عملي أكثر و يفيد شريحة أكبر (بالرغم من أني لازلت مقتنعاً أن المواضيع التي كنت سأناقشها بغاية الأهمية لأي شخص مختص بالحاسب الآلي) و من أجمل التعليقات التي وصلتني شخص يطالب بالكتابة عن “Design Patterns” و آخر يسأل عن “Genetic Algorithms” ، لا أخفيكم سراً أني تفاجئت من هذا النوع من الطلبات، فلم يخطر ببالي أن يكون زوار موقعي من الفئة المهتمة بهذه الامور، لا استخفافاً بهم إنما جهلاً مني ، هذا النوع من التعليقات جعلني أعيد التفكير بشكل كامل فيما يجب ان اكتب حوله احتراماً لنفسي و لعقول قرائي فلا أنا أريد أن أضيع وقتي بكتبة مالا يحتاجه أحد ولا أريد أن أضيع اوقات قرائي بقراءة مالا ينفعهم لا في دينهم ولا دنياهم ، و إنه لأرحم لي ان أترك الموقع خالياً تتراكم عليه ذرات الغبار بدلاً من كتابة مالا يفيد ولا يسمن من جوع فتتساقط علي أنواع اللعنات!.

“لازم تسوي كذه” و “المفروض يكون كذه” و ” لابد تعمل كذه”

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

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

قبل أكثر من سنة و نصف نشرت موضوع على مدونتي القديمة بعنوان “لطفك يا رب ! XHTML و 145 خطأ !!” تحدثت فيه عن محاولة لإخضاع التصميم القديم للمقاييس و اكتشافي لـ 145 خطأً في حين كان الملف يحتوي 144 سطر ، أي ما يقارب الخطأ لكل سطر ، أنا اعلم أن إصلاح هذه الأخطاء بغاية السهولة و إنما هي مسألة “وقت” ، لكني لست مستعداً للتنازل عن هذا الوقت لأجل هذا الأمر الذي لم يعدوا كونه ترفاً تقنياً ، ففي ذلك الوقت لم أكن أتوقع أن يزور موقعي شخص يستخدم غير الـ Internet Explorer ، فلماذا هذا الإهدار للوقت و الجهد .

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

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

التعامل مع الاحداث في جافا سكربت ( صوت و صورة )

في سبيل شرح طريقة تطوير برمجيات حقيقة بأستخدام أسلوب الـ Ajax كان لا بد من البدء بدروس تمهيدية تشرح أهم التقنيات المستخدمة في هذا النوع من البرمجيات ، لذلك فضلت البدء بشرح أساسيات مهمة حول الـ Javascript ، ومن باب التغير جعلت الدرس على هيئة ScreenCast ، بإمكانك تحميل الملف على جهازك أو مشاهدته مباشرة :

(حجم الملف : 1 MB تقريباً ، مدته : 5 دقائق و 15 ثانية ، صيغة الملف : WMV)

افتتاح خدمة “صانع البنرات العربي” – BannerAt

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

ش
و يمكن الدخول على الخدمة مباشرة عن طريق العنوان التالي :
http://bannerAt.4dev.info

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

بين ” شفرة دافنشي” و “الخيميائي”

نصحتني الأخت
JavaGirl
قبل ثلاثة أشهر بقراءة قصة
Da
Vinci Code
( صدرت مترجمة عن
الدار العربية للعلوم
بإسم "شيفرة دافنشي") للكاتب
Dan
Brown
، ولا أخفيكم أني قبل قراءتها كنت متردداً و متخوفاً من إضاعة وقتي
بشيء لا يفيد فقد كانت هذه هي تجربتي الأولى مع القصص .

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

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

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

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

بريد الكتروني مؤقت لطرد المزعجين

خدمة خطيرة تسمح لك بالحصول على بريد الكتروني بدون التسجيل 🙂 مفيدة عند التسجيل في المنتديات أو إذا كنت تحب تجرب خدمة لأحد الشركات و خايف إن أيميلك ينتشر و تبدأ رسائل الـ SPAM بإزعاجك ..
 
طريقة استخدام الخدمة بغاية البساطة :

  • اختر أي عنوان تريده ضمن النطاق mailinator.com مثلاً :
    mmm@mailinator.com
    elksdG@mailinator.com
    sdf3355546@mailinator.com
    أو أي اسم آخر اختر ما تشاء ! ..
     
  • بمجرد إرسال أي رسالة للإيميل الذي اخترت اسمه سوف يتم فتح حساب جديد لك مباشرة ، بمعنى انك تستطيع استخدام الإيميل الذي اخترعته قبل قليل عندما تريد التسجيل في منتدى أو في أي خدمة على الإنترنت .
     
  • إذا أردت أن تقرأ الرسائل التي وصلت على البريد ، ادخل على الموقع الرئيسي mailinator.com و ادخل الاسم الذي اخترعته لتجد رسائلك .
     

لاحظ أن الرسائل تحذف بشكل دوري و أنك تستطيع فقط استقبال الرسائل دون القدرة على الرد عليها …
 
عنوان الخدمة :
http://www.mailinator.net

إعادة استخدام الشفرة – Code Reusability

لا حاجة لاختراع العجلة كل مره < ?xml:namespace prefix ="" o />

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

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

أسهل الطرق لعمل شفرة برمجية قابلة لإعادة الاستعمال هي الدوال “Functions” ، إذا كنت تستخدم أجزاء من شفرتك في أماكن متعددة من برنامجك ، أو كنت تعتقد أن أحد الأجزاء يمكن إعادة استخدامه في برنامج آخر فأبسط طريقة لجعله قابل لإعادة الاستعمال هو وضعه في دالة منفصلة ، على سبيل المثال الشفرة البرمجية التي تتأكد من أن العنوان البريدي الذي يدخله الزائر تمت كتابته بطريقة صحيحة ( بحيث يتبع الشكل name@domain.ext مثلاً ) هذه الشفرة البرمجية قد تستخدمها في الكثير من البرامج ، ألا تعتقد أنها فكرة جيدة لو قمت بكتابتها على هيئة دالة فتتمكن من نقلها بين المشاريع بسهولة ..

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

مراجع الموضوع :

Code Complete 2nd Edition By Steve McConnell , MS Press , 2004

إحصاءات حول Wikipedia

< ?xml:namespace prefix ="" o />

  • بالرغم من أن Wikipedia لا يشكل إلا مثالاً واحداً على الـ Social Software إلا أنه من الممكن أن نستشرف توجهات المستخدمين نحو هذا النوع من البرمجيات عن طريق الإحصائيات المنشورة على العنوان التالي :
    http://en.wikipedia.org/wikistats/EN/Sitemap.htm

  • آخر تحديث للإحصائيات كان في شهر May لذلك قد لا تعكس الإحصائيات بشكل حقيقي توجه المستخدمين العرب لأن النشاط على موقع Wikipedia العربي خلال الشهرين السابقين كان أكثر منه في الشهور السابقة حسب ظني …

  • أمثلة على مستوى الجزء العربي مقارنة بالجزء الإنجليزي :

    • عدد المساهمين النشيطين في شهر May في الجزء الإنجليزي 255 أما العربي فهم 77 النسبة بينهم تقارب الثلث .
    • عدد المشتركين الجدد شهرياً بالنسبة للجزء العربي لا يتجاوز 10 ، أما في الجزء الإنجليزي فهو بين صعود و نزول لكنه حتى في نزوله يعتبر مرتفع مقارنة بالعربي .
    • عدد المقالات (الرسمية) في الجزء العربي قاربت في شهر May حدود الثلاثمائة موضوع جديد مقابل قرابة الـ 600 موضوع في الجزء الإنجليزي .

    • أترك لكم حرية الحكم على المستوى ، كل حسب نظرته ..