Sunday, December 09, 2007

كتاب بسيط عن تنصيب لينكس بالعربي

سلام عليكم
هذا كتيب عن تنصيب لينكس أتمنى أن يعجبكم
كتبته من 6 سنوات أو أقل تقريبا

Monday, November 26, 2007

تطوير تطبقات أندرويد أفضل على لينكس

سلام عليكم


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




أتمنى أن تكون النصيحة مفيده :)

Tuesday, November 13, 2007

بنية جوجل الخاصة بالجوال "أندرويد"

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





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

Wednesday, October 31, 2007

رساله ترد الروح

سلام عليكم
كنت قبل كده كتبت كتاب فى الأيه أس بيه 2005
المهم اليوم وصلتني هذه الرساله


السيد / أحمد عصام الموقر

السلام عليكم ورحمة الله وبركاته وبعد:

رسالة شكر وإعجاب بكتابك العربي (ASP.Net_2)

حاولت قراءة العديد من الكتب – بصفتي مبتدئ –

ولكن كهكذا كتاب لم أجد

شرح مبسط وسهل

تنوع في المواضيع

عرض الأمثلة بلغتين (Vb & C#)

وبصراحة لم أقرأ حتى الآن سوى الجزء الأول والثاني

ولكني وجدت نفسي متشبث بشاشة الكمبيونر وأنا أقرأ

للاسلوب المتبع في الشرح

أسأل الله أن يفتح عليك

ويرزقك من حيث لا تحتسب



لدي سؤالين:

- لدي الكتاب وهو عبارة عن سبعة أجزاء ، هل هذا هو الكتاب كاملا أم هناك أجزاء مفقودة ؟

- هل لديك أي مؤلفات أخرى ؟





أخوك

أنس الأنصاري

كل ما أستطيع أن أقوله , أن مثل هذا الكلام يدفع للعمل أكثر , أتمنى أن أفيد و أستفيد من كل ما حولى :)
الحمد لله
سلام عليكم

Saturday, September 15, 2007

أيام زمان

سلام عليكم و رحمة الله و بركاته
فاكرين زمان أيام الدوس , فى ناس شيفة أن الأيام كانت أيام صعبه و معقده , بس أنا شايف أن الأيام ديه هي الى الناس ممكن تتعلم منها بجد حاجات كتير عن علوم الحاسب, أنا عن نفسي أتعلمت كتير منها, بس أنا أستعملت الدوس مش من زمان أوي , كان تقريبا أول أحتكاكي بالكمبيوتر 1998 و كنت فى الثانوية العامه , فى مدرسه حكومى , و كان الأجهزه الموجودة ساعتها أبيض و أسود , كان فى أجهزه عليها ويندوز 95 و 98 بس كانوا بيخافوا يشغلوها علشان كانت عهده, المهم أنا و 3 من الزملاء الأعزاء كنا مهلمين دراسيا و كنا أهتمامنا أكتر باكمبيوتر و كنا بنقعد كتير فى غرفة الحاسب الألي, المهم كان كل المتاح ساعتها هى الأجهزة ديه و التى لا تحتوى على أى نوع من أنواع وسائط التخزين , كنا بنجيب ديسك عليه دوس 6.22 و كنا بنعيش عليها مع "جي دبليو بيسك و كويك بيسك" و كانت ديه أقصى أمنينا , المهم أنا أتعلمت حاجات كتير جدا فى الفتره ديه , المهم أنقطعت لفتره , و بعدين رجعت تانى أشاغل على الكويك بيسك , و عملت شوية الحاجات ديه و كان سعتها "دكتور عمرو موسى" كان بيعلمنا شوية حاجات عن طرق تصميم البرامج بمعظم الأدوات المتاحة , المهم كان بيدينا المعلومة بالقطاره بعد ما يطلع عنينا من البحث, بس ديه طريقة مفيدة و كويسه جدا فى الحصول على المعلومه , المهم أنا عندي شوية حاجات عايز أوريها لكم , هى حاجات قديمه بس حلوة أوي


شاشة تسجيل العملاء


شاشة الأضافة أو السحب من حساب العميل

قائمة مبسطه من التقارير


محاولة بسيطة لدعم اللغه العربيه فى الدوس و الحمد لله نجحت


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


ده نفس البرنامج بس بيدعم أستخدام الماوس


ده نفس البرنامج الى فوق بس فى جرافيك مود

أولى محاولات لمحاكات الويندوز من ناحية الأنترفيس

نفس البرنامج الى فوق بس بشكل تاني

ده نفس البرنامج و ده عرض للمستخدمين , على فكره الجريده ديه فيها بيجينج بس مش باين بيشتغل بأزرار الزر الأيمن و الأيسر



المهم أنا أتمنى أن الحاجات ديه تعجبكم أنا عارف أن مفيش حاجة جديده هنا نتعلمها , بس أنا كنت عايز أعرض طريقة تفيدنا فى التعلم و هى أن لما الواحد يرجع لورا مش لازم يكون بيرحع علشان عنده مشكلة , الحاجات ديه مفيده , لان ديما التاريخ بيعيد نفسه , الى هتعمله فى حاجة زي ديه هيعود عليك
شكرا ليكم :)
سلام عليكم

Monday, March 26, 2007

ترجمة مشاريع لينكس على الويندوز

سلام عليكم
أنا أسف أن بقالى فتره كبيرة جدا مش بعمل أي أضافات , أنا كنت تعبان شوية دلوقتى الحمد لله :)
المهم النهارده أنا هكلمكم عن كيفية ترجمة أكواد لينكس على ويندوز , الكلام ده قابل للتطبيق على C++ و على الأكواد المتوافقه مع GCC
سوف نحتاج الى بعض الأدوات
أول حاجة MinGW و علشان توفير الوقت و متوهش كتير نزل البرنامج من هنا
بعد كده هنحتاج حاجة أسمها Msys
و كمان هتحتاج Bash 3.1
نبدأ الأن بعد ما تنزل الـMinGW هتنزل عليه الـMsysو بعد كده تفك الـBash جوه المجلد بتاع الـMsys
دلوقتى تقدر بكل بساطه تستعمل الأوامر بتاعت الـGCC جوه الـMsys
أنا هدور لكم على مشروع حلو كده و نمشي معاه خطوه خطوه , أنا أسف أن الموضوع مش مفصل :)
انا مشغول شوية :)

Saturday, February 17, 2007

إِلَى صَلَاتِي

بسم الله الرحمن الرحيم
كم من مرة جلست أمام شاشة الكمبيوتر تعمل و نسيت الصلاة؟, كم مرة تذكر الله و انت تعمل أو تلعب على جهازك؟, أن للصلاة شأن عظيم و ذكر الله أعظم فأحرص على اداء صلاتك مع الجماعة و إحرص كل الحرص على ذكر الله

Monday, February 12, 2007

أدوات أنتل لمطوري الويب

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



  • معلومات عن الطاقة "الأجهزه المحمولة ( كمبيوتر و جوال )"

  • معلومات عن خط الأتصال

  • معلومات عن الوحدات التخزينيه

  • معلومات عن الباندويدث

  • معلومات عن المعالج

  • معلومات حول المكان

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

أنا مش عايز أضيع وقتكم أكتر من كده , الوصلة التاليه فيها كل الموضوع و كمان دون لود للمكتبه

http://www3.intel.com/cd/ids/developer/asmo-na/eng/336424.htm

أتمنى أن يكون الموضوع مفيد :)

Sunday, February 11, 2007

سهولة صيانة التطبيقات Maintainability

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

كتاب ASP.NET 2.0 عربي و مجاني


سلام عليكم
كتير أوي من أصدقائي الى عرفين أنى عامل كتاب فى الـ ASP.NET 2.0 بيسألونى من أين يجيبوا الكتاب
السؤال ده بقيت أتسأله كل يوم تقريبا المهم
معرفش ليه مخطرش على بالى أنى أكتب فى البلوج موضوع و اريح دماغي
المهم ديه وصلات الموضو كله
أدعوا لي كتير :)
تم تعديل الوصلة للكتاب

Saturday, February 10, 2007

تحسين اداء التطبيق 2


بسم الله الرحمن الرحيم

أهلا بكم أخوانى , أتمنى أن تكون قد أستفدتم من الجزاء الأول ,
و الان لنكمل ما بدأن , لمن يحب المتابعه و التحضير فكما ذكرت أن مصدر الأساسي بالنسبة لى فى هذا الموضوع هو كتاب
Vtune Performance Analyzer
و الأن لنكمل ما بدأنا , أولا هناك سؤال ورد فى الجزء الأول , للأسف السؤال تم وضعه على منتدى الفريق العربي و المنتدى حاليا مغلق, لذا أرجوا منكم ان تضعوا أسألتكم هنا حتى يتكامل الموضوع بشكل كامل هنا

و الأن لنكمل , سوف نبدأ الان يذكر حالات حدثة من قبل و هذا مفيد لنا حيث أننا سوف نتعلم من أخطأ غيرنا

- مشاكل متوقعه:
فى لبعه تفاعليه "السرعه أقل من ما يجب عليه",قرر فريق التطوير أستعمال في-توين قبل البدأ فى تعديل أى جزء من اللعبه , بعد أن قام الفريق باستعمال الأدوات الخاصة بتحليل الأداء توصل الفريق الى أن المشكلة ليست فى الكود الخاص بهم و أنما المشكلة فى سواقة تريف كار ت الشاشة (VGA Driver) و المشكلة التى تم أكتشافها هى أن هناك مشكلة فى سواقة حيث انها يحدث خطأ ما يؤدي الى أستهلاك السواقة 15% من وقت النظام بينما كان متوقع أن يستهلك فقط 3% , "هل أنت مدرك أنه بسبب خطأ غيرك كان من الممكن تمضي أيام كثيرة تحل فى مشكلة ليست موجودة" , تم اكتشف المشكلة بادوات تحليل الأداء,
الأستعمال الدوري لأدوات التحليل : نخرج من هذه القصة بشئ صغير جدا "أمن و لا تخون" , هنا بكل بساطة أذا لم يستعمل فريق ادوات تحليل الاداء كان من الممكن ان يضيع الكثير من الوقت فى البحث عن مشكله ليست موجودة , نلاحظ أيضا أن معظم اعملنا تعتمد على أعمال غيرنا لذا "لا تثق فى أن المنصة التى تعمل عليه لا تحتوى على مشاكل",

التحليل الدوري:
أحد أعضاء الفريق , يقوم بشكل دوري "أسبوعياً" بعمل تحليل للأداء , أستخراج بعض التقارير, و من ثما يضع نتائج التقرير فى ملف Excel , يقوم مدير المشروع أيضا بشكل دوري , بمتابعة خط السير المشروع "من ناحية الأداء" و أذا لاحظ المدير خلال فى الأداء يقوم مدير المشروع بأعطاء تعليمات بأعادة العمل فى الأجزاء التى تأثر أدائها.
الوقاية خير من العلاج : فى هذا المثال نجد أن مدير المشروع أدرك أن هناك بعض المشاكل فى الادء و التى من الممكن أن تؤثر على سير المشروع "من ناحية الاداء" , من الممكن أن يؤثر سلباً أن يكون التطبيق بها مشاكل فى الأداء و السرعه"هذا التأثير السلبي يكون طبعا على مستخدم التطبيق", لذلك عندما لاحظ المدير أن هناك مشكلة أستطاع بسرعه حلها و بدون مشاكل, تخيل لو أن هذا المدير لم يقم بعمل هذا التقرير الدوري, كان سوف ينتهي الأمر بحدوث مشكلة كبيره فى وقت متأخر من المشروع مما يوأدي الى أستهلاك أكبر للموارد, لحل المشكلة.

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

مشاكل الأدخال و الأخراج :
أى تطبيق عملى أو حتى ترفيهي سوف يحتاج الى مدخلاج و ينتج مخرجات , المهم بالنسبة لنا هنا هو عملية الادخال و الأخراج بالنسبة للملفات و التعامل مع الشبكة و أى وسيط تخزين , ادوات تحليل الادء سوف تعطيك مفتاح مهم جدا و مفيد حيث أنه سوف يتم بكل بساطه معرفة أماكن أختناقات القرأة و الكتابه بالنسبة للوسائط التى تم ذكرها , و سوف يستلزم هنا لحل المشكلة أن يكون هناك تعديل فى تصميم الكود , و هو أن يقوم المطور بتعديل الكود بحيث يقلل من عملية القرأة "reading acces time" لان هناك وقت يستهلك فى عملية القرأة و أذا تم تقليل عدد مرات القراة سوف يؤدي ذلك الى توفير الكثير من الوقت,

البيانات الغير منسقه Misaligned Data :
فى أحد التطبيقات و أثناء عمل أختبارات على أحد التطبيقات لوحظ أن هناك تأخر كبير فى بعض مناطق فى التطبيق, قام فريق التطوير بأستعمال أدوات تحليل الاداء, أكتشف الفريق أنه فى بعض الحالات تظهر بيانات غير منسقة , بتعديل بسيط لا يتجاوز بضع سطور من الكود تحسن أداء التطبيق بشكل ملحوظ جدا, هنا يظهر أن هناك بعض المشاكل و التى شبه مستحيل أن يتم العثور عليها بالطرق التقليدية , هناك بعض الطرق و لكن هذه الطرق سوف تؤدي الى أستهلاك الكثير من الوقت ,


الأن على ما أظن أن الجميع قد أستطاع أن يكون صورة لما يمكن أن نستفيد به من أدوات تحليل الأداء و اهمية مثل هذه الادوات,

و الأن لنرى كيفية أكتشاف الأختناقات فى التطبيق؟
- عليك تحديد هدف "مثلاً: شوف يعمل التطيبق أسرع 20% من ما هو عليه"
- راقب و أجمع بيانات عن الأداء بدون VTune
- راقب و أجمع بيانات عن الأداء باستخدام VTune
- فكر فيما قمت بتجميعه , قم بوضع "نموذج فرضية"
- تخيل أختبار لفرضيتك و قم بتصميم أختبار لتطبيقك يحقق أهدافك "مثلاً: تغطية كل ما يتعلق بالتخزين فى التطبيق"
- قم بأعادة ما سبق ما عدا الخطورة رقم واحد الى أن تصل ما ترغبه

أيجاد الأختناقات سهل و لكن كما نرى يتطلب بعض الأجراء و التى تقوم بعمل حدود واضحة للتطبيق و أداءاه, و كما لحظنا انك تقوم بفرض فرضية معينه و التى تقودك الى تغيير مهم يؤثر فى أداء تطبيقك, أستعمال VTune يزيد من امكانية فرض فرضيات قريبة من الحقيقة, كما نعلم أن "تحليل" يأتي بعدها أستنتاج هذا ما نحن ندور حولة , نخمن و نستنج بعض المشاكل ثم نبحث عن دليل أثبات أن هناك مشكلة ثم نقوم بحل هذه المشكلة , يوسع VTune دائرة الفرضيه و ال أمكانية أكبر فى أختبار تعود بنتيجة أفضل, يأتي Vtune بأمكانيات ممتازة "معقده الى حد ما :D" هذه الادوات و الأمكانيات تساعدك على عمل تحليل أداء لتطبيقاتك بشكل محترف و فيما يلي ما يحتوية Vtune من أدوات :
- التوقيت Timeing
- شبكة النداءات "تنشاء تلقائياً مع بدأ الأختبار" Call Graph
- قياسات من العدادات الداخلية الموجودة فى البنية الداخلية للمعالج
- وثائق شاملة و جامعه لكيفية أستعمال أداوات التحليل بالأضافة الى نصائح عامه فى تحسين الأداء
- الاشتمال على خاصية النُصح و الأرشاد Tuning Assistant

الخبرات المطلوبه لأستعمال مثل هذه الأدوات
خبرتك فى فى أنظمة الألى حتماً سوف تؤثر فى كيفية أستخدامك للأداة , المبتدأ و الخبير فى التعامل مع الأداة لن يختلف كثيرا , مهما كانت خبرتك سوف تلاحظ أن Vtune يقودك الى التركيز على المشاكل و يقودك أيضا الى تركيز الوقت بحيث يعطك القدرة أن تقوم بعمل شئ فى وقت قليل,

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

و الأن لنبدأ مع الأدوات,
يحتوي VTune على اربع ادوات و التى تمثل أربع مذاهب لتجميع البيانات حول أداء التطبيق , للعلم كل اداة من الادوات الأربعه مختلفه كليا عن غيرها و لكن كل الأدوات مكلملة لبعضه حيث انها سوف تعطيك فى النهاية تقارير و معلومات مهمه تساعدك فى حل مشاكل الأداء فى تطبيقك, الأدوات كالأتي:
- Sampling
- Call Graph
- Counter Monitor
- Tunning Assistant
بعد أن تتعرف على الادوات التى سبق ذكرها سوف تقوم بعمل ما يشبه خلطة من أستخدام الأدوات, بمعنى أنك سوف تقوم بأستعمال هذه الادوات بشكل مختلف عن غيرك للحصول على نتائج معينه تفيدك في تحليل مشاكل أداء بشكل معينز


اتمنى ان أكون قد أفدتكم,

أن شاء الله نكمل قريبا ,

Thursday, February 08, 2007

أدارة حقوق الملكيه الفكريه للوسائط المتعدده

سلام عليكم
أزيكم يا شباب
أتمنى أن الجميع يكون بخير , طنه ستي (مدونه صديقة) و حبيت أنقل لكم موضوع حلو أوى لقيته هناك
و حافظا على حقوق الملكية الفكريه , أضغطوا على اللينك و أستمتعوا بالموضوع
شكرا جدا لمحمد الطنه على الموضوع ده

Saturday, February 03, 2007

تحسين اداء التطبيق 1


بسم الله الرحمن الرحيم

سلام عليكم

هذه سلسلة جديدة من المواضيع و التى تتحدث عن تحسين الأداء
فى المقالات التى سوف تنشر سوف تكون مصدرها الأساسي كتاب
VTune Performance Analyzer Essentials , هذه النوعيه من المواضيع قليلة جدا و نادرة فى المجتمع العربي, لذلك أتمنى من الله أن يعطيني القوه لأكمل ما بدأت
أول شئ لابد أن نعرفه عندما نبدأ بالحديث عن الأداء و أهميته, لابد و أن بتطرق الى ذهننا الى القياس, لان الأدء من أحد أهم العوامل المتعلقه بالقياس, بمعنى أخر يمكن قياس مدى جودة التطبيق بقياس أستهلاك الموارد التى يحتاجها التطبيق, و لكن ما هو الأداء أصلا, يمكن تعريف الأداء بأكثر من تعريف , و لكني أفضل أبسطهم و هو محاولة أستهلاك موارد بشكل حيكم و بدون تبذير
ما سوف أتحدث عنه يحتاج الى خبره فى البرمجة "بأي لغه", و لكن يفضل ان تكون هذه اللغه من اللغات التى يمكن التعامل معها بوسطة Intel Vtune Performance analyzer , و هذه الأداة تعمل بشكل جيد على مجموعة اللغات التى تأتى مع فيجوال ستوديو بالاضافه الى أنه تتعامل مع نظم التشغيل أخرى مثل لينكس و تدعم الأداة لغة السي , نعود مرة أخرى لموضوع تحسين الأداء , أهم شئ فى عملية تسحين الأداء هو عمل قياسات مسترة لتطبيقك, لتعرف ما هى حالة التطبيق , هل يتحسن مع التعديلات و الأضافات أم يتجه للأسوء, توفير للوقت أقترحت عليك أستعمال الأداة "في تيون" لان هذه توفر الكثير من الأمكانيات التى لن تجدها فى أى طريقة لتحسين الأداء أو برامج التنقيح, تقوم اداة تحليل الأداء بعمل رائع جدا و يوفر الكثير من العناء على المطور , هو تجميع بيانات حول حالة التطبيق, للوهله الأولى سوف تقول "يمكنني عمل كود يقوم بمتابعة البرنامج و أعطاء تقرير" هذه الطريقة مفيدة الى حد ما و لكن لها عيوب كثير جدا أولها أن هذه التقرير تكون كبيرة جدا و أكثرمن اللازم بالأضافة الى أن مثل هذه التقارير تسبب عدم عمل البرنامج بشكل صحيح حيث أن التطبيق يكون مثقل بهذا الكود الذي يقوم بعمل التقرير, بالنسبة لمحلل الأداء من أنتل فأن الوضع مختلف تماما, فان الأداة بشكل مبدأى تقوم بتجميع أنواع مختلفه من البيانات و التى تعتمد على متغيرات مختلفة, هذه الأداة لاتؤثر فى عمل التطبيق أطلاقا بمعني أخر أن هذه الاداة تقوم بتجميع البيانات بدون أن تسبب تأخير أو تعطيل فى التطبيق, التقرير يمكن بعد ذلك مقارنتها بكل بساطه و الحصول على بعض التنويهات و الملاحظات التى تساعدك فى تحسين أداء تطبيقك.
الأن لابد و أن نعرف شئ صغير جدا وهو ان أستعملك لأدوات تحليل الأداء سوف يوصلك فى نهاية الطريق الى مقطع من الكود الذي يحتاج الى أصلاح و تعديل ليعمل بشكل أفضل,يقوم "في تيون" بتوفير بعض الادوات التى تساهم فى جعل حياة المطور أسهل و أفضل من ناحية تحسين أداء التطبيق و هما كالأتى,
- شجرة النداءات Call Graph
- تجميع العينات المعتمد على الأحداث Event Based Sampling
- تجميع العينات المعتمد على الوقت Time Based Sampling
- مراقبة العدادات Counter Monitor
- مساعد الضبط و التحسين Tuning Assistant

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

أسبب أستخدام هذه الأدوات و مناهج التعامل مع أدوات تحسين الادء؟

- طريقة دورة التطوير Development Cycle
فى هذه الطريقة سوف تجد من المناسب جدا أستعمال أدوات تحسين الأدء كما هو فى الحالات التاليه
- فى حالة تحويل البرنامج من لغه الى لغه أخرى Porting
- فى حالة البحث عن اداء أفضل للتطبيق

-طريقة مركزية الأداء Performance Centric
وهنا المقصود أن يكون الأدء هو أهم عنصر من عناصر التطبيق بحيث يكون الأداء العالى أحد المتطلبات الرئيسية فى التطبيق و هنا يكون لدينا عدة حالات و التى تطلب أن يكون الأداء هو المحور الأثاثي فى التطوير
- يجب رفع الأداء: عندما يكون أهم عنصر فى التطبيق هو رفع الأدء, على سبيل المثال الصارف الألى ATM لا يمكن أن ندع المستخدم ينتظر كثيرا, فى هذه الحالة لابد الأهتمام بسرعة التطبيق و الأستعمال الأمثل للموارد.
- عندما تريد أن لا تخسر أداء تطبيقك , فى بعض الحالات يكون لديك تطبيق يعمل بشكل جيد و المطلوب أضافة بعض الميزات الجديدة على التطبيق و التى تفيد المستخدم, من المهم جدا هنا انه عند أذافة هذه الميزات الجديدة ان لا يفقد التطبيق الميزات القديمة و عملها بنفس الكفاءة, هذه الحالة يقع فيها الجميع حيث يثقل التطبيق بالكثير من الميزات و التى تؤثر سلبا على التطبيق و تسبب فشله فى بعض الأحيان, المغزى هنا انه عندما تقوم بأضافة مميزات جديدة كن حذرا بحيث يكون التطبيق بحالته القديمة أى لا يفقد الأداء الذي كان يعمل به بالأضافة الى ممميزات جديدة

Sunday, January 21, 2007

من جديد

سلام عليكم
كيف حالكم أخواني؟ كنت توقفت لفترة كبيرة عن الكتابه فى مدونتي العربيه , بصراحة حسيت أن مافي منها رجاء , بس قررت أني لازم أكمل فيها علشان مش معقوله أكون بكتب مدونتي بلغه أخرى و أخواني فى اللغه مش بيستفيدوا بما أكتبه لذلك قررت أعادة أحياء مدونتي العربيه و أن أقول بعمل مجهود اكبر فيها, و اول شئ احب أعلن عنه و هو جاري العمل فيه.
انا حاليا أقرأ كتاب
VTUNE the performance analyzer
و قررت أت أكتب ملخص ما أقرأه من هذا الكتاب الرائع و اتمنى ان تستفيدوا معى من ما سوف أقوم كتابته
أدعوا لى أن أفيدكم بقدر المستطاع :)