‏إظهار الرسائل ذات التسميات أدوات. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات أدوات. إظهار كافة الرسائل

الجمعة، 26 أغسطس 2016

أيها المبرمج: اعرف جمهورك

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

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

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

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

ثانياً: عندما تصمم برنامجك الموجه لمحاربة الفايروسات، عليك أن تجعل حجمه أقل حجم ممكن، فالناس عامةً تنفر من البرامج ذات الحجوم الكبيرة، وفي حالة الفايروسات، النفور أشد، فلا يعقل أن تطلب من مستخدم تسرح الفايروسات في جهازه وتمرح أن يقوم بتحميل برنامج حجمه 200MB مثلاً، لأنه ببساطة لن يستطيع حتى لو كان مجبراً على ذلك، فجهازه يئن تحت وطأة الفايروسات، واتصاله بالإنترنت بالكاد يستطيع تلبية طلب الفايروسات المتكاثرة في جهازه والتي تتزاحم على الاتصال لترسل لمبرمجيها حصيلة ما وجدته في جهازه من معلومات.

ثالثاً: حين تصمم برنامجاً لإزالة الفايروسات، عليك أن تتأكد أن البرنامج لن يطلب من المستخدم تحميل أية مكونات إضافية عدا ما يأتي افتراضياً مع النظام. لأن هذه الحزم الإضافية تدخل في إجمالي حجم برنامجك، فإذا كان برنامجك حجمه 1MB ولكنه يطلب من المستخدم تحميل حزمة Microsoft .Net Framwork 4.0 والتي يصل حجمها إلى أكثر من 300MB فإن حجم برنامجك الإجمالي في هذه الحالة ليس 1MB بل يساوي حجم برنامجك + حجم الحزمة (301MB). وهذا منفر جداً وغير قابل للتحقيق في حالة سيطرة الفايروسات على الجهاز الضحية.

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

أيها المبرمج: اعرف جمهورك.


درس لكاسبرسكي ولكل برامج الحماية العالمية

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


بدأ الدرس بسؤال من سائل جديد يسمى "أماربير" سائلاً عن دودة سوهاناد التي غزت جهازه ونغصت حياته وعطلت عليه عمله ولم يكتشفها كاسبرسكي ولم يتعامل معها بالشكل المناسب حتى بعد تحديثه.


جاء الرد الأول من المشرف العام للمنتديات المسمى "دون بيلوتاس" متسائلاً عن نتيجة الفحص بكاسبرسكي وبدون أن يضع حلاً للمشكلة. 

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

الرد الثالث جاء من المشرف "لوشيان بارا" واضعاً بعض المعلومات التفصيلية عن طريقة انتشار هذه الدودة وبدون أن يقدم حلاً لها. 

الرد الرابع جاء من قبل العبد الفقير إلى الله كالتالي: 

قلت: 

دودة سوهاناد لها فيما أعرف ثلاثة أخوات: AS و AM و AO، ولم يكن كاسبرسكي يكتشف هذه الأخوات جميعاً، ولكن يمكن لكاسبرسكي الآن مع آخر تحديث في الوضع الآمن مع إبطال خاصية استرجاع النظام أن يقوم بحذف هذه الأخوات الثلاث حال وجودها. ولكن إذا حصل خطأ ما، أو أن الدودة دخلت قبل أن تقوم بتحديث قاعدة بيانات كاسبرسكي، أو بعد أن كنت قد أبطلت مفعول كاسبرسكي لفترة قصيرة، فإني أعرض عليك أداة صغيرة من برمجتي يمكنها القضاء على جميع نسخ هذه الدودة في دقائق وهي أداة: SRT - Sohandad Removal Tool.

فوجئت بعد دقائق بحذف مشاركتي هذه، ثم برسالة خاصة من المشرف لوشيان بارا يقول فيها وبدون مقدمات:

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

2- لا تقم بوضع روابط لأدوات لم يطلبها منك السائل، لأن ذلك سيحدث فوضى، فإما سيتجاهلها الكل، أو سيشترك فيها الكل بالتعليق بأمور لا علاقة لها بالمشكلة الرئيسية. 

3- أنا شاكر ومقدر لك الوقت الذي تستغرقه في تصميم هذه الأدوات. 

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

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

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

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

طبعاً لابد أنكم توقعتم أنني سأنصح هذا السائل باستخدام أداة أخرى من برمجتي وهي: أداة إزالة مخلفات الفايروسات RRT - Remove Restrictions Tool، ولكني لم أفعل، إما لخيبة الأمل التي أحسست بها، أو لخشيتي أن تحذف مشاركتي كما حذفت أول مرة. ولكن إليكم ما حدث...

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

بعد دقائق جاء السائل وكتب ما يلي: 

إقتباس:

All My Problems Are Solved By This Tool .This is a Learning Experience For even Kaspersky staff That They Need To Incorporate These Kind of Features In The Antivirus .It Does Not Matter If You Are The World's Best AV software But You Have To Learn from All Skilled Software Developers Around The World. What Beautiful Tools That Guy Has On His Website

وهذه ترجمة ما كتب حرفياً باللون الأحمر وبالخط العريض: 

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

نعم - لقد كان هذا درساً أعطاه ذلك السائل لفريق عمل كاسبرسكي. والحقيقة أنني أحسست بالراحة بعده وكأن الله أرسل ذلك الشخص ليخفف خيبة الأمل التي أحسست بها.