الخميس، ١ يناير، ٢٠٠٩

منتهى الأهمال

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

ملاحظة صغيرة : فى بداية العام الدراسى قمت بتسليم الموظف المسئول 5 صور شخصية مع ان المطلوب كان 4 صور فقط .. و مع العلم انه لا يمكن اكمال اوراق مدينة الطلبة للطالب الا بعد دفع مصاريف الكلية و احضار الصور و بعض التعقيدات الأخرى

إذا هناك اهمال بالموضوع و لكن الموظف قال لى اننى من قصرت بعدم تسليمى صور شخصية . ياللعجب ... أقوم بتسليم 5 صور و افاجأ بأننى لم اسلم ايآ منها ... اذا لم يكن الموظف الذى قام بتسلم صورى الشخصية سوى كائن فضائى متنكر ليحصل على صورى الشخصية ..
و الحمد لهه اننى كنت احمل معى صورتين شخصيتين للمكتبة و لكننى تراجعت وقتها عن عمل الأشتراك ... فأعطيت الموظف صورة فأخذها و قام بأرفاقها مع ورقة الجلوس أخذ ينظرلها كأنما يقيس حجم ابتسامتى و قال بعد فترة يجب ان تختمها من امين الكلية ! , على الرغم من ان هذا عمله و ليس عملى فقد اخذت رقم الجلوس و ذهبت لمكتب امين الكلية و لكن هناك من قال لى على باب مكتبه المغلق انه فى اجتماع و اننى على ان اعود بعد نصف ساعة ...
فطفح الكيل بى و قررت اعادة الورقة الى مكتب شئون الطلبة ... و هناك قال لى الموظف بأن على ان اعود غدآ لآخذه اى ان ختم الورقة يأخذ 24 ساعة بالتمام و الكمال .. فبالله عليكم اهذا هو التقدم و التحرر من الروتين و البيروقراطية الذى نهدف اليه ..؟؟؟؟

السبت، ٢٠ ديسمبر، ٢٠٠٨

مكتبة ام قسم شرطة

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

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

و أظهرت لى ايضأ ثغرة جيدة جدآ يمكن من خلالها توضيح مدى الغباء فى هذة الديناميكية

و لنقوم بتحليل الذى حدث فى المكتبة على هيئة برنامج كالتالى

Procedure library (student)

input student.name

input student.grade

input student.card

input student.everythingHeHave


while( student.want_a_book )

student.chooseBook

employee.writeBookName

employee.signature

input student.name

// after the student finishes the book

employee.signature

output student.card

output student.everythingHeHave


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

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

الخميس، ١١ ديسمبر، ٢٠٠٨

White thoughts


can you feel that light
it's tiny very small getting stronger
well, i can feel it,
it's whiteness, silence, wings
yes, wings they are beautiful, wide, white,
full of kindness, heat, love,
it's an angel coming for me
to take my soul, to free me, to love me
what a feeling , like i flaying, like freeing
i'm now free, happy, comfortable
i'm now free, i'm free, free"

الثلاثاء، ٩ ديسمبر، ٢٠٠٨

c++ cheatsheet

all the c++ language summery in one page i hope we all own it
http://cs.fit.edu/~mmahoney/cse2050/how2cpp.html

Make Geany compile a gtkmm c++ file

open Geany
Note : the latest version is Geany 0.15
you can download it from :
http://www.geany.org/Download/Releases
or from here:
http://packages.ubuntu.com/search?suite=default&section=all&arch=any&searchon=names&keywords=geany

from the Build menu select Set Includes and Arguments
from the
set the fields as u can see in the picture:
Compile : g++ -Wall -c "%f" `pkg-config gtkmm-2.4 --cflags --libs`
Build : g++ -Wall "%f" -o "%e" `pkg-config gtkmm-2.4 --cflags --libs`
Execute : "./%e"

Note: make sure to write `pkg-config gtkmm-2.4 --cflags --libs` with the back quotation `

you can now build your program with F9 and Run it with F5