٤‏/٤‏/١٤٢٨ هـ

كرت الشاشة




بعد ملاحظاتي الدقيقة اكتشفت طريقة سهلة لمعرفة هل كرت الشاشة (Display Driver) هل هو يعتمد على السوفتوير او الهاردوير اكثر؟!!

بعض كروت الشاشة تعتمد على البرمجيات اكثر من الهاردوير وهذا معناه استهلاك اكثر لوقت المعالج (CPU) مثال ذالك كروت الشاشة ATI التي تعتمد على البرمجيات اكثر من اعتمادها على الهاردوير . وهي طريقة غير مستحبة. لانها تستهلك من وقت المعالج كما ذكرت.

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

افتح مدير المهام Task Manager واختار صفحة رسم المعالج ثم قم بتحريك مدير المهام يسره ويمنة اذا كان كرت الشاشة جيد سوف لن يرتفع الى 100% من وقت المعالج. اذا كان كرت الشاشة ATI سوف تلاحظ ارتفاعه حتى يصل الى 100%.

xlogic

٢‏/٤‏/١٤٢٨ هـ

العالم ليلاً





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

الافكار الاصيلة


حال منتدياتنا ومدوناتنا التى تختص بتقنية المعلومات يذكرني بمقولة الكاتب الانجليزي ألفريد نورث وايتهد
"أن كل مايقال قد قيل سابقاً!!"

عندما اتجول في الممنتديات والمدونات اكتشف فقر هذه المدونات والمنتديات لافكار الجديدة! واكثر الذي موجود بها انما يكون ترجمة حرفية لمنتديات الاجنبية!!. او تكون الموضوعات جداً سطحية. مثال: كيف تستخدم متصفح الفاير فوكس!!! ههه وهل المتصفح يحتاج اني اضع له موضوع يناقش كيف يُستخدم!!.او كيف تستخدم البرنامج الفلاني!. مع ان البرنامج الفلاني فيه مساعدة كيف تستخدمه!.
وياليت تكون المعلومة تعرض سر من اسرار البرنامج الغير مكتشفة او الغامضة.
سطحية الطرح هو ما افقدني شهيتي لقرائة المنتديات والمدونات.
عدم وجود افكار اصيلة او طرح علمي متعمق لفكرة معينة يجعل القارىء لايتابع هذه المدونات او المنتديات او يتجه لمدونات اجنبية حيث تكتشف افكار جديدة وطرح متعمق لفكرة معينة.
الافكار المدبلجة هذه ليست مقتصرة على المنتديات او المدونات انما لحق المرض ليصيب التلفزيون!. انظر الى ستار اكديمي؟ فكرة مدبلجة 100% لبرنامج فرنسي. ومن سيربح المليون كذالك. وهناك برامج تلفزيونية كثيرة هي صورة مدبلجة لبرامج اجنبية.
لماذا ....هل تفكيرنا لايرقى لابداع! ام تعودنا على ذالك؟

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

عدم وجود الافكار!
لماذا لا نستطيع ان نبتكر فكرة اصيلة مثل غوغل؟ او فكرة مثل مجلات الفي بي. لماذا لا نفكر بجديد. ابداء بافكار مبتكرة جديدة.
عندما اريد ان ابرمج لا ابدا بدراسة البرامج الشبية الموجودة! انما اجلس ساعات وبعض الاحيان ايام اعمل شحذ لمخ (عصف المخ) brain storming لفكرة البرنامج وكيف يعمل. ثم اضع كذا طريقة واحاول اختار الافضل. وادرس مشاكلها. واقارن الافكار ثم اقوم بعملها . بعد الانتهاء ربما اطلع على افكار الاخرين . لماذا اعمل هكذا؟ لاني اكتشفت اذا عرفت فكرة ليست بفكرتي اكون دائماً افكر باطار هذه الفكرة ولا استطيع الخروج منها. كانى في دوامة فلا استطيع ان اعطي افكار جديدة .

جرب ان تعملها. لا تفكر بافكار الاخرين انما فكر بفكرتك انت. حتى تستهلك جميع افكارك ثم اطلع على افكار الاخرين.


xlogic

٢٧‏/٣‏/١٤٢٨ هـ

الأيحاء



كنت في العمل،جالس على الكنبة التي امام مكتبي. وهذه لا اجلس عليها الا اذا كنت اريد ان افكر بعمق،

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

بالطبع الصيام!!

فقلت :صح أعتقد ذالك.

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

هذا الشخص اعرفه ذكي ولماح. ولكن لا اعلم لماذا التبس عليه الامر؟ هل طريقة سؤالي ام جلستي اللتى اوحت له ان المشكلة فعلا عويصه؟.


xlogic

T H E P O W E R OF B R A I N



I received an e-mail saying:


fi yuo cna raed tihs, yuo hvae a sgtrane mnid too.Cna yuo raed tihs? Olny 55 plepoe can.

i cdnuolt blveiee taht I cluod aulaclty uesdnatnrd waht I was rdanieg. The phaonmneal pweor of the hmuan mnid, aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it dseno't mtaetr in waht oerdr the ltteres in a wrod are, the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghit pclae. The rset can be a taotl mses and you can sitll raed it whotuit a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Azanmig huh? yaeh and I awlyas tghuhot slpeling was ipmorantt!


xlogic

٢٥‏/٣‏/١٤٢٨ هـ

رجل كاد ان يغير التاريخ


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

هذا الرجل مبدع عصره. وسابق العصر اللذي عاش فيه ب 1700 سنه!!!.


عاش هيرون الاسكندراني Heron of Alexandria في 100 قبل اميلاد وهو يوناني .له اكتشافات كثيرة!. ولكن اعجبها الكرة البخارية؟ هذه كرة من الحديد مثبته على عامودين يمسكانها. وبخرجان من الكورة انبوبان ويتجهان عكس بعضهما. ويملئها بالماء ثم يضعها فوق النار (مرتفعه عن النار).فيخرج البخار من
الفتحتان فتدور الكورة بسرعة بقوة البخار.
ولكن هيرون لم يفكر (او ربما فكر) . كيف يستغلها!. انما كانت مثل اللعبة عنده. فلم يستغلها او يطورها.
وبعد 1700 سنة اكتشف المحرك البخاري الانجليزي توماس سافري Thomas Savery 1650-1715 .
فتسائلت. والبرنامج ايضاً تسائل؟ ماذا لو اكمل هيرون مشروعه واكتشف المحرك البخاري!!!لأختلف التاريخ. واختلفت الحروب. لان المحرك البخاري هو بداية نهضة الصناعة.
ماذا لو....
اتركم لتفكروا. هل سوف يتغير التاريخ؟ وتكون الاسكندرية مهد حضارة اليوم؟.

xlogic

Batman and Superman باتمان وسوبرمان


عندما كنت صغيراً. ايام الدراسة المتوسطة.وهذه الفترة لم تكن هناك اتاري؟ او بلاي ستيشن. او فيديو. فكانت لدي هوايات وواحدة منها هي غرامي بمجلات المصورة ،باتمان وسوبرمان ومجلة طارق . والبرق ولم اعرف ان البرق هو فلاش نفسه الا بعد مشاهدتي لفلم فلاش


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

الناس). بدائوا بالتوا يتعرفوا على سوبرمان وباتمان!. فمن كان تفكيره اسبق؟ نحن ام هؤلاء اللذي بالتوا تعرفوا على هذه الشخصيات والقصص. لقد عرفنا الكريبتون ونحن مراهقين. قبل معظم الناس اللذين بالتوا يعرفوا ماهوا الكريبتون.


ولكن اقول لكم شيء:
هذه المجلات كانت غذاء لمخ. لتنمية الافكار (الخيالية العلمية). ولولا الخيال العلمي لما توصل الانسان الى القمر.
فلا تبخلوا على ابنائكم بمجلات(او افلام او العاب) فيها من الخيال العلمي، فهي تزيده ادراكاُ، وتجعل افكاره متقدمة على اقرانه
وشكرااا


xlogic

٢٣‏/٣‏/١٤٢٨ هـ

The Contaminated Idea الأفكار الملوثة


الأفكار الملوثة The Contaminated Idea

لا تأخذ الأفكار التالية مسلمات!. فهي في اغلبها خاطئة الفهم من اغلب المشتغلين في الحقل المعلوماتي.أو ما طلق عليه المعلومات الملوثة ( The Contaminated Information ).

برامج تستطيع ان تعيد الملفات المحذوف .

هذه المقولة عندما تسمعها تعتقد أنك سوف تحصل على ملفاتك المحذوفة. وبعض الإخوة أراهم يكتبون في بعض المنتديات "استرجع ملفاتك ولو بعد ألف فورمات" ، وبعضهم ذهب إلى ابعد من ذالك!! . إذ كتب عنوان مقولته "أسترجع ملفاتك المحذوفة منذ أن اشتريت كومبيوترك!!!" ولا تستبعد أن ترى غداً من يكتب " أسترجع ملفاتك قبل ان تحفظها" او قبل ان يصنع القرص الصلب في المصنع!!.

أولاً دعوني أشرح ولو فكرة بسيطة ماذا يحدث داخل القرص الصلب عندما نحذف ملف.
عندما تحذف ملف ما. فان النظام يقوم بحذف اول حرف من اسم الملف. لنفرض اسمه myFile.txt""
فيصبح " yFile.txt" ، لذالك بياناته الأصلية موجودة على القرص لازالت –وهذا أيضا ينطبق على التهيئة-، وعندما تريد ان تخزن ملف جديد يبدأ النظام ببحث في FAT (File Allocation Table) عن مكان ما لتخزين الملف فيبحث ببداية الأحرف المحذوفة (فاضي). فيقوم بالكتابة إلى هذا الموقع (طبعا هذه فكرة مبسطة). لذالك فان أي معلومات موجودة سابقا سوف يكتب عليها(أي تستبدل) ولن تحصل عليها لو حتى أرسلت قرصك الصلب إلى المصنع لاسترجاع الملف المحذوف (المكتوب عليه).
لذالك جميع البرامج التي تدعي أنها تحصل لك على الملفات المحذوفة يقولون لك قبل أن تركب البرنامج لا تركب البرنامج على القرص اللذي تريد أن تسترجع بياناته.
المقولة الصحيحة: استرجع ملفاتك. مالم تكتب عليها.

برامج اعادة الترجمة Decompilers تستطيع أن تحصل على الكود المصدري (كما كتب).

طبعا فكرة خاطئة. الكود المصدري لبرنامج نقصد به اللغة التي كتب بها ،هذه الفكرة ليس صحيحة 100% وإنما الديكومبايلرز يستطيع أن يعطيك كود قريب مما كتب وليس 100 هو الكود نفسه. يعني لنفرض السورسر(Sourcer) . تحت منصة win32 يسترجع لك الاسمبلي كود من البرنامج التنفيذي،
Machine code-->Assembly Language
واذا اخذنا الاسمبلي كود وحاولنا ان نسترجع منها الكود المصدري لنفرض بالفجوال بيسك. هناك عده احتمالات لنفس لكود لتمثيل الكود المصدري. وهذه هي الاشكالية. عدة احتمالات لنفس الكود الاسمبلي باللغه العالية.
كذالك الكومبايلر يزيل أي اسم متغير ويبدله برقم موقع بالذاكره. يعني عندي متغير اسمه myVar عندما تعمل كومبايل يتحول هذا المتغير الى رقم في الذاكرة (reference) لذالك عندما تطلع على كود السورسر سوف تجد انه متغيرك أصبح اسمه D0000001.
تحت منصة دوت نت الديكومبايلرز يحصل لك على اللغة الوسيطة (IL) وهي بالطبع تختلف عن اللغة التي كتب بها البرنامج. ولا تستطيع ان تأخذها كما هي وتدخلها على vb.net editor لتعمل لها كومبايل!.

لا تضع وحدة في فقرة uses اذا انت لا تستعملها. (دلفي)

كثير من الاخوة المبرمجين بلغة الدلفي يعتقدون ان uses هي شبية ب include في لغة السي وهذا الفهم خاطئ،Uses فقرة تدل على استخدامك لوحدة ليس شرطا تضمينها داخل الملف التنفيذي.
عند عملية الكومبايل،الكومبايلر سوف يحذف الكود الغير مستخدم (smart compiler) . وهو ما يعرف بالمترجم الذكي.
ولإثبات النظرية هذه هناك عدة طرق.
أسهلها وأسرعها هذه:
قم بتضمين وحدة من الوحدات ولكن لا تستدع أي دالة منها. واعمل كومبايل مع شرط Debug ثم اذهب الى الوحدة سوف ترى أن لا توجد نقاط زرق عند كل سطر تعليمة (هذه النقاط معناها انك تستطيع ان تضع نقاط توقف ) . هذه يدل على ان الكومبايلر لم يعمل لها كومبايل داخل ملفك. وهناك عده طرق اخرى لا يسمح الوقت بشرحها.هذا الكلام صحيح إذا كانت الوحدة لا تحتوي على متغيرات عامة (Global variables ) ولا تحتوي على Initialization وFinalization.

تكنلوجيا دوت نت هي تكنلوجيا جديدة .
غير صحيح. دوت نت هي فكرة جافاوية الأصل (Java) . ماكروسوفت أحست أنها دخلت بمشاكل اختلاف الإصدارات لوندوز. وهذه المشكلة سوف تستمر إذا لم تجد لها حل. وحل المشكلة هو باستخدام فكرة الجافا. البرامج المكتوبة بالجافا تستطيع ان تعمل على أي بيئة. لذلك عندما تبرمج تحت منصة دوت نت. لايهم ماهو النظام windows2000 او windows XP او سيرفر اوwindows vista او windows basta(ما ادري ماذا سوف يصدر مستقبلاً من اصدارات ربما وندوز شيش كباب windows Shish Kabab ). لايهم ! مادام انت تملك دوت نت فريم ورك، برنامجك سوف يعمل.

برامج المكتوبة بالغة دوت نت أسرع من البرامج المكتوبة بالغات الأخرى.

أيضا غير صحيح : البرنامج المكتوب بمنصة دوت نت سوف يتكلم أولا إلى دوت نت فريم ورك dot net framework ثم من الدوت نت فريم ورك سوف يذهب الى النظام التشغيلي Operating system
أما البرامج المكتوب بالغات الأخرى مثل VB او C++ او Delphi (Native Language) فهي تتكلم إلى النظام مباشرة.

DotNet programe --> DotNet Framework-->Operation System.
Native program --> Operation System

فمن الاسرع!!!.

برامج مضادات الفيروسات سوف تحميني من الملفات التجسسة.

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

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

الهكر يستطيع ان يدخل ويتجسس على كومبيوترك باي لحظة هو يريد اذا عرف الايب بي لجهازك!

غير صحيح: يجب أن يكون كومبيوترك يحتوي على ثغرة أمنية حتى يستطيع الدخول.


عندي جدار ناري إذا أنا بأمان من الهكر!.

أيضا غير صحيح: الجدار الناري إذا لم تعرف كيف تضبطه وتستعمله فلن يفيدك. ولربما يكون عندك جدار ناري والهكر يمرح بجهازك!. مثال:
عندما تشغل الجدا رالناري اول مرة وتحاول ان تتصل بالانترنت عن طريق الانترنت اكسيبلورر سوف يسئلك الجدار الناري ان البرنامج انترنت اكسيبلورر يحاول ان يتصل بالانترنت. فتسمح له بالطبع وربما تقوله لاتسئلني مرة اخرى. الى هنا كل شيء جميل. هناك فيروسات تستطيع ان (تأمر) بطريقة غير مباشرة (بطريقة automation-com) الانترنت اكسيبلورر ان يتصل بسايت وهذا السايت ربما يستعمل سكريبت معين لاخذ بيانات معينة او ينزل فايروس معين لتدمير جهازك او ربما ينزل تروجان يضمن نفسه بالنظام نفسه . وهذا يعرف بالداونلودر downloader.

جدار الناري الملحق بالماكروسوفت ويندوز اكسبي يكفيني .
(هذا جدار اسمه جدار بطيخي).

أول cpu كان بطول 8 بت.

غير صحيح أول cpu كان بطول 4 بت (cpu 4004)وصمم عن طريق شركة يابانية (أنتل لم تقوم بتصميمه) لاستعماله في حاسبة آلية بدل الدوائر الالكترونية التي كانوا يستعملونها. فاخذوا التصميم إلى شركة إنتل لتقوم بتصنيعه . في سنه 1971. (لذالك يقولون المعالج أبوه ياباني وأمه أمريكية)
انظر http://en.wikipedia.org/wiki/Intel_4004

لغة البرمجة X هي أفضل من لغة Y؟

المقارنة بالطريقة هذه غير صحيحة أو غير علمية!.
يجب أن تقول هكذا (قل لي ماذا تريد أقولك أي لغة هي أفضل )

الهاكرز هم نفسهم الكراكرز.

كثير من المشتغلين في حق المعلوماتي يسيئون او يخلطون بين المصطلحين

الهاكرز هم اشخاص يميلون لفهم عميق لإسرار النظام التشغيلي . اكثرهم مبرمجون. يملكون معرفة عالية بالبرمجة وعمل نظام التشغيل. يعرفون هفوات وثغرات بنظام معين وأسباب هذه الثغرات ومتى تحدث. هم في بحث مستمر لمعرفة. ويشاركون معلوماتهم واكتشافاتهم مع الآخرين. ولا يحاولون أذى أبدا مطلقا.
من كتاب Maximum Security: A Hacker's Guide to Protecting Your Internet Site and Network


A hacker is a person intensely interested in the arcane and recondite workings of any computer
operating system. Most often, hackers are programmers. As such, hackers obtain advanced
knowledge of operating systems and programming languages. They may know of holes within
systems and the reasons for such holes. Hackers constantly seek further knowledge, freely share
what they have discovered, and never, ever intentionally damage data.


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

A cracker is a person who breaks into or otherwise violates the system integrity of remote
machines, with malicious intent. Crackers, having gained unauthorized access, destroy vital data,
deny legitimate users service, or basically cause problems for their targets. Crackers can easily be
identified because their actions are malicious.


املك اسرع كومبيوتر سرعة المعالج (5GHZ).

سرعة المعالجة وحدها لا تكفي؟ لان السرعة هذه يقوم بها المعالج عندما تتوفر له البيانات. من الذاكرة (memory+harddisk) . فاذا كانت سرعة الذاكرة والقرص الصلب بطيئة أذا المعالج لن يعمل بكامل سرعة.
اتعلم ماهي معضلة الكومبيوتر؟. انها القطع الميكانيكية. مثل القرص الصلب+القرص اللين+القرص المدمج ، هذه المكونات مهما اصبحت سريعة لن تصل سرعة المكونات الالكترونية (Solid State)، لذلك اذا الكومبيوتر لم تكون مكوناته متوافقة (matched up). سرعة المعالج لن تنفع. أفضل الكومبيوترات هو اللذي لا يستعمل مكونات ميكانيكية. (زيادة ذاكرة والتوقف عن استعمال القرص الصلب- احد الحلول).
xlogic

مشكلة الخمسة والعشرون يوماً



عجيباً أمر البرمجة. والأعجب أن تكون مهووس وتبحث عن المثالية في البرمجة.
بعد أن صممت البرنامج وقمت بفحصه وتأكدت أن كل شي يعمل كما هو مصمم عليه....يجب ألا يكون هناك أي شي للصدفة .
99.9% فكرت بكل شيء. ودرست الاحتمالات الممكن حدوثها بالبرنامج واحتطت .
وتلافيت استعمال أي مكون مالم أكون صممته إلا (واحد) ، لان لن أقوم باكتشاف العجلة من جديد،البرنامج صمم على ان يعمل اربع وعشرون ساعة في سبعة ايام ، يعني لاشي أن يوقفه.

وضعت تحت الفحص لمده 14 يوما واكتشفت خطأ ما. ليس من البرنامج ولكن بسبب احد دوال الويندوز. وتلافيت استعمال هذه الدالة.
واستعمال البرنامج بأقصى إمكانياته بتفعيل جميع الخيارات وضعت البرنامج تحت مراقبه برنامج perform اللذي يأتي مع الويندوز لمراقبة أداء الكومبيوتر وموارده. ومراقبة private bytes لبرنامج لاكتشاف أذا كان هناك أي تسرب بالذاكرة memory leak.

جميل ......كل شي يعمل كالساعة. تك تك تك .
وضعته تحت التشغيل الفعلي بعد التأكد من أن كل شيء يعمل كما هو مصمم عليه.

وفي يوم من الأيام اتصل على (احد مستخدمين البرنامج) يخبرني أن البرنامج عمل خروج فجأة. فسألته إذا عمل شي معين قبل أن يتوقف البرنامج. فقال انه لم يكن امامه وإنما اكتشف إن البرنامج لم يكن شغال.
ذهبت الى الموقع. وقمت اولاً بفحص الكومبيوتر. فلم احصل على شيء. لان كل شيء سليم ولا يوجد هناك أي شيء بالنظام نفسه. وفحصت Event Viewer ووجدت رسالة الخطأ رقم 4009 ثم فحصت اللوق ووجدت رساله الخطأ لبرنامج drwtsn وهي C0000025 ، وبدراسه رسالة الخطأ هذه عرفت ان معنها unrecoverable error يعني حتى الويندوز لا تحددها بالشكل السليم. !!
طيب.
قمت بتشغيل البرنامج ورجعت لمكتبي وقمت بتشغيل البرنامج أيضا على احد الكومبيوترات لفحص، وتركته يعمل، يوم، يومان........ثلاثة........25 يوم ، وفجأة اتصل علي المستخدم وقال لي نفس الشيء قد حدث؟ وقمت فألقيت نظره على الكومبيوتر الذي عندي في المكتب حيث وضعت كومبيوتر لفحص البرنامج وقد تفاجأ ت إذا رأيته هو أيضا قد عمل خروج .اممممم اذا ليس السبب من نظام التشغيل. لان النظامان يختلفان (win2000,winXP) ولكن المشترك بينهم هو البرنامج والمدة.!! امممم لماذا 25 يوم بالضبط تقريبا؟!!!!!!
فبحثت بالانترنت إلى أي شي قريب من هذا؟ وهل هذه المشكلة أوالظاهرة لها علاقة بال memory fragmentation . ولكن لا شي أبداً قريب من هذا.
ولكنى متاكد انها ليس من الذاكرة لأني اتخذت احتياطاتي لدرجه لا تتصورون . والمشكلة الأخرى أنها تحتاج 25 يوم لفحص، أي إذا غيرت شي بالبرنامج لفحصه أنت تحتاج إلى 25 يوم لترى النتيجة.
لقد جلست أيام احك راسي واكلم نفسي. كيف يكون الحل، وأين تكمن المشكلة . أريد بداية الخيط .وأنا متأكد إني لا استعمل أي كائن لم اصنعه، إلا واحد وهذا open source كما ذكرت سابقا.
وبدأت احسب 25 يوم ماذا يساوي بالساعات 600 ساعة.
طيب 25 يوم * 24 ساعة *60 دقيقه =36000 دقيقه .
وبالثواني 2160000 ثانيه
ألم تلاحظون شيء غريب؟
أن الأرقام سحريه؟ أي أنها كلها تنتهي بصفر(وانها ارقام معروفه؟ او قد مرت عليك من قبل)
اممممم على ماذا يدل هذا؟ وبدأ المشوار..........قليلا قليلا والتفكير يتصاعد الى القمة وعملية شحذ المخ في اقصاها. وأنا في قمة التركيز تذكرت شيء؟ رقم سحري أخر وهو 49.7 يوم لويندوز؟
نعمممممممممممم.................49.7 / 2= 24.85 وصرخت بقوه اهااااااااااااااااااا
الرقم السحري الاول:
اتعرفون ماهو 49.7 يوم لوندوز.؟ اقول لكم القصة من البداية.
هناك دالة اسمها GetTickCount

وهذه الدالة عندما تناديها ترجع لك رقم (32 بت) يمثل بالملى ثانيه وهو زمن تشغيل الويندوز (او الكومبيوتر بالأحرى) وهذا الرقم يبدأ بالصفر عند تشغيل الويندوز (او الكومبيوتر) وهو يمثل عداد داخل الكومبيوتر(RTC) ، أي أن أقصى حد ممكن تمثله بالرقم 32 بت هو 4294967295
اي 4294967295 م ث وبتحويل هذا الرقم الى أيام يصبح 49.7 يوم وبعد أن يصل العداد إلى أقصى حد له يبدأ من الصفر مره اخرى (أي يصفرReset). ولكن........ما علاقة بين هذا و25 يوم.
كما بينت ان القيمه 25 يوم تمثل نصف العدد 49.7 تقريباً.

أذا هل انا استعمل الدالة هذه (GetTickCount) في البرنامج؟
والاجابة نعم استعملها في دالة تاخير Delay.

الرقم السحري الثاني:
هو 7FFFFFFF
نعم انه الرقم الذي يمثل longint او integer
2147483647..2147483648-
أو بالأحرى نصف الرقم (4294967295) وهو (2147483647)
الم تلاحظوا معي إن الرقم (2147483647) و (2160000)- انظر فوق كيف حصلنا عليه-قريبين من بعض.
عندما يصل العد الى أقصى حد ممكن تمثيله في integer بالموجب هو 2147483647 وهو ما يمثل 7FFFFFFF فأذا زدنا واحد يصبح الرقم 7FFFFFFF+1=80000000
80000000 هذا يمثل الرقم بالسالب =-1
لنفرض ان عندك هذا


Integer
x:=GetTickCount


إذا كانت الويندوز شغال اقل من 25 يوم هذا الرقم موجب!
وعندما تكون الويندوز شغال لمدة أكثر من 25 يوم هذا الرقم بالسالب. اكس سوف تصبح بالسالب.

عملية التنقيح والفحص:
بعد أن ذكرت سابقا من أن بداية حل المشكلة قد ظهر. ولكن حتى يكون الحل وتقديم تقرير عن المشكلة، الحدس لايكفي. ولا التفكير المنطقي يثبت شيء. لذالك وجب على أن اثبت المشكلة عن طريق المحاكاة (simulation ) أي أن اعمل المشكلة. لذالك انصب الحل الأول على أن أجعل البرنامج يتصرف كأنه قد مر على زمن التشغيل 25 يوماً.
وهنا السؤال كيف؟
الفكرة الأولى:
عملت دالة اسمها GetTickCountX وهذه الدالة تنادي الدالة الأصلية GetTickCount وتضيف على القيمة مقدار 25 يوم ناقص خمس دقائق. كما هو موضح بالصورة




ولكن لأسف لم تنجح؟ والسبب أن استدعاء دالة API ليس مثل استدعاء دالة من داخل برنامجك؟ هذا ما توصلت له. ثم قلت لنفسي سوف أستدعيها من DLL وعملت الدالة داخلDLL ولكن أيضا لم تحدث المشكلة والبرنامج استمر بالعمل طبيعي؟.
بداء الشك يدخل تفكيري.ربما اني أفكر بمشكلة ليست هي الأساس؟. ...والزمن يمر؟ والتقرير يجب أن يرفع بأقرب وقت. ولا أريد أن أضع التقرير بحل ليس أكيد. او ربما يكون خاطئ.
وقلت لنفسي يجب أن احصل على طريقة أخرى افحص بها . يجب ان انقح الويندوز!!! نعم يجب ان اتبع الدالة GetTickCount .
وهنا اعرف أن هناك منقح ويندوز من ماكروسوفت windbg وقمت بتنزيل أخر نسخه وقمت بتذكر كيف استخدمه لان النسخة القديمة command prompt وليس GUI عموما ما هي إلا سويعات والمنقح شغال.
قمت بتشغيل برنامجي تحت المنقح. ثم قمت بتنقيح Kernel32.dll والتي تحتوي على GetTickCount

u kernel32!GetTickCount

هذا الأمر unasm سوف يعرض الاسمبلي كود ومنها اعرف عنوان خروج الدالة وعندها سوف أضع نقطة التوقف
عنوان خروج الدالة هو 7c8092ba
نضع الأمر التالي نقطه توقف

"bp 7c8092ba "reax=@eax+0x7FFFFFF0;reax;g

و g في أخر الأمر هو معناها go أي اشتغل.




هذا الأمر يجعل القيمة المرجعة من الدالة في مسجل eax ما قيمته

Result= 2147483632 + current counter value

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

وفحصت drwtsn لوق ووجدت نفس رقم الخطأ . هنا تأكدت من الحل ومن أسباب المشكلة.
فقمت بكتابة التقرير عن المشكلة وأسبابها. وذكرت اسباب المشكلة بالتفصيل مع ذكر ان سببها الرئيسي هو المبرمج بالأساس (أنا) flaw in programming ثم قمت بتصليح الخطأ وهو بسيط تغير قيمة integer إلى cardinal وقمت أيضا بتحسين عمل Delay بحيث لو وصل العد إلى 47.9 لا يدخل في لوب غير منتهي.
نلاحظ من حل المشكلة الأتي:
ليس أن يكون برنامج 100% شغال ولكن هناك ثغرات ربما تحدث بعد وقت معين. لذالك يجب أن تفحص برنامجك بتغير الوقت والتاريخ وكذالك بجعل البرنامج يشتغل أطول مدة ممكنة .
أيضا مهما يكون المبرمج متمكن هناك هفوات ربما يقع فيها اعتى المبرمجين (حلوة هذه أعتى أقولكم أن فلم عنترة اثر علي بجد).
كذالك لاحظت أن الويندوزتتعامل مع Kernel call بطريقة تختلف عن روتين داخل برنامج أو dll خاص.
ارجوا أن تكون هذه المقالة مفيدة.


xlogic

ما البرامج التى تستعملها؟



ما البرامج التي تستعملها والتي تتيح لك أن تعرف مواصفات نافذة أو مراقبة الرسائل بين النوافذ.
Spy++ اللذي يأتي مع ms visual studio أو winSight32 مع دلفي أو برامج أخرى؟ .......
أنا أستعمل برنامج الصراحة لا استغني عنه أبداً...وهو سر من أسرارى اعتبره!. لأنه لا يشكو من أي إشكال! ولا يحتوي على أي اثار جانبية side effect مثل بطيء الجهاز. وفيه مواصفات كثيرة. تفيد المستخدم. انه winspector spy وهو مجاني.
أنصحكم باستعماله. تأخذه مرتان مره صباحاً بعد الإفطار ومره مساءً قبل أن تنام. وبالشفاء إن شاء الله.

xlogic

٢٢‏/٣‏/١٤٢٨ هـ

الرسائل القصيرة


قبل يومين كنت في المؤسسة (يملكها صاحب لي) التى قمت بتصميم البرنامج لهم.
لشراء بعض الاغراض (مؤسسة لبيع مواد البناء) . ورايت احد الموظفين اللذين يعملون فيها معه قائمة طويلة وهذه القائمة من البرنامج. وهي تقرير بشكل datasheet تحتوي على اسم الزبون ورقم تلفونه الجوال ومجموع الفواتير ومجموع الدفعات والرصيد (المتبقي عليه) واخر تاريخ تم دفع الدفعة.
وكان الموظف يتصل عليهم واخبارهم (ويذكرهم) انه عليهم دفعات متاخره. ويجب الحضور لمؤسسة لدفع.
فلمحت لي فكرة؟.
لما لا اقوم بتصميم برنامج يقوم بارسال رسائل نصية ويرسلها لزبائن لتذكير؟...تحتوي على المبلغ المتبقي+اسم الزبون.
اممممم. حقاً انها فكرة جيدة. وبما اني في اجازة لمدة خمسة ايام . وبسرعه ذهبت الى البيت وفتحت الكومبيوتر وبدات اضع الفكرة.
كل اللذي تريده هو ان تتصل بالتلفون . هناك عدة طرق الكيبل. او البلوتوث. اخترت طريقة البلوتوث لانها اسرع وبدات ابرمج بالدلفي .....ومعرفة باوامر AT. وان تتصل بالديتا بيس لاستخراج التقرير ثم تترك الاختيار لمستخدم باختيار الاشخاص اللذي يريد ان يرسل لهم رسائل. عن طريق checkbox ثم ارسل,,,,
xlogic

١٧‏/١‏/١٤٢٨ هـ

هل البرمجة علم أم فن؟

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

١٦‏/١‏/١٤٢٨ هـ

هل الافضل ترك الكومبيوتر شغال او اغلاقه؟

م مرة دخلت في نقاش مع احد الاصدقاء عن موضوع ترك الكومبيوتر شغال اويُفّضل اغلاقه.

وهذا ما قاله:

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

فقلت له:

تقنية الكومبيوتر تقدمت كثيراً , وأغلاق وتشغيل الكومبيوتر لا يضر على مكوناته اذا كان اغلاقه بالطريقه الصحيحة، يعني اذكر التلفزيونات القديمة كانت اذا شُغلت وثم اغُلقتها عدة مرات ربما تحترق الشمعات ، وذالك بسبب ان بدايه تشغيل ربما يرتفع التيار الكهربائي بدرجات عالية (spark) وهذا ربما يحرق بعض المكونات.
اما اليوم فال solid-state تعتبر تقنية عالية والتيار المغذي تيار ثابت، جرب تلفزيونات اليوم اطفيها وشغلها مئه مره لايضرها شيء. ولكن ترك التلفزيون شغال على فترات طويله قد يقصر عمر الشاشه نفسها لاغير.

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

الخلاصه اقول انا احب اغلق كومبيوتري
مع تحياتي
xlogic

١٤‏/١‏/١٤٢٨ هـ

T H E P O W E R OF IT



أمكانيات تقنية المعلومات
كيف عملوها؟(لقد عرفت كيف)
لقد وصلني قبل فترة بريد من احد الاصدقاء وفيه رابط لغوغول اسمه الرابط
(غوغل يقترح) وبعد ان ذهبت الى الرابط كتبت بعض الاحرف لبحث واذا بغوغل يعرض من الصندوق الاقتراحات الممكنة؟
فعلاً انها اعجوبة تقنية المعلومات
والى لقاء اخر
xlogic

١٣‏/١‏/١٤٢٨ هـ

برنامج مجاني من موقع انسور

الصراحة اليوم كنت اتصفح والعادة في هذا الوقت ابرمج……ولكن اخذت اجازة من البرمجة موقتاً.

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

بالنسبة لي اذا الكلمة مهمة واردت ان اعرف الكثير عنها اذهب الى whatis.com ولكن اليوم اكتشفت موقع يقدم برنامج جديد اسمه AnswerBar فعلاً برنامج مفيد. ما عليك الا ان تركبه وسوف يظهر عندك بار صغير عند منطقه التنبيه . تستطيع ان تكتب الكلمة . او ان تضغط على الماوس مع ALT على الكلمة وياااااعيني………….بجميع اللغات………..

اتركم مع البرنامج من موقع www.answers.com
مع تحياتي
xlogic

PeakMessages or not to PeakMessages ?

I 'm confused; some programmers say you should create message queue before you call GetMessage in thread.


But all my threads are using GetMessage without creating message queue, and they are working find. So should I use PeekMessages to force creating queue or shouldn’t?


I know that any VCL windows got its own message queue.

١١‏/١‏/١٤٢٨ هـ

X المهندس المخضرم و

موضوع قديم قرائته في احدى المجلات.

يحكى أن في سنوات الاربعينيات قامت شركة GE لصناعة مولادات الكهربائية بأنشاء محطة جديدة تعتمد على احد مولداتها المتطورة التى قام مهندسوها بتطويرها مؤخرا. وبعد تركيبها في احد مقاطعات الولاية. لم تفك من المشاكل. وعدم العمل باستقرار.
وبعد ان حاولوا مهندسوا الشركه بحل المشكلة. عجزوا عن الوصول الى حل . واستسلموا لشتائم المدراء لدى الشركه. فلم تجد الشركة الا باستعانة باحد مهندسينها اللذين تقاعدوا مؤخراً. وهو يعتبر من ابرع الخبراء في الشركة عندما كان يعمل فيها. وبعد التقاعد ذهب الى احد الولايات واستقر فيها, ويقوم الان بالقاء المحاضرات في الجامعة هناك. فقاموا بارسال برقية تشرح فيها المشكلة واذا كان في وسعه القدوم والمشاركة بالحل. او الاقل بتقديم المشورة . وان تكاليف السفر والاتعاب الاخرى مدفوعه له. فقام المهندس المخضرم بالسفر الى مقر عمله القديم وبعد الالتقاء بمسئولينه القدماء . اخذ جولة مع مهندسين الشركة الى المشروع لاطلاع عليه وبعد ان اخذ المخططات وبداء بدراستها وبعد مرور يومين . وقف على احد المولدات وبيده طباشيرة وفتح صندوق التوصيلات. قام بوضع علامة (أكس) X (اي بتحديد المشكلة) وبداء بكتابة ان السلك الفلاني يصل الى النقطة الفلانية والسلك رقم كذا يصل الى النقطة الفلانية. ونزل من المولد .
وقال اعملوا ماهو مكتوب . وبعد ان عملوا المكتوب قاموا بالتشغيل فاشتغل المولد بلا مشاكل, فقام بالسلام على الموجودين ورجع الى مدينتة وبعد اسبوع وصلت برقية من الشركة تسئله عن الاتعاب التى يريدها فكتب لهم:
قيمه الطباشيرة نصف دولار.
قيمه مكان اكس 999.5 دولار.
الخلاصة:
جميع مهندسين الشركة يستطيعون ان يضعوا اكس؟ ولكن السؤال اين يضعوه.

١٠‏/١‏/١٤٢٨ هـ

برنامج لمقارنة نسخ النصوص

قبل فترة كنت ابحث عن برنامج يقارن الملفات(النصوص) في غوغل، وكل اللي اقدر احصل عليه هو شيروير shareware او برامج لبيع.وتناسيت الموضوع .
ثم احتجت برنامج اخر يبحث عن الملفات المرادفة، او المتشابة. وحصلت على برنامج مجاني اسمة winmerge ويالعجب؟ تستطيع ان تستعملة في مقارنة النصوص ويبينها لك بشكل واضح .
أذا كنت مبرمج وتريد ان تقارن بعض نسخ الملفات النصية فهذا البرنامج يفيدك جداً.
وله مواصفات كثيرة .
أدعكم مع البرنامج : موقع البرنامج


٨‏/١‏/١٤٢٨ هـ

Rich Visual Editor Doesn't Appear فقدان المحرر المرئي


امس كنت اكتب في مدونتى (ليس هنا ) ، فقدت المحرر المرئي...لا اعلم لماذا؟
كنت استخدم Avant browser وشكيت ان المشكلة في البراوسرbrowser نفسه فأستخدمت Internet Explorer ولكن نفس المشكلة؟.
لكني تذكرت ان الافانت براوسر يعتمد كلياً على الانترنت برواسر لذالك هذا لا يوضح شيء؟
فقمت بتنزيل الفاير فوكس FireFox. ويالعجب لقد ظهر المحرر المرئي Rich Visual Editor . أذا المشكلة بالبراوسر نفسه؟ لذالك قمت بتنظيف Internet temporary files
وحاولت مرة اخرى ولكن لم انجح.
فقمت بتنظيف الملفات المؤقتة يدوياً بالذهاب الى

\Local Settings\Temporary Internet Files

ثم اختيار جميع الملفات وحذفها. واااااااااااااو ........ لقد اشتغل.


To fix disappearing of Visual Editor in your blog page do the following
go to
Internet temporary files
" \Local Settings\Temporary Internet Files"
Select all files then delete all
Note: Deleting files from Internet Explorer dose not fix this
thanks

Xlogix

What is the relation between .NET & JAVA ماهي العلاقة بين دوت نت والجافا


طبعا انا من الكارهين لشيء اسمه دوت نت.لست انا الوحيد ولكن الكثيرين من مستخدمين البرمجيات يحاولون تجنب الدوت نت.وكمبرمج ومستخدم . اكرها لعدة اسباب. هي لا تقدم شيء جديد انما تكنلوجيا يريدونك ان تستخدمها. هم يقولون تطور؟ وانا أقول تسويق! نعم انها عملية تسويق واتفاق بين المصنع (Hardware) و مَصنع البرمجيات (Software).سوف يقول قائل كيف هذا؟.
قبل ان اكمل....السؤال المطروح ما هي دوت نت (Net.) بالاساس؟ تعريف ماكروسوفت هو :

Software that connects information, people, systems, and devices

هذا هو التعريف المذكور "برمجيات التى توصل بين المعلومات ،الناس، انظمة والاجهزة "
طبع اذا فهمت شي تعال قولي!!!.

وهذا يذكرني عندما كنت ادرس SAP ولغة ABAP .وعندما عرضوا علينا تعريف الساب قالوا:
System And People

طبعا التعريف اللذي ذكر لا يعرفها بشكل كامل. اذا اردت التعريف تستطيع ان تطلع عليه في هذا الموقع
نرجع لموضوع الدوت نت والتسويق.
عندما تركب Dot Net Frame ماذا تلاحظ؟ انها كبيره الحجم؟ صحيح . وليس هذا فقط ولكن تستهلك موارد الجهاز؟. بالمقابل ماذا تقدم لي كمستخدم؟ لاشيء جديد؟ يعني ركبتها او لم تركبها انت تستطيع ان تعمل بدونها.
وما قصة التسويق؟ نعم سوف اشرح لك القصة، عندما تركب دوت نت على جهازك وجهازك لنقول سرعته متوسطه وموارده متوسطة. انا اتكلم عندما أشتريت جهازك كانت المواصفات هى القمة. يعني قبل سنتين لنفرض كانت مواصافات جهازك هي top of art والان بعد انقضاء السنتين بالطبع نزلت بالسوق مواصفات اعلى. ولكن .......هل انت مجبر على شراء جهاز جديد. أذا ركبت نظام وندوز جديد ربما تحتاج ان تشتري مواصفات جديدة. او ركبت دوت نت فريم سوف تلاحظ بطىء بالجهاز. يعني لو لم تغير البرمجيات التى تستخدمها ربما تستطيع ان تستعمل جهازك لمدة اربع سنوات قادمه او اكثر.أذاً هي عملية تسويق كما هو واضح.يعني لنفرض اني مستخدم على قد حالي. يعني لست بخبير . يعني مستخدم يقرا ايميله. يكتب رسالة؟ يستخدم الاوفس . هل يخدمه windows98 واوفس 97نعم بكل تاكيد .
وهذه البرمجيات تعمل بكفائة عالية على اي جهاز سرعتة لنقول 800MZ و120MB
واذا كان جهازك اسرع سوف تحس ان جهازك طيارة.
ولكن السؤال هل هذا هو السبب الرئيسي لدوت نت(التسويق)؟ لا هناك اسباب اخرى لنرى..........أقولكم القصة الثانيه أو السبب الثاني؟ وهو مهم (طبعا وجهة نظر ربما اكون خاطىء ).
ماكروسوف اكتشفت ان أفكار منافسينها هي الصح؟ مثل ماذا؟ مثل فكرة ال Java ، الجافا تستطيع ان تعمل على اي منصة؟ وهي تستخدم نظام الInterpretation لكود. يعني عندما تعمل على منصه وندوز NT فهي تقوم بترجمه البرنامج الى هذه المنصة في وقت التشغيل. هي سيئة لانها تاخذ وقت بالترجمه. أي تحويل من كود الى كود. وهذا يعرف بال Portability
أذا تريد ان تقول دوت نت شبية بفكرة الجافا؟ نعم هذا صحيح. ماكروسوفت تريد ان تضع نظام داخل نظام التشغيل؟ يعني عندما تشتغل تحت دوت نت، البرمجيات المبرمجة بالدوت نت تقوم اول بالتحدث الى الدوت نت فريم ومن ثم يقوم الدوت نت فريم بالتحدث الى نظام الوندوز؟ أليس هذا تشبيه بما يحدث بالجافا؟ انظر الى

The “Framework” operates between business applications and the ًWindows operating system انظر لموضوع

مع ان البرمجيات التى تعمل بدون دوت نت فريم تتحدث مباشرة الى نظام الوندوز. لماذا احتاج ان اتكلم مع نظام ثم ينقلني الى النظام الاخر؟ مع ان التحدث مباشرة اسرع.
ولكن هم يقدمون شي جديد أيضاً .....

The framework also takes advantage of the latest programming techniques (object oriented development) which have been in use by other programming languages such as Java

أهااااا ..... أذا هم سوف يعتمدون بالبرمجه على OOP او ما يعرف ب "البرمجه بغرضيةالتوجية" والتى سبقتهم جافا و بورلاند منذ زمن بعيد.
الفكره الثانية. هي ان ماكروسوف تمشكلت بالDLL يعني برنامج قمت ببرمجتة في VB6 فرضا، انت تحتاج مكتبة VBRUN ليعمل.لو نلاحظ ان بورلاند Delphi ،عندما تقوم ببرمجة برنامج بالدلفي ،انت لا تحتاج اي مكتبة ليعمل برنامجك. كل شي داخل البرنامج.
أليس هذا تفوق لدلفي على vb.أذا مستقبلا عندما تعمل تحت الدوت نت (كمبرمج) لا تحتاج الا ان يكون دوت نت فريم ورك متواجد على جهاز الزبون ليعمل برنامجك.كل المكتبات سوف تكون متواجدة هناك. يعني احتجت لها او لم تحتاج لها كل شي موجود.
طبعا........مستقبلا......سوف تكون الدوت نت فريم ورك متضمن داخل نظام الوندوز. عجبك او لم يعجبك.


ولنا لقاء اخر.........مع السلامة
Xlogic

Delphinized Idea 1 أفكار دلفينية


كيف توقف قائمه النظام في النموذج Form's System menu

كنت افحص احد برامجي التي تعمل تحت multithreading حيث كان هناك عدة نماذج وفي احد النماذج يقوم thread بعرض بعض النتائج وحالة عمل لthread عن طريق دالة التزامن synchronize......كل شي يعمل كما صمم ...جميل ان ترى كل شي يعمل مثل الساعة, تك تك تك


وفجأة عندما ضغطتُ على اسم النموذج عن طريق الفارة يمين وظهرت قائمة النظام. يبداء تأثير أنعكاسي على الthread ويبدا بالتاخر بعرض النتائج وربما يتوقف بالكامل.


وهذا بسبب ان دالة التزامن synchronize تعتمد على عملها بمبداء (الرسائل) messages،وبما ان النموذج في حالة عرض قائمة النظام system menu اذا لوب الرسائل متوقف.


انها مشكلة لم انتبه لها الا من خلال الفحص.

أّذاً ما الحل؟

ربما احد سوف يقول بسيطة...... اوقف عرض القائمة عن طريق []=:borderIconsصحيح ...ولكني انا استعمل bsToolwindow مع زر أغلاق. اي اني اريد النموذج هكذا:

bsToolWindow
Close Button
وبدون biSystemMenu

التجميع او التركيبه هذه لا تعمل مع بعضها . اي لا تستطيع ان تعملها.

الحل الوحيد اللذي استطعت الوصول له هو اني استعمل winproc واعترض الرسالة التى ترسل عندما تضغط على اسم النموذج بزر الفارة يمين. وهي WM_MCRBUTTONDOWN

ومن ثم أقوم بتجاهل هذه الرسالة. حل جميل أليس كذالك؟

بس هناك مشكلة بسيطة؟.....أن جميع الرسائل ترسل الى هذا الروتين ومن ثم تذهب الى الروتين الاصلي اذا كانت الرسالة غير موجودة في winproc (ألاف الرسائل التى ترسلها الوندوز الى البرنامج مثل حركه الفارة على النموذج والضغط على الفارة و و و.............)

أذاً هذا الحل يعمل بس أنا في تصاميمي ابحث عن الاداء ايضاُ؟

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


Code








procedure TLogFrm.WMNCRBUTTONDOWN(var message:Tmessage);
begin
with message do
case Msg of
WM_NCRBUTTONDOWN:{Do Nothing};
end;
end;
end;







 
procedure TLogFrm.WMNCRBUTTONDOWN(var message:Tmessage);
begin
{keep this remark}
end;












procedure WMNCRBUTTONDOWN(var message:Tmessage); message WM_NCRBUTTONDOWN;