جديد

من أقوال نيتشه

20 - 05 - 2008

بعض أقوال لـ فريدريك نيتشه - من كتاب أفول الأصنام !

حتى أشجعنا نادرا ما يملك شجاعة تحمّل كل ما يعلم.

أتبحث عن مريدين ؟ فتّش إذا عن أصفار !

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

هناك نوع من كره الكذب و الرياء نابع من معنى حاد للشرف. غير أن نفس الكره يمكن أيضا أن يكون محض جُبن ، عندما يكون الكذب محرما بأمر إلهي ، من فرط جبنه لا يكذب.

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

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

عندما تكون للمرأة فضائل ذكورية يجب تجنّبها ، و عندما لا تكون لها فضائل ذكورية ، فهي التي تهرب.

علينا أن نضع أنفسنا دائما في حالات لا يُقبل فيها امتلاك فضائل مزيفة ، لكن ، كما البهلوان على الحبل حيث لا يمكن إلا أن نقع أو نتماسك - أو نتخلص من ذلك...


--------------------------
* أنا بأيد بشدّة هالرأي ، أغلب الأحيان بكون عم فكر بقضية معينة ما بحس بحالي إلا قمت و صرت أمشي ، يعني الحكاية لاشعورية.


                   

[نظام إدارة مواقع ...] قادم

16 - 05 - 2008

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

ما هو هذا النظام ( كلمة نظام كبيرة شوي ) ؟

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

مم يتألف البرنامج mod ( اختصار لـ module ) ؟
يتألف أساسيا من ملف xml يحوي كافة معلومات البرنامج ، إضافة للصفحات المكونة له و هي من نوع php و js و ... حسب الرغبة

هذا هو كل الموضوع !

حقيقة ، قمت بالتعامل مع الكثير من أنظمة إدارة المحتوى CMSs و كانت فكرتي أن أقوم بشيء مشابه لكن بأقل كمية ممكنة من الكود و بأكبر قدر ممكن من الديناميكية، و هذا النموذج هو ما استقريت عليه.
قد يبدو صغيرا لكن كما قلت هو نواة فقط ، يمكن بالتالي تخصيص هذا الموقع لأي غرض.
مثال ، أريد أن أجعل الموقع عبارة عن موقع إخباري [أخبار ، أقسام ، تعليقات ، مدراء ، RSS ، ...]
أقوم ببرمجة برنامج خاص بذلك mod و ليكن اسمه news ، يتضمن هذا البرنامج ملف إعدادات xml و ملفات php و ليكن أحدها خاص بعرض الأقسام ، آخر خاص بعرض الأخبار (عموما ، حسب القسم ، عرض خبر كامل ... ) ملف خاص بالخلاصات RSS ... أيضا هناك ملفات لإدارة كل مقطع تظهر للمدير في لوحة التحكم بعد أن يقوم بتثبيت هذا البرنامج.

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

هناك حرية كبيرة في برمجة أي برنامج ، المهم شرح هذا البرنامج في ملف الـXML الخاص به.

أتمنى أن تسير الأمور معي كما أتوقع و أنتهي منه خلال أيام قبل أن أدخل في معركة االامتحانات .
90% سوف أنشر هذا البرنامج كمنتج مفتوح المصدر و مجاني في الصيف القادم ، أما الـ 10% المتبقية فهي تتبع للظروف.
إذا تحقق ما أفكر به سيكون هذا المنتج منافسا للكثير من أنظمة إدارة المحتوى المعروفة عالميا .


                   

مشروع المترجمات

15 - 05 - 2008

اليوم انتهيت من مشروع المترجمات (Compiler) ، قضيت 10 ساعات متواصلة في كتابة الكود ، حوالي 500 سطر جافا.
أعتقد أنه إنجاز جيد بالنسبة لي لعدة اعتبارات :

- تغلبت قليلا على الكسل.
- هذه أول مرة أكتب برنامج بلغة Java ، معرفتي بها ضعيفة ، سأتوسع بها فيما بعد.
- استخدام طريقة جديدة في الترجمة تتمثل في استخدام الـXML كمرحلة ، و استخدام المكدس Stack في التحليل و هذا ما أعجب الأستاذ .

مراحل عمل المترجم :

1 - قراءة الكود الذي يقوم المستدم بكتابته في ملف.
2 - تقسيم الكود إلى مقاطع و وضعها في ملف XML .
3 - جلب البيانات من ملف الـ XML و تحليل كل مقطع و حفظ قائمة بالأخطاء.
4 - في حال عدم وجود أخطاء ، بناء برنامج java مكافئ.
5 - توليد ملف .class من ملف الجافا الناتج.

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

اللغة التي يقبلها المترجم هي لغة بسيطة تتكون من الآتي :

- يبدأ البرنامج بكلمة start و ينتهي بكلمة end .
- يعرف المتحول على أنه إما String أو int بواسطة الكلمة def مثل :
def test int;

- عبارة if لها الشكل :
if (exp){}

- عبارة for لها الشكل :
for x = y to z { }

- عبارة الإدخال هي :
input(x)

- عبارة الإخراج لها الشكل :
output(x)

- تقبل اللغة حلقات for و حلقات if متداخلة.

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



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


                   

كتابات سابقة

مواضيع سابقةبتاريخ
مقررات و أساليب تدريس 11 - 05 - 2008
لكي لا ننسى ... ولن ننسى 06 - 05 - 2008
روابط مفضلة 02 - 05 - 2008
بلا عنوان 30 - 04 - 2008
صراحةً 25 - 04 - 2008

Cloud Tags

أنصح باستخدام فايرفوكس.
RSS

أقسام

صفحات إضافية

اقتباس

النفس الزكية تحب الخير و تأمر به و النفس الرديئة تحب الشر و تأمر به.
ســقراط

آخر المواضيع

Flickr

مواضيع عشوائية

مواقع و مدونات

أنا في

salamm[at]live.com
أنا في فلكر
Ma.gnolia

Icons



Syria Planet

Add to Google