خان المُبرمجين (علي فاضل) – Telegram
خان المُبرمجين (علي فاضل)
642 subscribers
113 photos
11 videos
132 links
قناة أنشر فيها ما أتعلمه خلال عملي على مشاريعي الخاصة 👀
Download Telegram
🔗 رباط التقنية
المجمع العربي للقنوات التقنية

جمعنا لك أفضل القنوات التقنية العربية في مكان واحد، لتجد كل المحتوى المفيد بسهولة وبلا عناء.

📌 تصفح القنوات عبر الموقع:
https://alzanad.github.io/ribat-altaqniyyah

📜 اشترك بالقائمة الموحدة على تليجرام:
https://news.1rj.ru/str/addlist/Gg-LFze5N89mMTJk

💬 للإنضمام راجع الشروط على الموقع:
@alzaanad

#رباط_التقنية
4
من أكبر فوائد الذكاء الاصطناعي داخل المحررات مثل Cursor وغيرها إمكانية كتابة أوامر سريعة على الـ Terminal.

مثلا من لحظات كتبت له:
Kill process holding port 3000

وكتب لي:
lsof -ti :3000 | xargs kill -9

كان ممكن يأخذ من وقتي 5 دقائق بحث 😂
8😁6
قدرتك على كتابك شيفرة برمجية بهذا الشكل تعتمد على عدة أمور:
- توفيق الله عز وجل
- مهارتك كمبرمج
- ليونة لغة البرمجة والمكتبات المستخدمة

لهذا نحب Ruby و Rails في MilkStraw AI ❤️
11
انتهيت من قراءة هذا المقال (أو تفريغ المحاضرة 🤓) وأنصح بقراءته وبشدة:
https://pluralistic.net/2025/12/05/pop-that-bubble

المفاهيم التي يتطرق لها وترتيب الأفكار جميل جدا، وكما قال "فرقع الفقاعة" 😆
6
أحدهم بدأ نشر مقال يوميا عن أسباب حبه للغة Ruby على هذا الموقع من بداية السنة:
https://lovingruby.com/reasons

المقالات قصيرة وممتعة، أنصح المهتمين بقرائتها ❤️
3
انضممت إلى فريق MilkStraw AI قبل حوالي 3 أشهر، ومنذ ذلك الحين عملت مع الفريق على العديد من المشاريع المؤثرة:

- أعدنا كتابة Microservice كانت تعمل بـ Python ودمجناها داخل مشروع Rails الخاص بنا (شيفرة برمجية واحدة 🫶)

- رفعنا نسبة الشيفرة البرمجية المُغطَّاة بالاختبارات إلى 100% 🚀 (مفيد جدا لوكلاء الذكاء الاصطناعي)

- نقلنا الـ Frontend من Hotwire (وهو الـ Stack الافتراضي في Rails) إلى InertiaJS مع VueJS (للأسف 🙄)

- أعدنا هيكلة مشروع Rails الخاص بنا ليتَّبِع معايير Rails القياسية ❤️ (نصيحة: لا تحاول محاربة التقنية التي تستخدمها)

- خفَّضنا تكلفة البنية التحتية 4 أضعاف 💰 وغيرها من الأمور الممتعة

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

بعد هذه الرحلة القصيرة، سعيد بإعلان إغلاق جولتنا الاستثمارية (Seed) 🎉 لتمويل المرحلة القادمة من مهمتنا: تقليل فواتير بنيتك التحتية وتحسين الوصول إلى الخدمات السحابية ومراقبتها.
14
من إيجابيات أدوات المراجعة بالذكاء الاصطناعي مثل Cursor BugBot و CodeRabbit وغيرها أن صاحب التعديل يتلقّى الكثير من التعليقات قبل إرسال التعديل إلى المُراجع البشري، مما يقلل النقاشات بين أعضاء الفريق.

نستخدم في MilkStraw AI أداة Cursor BugBot وشخصيًّا تلقيت 48 تعليقًا من الأداة في آخر 10 تعديلات أجريتها، بمتوسط 4 إلى 5 تعليقات لكل تعديل.

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

لا تتردد في إضافة مثل هذه الأدوات إلى مشروعك، ولكن النصيحة الأهم أن تستخدم أداة واحدة فقط، وجود أكثر من أداة يُصبح مزعجًا في الكثير من الأحيان.
7
نشر Martin Alderson (تعرّفت عليه منذ يومين ويبدو أن مقالاته جيدة) مقالًا بعنوان:
Which programming languages are most token-efficient?

والترجمة: أي لغات البرمجة هي الأكثر كفاءة من حيث الرموز (Tokens)؟

كان يقارن فيه بين لغات البرمجة المختلفة من ناحية استهلاكها للرموز (Tokens) عند استخدامها مع النماذج اللغوية ووكلاء البرمجة.

أختلف قليلًا في طريقة الاختبار واختيار الـ Tokenizer، ولكن من الأشياء اللطيفة أن لغة Ruby كانت من أكثر اللغات كفاءة باستخدامها لعدد قليل من الرموز (Tokens).

في المقابل كانت لغات مثل Rust و JavaScript من أكثر اللغات استهلاكًا للرموز مع تصدّر لغة C ذيل القائمة 😂

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

رابط المقال:
https://martinalderson.com/posts/which-programming-languages-are-most-token-efficient
6
وجدت هذا الموقع خلال تصفحي لمنصة X:
https://howbrowserswork.com

بسيط وخفيف يُقرأ في 10 دقائق يشرح كيف تعمل المتصفحات دون الدخول في الكثير من التفاصيل وبطريقة تفاعلية.
5🔥2
نصيحة لكتابة المحتوى باستخدام الذكاء الاصطناعي (Agentic Writing):

احتفظ بملفاتك (مثل .md) في مستودع Git، وأضفها إلى المستودع (Staging) قبل توجيه الأمر (Prompt) للوكيل البرمجي.

بهذا تضمن آلية استرجاع (Rollback) كاملة بنسبة 100%، وتستفيد من ميزة مراجعة الفوارق (Diffs) داخل المحرر البرمجي الذي تستخدمه، بدلاً من التوسل للنماذج اللغوية للعودة للنسخة السابقة أو إضاعة وقتك في التدقيق اليدوي.
5
عندي الكثير من الفروع المحلية (Local Branches) وأردت تنظيف المستودع (Repository) بحذف كل الفروع غير الموجودة في المستودع على GitHub

فطلبت من Gemini كتابة أمر يفعل ذلك وقد كتب 👇

حذف من عندي 42 فرع بعد تنفيذه، وحذفت يدويا الفروع التي لا أحتاجها (تجارب فاشلة واختبارات لا معنى لها 😂)

الأمر:

git fetch -p && git branch -vv | \
grep ': gone]' | \
awk '{print $1}' | \
xargs git branch -D
1😁1
وجدت موقع https://git-wrapped.com صدفة وجربته، ما توقعت هذه النتيجة 😂
5
خان المُبرمجين (علي فاضل)
Photo
مشهد تمثيلي:
- علي يعمل على الحاسوب
- علي قرر الخروج من المنزل
- تصل إشعارات على تطبيقات مثل WhatsApp و Telegram
- يُصدر الحاسوب صوتًا مرتفعًا
- تستيقظ ابنتي 😀

تكرر هذا المشهد كثيرًا، ففكرت في إنشاء برنامج بسيط لأنظمة MacOS مهمته ببساطة:
1. مراقبة نشاط مدخلات الحاسوب (الفأرة ولوحة المفاتيح)
2. كتم صوت الحاسوب إذا توقف النشاط لأكثر من س من الدقائق (5 دقائق مثلا)
3. كتم صوت الحاسوب عند إغلاقه

ليس لدي أي خبرة في إنشاء تطبيقات سطح المكتب لأنظمة MacOS وليس لدي أي تجارب سابقة مع لغة Swift.

شغّلت Claude Code مع نموذج Opus 4.5 وفعّلت النظام الخطير 😈 باستخدام:
--allow-dangerously-skip-permissions

ثم أعطيته التعليمات الموجودة في الصورة 👆

عمِل لـ 15 دقيقة تقريبا وانتهى، شغّلت البرنامج، وجدت خطأً، أرسلته لـ Claude فأصلحه، شغّلت البرنامج مرة ثانية، وجدت خطأً، أرسلته لـ Claude فأصلحه، شغّلت البرنامج وكانت الصدمة 😂

البرنامج يعمل بدون أي مشاكل، يتتبع نشاط المدخلات بشكل لحظي ويكتم صوت الحاسوب كما هو مطلوب.

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

اطّلعت سريعا على الشيفرة البرمجية وأضفت GitHub Action ليُنشئ ملف dmg للبرنامج عند كل نسخة جديدة ورفعته، يمكنك الاطلاع على الشيفرة البرمجية من هنا:
https://github.com/AliOsm/AutoMute

أو تحميل نسخة من البرنامج من هنا:
https://github.com/AliOsm/AutoMute/releases

سأنشر في منشور قادم بعض الملاحظات التي لاحظتها وأنا أعمل على هذا المشروع السريع (جدا)

والسلام عليكم 👋🏻
🔥111👏1
بدأ إطار عمل Ruby on Rails سنة 2004، وفي قول آخر سنة 2002، وهذه التحديثات التي حصلت في الإصدار الأخير 8.1.2:
https://github.com/rails/rails/releases/tag/v8.1.2

أدخل على الرابط وابحث عن كلمة Fix، ستجد أنها تكررت أكثر من 20 مرة.

هذه مكتبة يعمل على تطويرها مئات المبرمجين على مدار أكثر من 20 سنة، ولا تزال تُصلح الأخطاء في كل إصدار.

أظن أن الرسالة وصلت 😁
4😁4
خان المُبرمجين (علي فاضل)
Photo
قبل 10 سنوات كان لديّ موقع اسمه Ruby3arabi لشرح لغة Ruby باللغة العربية (اسم على مُسمًّى)، ثم هجرته لأسباب عديدة.

نهاية الأسبوع الماضي قررت إعادة بنائه باستخدام Ralph مع قاعدتين بسيطتين: لن ألمس الشيفرة البرمجية، ولن أتخذ أي قرارات.

بدأت بسؤال Claude (من المتصفح) عن المواضيع التي يجب تغطيتها في موقع لتعليم Ruby، ثم حوّلت إجاباته إلى PRD مفصّل باستخدام PRD Skill من Ralph، ثم إلى 58 مهمة باستخدام Ralph Skill.

يمكنك قراءة المحادثة كاملة مع Claude من هنا:
https://claude.ai/share/20d07a1b-c06e-4633-9862-4ae83718a4a8
ويمكنك قراءة ملفات الـ Prompts والـ PRD والمهمات من مستودع روبي عربي الموجود في الأسفل.

شغّلت Ralph loop وذهبت للعمل. بعد 7 ساعات متواصلة كان الموقع جاهزًا بتصميم جميل ومحتوى متكامل ولغة Ruby تعمل في المتصفح بفضل Ruby WASM!

راجعت النتيجة ووجدت 20 تحسينًا للواجهة، فكررت العملية وشغّلت Ralph loop مرة أخرى قبل النوم.

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

الآن الموقع جاهز على https://ruby3araby.com وسأركّز على المحتوى. أريده أن يكون المصدر الأساسي لتعلّم Ruby باللغة العربية.

10 سنوات بين النسختين، 7 ساعات لإعادة البناء، 0 أسطر كتبتها بنفسي.

مستودع Ralph:
https://github.com/snarktank/ralph
مستودع روبي عربي:
https://github.com/AliOsm/ruby3araby

والسؤال: هل تعتقدون أننا وصلنا لمرحلة "المبرمج المدير" الذي يوجه الوكلاء الذكيين فقط؟ 🤖

والسلام عليكم 👋🏻
14
من الأشياء المُفرحة:
أن تطلب من وكيل البرمجة إنجاز مهمة ثم تكتشف خطأ في الشيفرة التي كتبها 🤓
7
تخيّل أنك تستطيع اختبار موقعكم من خلال كتابة شيفرة برمجية نظيفة ولطيفة كالشيفرة المُوضّحة في الصورة 😍

هذه ما تُسمّى بـ System Tests في Ruby on Rails وهي تستخدم مكتبة Capybara.

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

هذه الاختبارات بطيئة غالبا مقارنة بالـ Unit Tests، لذلك غالبا نستخدم عدد قليل منها لاختبار الأجزاء المهمة جدا بالنسبة للمستخدم والتي نحتاج لضمان بقاءها تعمل بعد أي تعديل.
4