السبت، نوفمبر 05، 2011

قصة و عبرة

وصلتني قبل فترة قصة في صندوق البريد الإفتراضي، و احببت أن أشارككم بها:
 "أنا حسين ____ عمري ٢٩ سنه من أهالي ____ متزوج ولي طفله اسمها بتول عمرها ٩ شهور ستكون في عداد الأيتام قريبا جدا ولي زوجه صالحه  مؤمنه لم ادرك قيمتها إلا وأنا احتضر

سأروي لكم قصتي المؤلمة لأكون لكم عظة وعبرة

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



الأن وبعد زواجي بسنتين بدأت اعاني من حساسيه في الأنف والعين لم اكترث كثيرا لأني اعاني منها من زمن طويل خصوصا ان لدي مشكله في الجيوب الانفيه

لكني وصلت إلى مرحله لا استطيع معها الكف عن حك عيني وانفي مع حساسيه شديده من اقل نسبه من الغبار وارهاق شديد وشعور بضعف عام

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

لكن حالتي بدأت تزداد سوءاً وبدأت اشعر بصعوبه في التنفس مع احساس بارهاق شديد عندها تم تحويلي من مستشفى القطيف المركزي إلى مستشفى الملك فيصل التخصصي بالرياض لتبدأ رحلة معاناتي مع المرض الخبيث السرطان الذي اتلف ٨٥٪ من كلتا الرئتين ولم يتبقى منها إلا ١٥٪



ساحاول جاهدا أن اختصر الحكايه وان اقتصر على النقاط التي قد تفيد أي مدخن



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

سانقل لكم بعض ملاحظات هذا الاستشاري الفرنسي:

١/أن الاشخاص الذين يعانون من حساسيه في العين أو في الجيوب الأنفيه عندما يدخنون يكونون عرضة للإصابه بسرطان الرئه اكثر من الاشخاص العاديين بنسبة ٧٣٪ فكان يجب عليك التفكير مليون مره قبل ان تقدم على تدخين أي سيجاره



٢/قال لي انتم شعب بلا قيمه بالنسبة لحكامكم فلماذا لا تجعلون قيمة لأنفسكم

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

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

 ٣/في احدى المرات رأى ابنتي بتول وكان يقول لي هل أذيت ابنتك بتدخينك كما فعلت بنفسك؟؟ فقلت له أني لا ادخن ابدا داخل المنزل او السياره

ولكنه رد علي أن ملابسي بحد ذاتها تعتبر بمثابة ٦٥ ٪ عبارة عن سيجارة مشتعله لأن المنسوجات تمتص الدخان بنسبه كبيره

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



بداية مكوثي في مستشفى القطيف كنت محاطا بالاهل والاصدقاء

وبدأوا بالانسحاب شيئا فشيئا

حتى اقتصروا على امي وابي وزوجتي وطفلتي



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



الاصدقاء الذين ساعدوني على تدمير نفسي وتيتيم ابنتي وترميل زوجتي ذهبوا ولم يبقى لي احد

والداي كبيرين في السن ولا يحتملان تعب المشوار

اخوتي كل منشغل بعمله واسرته

وأنا صريع المرض



ابنتي بتول اعتذر إليك عن كل مرة اذيتك فيها بملابسي النتنه

اعتذر إليك ان كبرت وانت يتيمه

اعتذر إليك إن اتت عطلة نهاية الاسبوع وكان خروجك للعب بالرمل عند قبر والدك وليس للمجمعات ولمدن الالعاب كصديقاتك

اعتذر اليك ان مرضت ولم تجدي من يحملك للمستشفى

اعتذر إليك حتى آخر نفس في حياتي



زوجتي أم بتول

اعتذر اليك لترميلك وأنت في ريعان شبابك

اعتذر إليك عن المسؤلية الكبيرة التي القيتها على عاتقك

اعتذر إليك عن أي مرة تذمرت فيها من إلحاحك علي بترك التدخين

اعتذر إليك آخر نفس في حياتي.



كتبته في تاريخ ١٤٣٢/١٠/٩هجري

ولا اعلم هل تصلكم رسالتي وأنا حي أم قد فارقت الحياهأنا حسين الجابر عمري ٢٩ سنه من أهالي تاروت متزوج ولي طفله اسمها بتول عمرها ٩ شهور ستكون في عداد الأيتام قريبا جدا ولي زوجه صالحه  مؤمنه لم ادرك قيمتها إلا وأنا احتضر

سأروي لكم قصتي المؤلمة لأكون لكم عظة وعبرة

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



الأن وبعد زواجي بسنتين بدأت اعاني من حساسيه في الأنف والعين لم اكترث كثيرا لأني اعاني منها من زمن طويل خصوصا ان لدي مشكله في الجيوب الانفيه

لكني وصلت إلى مرحله لا استطيع معها الكف عن حك عيني وانفي مع حساسيه شديده من اقل نسبه من الغبار وارهاق شديد وشعور بضعف عام

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

لكن حالتي بدأت تزداد سوءاً وبدأت اشعر بصعوبه في التنفس مع احساس بارهاق شديد عندها تم تحويلي من مستشفى القطيف المركزي إلى مستشفى الملك فيصل التخصصي بالرياض لتبدأ رحلة معاناتي مع المرض الخبيث السرطان الذي اتلف ٨٥٪ من كلتا الرئتين ولم يتبقى منها إلا ١٥٪



ساحاول جاهدا أن اختصر الحكايه وان اقتصر على النقاط التي قد تفيد أي مدخن



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

سانقل لكم بعض ملاحظات هذا الاستشاري الفرنسي:

١/أن الاشخاص الذين يعانون من حساسيه في العين أو في الجيوب الأنفيه عندما يدخنون يكونون عرضة للإصابه بسرطان الرئه اكثر من الاشخاص العاديين بنسبة ٧٣٪ فكان يجب عليك التفكير مليون مره قبل ان تقدم على تدخين أي سيجاره



٢/قال لي انتم شعب بلا قيمه بالنسبة لحكامكم فلماذا لا تجعلون قيمة لأنفسكم

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

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

 ٣/في احدى المرات رأى ابنتي بتول وكان يقول لي هل أذيت ابنتك بتدخينك كما فعلت بنفسك؟؟ فقلت له أني لا ادخن ابدا داخل المنزل او السياره

ولكنه رد علي أن ملابسي بحد ذاتها تعتبر بمثابة ٦٥ ٪ عبارة عن سيجارة مشتعله لأن المنسوجات تمتص الدخان بنسبه كبيره

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



بداية مكوثي في مستشفى القطيف كنت محاطا بالاهل والاصدقاء

وبدأوا بالانسحاب شيئا فشيئا

حتى اقتصروا على امي وابي وزوجتي وطفلتي



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



الاصدقاء الذين ساعدوني على تدمير نفسي وتيتيم ابنتي وترميل زوجتي ذهبوا ولم يبقى لي احد

والداي كبيرين في السن ولا يحتملان تعب المشوار

اخوتي كل منشغل بعمله واسرته

وأنا صريع المرض



ابنتي بتول اعتذر إليك عن كل مرة اذيتك فيها بملابسي النتنه

اعتذر إليك ان كبرت وانت يتيمه

اعتذر إليك إن اتت عطلة نهاية الاسبوع وكان خروجك للعب بالرمل عند قبر والدك وليس للمجمعات ولمدن الالعاب كصديقاتك

اعتذر اليك ان مرضت ولم تجدي من يحملك للمستشفى

اعتذر إليك حتى آخر نفس في حياتي



زوجتي أم بتول

اعتذر اليك لترميلك وأنت في ريعان شبابك

اعتذر إليك عن المسؤلية الكبيرة التي القيتها على عاتقك

اعتذر إليك عن أي مرة تذمرت فيها من إلحاحك علي بترك التدخين

اعتذر إليك آخر نفس في حياتي.



كتبته في تاريخ ١٤٣٢/١٠/٩هجري

ولا اعلم هل تصلكم رسالتي وأنا حي أم قد فارقت الحياه"

الأربعاء، يوليو 01، 2009

إصدار Firefox 3.5


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

السبت، يونيو 20، 2009

لماذا البرمجة الوظيفية (الجزء 2)

توقفت في الجزء الأول عند ترجمة المقدمة لـ "Why Functional Programming Matters". في هذا الجزء أكمل الترجمة:

مشابهة مع البرمجة الهيكلية "structured programming":
لعله يساعدنا على فهم الموضوع رسم مقارنة بـ "البرمجة الهيكلية". في الماضي، أختصرت صفات و مميزات البرمجة الهيكلية بالتالي: إنها لا تحتوي على تعليمات goto. أجزاء البنامج blocks ليس لها مداخل و مخارج متعددة. و البرامج الهيكلية يمكن تتبعها رياضيا أسهل من غيرها. هذه الميزات تشبه كثيرا ميزات البرمجة بالدوال.

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

عدم وجود "goto" في اللغة، ليس هو العامل الرئيسي. صحيح أنها تساعد في نطاق سطور قليلة أو حتى عدة دوال، في المقابل، البرمجة الهيكلية تساعد في صحة البرنامج و جودته في النطاق الأوسع. لذا فإن البرمجة الهيكلية يمكن الإستفادة منها بغظ النظر عن اللغة المستعملة، سواء كانت FORTRAN أو Assmbly

الأن كثير من اللغات تتمتع بخصائص تساعد على البرمجة الهيكلية من حيث تقسيم البنامج إلى وحدات مصممة "Modular design" . ومع ذلك، هناك نقطة هامة جدا غالبا ما تنسى. عند كتابة برنامج منمذج في حل مشكلة ما، ربما يجزء أحدهم المشكلة إلى مشاكل جزئية أصغر و أبسط، ثم يحلها و يجمع بين الحلول. الطرق التي يمكن للمرء أن يجزء بها المشكلة الأصلية تعتمد مباشرة على الطرق التي يمكن للمرء أن يجمع بها حلول الأجزاء معا. لذلك، من أجل زيادة قدرة المبرمج على تجزئة مشكلة ما من الناحية النظرية، لا بد من توفير أنواع جديدة من طرق الجمع (الغراء) في لغة البرمجة. ما هو موجود حاليا من قواعد معقدة لتحديد نطاق المعلومات (information locality) و توفير إمكانة ترجمة الوحدات منفصلة (unit of compilation) تساعد فقط في تفاصيل سطحية، و لا توفر أساليب جديدة في مفهوم حلحلة المشاكل. يمكن للمرء أن يقدر أهمية الغراء عن طريق القياس على النجارة.
يمكن بسهولة تامة صنع كرسي من أجزاء -- قاعدة وسيقان وظهر الخ -- وجمعهم مع بعضهم البعض بالطريق الصحيحة. لكن هذا يتوقف على قدرة النجار على صناعة المفاصل وغراء الخشب. عندما نفتقر إلى هذين العاملين، فإن الطريقة الوحيدة لصنع كرسي هو نحته كاملا من قطعة واحدة من الخشب، وهو أمر أصعب بكثير. هذا المثال يوضح كلا من الإمكانيات الهائلة التي توفرها فكرة تجزئة المشاكل وأهمية وجود الغراء.

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

السبت، يونيو 13، 2009

لماذا البرمجة الوظيفية (الجزء 1)

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

إذا رجعنا إلى تاريخ علم الحوسبة فإنا نجد أن اللبنة الأساس لـ "البرمجة الوظيفية" أو "طريقة البرمجة بالدوال" (من الان و خلال الموضوع سوف أستخدم التسمية الثانية) هي "نظرية حساب الامبدا λ" أو "lambda calculus" و هي نظرية رياضية تجريدية لا تهمنا تفاصيلها في فهم الموضوع.

أول لغة أستخدمت هذا الأساس النظري هي لغة LISP و هي ثاني أقدم لغة برمجة من المستوى الرفيع بعد لغة الـ FORTRAN، و تأسست عام 1958.
من اللغات المعروفة بهذا النوع أيضا (للمثال و ليس الحصر):
و قريبا سوف تصدر Microsoft ضمن Visual Studio 2010 لغة مبنية على نسق لغة Ocaml ل إطار .NET أسمتها بـ #F.

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

حسنا، بعد هذه المقدمة، ما يلي هي ترجمة بتصرف لورقة بحث صدرت عام 1984 معنونة بـ "لماذا البرمجة بالدوال تهم" "Why Functional Programming Matters" :

"
المقدمة


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

الأمثلة في هذه الورقة ستستخدم لغة Miranda و لكنها ستكون بسيطة بحيث أنها لا تتطلب معرفة باللغة لفهمها.

الخواص المميزة للبرمجة بالدوال يمكن اختصارها بالتالي. البرامج ليس فيها جمل تعيين "assignment statements" , لذلك فإن المتغيرات لا تتغير قيمتها أبدا. و بمعنى أعم فإن البرمجة بالدوال ليس فيها "أثار جانبية" "side-effects" . استدعاء دالة لا يؤدي إلى أي تغيير عدا حساب نتيجة الدالة. هذه الخاصية تلغي تماما مصدرا رئيسيا من مصادر الأخطاء "bugs" و تجعل ترتيب التشغيل "order of execution" غير مهم، حيث أنه ليس هناك تأثير جانبي لأي دالة فإن نتيجة الدوال مربوطة بمعطياتها فقط و ليس للترتيب أي أثر. هذا يزيل عن كاهل المبرمج العمل على التحكم في سير البرنامج. و من فوائد انعدام التأثيرات الجانبية، إمكانية التبديل بين أي "تعبير" "expression" و قيمته أو العكس و هذا ما يسمى بـ "الشفافية المرجعية" "referential transparency" . هذه الحرية تجعل المعالجة الرياضية للبرنامج أسهل من غيرها.

حسنا، بعد كل هذا كل ما عرفناه هو ما ليس موجود في البرمجة بالدوال (لا تعيين، لا أثار جانبية، لا تحكم بالسير) لكن ما هي البرمجة بالدوال؟

- يتبع ...