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

الأربعاء، 24 فبراير 2016

سذاجتي الأولى


سذاجتي الأولى 

وكنتُ ظننتُها حتمًا
ستغفرُ لي بلا لأْيٍ
حماقةَ قلبيَ الأبيضْ 

فقد كانتْ مُراهقةً،
بكلِّ براءةِ الأنثى تُخيّمُ بينَ أضلاعي
وسوسَنُ جَفنِها مُغمَضْ 

وكنتُ بدونِ تَجرِبةٍ بيومِ سَذاجتي الأولى
سَعَيتُ لأنْ أكلّمَها وكانَ القلبُ مذهولا
على أنسامِ أحلامي كصقرٍ نحوَها أنقضّْ 

فما إنْ ذقتُ عينيها
غدوتُ كمثلِ عُصفورٍ تَلَمّسَ دفءَ كفّيها
وضاعَ الشِّعرُ مِن ثَغري على أعتابِ خدّيها
وطارَ النبضُ من صدري،
يَماماتٍ مِن الأشواقِ، في تَهيامِها غنّتْ
لِمَوسمِ حُسنِها حنّتْ
تُناجي زَهرَ خدٍ بَضّ 

ولكنْ خِيفةً منّي
أشاحتْ طرْفَها عنّي
ولم تَرفُقْ بأشواقي،
مَضَتْ وبَقِيتُ في ظنّي
وعنّي عالمي يَنفضّْ 

أضاعتني، وما زالتْ تُعاندُني
حبيبةُ مهجتي عنها تُباعدُني
أيُسعدُها إذا بالهجرِ تَجلدُني
ودونَ حنانِها أمرضْ؟ 

إذنْ تَمضي كما شاءتْ
ستلقاني متى جاءتْ
يَفوحُ بعطرِها شِعري
فعِندي عشقُها كالفرضْ 

ملاكي، زهرتي، بدري
هواها النبضُ في صدري
فليتَ حبيبتي تدري
سمائي حبُّها والأرضْ 

محمد حمدي غانم
23/2/2016

الثلاثاء، 23 فبراير 2016

خطيئتي


يا حبَّ ليلى ما الغرامُ خطيئتي = ما ذنبُ قلبي أنّني أهواها

إن الطيورَ حبيسةٌ في صمتِنا = وهي انطلاقُ قصيدتي، وسَماها

محمد حمدي، 2011

 

اعتذري


أخطأتِ بحقي فاعتذري = مُرًّا في قلبي لا تَذَري

سُوقي من كِبْرِكِ قُربانًا = أَلقيهِ على مَذبحِ نُذُري

بُوحي بهوايَ بلا وَجَلٍ = لا يحيا عشقٌ بالحذرِ

محمد حمدي غانم، 2015

 

بلا قلب


يا قلبي فلتتركْ لوما = لامرأةٍ لم تَعشقْ يوما

واهرُبْ من عاتِي لُجَّـتِها = فستُغرِقُ مَن يُتقِنُ عَوما

محمد حمدي غانم، 2015

الاثنين، 22 فبراير 2016

التعويض عن النصوص


التعويض عن النصوص String Interpolation في سي شارب 6:

يمكن تشبيك النصوص في إصدارات سي شارب السابقة لدوت نت 2015 باستخدام العلامة + .. انظر المثال التالي (بافتراض أن لدينا متغيرات أسماؤها Time، Imp، Duration، FriendName):
var T = Time.ToString("h:mm tt\r\n");
var D = Duration.ToString("h\:m");
var E = (Time + Duration).ToString("h:mm tt");
var Msg = "You have " + Imp + " meeting with " +  
                  FriendName + "\r\n" + "at " + T + " for " +
                  D + ".\r\n" + " ends at " + E;
MessageBox.Show(Msg);
إذا لم يكن يعجبك تعقيد كود التشبيك السابق، فقد سهلت دوت نت 2015 هذه العملية كثيرا، بالسماح بكتابة اسم المتغير وصيغة تنسيقه داخل النص مباشرة.. بهذه الطريقة يمكن اختصار الكود السابق إلى ما يلي:
var Msg = $@"You have {Imp} meeting with {FriendName}
at {Time:h:mm tt}
for {Duration:h\:m}
ends at {Time + Duration:h:mm tt}";
MessageBox.Show(Msg);
لاحظ ما يلي:
- يمكنك تقسيم النص الموضوع بين علامتي التنصيص على أكثر من سطر مباشرة بدون الحاجة إلى الرمز \r\n، بشرط وضع الرمز @ أمام علامة التنصيص، لإخبار سي شارب أن كل رمز في النص (بما في ذلك السطر الجديد) سيستخدم كحرف وليس كرمز وظيفي.. أي أن السطور التي تضيفها ضمن النص في محرر الكود، ستكون جزءا منه عند عرضه.. ولا تضِف مسافات في بداية كل سطر لتنسيق النص في محرر الكود، لأنها ستظهر في النص عند عرضه!
- إذا وضعت الرمز $ أيضا قبل علامة التنصيص، يمكنك وضع أي متغير داخل النص بين قوسين متعرجين {} وسيتم التعويض عنه بقيمته عند تنفيذ البرنامج.
- يمكنك استخدام الرمز @ بمفرده، أو الرمز $ بمفرده.. لكن إذا استخدمتهما معا (كحالتنا هذه) فيجب أن تكتب $ تليها @.. لو عكست الترتيب فستعطيك C# خطأ.
- إذا أردت استخدام صيغة تنسيق معينة للنص الموجود في المتغير، فضع بعده نقطتين متعامدتين : ثم اكتب صيغة التنسيق مباشرة.
واضح طبعا أن هذا التسهيل الجديد مختصر ومريح وأسهل في كتابته وأوضح في قراءته.
 

تحت الطبع:
المدخل العملي السريع إلى سي شارب 2015
بقلم م. محمد حمدي غانم

 


لتفاصيل أكثر عن كتبي المطبوعة:

 

 

الأحد، 21 فبراير 2016

رحمك الله يا هاني


ذهبت بالأمس أنا والصديق العزيز م. طه الحادق لزيارة قبر صديقنا الراحل هاني خفاجي، الذي استشهد برصاص المجرمين في سيناء أثناء عودته بأسرته بريا من الكويت، في آخر ليلة عيد الفطر الأربعاء 7/8/2013.

كان رحمه الله مرحا ذكيا قوي الشخصية خدوما يود أصدقاءه.. كان "جدعا" باختصار.

رحمك الله يا هاني وتقبلك في الشهداء، وجعل دمك لعنة على الطغاة المجرمين في الدنيا والآخرة.

 

مغرورة


مغرورة 

هيَ نفسُ الصورةْ

لامرأةٍ لمْ تُصلحْ أجزائي المكسورةْ

لم تَحضُنْ عطري رئتاها

مذهولا في الروعةِ تاها

لمّا هشَّمَتِ القارورةْ

لم تَشعرْ باللهفةِ دُوني

لم تَجمعْ شَذَراتِ جنوني

لتحاولَ صنعَ البَلُّورةْ

أسطورةُ حسنٍ فاتنتي

شريرةُ قلبٍ

مغرورةْ!

محمد حمدي غانم، 2015

 

 

هكذا للحب نهفو


يا فراشةَ أمنياتي = لا تحومي حولَ ناري

بعضُ هذا الضوءِ دِفءٌ = بعضُهُ قيظُ استعاري

ليسَ عذرا بردُ ليلٍ = واشتياقُ القلبِ عاري

من نقيضٍ لنقيضٍ = ليسَ معنى لاضطرارِ

دَيدَنُ النيرانِ حرقٌ = ولها وَمْضُ انبهارِ

هكذا للحبِ نهفو = ثم نَفنَى باغترارِ

فاصطبارُ القلبِ أولى = ناظرًا دِفءَ النهارِ

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

3/1/2016

 

الأربعاء، 17 فبراير 2016

زوبعة اللهفة


يا سيدةَ القلبِ أغيثي القلبَ مِن الأحزانْ

مِن حِقَبٍ وأنا ولهانْ

لكنّ فؤادي مطمورٌ في وحشةِ وادي النسيانْ

تنثرُني زوبعةُ اللهفةِ أتلاشى بينَ الحرمانْ

محمد حمدي غانم، 2014

 

حرام


ماذا تبقّى بينَنا غيرَ الكلامْ؟

أنهارُ أشعارٍ تَبعثَرَ نزفُها بينَ الركامْ؟

إن الضمائرَ صِرْنَ أضدادًا تَرَى إكمالَ قصّـتِنا حرامْ!

والعقلُ يَقتلُ شكُّهُ معنى الغرامْ

والقلبُ في يأسٍ أقامْ

لا زهرَ ينمو في غيابات الظلامْ

لا حبَّ يحيا بينَ أحلامٍ حطامْ

لا شعرَ لا أوراقَ لا أقلامْ

الآنَ نصحو إنّها أوهامْ

محمد حمدي غانم، 2012

 

إخلاص


والذي بالجمالِ أمدَّكْ = لا هَوَى في حياتيَ بَعدَكْ

فرحتي في بِعادِكِ جَزْرٌ = مُنيتي أنْ أُعانقَ مَدَّكْ

سائلٌ، مِنكِ أنشدُ رَدَّكْ = ليتَ شوقَ فؤادِكِ ردَّكْ

كلُّ ما أرتجي بخيالي = زهرتي أنْ تُداعبَ خدَّكْ

محمد حمدي، 2016

ملحوظة عروضية:

هذه صيغة خاصة من المتدارك على وزن: (فاعلنْ فاعلنْ فعلنْ فعْ) وهي تكافئ (فاعلنْ فاعلنْ فَعِلاتنْ)

 

الاثنين، 15 فبراير 2016

زوال


همساتٌ لامرأةٍ ما
(60) 

ألأنّني أحببتُها = طعنَتْ فؤادي بالتعالي؟!
لم تَكترثْ بتلهُّفي = لمْ تستمعْ حتّى سؤالي!
وهي التي في لمحةٍ = من حُسنِها سكنَتْ خيالي
لكنّها من كِبْرِها = سارتْ حثيثا للزوالِ!

محمد حمدي، 2013

 

اقتراح


همساتٌ لامرأةٍ ما
(59)

عِندي لعينيك اقتراحْ = زيدي غرورًا في الصباحْ

فالعشقُ يُلهبُهُ الجَوَى = والشِّعرُ تُلهمُهُ الجراحْ

ثُمَّ اسكُنيني بالضُّحَى = فالقلبُ يَهفو لارتياحْ

آوِي لصدري كاحتضا = نِ الزَّهرِ في عصْفِ الرياحْ

محمد حمدي، 2015

 

وداع


همساتٌ لامرأةٍ ما
(58)

أينَ التقاؤكِ والحياةُ وداعُ؟ = لا يومَ بعدكِ تَفتُرُ الأوجاعُ

ما قدْ تبّـقَى بعدَ هجركِ: فكرةٌ، حلمٌ جميلٌ، واقعٌ، وصراعُ!

تاهتْ حروفي في دروبِ قصائدي = كلُّ المعاني بعدَ حبِّكِ ضاعوا

والعينُ ساهدةٌ بليلةِ وحشتي = والقلبُ يبكي والنُّهَى يَرتاعُ

محمد حمدي، 2013

 

السبت، 13 فبراير 2016

إلقائي لقصيدة "منحتك فرصة أخرى"


هذا هو إلقائي لقصيدة "منحتك فرصة أخرى":


وقد سبق نشرها هنا مكتوبة:

 

أنثى بطعم الفلفل الحرّاق!


أنثى بطعم الفلفل الحرّاق! 

عامانْ

مِن بعدِ عمرٍ ليسَ في الحُسبانْ

لا شيءَ يُوقظُ قلبَها الغفلانْ

وأنا أنا

في لهفتي عطشانْ

غنّيتُها

لم تَسمعِ الألحانْ

لم تتّعظْ مما مضى

والعمرُ منّا ضاعَ في الحرمانْ

غابتْ وعادتْ: إنّها جُرحانْ

غابتْ وعادتْ: عَندُها ما لانْ!

تَحتالُ قاتلةً

تَختالُ غافلةً

وتَتيهُ ناهلةً

مِن شِعريَ الولهانْ

والزهرُ مشتاقٌ لِيَغفوَ حالمَا في حضنِها وسنانْ

أحلى النساءِ بمهجتي

ستُّ الحسانْ

لا شيءَ يلفتُ قلبَها في روعةِ البستانْ

إلا جراحُ الشوكِ في الأفنانْ!

فلقلبِها لا شيءَ راقْ

لا تَشتهي غيرَ الفِراقْ

تُلقي رسائلنَا، سُدُى

تتمزّقُ الأوراقْ

خُيَلاؤها يَجتاحُها

أُنثى بطعمِ الفُلفلِ الحرّاقْ!

وجهٌ رقيقٌ قاتلٌ فتّانْ

شفتا جراحٍ

بَلسمٌ عينانْ

فَرَسٌ جموحٌ أَعيَتِ الفرسانْ

عُمرًا سبتْـني

فوقَهُ عامانْ

فالآنَ أسألُ قلبَها

إن ثابَ يومًا للهوَى وأفاقْ:

لم يَبقَ ما يكفي

فأنَّى ترتوي الأشواقْ؟

أبغي الإجابةَ

إنّني حيرانْ!

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

11/2/2016

 

 

الأربعاء، 10 فبراير 2016

مللت


 لا تُنادي من جديدٍ صدقيني قد مللتْ

أنتِ يا كِذْبا جميلاً عن حياتي قد أَفَلْتْ

إن تلومي فلتلومي: كيفَ عن حبي غفلتْ

كيفَ قد هنّاكِ نومٌ بعدما قلبي قتلتْ

قد حرمتِ منكِ قلبي، ما مِن الشهدِ انتهلتْ

فاتركيني لا تزيدي فوقَ ما إنّي احتملتْ

محمد حمدي غانم، 2015

الثلاثاء، 9 فبراير 2016

للتحميل مجانا مرجع قواعد البيانات


للتنزيل كاملا مجــــــانا: مرجع:  

من الصفر إلى الاحتراف:
برمجة قواعد البيانات
باستخدام تقنية ADO.NET 

في فيجيوال بيزيك دوت نت 2010 

بقلم:
م. محمد حمدي غانم 

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

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

فادعوا له بالرحمة والمغفرة

ومن كان منكم في الحرمين الشريفين وكان قادرا على عمل عمرة له، فجزاه الله خيرا.  

أدعو الله أن يكون هذا الكتاب وباقي كتبي من العلم الذي ينتفع به، وأن يجعل الله لأبي نصيبا من ثوابه، فيكون من عمله الذي لا ينقطع بموته. 

اللهم ارحم أبي واغفر له وكفر عنه سيئاته وقه من عذاب القبر وقه من عذاب النار، وأدخله الجنة وأعلِ منزلته فيها
واحفظ والدتي وبارك في عمرها
اللهم ارحم والديّ كما ربياني صغيرا
 

روابط تنزيل نسخة فيجوال بيزيك من الكتاب:

ويمكن أيضا تنزيل نسخة سي شارب من هذا الكتاب مجانا:

مقدمة 

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

ويبدأ هذا الكتاب الرحلة معك من الصفر، ليعرفك على المفاهيم الأساسية اللازمة للتعامل مع قواعد البيانات، وكيف تنشئها في Access و SQL Server 2008، وكيف تكتب الاستعلامات التي تحصل على البيانات منها باستخدام لغة SQL.

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

ويعلمك الكتاب أيضا كيف تعرض البيانات للمستخدم من خلال تقنية الربط Binding، ويشرح بالتفصيل أهم الأدوات المخصصة لهذا الغرض، مثل موجه الربط BindingNavigator ومصدر الربط BindingSource وجدول العرض DataGridView ومكرر البيانات DataRepater.

***

ويشرح الكتاب بالتفصيل أكثر من 50 مشروعا متنوعا تغطي محتوياته، لتتعلم من خلالها:

-  كيف تحصل على البيانات من قواعد البيانات بمختلف الطرق، سواء باستخدام قارئ البيانات DataReader أو موصل البيانات DataAdapter أو موصل الجدول TableAdapter.

-  كيف تحتفظ بالبيانات في الذاكرة، باستخدام مجموعة بيانات DataSet سواء كانت عادية أو محددة النوع Typed.

-      كيف تنقل البيانات بين نوعين مختلفين من قواعد البيانات.

-  كيف تحفظ البيانات الثنائية Binary Data في ملفات مستقلة على الخادم خارج قاعدة البيانات في SQL Server 2008.

-  كيف تعرّف المعاملات Parameters والمعاملات الجدولية
Table-Valued Parameters، وكيف تستخدمها لتمرير البيانات إلى الإجراءات المخزنة في Sql Server 2008.

-  كيف تحمي قاعدة البيانات من القراصنة الذين يحاولون دس الاستعلامات SQL Injection من خلال مشروعك.

-  كيف تقرأ البيانات الثنائية والنصية الضخمة تتابعيا Sequentially على صورة أجزاء في SQL Server 2008.

-      كيف تنشئ الإجراءات المخزنة في Access.

-      كيف تحفظ البيانات في ملف XML وكيف تستعيدها منه مرة أخرى.

-  كيف تستخدم مخطط XML لإنشاء مجموعات بيانات خاصّة
Custom DataSet لا تعتمد على قاعدة بيانات.

-  كيف تتعامل مع علاقة واحد بمتعدد One-To-Many Relation، وعلاقة متعدد بمتعدد Many-To-Many Relation، والعلاقة الذاتية Self Relation.

-  كيف تستخدم مصانع المزودات Provider Factories لكتابة فئات عامة قادرة على التعامل مع أي نوع من قواعد البيانات، مما يختصر الكود الذي تكتبه، و يمهد لك الطريق لإنشاء مشاريع متعددة الطبقات
N-Tier Applications.

-  كيف تحل مشاكل تصارع أكثر من مستخدم على حفظ البيانات في نفس اللحظة باستخدام التطابق المتفائل Optimistic Concurrency.

-  كيف تعرض البيانات في اللافتات ومربعات النص والقوائم والجداول، وكيف تربط كل هذه العناصر معا.

-  كيف تنشئ أنواعا جديدة من أعمدة جدول العرض، تعرض خاناتها أداة اختيار التاريخ أو شجرة منسدلة أو أي نوع آخر تريده من الأدوات.

-  كيف تجعل جدول العرض يعمل في الوضع الافتراضي Virtual Mode وكيف تضيف إليه تقنية تقسيم السجلات على صفحات Paging.

-  كيف تنشئ قالبا لعرض كل سجل، وكيف تكرر عرضه باستخدام مكرر البيانات DataRepeter.

-      كيف تستخدم مكرر البيانات في الوضع الافتراضي Virtual Mode.

وغير هذا الكثير.

***

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

باختصار: هذا هو الكتاب الذي تبحث عنه.

والله ولي التوفيق

 

 

لمن هذا الكتاب:

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

-  أساسيات كتابة الكود بلغة فيجيوال بيزيك دوت نت، كتعريف المتغيرات وكتابة جمل الشرط وحلقات التكرار Loops، وكتابة واستدعاء الدوال Functions.

-  أساسيات ومفاهيم البرمجة الموجهة بالكائنات OOP، كالفئات Classes والواجهات Interfaces والوراثة Inheritance.

-  أساسيات التعامل مع إطار العمل، وفئاته الرئيسية، خاصة المجموعات Collections والملفات Files وفئات معلومات الثقافة CultureInfo.

-  أساسيات التعامل مع مشاريع الويندوز، والأدوات المختلفة كمربع النص TextBox ومربع الاختيار CheckBox والقوائم Lists.

فإذا لم تكن تجيد هذه الأساسيات، فننصح بقراءة القسم الأول من كتابنا "المدخل العملي السريع إلى فيجوال بيزيك دوت نت"، فهو يغطي هذه المواضيع باختصار من خلال إنشاء مشروع عملي كامل مشروح بالتفصيل.. أما النصف الثاني من الكتاب، فيشرح مشروع قواعد بيانات كاملا مكتوبا بتقنية LinQ To SQL وهي غير مشروحة في الكتاب الذي تقرؤه الآن.. وهذا معناه أن كتاب المدخل العملي مكمل لهذا المرجع، فهو من جهة يشرح مشروع قواعد بيانات واحدا كبيرا بينما يستعين المرجع الذي بين يديك بعشرات المشاريع الصغيرة لشرح محتواه، كما أن هذا المرجع يشرح تقنية ADO.NET بينما يعطيك كتاب المدخل العملي فكرة جيدة عن استخدام النموذج التصوري Conceptual Model باستخدام تقنية LinQ To SQL.

  

محتويات الكتاب

 

      مقدمة 18

      لمن هذا الكتاب     20

 

-1-

تركيب قواعد البيانات Database Structure

 

صفحة الشاعر