نسخ وأرشفة المدونة في القرص

السلام عليكم

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

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

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

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

وجدت اﻵن أنه حمّل حوالي قيقا من محتويات الويكيبديا التي أشير إليها مواضيع فيها كثيراً في مدوناتي، وأرى أنه دخل إليها وتشعب في روابطها ويريد تحميلها كاملة، لكن لا أعرف كيف أوقف تعمقه وشعبه في مواقع أخرى

مليار وجبة تُهدر يومياً

السلام عليكم ورحمة الله

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

اﻷسباب لهدر الطعام هي عدة، ما أراه الآن أمامي: أولها عدم التزام الناس بتعاليم دينهم، فابتداءً بقول الله تعالى في سورة اﻷعراف: وَكُلُوا وَاشْرَبُوا وَلَا تُسْرِفُوا ۚ إِنَّهُ لَا يُحِبُّ الْمُسْرِفِينَ ‎﴿٣١﴾، وقول رسول الله صلى الله عليه وسلم: ما ملأَ آدميٌّ وعاءً شرًّا مِن بطنٍ ، بحسبِ ابنِ آدمَ أُكُلاتٌ يُقمنَ صُلبَهُ ، فإن كانَ لا محالةَ فثُلثٌ لطعامِهِ وثُلثٌ لشرابِهِ وثُلثٌ لنفَسِهِ. هذا إذا التزمنا به جميعنا لانتهى هدر الطعام المعد للأكل على اﻷقل، ولقّلت مشكلة السمنة وما يصاحبها من أمراض، ويتبقى الطعام الخام مثل الخضروات والفواكه التي تفسد أثناء نقلها وتخزينها أي الفشل في توزيعها في الوقت المناسب ونقلها بطريقة سليمة.

سبب آخر لهدر الطعام هو كثرة الولائم والمباهاة فيها، خصوصاً في المناسبات ورمضان، فكان أحق أن يكون رمضان شهر يلتزم فيه المسلمون بتعاليم دينهم، وهو شهر القرآن يُقرأ فيه بتدبر، ومن تدبر لوجد النهي عن الإسراف في اﻷكل. والسبب اﻵخر – حسب رأيي- هو التشبه بالغرب في طريقة اﻷكل، أن يأكل كل واحد في صحن لوحده، وهي طريقة أبغضها جداً، خصوصاً حين يفوتني اﻷكل مع العائلة و أضطر لأن آكل وحدي، حيث أن المشاركة في اﻷكل هو سنة نبينا محمد صلى الله عليه وسلم، كما يقول: طعام الاثنين كافي الثلاثة وطعام الثلاثة كافي الأربعة. فهذه الطريقة تقلل أو تمنع أن يكون هناك هدر في الطعام، أما طريقة الغرب فهي من الأسباب الرئيسة لهدر الطعام، حيث أن ما يتبقى من أكل لشخص لا يأكله شخص آخر إنما يُرمى، أما في اﻹسلام فإن المشاركة في اﻷكل هي اﻷصل.

هناك أسباب أخرى مثل الوجبات السريعة والاعتماد على المطاعم في اﻷكل أكثر من البيت، والدعايات الكثيرة، والوجبات المعلّبة وتاريخ الصلاحيات، كل هذا يُفاقم من اﻹسراف في هدر الطعام.

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

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

ساعة ذكية غير اعتمادية كادت أن تُفسد علينا آخر أيام رمضان

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

لها مشكلتان رئيسيتان هذه الساعة والساعات الذكية عموماً، وهي أنها تحتاج لشحن كل يومين تقريباً وهذا شيء مزعج جداً وإلا توقفت وأنت تلبسها بدون سابق إنذار، أحياناً تنغلق حسب مؤشر البطارية وأحياناً بدون تناسق مع المؤشر. والمشكة اﻷخرى – وغالباً هي متعلقة بالساعات الرخيصة فقط- وهي أنه يحدث لها إعادة تشغيل restart تلقائياً في بعض اﻷحيان وترجع للساعة 0:00 يوم 1/1 وأحياناً يحدث تحديث للزمن تلقائياً مع الموبايل وأحياناً تتطلب تحديث الساعة يدوياً بفتح البرنامج في الموبايل وطلب الضبط.

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

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

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

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

الاعتدال الربيعي

السلام عليكم ورحمة الله

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

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

هذا العام -بفضل الله- قضينا أكثر شتاء معتدل منذ عشرات السنين، وهو في مدينة كسلا، لم نرى البرد الشديد الجاف الذي تعودنا عليه في الخرطوم أو باقي مدن السودان الأشد برداً، وجاء الربيع في جو لطيف والمنطقة التي نسكنها من الريف غنية بالتنوع الحيوي. حيث نرى طيور كثيرة متنوعة معظمها لم نراها من قبل، وقد أرسلت بعض صور الطيور للتعرف عليها في موقع inanature.org ليس بهدف التعرف عليها فحسب، إنما لتوثيقها وأنها موجودة في هذه البقة من اﻷرض لإضافتها كمعلومة، وقد أرسل إلي أحدهم عندما رفعت صورة نبات ينمو في أحد بيوت الريف التي سكناها قال لي أرسل لي صورة الزهرة، فانتظرت حتى أزهرت وصورتها له، ووجد أنه عالم أحياء، فهو يستفيد من هذه المعلومات. كذلك وجدت أحد الطيور من نوع اليمام مشابه لليمام الماسي الموجود في استراليا، بعد ما بحثت عنه وجدت أن اسمه Common ground dove وأن موطنها الأمريكيتين، فصورتها وأرسلت الصورة للموقع لإثبات أنها موجودة في شرق أفريقيا، لكن للأسف صور الطيور لم تكن واضحة، فكاميرا الموبايل ليس فيها أي تكبير عدسي optical zome، لذلك لم تكن الصور واضحة وعندما أقرب للتصوير يطير الطائر. هُناك بعض الطيور المهاجرة نراها في السماء على ارتفاع عالي، وهناك ببغاء أخضر له ذيل طويل نراه يحط في بعض اﻷشجار البعيدة. وهُناك عصافير حمراء صغيرة نسميها في السودان طيور الجنة. بعض هذه الطيور يأتي للبيت ليأكل ما يتبقى من الخبز، حيث ننثره له بعد تكسيره في فناء المنزل، و البلبل يدخل البيت ليأكل باقي التمر كما صورت له فيديو تجدونه بعد هذه الصور.

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

وهذه صور بعض الطيور، للأسف لم استطع تصويرها كلها ومعظمها غير واضحة:

هذا كله مدعاة للتفكر في مخلوقات الله، وكم أن الأرض واسعة وبها تنوع أكثر مما نتخيل ومما نعرف، نحتاج أن نضرب في اﻷرض ونتفكر ونشكر الله ونعبده. كما يقول الله تعالى في صدر سورة الكهف: إِنَّا جَعَلْنَا مَا عَلَى الْأَرْضِ زِينَةً لَّهَا لِنَبْلُوَهُمْ أَيُّهُمْ أَحْسَنُ عَمَلًا ‎﴿٧﴾

وهذا فيديو للبلبل يأكل تمرة ويطعم صغيره، فسبحان من يرزق الطير في كافة أصقاع اﻷرض. و يقول الله تعالى في سورة اﻷنعام: وَمَا مِن دَابَّةٍ فِي الْأَرْضِ وَلَا طَائِرٍ يَطِيرُ بِجَنَاحَيْهِ إِلَّا أُمَمٌ أَمْثَالُكُم ۚ مَّا فَرَّطْنَا فِي الْكِتَابِ مِن شَيْءٍ ۚ ثُمَّ إِلَىٰ رَبِّهِمْ يُحْشَرُونَ ‎﴿٣٨﴾

أنواع البليلة في رمضان

السلام عليكم

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

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

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

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

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

لكن اﻷفضل من ذلك كله بالنسبة لنا (لكن ليس من البليلة) هو نوع من التمر عندنا اسمه البركاوي وهو تمر جاف، عندما يُكسّر و ينقع لساعات ثم يُبّرد فيصبح منقوعه شديد الحلاوة، هذا أهم صحن في رمضان نفطر به ثم نصلي المغرب ثم نرجع نأكل وجبة اﻹفطار، قديماً كان يضاف إليه قطع التين المجفف والزبيب ويُسمى الخشاف، لكن هذا يُفسد أصالة طعم البلح، كذلك قرأنا حديث عن كراهة أو منع إنتباذ التمر مع الزبيب، حيث وصى رسول الله صلى الله عليه وسلم أن ينقع كل واحد لحاله. و في صحيح النسائي أنه كتبَ إلى أهلِ هجَرَ أن لا تَخلِطوا الزَّبيبَ والتَّمرَ جميعًا

يوم أن كانت لغات البرمجة وأدوات التطوير غير مجانية

السلام عليكم ورحمة الله

مضت اﻷيام والسنوات بسرعة منذ أن كانت لغات البرمجة وأدوات التطوير لها سعر ينافس عتاد الكمبيوتر الذي يعمل فيه، وكانت اللغات محدودة التي تُستخدم في سوق العمل، والتي تُدرّس في الجامعات والمعاهد، كذلك قواعد البيانات. لم يكن هناك شيء مجاني. ثم كانت هناك كتب، مراجع ورقية كبيرة. ما زلت أذكر كتاب Turbo Pascal 5.5 الشهير وهي النسخة التي دعمت البرمجة الكائنية في لغة باسكال قبل أن تُدعم في لغة سي. وكان هذا الكتاب لا يُسمح باستلافه من مكتبة الجامعة، فقط يُقرأ داخل المكتبة لأنه مصنف ضمن المراجع، وكان كتاب ضخم يحوي أكثر من 500 صفحة كما أذكر.

ولا زلت أذكر في عام 1997م عن زيارتي لمدينة جدة في شارع خالد بن الوليد أو شارع فلسطين، وهي شوارع بها مكتبات ومحال كمبيوتر، وقفت حائراً بين شراء صندوق فيجوال بيسك أو إنكارتا 97، ولم يكن الوقت كافياً للتفكير، فاخترت إنكارتا. هذا الاختيار كان يمكنه تغيير مسيرتي من حيث لغات البرمجة، حيث شهد سوق العمل منافسة بين لغتي فيجوال بيسك من شركة ميكروسوفت العملاقة، و دلفي من شركة بورلاند الصغيرة لكن المتخصصة في أدوات التطوير، وانتهي الصراع بأن اشترت ميكروسوفت مطور لغة البرمجة وأدوات التطوير دلفي Anders Hejlsberg بمبلغ 3 مليون دولار كما سمعنا حينها، وهو من أميز المبرمجين حيث هو من طور توربو باسكال الشهيرة، ثم دلفي، ثم الدوت نت عندما ذهب لشركة ميكروسوفت، ثم اشترت بعدها ميكروسوفت من خلفه في تطوير الدلفي في شركة بورلاند التي كان لا يتعدى موظفيها ثلاثمائة موظف، لكن مع ذلك لم يتوقف منتج دلفي إلى اﻵن. و كدت أن أنسى أني راسلت مؤسس شركة بورلاند Philippe Kahn (وهو مخترع كاميرا الهاتف شاهدو فيديو قصته في هذا الموقع) سألته عن رأيه في لغة البرمجة دلفي، وكان قد ترك الشركة، فقال لي في رد مقتضب لا زلت أذكره: Delphi is a good product ثم سألته في بريد لاحق عن سبب تركه لشركة بورلاند.

مصدر الصورة emsps.com

عندما كانت لغات البرمجة غير مجانية كان المبرمجين أكثر ارتباطاً بالبرمجة، فتخيل أنك اشتريت أداة تطوير للغة برمجة معينة مثل دلفي أو C++Builder أو Visual Basic فلا بد أن تعمل بها سنوات عدة، كذلك شركات البرمجة كانت تنفق أموال مقابل شراء هذه الأدوات فتكون هي جزء من الاستثمار في هذه اللغة وهذه اﻷدوات، فلا يحدث تغيير للغة ثانية بسهولة، إنما اعتاد الناس شراء نُسخة جديدة كل عام أو كل بضعة أعوام من نفس المنتج، كان هناك انتماء كبير من المبرمجين لهذه اللغات. لكن كان هناك كثير من المستخدمين سواءً أفراد أو ممن يعملون في مؤسسات أو شركات برمجة يستخدمون البرامج المقرصة، فكانت أداة التطوير التي بها كل الميزات هي من تتوفر كنسخة مقرصنة. أما من يشتري فيختار النسخة المناسبة السعر، مثلاً standard edition أو حتى professional أما النسخة Enterpise أو Architect فنجدها بأغلى سعر يمكن أن يصل إلى 5 آلاف دولار أو توجد مقرصنة مثل نسخة Delphi Architect

بعد ظهور لغة جافا في عام 1995 كلغة برمجة مجانية حدث هناك تغيير كبير في السوق، أولها أنه أصبح الفصل واضح بين لغة البرمجة وبين أدوات التطوير، مثلاً في السابق كان لا يمكن الحصول على مترجم لغة باسكال لوحده، إنما لابد أن تشتريه مع أداة التطوير Turbo Pascal أو Borland Pascal أو دلفي مثل ما أصبح لاحقاً. كذلك Visual Basic لا يوجد مترجم للغة Visual Basic إنما هو برنامج متكامل يحوي على مترجم اللغة والمنقح Debugger والمحرر Editor وكل ذلك يسمى IDE اختصار ل Integrated Developoment Environment وكانت أداة التطوير دلفي تسمي نفسها RAD اختصاراً لجملة Rappid Development Tool. حتى لغة سي لم تكن متوفرة في بيئة وندوز كمترجم إنما كانت هناك أدوات تطوير أشهرها Visual C++ وكانت هناك C++Builder لكن لم تكن بنفس الشهرة والمنافسة للأداة اﻷولى التابعة لميكروسوفت.

بعد أن حدث هذا الفصل بين اللغات وأدوات التطوير، ظهرت محررات عديدة تعمل لأكثر من لغة مثل Eclipse المكتوبة بلغة جافا نفسها، لكنها يمكن استخدامها مع لغة سي ثم أندرويد عندما ظهر. كذلك أداة التطوير NetBeans تعمل لأكثر من لغة منها PHP. ثم مؤخراً نسخة مجانية من Visual Studio،. بالنسبة لللغات أصبح معظمها مجاني للاستخدام الشخصي والتعليمي والتجاري، ابتداءً من لغة جافا، ومروراً بلغة PHP و Go و Java script ولغة بايثون التي أصبحت اللغة اﻷولى من حيث الاستخدام، وأصبحت اللغات المدفوعة مع أدوات تطويرها إما في نهاية عمرها كمنتجات مدفوعة أو في انحسار.

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

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

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

الجدير بالذكر أن بعض الشركات تطوير لغات البرمجة لاستخدامها الخاص، مثل شركة الفيسبوك التي طورت لغة Hack كبديل للغة PHP لاستخدامها الداخلي ثم جعلتها مفتوحة المصدر، كذلك شركة Google عندما طورت لغة Go كبديل للغة سي++ لاستخدامها الداخلي ثم جعلتها مفتوحة المصدر

انتقلنا إلى ريف جديد

السلام عليكم ورحمة الله

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

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

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

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

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

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

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

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

شروق الشمس في مدينة كسلا
سنجاب

مصحف المختصر في تفسير القرآن الكريم

السلام عليكم ورحمة الله

ونحمد الله على أن بلّغنا شهر رمضان، فنسأله أن يعيننا على صيامه وقيامه وأن يتقبل منها أعمالنا ويوفقنا لما فيه خيري الدنيا واﻵخرة.

كُنت أبحث عن مصحف أقرأ بدل مصحف التجويد الذي اشتريته وكُنت أقرأ فيه منذ عشرين عاماً وأعطيته لأبني محمد لما رأيت من عدم تطبيقه لأحكام التجويد أثناء قراءته للقرآن، فجعلت أبحث عن مصحف آخر أقرأ فيه سنوات أخرى – إن مد الله في العمر- فكلما أذهب للسوق أشتري مصحف، لكن كُنت أريد مصحف مميز، وقد وجدت مؤخراً أن الأفضل القراءة من مصحف متوسط الحجم، فهو أريح للقراءة، وسهل الحمل. فوجدت أثناء تجوالي مصحف به تفسير ومتوسط الحجم، وكنت قد عزمت أن أقرأ القرآن مع التفسير، على اﻷقل مرة واحدة، فبدلاً من تكرار القراءة كل مرة والمرور بنفس اﻵيات والقراءة من أجل ختم القرآن وعدم معرفة المعاني، فاﻷفضل أن نعلم ما نقرأ لنتدبر حتى لا نكون في من قال الله فيهم في سورة محمد: أَفَلَا يَتَدَبَّرُونَ الْقُرْآنَ أَمْ عَلَىٰ قُلُوبٍ أَقْفَالُهَا ‎﴿٢٤﴾. بل نكون ممن قال فيهم:الَّذِينَ آتَيْنَاهُمُ الْكِتَابَ يَتْلُونَهُ حَقَّ تِلَاوَتِهِ أُولَٰئِكَ يُؤْمِنُونَ بِهِ ۗ. ولقت قرأت أو سمعت أن الصحابة -رضوان الله عليهم- كانوا لا يتجاوزون عشر آيات قراءة أو حفظاَ حتى يقفوا على معانيها ويعملوا بها.

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

ما لفت انتباهي أثناء قراءتي من هذا المصحف، تكرر جملة في عدد من السور الطوال وهي “فَلَا خَوْفٌ عَلَيْهِمْ وَلَا هُمْ يَحْزَنُونَ” وكنت أعتقد أن معناها لا خوف عليهم ولا هم يحزنون بمعناها الظاهر، لكن هناك معنى لها لا يفهم إلا بالتفسير وهو أن المسلم إذا دخل الجنة لا يحزن على ما فاته من نعيم في الدنيا، فتخيل من لم تتحقق له أمنياته في الدنيا مهما كانت كبيرة أو صغيرة من امتلاك بيت فسيح أو الحصول على وظيفة كبيرة أو حتى الزواج ولربما من لم يتيسر له الحج والعمرة إلى بيت الله، فعندما يدخل الجنة سوف لن يتحسّر على ما فاته في الدنيا. فهذا معنى كبير يجعلنا أكثر زهداً في الدنيا وأن لا نسعى لتحقيق كل أمانينا، فلا معنى لأن يكون لأي إنسان أمنية دنيوية يضيع حياته لأجلها ويجعلنا نصب عينيه، فأمنيتنا تكون للآخرة وهي النجاة من النار ودخول الجنة، وذلك هو الفوز العظيم. كما يقول الله تعالى في سورة آل عمران: فَمَن زُحْزِحَ عَنِ النَّارِ وَأُدْخِلَ الْجَنَّةَ فَقَدْ فَازَ ۗ وَمَا الْحَيَاةُ الدُّنْيَا إِلَّا مَتَاعُ الْغُرُورِ ‎﴿١٨٥﴾ فنسأل الله في هذا الشهر المبارك أن يهدينا ويجعل أعمالنا خالصه له ويتقبلها وأن يجعلنا ممن ينجو من النار وممن يدخل الجنة فهو على ذلك قدير.

لغة البرمجة Rust أصبحت واقع وبديل جديد لبرمجة اﻷنظمة

السلام عليكم ورحمة الله

منذ فترة كنت متابع تطورات وأخبار لغة البرمجة Rust وهي لغة برمجة جديدة للأنظمة System programming بديلة للغة C التي ناهزت الخمسين عاماً ولغة ++C. والمشكلة في هذه اللغات اﻷخيرة بها مشكلة عدم أمان في استخدام الذاكرة memory unsafe وهي تجعل البرامج معرضة للاختراق، كما ذكرت شركة ميكروسوفت أن 70% من مشاكل البرامج في السرية هي مشاكل عدم أمان في الذاكرة. والأنظمة مقصود بها البرامج التي تعمل مع العتاد مباشرة مثل أنظمة التشغيل، والبرامج التي تتطلب أداء عالي مثل محركات قواعد البيانات ومترجمات لغات البرمجة، وحتى المتصفحات، فهذه كلها تحتاج إلى لغة برمجة أنظمة ذات سرعة عالية في التنفيذ وتستخدم الموارد بصورة قليلة.

ظهرت لغة Rust في مؤسسة موزيلا التي تطور المتصفح FireFox. ثم في عام 2015 صدرت النسخة رقم 1 من مترجمها، ثم بعد ذلك أصبحت لغة بديلة عن لغة سي في تطوير البرامج الجديدة وبدأت مؤسسات مهمة في استخدامها كبديل مثل شركة ميكروسوفت وقوقل واعتمدت كلغة إضافية مع لغة C في اﻹصدارات اﻷخيرة من نواة لينكس. والجدير بالذكر أنه قد صدر بيان الشهر الماضي من البيت اﻷبيض باستخدام لغات برمجة بها أمان في الذاكرة memory safe languages والتوقف عن استخدام لغات ليس بها أمان في الذاكرة مثل لغة C و ++C . هذا هو رابط خبر البيان. والهدف هو التقليل من الهجمات عن طريق الإنترنت.

اللغات البديلة كانت مذكورة في تقرير سابق لوكالة اﻷمن القومي على هذا الرابط، ذكرت فيها هذه اللغات:

Python®, Java®, C#, Go, Delphi/Object Pascal, Swift®,
Ruby™, Rust®, and Ada

هذه اللغات معظمها لغات عالية المستوى، أي لغات تطبيقات وليست لغات أنظمة، ولغة اﻷنظمة المذكورة هنا هي Rust لذلك أصبحت هي الخيار الوحيد المستقبلي لتطوير اﻷنظمة وبديل مباشر للغتي C و ++C . أما باقي اللغات فيمكن استخدامها لباقي أنواع البرامج مثل برامج الويب وأنظمة الاتصالات والواجهات البرمجية APIs و خدمات الويب وغيرها من البرامج المختلفة ذات الاستخدام المباشر.

لغة سي تعدى استخدامها أنظمة الحاسوب المختلفة، حيث تُستخدم في المعالجات الدقيقة microcontrollers المستخدمة في اﻷنظمة المدمجة، وكمثال لها ما يُعرف بكمبيوتر السيارة، والمتحكم في الغسالات الآلية والثلاجات وكل جهاز يحتوي على معالج دقيق، لكن لا أدري هل هذه تشكو من نفس المشكلة (مشكلة عدم أمان الذاكرة) أم لا، فربما لا تتأثر إلا اﻷجهزة المرتبطة باﻹنترنت مثل الراوترات التي تحتوي على أنظمة تشغيل مكتوبة بلغة C. فلست متأكد إلى هذه اللحظة هل هناك خطة لتبديل لغات اﻷنظمة المدمجة بلغة برمجة ذات أمان في الذاكرة أم لا.

توجد مشكلة كبيرة في لغة البرمجة Rust وهي صعوبتها، حيث أن تعلمها والدخول لاستخدامها لأول مرة ليس سهل مثل اللغات الحديثة اﻷخرى، مع أن عمرها لم يتجاوز 9 أعوام لكن تُشابه قواعدها لغات البرمجة القديمة المعقدة مثل ++C. وهذا مثال لبرنامج به حلقة لإظهار التاريخ والوقت والانتظار ثانية في كل لفّة:

هذا برنامج لغة Rust:

use chrono;
use std::{thread, time};

fn main() {
  println!("RUST Language");
  for i in 1 .. 10 {
    println!("Time {}: {:?}", i, chrono::offset::Local::now());
    thread::sleep(time::Duration::from_secs(1));
  }
  println!("Finished")
}




يمكن تجربته وتشغيله والتعديل عليه في موقع Rust Playground على هذا الرابط. نجد أن لغة Rust تستخدم كثير من الرموز التي تحتاج لضغط مفتاح shift مثل !, : { وهذه من اﻷشياء المزعجة أثناء كتابة الكود.

وهذا نفس البرنامج بلغة البرمجة Go للمقارنة بين مقروئية اللغتين:

// You can edit this code!
package main

import (
	"fmt"
	"time"
)

func main() {
	fmt.Println("Go Language")
	for i := range 10 {
		fmt.Printf("Time %d: %s\n", i+1, time.Now().String())
		time.Sleep(time.Second)
	}
	fmt.Println("Finished")
}

كذلك يمكن تشغيله من هذا الرابط.

وهذا نفس المثال بلغة البرمجة C:

#include<stdio.h>
#include<time.h>

int main()
{
    struct timespec waitt = { 1/*seconds*/, 0/*nanoseconds*/};

    for (int i=1; i<=10; i++) {
      time_t t;
      time(&t);

      printf("Time %d: %s", i, ctime(&t));
      fflush(stdout);
      nanosleep(&waitt,NULL);
      
    }
    printf("Finished");
    return 0;
}

ثم ننتقل إلى برنامج أكثر تعقيداً، وهو برنامج سطر أوامر command line لعرض محتويات صفحة أو خدمة ويب، كذلك يعرض حالة الصفحة أو الرابط أي ما يسمى status code في حالة النجاح يكون 200 Ok وفي حالة أن الصفحة غير موجودة يرجع 404 not found بالإضافة إلى حالات أخرى.

المثال اﻷول بلغة البرمجة C:

#include <stdio.h>
#include <curl/curl.h>

int main(int argc, char **argv) {
  
  if (argc != 2) {
    printf("Please type URL parameter\n");
  } else {
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if(curl) {

      curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
      /* example.com is redirected, so we tell libcurl to follow redirection */
      curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

      /* Perform the request, res gets the return code */
      res = curl_easy_perform(curl);
      /* Check for errors */
    	long http_code = 0;
	    curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &http_code);
      fprintf(stderr, "Status: %d\n", (int)http_code);

      if(res != CURLE_OK)
        fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

      /* always cleanup */
      curl_easy_cleanup(curl);
    }
  }
  return 0;
}

نجد أن به تعقيد، ويحتاج للربط مع مكتبة clib وتحتاج إلى تثبيت مكتبة في نظام التشغيل، ثم إضافة الباراميتر التالي أثناء الترجمة وربط البرنامج: -l curl

وهذا نفس المثال بلغة البرمجة Go :

// getPageContent project main.go
package main

import (
	"fmt"
	"io/ioutil"
	"os"
	"time"

	"net/http"
)

func CallURL(aurl string) (result string, status string, err error) {

	timeout := time.Duration(time.Duration(10) * time.Second)

	client := http.Client{
		Timeout: timeout,
	}
	var response *http.Response
	var req *http.Request
	req, err = http.NewRequest("GET", aurl, nil)

	response, err = client.Do(req)

	if err == nil {
		status = response.Status
		var buf []byte
		buf, err = ioutil.ReadAll(response.Body)
		if err == nil {
			result = string(buf)
			response.Body.Close()
		}

	}

	return
}

func main() {
	fmt.Println("Call URL")
	if len(os.Args) > 1 {
		result, status, err := CallURL(os.Args[1])
		if err == nil {
			fmt.Println("Status: ", status)
			fmt.Println(result)
		} else {
			fmt.Println("Error:", err.Error())
		}
	} else {
		fmt.Println("Please type URL in parameter")
	}
}

نجد أن البرنامج طويل قليلاً، لكن يمكن ترجمته مباشرة ولا يحتاج إلى تثبيت أي مكتبة إضافية حيت تتميز اللغة بأن لها مكتبة run-time كبيرة مثلها مثل لغة Python .

وهذا مثال لغة Rust، وهو أكثر اختصاراً لكن أقل مقروئية، حيث أن به بعض القواعد غير المفهومة، وجدته في هذا الرابط مع برامج أخرى، لكن للأسف لم تعمل، نتج عنها خطأ مع أني امس حدثت نُسخة مترجم Rust إلى أخر نسخة وهي 1.74.1 ، لكن فقط عمل البرنامج اﻷول لكنه لا يحتوي على الـ status code ولا الـ command parameter.

extern mod http;
use http::client::RequestWriter;
use http::method::Get;
use http::status;
use std::os;

fn main() {
    let request = RequestWriter::new(Get, FromStr::from_str(os::args()[1]).unwrap());
    let response = match request.read_response() {
        Ok(response) => response,
        Err(_request) => unreachable!(), // Uncaught condition will have failed first
    };
    if response.status == status::Ok {
        println!("Oh goodie, I got me a 200 OK response!");
    } else {
        println!("That URL ain't returning 200 OK, it returned {} instead", response.status);
    }
}

إعادة كتابة البرامج القديمة والتي تبلغ ملايين اﻷسطر بلغة برمجة جديدة تتطلب وقتاً طويلاً وهو ليس موضوع سهل وأحياناً يكون غير مجدي، أتوقع أن تظل البرامج القديمة مكتوبة بلغة سي عشرات السنين، مثله مثل التحول إلى بروتوكول اﻹنترنت الجديد IP6 حيث مازال بروتوكول IP4 سائداً رغم مشاكله وبالرغم أن بروتوكول IPv6 قارب الثلاثة عقود من إصداره.

تغيُّر الاقتصاد في الحرب

السلام عليكم ورحمة الله

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

سوف مدينة كسلا

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

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

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

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

بيتنا في قرية الكرفاب