مجرد تجريد

من انا … من انا
هو سوال الذات في بحثها عن الذات
هو غربة النفس في اوطانها
هو حيرة الربان في مركبه
من انا … ومن انت
هنا مفترق طرق يؤدي بك الى روما
هذا طرح  بلا معنى يقودك الى اي مكان
هو رحلة الى الـ… معلوم ادبا ولغتا
وهناك مجهول معنا وصفتا …
من انا … ومن هو
هو غائب تجلى في فعل كان
وانا اصبحت بعدما كنت
هو فعل مضارع مبني للمجهول
وانا الدي لم يسمى فاعله
انت .. انا ..هو
ضمائر متكلم حين خاطب غائب
Advertisements

بلا شئ و لا لشئ

افكر …… اتمتم ……. ثم اصمت
ثم اقول لم يعد ما يقال ….. نعم لم يبقى حرف…او حتى شيء من كلام ليتحدث به او لترسم منه حروف للكلامات ، وقد نطق فما افصح مانطق وما ابلغ ما سُطِر

فماذا بقي لي و لهم ؟

*************************************
افكر …… اصمت ……. ثم اتمتم
اما لهم فكان الكثير من الوصف و الرسم و الوهم … الكثير من الغرور و النرجسية و الانا
اما لي لاشيء تبقى …. فهذا ماتبقى ….. الكثير من التكرار حرفا وفكرا لي ولهم .

*************************************
اتمتم …… اصمت ……. ثم افكر
صرنا نكتب كلمات تخط بحروف تتالم اكثر مما نتالم …. ترسم فقط لترسم وان تعدت فانها لوحة تصف وهم كبرياء احدهم … تلون شجرة غرورٍ لاخر … تسقي ماء الحياة لنرجسية ثالث
كلمات سلبت حقها … اغتصب عرضها … غصبت لان تكون ………
معان منفية عن حروفها …. كلماتها تنزف تريد ان تتكلم ….
كلمات اصبحت كالاحياء الموتى … ومعانٍ كالموتى الاحياء ….
اما انا فساظل اكتب لما تبقى لي … كلمات بلا معنى …بلا شئ و لا لشئ

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

منطق الابيض و الازرق

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

بدون عنوان

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

في بلادي…

مقدمات بيضاء… و كلمات عذراء… و أفكار خرقاء

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

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

ما الجديد؟؟

بسم الله الرحمن الرحيم

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

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

مشكل اليوم حول برمجة القوائم ، القوائم تعتبر من اساسيات البرمجة  وفهم طريقة عملها وبرمجتها تساعدك في فهم الكثير حول انظمة التشغيل وانظمة قواعد البيانات وغيرها …

و برمجة القوائم الكل يعرف انها تنقسم الى قسمين  القوائم العادية او الساكنة والقوائم الديناميكية و سأقدم المبدأ العام لكل منها و الفرق بين كل منهما

 القوائم العادية او الساكنة : هي ببساطة مبنية بشكل كامل على المصفوفات  بطول محدد من ميزتها انها سهولة وسرعة برمجتها وفهما و بسيطة جدا و من اهم عيوبها انها غير قابلة للتوسيع او التمديد و استهلاكها الكبير للذاكرة

الشكل العام  للكود

 typedef struct _List{
 void **Ele;
 size_t _size;
}List;

والقوائم الديناميكية: هي مبنية بشكل عام على المؤشرات من اهم ما يميزها ان طولها غير محدود هذا يعطيها ليونة اي قابلية لتوسيع والتمديد مما يعني انها تحجز ما تحتاج اليه فقط في الذكرة الا ان لها عيب وهي صعوبة  في برمجتها و تعقيد في التعامل مع دوالها و ذلك لصعوبة التعامل مع المؤشرات

الشكل العام للكود

struct _ List
{
struct _ List *next;
type Ele;
} ;
typedef struct _ List * List;

ولكن لماذا نعيد فتح موضوع مثل هذا ؟؟ وما الجديد في هذا ؟؟

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

1-       لان اغلبها كان عبارة عن اطار عمل يثبت وهذا يستغرق منك وقت و حجم كبير ودراسة لها وتعقيد مثلا نأخذ Qlist  في كيوتي جيدة من اجل برنامج بسيط اثبت اطار عمل حجمه كبير جدا.

2-       هناك مكتبات خفيفة لكن في بعض احيان نجد بها بعض الضعف ونذكر مثال حول ذلك  و الحل هنا يكون اما بالتعديل على الكود وكتابة ترقيع لها هذا ان كانت مفتوحة المصدر وهذا يتطلب وقت و دراسة .

  وهنا السؤال ما هو الحل ؟؟

فكان الحل هو في اعادة كتابة مكتبة جديده و قوية ولكن بطريقة مختلفة وجديد دون ان نعيد صناعة ما صنع بحيث تكون احترافية وصالحة للجميع البرامج والمبرمجين .

الجديد في هذا :

 الحمد لله و بفضل الله تم كتابة هذه المكتبة الجديد بفكرة جديدة مختلفة بعض الشيء عن سابقاتها وهي مشروع  مفتوح المصدر لمن اراد ان يساهم ويطور فيها وهي  تحت التطوير و التجريب

الجديد فيها : هذه اهم ميزاتها

–          خفيفة الحجم وبساطة التضمين

–          سهلة البرمجة و التعامل

–          نمط الذي برمجة به جمع بين سهولة القوائم الساكنة وقوة ومرونة القوائم الديناميكية

–          طرح حل مشكله المقارنة لتراكيب حقل لحقل اي مقارنة تركيب لتركيب مباشرة  وذلك في عملية البحث في الدالة IndexOf() مما يعني انها تقوم بعملية البحث على العنصر كامل و مثال عليك :

وسنترك لك المجال لاكتشافها .

ملاحظة : المكتبة مكتوبة خصيصا للغة السي و ان شاء الله في قريب العاجل ستكون نسخة اخر خاصة لسي++ و الباسكال

امثلة بسيطه :

#include<stdio.h>
#include<stdlib.h>
#include"list.h"
int main(){
 List l; int i;
 _INIT_(&l); //تهيئة القائمة
 Add(&l,5,0,1,2,3,4);
 printf("\nSize # %i \n",Size(&l)); //حجم القائمة
 for(i=0;i<Size(&l);i++) printf("%i ,",(int)Value(&l,i)); //طباعة عناصر القائمة
 return 0;
}

typedef struct _prs{
 int age;
 char name[10];
}prs;
int main(){
 List l;
 int i;
 prs e1,e2;
 e1.age=24; e1.name="aye7";
 e2.age=23; e2.name="Aissat";
 _INIT_(&l); //
 Append(&l,(void*)e1); Append(&l,(void*)e2);
 printf("\nSize # %i \n",Size(&l)); //
 for(i=0;i<Size(&l);i++) printf("%i ,",(int)Value(&l,i).age); //
 return 0;
}

الشرح

الدالة

تهيئة القائمة

مثال :

List l;

_INIT_(&l);     

void _INIT_(List *l)

حجم القائمة مثال : printf(“\nSize # %i \n”,Size(&l));  è size=0
int Size(List *l)
اضافة مجموعة عناصر للقائمة دفعة واحدة مثال : Add(&l,5,60,10,20,30,40); è  {60,10,20,30,40} size=5
void Add(List *l,int Count,...)
قيمة عنصر الذي رتبته او ترتيبه p مثال : printf(“%i ,”,(int)Value(&l,0));    è 60
void* Value(List* l,int p)
رتبة و ترتيب العنصر مثال : printf(“%i “,IndexOf(&l,(void*)10)); è 1
int IndexOf(List *l,void* e)
تكرار العنصر في القائمة مثال : printf(“%i “,Count(&l,(void*)10)); è1
int Count(List *l,void* e)
اضافة العنصر e في المكان p مثال : Insert(&l,(void*)10,0); è {10,60,10,20,30,40} size=6
void Insert(List *l,void* e,int p)
اضافة في بداية القائمة في راس القائمة  مثال : Append(&l,(void*)2); è {0,10,60,10,20,30,40} size=7
void Append(List *l,void* e)
اضافة في نهاية القائمة في ذيل القائمة  مثال : Push_Back (&l,(void*)50); è {0,10,60,10,20,30,40,50} size=8
void Push_Back(List *l,void* e)
اضافة في بداية القائمة في راس القائمة  مثال : نفس Append
void Push_Front(List *l,void* e)
حذف في نهاية القائمة في ذيل القائمة  مثال : Pop _Back (&l,(void*)50); è {0,10,60,10,20,30,40 } size=7
void Pop_Back(List *l)
حذف في بداية القائمة في راس القائمة  مثال : Pop _ Front (&l,(void*)50); è {,10,60,10,20,30,40 } size=6
void Pop_Front(List *l)
حذف العنصر رتبته p مثال : RemoveAt(&l,3) è {10,60,10,30,40 } size=5
void RemoveAt(List *l,int p)
حذف كل عنصر  من القائمة مثال : RemoveAll(&l,(void*)10); è {60 ,30,40 } size=3
void RemoveAll(List *l,void* e)
حذف العنصر e من القائمة مثال : RemoveAt(&l,40) è {60,30 } size=2
void Remove(List *l,void* e)
نقل العنصر من p الى q مثال : {60,10,20,30,40} size=5 Move(&l,0,4 ) è{10,20,30,40,60} size=5       
void Move(List *l,int p,int q)
تبديل بين عنصرين ذاوي الرتبة p وq مثال : {60,10,20,30,40} size=5 Swap (&l,0,4 ) è{40,20,30,60} size=5   
 void Swap(List *l,int p,int q)

					

حمار الحكيم والمبرمج

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

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

قلت : من صاحب هذا الصوت

قال : حمار الحكيم  ومن غيري يا هذا

قلت : اسف على الازعاج ومرحبا بك
قال : لما  ناديتني اظن ان لك اشكال فما هو يا ترى

قلت : اه … نعم ، ماذا تقول في المبرمجين ؟

قال : اه … ام …لقد سمعت عنهم الكثير أتود ان تعرف رايي بصراحة…   فقلت  : نعم

قال : في الحقيقة اراهم مثلنا نحن معشر الحمير

قلت : ماذا تقول حمير ؟؟

قال : دعني اكمل كلامي  … فقلت : حسنا .. لماذا ؟

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

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

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

قلت : اسمع اذن حسب كلامك كل عامل حمار … اضن انك صحيح حمار فلا اعرف كيف صحبك الحكيم

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

فقلت : تفضل

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

ثانيا لنفرض اننا اضربنا فمن يقبل ان يعيش حياة  العملية  الحمير من باقي الخلق  لا اضن ذلك نحن حملنا هذا لأننا حمير بطبعنا لكن لم تفهمونا يا معشر البشر الا الحكيم ، اما قولك ” حسب كلامك كل عامل حمار ” هات اخر عامل في السلم  لنفرض انه الحارس فهو ليس حمار اتعرف لماذا ؟؟

قلت : لا … فأجاب : اي انسان يمكنه ان يكون حارس  … اسمع  هل كل انسان عادي هو مبرمج ؟؟

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

سيقول اكثرهم انه رائع حتى انهم يرو انه الاذكى ولكن في حقيقة الامر عند المبرمج انه اغبى شيء في الكون لأنه مُبَرمج من طرف مبرمِج  وهنا سؤال هل الصانع اذكى من المصنوع ؟؟

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

ثم قال: واخيرا ان اردت ان تعرف عني اكثر فسئل الحكيم  يخبرك عني.

اذا قرأت وخرجت بلب الحديث فأنت راشد واذا قرأت ولم تفقه شيء عذراً فأنت جاهل