التدوينات الموسومة بـ ‘أفكار’

حل المشكلة أم الترقيع؟

June 23, 2011 - الخميس 23 رجب 1432

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

البرامج العربية

June 9, 2011 - الخميس 09 رجب 1432

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

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

تنظيم اليوم 3\3\3

May 1, 2011 - الأحد 29 جمادى الأولى 1432

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

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

اسم الطريقة كما العنوان (3\3\3) وتقوم على تقسيم اليوم (الوحدة الأهم في الزمن البيولوجي للإنسان) إلى ثلاث قطع ومن ثم تقسيم كل قطعة إلى ثلاث قطع وبعدها تقسيم تلك الثلاث الجدد إلى ثلاث أخرى، باختصار ثلاث طبقات من القطع المثلثة :) مثال عالسريع للفهم السريع (مثال توضيحي وليس حقيقي):

- العمل

— قراءة البريد الإلكتروني

—— بريد العمل

—— الرد على بريد العملاء

—— إرسال عروض للعملاء

— عملي اليومي (مشروع x)

—— إنشاء الهيكلية العامة

—— تحضير النموذج اﻷولي

—— تجريب النموذج الأولي

— إعداد التقارير للمدير

—— تقرير الإنجاز

—— تقرير الكلفة اﻷولية

—— تقرير المدة الزمنية

- التطوير الذاتي

— قراءة خلاصات RSS

—— خلاصات الأخبار الجديدة

—— خلاصات المنتجات

—— خلاصات الأبحاث العلمية

— نقاش مع الأصدقاء

—— في المجتمعات الإلكترونية

—— في استراحة العمل

—— على الهاتف

— تجريب تقنيات جديدة

- الراحة

— قراءة رواية

— النوم

 

شروط هذه الطريقة أيضاً ثلاثة:

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

أما عن مبدأ تقسيم اليوم إلى ثلاثة أقسام فلأن اليوم 24 ساعة وكل قسم سيكون 8 ساعات، وأيضاً للبساطة حيث أكثر من 3 ستكون 4 مما يكثر المهام اليومية وأقل من 3 سيكون 2 وهو عدد قليل ولكنه مقبول في حالة الراحة ﻷن النوم سيستهلك معظم الساعات الثمانية المتبقية من اليوم.

 

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

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

إبدأ الآن

March 26, 2011 - السبت 22 ربيع الثاني 1432

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

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

من أهم الدروس هي:

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

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

- ابتعد عن الأفكار المكررة وإن كان ولابد فحاول أن تكون فكرتك مميزة عنهم بأشياء جوهرية تجذب الناس إلى هذا المشروع.

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

- ركز على المشروع (المشاريع) وأعطه جزءً من وقتك اليومي أو اﻷسبوعي، المهم لاتبدأ ثم تتوقف فذلك أسوأ من عدم البدء ﻷنك تكون قد أضعت وقتاً ومالاً.

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

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

الانتقال للمستوى الأفضل في البرمجة

March 14, 2011 - الاثنين 10 ربيع الثاني 1432

أغلب المبرمجين (معشر المبرمجين) تجد لديهم تفكير مختلف، تفكير عملي، لايحب التكرار ويكره الروتين، لذلك تجد أن أغلبهم غير سعيد بعمله التكراري أو الاجتماعات المملة (تابع ديلبرت للتعرف على بعض من هذه المشاكل).

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

كيف؟ لتحسن مستواك البرمجي والتفكيري عليك بقراءة بعض الكتب من خبراء ومؤسسي لغات البرمجة، أهم هذه الكتب هي:

كتاب Clean Code لروبرت سي مارتن (العم بوب) أحد مؤسسي Agile وخبير البرمجة الغرضية (الكائناتية).

الكتاب يتحدث عن نظافة النص المصدري، وكيف تحسن النص المصدري من السيء إلى المقروء، طرق ونصائح جميلة لتحسين النص المصدري ونظافته.

 

كتاب The Pragmatic Programmer: From Journeyman to Master

كتاب Code Complete لمؤلفه Steve McConnell وهي نتيجة خبرته في العمل لدى مايكروسوفت وشركة بوينغ للطائرات.

سلسلة كتب The Art of Computer Programming حيث ظهرت كخمسة أجزاء وكل جزء يتناول مجالاً أو العديد من المجالات في الخوارزميات البرمجية، من أروع الكتب، قراءته ممتعة وهو من تأليف دونالد كنوث، لقب دونالد هو “أبو تحليل الخوارزميات” ويتمتع بروح مرحة جداً حيث كان (لا أعرف إذا مازال مستمراً) يعطي لكل من يكتشف خطأ مطبعي في مؤلفاته مبلغ 2.56 دولار، وهذا الرقم يمثل 1 دولار بالنظام الستعشري (hexadecimal). يحدث دونالد الأجزاء الخمسة لهذه السلسلة باستمرار لإضافة المستجدات ومراجعة المعلومات، وأيضاً يطمح (إن مد الله بعمره) لنشر الجزء السادس والسابع من هذه السلسلة المتميزة.

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

موضة CMS

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

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

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

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

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

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

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

الفهرس ونكهته الجديدة

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

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

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

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

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

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

أداء الفهرس – قاعدة البيانات

January 21, 2011 - الجمعة 17 صفر 1432

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

تنبيه: الرجاء عدم ترك تعليقات  مثل “مَن أفضل” ومقارنات لامكان لها هنا.

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

اقترح الصديق خالد حبش علي أن أقوم بتجربة MongoDB ولمن لا يعرفها فهي عبارة عن قاعدة بيانات تنتمي لحركة تسمى NoSQL حيث يقول القائمون عليها بأن SQL لغة أكل عليها الدهر وشرب، وعندما بُرمجت كان أداء الأجهزة وسعتها محدود للغاية، بالإضافة إلى تعقيدها وتعقيد تعليماتها (أوافقهم بعض الشيء) لذلك الآن حان وقت استخدام نظام أحدث فأسسوا قاعدة بيانات جديدة اسموها MongoDB وهي عبارة عن قاعدة بيانات مفتوحة المصدر، عالية الأداء، لاتحتاج لتعريف بنية قاعدة بيانات (schema) ووفروا لها دعم (drivers) في أغلب اللغات المشهورة.

لهذه التجربة استخدمت Apache AB على مشروع الفهرس المبني على دروبال 7، والتجربة تمت على قاعدة بيانات MySQL (بدون كاش ثم مع كاش) (الكاش المضمن في دروبال) ومن ثم على قاعدة بيانات MongoDB للجدول الذي يحمل النصوص وهو أكبر جدول (بدون كاش ثم مع كاش).

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

الفرق شاسع وكبير، وهنا تتألق المونغو بأدائها، طبعاً لا داعي للتذكير بأن لكل مشروع أدواته الأنسب له، لاتنسوا أن الفيسبوك تستخدم MySQL بشكل كبير.

من ناحية حجم البيانات تشابهت قاعدتي البيانات بشكل كبير حيث كان الحجم شبه متساوي.

يبدو أني سأستخدم المونغو بالإضافة لل MySQL في المرحلة الحالية، ومستقبلاً يمكن اللجوء لحلول أكثر احترافية وتعقيداً مثل memcached و varnish.

سأقوم بنشر عدة تدوينات خلال مرحلة التطوير للفهرس وفي المرحلة المقبلة سأنشر تدوينات عن واجهة المستخدم وقابلية الاستخدام (usability)  (زمنياً خلال التطوير هي تسبق مرحلة قاعدة البيانات هذه)  ولاحقاً البحث (اللغة العربية و solr).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مدونة الويب 2.0 في 2010

January 1, 2010 - الجمعة 17 محرم 1431

السلام عليكم،
هي نقطة في الزمن لمراجعة الماضي والتخطيط للمستقبل، خارطة الطريق للمدونة لعام 2010:

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

هل لديك أي إقتراحات؟