مقالة لطيفة موجودة في متصفحي من أشهر، قرأتها قبل قليل:
https://www.planetearthandbeyond.co/p/amazon-just-proved-ai-isnt-the-answer
https://www.planetearthandbeyond.co/p/amazon-just-proved-ai-isnt-the-answer
www.planetearthandbeyond.co
Amazon Just Proved AI Isn't The Answer Yet Again
You would think they would learn their lesson. But nope!
معظم أدوات الذكاء الاصطناعي لا تستطيع قراءة موقعك!
إذا كان موقعك مبنيًا بتقنيات تستخدم Client-Side Rendering (مثل React أو Vue بدون SSR)، فأدوات الذكاء الاصطناعي مثل ChatGPT و Claude وغيرها ترى موقعك فارغًا تمامًا! 🙂
السبب بسيط: هذه الأدوات لا تُشغِّل JavaScript، وإنما تكتفي بجلب الـ HTML الأوَّلي للصفحة فقط.
في تطبيقات الصفحة الواحدة (SPA)، هذا الـ HTML ليس إلا:
<div id="root"></div>
<script src="/bundle.js"></script>
(أو شيئًا شبيهًا)
لا محتوى ولا عناوين ولا نصوص ولا حتى Meta Tags!
قرأتُ مقالًا حلَّل أكثر من 500 مليون طلب من GPTBot ولم بجد أي دليل على تشغيل JavaScript، ولا مرة واحدة.
المفارقة الجميلة:
- تطبيق Rails بسيط عمره 15 سنة؟ يعمل مع الـ Agents بشكل ممتاز 🚀
- تطبيق Django مع Templates؟ يعمل بدون أي تعديل
- Laravel مع Blade؟ يعمل كذلك
- SPA حديث مبني بأحدث إصدارات React بدون SSR؟ غير مرئي للذكاء الاصطناعي تمامًا!
قضينا سنوات في تعقيد الواجهات، وفصل التطبيق إلى طبقتين (Frontend/Backend)، وإضافة طبقات من Bundlers و Hydration و State Management لنكتشف أن الحلول "المملة" للـ Server-Side Rendering هي الأنسب لعصر الـ Agents 😄
لستُ ضد تطبيقات الصفحة الواحدة، فلها استخداماتها الصحيحة (لوحات التحكم والتطبيقات التفاعلية بشكل كبير وغيرها)، لكن لمواقع المحتوى والتوثيق والمنتجات والتسويق؟ كل يوم يمر يجعل SSR خيارًا أفضل.
الحلول إن كان موقعك يعاني من هذه المشكلة (من الأسوأ إلى الأفضل):
- انتقل إلى Next.js أو Nuxt أو SvelteKit مع SSR
- استخدم Static Site Generation إذا كان المحتوى ثابتًا
- أو عُد إلى Rails أو Django 🙂
والسلام عليكم 👋🏻
إذا كان موقعك مبنيًا بتقنيات تستخدم Client-Side Rendering (مثل React أو Vue بدون SSR)، فأدوات الذكاء الاصطناعي مثل ChatGPT و Claude وغيرها ترى موقعك فارغًا تمامًا! 🙂
السبب بسيط: هذه الأدوات لا تُشغِّل JavaScript، وإنما تكتفي بجلب الـ HTML الأوَّلي للصفحة فقط.
في تطبيقات الصفحة الواحدة (SPA)، هذا الـ HTML ليس إلا:
<div id="root"></div>
<script src="/bundle.js"></script>
(أو شيئًا شبيهًا)
لا محتوى ولا عناوين ولا نصوص ولا حتى Meta Tags!
قرأتُ مقالًا حلَّل أكثر من 500 مليون طلب من GPTBot ولم بجد أي دليل على تشغيل JavaScript، ولا مرة واحدة.
المفارقة الجميلة:
- تطبيق Rails بسيط عمره 15 سنة؟ يعمل مع الـ Agents بشكل ممتاز 🚀
- تطبيق Django مع Templates؟ يعمل بدون أي تعديل
- Laravel مع Blade؟ يعمل كذلك
- SPA حديث مبني بأحدث إصدارات React بدون SSR؟ غير مرئي للذكاء الاصطناعي تمامًا!
قضينا سنوات في تعقيد الواجهات، وفصل التطبيق إلى طبقتين (Frontend/Backend)، وإضافة طبقات من Bundlers و Hydration و State Management لنكتشف أن الحلول "المملة" للـ Server-Side Rendering هي الأنسب لعصر الـ Agents 😄
لستُ ضد تطبيقات الصفحة الواحدة، فلها استخداماتها الصحيحة (لوحات التحكم والتطبيقات التفاعلية بشكل كبير وغيرها)، لكن لمواقع المحتوى والتوثيق والمنتجات والتسويق؟ كل يوم يمر يجعل SSR خيارًا أفضل.
الحلول إن كان موقعك يعاني من هذه المشكلة (من الأسوأ إلى الأفضل):
- انتقل إلى Next.js أو Nuxt أو SvelteKit مع SSR
- استخدم Static Site Generation إذا كان المحتوى ثابتًا
- أو عُد إلى Rails أو Django 🙂
والسلام عليكم 👋🏻
❤3
عانيت اليوم مع مساحة التخزين في حاسبي الـ Mac، فوجدت هذه الأداة:
https://github.com/tw93/Mole
وفَّرَت لي 100 جيجا تقريبًا 🎉
https://github.com/tw93/Mole
وفَّرَت لي 100 جيجا تقريبًا 🎉
GitHub
GitHub - tw93/Mole: 🐹 Clean, uninstall, analyze, optimize, and monitor your Mac from the terminal.
🐹 Clean, uninstall, analyze, optimize, and monitor your Mac from the terminal. - tw93/Mole
❤2
مقال ممتع من PlanetScale عن أنواع الـ Multi-tenancy يُفضِّل استخدام قاعدة بيانات واحدة و Schema واحدة مع عمود tenant_id (أو user_id أو غيره) بدلًا من استخدام Schema لكل Tenant أو قاعدة بيانات منفصلة بالكامل لكل Tenant
https://planetscale.com/blog/approaches-to-tenancy-in-postgres
https://planetscale.com/blog/approaches-to-tenancy-in-postgres
Planetscale
Approaches to tenancy in Postgres — PlanetScale
There are many ways to slice a Postgres database for multi-tenant applications. Let's look at the three most common approaches and the trade-offs.
❤3
كنت أُخطط لإضافة ميزة جديدة إلى MilkStraw AI مع Claude Code ونموذج Opus 4.7
بعد الحديث لأكثر من ساعة، كتب الأخ خطةً من ألف سطر، وخلال مراجعتي وجدت أنه يستقبل في الـ API مصفوفة (Array) من خلال الـ Query Params كما في المثال الأول في الصورة
استقبال مصفوفة بهذا الشكل في الـ Query Params غير صحيح في Ruby on Rails، لأن Rails ستأخذ القيمة الأخيرة فقط في عين الاعتبار وتُسقط باقي القيَم
الطريقة الصحيحة مُوَضَّحة في المثال الثاني والذي يستخدم أقواسًا مربعةً `[]`مع اسم الـ Query Param، وبهذه الطريقة Rails تفهم أنها تتعامل مع مصفوفة
كُن حذرًا عند التخطيط، حتى مع النموذج "الأقوى" في العالم 🤓
وكالعادة، أتقن التقنيات التي تستخدمها
بعد الحديث لأكثر من ساعة، كتب الأخ خطةً من ألف سطر، وخلال مراجعتي وجدت أنه يستقبل في الـ API مصفوفة (Array) من خلال الـ Query Params كما في المثال الأول في الصورة
استقبال مصفوفة بهذا الشكل في الـ Query Params غير صحيح في Ruby on Rails، لأن Rails ستأخذ القيمة الأخيرة فقط في عين الاعتبار وتُسقط باقي القيَم
الطريقة الصحيحة مُوَضَّحة في المثال الثاني والذي يستخدم أقواسًا مربعةً `[]`مع اسم الـ Query Param، وبهذه الطريقة Rails تفهم أنها تتعامل مع مصفوفة
كُن حذرًا عند التخطيط، حتى مع النموذج "الأقوى" في العالم 🤓
وكالعادة، أتقن التقنيات التي تستخدمها
❤4👍2
Media is too big
VIEW IN TELEGRAM
خدعوك فقالوا: المكتبات وأُطر العمل مثل React و Vue وغيرها هي السبيل الوحيد 😪
هذا الفيديو يعرض مُكوِّنًا (Component) في أحد المشاريع التي أعمل عليها حاليًّا.
- يدعم كل ميزات الـ Sonner الشهير في React
- يدعم إرسال التنبيهات من الخادم مباشرة أو من المتصفح
- يدعم البقاء في الصفحة حتى عند تنقل المستخدم بين صفحات الموقع (رغم انه Server-side rendered)
كل ذلك وأكثر في أقل من 350 سطرًا من JS بدون أي اعتماديات 🙂
لا أجد أي سبب لاستخدام هذه المكتبات والأُطر في الكثير من المشاريع إلا في حالات استثنائية جدًّا..
تعقيد تطوير المواقع وفصل الـ Frontend عن الـ Backend ما هو إلا "أكذوبة" سوَّقتها بعض الشركات العملاقة ويدفع ثمنها المطورون الأفراد والشركات الصغيرة والمتوسطة.
هذا الفيديو يعرض مُكوِّنًا (Component) في أحد المشاريع التي أعمل عليها حاليًّا.
- يدعم كل ميزات الـ Sonner الشهير في React
- يدعم إرسال التنبيهات من الخادم مباشرة أو من المتصفح
- يدعم البقاء في الصفحة حتى عند تنقل المستخدم بين صفحات الموقع (رغم انه Server-side rendered)
كل ذلك وأكثر في أقل من 350 سطرًا من JS بدون أي اعتماديات 🙂
لا أجد أي سبب لاستخدام هذه المكتبات والأُطر في الكثير من المشاريع إلا في حالات استثنائية جدًّا..
تعقيد تطوير المواقع وفصل الـ Frontend عن الـ Backend ما هو إلا "أكذوبة" سوَّقتها بعض الشركات العملاقة ويدفع ثمنها المطورون الأفراد والشركات الصغيرة والمتوسطة.
👎5🤔3❤1🌚1
جمعتكم مباركة
الزميل Matz - مُنشِئ لغة Ruby - بدأ مشروعًا جديدًا باسم Spinel لإنشاء ملفات تنفيذية أصيلة ومستقلة (Standalone Native Executables) للغة Ruby 🚀
https://github.com/matz/spinel
ذكر Matz في أكثر من لقاء - حسب ما أذكر - أنه لن يقبل بشيئين في اللغة:
- Typing
- Compilation
يبدو أنه تنازل عن الثانية، ويبدو كذلك أنه يستخدم Claude Code 😂
الزميل Matz - مُنشِئ لغة Ruby - بدأ مشروعًا جديدًا باسم Spinel لإنشاء ملفات تنفيذية أصيلة ومستقلة (Standalone Native Executables) للغة Ruby 🚀
https://github.com/matz/spinel
ذكر Matz في أكثر من لقاء - حسب ما أذكر - أنه لن يقبل بشيئين في اللغة:
- Typing
- Compilation
يبدو أنه تنازل عن الثانية، ويبدو كذلك أنه يستخدم Claude Code 😂
🤣3❤1
خان المُبرمجين (علي فاضل)
Photo
استخرجت القواعد من الكتب بدلًا من تلخيصها!
منذ فترة، بدأت قراءة كتاب Polished Ruby Programming، والكتاب ممتع جدًّا.
كنت أقول في نفسي عند نهاية كل قسم أو فصل: "يوجد الكثير من القواعد المفيدة لاستخراجها!"
دائمًا ما أتذكر القواعد الموجودة في نهاية كتاب Clean Code من Uncle Bob - عليه من الله ما يستحق - وبغض النظر عن اتفاقك أو اختلافك مع الأفكار الموجودة في الكتاب، ففكرة وجود قواعد ثابتة وواضحة في نهايته ممتازة ومفيدة جدًّا.
قررت تجربة استخدام Claude Code في استخراج قواعد مشابهة لقواعد Clean Code ولكن من كتاب Polished Ruby Programming، وكانت النتيجة مبهرة!
حجم الكتاب 400 صفحة تقريبًا، وهو متوفر لدي بصيغة PDF و ePub، فطرحت الفكرة على Claude Code وبدأنا التخطيط لاستخراج قواعد واضحة ومدعومة بمراجع من الكتاب نفسه.
كانت النتيجة 50 صفحة تضم أكثر من 200 قاعدة مُستخرجة مباشرة من الكتاب، مدعومة بأمثلة وأسباب واضحة ومراجع. راجعت جزءًا كبيرًا منها وكانت مطابقةً للكتاب تمامًا.
لذا قررت إنشاء Skill (ملف Markdown 😁) تُعيد تنفيذ نفس العملية على أي كتاب أقرأه، وجرَّبتها مع Codex على كتاب قرأته سابقًا اسمه The Complete Guide to Rails Performance وكانت النتيجة شبيهة بسابقتها.
يمكنني الآن العودة إلى هذه القواعد ومراجعتها عند الحاجة، أو تمريرها لنماذج الذكاء الاصطناعي أثناء مناقشة فكرة أو اختيار أسلوب معين لكتابة الشيفرة البرمجية 🤓
نشرت القواعد المُستخرجة وهذه الـ Skill في مستودع على GitHub سمَّيته ruby-rules.
والسلام عليكم 👋🏻
منذ فترة، بدأت قراءة كتاب Polished Ruby Programming، والكتاب ممتع جدًّا.
كنت أقول في نفسي عند نهاية كل قسم أو فصل: "يوجد الكثير من القواعد المفيدة لاستخراجها!"
دائمًا ما أتذكر القواعد الموجودة في نهاية كتاب Clean Code من Uncle Bob - عليه من الله ما يستحق - وبغض النظر عن اتفاقك أو اختلافك مع الأفكار الموجودة في الكتاب، ففكرة وجود قواعد ثابتة وواضحة في نهايته ممتازة ومفيدة جدًّا.
قررت تجربة استخدام Claude Code في استخراج قواعد مشابهة لقواعد Clean Code ولكن من كتاب Polished Ruby Programming، وكانت النتيجة مبهرة!
حجم الكتاب 400 صفحة تقريبًا، وهو متوفر لدي بصيغة PDF و ePub، فطرحت الفكرة على Claude Code وبدأنا التخطيط لاستخراج قواعد واضحة ومدعومة بمراجع من الكتاب نفسه.
كانت النتيجة 50 صفحة تضم أكثر من 200 قاعدة مُستخرجة مباشرة من الكتاب، مدعومة بأمثلة وأسباب واضحة ومراجع. راجعت جزءًا كبيرًا منها وكانت مطابقةً للكتاب تمامًا.
لذا قررت إنشاء Skill (ملف Markdown 😁) تُعيد تنفيذ نفس العملية على أي كتاب أقرأه، وجرَّبتها مع Codex على كتاب قرأته سابقًا اسمه The Complete Guide to Rails Performance وكانت النتيجة شبيهة بسابقتها.
يمكنني الآن العودة إلى هذه القواعد ومراجعتها عند الحاجة، أو تمريرها لنماذج الذكاء الاصطناعي أثناء مناقشة فكرة أو اختيار أسلوب معين لكتابة الشيفرة البرمجية 🤓
نشرت القواعد المُستخرجة وهذه الـ Skill في مستودع على GitHub سمَّيته ruby-rules.
والسلام عليكم 👋🏻
❤9👏4
هذا هو نوع المهندسين الذي سنفتقده خلال السنوات القليلة القادمة 😁
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