الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشاريع " مفتوحة المصدر " ساهمت بتطويرها

بدأه Abdullah.Alshammeri في 28 مايو 2011 · 6 رد · 913 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ،

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

هل شاركت بمشروع مفتوح المصدر ( مشروع جماعي وليس مشروعك الشخصي ) ؟ وكيف كانت تجربتك ..

الشيء الثاني :

ماهو المشروع الذي تخطط للمساهمة في تطويره ( أيضاً ، مشروع جماعي مفتوح المصدر وليس مشروع شخصي ) .

حالياً " أعد نفسي " ، لاختيار مشروع مفتوح المصدر ، قريب من القلب ، و دسم ، يمكن المساهمة في تطويره واكتساب الخبرة اللازمة .. ممكن يكون Gecko مثلاً :P .. ليش لا .. أو إطار عمل framework ويب .. أو محرك لعبة .. لا أدري ..

3

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

موضوع مفيد اخى الشمرى ولكن للاسف ليس لدى الكثير لاثراء الموضوع ولكن ساشارك بتجربتى البسيطة .

اول مرة فكرت جديا للمشاركة فى مشروع مفتوح المصدر كان بعد الثورة و بسبب انجذابى لبرمجة الواجهات و xlib و وجدت fluxbox كاحد المشاريع المقبولة للمشاركة فى gsoc فقررت المحاولة فى التعمق اكثر وان حالفنى الحظ ساشارك فى المسابقة .

اول ما فعلتة هو زيادة معرفتى بxlib و كانت معظم وثائقها قديمة(تعود الى التسعينات وما قبلها) و يبدو انهم يعلمون ان ليس هناك الكثير من قد يهتم بالبرمجة بxlib فاكتفوا بتلك الوثائق و اعتقد ان الوثائق القديمة كانت سبب لتسبيب الدوار لى فى بعض المواضيع مثل دعم colormaps حديثة كargb وهناك الكثير من النقاط التى تعتبر معتادة ومعروفة بين مبرمجين تلك الانظمة ولكنها ليست موثقة و قضيت بعض الوقت اقراء الوثائق واجرب الاكواد وبعدها اردت تكوين صورة عن برمجة ال windowing manager لانها صلب اى desktop environment فبداءت بالsnippets الصغيرة فى الوثائق ثم حملت سورس بعض الwm المكتوبة بالسى (وغالبا gtk+ ) مثل xfwm وبداءت بتصفح السورس كود, فى البداية كان فهم ماهية الwm من مجرد سورس كود عبارة عن بازل لا استطيع تشبية قطعة على الاخرى . ناهيك ان من المرة الاولى التى احاول الخوض فى تطوير سورس كود يزيد حجمة عن 2000 سطر. فعدت مرة اخرى الى الوثائق و وجدت وثائق اخرى تتحدث خصوصا عن الwm (اين انتى منذ البداية) .صحيح ان تلك الوثائق لم تكن بسهولة how-to ولكنها بداءت بفك الطلاسم التى اصابتنى بالاكتئاب وانبهرت بتلك ICCCM وكيف استطاع مبرمجى Xserver ان يصلوا لمبداء توسيع امكانيات الwm دون كسر التوافق بين النوافذ مع الwm . بعدها عدت الى السورس كود للمحاولة مرة ثانية , واجهتنى بعض المشاكل كيف ابداء و هل اتتبع سير البرنامج من الmain ام اعتبر الmodule عبارة عن blackbox ولكن مواقع الQA كانت مفيدة لاخذ قرار فبداءت باخذ فكرة عامة عن المشروع والتعرف على الmodules التى قد تهمنى (لماذا اهتم بالmodule الخاصة بتحميل الاعدادات مثلا, فقط اكتفى بمعرفة الهيدرز التى تستعملها لاعرف هل توثر على شى قد يهمنى) ونجحت تلك المرة فى الربط بين معرفتى بxlib و كيف يعمل النظام .

عدت الى fluxbox ولكن هناك نقطة قد اهملتها ويبدوا انها ستكون العائق الحقيقى للمشاركة وهى ان الكود مكتوب بسى++ ,كنت اعرف ان تعلم لغة كسى++ يحتاج على الاقل لعدة اشهر و تفرغ لها لاستيعاب فلسفتها جيدا. ولكن فضلت المخاطرة وبما انى لى معرفة مسبقة بالاوبجكت اوراينت من سى# و معرفة بالسى فلماذا لا اجرب .فبداءت بكتاب موجة لمبرمجين السى الذين يحاولون تعلم سى++ وبالفعل الكتاب استفدت منة معلومات كثيرة ولكن فعليا لم اتعلم سى++ فانا لم اكتسب خبرة تعلمنى لماذا استعمل تلك الخاصية ولماذا لا استخدمها و لم اتعرف على الstl بشكل جيد و هذا يعنى انى لم اتعلم الكثير على معرفتى بالسى, فاعترفت بفشل الفكرة و لكنها جذبتنى للسى++ وبدات افضل سى++ كلغة لبرمجة التطبيقات و وضعتها على جدولى وساكمل بها ان شاء الله فى الاجازة .

بالنسبة للسوال, ماذا استفدت من المشاركة (او محاولة المشاركة لنكون ادق) فى مشروع مفتوح المصدر فالصراحة من اجمل التجارب التى خضتها فهى دائما تدفعك للتعلم و العمل وايضاء مصدر للمعلومات, فمحادثتك مع المبرمجين الاخرين تزيد معرفتك وتبلور معلوماتك , فمثلا ناقشناة على الirc عدة مواضيع مثل ان ack افضل من grep فى المشاريع البرمجة (كان سبب المناقشة ان احد المطورين اشتكى من grep ) و مطور اخر سال "لماذا لا تفكرون فى استخدام c++0x ؟" فكلم صاحب المشروع عن ان ليس معنى ان ميزة برمجية ماء تبدو جميلة فهى ستساعد فى الكود بل من الممكن ان تقع بالسالب على المشروع و اعطاء مثال انة فى بداية نزول الtemplates فى سى++ كانت الفكرة منتشرة والجميع منبهر بها وبسبب ذلك قام باستخدامها فى كثير من اجزاء المشروع و لكن لاحظ بعدها نقص كبير فى عدد القادرين على المشاركة و التعديل فى هذا الكود كما اصبحت الاخطاء الخارجة من المترجم اكثر ابهاما .

فى زخم المحاولة تعرفت واستخدمت بعض الادوات الجديدة لى مثل git/github وقراءت فى بعض المواضيع مثل برمجة الdaemons .

اقتباس
ماهو المشروع الذي تخطط للمساهمة في تطويره

لا اعرف بالتحديد ولكنى مهتم الان بسى++ ومحرك ogre و تطوير الجرافيك واعتقد ان المشاركة ستكون بشى متعلق وفكرة الانجذاب بالواجهات والwm مازالت عالقة فى عقلى واتمنى فعلها قريبا (وقد اربطها بالسابق) .

بالتوفيق اخى الشمرى

تم تعديل هذه المشاركة بواسطة apex في 28 مايو 2011 في 14:33

6

name : mohamedyosry

#3

تجربة ثرية أخ apex .

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

جملة من ذهب .. صدقاً مررت في هذه الحالة عندما بدأت بدراسة محرك irrlicht و المحرك الرسومي Ogre ( كنت أريد إضافة modules عليها مثل دعم العربية ) ، لكن توقفت . المقصد أنه في تلك الأيام أحسست بقيمة OOP ، وفهمت الكثير و الكثير من أنماط التصميم Design patterns و طريقة كتابة كود وتنظيمه ، بل حتى لغة ++C لم أبدأ بفهمها وسبر أغوارها إلا بعد أن رأيت أسطر كود عجيبة وكأنك لأول مرة تشاهد لغة سي-بلس أمامك .

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

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

الهدف من المساهمة ليس المساهمة في عينها بل الوصول الى هدف

والسبب في قلة مساهماتي ان البرامج المتوفرة تغطي احتياجاتي بشكل جيد

معظم ما فعلته بسيط جدا:

* موديولز واضافات خدمات جديدة لبعض السيرفرات، لكن لم انشرها مؤسستي لم توافق

* هاكات بسيطة في احد السيرفرات لتجاوز مزودة الخدمة المحلية لدي (غير قابل للنشر لانه ليس عام كفاية)

* تعديلات بسيطة في بعض الواجهات الرسومية مثل wireshark.. شوية تعديلات في استدعاءات gtk :D حتى يكون ابسط (ناس فاضية)

هناك جوانب لست راض عنها وافكر اقوم بتطوير شيء من الصفر:

* لا يوجد media server جيد مفتوح المصدر ويعمل على الاكس بوكس.. كلهم زبالة للاسف..

وانا احتاج هذا كثيرا من اجل streaming media على الاكس بوكس :D

لكن هذا خارج الموضوع لانه مشروع غير جماعي وعلى الارجح سيكون fork او عمل من الصفر بإنفراد

خلاصة تجربتي البسيطة هي:

* لا استطيع التعميم.. هناك ناس طيبين كما ان هناك ناس حساسين ترفض التغيير (ولذا نجد forks لبعض المشاريع)

* هناك مشاريع تطويرتحتاج testers اكثر من developers واحيانا يتم ايقاف ادراج خاصية معينة لعدم وجود testers بينما الdeveloper موجود

* بصفة عامة اي patch او اي تعديل مرحب به... لكن الذي يحصل هو ان معظم الناس راضية ولا تجد دافع قوي لكتابة الpatches

* هناك حساسية حول من يريد المشاركة فقط من اجل المشاركة والشهرة.. والتغيير فقط من اجل التغير غير مرحب به ويجب ان يكون الدافع جيد

في رأيي اول خطوة هي:

* اكتشاف شيء ناقص يحتاج اصلاح ويهم شريحة لا باس بها

* ان يكون مسليا بالنسبة لك

لذا الافضل تسأل نفسك وترى ماهو الشيء الذي لا يعجبك وتمنيت لو كان افضل

ملاحظة: يوجد

أعضاء في قائمة تجاهلي. لذا عدم ردي عليهم لا يدل على موافقتي الضمية لمحتويات مشاركاتهم.

sigsubway.png

#5

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

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

name : mohamedyosry

#6

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

لكن لم يقل احد ان المبرمج هو المصدر الوحيد للفكرة

وطبعا لا مانع من التعلم من اي مصدر آخر

طبعا مصادر الافكار كثيرة... وبعضها حتى تنبع من الحيوانات..

مثل ANN.. بدأت من الذكاء الطبيعي

ملاحظة: يوجد

أعضاء في قائمة تجاهلي. لذا عدم ردي عليهم لا يدل على موافقتي الضمية لمحتويات مشاركاتهم.

sigsubway.png

#7

الموضوع اعجبني جدا جدا ، واجبرني ايضا على الرد اخوى الشمري :)

صار لي فترة طويلة ما اشوفك على الايميل يارب يكون المانع خير ؟؟

-------------

نرجع لصلب الموضوع مرة اخرى

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

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

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

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

لا ابحث كثيرا عن المشاريع الجماعية لان خبرتي البرمجية لا تتيح لي ذلك لان كل يوم فى وادي شكل ومع لغة مختلفة ، احب ان اعرف اسرار اللغات ولكن الى الان لست محترف فى لغة معينة

اكثر لغة اعمل بها هى السى شارب ولدي خلفية فى لغات اخرى كثيرة جدا ولكن الدخول الى فريق جماعي يلزم انى اكون ملم بلغة الفريق وايضا انى اقدر اعطيهم افكار جديدة

مواضيع مشابهة