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

الجمعة، 31 يناير 2014

ممكن كلمة؟


ممكن كلمة؟
جيتلِك شوقي ملوّن وشّي ... لمّا عليكي الردّ ما بانشي
خطوة تشد الخطوة ورجفة تزلزل قلبي وعمره ما خافشي
نفسي أقولك إني باحبّك، حبّ بيصدق ما بيكدبشي
نفسي أقولك إنك حلمي وقبلك عمر الفرح ما كانشي
إنّك ضحك الورد في شِعري وزي جمالك قلبي ما شافشي
وإنّ النوم من يوم ما قابلتك زعلان مني مخاصم رمشي
وإنك بدر بِعشقي سعيت له ومهما باقرّب ما يقربشي
ممكن أقول لك؟.. لكن قلتي: "لأ مش ممكن، ممكن أمشي"؟!!


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

الخميس، 30 يناير 2014

أنثى أهمتني


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

إنْ غِبتِ عنّي لحظةً عينايَ لامتْـني
والشوقُ ألقَى وِزْرَهُ طَوْدًا على مَـتْـني
وإنْ اختَـفيتِ بلا مَدَى، ذِكرَاكِ أَمَّـتْـني
ما غيرُ حسنِكِ في الوَرَى أنثى أهمّـتني

محمد حمدي، 2013

 

عصفور جبان


عصفور جبان

 

عصفور جبان

عنوانه في قفصه اللي كان

من غير ببان

بِحلم يطير للشمس في وسط الغيطان

بِحلم ويحلم قد ما يطول الزمان

ولا عمره كان أعمى البصر

ولا عمره يوم ندمان

عصفور جبان

مسجون ف حلمه من زمان

 

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

‏22 ‏يناير, ‏2013

 

مقارنة النصوص العربية المشكّلة


مقارنة النصوص العربية المشكّلة

 

مؤخرا، كنت أستخدم دوت نت في برنامج يتعامل مع اللغة العربية معجميا وصرفيا، وفوجئت بأن بعض وسائل الفئة String مثل StartsWith و EndsWith و IndexOF تعطي نتائج غير متوقعة حينما يحتوي النص على تشكيل.. على سبيل المثال:

Dim Name = "أحْمد"

MsgBox(Name.StartsWith("أح")) ' False

لو جربت هذا الكود فستعرض الرسالة القيمة False، مما يعني أن النص "أحْمد" لا يبدأ بالنص "أح" من وجهة نظر الوسيلة StartsWith!!

ولو جربت البحث عن النص "أح" باستخدام الوسيلة IndexOf فستعيد لك الرقم -1 مما يعني أنها لم تعير عليه في النص "أحمد"!!

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

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

MsgBox(Name.StartsWith("أح", StringComparison.OrdinalIgnoreCase)) ' True

ونفس الأمر ينطبق على EndsWith و IndexOF.

 

ملحوظة:

قبل أن تردّ عليّ ميكروسوفت، حللت المشكلة باستخدام دوال فيجوال بيزيك القديمة Left() و Right() و Mid().. والحقيقة أن هذه الوسائل تستدعي داخليا الوسيلة String.SubString وهي لا تعامل التشكيل أي معاملة خاصة بل تعتبره حرفا عاديا.. لهذا يمكن كتابة الكود السابق كالتالي:

MsgBox(Left(Name) = "أح") ' True

أو:

MsgBox(Name.SubString(0, 2) = "أح") ' True

 

 

الأحد، 26 يناير 2014

ليل الغلابة


ليل الغلابة 

بدر الغلابة رغيف مرشوش بآلامهم
والفجر شاب شريف بيشق ليل غيمهم
نوم الديابة خفيف خايفينا من ضيمهم
خفافيش وبكرة مخيف بالنور بيعدمهم
لو إنّ دي تخاريف خلينا نحلمهم

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

26/1/2014

 

الجمعة، 24 يناير 2014

سأنساها


سأنساها

 

سأنساها

كأنَّ الشِّعرَ خاصمَها وما غنّى بنَجوَاها

كأنَّ القلبَ من صخرٍ ولا يَهفو لِلُقياها

كأنّي لم أكُنْ حُلمًا تُهدهدُه حناياها

 

سأنساها

سأُخمدُ نبضةً حَرَّى

تَئِنُّ الآنَ في صدري وتحيا عُمرَ ذِكراها

سأطمسُ نقشَ صورتِها على جُدرانِ أحلامي

وأنزِعُها من القلبِ الذي ما زالَ يَهواها

وأنساها

وآلافًا من الأبياتِ كانَ الحلمُ يَسكنُها وطيرُ الشوقِ غنّاها

ستهربُ من أميرتِها

وتصمتُ مُرَّ غُصَّـتِها

وتَهجرُ بدرَ لَيلَتِها

وتَنْسَى وصْفَ لَيلاها

ستمحوها

وتذروها

بدربِ مسافرٍ تاهَا

أضاعَ العمرَ يَرجوها

ولا ما ذاقَ حَلوَاها

ولم يَظفرْ ببسمتِها، ولم تَحضُنْهُ عيناها

لقد نَسِيَتْهُ من دهرٍ، وأنَّى كانَ يَنساها؟

أما قد كانَ ناجاها؟

أما بالعشقِ غنّاها؟

أما دوما تمنّاها؟

 

سأنساها

أُصِمُّ الأذْنَ عن شَدوٍ إذا ما الطيرُ ناداها

أَغُضُّ الطَّرْفَ عن زهْرٍ على خدّيهِ أنداها

وأكتمُ هذه الأنفاسَ عن عطرٍ تحلاّها

وأسلو النجمَ والنجوَى ولَذْعَ الشوقِ والآهَا

وبدرَ الليلِ إذْ حاكَى على خجلٍ مُحيّاها

فيَحكيها بروعتِه، ولا ما كانَ حاكاها

سيَبقَى وجهُها أحلى، ألا ما كانَ أحلاها!

فما أدناكَ من بدرٍ، وما في الحُلمِ أقصاها!

 

سأنساها

أكيدٌ سوفَ أنساها

أأهوَى من يُعذّبُني وهذي النفسَ أشقاها؟

وأرضَى أن أسامحَه، وأحزاني تَولاّها؟

بَخِيلُ القلبِ لا جدوَى، شحيحُ اللفظِ إنْ فاها؟

فما للقلبِ لا يَنسَى، كأنَّ الموتَ لولاها

سأنسَى أُنسَ بَسمتِها ولَهْـفي حينَ مَرآها

وأنسى زهرَ روعتِها إذا آواهُ خدّاها

وأنسى أنّني يوما، فُتِنتُ بِسِحْرِ دُنياها

وأنسى كيفَ أذكرُها وأنسى كيفَ أنساها!

لقد خانتْ محبّتَنا، وإنّي كنتُ أحياها

وأدمتني بطعنتِها، فماتَ الحبُّ جَرّاها

فقلبي الآنَ يُنكرُها، كما قد كانَ وفّاها

 

سأنساني لكي أنسى

سأنسانا

سأنساها

 

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

24/1/2014

السبت، 18 يناير 2014

العودة إلى النفق الطويل المظلم


العودة إلى النفق الطويل المظلم
 




في مارس 2011 كتبت مقالا بعنوان "الخروج من النفق الطويل المظلم":


وقد قلت في نهايته:

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

تذكرت هذا المقال وأنا أشاهد طوابير العواجيز وهي تصوت على دستور العبودية!

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

"الشعب المصري أشبه بمتمردين يعيشون في نفق، ينتظرون اللحظة المناسبة للظهور منذ 760 عاما.. يواجهون كل شيء بسخرية، ويؤمنون أنه لن ينفع شيء (وفعلا لا ينفع شيء).

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

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

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

أم هل ستثبت التجربة أننا جميعا صرنا خفافيش عمياء، فقدنا البصر داخل النفق، ولم نر الشمس حينما خرجنا، ولا جدوى من خروجنا أصلا، لأن العبودية صارت داخلنا، والنفق محفور فينا، ونحن سجناء في أنفسنا؟

 

الجمعة، 17 يناير 2014

حي راق جدا، في بلد نظيف جدا!!


حي راق جدا، في بلد نظيف جدا!!

 

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

 لكن قبل أن تتلاشي آخر حروف كلماتي، رأيت المنديل يسقط من قاع الصندوق المفتوح، ود. محمد عطية يقول لي في نفس اللحظة: ولكنه مفتوح من الأسفل!!

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

 الأطرف من هذا، أنه أشار قائلا: "هذه كلية الفنون الجميلة" ونحن نمر بجوارها، فقلت له مازحا: لكن الرائحة التي تنبعث منها غير جميلة!!، فقد كانت هناك رائحة مجاري في المكان!!

 كل هذا بدون تعليق!!

الثلاثاء، 14 يناير 2014

أنا فيها


أنا فيها

 

أحـبِّي الـحياةَ لأنّـني فيها

قِفِيها، ضَعِي الأزهارَ في فِيها

خُذيها، وإنْ خانتْ، إذنْ iiفيها

أو انْـفِي، أنـا فـيها iiأُنافيها

لَـعوبٌ وتَسْهو عن iiسَفِيهيها

وتَسْـفِي المُنَى فيها iiسَوافيها

ونَـفْسي وما لِلعَزْفِ يُهْـفِيها

سِـواكِ، ومـا أجْلَى خَوافيها

فـأشْفَتْ ومـا فاهَتْ iiبِشافيها

بِـفَهْمٍ فَـصيحٍ فـي iiفهيهيها

فـيا فَـيُّ أَوْرِفْ في iiفَيافيها

فَـفِـيَّ مُـعـافيها قَـوافيها

وأنْتِ  لَـدَى سُفُـني  مَرافِيها

فُتُـونًـا أوافـي لا أُجـافيها

 

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

14/1/2014

الأحد، 12 يناير 2014

الولد


الولـــــد

 

بـكـرة غـيطان iiالـبلد      تـطـرح سـنابل iiولـد
الـقمح لـون 
iiضـحكته      أسـمـر بـلون iiالـجَلَد

قـلبه  الـلي ف 
iiمحبتك      فـي الشمس كان iiضِلّتك
هـتلاقي فـيه 
iiضـالتك      لـمـا تـعوزي iiالـمَدَد

عـابـد لـربـه سـجد      سـبـحانه واحـد أحـد
فـي  النهضة قال 
iiكلمته      وف رابـعة لـيكي شهد

مـا تـفسريش 
iiدمـعتك      لامـعة عـلى ضـحكتك
كـل  الـلي تـاه 
iiسكتك      بـالجنة فـيكي iiاتـوعد

مـن شـر حـاسد حسد      مـن بـطش ظـالم فسد
يـرقـيـكي 
iiبـمـحبته      وف لـيل غـرامك iiسهد

الأمـنـيـات 
iiتـبـتدي      لـما تـشوفيه iiوتنشدي
وأمـا تـناديه ويـهتدي      فـوقـك جـناحه 
iiفـرد

كــل الـلي حـبك ورَدّ      نـبـع الـبـطولة 
iiوَرَد
وبـرغـم عـمر الـوفا      غـير الـشقا مـا أخـد

مـليون  شـهيد 
iiبحلموا      بـالـحـق يـتـكـلموا
م  الـصـبر يـتـعلموا      يمحي  الطوفان ألف 
iiسد

لـو  نـور عنيكي 
iiابتعد      والـليل ظـلامه اسـتعدّ
يـفضل صـدى 
iiكـلمتك      مـنه الـخسيس ارتـعد

كـل الـلي خانوا 
iiانتهوا      والـلي اختشوا أو سَهُوا
والـباقي شـعبك 
iiمـهو      زي الـنجوم فـي iiالعدد

مـهـما يـطول 
iiالـكمد      عـايش شَـموخ iiلـلأبد
وبـنبض  قـلبه 
iiحـكى      عـن مـجد فـيكي iiخلد

كــل الأعــادي هـبا      أنـتي  كـسبتي 
iiالـسبا
وإن يـوم جـوادك كـبا      تـتـمد لـه ألـف 
iiيـد

ابـنـك حـبيبك 
iiرجـع      مـن صمت أرض الوجع
حـالف لـيوفي 
iiالـجدع      كـل  الـلي لـيكي وعد

فـرعون خـلاص استبد      والـظلم  فـيكي 
iiاتـعبد
لـكـنه  دايـمـا 
iiأبـي      قــدّ الـتـحدي iiوقـدّ

عمر الرصاص ما انتصر      أو ضـهر فـكرة 
iiانكسر
لـمـا بـصـوته هـدر      الـغـدر حـسه انـخمد

واقـف صـموده 
iiأسـد      شـايل فـي قـلبه بـلد
بـهـتف  لـدولة بـجد      مـن جـد فـيها 
iiوجـد

سـانـدك فـلا 
iiتـنحني      حاضنك في حزنه الضَّنِي
سـيان فـقير أو 
iiغـني      مـن لاقـى كـنزه iiحمد

مـهما الـضباب 
iiاحتشد      والـجرح أدمـى iiالجسد
صـورتك رفـيق 
iiرحلته      وخـياله  فـيكي iiشـرد

يـا  بـاقية رغم 
iiالمحن      سـكنانا  وأنـتي الوطن
لـمـا الـنشيد 
iiاتـلحن      وقـف الـزمان مـا قعد

قـبل  الـتاريخ ما 
iiاتولد      كـان فـيكي أحـلى ولد
الـقمح لـون 
iiضـحكته      أسـمـر بـلون iiالـجَلَد

 

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

12/1/2014

 

السبت، 11 يناير 2014

تحديث مشاريع VB6


س: كيف يمكن تحديث مشاريع VB6 لتصير مشاريع دوت نت؟

 

ج: لدي الكثير من البرامج التي كتبتها بفيجيوال بيزيك 6، ومؤخرا كنت أحتاج لتطوير بعضها إلى دوت نت، ففوجئت بأن ميكروسوفت أزالت معالج تحديث مشاريع فيجوال بيزيك 6 من إصدار دوت نت 2010 وما تلاه، بدعوى أنها أوقفت دعم منتجها فيجوال بيزيك 6!

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

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

الخميس، 9 يناير 2014

الدواء فيه سم قاتل!!


الدواء فيه سم قاتل!!
دراسة حديثة: المضاد الحيوي "ليفوفلوكساسين" يرفع فرص إصابة كبار السن بتسمم الكبد

دخلَتْ عليّ أمي اليوم وهي في غاية التعب وأعطتني علبة دواء وطلبت مني أن أقرأ النشرة الداخلية الخاصة به، لتعرف بالضبط ما الذي فعله بها بعد تناوله ليجعلها في هذه الحالة السيئة للغاية!

الدواء اسمه تافاسين 500 مجم (Tavacin 500 mg) والمادة الفعالة به اسمها ليفوفلوكساسين (Levofloxacin).

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

1-   بعض الأطباء لا يقرأون نشرات الأدوية، ويصفونها اعتمادا على شيوعها أو دعايتها.. وبعضهم يصف بعض الأدوية لأن لهم مكاسب من الهدايا والخصومات ودعوات المؤتمرات التي يحصلون عليها من شركات الأدوية!.. بغض النظر عن خطورتها على المريض!

2-   بعض الصيادلة لا يقرأون نشرات الأدوية وسط آلاف الأصناف التي يتعاملون معها، وبعضهم يهمهم أن يبيعوا فقط، ولا يعنيهم خطورة الدواء على بعض المرضى!

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

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

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

الخميس، 2 يناير 2014

لم تخطئي


لم تخطئي

 

تعودينَ لي

كموجِ البحورِ إلى الشاطئِ

تعودينَ بالصفحِ

لم تخطئي

كأنَّ الذي قد مضى ما مضى

كأنكِ لم تتركي مَوطِئي

فإنَّكِ يا نخلةً باسقةْ

تُذيقينَني مِن جَناكِ ثقةْ

ويا روضةً بالهوى مورقةْ

تنسّمتِ بالفرحِ لم تُبطئي

 

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

7/8/2013

 

خطف ذهني


خطف ذهني! 

مـغرورةٌ  iiمُـحقّةْ      فَـحُسنُها iiاسـتحقَّهْ
وحُـنْـقُها لـذيـذٌ      وذا  الـغرورُ 
iiرِقّةْ
أتـيـتُها أغـنّـي      وبـعدَ  ألفِ 
iiطَرقةْ
تقـولُ لي: "لِتَكْفُفْ"      أجـبتُها  iiبحُـرقةْ:
متيّــمٌ بعـشقـي      ولا  أطـيقُ iiفُرقةْ!
وعـينُكِ
احتـوتّني      بـخضرةٍ  iiوزُرقةْ!
وهُـد
ْبُـها  كَلَيْـلٍ      رمَـى الفؤادَ iiبَرْقَهْ
ووجـنـةٌ كـزهرٍ      وبـسـمةٌ 
iiكـنَبقةْ
حـوريّةٌ  
iiتُـنادي:      أنـا  الضياءُ فَارْقَهْ
فـمَنْ  لـهُ 
iiفؤادي      وقـدْ نَسَجْتِ iiطَوقَهْ
تَـركـتِهِ  وحـيدًا      وقد  سَرقْتِ خَفـقَهْ
وقد (خطفتِ ذِهني)      وتـلكِ خيرُ 
iiسَرْقَةْ!
مُـغـرَّرٌ 
iiبَـرِيءٌ      أمـا عذرتِ حُمقَهْ؟
فكَفْـكِفي 
iiغُـرورًا      وعـوّديـهِ iiرِفـقَهْ
وأقـبـلي  
iiكـبدرٍ      فـأنتِ خـيرُ رُفقَةْ

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

13/8/2013

 

صفحة الشاعر