اقترح مشروعا بسيطا مفتوح المصدر ودعنا نتشارك في برمجته !
- hatem87
- 2015-12-06T06:12:05+00:00
اقترح فكرة او مشروع صغير ليكون مفتوح المصدر
سنكون فريق اساسي
سنضعها ونبرمجها سويا في GitHub
اذا اصبح مشروعا جيدا قد نستطيع التحول الى نقله اخرى !
الشروط !
الجدية
التعلم الذاتي
اتصال دائم بالانترنت
لديك متسع من الوقت
احترام قرارات مدير المشروع
ما رأيكم ؟
كنت افكر في هذه الفكرة اليوم ولكن تحت مسمي تأليف الموسيقي عن طريق البرمجة
جميل سأدونها معي فكرة ابداعية بحق اذا كان لديك معلومات اكثر اطرحها هنا مثلا اي محرر ترشح وهل لديك نموذج لمقاطع صوتية معينة يمكن ان تكون مرشحه لكل الحالات ولماذا تظن انها جيدة , اتمنى من الجميع ممن اعجبته الفكرة ان يعطي تصويت لتعليق الاخ عبر استخدام زر النقاط واي ملاحظات . وسنختار فكرة محددة في نهاية الموضوع.
بالنسبة للمقاطع فربما نطلب الاستعانة بمتخصص في الموسيقى من المجتمع هنا. على أية حال الجزء البرمجي غير متأثر بالموسيقى في البداية بقدر اهتمامه بتحديد "مود" المبرمج، وقدرته على اختيار وتشغيل أو التغيير من مقطع موسيقي لآخر.
لتوضيح الفكرة: سيتم ترميز المزاجات بثلاثة أرقام مثلا، أي سيكون عندنا 1000 تركيبة ممكنة: [000,999]، يتم تحليل المعطيات من المحرر، تحديد الرقم وتمريره لجزء آخر مسؤول عن تشغيل وتغيير الموسيقى.
قمت برسم بسيط system architecture هنا:
، لدينا tow subsystems في الصندوق الأسفل.
بالنسبة للمحرر فأقترح أن يكون Atom
انا مهتم حقا بالمشروع. ولكن ثمة اشياء لم افهمها او بحاجة لاجابات:
ماذا تعني بالمزاجات والتركيبات ؟ او Mode Code كما عبرت عنه في Component Diagram ؟ لقد فهمته بطريقة معينة وربما اسأت الفهم. ارجو ان توضح لي.
لماذا اخترت Atom كبداية ؟ هل السبب كثرة مستخدميه ؟ سهولة برمجة اضافات عليه ؟
- المود كود هو فقط عبارة عن مفهوم لكي يكون المحلل غير معتمد على مشغل الموسيقى، مثلا ربما يصطلح مشغل الموسيقى والمحلل على أن 900-999 تعني أن المبرمج مسترسل في البرمجة ربما استدل عليها من سرعة الكتابة العالية، والانتقال السريع من ملف لآخر، سيفهم مشغل الموسيقى أنه في هذه الحالة يجب عليه أن يشغل موسيقى سريعة الرتم، ما هي الموسيقى التي سيشغلها سيختارها مشغل الموسيقى، المحلل لا يهتم بذلك. مثال آخر: لو كان الكود بين 300-399 فتعني أن المبرمج في مود تركيز، debugging مثلا، عرفها من أنه يمسح ويعيد كتابة أسطر برمجية، لذلك سيفهم مشغل الموسيقى أنه في هذه الحالة ربما سيحول على موسيقى هادئة الإيقاع للمساعدة على التركيز. أيضا ليس من اهتمامات المحلل أن يعرف ما هي الموسيقى بالتحديد التي سيختارها المشغل. الاستدلالات من المعلومات التي يتم جمعها من المحرر تحتاج لاتفاق ومناقشة.
من فوائد المود كود أيضا إعطاء الحرية للمشغل لتغيير الموسيقى أو البقاء عليها، ربما يكون الكود المعطى من المحلل مقارب للكود السابق، لذلك في هذه الحالة المشغل لديه الحرية في تغيير الموسيقى أو الابقاء عليها.
- اخترت Atom لأنه في نظري محرر صاعد يزيد مستخدميه يوما بعد يوم (الصراحة لا توجد لدي _أو لم أبحث عن_ احصائيات تدعم هذه الفرضية، لكن مجرد ملاحظة شخصية.
اجابة مثالية وشافية , لكن ما زال اسئلة :
كيف سيصنف المشغل الموسيقى. هل يتم توفير موسيقى جاهزة مصنفة مسبقا ؟ ام هل للمستخدم الحرية في جمع موسيقاه. بينما المشغل يقوم باضفاء تأثيرات او تسريع او تبطئ الموسيقى تبعا لـلـ Mode Code. هل لديك تصور عن كيف ستفعل ذلك ؟ مع اني افضل الخيار الثاني لأن المبرمج مزاجي ويريد شئ لا يقيده !
هل هنالك مشاريع شبيهة ؟ هل يمكنك ان تذكرها ؟
سأجري عملية بحث قليلا حول التقنية التي تستخدم في برمجة اضافات Atom وأعود الى هنا.
هنا سنحتاج أن نستعين بمتخصص في الموسيقى ليختار مقطوعات مناسبة والتي ستخزَّن في مجلد معين بأسامي محددة. وبالنسبة لتمكين المستخدم من إضافة موسيقى خاصة به، فممكن أن ينسخ ملفاته للمجلد ويغير أسامي الموسيقى الخاصة به ليستبدل الملفات الافتراضية. أي أن المستخدم يستطيع مثلا أن يضيف أو يبدل ملف 950.mp3 الموجود بشكل افتراضي لموسيقى يختارها هو. وسيعرف المستخدم دلالات أسماء الملفات الافتراضية من ملف README.md
الفكرة كانت في رأسي من زمان وبحثت عنها وقتها ولم أجدها.. لكني كنت أأجل البدء فيها دائما كعادتي:)، الآن بحثت ولم أجدها أيضا. وجدت هذه لكن مما فهمته منها أنها تظهر أزرار المشغل في المحرر نفسه فقط:
مما استفدته من المشروع السابق أننا يمكن أن نستخدم ffplay لتشغيل الموسيقى في هذا المشروع:
أبحث أنت أيضا ربما تكون هناك مشاريع مشابهة موجودة فنستفيد منها.
عملت بحث مصغر , اكتشفت ان التقنية المستخدمة في كتابة اضافات Atom هي باستخدام لغة CoffeeScript التي تترجم الى JavaScript والصيغ متشابهة. في الDocumentation الرسمية لآتوم يوجد امثله لاضافات تم كتابتها لكي تكون مثال يسير عليه المطورين.
انظر هنا مثلا اضافة لعد الكلمات :
اذا بدأنا هذا المشروع اقترح ان يكون على مرحلتين. الاولى كتابة مشغل عادي يقوم بتشغيل Playlist. والمرحلة الثانية هي اضافة ميزة التفاعل مع المبرمج لانها تستلزم وقتا للتفكير فيها والتخطيط والى ذلك الحين نكون قد انتهينا من المرحلة الاولى وهي كتابة المشغل.
أعتذر عن الانقطاع بسبب الانشغال بالدراسة. ما آخر ما توصلنا إليه؟ هل نبدأ عمل على هذا المشروع؟
في حال اتفقنا على مشروع، ابدأ موضوع جديد نناقش فيه كل ما يتعلق بالمشروع ونبدأ Implementation
بالنسبة لي فلن أستطيع المشاركة إلا بعد بداية السنة الجديدة. لكن يمكنني أن أشارك في المناقشة قبل ذلك.
ان كان هنالك اساس وارضية لادارة المشروع بطريقة سليمة وعلمية فلن يحدث ما قلته. كما ان هنالك مشاريع مفتوحة تبدأ بفرد.فهنالك ايضا مشاريع مفتوحة المصدر بدأت بفريق صغير. احيانا الشخص بحاجة للآخرين لتطوير الفكرة وتحسين الاساليب. والمشاريع المفتوحة في العادة لا تفشل بانسحاب احدهم اذا كنت تقصد هذه النقطة فهنالك الكثير ممن لديه الاستعداد ليحل او يعوض النقص.
لماذا توقفت ؟
لأني لم أجد وقت لإكمال المشروع
ما الجديد الذي يقدمه
أثناء صناعتي لللسكريبت كل ما فكرت فيه هو تطوير مهاراتي في صناعة سكريبتات بلغة PHP لم أفكر في الجوانب التي سيتميز فيها السكريبت عن ووردبريس بشكل كبير
هل تفكر بالاستمرار فيه أم توقفت الى هذا الحد ؟
أفكر في الإستمرار عن قريب مع شيء جديد و هو توفير تطبيق للهواتف يتوافق مع السكريبت بإستخدام ionic لذلك حاليا أطور مهاراتي في css3 و html5 و JS, angularJS
_________________________
كفكرة جانبية
انشاء Framwork مثل Bootstrap لكن تدعم RTL بشكل أحسن من باقي الFramworks
أعتقد أنها ستفيد الكثيرين و توفر بديل يدعم العربية بشكل أحسن !
السلام عليكم اخى الكريم ممكن تقول لى ما هى المنصة المطلوبة؟
Web,Android,Ios?
لدي 5 أفكــار عملاقــة وعالميــة .. وكلها من خيالي الخاص
3 لن أذكرها حتى تبقى الفكرة حصرية وأجد لها الدعم الكبيـر
وإثنان سأذكرها وهي أقلهم أهمية
وقد استوحيتها من ما أعانيه أنا شخصيا .. في كثير من الأحيان
بحيث أضطر لترك الجهاز بسرعة وأحتاج أن أكمل نفس الشيء على هاتفي
أو لدي صورة على هاتفي أحتاج فتحها على الحاسوب بسرعة
يحتاج الأمر تطبيق هاتف نقال أو إضافة للمتصفحات
بحيث يكون هناك تنسيق بين جهازي وغيره من الأجهزة التي تحمل نفس بريدي الإلكتروني
أو لنقل مع هاتفي
بضغطة زر في الكروم أعلى اليمين .. تنقل نفس الصفحة التي أنا فيها إلى هاتفي أو تفتح هناك مع كونفيرمايشن في المرسل إليه .. إلخ
لمن لم يفهم شيئا
سأختصر الأمر في جملة واحدة
وكأنك تضغط CTRL+C من الحاسوب .. ثم تضغط CTRL+V ( ليس في الحاسوب ) بل في الهاتف .. فيتم النسخ
الفكرة الثانية وهي فكرة شبكة اجتماعية من نوع آخر بفكرة لم يتم طرحها لحد الآن
وأحتاج عدة تقييمات إيجابية لتعليقي .. بهدف أن أصبح قادرا على نشر المواضيع في الموقع .. لأنشرها في موضوع جديد
ذلك الكلام صائب .. لكن في حالة صغيرة جدا
في الوقت الذي تم فيه إنشاء فيسبوك أو جوجل أو أية شركة ناجحة
كان هناك من يماثلون صاحب ذلك المشروع بالآلاف
لكن من سبقهم بالفكرة وبتنفيذها كان الأنجح
يعني لو شرح زوكربيرغ فكرته على التلفاز قبل تنفيذه له
لنفذتها آلاف الشركات حينها التي لديها الخبرة لذلك
مجتمع للمبرمجين من جميع المستويات لتبادل المعرفة والخبرات. ناقش لغات البرمجة المختلفة، الحلول البرمجية، والمشاريع.