ساحر القرن الأخير

ساحر القرن الأخير

“مبرمجوا الغد هم سحرة المستقبل.. ستبدو و كأنك تملك قوى خارقة مقارنة بالآخرين”  غابي نويل مؤسس شركةValve

 

 لا يختلف اثنان في الاقرار أن  المبرمج في عصرنا الحالي هو من يقود عجلة الابتكار و التطور . بيد أن الآخر يرى فيه صورة الساحر صاحب طلاسم غريبة .. قصتنا اليوم تتمحور حول العصا السحرية للمبرمج العاشق للحرية  !

 

الحرية في زمن الحوسبة السحابية

 

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

 

بيئات التطوير و مشكلةcross platform

 

انتقلت منذ اواخر 2012 الى جنو لينكس و اصبح هو الى اليوم نظامي الاساسي و اصبح بيئة تطويري المفضلة لكني وجدت مشكلة في المنهج الدراسي بسبب الدوت نت(.NET) . و اضطررت لتنصيب الوندوز بجانب جنو و هو ما أحبطني و بحثت عن بدائل لكن دون جدوى. كان الحل النهائي الاعتماد على بيئة تطوير ويب و ما أكثرهم ! التطبيقات الحرة منها كانت اما مكتوبة بجافاسكريبت و بسيطة للغاية أو أنها مكتوبة بـRails . مشكلة Rails ان استضافته صعبة و مكلفة مقارنة بالـphp

 

البرمجة في المناهج التعليمية

 

رغم ان تخصصي هندسة برمجيات الا اني لم اتعلم البرمجة في المدرسة . و الكثير يختارون البرمجة كمهنة مستقبلية لان راتبها عالي مقارنة بالمهن الاخرى او تحت ضغط العائلة . كنت أريد برمجة بيئة تطويرية حرة تستخدم لتدريس البرمجة و تساعد المدرسين في عملهم
ولادة Devbox و أجنحة Openstack
كل هذه الاسباب كانت الدافع لولادة Devbox . انهيت تطوير البيتا في ربيع 2015 و قمت بتجربته على Openstack و حصل المشروع على جائزة افضل مشروع تخرج لذلك العام و تم دعوتي فيما بعد الى تطاهرة وطنية احتفالا بـSoftware Freedom Day و لكن لظروف قاهرة عجزت عن الحضور . بعد اشهر قليلة دعاني الاستاذ المشرف على تأطيري و القيت محاضرة في جامعتي عن المشروع و آفاقه . الجميل في الموضوع أنه يمكنك حتى استضافة على سيرفر عادي يدعم الـphp ان لم تكن من محبي Cloud .

 

فشل و بداية جديدة

 

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

 

نبذة عن مشروع أوروك

 

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

 

الاصدار RC على الابواب

 

تجنبا لمشاكل العلامات المسجلة وقع تغيير اسم المشروع الى UrukCloudIDE . و نحن الان بصدد التحضير لاطلاق الاصدار RC قريبا. من مزايا البرنامج :
– دعم كل لغات البرمجة
– اضافة المشاريع و الملفات
– يتوفر على حسابي المدير و المطور مع امكانية الاتصال بالمدير
– خاصية Notification
– يعتمد على PSR4 autoloading و PSR2 coding standards
– يحتوي على db migration tool لتسهيل التعامل مع قواعد البيانات اثناء التطوير
– اضافة php cs fixer افتراضيا لتسهيل coding format عند المساهمة في الكود المصدري و العديد من المكتبات الاخرى اترك لكم حرية اكتشافها.
للاشارة فان الاسماء الرمزية للاصدارات مأخوذة عن السلسلة اليابانية الشهيرة JoJo’s Bizarre Adventure و سيحمل الاصدار المستقر الاول اسم Jonathan و هو اسم الشخصية الرئيسية في السلسلة.
جوناثان بطل سلسلة جوجو

 

كلمة الختام

 

نضرب لكم موعدا مع اصدار ٌRC و اذا كنتم فضوليين يمكن المسارعة في تجربة النسخة التطويرية من مستودع Github مشروع اوروك يرحب بكل مساهماتكم و مشاريعكم من أجل مزيد دعم البرمجيات الحرة عامة و المبرمجين العرب خاصة.

إقرا المزيد

أساسيات Git و البدايات مع NotABug – الدرس الثالث

git-logo

السلام عليكم

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

1- تثبيت حزمةال git : اول خطوة سنقوم بها هي تثبيت حزمة Git على حاسوبك و توجد طريقتين لذلك , بالامكان تحميل الحزمة من الموقع الرسمي مباشرة عن طريق التوجه الى صفحة التحميل من الرابط التالي https://git-scm.com/downloads اذا كنت على نظام اخر غير جنو/لينكس ثم تنقر على اسم النظام الخاص بك ( توجد واجهة رسومية متاحة للتحميل ) ,

اما على جنو/لينكس فالحزمة متوفرة على جميع مستودعات التوزيعات باسم git وهي موضحة ايضا في صفحة التحميل الخاصة بانظمة جنو/لينكس  و كيفية تثبيتها على التوزيعات , افتح الطرفية و نفذ الاوامر كالتالي  :

– اوبونتو و ديبيان و ما بني عليهما اكتب الامر التالي :

sudo apt-get install git

– فيدورا و ما بني عليها اكتب التالي :

sudo yum install git

sudo dnf install git

– ارتش و ما بني عليها اكتب التالي :

sudo pacman -S git

– اوبن سوزا اكتب التالي :

sudo zypper install git

( ملاحظة : انقر على الصورة لمشاهدتها بالحجم الكامل )

10بعد ان قمنا بتثبيت الحزمة نتقل الى الخطوة التالي :

2- انشاء مسار خاص بالمستودع : الخطوة التالية و التي هي انشاء مجلد المستودع على جهازك , يفضل ان يكون المجلد في مسار منفصل , لذلك سنقوم بانشاء مجلد باسم Git في مجلد المنزل ثم نتوجه له من خلال الطرفية  بكتابة الامر cd بعدها مسار المجلد ( بالامكان التوجه المسار ثم الاختيار “فتح الطرفية هنا ” اذا كان متصفح ملفات توزيعتك يدعم هذا الخيار ) :

Screenshot-urukos@hayder: ~-Git

نحن الان في داخل المجلد المراد وضع المستودع بداخله لننتقل الى الخطوة التالية :

3- عمل مستودع في حاسوبك : سنقوم في البداية بانشاء مجلد ( يفضل ان يكون بنفس اسم المستودع اوالبرنامج لديك على NotABug ) وهو في حالتنا testpy و نتوجه له من خلال الطرفية ,  الان لنتعرف على بعض اوامر Git التي سنستخدمها :

  • init : يقوم هذا الامر بعمل نسخة اولية من المستودع داخل المجلد من انشاء مجلد .git المخفي و الذي يحتوي على الاعدادات و مسارات الملفات
  • add : يقوم هذا الامر باضافة الملفات المراد رفعها الى المستودع بتحديد اسم الملف بعد الامر لرفع ملف مفرد او كتابة نقطة dot بعده لتحديد جميع الملفات
  • commit : يقوم امر التعليق باضافة تعليق توضيحي لعملية الرفع و تسجيل التغييرات التي جرت على الملفات , و التي اعتبرها من افضل خصائص Git  على الاطلاق , فاهمية هذا الامر هي مساعدة المستخدم على تحديد مراحل التطوير , لنوضح الامر قليلا , لنفترض ان مشروعك يحتوي على ثلاث ملفات مرقمة من رقم واحد الى الثلاثة و قمت برفعها الى المستودع و عند كتابة الامر commit اضفت التعليق (initial files) على سبيل المثال , بعد الرفع ستجد جميع الملفات التي قمت برفعها تحتوي على كلمة (initial files) كتعليق توضيحي , بعد ذلك قمت  بتعديل احد الملفات و ليكن الملف الثاني فقط و قمت برفعه لوحده فقط مع اضافة التعليق التوضيحي (editing second file) , ستجد ان الملفات السابقة تحتفظ بالتعليق السابق مع تغير تعليق الملف الثاني فقط الى (editing seconf file) و هذه العملية ستتيح للمستخدمين تمييز الملفات التي تم تعديلها عن الملفات الغير معدلة و توضيح سبب التعديل , الشيء الاخر هو امكانية الرجوع الى فترة زمنية محددة اذ ان Git تقوم بعملية بامكاننا تسميتها بلقطات للمستودع يمكننا الرجوع لها في اي وقت نريد.
  • clone : يقوم هذا الامر بعمل نسخة من المستودع بالكامل داخل حاسوبك , و يستخدم هذا الامر عادة مع المستودعات الموجودة مسبقا لعمل نسخة منها و ليس مع المستودعات الجديدة.
  • push : يقوم هذا الامر برفع الملفات الى المستودع
  • pull : يقوم هذا الامر بعمل مزامنة مع المستودع الاصلي و تحديث الملفات الموجودة في حاسوبك مع الملفات التي في المستودع الاصلي

الان لنقم بتطبيق لهذه الاوامر :

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

git clone [url]

لنقم بتوضيح الامر السابق , كما لاحظت في الامر السابق ان كلمة git كتبت قبل الامر clone , و ذلك لان clone هو احد اوامر git , فعند كتابة اي امر من الاوامر يجب ان نسبقها  بـ git ,  بعدها نكتب الرابط الخاص بالمستودع :

Screenshot-urukos@hayder: ~-Git-1

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

4- اضافة الملفات و رفعها الى المستودع : الان لنكتب برنامجنا الكبير بلغة بيثون …………. و الذي يقوم بطباعة كلمة مرحبا !!!! ( برنامج متعب حقيقة 🙂 ) و لنضيف له ملف README.me و الذي سنضع بداخله وصف مختصر لبرنامجك و ترخيصه , الان يجب عمل اضافة للملفات و تحضيرها للرفع الى المستودع و ذلك يتم من خلال الامر add ,و كما ذكرنا سابقا  توجد طريقتين لذلك , الطريقة الاولى هي تحديد الملف المراد رفعه بصورة مفردة او تحديد الكل :

2

الان نكتب التعليق المراد اضافتة للملفات و تسجيل التغييرات من خلال الامر commit , توجد بعض الاوامر الملحقة مع الامر commit مثل (-u) و الذي سنستخدمه هنا و الذي سيقوم باظهار  الملفات التي لا يمكن تقفي اثرها ( بالامكان عدم كتابة و الاكتفاء ب commit) و للاطلاع اكثر بالامكان الرجوع الى الدليل الكامل للامر من هنا :

3

بعدها نأتي للخطوة الاخيرة و هي رفع الملفات بكتابة الامر التالي :

git push origin master

حيث سيطالبك البرنامج باسم المستخدم الخاص بك وهو في مثالنا “uruk” , ثم بعدها سيطالبك بكلمة المرور و هي في مثالنا “*******” 🙂

4

مبارك عليك تم رفع الملفات و اصبح لديك الان مستودع خاص بك 🙂

الى هنا تنتهي هذه التدوينة و هذا الدرس و سنتعرف ان شاء الله في التدوينات القادمة الى عدد من الاوامر الاخرى مثل اوامر الحذف و المزامنة و الى كيفية انشاء مستودع من خلال الطرفية فقط .

( اذا وجدت اي خطأ علمي او معلومة غير صحيحة او خطأ مطبعي الرجاء تنبيهنا عنه فنحن البشر خطاؤون و جل من لا يسهو )

إقرا المزيد

أساسيات Git و البدايات مع NotABug – الدرس الثاني

بعد ان تعرفنا في التدوينة السابقة على نظام Git و كيفية التسجيل في موقع NotABug , سنكمل اليوم ان شاء الله التدوينة الثانية لنتعرف على كيفية انشاء مستودع في موقع NotABug و لنبدأ بسم الله :

بعد ان اكملنا التسجيل , و عند تسجيل الدخول الى الموقع ستظهر لك النافذة التالية :

( ملاحظة : انقر على الصورة لمشاهدتها بالحجم الكامل )

 

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

5اختر الخيار الاول (New Repository) و الذي يتيح لك انشاء مستودع جديد لمشروعك لتنتقل للنافذة التالية و التي تحتوي على الامور التالية:

6– الخانة الاولى تخص اسم المستودع و الذي ستشاركه مع الاخرين او يصبح كمعرف للمشروع ككل لذلك يجب اختيار الاسم بشكل جيد فهو بمثابة URL المشروع.

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

– الخانة الثالثة خاصة بوصف المشروع , قم بكتابة وصف مختصر للمشروع و اهدافة بصورة مبسطة بعيدة عن التعقيد او التشابك في الافكار

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

سنقوم في هذه السلسلة من التدوينات بعمل مستودع باسم (testpy) لشرح الاوامر عليه , لذلك سنضع في الخانة الاولى اسم المستودع (testpy) و نكتب وصف بسيط عن المشروع و نحدد لغة البرمجة (Python) من القائمة (Language) و نختار الترخيص (GPL3) كترخيص للمشروع

الان بعد ان انتهيت من كتابة المعلومات اللازمة للمشروع انقر على الزر الازرق (Creat Repository) لانشاء المستودع و مبارك عليك المستودع الجديد بالرابط التالي :  (https://notabug.org/uruk/testpy) , و لنوضح اجزاء الرابط لاننا سنحتاجه فيما بعد :
-الجزء الاول من الرابط يحتوي على عنوان الموقع بشكل عام (https://notabug.org)

-الجزء الثاني يحتوي على اسم المستخدم وهو في مثالنا باسم (uruk) و الذي قمنا بانشاءه في التدوينة السابقة

-الجزء الثالث يحتوي على اسم المستودع و الذي في مثالنا باسم (testpy)

ليتكون الرابط بشكل عام متكونا من  ( اسم الموقع + اسم المستخدم + اسم المستودع ) وهو في مثالنا  (https://notabug.org/uruk/testpy) وهو عنوان المستودع , و طالما ان المستخدم بامكانه انشاء اكثر من مستودع في نفس الحساب لذلك سيكون التغير فقط في اسم المستودع الاخير

و لكن الان ماذا لو اراد المستخدم مسح المستودع بالكامل او الغاءه بشكل نهائي ؟

الامر ايضا بغاية السهولة فكل ما عليك هو النقر على Setting على يمين الشاشة لتنتقل الى نافذة الاعدادات :

9قم بالنزول للاسفل في نافذة الاعدادات لتجد زر (Delete This Repository)  كل ما عليك الان النقر لتظهر لك نافذة التاكيد التالية :

Screenshotاكتب اسم المستودع المراد حذفه بشكل صحيح في الخانة الاولى , و كلمة السر الخاصة بحسابك في الخانة الثانية ثم انقر على (Confirm Deletion) ليتم حذف المستودع مع الملفات نهائيا

و سوف نتعرف في التدوينة القادمة ان شاء الله على كيفية تثبيت Git على نظامك و التعامل مع اوامره لرفع الملفات و التحديث و المزامنة و اضافة الملفات

( اذا وجدت اي خطأ علمي او معلومة غير صحيحة او خطأ مطبعي الرجاء تنبيهنا عنه فنحن البشر خطاؤون و جل من لا يسهو )

إقرا المزيد

أساسيات Git و البدايات مع NotABug – الدرس الاول

اساسيات git و البدايات مع notabug

السلام عليكم
سنتحدث في هذه التدوينات ان شاء الله عن نظام Git و كيفية التعامل معه من خلال NotAbug بصورة مختصرة و مبسطة قدر الامكان من دون الخوض في غمار التفاصيل الدقيقة لتتعرف في النهاية كيفية انشاء و تعديل و مشاركة المستودعات , فلنبدأ:
حسنا , ماهو Git ؟
على حسب التعريف الرسمي لموقع Git فهو : نظام مجاني و مفتوح المصدر للتحكم في النسخ الموزع الغير مركزي او بالانجليزية (Git is a free and open source distributed version control system)
يبدو التعريف مربك نوعا ما او معقد !!! صحيح ؟
لنقم بتبسيط التعريف عن طريق مثال بسيط :
لنفترض انك مطور او مصمم وتعمل على مشروع معين , لذلك من المؤكد ان المشروع سيحتوي على تغيرات مستمرة و اضافات و تعديلات متكررة ( لانه برنامج او مشروع ممتاز ونشيط 🙂  ) و التي ادت الى عمل المشروع بشكل ممتاز و انتشاره بصورة جيدة , و هذا ادى الى طلب مطور اخر المشاركة في تطوير المشروع , شيء جميل , ربما يكون من المستطاع ان يتم التعاون فيما بينكم على تعديلات الشيفرات المصدرية سواء بالمراسلة او التقابل في مقهى او كازينو و التباحث و التعديل على الكود او المصدر , و لكن ماذا لو ازداد عدد اعضاء الفريق سيبدو من الصعب جدا ادارة العمل او قد يصبح من المستحيل احيانا في المشاريع الضخمة و الكبيرة ( كمشروع نواة لينكس )!!!
او لنفترض ان المشروع قد تم التعديل عليه و هذا التعديل احدث ضررا في الشفرة المصدرية و ادى الى حصول علل ادت الى عدم عمله بصورة صحيحة و الكارثة الاتعس انه لا توجد نسخة احتياطية اخرى من البرنامج عندما كان يعمل بصورة صحيحة ( يوم سيء و فأل مزعج فعلا 🙁  ) !!!
و هذه الامور حصلت بالفعل للكثير من المشاريع فما هو الحل في هذه الحالة ؟
هنا جاءت فكرة انشاء ادوات تقوم بعمل ادارة و مزامنة و مشاركة منظمة بين اعضاء الفرق لتسهيل العمل فيما بينهم و تنسيق الامور و عمل نسخ احتياطية للشفرة المصدرية ( بمعنى ادق حل المشاكل التي قمنا باستعراض بعضها ) و لعل اشهرها و افضلها على الاطلاق هو Git وهو ما سنتعلم كيفية التعامل معه .اعتقد ان التعريف اصبح واضحا الان .
تم انشاء Git من قبل لينوس تورفالدز Linus Torvalds في سنة 2005 للقيام بادارة تطوير نواة لينكس و الذي تطور فيما بعد و يصبح على ماهو عليه الان لتستخدمه كبرى الشركات مثل Google او facebook او twitter او ميكروسوفت و غيرها العديد من الشركات و المشاريع.
من مميزات ال Git امكانية تثبيته على العديد من الانظمة و التعامل معه مثل نظام جنو/لينكس او ووندوز او ماك او اس و يمتاز بسهولة التعامل مع اوامره و انشاء المستودعات Repository (المستودع من تسميته يمكن تشبيهه بالخزانة او الحاوية التي تجمع ملفات او مجلدات في مكان واحد لحفظها او مشاركتها فيما بعد , “و الذي سيأخذ حيز كبير من هذه الدروس” ) , كذلك امكانية رجوع التعديلات الى وقت سابق و محدد و الكثير غيرها من الامور .
يوجد العديد من التطبيقات الرسومية و تطبيقات الوب التي تتيح التعامل مع ال Git , و سنتعرف في هذه الدروس على كيفية استخدام NotAbug ( و الذي يتشابه كثيرا مع GitHub) على انظمة جنو/لينكس فما تطبقه في NotAbug من اوامر او تطبيق يمكن استخدامه في GitHub,
و لكن قبل ذلك ماهو NotAbug و GitHub اصلا ؟ و لماذا نستخدم NotAbug بدلا من GitHub ؟!!!!!!
NotAbug او GitHub هي مواقع انترنت ( او بتعبير اصح تطبيقات وب ) تتيح للمستخدم التعامل مع Git و انشاء المستودعات و مشاركتها , و لكن لماذا NotAbug ؟
لعل اهم الاسباب التي جعلتنا نختاره هو الرخصة الحرة تماما و توفر الكود المصدري له بشكل حر و شفاف على العكس من GitHub الذي كوده المصدري غير متوفر بشكل واضح و رسمي على الرغم من انه يحتوي على مشاريع حرة و مفتوحة المصدر .
الشيء الاخر هو ان NotAbug يحتوي على خصائص متاحة بالمجان لا يمكن استخدامها في GitHub مثل المستودع الخاص , فلو اردت مثلا ان تقوم بانشاء مشروع خاص بك لاي سبب كان سواء كان غير منتهي الانشاء او لمجرد الحصول على الخصوصية , يجب عليك ان تدفع مبلغا من المال شهريا( اشتراك شهري) للحصول على هذه الخدمة في GitHub , اما على صديقنا العزيز NotAbug فهو متاح بالمجان ( مع قبلة حب كبيرة 🙂  )
من اجل انهاء المهمة سنحتاج الى :
1- التسجيل في موقع NotAbug
2- انشاء مستودع على NotAbug
3- عمل نسخة من المستودع على جهازك و من ثم اضافة ملفات المراد رفعها على ال NotAbug
4- التعرف على اهم الاوامر لمزامنة الملفات مع المستودع الاصلي
لذلك نحتاج في البداية الى ايميل لاكمال عملية التسجيل لذلك  و سنفترض ان لديك ايميل , قم بالتوجه الى موقع NotAbug عن طريق الرابط التالي https://notabug.org/ لتظهر لنا النافذة التالية :

ملاحظة : خطوات التسجيل هي نفسها تقريبا على GitHub

( ملاحظة : انقر على الصورة لمشاهدتها بالحجم الكامل )

1
انقر على رز Register للانتقال الى صفحة التسجيل قم بادخال المعلومات المطلوبة كما في الصورة التالية :

2
مبارك عليك لقد تم التسجيل بشكل ناجح بالموقع
المرحلة التالية هي انشاء المستودع على الموقع و هذا ما سنتعرف عليه في التدوينة القادمة ان شاء الله.

( اذا وجدت اي خطأ علمي او معلومة غير صحيحة او خطأ مطبعي الرجاء تنبيهنا عنه فنحن البشر خطاؤون و جل من لا يسهو )

إقرا المزيد

تثبيت الحزم الديبيانية على ارتش لينكس

السلام عليكم

سنتحدث اليوم عن طريقة تثبيت الحزم الديبيانية على توزيعة ارتش لينكس , فكما هو معروف ان توزيعة ارتش لا تتعامل افتراضيا مع الحزم الديبيانية و الريدهاتية (deb , rpm) و توجد بعض الحزم تاتي فقط بهذه الصيغ !

و كما هو معروف ان لا شيء مستحيل في عالم جنو / لينكس لا سيما توزيعة ارتش لينكس المجنونة و سنعرف الان الى كيفية التثبيت عن طريق تثبيت dpkg ! تماما كما يتم في التوزيعات الديبيانية .

في البداية تاكد من تثبيتك لـ yaourt و ذلك عن طريق اضافة مستودعات AUR لملف
/etc/pacman.conf

الان قم بتثبيت dpkg عن طريق yaourt كالتالي:

yaourt -S dpkg
و اكمل خطوات التثبيت , بعد الانتهاء عندما تريد تثبيت اي حزمة ديبيانية قم بفتح الطرفية و توجه الى مسار الحزمة و نفذ الامر التالي :

sudo dpkg -i PACKAGE_NAME.deb

قم باستبدال PACKAGE_NAME باسم الحزمة لديك . و في حال كان لديك اكثر من حزمة استبدل PACKAGE_NAME بعلامة النجمة * لتثبيت كل الحزم في المسار المحدد

إقرا المزيد

بديل 1: تفعيل HTML5 بديل flashplayer بشكل كامل على متصفح فايرفوكس

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

سيتم في فقرة (بديل) نشر تدوينة بين فترة و اخرى لتتحدث عن بديل حر او مفتوح المصدر للبرامج المغلقة و خصوصا للمنتقلين لجنو/لينكس وسنبدأ اليوم مع المتوفي (سيء الصيت ) الفلاشبلاير flashplayer , اذ تفاجأت اليوم بتشغيل جميع فيديوات الفيسبوك لدي على الرغم من اتي لا استخدم الفلاشبلاير في نظامي منذ فترة طويلة مستبدلا اياه بتقنية HTML5 . حسنا لنختصر الكلام و نبدأ العمل :

في البداية توجه الى الرابط التالي : https://www.youtube.com/html5

لتظهر لك نافذة تفعيل HTML5

1

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

1- افتح لسان جديد في الفايرفوكس واكتب في شريط العنوان about:config كما موضح في الصورة

2

2- بعد ان تنقر بزر enter سيطلب منك تاكيد للدخول , انقر على الزر الازرق و اكمل

3

3- ستظهر لك نافذة اعدادات الفايرفوكس

4

, اكتب في خانة البحث التالي media.fragmented-mp4 كما موضح في الصور

5

, قم بتفعيل جميع الخيارات التي تظهر بالنقر المزدوج عليها لتحويل خانة Value الى TRUE ماعدى الاختيار  media.fragmented-mp4.use-blank-decoder  و المؤشر علية في الصورة التالية يجب تحويل قيمة Value الى false

6

4- الان قم بالبحث عن media.mediasource لتحويل جميع القيم التي تظهر الى TRUE بالنقر المزدوج عليها

7

5-الان ناتي للخطوة الاخيرة , قم بأعادة تحميل صفحة https://www.youtube.com/html5  ستلاحظ ان جميع الخيارات تم تفعيلها و اصبحت باللون الازرق

8

, كلما عليك فعله هو النقر على الزر الازرق لجعل مشغلك الافتراضي هو HTML5

9

و مبروك عليك التحرر من فلاشبلاير 🙂

==========================

 

تحديث (لغاية 1/1/2017):

في حال واجهتك هذه الرسالة :


libavcodec may be vulnerable or is not supported, and should be updated to play videos

عندها قم بالتاكد من تثبيتك او تحديث لحزمة  libav-tools ثم توجه الى

about:config

ثم ابحث عن القيمة

media.libavcodec.allow-obsolete

و غير قيمتها الى :

true

بعد ذلك ابحث عن :

media.decoder-doctor.notifications-allowed

و غير قيمتها الافتراضية الى :

MediaWMFNeeded,MediaWidevineNoWMFNoSilverlight

 

و اعد تشغيل المتصفح

إقرا المزيد

ترقيع ثغرة Heartbleed OpenSSL في السيرفر المحلي XAMPP

 

xampp

 

بعد الضجة التي حصلت و الاختراق الذي حصل عن طريق تقرة القلب النازف (heartbleed) اصبح من الضروري جدا ترقيع هذه الثغرة و خصوصا لمن يعمل على السيرفرات المحلية او غير المحلية عن طريق تثبيت النسخة الاخيرة من SSL و التي تحتوي على الترقيع الاخير لهذه الثغرة , و سنتعلم في هذه التدوينة كيفية ترقيع الثغرة على السيرفر المحلي XAMPP لتلافي خطرها .

في البداية اذا لم تكن تستخدم السيرفر المحلي فالنسخة الاخير الموجودة في الموقع المحلي للسيرفر تاتي محملة بالترقيع الاخير و لست بحاجة لعمله ﻻنه تاتي مصلحة , اما اذا كنت قد ثبتت السيرفر من قبل على التوزيعات الجنو لينكساوية فاتبع الخطوات التالية ( وهذه الطريقة ﻻ تنطبق على مستخدمي الوندوز او الماك ) :

1- يجب التاكد من ان النسخة التي لديك تحتاج الى تحديث  و ذلك عن طريق كتابة الامر التالي في الطرفية

sudo /opt/lampp/bin/openssl version       اذ يجب ان يكون الاصدار اعلى من 1.0.1f

2- قم بتحميل الملف  التالي للمعمارية 64-بت xampp-opensslfix-linux-x64.tar.gz  و الملف التالي للمعمارية 32-بت xampp-opensslfix-linux.tar.gz

3- الان قم بفك الضغط عن الملف الذي قمت بتحميله باي برنامج ضغط لديك على التوزيعة او بصورة اسرع عن طريق الطرفية بعد ان تنقل الملف الى مجلد المنزل مباشرة بتطبيق الامر التالي مع مراعات اسم الملف حسب المعمارية  tar -xzf xampp-opensslfix-linux.tar.gz

4- الان قم بتشغيل ملف الباتش الموجود بداخل الملف الناتج و المسمى patch.sh عن طريق الامر التالي

sudo  ~/xampp-opensslfix-linux-x64/patch.sh  لمعمارية 64-بت   و  الامر التالي   لمعمارية 32-بت sudo  ~/xampp-opensslfix-linux/patch.sh   اذ يجب ان يكون الناتج مقارب الى الناتج التالي

Current OpenSSL version is: OpenSSL 1.0.1f 6 Jan 2014 You seem to be running an INSECURE OpenSSL version. Press any key to continue with the patching process. Stopping Apache XAMPP: Stopping Apache...ok. Backing up files Patching files Starting Apache XAMPP: Starting Apache...ok. New OpenSSL version is OpenSSL 1.0.1g 7 Apr 2014 Successfully patched!

5- اﻻن لنتاكد من الترقيع بكتابة الامر التالي في الطرفية   sudo /opt/lampp/bin/openssl version  , فاذا كان الناتج هو التالي    OpenSSL 1.0.1g 7 Apr 2014    فمبارك عليك لقد تم التصليح ^_^  و اعتذر مقدما عن اي خطأ ان ورد سهوا

المصدر : https://www.apachefriends.org/blog/heartbleed-bug.html

إقرا المزيد

لماذا التنقل بين التوزيعات؟

ما هي افضل توزيعة ؟

ما هي افضل واجهة ؟

لماذا النظام يحتوي على العديد من التوزيعات ؟

لماذا هنالك العديد من مدراء البرامج و العديد من الحزم ذات الامتدادات المختلفة ؟

لماذا ﻻ استطيع الاستقرار على توزيعة معينة ؟

.

.

.

.

.

العديد منا ( اذا لم يكن الكل ) قد تبادر الى ذهنه هذه الاسئلة و تكررت في باله فلماذا اغلب المستخدمين ﻻ يستقرون على توزيعة اكثر من بضع شهور , و سرعان ما يعجب بتوزيعة اخرى لسبب او اخر !

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

في البداية و قبل كل شئ يجب معرفة بعض الامور الاساسية و الاتفاق على بعض الاسس .

اول شيء هو : ماهو هذا النظام و كيف نشأ ؟ و هل تسميته جنو/لينكسصحيحة ام لينكس هي اﻻصح ؟

بدأت الفكرة من العبقري ريتشارد ستالمن الذي اوجد مشروع جنو GNU “ و عمل عليه لسنوات عديدة ليعمل على مبدأ نظام يونكس UNIX “ و لكن ببرامج و ادوات تمت كتابتها بالكامل من الصفر , فبعد ان تم منع تداول نظام يونكس UNIX “ مجاناً اﻻ بعد شراء تراخيص من الشركة المالكة له , قرر ريتشارد ستالمن ان يقوم ببناء نظام تشغيل مشابه لنظام يونكس UNIX “ و لكنه مستقل بحد ذاته اي انه ﻻ يعتمد على اي شيء خاص بذلك النظام و بدأ المشروع في منتصف الثمانينيات و تحديدا في عام 1984 و قد بين ريتشارد ستالمن تسمية نظامه بأنه نوع من التلاعب بالالفاظ اذ ان الاسم “GNU” يمثل بالتحديد الحروف الاولى من العبارة “Gnu’s Not Unix” اي جنو ليس يونكس و هذا بحد ذاته تحدي كبير للشركة المالكة للنظام , لكن بقي امر اخر وهو نواة النظام و التي تمثل روح النظام , هنا بدأ القدر يساعد ريتشارد ستالمن اذ ظهر لينوس تورفالدزفي بداية التسعينيات و تحديدا في عام 1991 بنواته المسماة لينكس Linux” لتكتمل لوحة ريتشارد ستالمن و يظهر النظام بشكل كامل و طرح الى المستخدمين لتجربته , اذاً فالنظام يتكون من مشروعين منفصلين هما مشروع جنو GNU “ و نواة لينكس Linux” لهذا ﻻ يمكن تسميته بنظام جنو فقط او نظام لينكس فقط بل جنو/لينكس GNU/LINUX و تلفظ جنو سلاش لينكس

بعد هذه المقدمة السريعة جدا تبين ان النظام يتكون من ادوات جنو بنسبة كبيرة و نواة لينكس و هذا ينطبق على جميع التوزيعات , فمثلاً توزيعات ديبيان و هي من التوزيعات العريقة و الكبيرة تعمل على ادوات جنو و نواة لينكس , كذلك الحال مع اوبن زوزا او ريدهات او فيدورا او سلاكوير او ارتش او جنتو او غيرها من التوزيعات الام في النظام , فلا يوجد فرق بين توزيعة و اخرى سوى ببعض الامور الفرعية و لكن الاساس ثابت و هو ( العديد من ادوات جنو + نواة لينكس = نظام جنو/لينكس)

حسناً هل هذا يعني ان جميع التوزيعات متشابهة مع بعضها ؟

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

لكن لماذا هذا التنوع في التوزيعات ؟

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

مما سبق يتظح لماذا تنوعت الواجهات فهي وجدت لتسهيل استخدام النظام من قبل المستخدم و لتلبية اذواق الجميع و هنا يتحكم ذوق المستخدم و قناعته بأن هذه الواجهة افضل من غيرها او انها تلائم مواصفات جهازه او ﻻ .

اﻻن نأتي الى السؤال الاهم لماذا عدم الاستقرار مع توزيعة معينة ؟

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

بدات تجربتي مع النظام بالصدفة عند سؤال احد الاصدقاء في الجامعة عن وجود نظام اخر غير الوندوز و الماك فأجاب بوجود لينكس و اعطاني قرص مضغوط يحتوي على اوبن زوزا على ما اتذكر كانت اصدارة 10 و لكن لم تنجح تجربتي معه بسبب صعوبة التثبيت و عدم امتلاكي للنت انذاك لارجع بعدها مع اوبونتو 10.4 التي ادهشتني بجمالها و الوانها الجميلة و لكن لم استخدمها كثيرا بسبب النت ايضا حتى بدأت فعليا مع 10.10 , وواجهت العديد من الصعاب معه بسبب تجربتي البسيطة و عدم انتشار النظام فالقليل جدا ممن سمعوا بالنظام و لكن بمساعدة صديقي العزيز عبد المجيب استطعت اﻻستمرار معها لفترة جيدة استمرت تقريبا 8 شهور خصوصا مع اوبونتو 11.4 و 11.10 و استمريت بالتنقل بين التوزيعات فقمت بتجربة ما ﻻ يقل عن 20 توزيعة مختلفة و لم استقر على توزيعة معينة , و لكن ما حصل اني كلما شاهدت فيديوات عبد المجيب و اعجابه باﻻرتش لينكس ازدادت الرغبة بتجربتها و بعد اكثر 12 محاولة لتثبيت الارتش ( كل محاولة ﻻ تقل عن ثمان ساعات متواصلة بسبب سرعة النت التي تصل الى 20k ) استطعت اخيرا من تثبيت النظام و ابهرني النظام بقابليته للتخصيص من حيث الحزم و تنوع الحزم و رغبت بتثبيت واجهة يونتي عليه و فعلا حصل هذا لي و قمت بعدها بتثبيت جميع الامور الخاصة باوبونتو على الارتش فأدركت حينها ان السبب هو بي انا كمستخدم فجميع الادوات موجودة على جميع التوزيعات تقريبا اﻻ ما ندر ,

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

و نصيحتي لكل مستخدم لنظام جنو لينكس هو الاستقرار على توزيعة معينة وواجهة محددة حسب احتياجاته و رغباته كي ﻻ يصاب بالملل و التعب من التنقل بين التوزيعات و بالتالي النقم على النظام …

اتمنى ان تكون الفكرة قد وصلت الى الجميع ان شاء الله

مع امنياتني للجميع بالخير و الموفقية الدائمة ان شاء الله ( و الاستقرار مع التوزيعات و الواجهات 🙂 )

hayder ctee

إقرا المزيد