يوجد Just In Time Compiler (JIT) للغة Ruby اسمه YJIT، من تطوير شركة Shopify وأُضيف بعد تطويره إلى اللغة بشكل رسمي، وحقق نتائج ممتازة يمكن الاطلاع عليها من هنا:
https://speed.yjit.org
لمن يحب أن يتعرّف أكثر على الـ JIT Compilers فيمكنه مشاهدة هذه المادة (لم أجد شيئًا عربيًّا، فمن يجد يُشارك رجاءً):
https://www.youtube.com/watch?v=d7KHAVaX_Rs
قرأت البارحة خبرًا أن فريق شركة Shopify المُنتج لـ YJIT يعمل على JIT Compiler جديد للغة Ruby واسمه ZJIT (مُبدعون في الأسماء)، وهذه الـ Issue التي يقترح فيها الفريق دمج الشيفرة المصدرية المبدئية للـ JIT Compiler الجديد في مستودع لغة Ruby الأساسي:
https://bugs.ruby-lang.org/issues/21221
استوقفني أن المبرمجة التي أنشأت الـ Issue ليست مجرد مبرمجة هاوية تعلّمت البرمجة من YouTube وأصبحت بطريقة إعجازية في فريق إنشاء YJIT و ZJIT، إنما حصلت على درجة الدكتوراه في هذا المجال وتعمل في هذا الفريق بناء على ما درسته (بالإضافة إلى الخبرة العملية بكل تأكيد).
فالمقصد أن شعارات "الجامعة لا تنفع" و"الدراسة الجامعية مضيعة للوقت" وغيرها من الشعارات من هذا النوع تحتاج إلى إعادة نظر وتسويقها قد يَضر ولا ينفع.
تستطيع تعلّم أُطر العمل وبناء المواقع والتطبيقات وغيرها الكثير من الأمور من YouTube وقد تتخصص في بعض الأمور، ولكن إخراج كفاءات بجودة عالية في مجالات دقيقة لا أظنه ممكنا من خلال YouTube وغيرها من المنصات دون الخبرة الحقيقية والدراسة المنهجية الأكاديمية "عالية الجودة".
والسلام عليكم 👋🏻
https://speed.yjit.org
لمن يحب أن يتعرّف أكثر على الـ JIT Compilers فيمكنه مشاهدة هذه المادة (لم أجد شيئًا عربيًّا، فمن يجد يُشارك رجاءً):
https://www.youtube.com/watch?v=d7KHAVaX_Rs
قرأت البارحة خبرًا أن فريق شركة Shopify المُنتج لـ YJIT يعمل على JIT Compiler جديد للغة Ruby واسمه ZJIT (مُبدعون في الأسماء)، وهذه الـ Issue التي يقترح فيها الفريق دمج الشيفرة المصدرية المبدئية للـ JIT Compiler الجديد في مستودع لغة Ruby الأساسي:
https://bugs.ruby-lang.org/issues/21221
استوقفني أن المبرمجة التي أنشأت الـ Issue ليست مجرد مبرمجة هاوية تعلّمت البرمجة من YouTube وأصبحت بطريقة إعجازية في فريق إنشاء YJIT و ZJIT، إنما حصلت على درجة الدكتوراه في هذا المجال وتعمل في هذا الفريق بناء على ما درسته (بالإضافة إلى الخبرة العملية بكل تأكيد).
فالمقصد أن شعارات "الجامعة لا تنفع" و"الدراسة الجامعية مضيعة للوقت" وغيرها من الشعارات من هذا النوع تحتاج إلى إعادة نظر وتسويقها قد يَضر ولا ينفع.
تستطيع تعلّم أُطر العمل وبناء المواقع والتطبيقات وغيرها الكثير من الأمور من YouTube وقد تتخصص في بعض الأمور، ولكن إخراج كفاءات بجودة عالية في مجالات دقيقة لا أظنه ممكنا من خلال YouTube وغيرها من المنصات دون الخبرة الحقيقية والدراسة المنهجية الأكاديمية "عالية الجودة".
والسلام عليكم 👋🏻
❤6
من أهم الأشياء عند إنشاء أي مكتبة أو Script لمعالجة مجموعات ضخمة من البيانات هو الاحتفاظ بتقدّم المُعالجة وعدم تنفيذ نفس العملية أكثر من مرة على نفس المدخلات.
سابقا، كنت أكتب بعض الـ Scripts -إما لمعالجة البيانات أو جمعها من بعض المواقع وغيرها من الأمور- دون التدقيق على هذا الأمر، فعند حدوث أي خطأ أثناء التنفيذ، أجد أنني خسرت كل التقدّم الذي أحرزته، وقد يكون هذا التقدم أياما أو حتى أسابيع.
يمكن الاحتفاظ بالتقدّم في المعالجة بطريقتين:
- حفظ التقدّم صراحةً على ملف خارجي أو في قاعدة بيانات مستقلّة
- حفظ التقدّم ضمنيًّا من خلال التأكد من وجود المخرجات المُتوقّعة
من أمثلة النوع الأول مكتبة
ومن أمثلة النوع الثاني مكتبتَيْ تفريغ وتحويل، فهُما يتجاوزان أي ملف من ملفات المدخلات في حال وجود المخرجات المُتوقّعة منه.
من محاسن النوع الأول أنه لا يفترض أي افتراضات ويمكنك تعديل حالة التقدّم من خلال التعديل في مكان واحد، الملف أو قاعدة البيانات، ومن مساوئه أنك تحتاج للاحتفاظ بالمخرجات الحقيقية بجانب ملفات حالة التقدّم.
أما النوع الثاني فهو عكس الأول، فمن محاسنه أنك لا تحتاج للاحتفاظ بملفات حالة التقدّم، ولكنك تحتاج لحذف أجزاء من المخرجات الحقيقية في حال أردت معالجة جزء من البيانات مرة أخرى.
ختامًا، سواءً استخدمت الطريقة الأولى أو الثانية، فيجب عليك الاحتفاظ بحالة تقدّم معالجة البيانات التي تعمل عليها، لا تنسى هذا الأمر أبدا 😁
والسلام عليكم 👋🏻
سابقا، كنت أكتب بعض الـ Scripts -إما لمعالجة البيانات أو جمعها من بعض المواقع وغيرها من الأمور- دون التدقيق على هذا الأمر، فعند حدوث أي خطأ أثناء التنفيذ، أجد أنني خسرت كل التقدّم الذي أحرزته، وقد يكون هذا التقدم أياما أو حتى أسابيع.
يمكن الاحتفاظ بالتقدّم في المعالجة بطريقتين:
- حفظ التقدّم صراحةً على ملف خارجي أو في قاعدة بيانات مستقلّة
- حفظ التقدّم ضمنيًّا من خلال التأكد من وجود المخرجات المُتوقّعة
من أمثلة النوع الأول مكتبة
yt-dlp، فهي تحتفظ بتقدّم تنزيل المقاطع من YouTube (أو غيره) في ملف TXT من خلال تمرير الاختيار download-archive-- للمكتبة عند تشغيلها.ومن أمثلة النوع الثاني مكتبتَيْ تفريغ وتحويل، فهُما يتجاوزان أي ملف من ملفات المدخلات في حال وجود المخرجات المُتوقّعة منه.
من محاسن النوع الأول أنه لا يفترض أي افتراضات ويمكنك تعديل حالة التقدّم من خلال التعديل في مكان واحد، الملف أو قاعدة البيانات، ومن مساوئه أنك تحتاج للاحتفاظ بالمخرجات الحقيقية بجانب ملفات حالة التقدّم.
أما النوع الثاني فهو عكس الأول، فمن محاسنه أنك لا تحتاج للاحتفاظ بملفات حالة التقدّم، ولكنك تحتاج لحذف أجزاء من المخرجات الحقيقية في حال أردت معالجة جزء من البيانات مرة أخرى.
ختامًا، سواءً استخدمت الطريقة الأولى أو الثانية، فيجب عليك الاحتفاظ بحالة تقدّم معالجة البيانات التي تعمل عليها، لا تنسى هذا الأمر أبدا 😁
والسلام عليكم 👋🏻
👍4❤1👌1
معلومة قد تفيدك
أحتاج أحيانا إلى البحث عن مشكلة في مكتبة من المكتبات التي أستخدمها في المشروع الذي أعمل عليه، ومن طرق البحث عن المشكلة تعديل ملفات المكتبة الموجودة على جهازي مباشرة والتحقق من مخرجات بعض الدوال أو مدخلاتها.
في لغة Python، يمكنك الوصول إلى مسار المكتبة التي تستخدمها على جهازك باستخدام
ثم تفتح مجلد المكتبة على محررك المفضل مثل VSCode.
كذلك في لغة Ruby، يمكنك فتح المكتبة بشكل مباشر من خلال الأمر:
بهذه الطريقة تستطيع تعديل الملفات وتشغيل مشروعك واختبار التعديلات دون الحاجة لأي تفاصيل إضافية مثل تنزيل الشيفرة البرمجية للمكتبة عندك وإجراء التعديلات المطلوبة ثم تثبيتها والتجربة.
هذه الطريقة تفيد في التجارب السريعة وإجراء تعديلات المرة الواحدة.
أحتاج أحيانا إلى البحث عن مشكلة في مكتبة من المكتبات التي أستخدمها في المشروع الذي أعمل عليه، ومن طرق البحث عن المشكلة تعديل ملفات المكتبة الموجودة على جهازي مباشرة والتحقق من مخرجات بعض الدوال أو مدخلاتها.
في لغة Python، يمكنك الوصول إلى مسار المكتبة التي تستخدمها على جهازك باستخدام
__file__، فمثلا إذا أردت أن تصل إلى مسار مكتبة تفريغ يمكنك كتابة:import tafrigh
print(tafrigh.__file__)
ثم تفتح مجلد المكتبة على محررك المفضل مثل VSCode.
كذلك في لغة Ruby، يمكنك فتح المكتبة بشكل مباشر من خلال الأمر:
bundle open {gem name}
بهذه الطريقة تستطيع تعديل الملفات وتشغيل مشروعك واختبار التعديلات دون الحاجة لأي تفاصيل إضافية مثل تنزيل الشيفرة البرمجية للمكتبة عندك وإجراء التعديلات المطلوبة ثم تثبيتها والتجربة.
هذه الطريقة تفيد في التجارب السريعة وإجراء تعديلات المرة الواحدة.
❤2
نصائح عامة (أتَّبعها شخصيًّا) عند العمل على المشاريع البرمجية "المشتركة":
📝 اتبع تنسيق المشروع الموجود مسبقًا ولو لم يعجبك، فالمشاريع الموجودة لها تنسيق بالفعل ولا يجب تغييره إلا عند الحاجة المُلِحة.
🔄 لا تُجرِ أي تعديلات مباشرة على المستودع وافتح PR جديدًا لكل تعديل، إلا في الحالات الشاذة وبالاتفاق مع الفريق.
🎯 حاول إنشاء PR مُركّزة ولا تُجرِ تعديلين مختلفين في نفس الـ PR.
📦 حاول تقسيم العمل ضمن نفس الـ PR على مجموعة من الـ commits وضع رسائل مفهومة تشرح التعديل ضمن الـ commit الواحد.
📄 حاول توثيق التعديل في الـ PR من خلال إضافة التفاصيل المهمة مثل التحسينات على الأداء وغيرها.
🧪 لا تفتح أي PR بدون إضافة حالات اختبار منطقية ومفيدة لها.
📚 لا تنسَ دائمًا تحديث التوثيق الخاص بالمشروع سواء في ملف README.md أو غيره.
🖼️ في الحالات المثالية، لا يجب أن يحتاج زميلك إلى اختبار تعديلك على جهازه، فأضِف التفاصيل المهمة في الـ PR نفسها مثل صورة لشكل الواجهة الجديدة أو مقطع مرئي تُظهر فيه التعديل الذي أجريته على أكثر من صفحة.
💬 لا تفترض أنك حللت المشكلة التي علّق بها زميلك على الـ PR وتغلق التعليق، إنما رد على تعليق زميلك بأنك حللت المشكلة وانتظر رده أو إغلاقه للتعليق.
🔀 عندما يُوافق زميلك على الـ PR الخاصة بك، فيجب عليك أن تدمجها مع المستودع من خلال استخدام خيار Squash and Merge.
🤝 زميلك لا يُريد إحراجك في التعليقات، هو فقط يُحاول أن يُحافظ على استمرارية المشروع من خلال ضمان جودة الشيفرة البرمجية المكتوبة.
✨ أخيرًا، اترك المكان أفضل مما كان، من خلال تحسين طريقة الكتابة في الملف الذي تعدل عليه أو إضافة حالة اختبار جديدة مثلًا.
والسلام عليكم 👋🏻
📝 اتبع تنسيق المشروع الموجود مسبقًا ولو لم يعجبك، فالمشاريع الموجودة لها تنسيق بالفعل ولا يجب تغييره إلا عند الحاجة المُلِحة.
🔄 لا تُجرِ أي تعديلات مباشرة على المستودع وافتح PR جديدًا لكل تعديل، إلا في الحالات الشاذة وبالاتفاق مع الفريق.
🎯 حاول إنشاء PR مُركّزة ولا تُجرِ تعديلين مختلفين في نفس الـ PR.
📦 حاول تقسيم العمل ضمن نفس الـ PR على مجموعة من الـ commits وضع رسائل مفهومة تشرح التعديل ضمن الـ commit الواحد.
📄 حاول توثيق التعديل في الـ PR من خلال إضافة التفاصيل المهمة مثل التحسينات على الأداء وغيرها.
🧪 لا تفتح أي PR بدون إضافة حالات اختبار منطقية ومفيدة لها.
📚 لا تنسَ دائمًا تحديث التوثيق الخاص بالمشروع سواء في ملف README.md أو غيره.
🖼️ في الحالات المثالية، لا يجب أن يحتاج زميلك إلى اختبار تعديلك على جهازه، فأضِف التفاصيل المهمة في الـ PR نفسها مثل صورة لشكل الواجهة الجديدة أو مقطع مرئي تُظهر فيه التعديل الذي أجريته على أكثر من صفحة.
💬 لا تفترض أنك حللت المشكلة التي علّق بها زميلك على الـ PR وتغلق التعليق، إنما رد على تعليق زميلك بأنك حللت المشكلة وانتظر رده أو إغلاقه للتعليق.
🔀 عندما يُوافق زميلك على الـ PR الخاصة بك، فيجب عليك أن تدمجها مع المستودع من خلال استخدام خيار Squash and Merge.
🤝 زميلك لا يُريد إحراجك في التعليقات، هو فقط يُحاول أن يُحافظ على استمرارية المشروع من خلال ضمان جودة الشيفرة البرمجية المكتوبة.
✨ أخيرًا، اترك المكان أفضل مما كان، من خلال تحسين طريقة الكتابة في الملف الذي تعدل عليه أو إضافة حالة اختبار جديدة مثلًا.
والسلام عليكم 👋🏻
❤7👍3
جولة في الشيفرة المصدرية لميزة "تواصل معنا" في منصة باحث 👨💻
https://www.youtube.com/watch?v=u3bqCpmoQ7g
لمن أراد أن يتعرّف على Ruby on Rails والشيفرة المصدرية لمنصة باحث بشكل أكبر، وأعتذر على كثرت التفاصيل في المقطع ولكن حاولت المرور على كامل الميزة من بداية إنشاء جدول قاعدة البيانات إلى إضافة حالات الاختبار
https://www.youtube.com/watch?v=u3bqCpmoQ7g
لمن أراد أن يتعرّف على Ruby on Rails والشيفرة المصدرية لمنصة باحث بشكل أكبر، وأعتذر على كثرت التفاصيل في المقطع ولكن حاولت المرور على كامل الميزة من بداية إنشاء جدول قاعدة البيانات إلى إضافة حالات الاختبار
YouTube
جولة في الشيفرة المصدرية لميزة "تواصل معنا" في منصة باحث 👨💻
00:00:00 - مقدمة
00:00:18 - هدف المقطع
00:01:58 - Migrations
00:05:05 - Models
00:15:52 - الاختبارات
00:16:04 - FactoryBot
00:18:48 - مقارنة بين RSpec و Minitest
00:20:18 - اختبارات الـ Model
00:32:32 - Controllers
00:54:05 - اختبارات الـ Controller
01:02:59…
00:00:18 - هدف المقطع
00:01:58 - Migrations
00:05:05 - Models
00:15:52 - الاختبارات
00:16:04 - FactoryBot
00:18:48 - مقارنة بين RSpec و Minitest
00:20:18 - اختبارات الـ Model
00:32:32 - Controllers
00:54:05 - اختبارات الـ Controller
01:02:59…
❤7🔥1
ما هو Docker و DevContainers؟ جولة في بيئة التطوير الخاصة بمنصة باحث 👨💻
https://www.youtube.com/watch?v=S3EPbM7Eh28
لمن أراد أن يتعرّف على Docker و DevContainers وكيف نستخدمهم في بيئة التطوير الخاصة بمنصة باحث
https://www.youtube.com/watch?v=S3EPbM7Eh28
لمن أراد أن يتعرّف على Docker و DevContainers وكيف نستخدمهم في بيئة التطوير الخاصة بمنصة باحث
YouTube
ما هو Docker و DevContainers؟ جولة في بيئة التطوير الخاصة بمنصة باحث 👨💻
00:00 - مقدمة
00:43 - لماذا Docker؟
01:28 - تثبيت Docker Desktop
02:53 - مفاهيم Docker: Images و Containers
06:29 - إنشاء Docker Image (Dockerfile)
12:19 - تشغيل Docker Image (hello-world)
13:23 - Docker Compose
16:51 - تحديد الخدمات (قاعدة البيانات، Redis،…
00:43 - لماذا Docker؟
01:28 - تثبيت Docker Desktop
02:53 - مفاهيم Docker: Images و Containers
06:29 - إنشاء Docker Image (Dockerfile)
12:19 - تشغيل Docker Image (hello-world)
13:23 - Docker Compose
16:51 - تحديد الخدمات (قاعدة البيانات، Redis،…
❤6
خان المُبرمجين (علي فاضل)
ما هو Docker و DevContainers؟ جولة في بيئة التطوير الخاصة بمنصة باحث 👨💻 https://www.youtube.com/watch?v=S3EPbM7Eh28 لمن أراد أن يتعرّف على Docker و DevContainers وكيف نستخدمهم في بيئة التطوير الخاصة بمنصة باحث
This media is not supported in your browser
VIEW IN TELEGRAM
تشويقية من مقطع اليوم 😂
❤5🤣2
خان المُبرمجين (علي فاضل)
Photo
جمعة مباركة 🕌
نشرت في اليومين الماضيين مقطعين على قناتي -لعلها تكون عودة بعد انقطاع- وأصر أحد أصدقائي عليَّ لإضافة فصول (Chapters) إلى المقاطع، ففكّرت في الاستعانة بـ Gemini 2.5 Flash لإنجاز المهمة 😁
أرسلت له رابط المقطع الثاني من YouTube، وهو الأقصر، وقلت له:
Generate YouTube chapters for the given video in Arabic.
مع تفعيل خيار المخرجات المنظمة أو Structured Output وتمرير الـ Schema الموضّحة في الصورة، وكانت النتائج ممتازة "مع بعض التعديلات"، يمكنك الاطلاع عليها من خلال المقطع نفسه:
https://www.youtube.com/watch?v=S3EPbM7Eh28
بدأت بعدها في المقطع الأول، وللأسف كان عدد الرموز (Tokens) أطول من السياق (Context) الذي يستطيع النموذج التعامل معه، فقررت استخدام الملف الصوتي بصيغة MP3 بدلا من المقطع المرئي لتقليل الرموز، ولكن النتائج كانت سيئة جدا.
فحمَّلت التفريغ النصي للمقطع بصيغة SRT من YouTube باستخدام موقع كهذا:
https://downsub.com
وغيّرت صيغة الملف إلى TXT لأن Gemini لا يدعم SRT ورفعت الملف مع نفس الجملة وتفعيل خيار المخرجات المنظمة بنفس الـ Schema:
Generate YouTube chapters for the given video in Arabic.
وكانت النتائج ممتازة "مع بعض التعديلات"، ويمكنك الاطلاع عليها من خلال المقطع نفسه:
https://www.youtube.com/watch?v=u3bqCpmoQ7g
لم يستغرق الأمر أكثر من 20 دقيقة، مع الأخذ بعين الاعتبار الوقت الضائع في استكشاف النموذج وتطويعه لهذه المهمة، أما في المستقبل فسيكون أسرع بإذن الله.
والسلام عليكم 👋🏻
نشرت في اليومين الماضيين مقطعين على قناتي -لعلها تكون عودة بعد انقطاع- وأصر أحد أصدقائي عليَّ لإضافة فصول (Chapters) إلى المقاطع، ففكّرت في الاستعانة بـ Gemini 2.5 Flash لإنجاز المهمة 😁
أرسلت له رابط المقطع الثاني من YouTube، وهو الأقصر، وقلت له:
Generate YouTube chapters for the given video in Arabic.
مع تفعيل خيار المخرجات المنظمة أو Structured Output وتمرير الـ Schema الموضّحة في الصورة، وكانت النتائج ممتازة "مع بعض التعديلات"، يمكنك الاطلاع عليها من خلال المقطع نفسه:
https://www.youtube.com/watch?v=S3EPbM7Eh28
بدأت بعدها في المقطع الأول، وللأسف كان عدد الرموز (Tokens) أطول من السياق (Context) الذي يستطيع النموذج التعامل معه، فقررت استخدام الملف الصوتي بصيغة MP3 بدلا من المقطع المرئي لتقليل الرموز، ولكن النتائج كانت سيئة جدا.
فحمَّلت التفريغ النصي للمقطع بصيغة SRT من YouTube باستخدام موقع كهذا:
https://downsub.com
وغيّرت صيغة الملف إلى TXT لأن Gemini لا يدعم SRT ورفعت الملف مع نفس الجملة وتفعيل خيار المخرجات المنظمة بنفس الـ Schema:
Generate YouTube chapters for the given video in Arabic.
وكانت النتائج ممتازة "مع بعض التعديلات"، ويمكنك الاطلاع عليها من خلال المقطع نفسه:
https://www.youtube.com/watch?v=u3bqCpmoQ7g
لم يستغرق الأمر أكثر من 20 دقيقة، مع الأخذ بعين الاعتبار الوقت الضائع في استكشاف النموذج وتطويعه لهذه المهمة، أما في المستقبل فسيكون أسرع بإذن الله.
والسلام عليكم 👋🏻
❤6
السلام عليكم ورحمة الله وبركاته،
هذه نصيحة موجَّهة لكل من يستخدم الذكاء الاصطناعي في الأمور الشرعية. ولعلّي أكون مخطئًا فيها، ولكن هذا ما انتهى إليه علمي المتواضع.
الذكاء الاصطناعي ليس ذكاءً حقيقيًا، وإنما مجرد نموذج إحصائي يتنبّأ بالكلمة التالية بناءً على السياق السابق لها.
لذلك، لا تطلب منه أن يقدّم لك عشرة أحاديث في فضل صيام شهر رمضان، أو أن يأتيك بكل ما ذكره ابن القيّم في كتبه عن مسألة معيّنة، أو غير ذلك من الأمثلة التي تحتاج إلى بحث دقيق والرجوع إلى مصادر موثوقة لاستخراجها.
استخدم الذكاء الاصطناعي في تلخيص الكتب واستخلاص المعلومات منها بعد أن تزوده بالكتاب بصيغة PDF أو نحوها.
ولا تعتمد على قدرته على الاسترجاع من "ذاكرته" أو من المواد التي "تدرّب" عليها.
وهذا يشمل جميع النماذج من مختلف الشركات، بما فيها ChatGPT و Gemini و Claude وغيرها، ولا يشمل الحلول المتخصصة المبنية على قواعد بيانات شرعية يعتمد عليها النموذج في البحث والإجابة.
هذه نصيحة موجَّهة لكل من يستخدم الذكاء الاصطناعي في الأمور الشرعية. ولعلّي أكون مخطئًا فيها، ولكن هذا ما انتهى إليه علمي المتواضع.
الذكاء الاصطناعي ليس ذكاءً حقيقيًا، وإنما مجرد نموذج إحصائي يتنبّأ بالكلمة التالية بناءً على السياق السابق لها.
لذلك، لا تطلب منه أن يقدّم لك عشرة أحاديث في فضل صيام شهر رمضان، أو أن يأتيك بكل ما ذكره ابن القيّم في كتبه عن مسألة معيّنة، أو غير ذلك من الأمثلة التي تحتاج إلى بحث دقيق والرجوع إلى مصادر موثوقة لاستخراجها.
استخدم الذكاء الاصطناعي في تلخيص الكتب واستخلاص المعلومات منها بعد أن تزوده بالكتاب بصيغة PDF أو نحوها.
ولا تعتمد على قدرته على الاسترجاع من "ذاكرته" أو من المواد التي "تدرّب" عليها.
وهذا يشمل جميع النماذج من مختلف الشركات، بما فيها ChatGPT و Gemini و Claude وغيرها، ولا يشمل الحلول المتخصصة المبنية على قواعد بيانات شرعية يعتمد عليها النموذج في البحث والإجابة.
❤14👏1
نداء إلى المصممين 🎨
بدأت العمل على مشروع جديد منذ شهر تقريباً، وخلال عملي، بحثت طويلاً ولم أجد أيقونة بصيغة PNG أو SVG تُعبّر عن عملية "إخفاء/إظهار التشكيل".
نحتاج في المشاريع المُتعلّقة باللغة العربية إلى أيقونة لاستخدامها في زر "إخفاء/إظهار التشكيل" تشبه الأيقونات الموجودة في هذا الموقع: https://phlex-icons.fun
ويُفضّل أن تكون هذه الأيقونة بصيغة SVG.
فمن كان له خبرة وهِمَّة في تصميم شيء كهذا أكن له (وكل من يعمل على هذا النوع من المشاريع) من الشاكرين 😁
بدأت العمل على مشروع جديد منذ شهر تقريباً، وخلال عملي، بحثت طويلاً ولم أجد أيقونة بصيغة PNG أو SVG تُعبّر عن عملية "إخفاء/إظهار التشكيل".
نحتاج في المشاريع المُتعلّقة باللغة العربية إلى أيقونة لاستخدامها في زر "إخفاء/إظهار التشكيل" تشبه الأيقونات الموجودة في هذا الموقع: https://phlex-icons.fun
ويُفضّل أن تكون هذه الأيقونة بصيغة SVG.
فمن كان له خبرة وهِمَّة في تصميم شيء كهذا أكن له (وكل من يعمل على هذا النوع من المشاريع) من الشاكرين 😁
❤6
"إن كان لا بد من تكرار العمل أكثر من ثلاث مرات، فالأَولى أتمتته"
خلال السنوات الأخيرة أنشأت العديد من مشاريع Ruby on Rails الجانبية، منها ما يعمل إلى هذه اللحظة ومنها ما كان مجرد فكرة للتجربة.
في كل مرة كنت أبدأ في بناء المشروع من الصفر وأُضيف المكتبات التي أحتاجها وأُعدّها، وكان ذلك يستغرق وقتًا طويلًا وينتج عنه بعض الأخطاء أحيانا، وكان يتخلله كثير من النسخ واللصق.
إلى أن قررت في الأسابيع الماضية أن أُنشئ قالبًا يُمكن إعادة استخدامه في كافة مشاريع Ruby on Rails المستقبلية.
يتضمن القالب العديد من الاختيارات الشخصية، قد تتفق معها أو تختلف، لكنه قد يفيدك بمنحك فكرة جديدة أو نظرة على مكتبات لم تكن تعلم عنها من قبل.
يمكنك الاطلاع على القالب والبدء في استخدامه من هنا:
https://github.com/ieasybooks/ruby-on-rails-template
من ميزات القالب:
- بيئة تطوير جاهزة للاستخدام بكافة تفاصيلها
- التكامل مع محرك بحث Meilisearch
- أدوات لمراقبة أداء مشروعك مُعدّة مسبقا
- إمكانية بناء واجهات قابلة لإعادة الاستخدام
وهناك المزيد من التفاصيل يمكنك الاطلاع عليها من خلال الرابط أعلاه ⬆️
والسلام عليكم 👋🏻
خلال السنوات الأخيرة أنشأت العديد من مشاريع Ruby on Rails الجانبية، منها ما يعمل إلى هذه اللحظة ومنها ما كان مجرد فكرة للتجربة.
في كل مرة كنت أبدأ في بناء المشروع من الصفر وأُضيف المكتبات التي أحتاجها وأُعدّها، وكان ذلك يستغرق وقتًا طويلًا وينتج عنه بعض الأخطاء أحيانا، وكان يتخلله كثير من النسخ واللصق.
إلى أن قررت في الأسابيع الماضية أن أُنشئ قالبًا يُمكن إعادة استخدامه في كافة مشاريع Ruby on Rails المستقبلية.
يتضمن القالب العديد من الاختيارات الشخصية، قد تتفق معها أو تختلف، لكنه قد يفيدك بمنحك فكرة جديدة أو نظرة على مكتبات لم تكن تعلم عنها من قبل.
يمكنك الاطلاع على القالب والبدء في استخدامه من هنا:
https://github.com/ieasybooks/ruby-on-rails-template
من ميزات القالب:
- بيئة تطوير جاهزة للاستخدام بكافة تفاصيلها
- التكامل مع محرك بحث Meilisearch
- أدوات لمراقبة أداء مشروعك مُعدّة مسبقا
- إمكانية بناء واجهات قابلة لإعادة الاستخدام
وهناك المزيد من التفاصيل يمكنك الاطلاع عليها من خلال الرابط أعلاه ⬆️
والسلام عليكم 👋🏻
❤5
خلال العمل على أحد المشاريع في الشهرين الماضيين (لعله ينطلق خلال أيام بإذن الله) بدأت باستخدام أداة
مهمة الأداة مراقبة قاعدة البيانات الخاصة بالمشروع وتنبيهك إلى بعض الأمور التي من شأنها تحسين أداءها أو تقليل الأخطاء.
على سبيل المثال، نبهتني الأداة بالأمس أنني أستخدم
في Ruby on Rails، يمكنك تحديد العلاقات بين الجداول بطريقة سهلة. فمثلا، إذا كان في مشروعك جدول للمستخدمين وجدول لمنشوراتهم، يمكنك تعريف العلاقات كما هو موضّح في الصورة.
عند تعريف علاقة المستخدم بالمنشور نستخدم
في
الخيار
الخيار
أما
في حالتي، كنت أستخدم
ليس لدي شك أن لكل إطار عمل أو لغة برمجة أداة مشابهة لـ
رابط
https://github.com/gregnavis/active_record_doctor
والسلام عليكم 👋🏻
active_record_doctor الجديدة بالنسبة لي، والقديمة بالنسبة للكثيرين.مهمة الأداة مراقبة قاعدة البيانات الخاصة بالمشروع وتنبيهك إلى بعض الأمور التي من شأنها تحسين أداءها أو تقليل الأخطاء.
على سبيل المثال، نبهتني الأداة بالأمس أنني أستخدم
dependent: :destroy بدلا من dependent: :delete_all عند تعريف العلاقة بين جدولين في Ruby on Rails دون الحاجة لاستخدام destroy، ولكن ما هي هذه العلاقات؟في Ruby on Rails، يمكنك تحديد العلاقات بين الجداول بطريقة سهلة. فمثلا، إذا كان في مشروعك جدول للمستخدمين وجدول لمنشوراتهم، يمكنك تعريف العلاقات كما هو موضّح في الصورة.
عند تعريف علاقة المستخدم بالمنشور نستخدم
has_many، أي أن كل مستخدم له العديد من المنشورات، وعند تعريف علاقة المنشور بالمستخدم نستخدم belongs_to، أي أن كل منشور ينتمي إلى مستخدم واحد.في
has_many نستطيع تحديد الخيار dependent والذي بدوره يُحدد كيف سنتعامل مع المنشورات في حال حذف المستخدم.الخيار
destroy يحذف المنشورات في حال حذف المستخدم، وكذلك الخيار delete_all ولكن باختلاف بسيط.الخيار
destroy يحذف كل منشور على حدة ويتأكد من أن الـ Callbacks تعمل كما ينبغي (كأن تحذف المنشور من مُحرّك البحث بعد حذفه من قاعدة البيانات).أما
delete_all يتأكد من حذف المنشورات من قاعدة البيانات دفعة واحدة، دون تشغيل الـ Callbacks، وهي مفيدة في حال عدم وجود أي Callbacks تحتاج لتشغيلها.في حالتي، كنت أستخدم
destroy مع عدم وجود Callbacks، مما يسبب بُطأً في حذف بعض الصفوف، وهنا نبهتني active_record_doctor 😁ليس لدي شك أن لكل إطار عمل أو لغة برمجة أداة مشابهة لـ
active_record_doctor، فابحث عنها واستخدمها في مشاريعك، والأفضل، استخدمها في GitHub Actions (أو ما يشبهها) لتتأكد أن قاعدة بياناتك خالية من المشاكل البسيطة والقابلة للاكتشاف.رابط
active_record_doctor:https://github.com/gregnavis/active_record_doctor
والسلام عليكم 👋🏻
❤3
خان المُبرمجين (علي فاضل)
Photo
وعليكم السلام ورحمة الله وبركاته، أهلا بالسؤال من أخي سامح شخصيًّا 😎
قبل الحديث عن Rails نحتاج للحديث عن Ruby، فهي أساس هذا الإطار.
لغة Ruby من اللغات المظلومة إلى حد كبير، فمن ناحية السرعة هي بنفس أو أسرع من Python، ومن ناحية الكتابة فهي سهلة جدا وكأنك فعليا تقرأ الإنجليزية، ومن ناحية الدعم والمكتبات فقد تكون أفضل بكثير من اللغات الأخرى مثل PHP و JS، ولكنها للأسف لم تحظ بالدعم المجتمعي الكافي، ولسوء حظها كان مخترعها يابانيًّا 😁
فلا ضير من تعلم لغة جديدة تُعطيك نظرة مختلفة عن عالم البرمجة، وليفهم القارئ كلامي بشكل أفضل، أنصحه أن يطّلع على كتاب Metaprogramming Ruby لينظر الاختلاف في طريقة كتابة وتصميم هذه اللغة.
نأتي الآن إلى Rails، وهو أول (حسب علمي) وأفضل (من وجهة نظري) إطار عمل طبق بنية MVC بشكل سهل وسلس وجاء بالعديد من النقلات النوعية في مجال تطوير المواقع وتطبيقات الانترنت من أول صدوره وإلى الآن.
إطار عمل Rails ليس مجرد إطار عمل لبناء المواقع والتطبيقات، إنما هو فلسفة متكاملة تُوافق على التعامل معها بمجرد بدء استخدامك له، وصاحب هذه الفلسفة بالأساس هو DHH مُطوّر الإطار.
العديد من الخيارات والإعدادات موجودة مسبقا في الإطار ولا حاجة لإعادة النظر فيها في نسبة كبيرة من المشاريع، ومن هذه الاختيارات التي تحتاج للتعايش معها الاعتماد الكامل على الـ Server-Side Rendering عكس التيار و "التريند" الحالي.
كذلك من مميزات هذا الإطار أنه موجه لتمكين المطوّر الواحد والفريق الصغير من المطورين لتطوير المشاريع الضخمة والمحافظة على استمراريتها بداية من التطوير والاختبار وصولا إلى النشر والمتابعة، ومن أمثلة ذلك شركة 37Signals.
وهذا ما يجعلني أستخدمه في مشاريعي الجانبية بشكل أساسي، فأنا مطوّر واحد (تقريبا) وأستطيع تطوير ومتابعة العديد من المشاريع بسهولة ويسر (إلى حد كبير)، هذا دون أن نتحدث عن Hotwire وسهولة تعلم هذا الإطار على المبرمجين الجدد.
هل هذا يعني أن الإطار لا عيوب فيه؟ بالتأكيد لا! وأول عيب أنك تقبل فلسفة DHH في تطوير إطار العمل وقبول/رفض المميزات المقترحة من قبل المجتمع، وهو أمر مزعج أحيانا، ولكن غالب اختيارات هذا الشخص (DHH) في محلها وتدعم توجّه "إطار عمل الشخص الواحد".
نأتي لسوق العمل، ومن المفاجآت غير المفاجِئة أن الناس تظن أن الشركات العاملة بـ Rails شبه معدومة في منطقتنا، وهذا عكس الواقع.
الشركات إلى حد ما أقل من الشركات العاملة بأُطُر العمل واللغات الأخرى، ولكنها موجودة، منها ZenHR وجواكر في الأردن، ومنها جسر و Hunger Station في السعودية، وغيرها من الشركات التي لا يمكنني حصرها في هذا الرد.
وعن نفسي لا أُؤمن بتوظيف المُطوّر لأنه يستخدم إطار عمل محدد، إنما أُوظّف من لديه الخبرة البرمجية الكافية للتحرّك في فضاء لغات البرمجة والمكتبات المختلفة بسهولة، فكل هذه الأُطر تعتمد على قواعد متشابهة بشكل عام (Rails, Django, Laravel وغيرها).
فلا أرى ما يمنع المُطوّر من أن يتعلم Rails ويتعلم غيرها، مع التخصص والتعمّق في أحدها.
أخيرًا، قد يعترض معترض (وهذا هو الاعتراض الأكبر) أن Rails ليس صديقًا جيدًا لأُطر ومكتبات تطوير واجهات المستخدم مثل React وغيرها، وأنا لا أختلف مع هذا الأمر، ولكن ليس في سنة 2025.
فإن كان ولا بد، يمكنك استخدام React وغيرها مع Rails من خلال InertiaJS و TurboMount وغيرها من المكتبات، فلا حُجّة للمعترض من هذا الباب 😅
والسلام عليكم 👋🏻
قبل الحديث عن Rails نحتاج للحديث عن Ruby، فهي أساس هذا الإطار.
لغة Ruby من اللغات المظلومة إلى حد كبير، فمن ناحية السرعة هي بنفس أو أسرع من Python، ومن ناحية الكتابة فهي سهلة جدا وكأنك فعليا تقرأ الإنجليزية، ومن ناحية الدعم والمكتبات فقد تكون أفضل بكثير من اللغات الأخرى مثل PHP و JS، ولكنها للأسف لم تحظ بالدعم المجتمعي الكافي، ولسوء حظها كان مخترعها يابانيًّا 😁
فلا ضير من تعلم لغة جديدة تُعطيك نظرة مختلفة عن عالم البرمجة، وليفهم القارئ كلامي بشكل أفضل، أنصحه أن يطّلع على كتاب Metaprogramming Ruby لينظر الاختلاف في طريقة كتابة وتصميم هذه اللغة.
نأتي الآن إلى Rails، وهو أول (حسب علمي) وأفضل (من وجهة نظري) إطار عمل طبق بنية MVC بشكل سهل وسلس وجاء بالعديد من النقلات النوعية في مجال تطوير المواقع وتطبيقات الانترنت من أول صدوره وإلى الآن.
إطار عمل Rails ليس مجرد إطار عمل لبناء المواقع والتطبيقات، إنما هو فلسفة متكاملة تُوافق على التعامل معها بمجرد بدء استخدامك له، وصاحب هذه الفلسفة بالأساس هو DHH مُطوّر الإطار.
العديد من الخيارات والإعدادات موجودة مسبقا في الإطار ولا حاجة لإعادة النظر فيها في نسبة كبيرة من المشاريع، ومن هذه الاختيارات التي تحتاج للتعايش معها الاعتماد الكامل على الـ Server-Side Rendering عكس التيار و "التريند" الحالي.
كذلك من مميزات هذا الإطار أنه موجه لتمكين المطوّر الواحد والفريق الصغير من المطورين لتطوير المشاريع الضخمة والمحافظة على استمراريتها بداية من التطوير والاختبار وصولا إلى النشر والمتابعة، ومن أمثلة ذلك شركة 37Signals.
وهذا ما يجعلني أستخدمه في مشاريعي الجانبية بشكل أساسي، فأنا مطوّر واحد (تقريبا) وأستطيع تطوير ومتابعة العديد من المشاريع بسهولة ويسر (إلى حد كبير)، هذا دون أن نتحدث عن Hotwire وسهولة تعلم هذا الإطار على المبرمجين الجدد.
هل هذا يعني أن الإطار لا عيوب فيه؟ بالتأكيد لا! وأول عيب أنك تقبل فلسفة DHH في تطوير إطار العمل وقبول/رفض المميزات المقترحة من قبل المجتمع، وهو أمر مزعج أحيانا، ولكن غالب اختيارات هذا الشخص (DHH) في محلها وتدعم توجّه "إطار عمل الشخص الواحد".
نأتي لسوق العمل، ومن المفاجآت غير المفاجِئة أن الناس تظن أن الشركات العاملة بـ Rails شبه معدومة في منطقتنا، وهذا عكس الواقع.
الشركات إلى حد ما أقل من الشركات العاملة بأُطُر العمل واللغات الأخرى، ولكنها موجودة، منها ZenHR وجواكر في الأردن، ومنها جسر و Hunger Station في السعودية، وغيرها من الشركات التي لا يمكنني حصرها في هذا الرد.
وعن نفسي لا أُؤمن بتوظيف المُطوّر لأنه يستخدم إطار عمل محدد، إنما أُوظّف من لديه الخبرة البرمجية الكافية للتحرّك في فضاء لغات البرمجة والمكتبات المختلفة بسهولة، فكل هذه الأُطر تعتمد على قواعد متشابهة بشكل عام (Rails, Django, Laravel وغيرها).
فلا أرى ما يمنع المُطوّر من أن يتعلم Rails ويتعلم غيرها، مع التخصص والتعمّق في أحدها.
أخيرًا، قد يعترض معترض (وهذا هو الاعتراض الأكبر) أن Rails ليس صديقًا جيدًا لأُطر ومكتبات تطوير واجهات المستخدم مثل React وغيرها، وأنا لا أختلف مع هذا الأمر، ولكن ليس في سنة 2025.
فإن كان ولا بد، يمكنك استخدام React وغيرها مع Rails من خلال InertiaJS و TurboMount وغيرها من المكتبات، فلا حُجّة للمعترض من هذا الباب 😅
والسلام عليكم 👋🏻
❤7
This media is not supported in your browser
VIEW IN TELEGRAM
نعلن اليوم عن "الجامع" 🎉
مكتبتك الشاملة التي تحتوي على أكثر من 63 ألف كتاب، تضم أكثر من 37 مليون صفحة، وتغطي أكثر من 100 علم، في مكان واحد...
ابحث في عناوين ونصوص الكتب وحمّلها بصيغة PDF و DOCX و TXT
رابط الموقع:
https://aljam3.com
شارك الرابط مع أصدقاءك لتعم الفائدة 🤩
سأتحدث في منشور قادم عن كيف يمكن للجميع أن يساهموا في المشروع 🚀
مكتبتك الشاملة التي تحتوي على أكثر من 63 ألف كتاب، تضم أكثر من 37 مليون صفحة، وتغطي أكثر من 100 علم، في مكان واحد...
ابحث في عناوين ونصوص الكتب وحمّلها بصيغة PDF و DOCX و TXT
رابط الموقع:
https://aljam3.com
شارك الرابط مع أصدقاءك لتعم الفائدة 🤩
سأتحدث في منشور قادم عن كيف يمكن للجميع أن يساهموا في المشروع 🚀
❤13🔥3
سأكون اليوم موجودا في هذا الحدث المُقام من قبل شركة MilkStraw AI في الأردن، لمن يحب أن يحضر ونلتقي 🥳
تفاصيل الحدث موجودة في الرابط:
https://lu.ma/x7002gx5
تفاصيل الحدث موجودة في الرابط:
https://lu.ma/x7002gx5
❤6
وعليكم السلام ورحمة الله وبركاته،
المصادر كثيرة ولكن للأسف (وهذا من عيوب Rails) فإن أغلبها باللغة الإنجليزية وأن جزءًا كبيرًا منها ليس مجانيًّا (وهذا عيب ثانٍ).
المصدر الأول الذي أنصح به أي شخص هو موقع GoRails، فيه مسارات لبناء تطبيقات متكاملة ومقاطع منفصلة تشرح أمور مختلفة في إطار العمل:
https://gorails.com
الآن سأذكر قائمة المصادر التي أعرفها من باب الإلمام نوعا ما بالأمر.
أولا، دليل Ruby on Rails الرسمي وفيه مواد عالية الجودة تشمل إطار العمل كاملا:
https://guides.rubyonrails.org
أيضًا، يوجد مجموعة من المواقع التي تجمع المصادر الخاصة بـ Rails وهذه عيّنة منها:
- Hotewire.io: https://hotwire.io
- Ruby and Rails: https://rubyandrails.info
- RubyHunt: https://rubyhunt.dev
- Ruby Video: https://www.rubyvideo.dev
بعد ذلك لدينا العديد من القنوات على YouTube:
- GoRails: https://www.youtube.com/@GorailsTV
- DriftingRuby: https://www.youtube.com/@DriftingRuby
- RapidRuby: https://www.youtube.com/@rapid-ruby
- SupeRails: https://www.youtube.com/@SupeRails
- Deanin: https://www.youtube.com/@Deanin
- Joe Masilotti: https://www.youtube.com/@joemasilotti
- Jonathan Bennett: https://www.youtube.com/@jonbca
- Mix & Go: https://www.youtube.com/@mixandgo
أول 3 قنوات تُقدّم محتوى مدفوع على مواقعهم وهو ذو جودة عالية، خصوصا المقدّم من GoRails:
- GoRails: https://gorails.com
- DriftingRuby: https://www.driftingruby.com
- RapidRuby: https://rapidruby.com
يوجد كذلك مجموعة من المواقع التي تُقدّم العديد من المقالات المختصّة والمتقدّمة في Rails:
- HotRails: https://www.hotrails.dev
- EvilMartials: https://evilmartians.com/chronicles
- BootrAils: https://bootrails.com/blog
- HoneyBadger: https://www.honeybadger.io/blog
- RailsNotes: https://railsnotes.xyz/blog
وللمتعة، يوجد بعض الـ Podcasts الجيدة:
- On Rails: https://onrails.buzzsprout.com
- Remote Ruby: https://www.remoteruby.com
- The Ruby on Rails Podcast: https://www.therubyonrailspodcast.com
أخيرا، وكما ذكرت في منشورٍ سابق، حاول أن تتعلم من المجتمع من خلال الدخول في المجموعات المهتمة بـ Ruby on Rails على Discord مثلا:
- GoRails: https://discord.gg/NZbfhyEDs5
- Naming Things: https://discord.gg/jP8UrXfy
والسلام عليكم 👋🏻
المصادر كثيرة ولكن للأسف (وهذا من عيوب Rails) فإن أغلبها باللغة الإنجليزية وأن جزءًا كبيرًا منها ليس مجانيًّا (وهذا عيب ثانٍ).
المصدر الأول الذي أنصح به أي شخص هو موقع GoRails، فيه مسارات لبناء تطبيقات متكاملة ومقاطع منفصلة تشرح أمور مختلفة في إطار العمل:
https://gorails.com
الآن سأذكر قائمة المصادر التي أعرفها من باب الإلمام نوعا ما بالأمر.
أولا، دليل Ruby on Rails الرسمي وفيه مواد عالية الجودة تشمل إطار العمل كاملا:
https://guides.rubyonrails.org
أيضًا، يوجد مجموعة من المواقع التي تجمع المصادر الخاصة بـ Rails وهذه عيّنة منها:
- Hotewire.io: https://hotwire.io
- Ruby and Rails: https://rubyandrails.info
- RubyHunt: https://rubyhunt.dev
- Ruby Video: https://www.rubyvideo.dev
بعد ذلك لدينا العديد من القنوات على YouTube:
- GoRails: https://www.youtube.com/@GorailsTV
- DriftingRuby: https://www.youtube.com/@DriftingRuby
- RapidRuby: https://www.youtube.com/@rapid-ruby
- SupeRails: https://www.youtube.com/@SupeRails
- Deanin: https://www.youtube.com/@Deanin
- Joe Masilotti: https://www.youtube.com/@joemasilotti
- Jonathan Bennett: https://www.youtube.com/@jonbca
- Mix & Go: https://www.youtube.com/@mixandgo
أول 3 قنوات تُقدّم محتوى مدفوع على مواقعهم وهو ذو جودة عالية، خصوصا المقدّم من GoRails:
- GoRails: https://gorails.com
- DriftingRuby: https://www.driftingruby.com
- RapidRuby: https://rapidruby.com
يوجد كذلك مجموعة من المواقع التي تُقدّم العديد من المقالات المختصّة والمتقدّمة في Rails:
- HotRails: https://www.hotrails.dev
- EvilMartials: https://evilmartians.com/chronicles
- BootrAils: https://bootrails.com/blog
- HoneyBadger: https://www.honeybadger.io/blog
- RailsNotes: https://railsnotes.xyz/blog
وللمتعة، يوجد بعض الـ Podcasts الجيدة:
- On Rails: https://onrails.buzzsprout.com
- Remote Ruby: https://www.remoteruby.com
- The Ruby on Rails Podcast: https://www.therubyonrailspodcast.com
أخيرا، وكما ذكرت في منشورٍ سابق، حاول أن تتعلم من المجتمع من خلال الدخول في المجموعات المهتمة بـ Ruby on Rails على Discord مثلا:
- GoRails: https://discord.gg/NZbfhyEDs5
- Naming Things: https://discord.gg/jP8UrXfy
والسلام عليكم 👋🏻
❤3👍1
نشرت البارحة عن انطلاق موقع "الجامع" ولله الحمد كانت ردود الأفعال إيجابية في المجمل مع بعض التحفظات من بعض الإخوة جزاهم الله خيرا على حرصهم وبارك فيهم، واليوم أنشر لمن يهتم بالمساعدة في هذا المشروع.
بداية، المشروع مفتوح المصدر ويمكنكم الوصول إليه من خلال هذا المستودع:
https://github.com/ieasybooks/aljam3-web-app
وهذه الأدوات المستخدمة في بنائه:
- Ruby v3.4
- Ruby on Rails v8
- StimulusJS
- TailwindCSS v4
- Meilisearch
- PostgreSQL 17.5
ويوجد توثيق لكيفية تشغيل المشروع وبدء التطوير خطوة بخطوة باللغتين العربية والإنجليزية في ملف README.
لدينا أكثر من 30 مهمة نحتاج للمساعدة في تنفيذها، يمكنك الاطلاع عليها من هنا:
https://github.com/ieasybooks/aljam3-web-app/issues
المهام متباينة ويمكن لأي شخص مهما كان تخصصه أن يُساعد فيها، فقط تحتاج لقراءتها واختيار ما يتناسب مع تخصصك.
على سبيل المثال، توجد مهمة لا تحتاج لمبرمج للقيام بها، وتوجد مهمات تحتاج لشخص مهتم بالذكاء الاصطناعي، وتوجد مهمات أخرى تتطلب اهتماما بالتصميم وواجهات المستخدم.
حاول قراءة المهمات واطلب توضيحا في حال لم تفهم المطلوب وابدأ رحلتك في خدمة العلوم الشرعية 🚀
بداية، المشروع مفتوح المصدر ويمكنكم الوصول إليه من خلال هذا المستودع:
https://github.com/ieasybooks/aljam3-web-app
وهذه الأدوات المستخدمة في بنائه:
- Ruby v3.4
- Ruby on Rails v8
- StimulusJS
- TailwindCSS v4
- Meilisearch
- PostgreSQL 17.5
ويوجد توثيق لكيفية تشغيل المشروع وبدء التطوير خطوة بخطوة باللغتين العربية والإنجليزية في ملف README.
لدينا أكثر من 30 مهمة نحتاج للمساعدة في تنفيذها، يمكنك الاطلاع عليها من هنا:
https://github.com/ieasybooks/aljam3-web-app/issues
المهام متباينة ويمكن لأي شخص مهما كان تخصصه أن يُساعد فيها، فقط تحتاج لقراءتها واختيار ما يتناسب مع تخصصك.
على سبيل المثال، توجد مهمة لا تحتاج لمبرمج للقيام بها، وتوجد مهمات تحتاج لشخص مهتم بالذكاء الاصطناعي، وتوجد مهمات أخرى تتطلب اهتماما بالتصميم وواجهات المستخدم.
حاول قراءة المهمات واطلب توضيحا في حال لم تفهم المطلوب وابدأ رحلتك في خدمة العلوم الشرعية 🚀
❤10
إذا كنت مهتمًّا بالذكاء الاصطناعي وتريد المساهمة في مشروع دعوي، فدونك هذه المهمة التي نحتاج لمن يقوم بها على أكمل وجه:
https://github.com/ieasybooks/aljam3-web-app/issues/47
باختصار، لدينا في موقع الجامع قائمة طويلة بالمؤلفين، ولأن البيانات غير دقيقة من مصدرها، نحتاج لاكتشاف المؤلفين المكررين ودمجهم لتقليل عددهم وتسهيل البحث على المستخدمين.
تفاصيل المهمة موجودة في الرابط أعلاه، وإن احتجت إلى تفاصيل أكثر، يمكنك كتابة تعليق على المهمة نفسها أو على المنشور 😁
في انتظارك يا باغِيَ الخير 😎✌️
https://github.com/ieasybooks/aljam3-web-app/issues/47
باختصار، لدينا في موقع الجامع قائمة طويلة بالمؤلفين، ولأن البيانات غير دقيقة من مصدرها، نحتاج لاكتشاف المؤلفين المكررين ودمجهم لتقليل عددهم وتسهيل البحث على المستخدمين.
تفاصيل المهمة موجودة في الرابط أعلاه، وإن احتجت إلى تفاصيل أكثر، يمكنك كتابة تعليق على المهمة نفسها أو على المنشور 😁
في انتظارك يا باغِيَ الخير 😎✌️
❤13