أهم أقسام المدونة

الصفحات

الخميس، 28 سبتمبر 2017

فارس من زمن العشق


فارس من زمن العشق

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

محمد حمدي غانم
23/9/2017

DataSet Class


فئة مجموعة البيانات DataSet Class 

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



وتمتلك مجموعة البيانات الحدث التالي: 

  فشل الدمج MergeFailed:
ينطلق إذا فشلت عمليّة دمج بيانات جدولين باستخدام الوسيلة Merge.. يحدث هذا مثلا، إذا كان العمود المستخدم كمفتاح أساسي في السجل القادم، مختلفا عن العمود المستخدم كمفتاح أساسي في السجل الموجود مجموعة البيانات.
والمعامل الثاني e لهذا الحدث من النوع MergeFailedEventArgs، وهو يمتلك الخاصيتين التاليتين:

Table
تعيد كائن الجدول DataTable الذي رفض عملية الدمج.
Conflict
تعيد نصا يشرح سبب التعارض الذي أدى إلى فشل عملية الدمج.
 
من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

 

ذنب هواك


ذنب هواك 

ذنبٌ هواكِ وما حبّي بمعصيةٍ = إلاّ غوايةَ حسنٍ في مُحَـيَّاكِ

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

يا ظبيةً في المَدَى ظلّت تُراوغُني = ما آنَ أنْ تَسقطي في أسرِ مَولاكِ؟

سرُّ الغرامِ إذا نُخفيه مُنكَشِفٌ = شمسُ الغروبِ بدتْ في الشرقِ: خدّاكِ!

يَدري الوَرَي بالذي عيناكِ أَفصَحَتا = والنبضُ في مهجتي قد صاحَ: أهواكِ

أبدو القَوِيَّ وفيكِ الضعفُ يأسرُني = سبحانَ مَن بالذي أوهاكِ.. قوّاكِ!

إني أريدُكِ، هذا الشوقُ أرَّقَني = لا شيءَ فيَّ أَرَى إلاّ تَمنَّاكِ

محمد حمدي غانم
21/9/2017

 

 

وسائل الفئة DataSet

وسائل الفئة DataSet: 

 محو Clear:
تمحو كل السجلات من كل جداول مجموعة البيانات، لكنها لا تمحو الجداول نفسها، ولا العلاقات بينها.. لاحظ أن هذه الوسيلة ستسبب خطأ في البرنامج لو كانت مجموعة البيانات تتعامل مع وثيقة XML من النوع XmlDataDocument. 

 تصفير Reset:
تفرغ مجموعة البيانات من جميع محتوياتها، بما في ذلك الجداول والعلاقات والقيود. 

 نسخ Clone:
تنسخ تركيب مجموعة البيانات (مخططات الجداول، والعلاقات والقيود) إلى مجموعة بيانات جديدة وتعيد مرجعا إليها.. لكنها لا تنسخ أي سجلات. 

 نسخ Copy:
تنسخ مجموعة البيانات كاملة (مخططات الجداول، والعلاقات والقيود والسجلات أيضا) إلى مجموعة بيانات جديدة وتعيد مرجعا إليها. 

 معرفة التغيرات GetChanges:
تعيد مجموعة بيانات جديدة، تحتوي جداولها على الصفوف التي تمّ تعديلها أو إضافتها أو حذفها منذ ملء مجموعة البيانات الأصلية، أو منذ آخر استدعاء للوسيلة AcceptChanges.. وتعيد هذه الوسيلة Nothing إذا لم تجد أية تغيرات في مجموعة البيانات.
لاحظ أن هذه الوسيلة قد تضيف إلى مجموعة البيانات الجديدة بعض الصفوف التي لم تتغير بياناتها، وذلك للمحافظة على صحة العلاقات والقيود بين الجداول، ما يتيح لك إعادة دمج مجموعة البيانات الجديدة بمجموعة البيانات الأصلية إذا أردت، دون حدوث أية أخطاء.
وتوجد صيغة ثانية لهذه الوسيلة، تستقبل إحدى قيم المرقم DataRowState، التي تمكنك من الحصول على السجلات التي حدث بها نوع محدد من التغيير دون سواه.. وهذه القيم هي: 

اخضعي


اخضعي 

كانت المرأة المسلمة تنادي زوجها سيدي.. وكانت المرأة المصرية في القرن الماضي تنادي زوجها "سي".. وصارت المرأة في العصر الحديث تنادي زوجها "بيبي" :D :D :D.. "بيبي" في عينك.. فلنعد إلى زمن الرجال:

أنا سيدٌ، خفقاتُ قلبِكِ لي سبايا فاخضعي

مِن لهفتي لا تَهرُبي.. بينَ الضلوعِ تَضَعضعي

ودَعِي قيادَكِ في يدي، وضَعي جناحَكِ لي.. ضَعي

وحذارِ عِصياني، إذنْ لأَذقتُ قلبَكِ مِبضَعي

أنا كلُّ ما تَبغينَ، هيّا من جَنايَ تَبضَّعي

زَلزلتُ صَرحَكِ شامخًا ويُريدُ أن يَنقضَّ.. عِي

لا ذُلَّ إلاّ في الهَوَى.. ذُوقي هوايَ، تواضعي 

محمد حمدي غانم
22/9/2017

* لزومية من وحي هذا المنشور:

 

 

خصائص الفئة DataSet


خصائص الفئة DataSet: 

 اسم مجموعة البيانات DataSetName:
تحدد اسم مجموعة البيانات، ليتم استخدامه كاسم لعنصر الوثيقة Document Element في كود XML عند حفظ مجموعة البيانات. 

 نطاق الاسم Namespace:
تحدد اسم النطاق الذي سيتم تحته حفظ مجموعة البيانات في كود XML. 

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

ملحوظة:
عند استخدام الوسيلتين ReadXml و ReadXmlSchema لتحميل البيانات أو المخطط في مجموعة البيانات، فإنهما تبحثان في ملف XML عن نطاق الاسم الموضح في الخاصية DataSetName، ومجوعة البيانات المميزة بالبادئة الموضحة في الخاصية Prefix، فإذا لم تعثر في الملف عن مجموعة بيانات تحقق هذين الشرطين، لا يتم تحميل أي شيء من الملف.

ويريك المشروع DataSetSample مثالا على استخدام هذه الخصائص.. ستجد هذا الكود مثلا في حدث تحميل النموذج:
Ds.Namespace = "My Project"
Ds.Prefix = "Authors-Books"
Ds.DataSetName = "DsBooks"
ويظهر تأثير هذه الخصائص عند ضغط الزر "حفظ المخطط في ملف"، حيث ستجد أسماء هذه الخصائص مستخدمة في تعريف مخطط مجموعة في الملف C:\DsBooksSchema.xml. 

 حساسة لحالة الأحرف CaseSensitive:
إذا جعلت قيمة هذه الخاصية True، فستصير عمليات المقارنة والترشيح Filtering حساسة لحالة الأحرف.. هذا يؤثر في نتائج الوسيلة DataTable.Select والخاصية DataColumn.Expression.. والقيمة الافتراضية لهذه الخاصية هي False.
لاحظ أن تغيير قيمة هذه الخاصية، سيغير تلقائيا قيمة الخاصية CaseSensitive الخاصة بكل جدول في مجموعة البيانات. 

 المحل Locale:

الثلاثاء، 26 سبتمبر 2017

وجاء المطر


وجاء المطر 



إذا فرّقَتْنا صروفُ القدرْ = وهذا الزمانُ بهجرٍ بدرْ
إذا غادرَ الطيرُ أرضَ الغرامِ سنينًا فحبي سيبقى الشجرْ
نخيلا بأرضِ الحياةِ يُغنّي لحبّكِ حتّى يجيءَ المطرْ
***
تَعلّلتُ بالصبرِ حتّى صَبَرْ! = رسمتُكِ زهرًا يَسرُّ النظرْ
رماحٌ من الحزنِ تَطعنُ قلبي فما لانَ في لحظةٍ، ما انكسرْ
يُوسوسُ لي اليأسُ في ليلِ سُهدي: ألا فَاخْشَ ظلمَ حبيبٍ غدرْ
ويومَ إذا بالهوى قد كفرتَ، صفعتَ المُنى فوقَ وجهِ القمرْ!
فقلتُ: فعهدُ المحبِّ الوفاءُ ولو كانَ في الشوقِ يَصلى سَقَرْ
ومعجزةُ الحبِّ بَذلُ العطاءِ بدونِ انتظارِ جزاءِ البشرْ
فقالَ: إذنْ ذُقْ صنوفَ العذابِ وغيرةَ قلبٍ يُحِسَّ الخطرْ
وعِشْ في انتظارٍ لما لا يجيءُ وقلْ عن جنونِكَ: هذا قدرْ!
وإياكَ يومًا تلومُ الغرامَ إذا الوجدُ بينَ الضلوعِ استعرْ
ستدركُ حتما بأني الصوابُ إذا ضاعَ في الوهمِ نصفُ العُمُر!
فقلتُ: اتئدْ، لا يُفيدُ الكلامُ إذا العشقُ بينَ الضلوعِ استقرّْ
سيُخزيكَ يومًا شروقُ الحبيبِ إذا لانَ عن صدِّهِ واعتذرْ
فتَرجعُ للدَّوحِ كلُّ الطيورِ ويَنبتُ في القلبِ أَبهَى الزَّهَرْ
رُويدًا رويدًا وصبرٌ جميلٌ، فيومًا سيأتيكَ مني الخَبَرْ
لقد أبلجَ الصبحُ للمُدلِجينَ وعادَ الحبيبُ وجاءَ المطرْ 

محمد حمدي غانم، 1994
(إعادة صياغة)

 

خريطة تدفق وتر المثلث القائم


س: ارسم خريطة التدفق لبرنامج يسمح للمستخدم بإدخال ضلعي الزاوية القائمة في مثلث قائم الزاوية، ومن ثم يقوم بحساب طول الوتر ومساحة سطح المثلث، ويعرضهما على الشاشة. 

الحل:

في هذه المسألة سنستخدم قاعدة رياضية معروفة، وهي قاعدة فيثاغورث، والتي تقول إن مجموع مربعي ضلعي الزاوية القائمة يساوي مربع الوتر.. أي أن:
طول الوتر = الجذر التربيعي لمجموع مربعي ضلعي القائمة.
لاحظ أننا في البرمجة نستخدم الرمز ^ للتعبير عن الأس.. فمثلا: 2 ^ 3 تعني 2 أس 3 .. وأنت تعرف أن الجذر هو مقلوب الأس، لهذا يمكننا كتابة الجذر التربيعي للعدد 4 كالتالي: (4 أس 1/2) أو (4 أس 0.5)، ويمكن أن نكتب هذا برمجيا كالتالي: (4 ^ 0.5).

رموز العمليات الحسابية المستخدمة في البرمجة
الجمع +
الطرح -
الضرب *
القسمة /
الأس ^
وسنحتاج في برنامجنا هذا إلى أربعة متغيرات:
ع1 و ع2: ضلعا الزاوية القائمة اللذان سيمدنا بهما المستخدم.
ع3: وتر المثلث قائم الزاوية الذي سنحسب طوله.
المساحة: مساحة سطح المثلث قائم الزاوية.. تعرف طبعا أن مساحة المثلث = نصف القاعدة × الارتفاع.. وبما أنه مثلث قائم الزاوية، فهذا يعني أن ضلعي القائمة هما القاعدة والارتفاع، لهذا ستكون مساحة سطحه = نصف حاصل ضرب ضلعي القائمة.. أي أن:
المساحة  =  ع1 * ع2 /2 . 



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

الاثنين، 25 سبتمبر 2017

الأسود


الأسود
قصيدة بطعم ربع قرن من خبرتي في كتابة الشعر 


مرَّتْ على قفصِ الأسودِ فَحَوقَلتْ:
........................ "ماذا دَها الآسادَ، كانت أَعظَما؟!

في (السيركِ) صارتْ للمدِّربِ لُعبةً
........................ بالسوطِ تَرضَى الذلَّ حتى تُطعَما

حتى تماثيلٌ لها، فيها بَدَتْ
........................ دونَ الشواربِ، لا أراها أوسما!

أينَ الأسودُ؟".. فقلتُ: في غاباتِها
........................ زُوري العَرينَ إذا أردتِ الضَّرغَما

لا تَعرِفُ الآسادُ إلاّ عزَّها
........................ والليثُ إن نَكَصَ الجميعُ تَقَدَّما

فاللهُ خالقُها بأحسنِ فطرةٍ
........................ سبحانَ مَن خلقَ الأسودَ فَكَرَّما

أمّا إذا ربَّى الجبانُ أسودَهُ
........................ صارتَ كِيانا كالعبيدِ مُحَطَّما

فَدَعوا الأُسودَ هناكَ في غاباتِها
........................ فلها زئيرُ الحُرِّ حينَ تَكَـلَّما

محمد حمدي غانم
23/9/2017 

* في القصيدة إشارة إلى تماثيل الأسود الأربعة الموضوعة على مدخلي كوبري قصر النيل بالقاهرة، فقد نسي النحات الفرنسي صنع شوارب لها!

ربع قرن من كتابة الشعر


ربع قرن من كتابة الشعر 

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


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


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

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

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

 

محمد حمدي غانم
24/9/2017

السبت، 23 سبتمبر 2017

قد طواك الموت عنا


قد طواك الموت عنا 


هكذا كنا شبابا كلُّ ما فينا بدايةْ
في ربيعِ العمرِ نمضي كلُّنا يسعى لغايةْ
مثلَ طيرٍ في السما نحيا ولا ندري النهايةْ
بَلْ علمنا.. كلُّنا ندري وتُنسينا الغوايةْ
سوفَ نمضي ذاتَ يومٍ، تنطوي للعمرِ رايةْ
صرتَ تدري يا صديقي حينَ أتممتْ الروايةْ
قد طواكَ الموتُ عنّا.. مَن نأَى واختارَ نايَه؟
للحياةِ القلبُ غنّي، ثم أفنى الموتُ نايَه!
مِتَّ، جزءٌ ماتَ منا.. كلُّ ذكرى أو حكايةْ
ذاكَ حكمُ اللهِ فينا.. محضُ حزنٍ لا شكايةْ
حينَ نحيا ذاكَ فضلٌ.. حينَ نَقضِي تلكَ آيةْ
محمد حمدي غانم
22/9/2017 

* نايه الأولى من النَّأْي بتخفيف الهمزة، ونايه الثانية من الناي. 

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