هذا هو نوع المهندسين الذي سنفتقده خلال السنوات القليلة القادمة 😁
https://www.youtube.com/watch?v=ZANFhJ9HYsM
https://www.youtube.com/watch?v=ZANFhJ9HYsM
YouTube
RollerCoaster Tycoon Optimizations are Insane
PlanetScale is the fastest and most reliable way to run Postgres and MySQL in the cloud. Combined with sharding, branching, and Query Insights, you'll spend less time fighting your database and more time shipping. Try it at https://trm.sh/planetscale
Big…
Big…
❤2
نشرت منذ فترة عن مستودع superpowers و superpowers-ruby
بعد استخدامهم مع Codex وجدت أن الأداء أسوأ، لذلك لا أنصح باستخدام هذه المستودعات مع Codex، أما مع Claude Code فالوضع ممتاز.
وكما قال أحد الأصدقاء عن Codex وأنا هنا أقتبس كلامه:
codex doesn't need anything almost
very very concise instructions only
بعد استخدامهم مع Codex وجدت أن الأداء أسوأ، لذلك لا أنصح باستخدام هذه المستودعات مع Codex، أما مع Claude Code فالوضع ممتاز.
وكما قال أحد الأصدقاء عن Codex وأنا هنا أقتبس كلامه:
codex doesn't need anything almost
very very concise instructions only
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
من 2,648 إلى 774 سطرًا 😅
بدأت إضافة ميزة باستخدام Codex على مشروع جانبي أعمل عليه، فأنهى العمل ولم أستطع مراجعة ما كتب خلال الأسبوع الماضي، فراجعته البارحة ووجدت أنه كتب 2,648 سطرًا!
أنا أعلم أن هذه الميزة لا تحتاج كل هذه التعديلات، ففتحت Claude Code وطلبت منه مراجعة المكتوب لأنني أرى أنه معقد بدون سبب واضح.
راجَع المكتوب وكالعادة قال: "فعلًا! هذه التعديلات معقدة جدًّا مقارنة بالمطلوب".
طلبت منه تحسين المكتوب ووصلنا إلى نفس النتيجة باستخدام 774 سطرًا فقط..
الآن أستطيع مراجعة الشيفرة البرمجية بنفسي للتأكد من أن التعديلات صحيحة 🤓
راجِع ما تكتبه هذه الأدوات يا صديقي، رجاءًا 🙂
والسلام عليكم 👋🏻
ملاحظة: الفيديو يعرض مشكلة مزعجة في واجهة LinkedIn 😪
بدأت إضافة ميزة باستخدام Codex على مشروع جانبي أعمل عليه، فأنهى العمل ولم أستطع مراجعة ما كتب خلال الأسبوع الماضي، فراجعته البارحة ووجدت أنه كتب 2,648 سطرًا!
أنا أعلم أن هذه الميزة لا تحتاج كل هذه التعديلات، ففتحت Claude Code وطلبت منه مراجعة المكتوب لأنني أرى أنه معقد بدون سبب واضح.
راجَع المكتوب وكالعادة قال: "فعلًا! هذه التعديلات معقدة جدًّا مقارنة بالمطلوب".
طلبت منه تحسين المكتوب ووصلنا إلى نفس النتيجة باستخدام 774 سطرًا فقط..
الآن أستطيع مراجعة الشيفرة البرمجية بنفسي للتأكد من أن التعديلات صحيحة 🤓
راجِع ما تكتبه هذه الأدوات يا صديقي، رجاءًا 🙂
والسلام عليكم 👋🏻
ملاحظة: الفيديو يعرض مشكلة مزعجة في واجهة LinkedIn 😪
❤4
خان المُبرمجين (علي فاضل)
Photo
إعادة تشغيل للخادم تسببت في إيقاف الخدمة لساعات..
اضطررت البارحة لتحديث خادم منصة باحث ومن خطوات التحديث كانت إعادة تشغيل الخادم.
أعلم أن إعادة التشغيل تُساوي خروج المنصة عن الخدمة لبعض الوقت، دقائق في أسوأ الأحوال، أو هكذا كنت أظن 🙂
حدَّثت الخادم وأعدت تشغيله ثم حاولت الدخول إليه باستخدام ssh كأي مُبرمج بريئ، وكان الخادم بطيئًا جدًّا جدًّا.
بدأت البحث في Docker Containers الموجودة على الخادم - لأن كل الخدمات الموجودة عليه تستخدم Docker - فلم أجد شيئًا غريبًا.
فتحت الـ Logs في الـ Docker Container الخاصة بالمنصة، فوجدت أنها لم تستطع الاتصال بقاعدة البيانات عند التشغيل فتوقف خادم الـ Web الخاص بالمنصة ولكن هذا متوقع بعد إعادة التشغيل، فليس هو سبب البطئ.
فتحت htop فلم أجد شيئًا غريبًا، إلا عندما رتَّبت الـ Processes بناءً على استهلاك الذاكرة، لأجد كلمة Qdrant في الواجهة 😂
تذكَّرت أن باحث تدعم البحث بالمعنى (Semantic Search) في الأحاديث وكتب المكتبة الشاملة باستخدام Qdrant وهذا يعني أن Qdrant ستحتاج إلى فتح ملفات الـ Indexes مرة ثانية ونقلها إلى الذاكرة (أو جزء منها على الأقل).
فتحت الـ Logs في الـ Docker Container الخاصة بـ Qdrant لأجد هذا الخطأ المستفز:
Too many open files
لم يحدث هذا الخطأ سابقًا لأني لم أُعِد تشغيل Qdrant أبدًا من قبل وكل الـ Indexes بُنِيت بالتدريج، أما الآن فهي تُحاول فتح كل ملفات الـ Indexes دفعة واحدة فلا تستطيع.
كتبت ulimit -a لأجد أن عدد الـ File Descriptors المسموح به داخل الـ Docker Container هو 1024 فقط.
أوقفت الـ Docker Container الخاصة بـ Qdrant، ثم أضفت الخيار الموجود في الصورة إلى الـ Options الخاصة بـ Qdrant في Kamal (أداة النشر التي أستخدمها)، وأعدت تشغيل الخدمة مرة ثانية.
استغرق الأمر ساعة تقريبًا، ولكن عاد كل شيء للعمل بعد ذلك ولله الحمد 🎉
ليست هذه المرة الأولى التي تسبب فيها الـ File Descriptors مشاكل لي، بل كانت المرة الثانية خلال أسبوع واحد، هداها الله 😁
والسلام عليكم 👋🏻
اضطررت البارحة لتحديث خادم منصة باحث ومن خطوات التحديث كانت إعادة تشغيل الخادم.
أعلم أن إعادة التشغيل تُساوي خروج المنصة عن الخدمة لبعض الوقت، دقائق في أسوأ الأحوال، أو هكذا كنت أظن 🙂
حدَّثت الخادم وأعدت تشغيله ثم حاولت الدخول إليه باستخدام ssh كأي مُبرمج بريئ، وكان الخادم بطيئًا جدًّا جدًّا.
بدأت البحث في Docker Containers الموجودة على الخادم - لأن كل الخدمات الموجودة عليه تستخدم Docker - فلم أجد شيئًا غريبًا.
فتحت الـ Logs في الـ Docker Container الخاصة بالمنصة، فوجدت أنها لم تستطع الاتصال بقاعدة البيانات عند التشغيل فتوقف خادم الـ Web الخاص بالمنصة ولكن هذا متوقع بعد إعادة التشغيل، فليس هو سبب البطئ.
فتحت htop فلم أجد شيئًا غريبًا، إلا عندما رتَّبت الـ Processes بناءً على استهلاك الذاكرة، لأجد كلمة Qdrant في الواجهة 😂
تذكَّرت أن باحث تدعم البحث بالمعنى (Semantic Search) في الأحاديث وكتب المكتبة الشاملة باستخدام Qdrant وهذا يعني أن Qdrant ستحتاج إلى فتح ملفات الـ Indexes مرة ثانية ونقلها إلى الذاكرة (أو جزء منها على الأقل).
فتحت الـ Logs في الـ Docker Container الخاصة بـ Qdrant لأجد هذا الخطأ المستفز:
Too many open files
لم يحدث هذا الخطأ سابقًا لأني لم أُعِد تشغيل Qdrant أبدًا من قبل وكل الـ Indexes بُنِيت بالتدريج، أما الآن فهي تُحاول فتح كل ملفات الـ Indexes دفعة واحدة فلا تستطيع.
كتبت ulimit -a لأجد أن عدد الـ File Descriptors المسموح به داخل الـ Docker Container هو 1024 فقط.
أوقفت الـ Docker Container الخاصة بـ Qdrant، ثم أضفت الخيار الموجود في الصورة إلى الـ Options الخاصة بـ Qdrant في Kamal (أداة النشر التي أستخدمها)، وأعدت تشغيل الخدمة مرة ثانية.
استغرق الأمر ساعة تقريبًا، ولكن عاد كل شيء للعمل بعد ذلك ولله الحمد 🎉
ليست هذه المرة الأولى التي تسبب فيها الـ File Descriptors مشاكل لي، بل كانت المرة الثانية خلال أسبوع واحد، هداها الله 😁
والسلام عليكم 👋🏻
❤7😁1
قررت اليوم إيقاف كل تطبيقات سطح المكتب (Linear - Slack - Discord - وغيرها) واستبدالها بالمتصفح
استهلاك الذاكرة من هذه التطبيقات غير مفهوم للأمانة، على الأقل المتصفح سيستهلك الذاكرة منفردًا الآن 😂
استهلاك الذاكرة من هذه التطبيقات غير مفهوم للأمانة، على الأقل المتصفح سيستهلك الذاكرة منفردًا الآن 😂
🤣13❤1
من ميزات إطار عمل Ruby on Rails (والمشتقة غالبًا من لغة Ruby نفسها) "البساطة"
على سبيل المثال، أنشأت البارحة موقعًا بسيطًا لإدارة محتوى أحد المشاريع الجانبية ولم أُرِد إضافة مستخدمين وما إلى ذلك، فتذكرت
ببساطة تُعطيها اسم المستخدم وكلمة المرور، ولن يستطيع أحد الدخول إلى موقعك.
سطر واحد يُغنيك عن الكثير من التفاصيل والشيفرة البرمجية 😁
على سبيل المثال، أنشأت البارحة موقعًا بسيطًا لإدارة محتوى أحد المشاريع الجانبية ولم أُرِد إضافة مستخدمين وما إلى ذلك، فتذكرت
http_basic_authenticate_with.ببساطة تُعطيها اسم المستخدم وكلمة المرور، ولن يستطيع أحد الدخول إلى موقعك.
سطر واحد يُغنيك عن الكثير من التفاصيل والشيفرة البرمجية 😁
❤2😱1😨1
قد يكون مراجعة التعديلات البرمجية (Pull Requests) هو السبيل الوحيد للمحافظة على مهارتك في عصر الذكاء الاصطناعي، إذا سلَّمنا أن جزءًا كبيرًا من الشيفرة البرمجية التي تُنتجها أصبح مكتوبًا باستخدام أدوات مثل Codex و Claude Code
❤2
ما هي مساوئ استخدام Soft Deletion في قواعد البيانات؟
1. بقاء الصفوف المحذوفة في نفس الجدول مما يُعقِّد الاستعلامات (Queries) وإنشاء صفوف جديدة تحت بعض القيود (Constraints) الموجودة في الجدول.
2. ؟
شارك سببًا في التعليقات 😁
1. بقاء الصفوف المحذوفة في نفس الجدول مما يُعقِّد الاستعلامات (Queries) وإنشاء صفوف جديدة تحت بعض القيود (Constraints) الموجودة في الجدول.
2. ؟
شارك سببًا في التعليقات 😁
❤4
إذا كنت مستخدمي Ruby on Rails فشارك في الاستبيان السنوي 😁
https://planetargon.survey.fm/rails-survey-2026
https://planetargon.survey.fm/rails-survey-2026
❤1
تكتب Apple على منتجاتها:
Designed by Apple in California, Assembled in China
وهذا لتخفيف وطأة جملة "صُنع في الصين".
أظن أن المبرمجين سيبدأون فعل الأمر نفسه من خلال كتابة:
Designed by humans, written by Claude Code/Codex
🤓😂
Designed by Apple in California, Assembled in China
وهذا لتخفيف وطأة جملة "صُنع في الصين".
أظن أن المبرمجين سيبدأون فعل الأمر نفسه من خلال كتابة:
Designed by humans, written by Claude Code/Codex
🤓😂
🤣15❤2
مع كثرة أخبار الذكاء الاصطناعي، وكثرة المنشورات عنه والمُتكلِّمين فيه، قد يشعر البعض أن التَّعلُّم قد توقَّف وأن الذكاء الاصطناعي سيحلّ كل مشاكلك، فابدأ في الإنتاج واستخدم هذه الأدوات ولا تُطوِّر من مهاراتك ولا تُعطي المزيد من الوقت للدراسة.
وهذا، من وجهة نظري، أكبر خطأ.
إذا لم تكن على علم بما تفعل، فلن تستطيع التفريق بين الغثّ والسمين مما تُنتجه هذه الأدوات، إذ لن تكون لديك القدرة على الحكم على مخرجاتها.
لذلك، ومن باب المشاركة والتقليل من هذا الشعور لدى البعض، فأنا حاليًّا أقرأ كتاب:
Polished Ruby Programming
وأنتهيت من نصفه تقريبًا
وأتابع دورة على GoRails بعنوان:
Domain Monitor SaaS Product
وانتهيت من ثلثها تقريبًا
اقرأ وتعلَّم واجتهد، قال صلى الله عليه وسلم: "احرِص على ما ينفعُكَ واستعِن باللَّهِ ولا تعجِزْ".
والسلام عليكم 👋🏻
وهذا، من وجهة نظري، أكبر خطأ.
إذا لم تكن على علم بما تفعل، فلن تستطيع التفريق بين الغثّ والسمين مما تُنتجه هذه الأدوات، إذ لن تكون لديك القدرة على الحكم على مخرجاتها.
لذلك، ومن باب المشاركة والتقليل من هذا الشعور لدى البعض، فأنا حاليًّا أقرأ كتاب:
Polished Ruby Programming
وأنتهيت من نصفه تقريبًا
وأتابع دورة على GoRails بعنوان:
Domain Monitor SaaS Product
وانتهيت من ثلثها تقريبًا
اقرأ وتعلَّم واجتهد، قال صلى الله عليه وسلم: "احرِص على ما ينفعُكَ واستعِن باللَّهِ ولا تعجِزْ".
والسلام عليكم 👋🏻
❤9👍3
بدأت اليوم تجربة عملية لاستخدام DeepSeek V4 Pro كنموذج أساسي في العمل بدلًا من Opus 4.7 و GPT 5.5 والنتائج جيدة إلى الآن!
كما يظهر في الصورة، أكثر من 50 مليون رمز (Token) من بداية اليوم (5 ساعات تقريبًا) بتكلفة 0.72$ فقط 😂
الجودة ممتازة كذلك، سواء خلال استخدامه على OpenCode أو Claude Code.
أتابع التجربة لفترة أطول وأنشر النتائج بإذن الله 🤓
كما يظهر في الصورة، أكثر من 50 مليون رمز (Token) من بداية اليوم (5 ساعات تقريبًا) بتكلفة 0.72$ فقط 😂
الجودة ممتازة كذلك، سواء خلال استخدامه على OpenCode أو Claude Code.
أتابع التجربة لفترة أطول وأنشر النتائج بإذن الله 🤓
❤15
خان المُبرمجين (علي فاضل)
Video
صنعنا في MilkStraw AI مكتبة لإطار عمل Ruby on Rails وسمَّيناها "أثَر" لمتابعة البيانات المحذوفة من قاعدة البيانات ومَن حذفها ومتى وما السبب وغيرها من التفاصيل.
فكرت البارحة في إنشاء صفحة لعرض هذه المعلومات وتسهيل البحث فيها واستخدامها، فكانت الخطوات كالتالي:
- فتحت Claude Design على المتصفح وأعطيته ملف README الخاص بالمكتبة
- طلبت منه إنشاء لوحة تحكم (Dashboard) للمكتبة بناءً على التوثيق (Documentation)
- أنشأ لوحة التحكم باستخدام React، فطلبت منه إعادة كتابتها باستخدام HTML/CSS/JS فقط
- أخذت الملفات من Claude Design وأعطيتها لـ Claude Code، وطلبت منه استخدامها لبناء لوحة تحكم داخل المكتبة (قبل النوم)
- استيقظت فوجدت كل شيء يعمل، ولكن يحتاج إلى بعض التعديلات
- طلبت منه تعديل أجزاء من لوحة التحكم وتحسين تجربة المستخدم
- سجلت هذا الفيديو 😁
انتهى الجزء السهل، وتبقَّى الجزء الصعب: مراجعة الشيفرة البرمجية 🙂
سبعون ملفًّا عُدِّلت خلال هذه العملية بين ملفات جديدة وملفات قديمة عُدِّلت وملفات اختبار وغيرها..
انتهت العملية بالكامل في غضون ساعتين تقريبًا (إذا جمعنا الأوقات المُتفرِّقة) ولكن سأحتاج لأضعاف هذا الوقت للتأكد من صحة المكتوب وجودته.
لذلك يا صديقي أدوات الذكاء الاصطناعي لا تجعلك 10x، وإنما تجعلك في أحسن أحوالها 2x أو 3x بناءً على قدرتك على مراجعة ما تكتبه لك.
أما إذا كنت من النوع "الأعمى" الذي لا يُراجع ما تكتبه هذه الأدوات، فكل التوفيق لك 🤓
والسلام عليكم 👋🏻
فكرت البارحة في إنشاء صفحة لعرض هذه المعلومات وتسهيل البحث فيها واستخدامها، فكانت الخطوات كالتالي:
- فتحت Claude Design على المتصفح وأعطيته ملف README الخاص بالمكتبة
- طلبت منه إنشاء لوحة تحكم (Dashboard) للمكتبة بناءً على التوثيق (Documentation)
- أنشأ لوحة التحكم باستخدام React، فطلبت منه إعادة كتابتها باستخدام HTML/CSS/JS فقط
- أخذت الملفات من Claude Design وأعطيتها لـ Claude Code، وطلبت منه استخدامها لبناء لوحة تحكم داخل المكتبة (قبل النوم)
- استيقظت فوجدت كل شيء يعمل، ولكن يحتاج إلى بعض التعديلات
- طلبت منه تعديل أجزاء من لوحة التحكم وتحسين تجربة المستخدم
- سجلت هذا الفيديو 😁
انتهى الجزء السهل، وتبقَّى الجزء الصعب: مراجعة الشيفرة البرمجية 🙂
سبعون ملفًّا عُدِّلت خلال هذه العملية بين ملفات جديدة وملفات قديمة عُدِّلت وملفات اختبار وغيرها..
انتهت العملية بالكامل في غضون ساعتين تقريبًا (إذا جمعنا الأوقات المُتفرِّقة) ولكن سأحتاج لأضعاف هذا الوقت للتأكد من صحة المكتوب وجودته.
لذلك يا صديقي أدوات الذكاء الاصطناعي لا تجعلك 10x، وإنما تجعلك في أحسن أحوالها 2x أو 3x بناءً على قدرتك على مراجعة ما تكتبه لك.
أما إذا كنت من النوع "الأعمى" الذي لا يُراجع ما تكتبه هذه الأدوات، فكل التوفيق لك 🤓
والسلام عليكم 👋🏻
❤6🔥2