All But Reality

Imagine a catchphrase here

Simple template. Background and Customization by Shihab Elagib. Powered by Blogger

November 26, 2015

أبديت

"عليك الله أعمل أبديت ياخي!"
هذا ما كنت كثيراً ما اكرره على مسامع اي مِن مَن احتجت يوماً ان استخدم حاسبه\ها الشخصي –تقليدياً كان ام محمولاً- لغرض ما. ارجوك، حدّث هذه البرمجيات التي تستخدمها. ارجوك، توقف عن استخدام سوفتوير ملئ بالثغرات والعيوب، ومعتمدٍ على معايير عفا عليها الدهر. ارجوك، ريح نفسك وريحنا معاك ياخي!


التحديث او الـupdate احد اهم الجوانب التشغيلية للبرمجيات في العصر الحديث. فليس هنالك برنامج بشفرة كاملة او حتى قريبة للكمال. وان كان هنالك ما قاربه –ظاهرياً- اليوم، فغداً ستستيقظ على اعلان احدهم عن اكتشاف عيب ما فيه لم يكن يعتبر كذلك حين اخرج الى النور، او عن شفرة جديدة اكثر كفاءة او اعتمادية من سابقتها، او عن تغير درامي في الاساس الذي بنيت عليه تلك الشفرة القديمة على صعيد العتاد او البرمجيات.
في عالم انقسمت فيه حياة الفرد وهويته بين ما يمشي بقدمين على ارض الواقع (او ما يسمى بالـMeat space بين بعض الاوساط السايبرية) وبين ما خُزّن كالاف وملايين من الشفرات الثنائية مخزنة في صندوق من البلاستيك، السيليكون وبعض المعادن الاخرى، او في عشرات الخوادم حول العالم، اضحى تأمين تلك النوافذ التي تتيح للفرد الربط بين شقيه الرقمي والفيزيائي ضرورة تساوي –او حتى تفوق في بعض الاحيان- اهمية تأمين المنازل والبنوك والمؤسسات. هذا التأمين –في اكثر صوره وضوحاً- ليس سوى سباقٍ بين طرفين، احدهما يبحث عن ثغرات وضعفٍ في جدران الحماية تلك ليستغلها في الوصول الى بيانات الغير، والاخر يبحث عنها ليغلقها او ينشئ امامها المزيد من الجدران والعقبات ليصعب على غريمه استغلالها. 
ولكن، كيف لهذا الأخير ان يقوم بوظفيته في بيئة ليست تحت سلطته؟ كيف له ان يغلق ثغرة في برنامج مثبت على جهاز يبعد عنه الاف الكيلومترات؟ الانترنت هو الحل، شبكة الوصل الاكبر بين جميع الحواسيب (وما بعد الحواسيب، انظر مفهوم الـIoT) حول العالم. ليس لمطور برنامج ما الا ان يرسل للمستخدم تعديلاته على البرنامج ليقوم هذا الاخير بتثبيتها، او –بلغة اخرى- تحديث البرنامج.

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

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

الابديت "لحم راس":

او كما تسري المقولة الدارجية. فليست جميع التحديثات بنفس الاهمية او لنفس الغرض. ففي حالة الويندوز مثلاً ستجد مايكروسوفت تفرق (أو كانت تفرق) بين التحديثات الامنية التي تغلق ثغراتاً امنية في النظام، بين تلك التي تهدف الى القضاء على العيوب او الـ bugs، وبين تلك التي تضيف مميزات جديدة الى النظام. الاولتين لن تجد من يمكنه الجدال بعقلانية ضد ضرورتيهما المطلقة (اللهم الا ان كنت تعمل في مؤسسة امنية على وزن الـNSA وال GCHQ)، ويمكن الاتفاق بدون اختلاف على انه من الغباء تجاهل هذه التحديثات. لكن الصنف الثالث من التحديثات كثيراً ما يكون مثاراً للجدل. فالـ"مميزات" ليس بالضرورة ذات فائدة موضوعية مطلقة، بل في الحقيقة، الاكثار منها كثيراً ما يعتبر جانباً سلبياً في البرمجيات (انظر Feature Creep). وان اعتبرناها ذات فائدة نسبية، هنا تسقط ضرورية هذا التحديث وتتحول الى خيار متاح فقط لمن يرى فائدة لتلك المميزات الجديدة. مايكروسوفت -وانظمة اللينكس، بصورة مختلفة بعض الشئ- حلت هذه الاشكالية بتصنيف هذا النوع من التحديثات على انه "اختياري" مقارنة بالتصنيفات عالية الاهمية للتحديثات الامنية. لكن انظمة التشغيل هي احدى السوفتوير القليل الذي يسمح للمستخدم بتثبيت تحديثات منفصلة، فغالبية البرمجيات الاخرى تأتي بالتحديثات ككتلة واحدة، "All or nothing" كما تسري المقولة الانجليزية. هنا قد يجد المستخدم نفسه امام معضلة سخيفة، اما ان يحدث ذلك البرنامج ويضطر للتعامل مع "ميزة" ما استبدلت اخرى كان يفضل استخدامها او يخسرها بدون بديل، او ان يتجاهل ذلك التحديث ويخسر زيادة في الاداء والاعتمادية. 
هذا السيناريو الاخير غالباً ما تكون تلك المميزات المذكورة فيها مظهرية في الـGUI. مجدداً اذكر ويندوز 8 و الابنتو مع واجهة الUnity كمثال، لكن اضيف اليهما حالة ربما مرت على بعض المهندسين المدنيين او المعماريين منكم: محاولة الانتقال من نسخة 2007 من برنامج AutoCAD لاصدارات احدث!

ويندوز 10 ومحاولة توحيد بيئة الحواسيب في عالم كثير التجزئة:

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

الأبديت و السودان:

كحال كل ما يتعلق بالانترنت واستخدام الحواسيب، فالسودان يحتاج مراعاة خاصة في الحديث عن مثل هذه الامور. فنحن لا نزال –للأسف- واقعين تحت وطء العقوبات الاقتصادية والحظر التجاري المفروض من الخزينة الامريكية. وان كان هذا الحظر قد عدل في فبراير الماضي ليسمح بالعديد من خدمات الاتصالات والبرمجيات الشخصية بالتعامل مع المستخدمين السودانيين، الا ان تأثيره لا يزال قائماً على غالبية هذه الخدمات لأسباب يمكن اختصارها في ان الكيانات العاملة وراء تلك الخدمات لا ترى فائدة من اعادة فتح خدماتها لهذه المنطقة. النتيجة هي ان امكانية التحديث للعديد من السوفتوير لا تزال مستحيلة دون خداع و طرق ملتوية. فمثلاً لا يزال من غير الممكن لمستخدمي بطاقات شركتي Nvidia و AMD الصورية تحديث محركاتهما وبرامجهما مباشرة من موقع المصنع او عبر خدمات التحديث المبنية فيها (كخاصية التحديث في برنامج  Geforce Experience. ليس لدي علم بحالة AMD في هذه الصدد). ولا يزال مستخدمي متصفح قوقل كروم السودانيون ممنوعين من الاستفادة من خاصية التحديث التلقائي فيه او حتى تحديثه يدوياً. وبالمثل الحديث عن مستخدمي برامج العديد من الشركات الاخرى كأوتوديسك مثلاً (على الرغم من اني اشك في تخطي عدد من يستخدمون نسخاً غير مقرصنة من برامجهم في السودان عدد اصابع اليد الواحدة).
لكن الصورة ليست مظلمة بالكامل، فهنالك العديد من خدمات التحديث المتاحة للمستخدم السوداني، واهم هذه الخدمات هي خدمة تحديث الويندوز نفسها التي –حسب علمي- ظلت مفتوحة للسودان طيل فترة عملها، وكذلك الحديث بالنسبة لعدد كبير من الانظمة المبنية على انوية اللينكس (وان كنت شخصياً لا يمكنني التأكيد الا في حالتي Ubuntu و Fedora). قوقل نفسها، على الرغم من عدم اغلاق منافذها امام اغلب برامجها، الا انها بدأت منذ فترة بالسماح بتحديث التطبيقات العاملة على نظام الاندرويد عبر خدمة الـPlay Store (بإفتراض ان المستخدم تمكن من الحصول على تلك التطبيقات، التي لا يزال غالبها غير متاحاً للتحميل مبدئياً عبر الخدمة). اما منصتي الالعاب Steam  و –الى حد ما- Origin فلا تعترضان على تحديث العاب المستخدمين السودانيين دون اي لف ودوران. 
ينبغي لكن ان نتذكر انه مع الحظر او بدونه، تبقى الاشكالية الاكبر تأثيراً (بالاضافة للوعي التقني) هي استفحال ثقافة قرصنة السوفتوير والاثار المبنية عليها. فاذا حاولت اخذ حالة تحديث نظام الويندوز مثلاً، ستجد الكثير من المستخدمين وفنيي الحواسيب يقومون بتعطيل خاصية التحديث فيه لأنه قد "يقبض الكراك". غير ان تكريك البرامج –كما ذكرت اعلاه- كثيراً ما يجعل تعطيل خاصية التحديث امراً اجبارياً. واذكر حالة طريفة مررت بها وجدت مستخدمين لبرنامج Google Earth Pro يستخدمون نسخة قديمة له تحتاج كراكاً لكي تعمل بصورة مجانية، في الوقت الذي اتاحت فيه قوقل النسخة الاحدث من البرنامج للمستخدمين مجاناً بدون اي شروط!

التحديث الدوري ضرورة قصوى، حتى مع الاخذ في الاعتبار تلك الحالات التي قد يجد المستخدم فائدة اعلى في البقاء في اصدارة اقدم. ففي حالة اكثر يشكل تجاهل المستخدم تحديث برمجياته خطرا ليس على نفسه فقط، بل على مستخدمي الحواسيب جميعهم. وجود نسبة كثيرة من الاجهزة بثغرات معروفة يعني عددا اكبر من الاجهزة المستهدفة من عديمي الاخلاق، وبالتالي ضحايا اكبر لشبكات الbotnet متاحة للاستعمال في جميع الاعمال غير الاخلاقية و غير القانونية. وبالمثل، وجود نسبة كبيرة من الاجهزة التي تعمل بنسخ قديمة لواجهات تطوير برمجيات (APIs) و متصفحاتٍ شبكة غير متوافقة مع المعايير الجديدة سيعني تجاهل المطورين لأخر ما وصلت اليه التكنولوجيا لكي يشملوا رافضي التحديث اولائك في قائمة زبائنهم.
فياخوانا، عليكم الله، بطلو شغل ببراوزرات من 2010 واعملو ابديت للبتاع دة -_-

على الهامش: على الرغم من ما كتبت اعلاه لا زلت من مستخدمي نظام ويندوز 7 ومعارضي ويندوز 8 و10، وان كانت تحفظاتي عن التحديث للأخير -في غالبها- مؤقتة حتى اطمئن لنضوجه بالكامل. لا يعني بالضرورة اني اوافق على الاستمرار في استخدام نظام ويندوز XP. ويندوز 7 لا يزال مدعوماً بالتحديثات الامنية، لكن XP لم يكن اكثر الانظمة اماناً حتى في تلك الفترة التي كان فيها داخل الدعم، ناهيك عن توقف اغلب مطوري البرمجيات الكبيرة عن دعمه، اي انه مستخدمه سيكتفي بتثبيت نسخ اقدم من تلك البرمجيات، ما يزيد من الطين بلة. 
اللهم الا ان كنا نتحدث عن اجهزة قديمة لا تدعم الانظمة الحديثة.
او نتحدث عن استخدامه فقط لأغراض الـNostalgia...