RSS

Monthly Archives: January 2012

Python: Part(7)

Python: Part(7)

في المرة اللي فاتت اتكلمنا عن ال(Conditional Statements ) وعرفنا ازاي نكتب الكود بتاعها وازاي نتعامل معاها .المرادي ان شاء الله هنتكلم عن ال(loop) بما اننا مادينهاش اهمية كبيرة المرة اللي فاتت او ما اتكملناش عنها تقريبا. ومقالة النهارده هحاول انها تبقى صغيرة عشان مندخلش في مواضيع تانية دلوقتي وهنكتفي بشرح ال(loops) النهارده .

قبل ما نتلكم عن ال(loops) تعالوا نعرف ليه احنا محتاجينها ؟

طبعا في البرمجة ممكن تحتاج انك تكرر جملة معينة اكتر من مرة . او تكرر سؤال معين اكتر من مرة او تعمل اي حاجة اكتر من مرة وبدل ما تكتب الكود بعدد المرات اللي عاوزه يتكرر ، هتكتبها مرة واحدة في (loop) وهي تتنفذ بعدد المرات اللي انت عاوزها .

في البايثون في نوعين من ال(loops)

1- while loop

2- for loop

لحد هنا كلام حلو وجميل .تعالوا بقى نشوف ازاي هنتعامل مع ال(loops) وايه الفرق بين كل نوع منهم .

 

اللي جاي دا مثال بيطبع الارقام من (1-100) بس هنعملها مرتين .. المرة الاولى هنكتب الجمل بايدينا والمرة التانية هنستخدم ال(loop) في البايثون وهنعرف ازاي نتعامل معاه .

المثال الاول :

طبعا الكود مكتوب باختصار بس المفروض انه مكتوب 100 مرة .ودا هيبقى ال(output) بتاع الكود اللي فات:

طيب بما اننا اتعلمنا البايثون عشان نكتب كود سهل ومنظم وصغير، الطبيعي اننا مش هنعمل الطريقة اللي فاتت دي في الشغل ، فأكيد هنستخدم ال(loop)

تعالوا بقى ناخد اول نوع من انواع ال(loops) :

While Loop :

بكل بساطة هنكتب الشرط وبعد كدا هنكتب اللي عاوزينه يتنفذ . وطول ما الشرط متحقق ، الكود هيفضل يتنفذ ويتكرر . تعالوا ننفذ المثال اللي فات بس المرادي باستخدام ال(while loop)

وطبعا هيكون نفس الناتج . هيطبعلنا الارقام من (1-100) وكل رقم في سطر .

ودا مثال تاني ل(while loop) :

هنا عملنا (loop) بياخد اسم من اليوزر ويطبعه – بطريقة ال (String Substitution) ودي اتعلمناها قبل كدا- وتفضل تكرر ال(loop) طول ما ال(name —> null) . يعني لو فضلت تضغط على (Enter) الكود هيفضل يتكرر طول ما انت لسة مدخلتش قيمة للمتغير .ولما تدخل قمية للمتغير بتاعك هيتنفذ ويطلع من ال(loop).

ناخد مثال تالت عشان الفكرة تثبت 🙂

البرنامج دا مكتوب في ال( ipython ) ودا بردو اتكلمنا عنه قبل كدا في الجزء الاول من سلسلة البايثون

 

 

هنا عملنا كاونتر ، وطول ما الكاونتر اقل من 10 البرنامج هيطبع (حاصل جمع القيمة اللي متخزنة في الكاونتر +الرقم اللي بيزيد معايا كل مرة) وهيطبع كل ناتج في سطر بردو .

 

كدا احنا بقينا بنعرف نعمل (loop) ونخلي الكود يتنفذ كذا مرة طيب ايه لازمة النوع التاني بقى من ال(loops) ؟

ال(while loop) بتنفذ بلوك معين من الكود بعدد معين من المرات طول ما شرط التكرار متحقق ، بس احيانا المبرمج بيحتاج انه يكرر الكود بتاعه بشكل معين أو بترتيب معين المبرمج هو اللي بيحدده ، عشان كدا ال(for loop) اتعملت .

FOR LOOP

مثال :

هنا احنا ادينا للبرنامج (list) وسمينها (x) وخليناه يتعامل معاها بال(for loop) وقولناله اطبع العناصر اللي جوا ال(list).

ودا هيكون ال(output) :

ممكن ناخد مثال تاني على ال(for loop) وهو بيتعامل مع ال(Dictionary) :

نفس الحكاية هنا ، عملنا (dictionary) وخلينا ال(for loop) تشتغل عليها بحيث انها تطبعلنا ال (key) وال(value).

ناخد المثال التالت والأخير على ال(for loop) :

وفي المثال دا احنا ادينا للبرنامج (list) فيها كذا اسم وقولتله يطبعهم في بستخدام ال(for loop)

 

كدا احنا خلصنا ال(loops) ياريت تكتبو الاكواد دي وغيروا فيها ولخبطوا الدنيا زي ما انتو عاوزين وشوفوا ايه اللي بيحصل والدنيا ماشية ازاي عشان المعلومة تثبت اكتر واكتر 🙂

المرة الجاية ان شاء الله هنتكلم عن حاجة جديدة اسمها ال(Abstraction) وهنعرف هي ايه!! وبتتكلم عن ايه باذن الله . تابعونا ،،،

 
2 Comments

Posted by on January 31, 2012 in Featured, Programming, Software

 

Tags: , , , , ,

Into the Low Level: Getting Serious (0x07)

Into the Low Level: Getting Serious (0x07)

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

 

اذا بدأت بتجميع وربط البرنامج السابق لن ينفذ غير استدعاء الخروج، ولكننا سوف نضع  الامثله بين التعليقات.

في لغة التجميع عموما يتكون الكود من الامر والمعامل (Instruction,Operand) الامر هو مايبدا بالتنفيذ..اما المعامل فهو القيم التي يُنفذ عليها العمليات او التى تعتمد عليها تنفيذ العمليه، ففي  int 80h على سبيل المثال، يعتمد الامر int علي قيمة المعامل فإذا كانت 80 فهو ينفذ استدعاء نظام لينوكس. اذا كانت 13 فسوف ينفذ مايسمي ب قاطع بيوس (BIOS Interrupt) اما اذا كانت 21 فهو استدعاء نظام فى الدوس، و 19 فهو ينفذ مايمسي بتحميل البرنامج التمهيدي (Bootstrap load). والعديد من القيم الاخرى.
اما فى عمليه او امر مثل MOV فلا يعتمد الامر على المعامل لانه فقد ينفذ العمليه المطلوبه منه. مثل MOV eax,27F2h هو فقط ينقل القيمه الثانيه داخل الهدف الاول ولايهتم اي كان الهدف او اي كانت القيمه الا اذا حدث خطأ بالطبع.

العملية MOV :
هناك ستة اشكال لتنفيذ تلك العمليه هم.

  • MOV eax,89h  وهنا المصدر بيانات واضحه وتسمى بالبيانات الفورية
  • MOV eax,ebx  هنا المصدر والهدف ريجسترات مساحة كل منهما 32 بيت
  • MOV ax,dx  هنا المصدر والهدف ريجسترات مساحة كل منهما 16 بيت
  • MOV ah,dh  هنا المصدر والهدف ريجسترات مساحة كل منهما 8 بيت
  • MOV [eax],ebx هنا المصدر الريجستر مساحتة 32 بيت والهدف عنوان الذاكرة الى مساحته 32 بيت الى فى الريجستر eax
  • MOV eax,[ebx] هنا العكس تماما فالمصدر هو العنوان الذي يحتويه الريجستر ebx اما الهدف فهو الريجستر eax

فلنجرب تلك البيانات الفورية..

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

اما عملية نقل البيانات من ريجستر الى الاخر تتم علي اساس قواعد، فيجب ان يكون الريجستر المصدر والهدف متساويان الطول.
فعلي سبيل المثال MOV ebx,bx  غير قانوني وعن التجميع سوف يصادفك خطأ بهذا الشكل ” error: invalid combination of opcode and operands”
اما على سبيل المثال MOV eax,ecx او MOV cx,dx او MOV dl,ah وماعلى تلك الشاكلة يعتبروا عمليات قانونيه.

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

و اثناء عملية الديبج والتحقق من القيم نجد القيم كالصورة التالية
 نجد الريجستر eax يحتوي علي قيم الاسكي الخاصة بالنص. اما الريجستر ebx يحتوي على عنوانهم فى الذاكرة. وذلك النوع من البيانات يسمي بيانات الذاكرة

 
سنستكمل المقالة القادمة بإذن الله

 
Leave a comment

Posted by on January 30, 2012 in Featured, Programming, Software

 

Tags: , , ,

Java Programming: let's master (4)

Java Programming: let's master (4)

Chapter (4) : Loops

في شابتر 4 هنتكلم عن ال Loops و هي مجموعة جمل بتمكنا من اننا نتحكم فى عملية التكرار بالعدد اللى احنا عاوزينة.
و فى لغة الجافا هندرس 3 طرق لل Loops وهم (While, dowhile, for)

4.1 The while Loop:

طريقة كتابة جملة while فى لغة الجافا

While نقدر بيها نكرر الكود اللى احنا عاوزينة اي عدد
و هنلاحظ ان while (نكتب بعدها بين الاقواس شرط الااستمرار لو كان true يبقى عملية التكرار هتتكمل لو false يبقى هنخرج برا ال loop) انما الاقواس التانية اللى بالشكل دة {} بنكتب الاوامر اللى عايزين نكررها فيها و المفروض نحط فيها حاجة تغير شرط الاستمرار بعد فترة ل false علشان يخرج من ال loop.
و هنقول مثال نوضح بنستخدم while ازاي بفرض اننا عايزين نطبع 100  مرة جملة  !Welcome to Java على الشاشة قبل كدة كنا هنكتب الامر بتاع الطباعة على الشاشة 100 مرة دلوقتى ممكن نكتبة مرة واحدة و while هتنفذة 100 مرة بالطريقة دى

فى الكود المكتوب عرفنا متغير اسمة count من النوع integer و حطينا لة قيمة ابتدائية صفر و شرط الاستمرار انة اصغر من 100 و الكود اللى المفروض يتكرر هو امر الطباعة على الشاشة ومننساش اننا زودنا امر count++; و هو دة المسؤل عن زيادة المتغير كل مرة بواحد.
ملحوظة: الكود المكتوب مش كامل يعنى مينفعش يشتغل لوحدة كدة لازم الاول نحطة فى ال main method و نحطها فى Class و كل دة فى file نسمية باسم الكلاس ClassName.java علشان نتمكن من اننا نعملة compile.و دة شكل الFlow Chart  لطريقة عمل ال Loops:

 

نفهم من الرسم ان لو شرط الاستمرار كان True هيتنفذ جسم ال loop لحد نهايتة بعد كدة يتحقق من شرط الاستمرار مرة تانية و هكذا لحد ما يتغير شرط الاستمرار الى False فهيخرج من الloop و هنكمل بقية الكود.
المفروض نحط شرط الاستمرار بين قوسين بعد كلمة while انما ممكن نهمل الاقواس فى باقى ال loop فى حالة ان جسم ال loop مكون من جملة واحدة او مفيهوش جمل خالص و الكود دة يوضح مثال ل loop مفيهاش الا جملة واحدة بس.

• يجب نتأكد من ان شرط الاستمرار هيتحول لـ false بعد عدد معين من التكرار و الا هتتنفذ ال loop الى ما لا نهاية و لو دة حصل ممكن تضغط CTRL+C لتوقف التشغيل و تعالج الخطأ.
• فى خطأ بيتكرر هو وضع علامة ; بعد جملة while و دة معناه اننا اهملنا جسم ال loop و فى الحالة دى هيعتبر ان جسم ال loop فارغ و هيتكرر التحقق من شرط الاستمرار لحد ما يتحول لـ false و بما اننا فى معظم الاحيان بنحط الجملة اللى بتغير الشرط فى جسم ال loop فهيتحقق من شرط الاستمرار اللى مش هيتحول لـ false الى ما لا نهاية ,انما لو كان شرط الاستمرار مش معتمد على جسم ال loop فهيتحقق من الشرط لحد ما يتحول لـ false و بعد كدة هينزل ينفذ جسم ال loop مرة واحدة بس و كأنة كود خارج ال loop.

وده مثال هيوضحلنا ازاي نستفيد من while البرنامج ده عبارة عن 10 اسئلة طرح المستخدم هيجاوب عليهم وفي الاخر نعرفه الوقت اللي قدر يحل فيه الاسئلة ونتيجة كل سؤال ..

 

و دة شكل عرض البيانات على الشاشة

System.currentTimeMillis()

ال method دى بترجع قيمة الوقت الحالى بالملى ثانية و هنشرح ال method فى شابتر 5 ان شاء الله.

Math.random()

ال method دى بترجع رقم قيمتة عشوائية (غير محددة) اصغر من الواحد و اكبر من الصفر.

4.3. The do-while Loop

do-while  هي شبة while بالظبط مع اختلاف بسيط ان جسم ال loop بيتنفذ على الاقل مرة واحدة بس و ان التحقق من شرط الاستمرار بيكون فى الاخر مش فى الاول.
طريقة كتابة do-while

و دة شكل ال Flow Chart

و نفهم من الرسم دة ان الاول بينفذ الكود اللى جوه ال Loop بعد كدة بيشوف شرط التحقق true ولا false لو true بيرجع ينفذ الكود اللى جوه اللوب تانى لو false بينزل تحت ال loop ينفذ الاوامر التانية, و علشان كدة احنا بنستخدم do-while لو الكود اللى عاوزينة يتكرر فية جملة لازم تتنفذ على الاقل مرة واحدة.
احنا ممكن نستخدم while زي do-while بالظبط بس احنا بنختار الطريقة الانسب للكود بتاعنا و نستخدمها.
و دة مثال على طريقة استخدام do-while

4.4. The for Loop

 

طريقة كتابة ال for

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

فى المثال دة فى الاول حط قيمة ابتدائية للمتغير i بصفر و قال ان شرط التحقق ان i اصغر من 100 فهيبدأ يتحقق من الشرط هيلاقى ان i فعلا اصغر من 100 فهيبدأ ينفذ امر الطباعةو بعد كدة هيزود i بواحد و يقارنة بـ 100 تانى و هكذا.
و دة شرح ال for و المثال باستخدام ال  Flow Chart

فى خطأ بيتكرر هو وضع علامة ; بعد جملة for و دة معناه اننا اهملنا جسم ال loop و فى الحالة دى هيعتبر ان جسم ال loop فارغ و هيتكرار التحقق من شرط الاستمرار لحد ما يتحول لـ false و بعد كدة هينزل ينفذ جسم ال loop مرة واحدة بس و كأنة كود خارج ال loop.

زي ما قولنا ان الجزء الاول و الثالث بين الاقواس بعد for ممكن نحط فية اكتر من جملة و هتكون فى الاخر بالشكل دة

علشان يبقى شكل البرنامج منظم ممكن لو الكود اللى هنكررة مكون من امر واحد بس ممكن ندمجة مع for فى نفس الجملة بالشكل دة.

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

 (infinite loop)

 و هتكون بالشكل دة.

4.5. Which Loop to Use?

لازم نعرف ان for و while بيتقال عليهم اسم pre-test و دة علشان هما بيتأكدوا من شرط الاستمرار قبل ما ينفذ جسم ال loop انما do-while بيتقال عليها اسم post-test و دة علشان بتتحقق من الشرط بعد ما ينفذ جسم ال loop. ولاكن الثلاث انواع متكافئين و ممكن نستخدم كل واحدة منهم بدل التانية بس احنا بنحاول نستخدم اكتر واحدة تفيد الكود اللى بنعملة.

4.6. Nested Loops

ال nested loops هي ان فى loop خارجية (outer loop) و جواها loop تانية او اكتر من(loop (inner loop, فى كل مرة الloop الخارجية بتتكرر ال loops اللى جوة بيبدأوا من الاول و يتكرروا لحد ما ينتهوا.
و المثال دة هيوضح معنى ال nested loops اكتر لانشاء جدول الضرب زي الشكل دة.

 

و هيكون دة شكل الناتج

الجزء اللى فى الكود من السطر رقم 22 لـلسطر رقم 25 دة اللى بنظبط بية شكل الجدول علشان حاصل ضرب الرقمين فى بعض لحد الرقم 9*9 مكونين من رقم واحد او رقمين فاحنا هنا قلنا ان لو حاصل الضرب مكون من رقم واحد هنسيب قبلة مكانين فاضيين لو مكون من رقمين هنسيب قبلة مكان واحد.

4.7. Minimizing Numerical Errors

 

فى الجزء دة هنتكلم عن الاخطاء فى الاعداد بسبب العلامة العشرية و ازاي نقلل الاخطاء.
دة مثال بيبين الاخطاء بسبب العلامة العشرية بفرض اننا عاوزين نجمع مجموعة ارقام تبدأ من 0.01 و الارقام بتزيد بـ 0.01 فى سلسلة الارقام و تنتهى ب 1.0

و هيكون الناتج بالشكل دة

الناتج كان المفروض يكون 50.5 و لاكن بعد ما عملنا run للكود لقينا ان الناتج اللى طلعلنا كان 50.499985 فكدة الاجابة مش دقيقة اوى و دة علشان ان الكمبيوتر بيستخدم عدد ثابت من ال bits لتمثيل العلامة العشرية فطبعاً كلنا هنا هنقول اننا لو استخدما double بدل float الاجابة هتتحسن لان ال double بيتمثل فى 64-bits و ال float بيتمثل فى 32-bits.
بس لو استخدمنا double فى المثال دة هنلاقى ان الناتج بقى 49.50000000000003 فطبعاً هنستغرب لان بكدة الخطأ زاد مش قل و لو حاولنا نشوف السبب فى كدة هنلاقى ان ال i فى اخر مرة المفروض تتجمع فيها هتكون اكبر من 1 بحاجة بسيطة اوى و علشان كدة هيخرج من ال loop و مش هيجمعها.

علشان نتغلب على الخطأ دة فى طريقتين :
1.ممكن نعكس ال loop يعنى هنبدأ نجمع ال 1 الاول و نجمع بعدها رقم 0.99 و بعدها 0.98 و هكذا لحد ما نوصل لـ 0.01. و هتكون ال loop بالشكل دة

2. ممكن نستخدم ال count فى ال loop على انها integer و نغير طريقة الجمع نفسها

4.9. Keywords break and continue

Break و continue ممكن نستخدمهم فى ال loops كادوات تحكم

break بتنهى عمل اقرب loop هي جواها يعنى لو فى nested loop و كتبنا break فى ال inner loop ال inner loop هي اللى هتنتهى من غير ما تأثر على ال outer loop .

continue  بتنهى الدورة اللى احنا فيها او بمعنى تانى انها بتنقلنا لنهاية جسم ال loop و تكمل ال loop من الدورة اللى بعدها عادى.
هنقول مثال يوضحلنا ازاي نستخدم break فى المثال دة هنجمع الارقم من 1 الى 20 و نتوقف فى حالة ان ناتج الجمع كان اكبر من 100 و فى الشكل فى الصورة b هو ناتج جمع الارقام من 1 الى 20 انما فى الصورة a ناتج الجمع باستخدام break

 

و هنقول مثال كمان علشان نوضح عمل continue فى المثال دة هنجمع الارقام من 1 الى 20 بس مش هنجمع الارقام 10 و 11 و فى الشكل فى الصورة b هنشوف الناتج الطبيعى لجمع كل الارقام انما فى الصورة a هنشوف جمع كل الارقام ماعدا 10 و 11

4.9.1. Statement Labels and Breaking with Labels

كل جملة فى الجافا ممكن نعملها عنوان و عموما العناوين بنستخدمها اكتر مع ال loops و بكدة ممكن لو عندنا nested loop ممكن نتحكم فى ال outer loop باننا نعملها label و نستخدم break  و continue .
و دة مثال لاستخدام break للخروج من ال labeled loop

و دة مثال تانى لاستخدام continue لانهاء دورة من ال outer loop

ملحوظة: استخدام break و continue مع ال labeled loops مختلف عن استخدام الامر goto.

وبكده نكون خلصنا شابتر 4 واتكلمنا عن الجمل التكرارية loops في الجافا.

معادنا في شابتر 5 ان شاء الله عشان نتكلم عن الmethods  بالتفصيل..

أي استفسارات انا موجود

Thanks a lot, CATazine.

Thanks a lot, CATReloaded.

om4rezzs

 
3 Comments

Posted by on January 29, 2012 in Featured, Programming, Software

 

Tags: , , , ,

Internet Software Evolution -Part 1-

Internet Software Evolution -Part 1-
“Lessons from History”

I rarely love history. Many prefer looking back at history, to learn from it. Others like reading history to have a great chance to criticize, and show up that they know a lot. Plenty love history because they love reading tales, specially before sleeping. I don’t!

Simple and clear: I don’t love looking back, neither on history, nor on past. However, while I was reading this, I couldn’t help myself loving it, so I thought about sharing it with you here.

Before we begin telling the story please let me say that: I love protocols. Everyone loves protocols, even if they don’t know the story behind every protocol. Organized people love protocols because they know how they get things done, step by step. Lazy people love protocols, because knowing you have protocols at the back makes them trust that things are going correctly, following protocols. Academics love protocols, because it is a rich field of research that is very well formulated, mature, and illustrates to us how things work. Besides, following protocols discussions makes us learn lots of things, and get in contact with pioneers in different fields.

Internet is named after the Internet Protocol, the standard communications protocol used by every computer on the Internet. The conceptual foundation for creation of the Internet was significantly developed by three individuals. The first, Vannevar Bush, wrote a visionary description of the potential uses of information technology with his description of an automated library system named MEMEX.

Bush introduced the concept of the MEMEX in the 1930s as a micro film based device in which an individual stores all his books, records, and communications, and which is mechanized so that it may be consulted with exceeding speed and flexibility [1,2]. In further posts we will talk closely on how Library Information Systems affect our lives, and how it is important to have high information technologies support those information systems, and how it is a popular degree in Europe and United States. After thinking about the potential of augmented memory for several years, Bush wrote an essay entitled “As We May Think” in 1936. It was finally published in July 1945 in the Atlantic Monthly. In the article, Bush predicted: “Wholly new forms of encyclopedias will appear, ready made with a mesh of associative trails running through them, ready to be dropped into the MEMEX and there amplified [3].

In September 1945, Life magazine published a condensed version of “As We May Think” that was accompanied by several graphic illustration showing what a MEMEX machine might look like, along with its companion devices. If you are not familiar with encyclopedias, please leave questions in the comments below, and I am really willing to answer those questions.

The second individual to have a profound effect in shaping the Internet was Norbert Wiener. Wiener was an early pioneer in the study of stochastic and noise processes. His work in stochastic and noise processes was relevant to electronic engineering, communication, and control systems [4]. He also founded the field of cybernetics.

This field of study formalized notions of feedback and influenced research in many other fields, such as engineering, systems control, computer science, biology, philosophy, etc. His work in cybernetics inspired future researchers to focus on extending human capabilities with technology. Influenced by Wiener, Marshall McLuhan put forth the idea of a global village that was interconnected by an electronic nervous system as part of our popular culture.

References

  1. http://en.wikipedia.org/wiki/Vennevar_Bush
  2. http://www.theatlantic.com/doc/194507/bush
  3. http://en.wikipedia.org/wiki/Norbert_Wiener

Well , that’s enough today. To be continued 😉

 
5 Comments

Posted by on January 27, 2012 in Featured, Networks, Software

 

البقاء لله

البقاء لله

قراءنا الاعزاء،

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

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

فهو من دفع (كات) الى الامام حين لم نجد من يدفعها، هو من وقف الى جانبنا وناقشنا فى طموحاتنا لتغيير مجتمعنا التكنولوجي وطموحاته. رحمه الله كانت له طموحات لتغيير شكل مجتمع تكنولوجيا المعلومات والتي ننفذ بعضها فى (كات) الآن.

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

انا واثق اننا سنتذكر مقولاته طالما حيينا. فهو غاب عن عيوننا ولكن لن يغيب عن عقولنا وقلوبنا.
رحم الله أخانا الأكبر، الدكتور/أيمن صبحي

 
4 Comments

Posted by on January 22, 2012 in Announcement, CAT, Featured