عندما نتحدث عن البرمجيات العربية، ليس هناك بالعدد أو الجودة التي يمكننا من خلالها منافسة أي شيء. ولكن نظرا لعدد المبرمجين العرب، يبدو أن الموضوع غريب بعض الشيء! على الرغم من أن معظم المطورين والمبرمجين العرب يتوجهون لبرمجة الويب أو الهاتف بشكل حصري، كان كان لنجم هذا المقال توجه آخر.
المطور المصري محمد عماد الذي يستخدم الإسم “Hulxv” في GitHub بدأ يستخدم نظام لينيكس، وهنا شعر أن هناك برنامج ينقصه ولا يتوفر من طرف أي مبرمج أخر. مثله مثل أي شخص مُنتج نفتخر به، بدلا من الشكوى، قام محمد بتخطيط وتنفيذ برنامج يحل مشكلته، ومشكلة العديد من المستخدمين أمثاله. قام محمد وأخيرا بعد عمل جاد بإخراج برنامج vnstat-client الى النور. هذا ليس كل شيء، أحد الأمور الرائعة في هذا الخبر، هو أن المبرمج قرر طرح البرنامج بترخيص GPL-2 مفتوح المصدر.
ما هي مشكلة محمد
محمد وكغيره من سكان مصر يستخدم اتصال إنترنت يعمل بنظام الباقات. هذه الباقات قد تكون مرتفعة الثمن، ولكنها محدودة. هذه الحدود تفرض على مستخدمي الإنترنت الترشيد والمتابعة المستمرة لإستهلاك الإنترنت في منازلهم في حال أرادوا الاستمرار في تلقي الخدمة. محمد قام بالتحويل من نظام ويندوز الى نظام لينيكس.
في نظام ويندوز يتوفر لك العديد من البرامج المجانية والمدفوعة لمتابعة إستهلاك الإنترنت ومن أهمها كان برنامج GlassWire إعتاد محمد على إستخدامه. للأسف، شركة “SecureMix LLC” لا تقدم هذا البرنامج لنظام لينيكس.
بعد بحث مستمر، توصل محمد الى الأداة الرائعة التي تحمل الإسم “vnstat” وهي أداة مفتوحة المصدر ليس لها واجهة رسومية تقوم بما يريده محمد بالضبط: تسجيل وعرض استهلاك الإنترنت في الكمبيوتر. هذه الأداة تعمل من خلال سطر الأوامر فقط لا غير وتقدم الإحصائيات بشكل غير مقروء بشريا، وبالإضافة الى ذلك تقوم بحفظ جميع هذه البيانات في قاعدة بيانات خاصة بالأداة.
برنامج vnstat-client
بعد أن عثر محمد على طرف خيط، بدأ يرتب أفكاره ويخطط لموضوع أفضل من أداة نصيّة. قام محمد بإستخدام خبراته في البرمجية لتصميم واجهة عصرية، أنيقة، وسهلة جدا وليقدم لنا برنامج مفيد، وعصري ليحل مشكلة أو ليشبع فضول عدد من المستخدمين المهتمين في مراقبة إستهلاك الإنترنت في جهازهم.
البنية التحتية للبرنامج
البرنامج يعتمد في عمله وشكل أساسي على أداة vnstat مفتوحة المصدر. هذه الأداة توفر الرقابة والأرقام اللازمة لعمل هذا البرنامج.
اما فيما يتعلق بالواجهة نفسها وكيف تم بنائها، قام المبرمج محمد بإستخدام إطار العمل Electron والذي يسمح له يعمل برامج تعمل على أي نظام تشغيل من خلال لغة البرمجية JavaScript.
بالإضافة الى JavaScript، قام محمد بإستخدام مكتبات جاهزة لتمثيل الأرقام والبيانات بشكل بياني مفهوم ومقروء بشكل قمة في البساطة!
من الجدير بالذكر أن البرنامج يعمل على نظام لينيكس فقط على الرغم من بناءه باستخدام مكتبة تسمح بالبرمجة لجميع أنظمة التشغيل ويعود ذلك الى اعتماد البرنامج على أداة vnstat التي تعمل على نظام لينيكس بشكل حصري.
واجهة البرنامج
يقدم البرنامج واجهة بسيطة وسهلة الفهم. يمكنك فعليا الإكتفاء بهذه الواجهة فقط وعدم إستخدام أي شيء آخر حيث أنها توفر لك كل ما ترغب في معرفته بشكل عام. في هذه الواجهة يتوفر لديك الإستهلاك اليومي لليوم، يوم أمس، والإستهلاك الشهري الكلي.
الواجهة توفر لك أيضا تمثيل بياني رائع لإستهلاك الإنترنت حسب اليوم ولمدة شهر كامل. الواجهة توفر أيضا تمثيل بياني بشكل أخر وعلى شكل جدول أيضا كما هو موضح في الصور التالية:
من خلال الواجهة يمكنك أيضا أن تقوم بتخصيص شكل البرنامج الى حدا ليناسب ذوقك. يمكنك من خلال واجهة الإعدادات القياس بتعديل بعض الأمور في البرنامج:
واحدة من الأمور المثيرة في البرنامج والتي قد تفيدك بشكل أو بآخر هي القدرة على تصدير المعلومات بصيغ مختلفة أهمها JSON كما هو ظاهر في الصورة التالي:
وجهة نظر لينيكس العرب
مما لا شك به، البرنامج رائع جدا. البرنامج يحل مشكلة لجزء من المستخدمين في العالم. قد لا تحتاج الى البرنامج في حال كنت من مستخدمي الباقات الغير محدودة، أو في حال كنت من سكان دول العالم الأول، ولكن يبقى للبرنامج إستخدام وهو برنامج لم يتوفر بهذا الشكل من قبل لنظام لينيكس.
البرنامج لا يزال في بداياته وهناك مجال كبير للتطوير والإصلاح وإضافة المميزات الجديدة والمثيرة للبرنامج. ما ينقص البرنامج حاليا هو اللغة العربية.
مستقبل البرنامج
البرنامج من وجهة نظري له مستقبل جيد، والمبرمج محمد له مستقبل ممتاز بإذن الله. كغيره من المبرمجين في العالم الحر، محمد يعمل على نفقته الخاصة والتي قد تكفي ليقوم بتطوير البرنامج في المستقبل. واجبنا كمستخدمين هو دعم المطور بأي شكل ممكن.
محمد حاليا ليس لديه حساب لنقوم بدعمه ماديا، ولكنه وحسب ما كتب في GitHub يشجع أن نقوم بدعمه من خلال التبليغ عن الأخطاء، طلب المميزات الجديدة، مشاركة الكود، والتطوير عليه.
توفر البرنامج وطرق التثبيت
يتوفر البرنامج حاليا بشكل عام خارج مستودعات البرمجيات الرسمية لجميع التوزيعات. هذا أمر طبيعي جدا لبرنامج في بداياته، ولكننا نتمنى توفره في القريب العاجل في جميع المستودعات الرسمية.
طريقة التثبيت المفضلة والبسيطة هي تنزيل وتشغيل أو تثبيت ملف appimagr المتوافق مع جميع التوزيعات. مهما كانت طريقة التثبيت، يجب عليك تثبيت أداة vnstat اولا وهي متوفرة لجميع التوزيعات من خلال المستودعات الرسمية. من المهم أيضا تثبيت البرنامج على نظام يعمل من خلال systemd حيث أن التوافق مع باقي أنظمة Init غير مضمون.
لتثبيت البرنامج بطرق أخرى، يجب أن يتوفر لديك Nodejs بنسخة 16.9.1 فنا فوق، و yarnpkg نسخة 1.22.11 فما فوق.
يمكنك بناء البرنامج من المصدر مباشرة من خلال الأوامر التالية:
# نسخ المستودعgit clone https://github.com/Hulxv/vnstat-client.gitcd ./vnstat-client # تثبيت الحزم اللازمةyarn install # بناء البرنامجyarn buildcd ./dist# تشغيل البرنامج./vnstat-client-22.1.9.AppImage
أو يمكنك تثبيت ملف deb لأنظمة Debian من خلال الأوامر التالي: (انتبه لتنزيل النسخة الأحدث دائما)
# تنزيل الملفwget https://github.com/Hulxv/vnstat-client/releases/download/v22.1.9/vnstat-client_22.1.9_amd64.debتثبيت الملف:sudo dpkg -i ~/path-to-file/vnstat-client_22.1.9_amd64.deb
للتثبيت من خلال مستودع AUR لتوزيعات ARCH:
yay -S vnstat-client
او يمكنك تثبيت البرنامج من خلال ملف AppImage جاهز من المصدر مباشرة: