برجاء تسجيل الإعجاب بالصفحة لتصلك كتاباتي على فيسبوك

المتابعون للمدونة

الأحد، 27 نوفمبر، 2016

وعلى الذين يطيقونه



هل تلفت نظركم الكلمة "يطيقونه" في هذه الآيات؟:

(يَا أَيُّهَا الَّذِينَ آمَنُواْ كُتِبَ عَلَيْكُمُ الصِّيَامُ كَمَا كُتِبَ عَلَى الَّذِينَ مِن قَبْلِكُمْ لَعَلَّكُمْ تَتَّقُونَ {183} أَيَّامًا مَّعْدُودَاتٍ فَمَن كَانَ مِنكُم مَّرِيضًا أَوْ عَلَى سَفَرٍ فَعِدَّةٌ مِّنْ أَيَّامٍ أُخَرَ وَعَلَى الَّذِينَ يُطِيقُونَهُ فِدْيَةٌ طَعَامُ مِسْكِينٍ فَمَن تَطَوَّعَ خَيْرًا فَهُوَ خَيْرٌ لَّهُ وَأَن تَصُومُواْ خَيْرٌ لَّكُمْ إِن كُنتُمْ تَعْلَمُونَ {184})

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


ضغط زر على شريط الأدوات



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

ج: هذه المشكلة لا تكون ملحوظة في معظم الحالات، وتظهر إذا كان شريط الأدوات موضوعا على نموذج صغير الحجم يظهر دائما أعلى باقي النوافذ:
Form1.TopMost = true

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

لاحظ أن مؤشر الفأرة قد يكون فوق شريط الأدوات لكنه يمر فوق منطقة فارغة من الأزرار، وهذا سيجعل الوسيلة GetItemAt تعيد null (Nothing) وهذا سيسبب خطأ عند استدعاء الوسيلة PerformClick، لهذا يجب كتابة شرط للتأكد من أن القيمة العائدة من الوسيلة GetItemAt ليست null أو يمكن اختصار الكود إذا كنت تستخدم دوت نت 2015 باستخدام العلامة ؟ التي لا تنفذ ما بعدها إلا إذا كان لما قبلها قيمة غير منعدمة.. مثال:
T.GetItemAt(p)?.PerformClick( )

سأضع لكم الكود بلغة C# ثم بلغة VB.NET.. هذا هو كود سي شارب:

private void Form1_Activated(object sender, EventArgs e)
{
    // تحويل موضع مؤشر الفأرة من إحداثيات الشاشة إلى إحداثيات النموذج
    Point p = this.PointToClient(Cursor.Position);
    Control c = this.GetChildAtPoint(p);
    if (c is ToolStrip)
    {
        ToolStrip T = (ToolStrip)c;
        // تحويل موضع مؤشر الفأرة من إحداثيات الشاشة إلى إحداثيات شريط الأدوات
        p = T.PointToClient(Cursor.Position);
        T.GetItemAt(p)?.PerformClick( );       
    }
}
وهذا هو الكود بلغة VB.NET:
Private Sub Form1_Activated(ByVal sender As Object,
                ByVal e As EventArgs) Handles Me.Activated
        ' تحويل موضع مؤشر الفأرة من إحداثيات الشاشة إلى إحداثيات النموذج
        Dim p As Point = Me.PointToClient(Cursor.Position)
        Dim c As Control = Me.GetChildAtPoint(p)
        If TypeOf c Is ToolStrip Then
            Dim T As ToolStrip = CType(c, ToolStrip)
            ' تحويل موضع مؤشر الفأرة من إحداثيات الشاشة إلى إحداثيات شريط الأدوات
            p = T.PointToClient(Cursor.Position)
            T.GetItemAt(p)?.PerformClick( )
        End If
    End Sub

 


الجمعة، 25 نوفمبر، 2016

وداعا



وداعا 

ما بالُ أيامٍ تَمرُّ سِراعا؟ = كلُّ الأحبّةِ يَرحلونَ تِباعا

هُم يَذهبونَ ويَحملونَ قلوبَنا = ومآثرًا مِنْ عالمٍ قد ضاعا

يا كلَّ مَن قدْ فارقوا أيامَنا = يا ليتَ نُرجعُ ما مَضَى إرجاعا

لولا يقينٌ بالإلهِ وبَعْـثِهِ = لاستنزفَ الحزنُ النُّهَى المُلتاعا

هي سُنّةُ الدنيا: غُرورٌ زائلٌ = إن كنتَ فيها قد أردتَ مَتاعا

أَحبِبْ إذنْ مَن شِئتَ، أنتَ مُفارقٌ! = كأسُ السعادةِ تَنتهي أوجاعا

لا لومَ لو أنّي لكمْ قد قلتُها = يا كلَّ أحبابي الكرامِ: "وداعا"

محمد حمدي غانم
22/11/2016


تحديد أحد الأزرار على شريط الأدوات



س: كيف يمكن تحديد أحد الأزرار على شريط الأدوات ToolStrip باستخدام الكود؟

ج: يمكن تحديد أي أداة على النموذج باستدعاء الوسيلة Focus الموروثة من فئة الأداة Control.. لكن العناصر التي توضع على شريط الأدوات (مثل زر شريط الأدوات ToolStripButton) لا تمتلك هذه الوسيلة، لأنها ليست مشتقة من الفئة Control، وبدلا من هذا تملك الوسيلة Select.. لهذا يمكن تحديد شريط الادوات نفسه أولا باستخدام الوسيلة Focus ثم تحديد أحد العناصر الموضوعة عليه باستخدام الوسيلة Select.. مثال:

ToolStrip1.Focus( );
ToolStripButton1.Select( );


الأربعاء، 23 نوفمبر، 2016

تعويذة الليل 4



الصمتُ،
الوحْشةُ،
وكتابٌ،
ودُخانُ المصباحِ الأزرقْ

تعويذةُ شبحٍ
محْبوسٍ في السّاعةِ والصّمْتِ الأخْرقْ
 
لا يُعْرَفُ ماذا تستدعي!
لا يُوجدُ توضيحٌ مُرْ فَقْ!

في بُطْءٍ عَدَميٍّ،
تمتمَ يقرؤها الجنّيُّ المُرْهُقْ

دوَّتْ زمْجرةُ الأرْياحِ
ودمّرتِ الأشباحُ الأحْمقْ!
 


#انتهاك_حدود_اللحظة
#قصيدة #تعويذة_الليل
محمد حمدي غانم، 2000
لتحميل ديوان انتهاك حدود اللحظة كاملا:


حلقة التكرار Loop



تكرار تنفيذ أمر معين أو مجموعة من الأوامر لأي عدد من المرات:

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

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

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

 

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

 

كما ترى: لن يحتاج المبرمج إلا إلى كتابة خمسة أوامر فحسب، لطباعة أسماء 80 مليون مواطن.. هذا هو ما يميز الحاسوب عن كتبة الدواوين في عهد الملك مينا!

وسنتعرف لاحقا على كيفية كتابة كود التكرارات Loops في فيجيوال بيزيك.

 

من كتاب المبرمج الصغير، للصف الثالث الإعدادي، للتنزيل مجانا:


 


تعويذة الليل 3



"حينَ تصيرُ السّاعةُ سجْنَ العقْلِ
سيشْقى القلْبُ وتشْقى"

"حينَ تصيرُ النّارُ فتاةً
سوفَ تصيرُ جِنانُكَ عشْقا"

"اسكبْ نفْسَكَ
وارْشُقْ في آلامِ وجودِكَ ذاتَكَ رشْقا"

"ستثورُ رياحُ طواحينِكَ
حينَ تَشُقُّ جمودَكَ شقّا"

"خُذْ رُوحَ الأشياءِ جميعًا
واهبطْ في أعْماقِكَ وارْقَ" 

#انتهاك_حدود_اللحظة
#قصيدة #تعويذة_الليل
محمد حمدي غانم، 2000
لتحميل ديوان انتهاك حدود اللحظة كاملا:



الخوارزمية Algorithm



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

 

من كتاب المبرمج الصغير، للصف الثالث الإعدادي، للتنزيل مجانا:


 


السبت، 12 نوفمبر، 2016

الثورات وما بعدها



الثورات وما بعدها
ماذا فعلنا، وماذا ننتظر 

هناك فارق جوهري بين دعوات التظاهر في 25 يناير وبين دعوات التظاهر في المرحلة الحالية: فالناس التي كانت سكرى بالحماس حينها مرت بالتجربة بالفعل ورأت النتائج وأفاقت على واقع مخيف!

ثورة تونس أشعلت حماسا ساذجا في نفوس الشعوب العربية، بعد أن رأوا أن بعض التظاهرات التي تكلفت 300 شهيد فقط قد أطاحت بنظام قمعي مستبد في شهر، فقال الجميع: ولم لا؟.. نحن أيضا نستطيع!

وبعد سقوط نظام مبارك في مصر، وطوال عامين ونصف، كررت فكرتين كثيرا في كلامي على أمل أن يفيق الناس، لكن صوتي لم يصل: 

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

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

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

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

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

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

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

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

وما ألاحظه منذ فترة أن الإخوان سكتوا عن كل هذا، واكتفوا بكسب الوقت.. السيسي وعصابته يحاولون كسب الوقت، والإخوان ومن معهم يحاولون كسب الوقت، وكل يراهن على انهيار الثاني أولا!!

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

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

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

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

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

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

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

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


مقارنة قيمتين واتخاذ القرار



مقارنة قيمتين واتخاذ القرار بناء على نتيجة المقارنة:

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

 

اقرأ الطول الذي يمدك به المستخدم.
إذا كان الطول أصغر من 60 سم إذن:
اكتب على الشاشة: "الشخص قصير"
غير ذلك: إذا كان الطول أكبر من 160 سم إذن:
اكتب على الشاشة: "الشخص طويل"
غير ذلك:
اكتب على الشاشة: "الشخص متوسط الطول"
نهاية الشرط.

 

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

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

 

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

 

من كتاب المبرمج الصغير، للصف الثالث الإعدادي، للتنزيل مجانا:


الجمعة، 11 نوفمبر، 2016

كبرياء




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

محمد حمدي غانم
2016


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





بالأمس أعددت ويندوز سيرفر 2016 على حاسوبي المحمول Laptop.. تسمح ميكروسوفت بتجربة هذه النسخة مجانا لمدة نصف عام.. أريد أن أستخدمها لإعداد سيكويل سيرفر 2016 عليها.

تراودني فكرة الكتابة عن ويندوز سيرفر 2016.. فهل منكم أحد يمكن أن يهمه هذا الكتاب بالعربية؟

أما الفكرة الأهم، فهي الكتابة عن سيكويل سيرفر 2016، وهو كتاب أؤجله منذ سنوات، لأنه موجه إلى المهتمين بالعمل كمديرين للنظام وليس للمبرمجين بشكل أساسي.. فهل منكم أحد يهتم بمثل هذا الكتاب؟

طبعا تشغيل سيكويل سيرفر على ويندوز سيرفر مهم عند تشغيل مواقع ASP.NET، وأنا أعمل في كتاب عن ASP .NET MVC Core لكني مضطر لتأخيره قليلا إلى حين صدور دوت نت 15، لأن دوت نت كور ما زالت تحت التطوير، وبيئة فيجوال ستديو ستشهد بعض التغييرات والإضافات.. لنفس السبب ليس ممكنا الكتابة الآن عن  Entity Framework Core ولا UWP .. فكرت حتى في البدء في كتاب المواضيع المتقدمة في إطار العمل المؤجل بدوره منذ سنوات، لكن أيضا يجب أن أنتظر صدور دوت نت كور بشكل مستقر، لأشير للتوافقات والاختلافات بين إطار العمل ودوت نت كور!

لكل هذا، رأيت أن أتعرف على الوافدين الجديدين ويندوز سيرفر 2016 وسيكويل سيرفر 2016 إلى أن تصل دوت نت إلى وضع الاستقرار.

 

أرجو أن يخبرني كل منكم في التعليقات ما هي الكتب التي تهمه أكثر مما يلي:

1- ASP.NET MVC Core

2- Entity Framework Core

3- Universal Windows Platform (UWP)

4- المواضيع المتقدمة في  Framework و  .NET Core

4-  SQL Server 2016

5-  Windows Server 2016


صفحة الشاعر