علّم أطفالك!

22/08/2009

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

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

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

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

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

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

موقع Lego التعليمي يحوي العديد من الأفكار والمشاريع والمنتجات المفيدة للأطفال، أنصح بزيارته.

في النهاية، كل عام وأنتم بخير بمناسبة شهر رمضان المبارك، أعاده الله عليكم وعلينا وعلى الأمة الإسلامية بكاملها بالخير والبركة.

Advertisements

انتهت اللعبة!

22/07/2009

كانت واحدة من أولى البطاقات الذكية Smart Cards والتي تستعملها المحطات التلفزيونية ذات الاشتراك المدفوع تسمى البطاقة H (اختصار لاسم Hughes)، كان في تلك البطاقة ثغرات في التصميم اكتشفت من مجتمع القراصنة Hackers.

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

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

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

لإجبار القراصنة على تطبيق التحديثات الجديدة، جعلت DirecTV التحديثات مطلوبة ليعمل البث، أصبحت ترسل تحديثاً جديداً في كل شهر تقريباً. ولكن بعد 10 أو 15 دقيقة فقط من إصدار التحديث، كان مجتمع القراصنة يقوم بتحديث برنامج بطاقاتهم لتعمل حسب التحديث الجديد، واستمر الحال على ما هو عليه لسنتين تقريباً، وكانت تلك البطاقات تباع في مزادات على eBay بمبلغ يتجاوز الـ400 دولار للبطاقة.

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

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

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

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

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

جميع قنوات الـIRC التي تتحدث عن DirecTV غرقت في بحر من آلاف الرسائل من أناس فقدوا القدرة على مشاهدة قنوات DirecTV المسروقة، فقد فقدت جميع مجتمعات القراصنة القدرة على مشاهدة قنوات DirecTV بطريقة غير نظامية، وأصبحت جميع البطاقات الغير شرعية مدمرة تماماً. في تلك الليلة دمرت ما يزيد عن 100 ألف بطاقة مزورة مما حرم أكثر من 98% من المشاهدين الغير نظاميين من قنوات DirecTV.

ولتختم DirecTV الحرب، قامت بإضافة لمستها الخاصة على تلك الضربة الساحقة للقراصنة، وذلك بتعديل أول 8 بايتات من كود البطاقات المزورة ليصبح “انتهت اللعبة” “GAME OVER”.

جرت هذه الحادثة عام 2001، ولم يتم معرفة العقل العبقري الذي وقف ورائها حتى عام 2008، حتى تم معرفة أنه Christopher Tarnovsky عندما كشف عن ذلك موقع Wired.com والذي يقول أن ذلك الإجراء الدفاعي الذي قام به كريستوفر لصالح DirecTV مازال يعرف بين القراصنة باسم “الأحد الأسود”، بعد أن تم إرسال كود البرنامج الجديد على ما يزيد عن 50 دفعة خلال ما يزيد عن شهرين، يشبه هذا تجميع دبابة في ساحة المعركة المحاصرة بعد أن تنقل إليها قطعاً صغيرة.

لم توقف تلك الضربة القراصنة طويلاً، حتى استطاعوا التغلب على نظام الحماية الجديد، ومازالت تلك المعركة مستمرة بين الطرفين، وللأبد.

عن طريق Jeff Atwood.

Google Chrome OS : القصة الكاملة

12/07/2009

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

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

لماذا قررت غوغل بناء نظام تشغيل؟ : يجيب عن هذا السؤال موقع Mashable عن طريق شرح معادلة غوغل للربح، سأقوم هنا يتلخيص تحليل المقالة عن الموضوع :

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

في العام الماضي أعلنت غوغل عن ربح بلغ 21 مليار دولار، 95% منها من إعلانات غوغل على المواقع وفي نتائج البحث.

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

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

ما أعلنت عنه غوغل هو أن نظامها الجديد “ستكون فيه أغلب نشاطات المستخدم على الويب” وأن “جميع تطبيقات الويب ستعمل فيه بشكل تلقائي”.

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

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

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

مشروع PwdHash، حل لكثير من المشاكل الأمنية على الإنترنت

10/07/2009

PwdHash هو مشروع قديم بدأ العمل فيه في جامعة ستانفورد في العام 2004، ونظراً لأني لم أكن أعلم عنه شيئاً حتى قرأت عنه اليوم، وجدت أن من الضروري الكتابة عنه للذين لا يعلون عنه مثلي!

PwdHash وهو اختصار لجملة Web Password Hashing هو مشروع يقوم عليه خمسة أشخاص من جامعة ستانفورد معظمهم يحمل درجة بروفيسور ومعظمهم يمارس التدريس في ستانفورد، أحد هؤلاء الخمسة هو Blake Ross الذي ندين له بظهور فايرفوكس عندما كان يعمل في موزيلا وكان حينها في التاسعة عشرة من عمره، فقط!

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

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

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

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

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

هذه الإضافة متوافرة للمتصفحات الشهيرة : Firefox 3.5, IE6/7, Opera، كما أن هناك موقع آمن لإصدار كلمة المرور في حال أردت استعمال الطريقة دون إضافات للمتصفح.

أدوات لقابلية وصول أفضل

07/07/2009

بعد أن تحدثنا أمس عن قابلية الاستخدام، وذكرت ُ صفحة تحوي العديد من النقاط التي عليك مراعاتها لجعل موقعك يدعم أفضل قابلية استخدام، سأدلك اليوم على صفحة أخرى تحوي أدوات للتأكد من أن موقعك يدعم قابلية الوصول، الصفحة بعنوان 12 Tools To Check Your Site’s Accessibility لكاتبها Sean P Aune في موقع SitePoint الشهير.

كما نعلم، قابلية الوصول على الويب تشمل عدة أقسام : المشاكل البصرية (وتشمل العمى الكامل، ضعف في الرؤية، عمى الألوان، …)، مشاكل سمعية، مشاكل حركية (صعوبة أو عدم القدرة على تحريك اليدين)، مشاكل معرفية (مشاكل في الفهم والحفظ والتعلم)، مشاكل متنوعة (كالتشنجات والنوبات الصرعية البصرية التي يصاب بها المريض عند التعرض لضوء يومض Flash على سبيل المثال).

في مقالته التي تحدث فيها Sean Aune عن أدوات للتحقق من دعم موقعك لقابلية الوصول، قام “سين” بالتركيز على أدوات موجهة بشكل أساسي نحو نوع واحد من المشاكل، وهي المشاكل البصرية، على اعتبار أنها الفرع الأهم لقابلية الوصول على الويب.

من ضمن التعليقات على المقالة، نجد في التعليق الثامن شخص مصاب بضعف في السمع، يلوم الكاتب على تجاهل المشاكل السمعية، ويتحدث عن أن معظم المواقع لا تؤمن بدائل لمن لا يستطيع أن يسمع، فيجب أن تؤمن المواقع ترجمة ظاهرة لمقاطع الفيديو والنص الكامل لمقاطع الـPodcasts، يقول ذلك الشخص :

With those increasing videos without captions and podcasts without transcripts, they are not accessible for us and leave us frustrated

وطبعاً معه كامل الحق في ما يقول.

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

247 قاعدة لقابلية استخدام أفضل

06/07/2009

طرحت اليوم صفحة أعتبرها أفضل ما قرأته عن قابلية الاستخدام على الإطلاق، الصفحة وهي بعنوان 247 web usability guidelines تحوي – كما يقول العنوان – عدد هائل من النصائح التي عليك مراعاتها قبل البدء بتصميم موقع ويب، وإعادة التأكد إن كنت قد قمت بتنفيذها بعد إنتهائك من تصميم الموقع، وهي مصنفة إلى تسع تنصيفات أساسية في كل منها عدد صغير من القواعد (بين 13 و 44 قاعدة)، وجميع هذه القواعد قابلة للتحميل على هيئة ملف Excel لتحتفظ به وتراجعه باستمرار.

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

لماذا أستعمل TextPad

03/07/2009

بالرغم من أن هناك العديد من بيئات البرمجة التي أستعملها بشكل متكرر، والتي تشمل فيجوال ستديو (بإصدارات تتراوح بين الـTeam System نسخة الـSuite، مروراً بالنسخة Professional وانتهاءً بالنسخة Express)، ثم SharpDevelop و ++Notepad، إلا أنني جربت مؤخراً برنامجاً جديداً يسمى TextPad، البرنامج ليس مجاني ولكن بعد تجريبه أحببته فحصلت على النسخة الكاملة منه.

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

فمثلاً، أعددته لكي يقوم بتلوين كودات #C بنفس الألوان التي يستعملها Visual Studio، أعددت زر فيه ليقوم بعمل Compile للكود باستخدام CSC، وآخر لتشغيل الكود الذي قام بترجتمه وزر آخر ليقوم بفتحه باستخدام الأداة IL DASM.

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

طبعاً لست من أولئك المتشددين الذين يدعونك لكتابة كل كوداتك باستخدام الـNotepad، ولكني أدعوك لاستعمال هذه الأداة البسيطة عندما لا تحتاج إلى تعقيدات بيئة برمجة متكاملة IDE كـVisual Studio.

إغلاق التبويبة Tab الأخيرة في فايرفوكس 3.5

03/07/2009

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

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

ليس هناك خيار يمكنك من تغيير هذا السلوك العجيب وإعادة إظهار زر الإغلاق مرة أخرى، ولكن هناك حل يخفف من المشكلة، وهو يأمر المتصفح بعدم إغلاق نفسه عند إغلاق تلك التبويبة، وذلك بكتابة about:config في شريط العنوان، ثم وعد فايرفوكس بعدم العبث بالإعدادات دون معرفة ما تفعله حقاً، ثم البحث عن المفتاح browser.tabs.closeWindowWithLastTab وضبط قيمته (عن طريق الضغط المزدوج عليه) إلى False.

الآن فقط، إن حاولت إغلاق آخر تبويبة (بضغط الاختصار Ctrl+W أو بضغطها بزر الـScroll في الماوس) ستجد أنها أغلقت بنجاح ودون أن يغلق كامل المتصفح! لاحظ أنك – حتى بعد تطبيق هذه الطريقة – إن ضغطت على التبويبة الأخيرة بالزر الأيمن للماوس وظهرت القائمة المنبثقة، ستجد أن الخيار Close Tab مازال لا يعمل!

عن طريق : Lifehacker.

مشكلة حانة El Farol

02/07/2009

تروي القصة أن في مدينة سانتا في Santa Fe في ولاية نيو ميكسيكو New Mexico يوجد حانة تسمى إل فارول El Farol، الحانة – وبسبب قلة عدد سكان تلك المدينة – تتسع لستين بالمئة من السكان، وبمجرد أن يزيد عدد القادمين إلى الحانة عن ستين بالمئة من عدد السكان (أي في حال جاء 70 بالمئة من السكان إلى الحانة مثلاً) تصبح الحانة من الازدحام والضوضاء ما يجعل جلوس الحاضرين فيها مزعج جداً وغير محتمل.

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

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

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

مشكلة حانة El Farol على ويكيبيديا.

تحليل لجائزة شبايك لأفضل برنامج لدعم العربية ضمن حزمة أدوبي

30/06/2009

لعلك قد شاهدت إعلان رءوف شبايك عن “جائزة الخمسمائة + 1200 دولار” لأفضل برنامج يدعم اللغة العربية في مدونته، إن لم تكن قد شاهدته فقم بزيارته لأخذ فكرة عن الموضوع.

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

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

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

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

هذه الفكرة الأخيرة هي التي يعتمد عليها البرنامج الذي أرسله لي شخص لا أعرفه والذي كتبه من يدعى “حسن عارف الجودي” والمبني باستخدام Python 2.5 (وهو إصدار صدر عام 2006 من اللغة)، لا أعرف إن كان من القانوني بالنسبة لتلك المسابقة أن يطلع المتسابقون على الكود المصدري لبرامج بعضهم قبل انتهاء موعد المسابقة، ولكني سأفترض أن ذلك غير مسموح به (حسب قوانين معظم المسابقات البرمجية) وأتجنب وضع الكود هنا…

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

——————-

تحديث : تم أمس الإعلان عن الفائزين في المسابقة، حيث تم اختيار أربع فائزين، الفائز بالمركز الأول (1000 دولار) هو محمد حجازي من سورية، ويتقاسم الفائزين بالمراكز التالية بقية الجائزة والبالغة 900 دولار. ما سرني هو أن ثلاثة من الفائزين الأربعة (بمن فيهم الفائز بالمركز الأول) هم من سورية.

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