تخط المحتوى

موسم كيدي 2022 مع كيدي إيكو

3 مارس 2022  |  Karanjot Singh

أنا ممتن جدًا لفريق كيدي لدعوتي لأكون جزءًا من هذا المجتمع الرائع من خلال برنامجهم السنوي فصل كيدي.

عني

أنا كارانجوت سينغ. أنا طالب جامعي في السنة الأولى لهندسة علوم الحاسوب من معهد Jaypee لتكنولوجيا المعلومات، نويدا، الهند. عملت كمطور مع برامج مختلفة للبرمجيات الحرة والمفتوحة المصدر (FOSS) مثل Kharagpur Winter of Code في عام 2021 (KWoC’21). ومع ذلك، ستكون هذه أول مرة أساهم فيها في مشروع بمثل هذا المجتمع الكبير. أنا شغوف جدًا بـ FOSS، وحل المشكلات، وتحسين كفاءة العمليات. أستمتع باستكشاف وتعلم التقنيات الجديدة وبناء أشياء لقضايا ذات فائدة اجتماعية. أعتقد أيضًا أن المساهمة في FOSS هي أفضل طريقة لـ أجل الكسب خبرة في تطوير البرمجيات.

ما سأعمل عليه

كجزء من مشروع استدامة رائد، يهدف كيدي إيكو إلى قياس وتقليل استهلاك الطاقة لبرمجيات كيدي/البرمجيات الحرة. يتطلب هذا محاكاة سلوك المستخدم، والذي يمكن تحقيقه من خلال التخطيط و كتابة سيناريوهات الاستخدام القياسية. سأقوم بكتابة سيناريوهات الاستخدام القياسية لتطبيقات مختلفة، مع التركيز على محررات النصوص شائعة الاستخدام مثل Kate، KWrite، Vim، Nano، Emacs، Calligra Words، و LibreOffice. سأعد سيناريوهات الاستخدام هذه بواحدة من العديد من أدوات المحاكاة المتاحة. أدناه الخط الزمني لـ SoK’22:

الخط الزمني لـ فصل كيدي 2022
Figure : الخط الزمني لـ فصل كيدي 2022

الدافع وراء العمل على مشروع كيدي إيكو

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

ما تعلمته حتى الآن

عندما كنت أبدأ بهذا المشروع، كانت لدي ثلاثة أسئلة.

كيف يمكننا أن نعرف متى تكون البرمجيات كفؤة في استهلاك الموارد والطاقة؟

كيف استطعنا قياس استهلاك البرمجيات للطاقة؟

وهل يُحدِث ذلك فرقًا؟

قد تخطر هذه الأسئلة على ذهن أي أحد عندما يُفكِّر في فكرة كفاءة البرمجيات.

عند استعمالك للبرمجيات، ما تراه هو الواجهة فحسب التي تتفاعل معها. كل ما عليك هو إخبار هاتفك بما تريده وستظهر الأشياء آليًا — سواء كانت معلومات على الشاشة أم حزمة جرى تسليمها إلى عتبة بيتك. لكن التقنيات والبنى التحتية وراء ذلك يُحدِّدها مهندسو البرمجيات الذين يجعلون كل هذا يعمل.

الواجهة مقابل العمليات المعقدة
Figure : الواجهة مقابل العمليات المعقدة

تخيَّل فحسب: ماذا لو حلَّلنا استهلاك الطاقة وراء البرمجيات شائعة الاستعمال وجعلناه أكثر شفافية؟ ماذا لو استطاع المُستخدِمين من تعلُّم مقدار الطاقة التي تتطلبها برمجياتهم ويمكنهم اختيار التطبيق الذي قد يكون أفضل للبيئة؟ سيكون هذا رائعًا!!!

تعمل مبادرتا كيدي إيكو (KDE Eco) مشروع كفاءة الطاقة الحرة والمفتوحة المصدر (FEEP)، و بلوي إنجل للبرمجيات الحرة والمفتوحة المصدر (BE4FOSS) بجد على هذه القضايا.

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

3 خطوات للشهادة البيئية
Figure : 3 خطوات للشهادة البيئية

يدعم BE4FOSS مشروع FEEP بجمع ونشر المعلومات المتعلقة بالشهادة البيئية لـ Blauer Engel (BE)، وهي لصيقة البيئة الرسمية الممنوحة من الحكومة الألمانية. كما ذكر في موقع كيدي إيكو، الحصول على لصيقة Blauer Engel يحدُث في 3 خطوات: (1) قياس، (2) تحليل، (3) تصديق.

  1. قِيَسَ في مختبرات مخصصة، مثل KDAB برلين
  2. حُلِّلَ باستعمال أدوات إحصائية مثل OSCAR (تحليل استهلاك البرمجيات مفتوحة المصدر في R)
  3. صُدِّقَ بتقديم التقرير حول استيفاء معايير Blauer Engel

في SoK'22، سأجهز سيناريوهات الاستخدام القياسية لمحررات النصوص المختلفة لكي ممكن استخدام سيناريوهات الاستخدام في الخطوة 1 للحصول على الشهادة البيئية لـ BE.

ما اِفْتَعَلْتُهُ وما سأفعله في الأسابيع القادمة

للأسابيع الثلاثة الفائتة، اختبرت أدوات التشغيل الآلي المختلفة، ولا سيما Actiona، و xdotool، و GNU Xnee، لتقرير أي من هذه الأدوات سيكون الأفضل لتطبيق سيناريوهات الاستعمال القياسية.

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

أثناء محاولة xdotool، صادفت مشكلة في تسرُّب الذاكرة. عند تشغيل Valgrind على بحث xdotool، أحصل على المزيد من الذاكرة الضائعة المُخصَّصة بواسطة XQueryTree. ربما هناك أماكن أخرى خُصِّصَت فيها الذاكرة ولَمْ تُحرَّر بعد ذلك. لم أُجرِ فحصًا شاملاً. ومع ذلك، يعطي xdotool سيطرة أكثر على النظام وحتى مع بعض المشاكل، فهذه هي الأداة التي وجدتها الأكثر نفعًا.

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

في الختام، قررت إعداد جميع سيناريوهات الاستعمال بـ xdotool، مبدئيًا على الأقل، لأن معظم محرِّرات النصوص تستعمل وظائف لوحة المفاتيح بدلاً من نشاط الفأرة وهذا سيجعل من الأسهل تكييف النص البرمجي مع أنظمة مختلفة. ومع ذلك، بعد SoK'22 أنا أُخطِّط لإعداد سيناريوهات استعمال مع Actiona أيضًا حتى استطيع تعلُّم الاختلافات بين هذه الأدوات. على صعيد متصل، هناك أيضًا نقاش جار حول إعادة توظيف سيناريوهات الاستعمال القياسية لاختبار الاستجابة والأداء على الأجهزة الأقدم أو الأقل أداءً.

إعداد سيناريوهات الاستعمال القياسية
Figure : إعداد سيناريوهات الاستعمال القياسية

في الأسابيع القادمة، سأعمل بالإضافة إلى ذلك على إصلاح مشكلة معروفة في Actiona. المشكلة هي أن Actiona يُحاكي سلوك المُستخدِم بتخزين موضع النقرات بناءً على إحداثيات البكسل، مما قد يجعل نقل نص برمجي إلى نظام آخر أمرًا صعبًا. على سبيل المثال، نشأت هذه المشكلة مؤخرًا عند إعداد سيناريو استعمال قياسي لـ GCompris. توصلت إلى حل لتغيير حجم الشاشة إلى دقة شاشة دنيا وإدراج الشفرة في بداية نص Actiona البرمجي. كلما يعمل النص البرمجي في نظام مختلف، فإنه يُغيِّر حجمه آليًا إلى الدقة الدنيا لمطابقة البكسلات أثناء إنشاء النص البرمجي. هذه مجرد فكرة ولَمْ تُختبَر بعد. سأُخصِّص وقتًا لهذه المحاولة لإصلاح المشكلة بمساعدة فريق فهمت.

يمكن إيجاد مستودع GitLab الذي يحتوي على سيناريوهات الاستعمال القياسية الجارية (حاليًا فهمت باستعمال Actiona) هنا.

الترابط المجتمعي ( SoK’22 )

أشعر بالامتنان لمرشدي جوزيف ب. دي فو-غيس لأخذ وقته لمساعدتي من خلال توفير الموارد والتوجيه خلال المشروع. أنا حضرت أيضاً اللقاء المجتمعي الشهري لكيدي إيكو في 9 فبراير 2022، حيث قاد البروفيسور الدكتور ستيفان ناومان، وأشيم غولدنر، وكريستوفر ستومبف من حرم أومفيلت بيركنفيلد مناقشة حول قياس استهلاك الطاقة للأنظمة الموزعة وتمديد معايير جائزة بلاور إنغل إليها. كان هذا اجتماعاً مثيراً للاهتمام ناقشنا فيه المشاكل التي تخص الأتمتة (آلي) مع تطبيقات الهاتف المحمول، بالإضافة إلى اختبار العميل الخادم. قدَّم جوزيف أيضاً باحثي حرم أومفيلت الذين قاسوا استهلاك الطاقة لتطبيق أوكلار؛ وإيمانويل شارو، الذي يعمل على برنامج فهمت؛ ونيكولا فيلا، الذي يعمل حالياً مع xdotool لأطروحة الماجستير الخاصة به حول استهلاك الطاقة للبرمجيات.

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

أنا متوفر أيضًا على خادوم Matrix الخاص بكيدي في drquark:kde.org.


المقالة مساهمة من تحت ترخيص CC-BY-SA-4.0.