عندي الكثير من الفروع المحلية (Local Branches) وأردت تنظيف المستودع (Repository) بحذف كل الفروع غير الموجودة في المستودع على GitHub
فطلبت من Gemini كتابة أمر يفعل ذلك وقد كتب 👇
حذف من عندي 42 فرع بعد تنفيذه، وحذفت يدويا الفروع التي لا أحتاجها (تجارب فاشلة واختبارات لا معنى لها 😂)
الأمر:
فطلبت من Gemini كتابة أمر يفعل ذلك وقد كتب 👇
حذف من عندي 42 فرع بعد تنفيذه، وحذفت يدويا الفروع التي لا أحتاجها (تجارب فاشلة واختبارات لا معنى لها 😂)
الأمر:
git fetch -p && git branch -vv | \
grep ': gone]' | \
awk '{print $1}' | \
xargs git branch -D
❤1😁1
خان المُبرمجين (علي فاضل)
Photo
مشهد تمثيلي:
- علي يعمل على الحاسوب
- علي قرر الخروج من المنزل
- تصل إشعارات على تطبيقات مثل WhatsApp و Telegram
- يُصدر الحاسوب صوتًا مرتفعًا
- تستيقظ ابنتي 😀
تكرر هذا المشهد كثيرًا، ففكرت في إنشاء برنامج بسيط لأنظمة MacOS مهمته ببساطة:
1. مراقبة نشاط مدخلات الحاسوب (الفأرة ولوحة المفاتيح)
2. كتم صوت الحاسوب إذا توقف النشاط لأكثر من س من الدقائق (5 دقائق مثلا)
3. كتم صوت الحاسوب عند إغلاقه
ليس لدي أي خبرة في إنشاء تطبيقات سطح المكتب لأنظمة MacOS وليس لدي أي تجارب سابقة مع لغة Swift.
شغّلت Claude Code مع نموذج Opus 4.5 وفعّلت النظام الخطير 😈 باستخدام:
ثم أعطيته التعليمات الموجودة في الصورة 👆
عمِل لـ 15 دقيقة تقريبا وانتهى، شغّلت البرنامج، وجدت خطأً، أرسلته لـ Claude فأصلحه، شغّلت البرنامج مرة ثانية، وجدت خطأً، أرسلته لـ Claude فأصلحه، شغّلت البرنامج وكانت الصدمة 😂
البرنامج يعمل بدون أي مشاكل، يتتبع نشاط المدخلات بشكل لحظي ويكتم صوت الحاسوب كما هو مطلوب.
والأدهى من ذلك، أن النموذج أضاف ميزة أخرى من بنات أفكاره (إن كان يُفكّر) وهي إلغاء الكتم عند اكتشاف أي نشاط على مدخلات الحاسوب 🙂 لم أطلب منه هذه الميزة، ولكنها ممتازة.
اطّلعت سريعا على الشيفرة البرمجية وأضفت GitHub Action ليُنشئ ملف dmg للبرنامج عند كل نسخة جديدة ورفعته، يمكنك الاطلاع على الشيفرة البرمجية من هنا:
https://github.com/AliOsm/AutoMute
أو تحميل نسخة من البرنامج من هنا:
https://github.com/AliOsm/AutoMute/releases
سأنشر في منشور قادم بعض الملاحظات التي لاحظتها وأنا أعمل على هذا المشروع السريع (جدا)
والسلام عليكم 👋🏻
- علي يعمل على الحاسوب
- علي قرر الخروج من المنزل
- تصل إشعارات على تطبيقات مثل 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
سأنشر في منشور قادم بعض الملاحظات التي لاحظتها وأنا أعمل على هذا المشروع السريع (جدا)
والسلام عليكم 👋🏻
🔥11❤1👏1
بدأ إطار عمل Ruby on Rails سنة 2004، وفي قول آخر سنة 2002، وهذه التحديثات التي حصلت في الإصدار الأخير 8.1.2:
https://github.com/rails/rails/releases/tag/v8.1.2
أدخل على الرابط وابحث عن كلمة Fix، ستجد أنها تكررت أكثر من 20 مرة.
هذه مكتبة يعمل على تطويرها مئات المبرمجين على مدار أكثر من 20 سنة، ولا تزال تُصلح الأخطاء في كل إصدار.
أظن أن الرسالة وصلت 😁
https://github.com/rails/rails/releases/tag/v8.1.2
أدخل على الرابط وابحث عن كلمة Fix، ستجد أنها تكررت أكثر من 20 مرة.
هذه مكتبة يعمل على تطويرها مئات المبرمجين على مدار أكثر من 20 سنة، ولا تزال تُصلح الأخطاء في كل إصدار.
أظن أن الرسالة وصلت 😁
❤4😁4
خان المُبرمجين (علي فاضل)
مشهد تمثيلي: - علي يعمل على الحاسوب - علي قرر الخروج من المنزل - تصل إشعارات على تطبيقات مثل WhatsApp و Telegram - يُصدر الحاسوب صوتًا مرتفعًا - تستيقظ ابنتي 😀 تكرر هذا المشهد كثيرًا، ففكرت في إنشاء برنامج بسيط لأنظمة MacOS مهمته ببساطة: 1. مراقبة نشاط مدخلات…
تكلفة إنشاء البرنامج (على فرض استخدامك لنموذج Opus 4.5 من خلال الـ API) تقريبيًّا هي $14
المحادثة كاملة كان فيها قرابة الـ 16 مليون رمز (Token) أكثر من 90% منها كانت Cached
المحادثة كاملة كان فيها قرابة الـ 16 مليون رمز (Token) أكثر من 90% منها كانت Cached
❤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
والسؤال: هل تعتقدون أننا وصلنا لمرحلة "المبرمج المدير" الذي يوجه الوكلاء الذكيين فقط؟ 🤖
والسلام عليكم 👋🏻
نهاية الأسبوع الماضي قررت إعادة بنائه باستخدام 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، لذلك غالبا نستخدم عدد قليل منها لاختبار الأجزاء المهمة جدا بالنسبة للمستخدم والتي نحتاج لضمان بقاءها تعمل بعد أي تعديل.
هذه ما تُسمّى بـ System Tests في Ruby on Rails وهي تستخدم مكتبة Capybara.
هذا النوع من الاختبارات يُشغّل الموقع على مُتصفّح حقيقي وينتقل بين الصفحات ويضغط الأزرار ويملأ مربعات الإدخال ويتأكد من أن أجزاء الموقع المختلفة تعمل كما هو متوقع.
هذه الاختبارات بطيئة غالبا مقارنة بالـ Unit Tests، لذلك غالبا نستخدم عدد قليل منها لاختبار الأجزاء المهمة جدا بالنسبة للمستخدم والتي نحتاج لضمان بقاءها تعمل بعد أي تعديل.
❤4
عندما بدأت التدرّب للمشاركة في مسابقات البرمجة التنافسية أيام الجامعة سنة 2016، رتّب لنا المدرّب ذكره الله بالخير مسابقة ومن قواعد هذه المسابقات عامة أنك تستطيع إدخال كتب أو شيفرات برمجية مكتوبة أو مطبوعة على الورق.
جلست ليلة المسابقة وكتبت تفاصيل هياكل البيانات التي تعلمتها خلال التدريب وكانت كلها جديدة بالنسبة لي:
Vector
Stack
Queue
Map
Set
Priority Queue
وكتبت خوارزمية استخراج الأعداد الأولية وحتى كيف أطبع الأرقام العشرية بعدد أرقام محدد بعد الفاصلة.
كل ذلك كان بلغة C++
وجدت اليوم الأوراق التي كتبت عليها هذه الشيفرات من 10 سنوات تقريبا، فأحببت مشاركتها معكم، فلها معي ذكريات طويلة من حل المسائل وتعلم الخوارزميات وهياكل البيانات والتقنيات المختلفة.
وعلى غرار سؤال "كيف ترى قيادتي؟" المنتشر على الشاحنات في الأردن، "كيف ترى خطي؟" 😂
جلست ليلة المسابقة وكتبت تفاصيل هياكل البيانات التي تعلمتها خلال التدريب وكانت كلها جديدة بالنسبة لي:
Vector
Stack
Queue
Map
Set
Priority Queue
وكتبت خوارزمية استخراج الأعداد الأولية وحتى كيف أطبع الأرقام العشرية بعدد أرقام محدد بعد الفاصلة.
كل ذلك كان بلغة C++
وجدت اليوم الأوراق التي كتبت عليها هذه الشيفرات من 10 سنوات تقريبا، فأحببت مشاركتها معكم، فلها معي ذكريات طويلة من حل المسائل وتعلم الخوارزميات وهياكل البيانات والتقنيات المختلفة.
وعلى غرار سؤال "كيف ترى قيادتي؟" المنتشر على الشاحنات في الأردن، "كيف ترى خطي؟" 😂
❤5😁4👍1
Media is too big
VIEW IN TELEGRAM
تعرّفت البارحة على الـ Mutation Testing، وأنا مُعجب جدًّا بالفكرة 🤩
في هذا الفيديو أشرح ما تعلمته من البارحة إلى اليوم 😂 وكيف طبَّقته في الشركة
الفيديو على YouTube:
https://www.youtube.com/watch?v=Bb4iWHFSun4
في هذا الفيديو أشرح ما تعلمته من البارحة إلى اليوم 😂 وكيف طبَّقته في الشركة
الفيديو على YouTube:
https://www.youtube.com/watch?v=Bb4iWHFSun4
❤7
اليوم ولأول مرة أثق في Claude Code وأُسلِّمه مهمة تتضمن تعقيدًا برمجيًّا وغموضًا في المتطلبات أنا شخصيًّا لم أكن مُلِمًّا بها، وفاجأني وأنجز المهمة 😁
❤3
خان المُبرمجين (علي فاضل)
Photo
سنة 2019 كنت أبحث عن فرصة تدريب جامعي. قدَّمت للكثير من الشركات وقابلت في أكثر من واحدة وكانت دائما المشكلة في الجنسية. أنا ليبي وأدرس في الأردن والشركات تستصعب استصدار الأوراق المطلوبة سواء لتدريب أو توظيف الأجانب. كانت فترة صعبة ولكن ولله الحمد توفقت لفرصة تدريبية في شركة Samsung بعد ترشيح من مُشرف مشروع تخرُّجي وأستاذي بارك الله فيه وفي علمه وعمله، واجتيازي للمقابلة.
عزيزي الطالب، أتفهَّم شعورك أثناء مرحلة البحث عن فرصة للتدريب الجامعي، وما ذكرته في الأعلى يُثبت ذلك، ولكن أن تُرسل أنت وأصدقائك نفس البريد الإلكتروني (المكتوب باستخدام أدوات الذكاء الاصطناعي غالبًا) بحثًا عن فرصة تدريبية وتذكر في بداية البريد: "Dear Sir/Madam" فهذا يعني أنك لا تدري مع من تتكلم ولا تُخاطب الشخص بما يُريد أن يسمعه منك وعنك.
الصورة المُرفقة وصلتني على بريدي الشخصي من 3 أيام تقريبًا وترددت جدًّا في نشر هذا المنشور، ويعلم الله أن هدفي هو النصح للطلبة فقد كنت واحدًا منهم في يوم من الأيام. قال رسول الله صلى الله عليه وسلم: "بِحسْبِ امْرِئٍ من الشَّرِّ أنْ يَحقِرَ أخاهُ المسلِمَ" - صححه الألباني.
فاهتموا بكتابة بريد مخصص للشخص المُرسل له بارك الله فيكم، واهتموا باختصار سيرتكم الذاتية وذكر المهم فيها وما يتعلَّق بالوظيفة التي تطلبونها، وأخيرًا اهتموا بحساباتكم على GitHub (أو غيره) وعلى LinkedIn و X وغيرها وانشروا المشاريع التي تعملون على تنفيذها والمهارات التي تتعلمونها. فما فائدة حساب GitHub أو LinkedIn (أو غيره) فارغ لا يخبرني عنك شيئًا؟
كونوا مبدعين في تواصلكم وتسويق خبراتكم وإظهارها، فالعادي كثير والشركات المميزة تبحث عن الاستثنائيين.
هذا والله أعلى وأعلم، والسلام عليكم 👋🏻
عزيزي الطالب، أتفهَّم شعورك أثناء مرحلة البحث عن فرصة للتدريب الجامعي، وما ذكرته في الأعلى يُثبت ذلك، ولكن أن تُرسل أنت وأصدقائك نفس البريد الإلكتروني (المكتوب باستخدام أدوات الذكاء الاصطناعي غالبًا) بحثًا عن فرصة تدريبية وتذكر في بداية البريد: "Dear Sir/Madam" فهذا يعني أنك لا تدري مع من تتكلم ولا تُخاطب الشخص بما يُريد أن يسمعه منك وعنك.
الصورة المُرفقة وصلتني على بريدي الشخصي من 3 أيام تقريبًا وترددت جدًّا في نشر هذا المنشور، ويعلم الله أن هدفي هو النصح للطلبة فقد كنت واحدًا منهم في يوم من الأيام. قال رسول الله صلى الله عليه وسلم: "بِحسْبِ امْرِئٍ من الشَّرِّ أنْ يَحقِرَ أخاهُ المسلِمَ" - صححه الألباني.
فاهتموا بكتابة بريد مخصص للشخص المُرسل له بارك الله فيكم، واهتموا باختصار سيرتكم الذاتية وذكر المهم فيها وما يتعلَّق بالوظيفة التي تطلبونها، وأخيرًا اهتموا بحساباتكم على GitHub (أو غيره) وعلى LinkedIn و X وغيرها وانشروا المشاريع التي تعملون على تنفيذها والمهارات التي تتعلمونها. فما فائدة حساب GitHub أو LinkedIn (أو غيره) فارغ لا يخبرني عنك شيئًا؟
كونوا مبدعين في تواصلكم وتسويق خبراتكم وإظهارها، فالعادي كثير والشركات المميزة تبحث عن الاستثنائيين.
هذا والله أعلى وأعلم، والسلام عليكم 👋🏻
❤14