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

20 12 2008

صدقونى عندما اقول اننى احب الكتب اكثر من اخوتى لذا اقرأ كل الوقت و عندما يكون عندى من الوقت مايسمح لى بدخول مكتبة الكلية فأننى افعل و فى احد الأبام السابقة لا أتذكر بالضبط اعتقد انه الأثنين او الثلاثاء دخلت المكتبة لأقرأ احد الكتب التى تروق لى و قد وقع اختيارى على احد الكتب التى تستعرض الخوارزميات (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

11 12 2008

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

9 12 2008
all the c++ language summery in one page i hope we all own it




Make Geany compile a gtkmm c++ file

9 12 2008
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