GyaanSetu WebDev

Frontend, backend and devops for the modern web.

244 articlesDeep, practical knowledge

تعطلت بيئة تجربة بايثون في المتصفح على الشبكات البطيئة بسبب قراءة خاطئة لواجهة برمجة تطبيقات الشبكة

توقفت بيئة تشغيل بايثون داخل المتصفح (بحجم 5.5 ميجابايت) عن العمل بصمت للمستخدمين على شبكات الجيل الثالث أو الاتصالات البطيئة، لأن واجهة برمجة تطبيقات معلومات الشبكة في متصفح كروم أعادت قيمة مؤقتة لسرعة التنزيل تعامل معها الكود على أنها سريعة، مما أدى إلى سلسلة من التشخيصات الخاطئة.

WebDev · 3 دقيقة قراءة

سكربت تنظيف مسح مقتطفات برمجية من عشرات المقالات

أخطأت مهمة صيانة روتينية في التعرف على وسوم {% raw %} الخاصة بـ Liquid، حيث تعاملت معها كمتغيرات غير مغلقة وحذفت كتل الأكواد المحيطة بها من كل مقال استخدمها، مما استدعى عملية استعادة طارئة وإعادة التفكير في إجراءات اختبار الهجرة.

WebDev · 3 دقيقة قراءة

بروتوكول MCP عديم الحالة يتيح للمطورين تقديم محتوى Markdown مجانًا عبر Cloudflare

تُظهر اختبارات الأداء أن خادم MCP المخصص للقراءة فقط يسجل استهلاكًا للمعالج يتراوح بين 0 و1 مللي ثانية في نقاط النهاية الرئيسية، مما يجعله أقل بكثير من حد Cloudflare البالغ 10 مللي ثانية لكل طلب، في حين قد يصل إجمالي الوقت الفعلي إلى حوالي 88 مللي ثانية بسبب زمن انتقال الشبكة.

WebDev · 2 دقيقة قراءة

Hermes Agent يفتح آفاق أتمتة الذكاء الاصطناعي، لكنه يلقي بعبء الأمان على عاتق المطورين

يعمل التصميم المعياري لـ Hermes Agent على فصل النموذج اللغوي عن نواة التنسيق والأدوات القابلة للتنفيذ، مما يتيح لك إرفاق البرامج النصية أو استدعاءات REST أو أوامر Docker، ولكنه يتطلب منك أيضاً عزل العميل في بيئة آمنة (sandbox) وحماية مفاتيح API.

WebDev · 3 دقيقة قراءة

BrowserAct يتفوق على وضع Playwright بدون واجهة (Headless Mode) في اختبار كشف البوتات

في تجربة مقارنة جنباً إلى جنب على صفحة تسجيل دخول تجريبية، أعطى متصفح BrowserAct المتخفي نتيجة isBot:false، بينما سجلت جلسة Playwright الافتراضية بدون واجهة (headless) نتيجة isBot:true، مما يكشف كيف تفضح علامات user-agent و webdriver الافتراضية عملية الأتمتة.

WebDev · 4 دقيقة قراءة

Browser-Use و Steel يُمكّنان وكلاء LLM من الصمود أمام إعادة تصميم المواقع بنصف التكلفة

من خلال استبدال محددات CSS الهشة بالاستنتاج القائم على نماذج LLM، تضمن الحزمة التقنية الجديدة — Browser-Use و Stagehand و Steel و Playwright MCP — استمرارية عمل البرمجيات النصية عند تغيير الصفحات، مع تقليل استهلاك الرموز (tokens) عبر استخدام DOM المفلتر، ولقطات ARIA، واختصارات الرؤية.

WebDev · 3 دقيقة قراءة

CollectionsMarshal يجعل عملية عد القواميس أسرع بـ 1.7 مرة مقارنة بـ TryGetValue

لقد قمت بعمل Hash لكل كلمة مرتين لأقوم بعدّها مرة واحدة. قمت بتحليل أداء محلل سجلات الأسبوع الماضي، حيث يقوم بعدّ رموز الخطأ في سجل يومي. المنطق الأساسي هو تحديث بسيط للقاموس. معظم المطورين...

WebDev · 1 دقيقة قراءة

كيف يمكن لانقطاع خدمة الإنترنت أن يعطل يوم مهندس يعمل عن بُعد – وكيفية تجنب ذلك

يمكن لانقطاع خدمة الإنترنت أن يفصل مطوراً يعمل عن بُعد عن العمل لساعات، تماماً مثل تعطل الخادم. ومن خلال قياس استهلاك الطاقة، وإضافة جهاز UPS، وتركيب جهاز توجيه (dual-WAN router) مع نسخة احتياطية عبر نقطة اتصال 4G/5G، يمكنك تحقيق هدف وقت الاستعادة (RTO) والاستمرار في البرمجة.

WebDev · 2 دقيقة قراءة

تعامل مع حقن الأوامر (Prompt Injection) كخلل في الصلاحيات وجرّد الأدوات غير المصرح بها

يجب على المطورين التوقف عن كشف الوظائف ذات الامتيازات في صندوق أدوات النموذج. فمن خلال إنشاء كتالوج وظائف لكل طلب بناءً على صلاحيات المستخدم، واعتماد مبدأ الإغلاق التلقائي (fail closed) عند عدم وضوح الهوية، يمكن لوكلاء النماذج اللغوية الكبيرة (LLM agents) القضاء على فجوة حقن الأوامر البالغة 1% والتي تؤدي إلى خروقات البيانات.

WebDev · 5 دقيقة قراءة

الاختبارات غير المستقرة تقتل عملية التكامل المستمر (CI) الخاصة بك – انتقل من معدلات النجاح إلى مقاييس موثوقية الفشل

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

WebDev · 4 دقيقة قراءة

نماذج اللغة الكبيرة تُنتج طلبات JSON فقط – وكودك هو من ينفذ الإجراء

النموذج لا يقوم بتشغيل الدالة الخاصة بك أبداً؛ بل يُصدر طلباً مهيكلاً يقوم الموزع (dispatcher) الخاص بك بالتحقق من صحته، وتفويضه، ثم تنفيذه في النهاية. إن فهم عملية التسليم هذه هو المفتاح لإصلاح الأخطاء ومنع الآثار الجانبية غير المصرح بها.

WebDev · 4 دقيقة قراءة

خطأ برمجي يحوّل عداد التعرض لاختبار A/B إلى عداد لمشاهدات الصفحة، مما أدى إلى اختلال التقسيم بنسبة 50/50

قامت دالة مشتركة في التخطيط الأساسي (root layout) بتسجيل كل مشاهدة صفحة كتعرض جديد، مما حوّل التقسيم العشوائي الصحيح بنسبة 50/50 إلى اختلال بنسبة 178 إلى 57، وأدى ذلك إلى إبطال أسابيع من بيانات التحويل.

WebDev · 3 دقيقة قراءة

حقل "سبام" مخفي قضى على جميع انطباعات الصفحات العربية، وكلفني ساعات من البحث عن الأخطاء

مصيدة (Honeypot) أفسدت صفحاتي العربية. تعمل Convertica بسبع لغات؛ ست منها تُقرأ من اليسار إلى اليمين، بينما تُقرأ العربية من اليمين إلى اليسار. هذا الاختلاف كلفني ساعات من البحث عن الأخطاء. كل صفحة عربية...

WebDev · 1 دقيقة قراءة

E-commerce Sites Can Escape Facet Crawl Traps by Blocking Low-Value URLs

An audit found Googlebot hitting filter URLs three times daily while main categories were crawled once every three weeks, causing fresh inventory to sit invisible for weeks. By classifying facets, using canonicals, blocking low-value URLs, and rendering filters as buttons, sites trimmed indexing tim

WebDev · 3 دقيقة قراءة

نقرة واحدة على وضع "Bot Fight Mode" في Cloudflare أدت إلى توقف واجهة برمجة تطبيقات SaaS لمدة شهر

اختفت حركة مرور واجهة برمجة التطبيقات (API) الخاصة بالمطور لأن Cloudflare صنفت استدعاءات AWS Lambda الخاصة به كبوتات. ومع عدم ظهور أي أخطاء في التطبيق، ظلت مقاييس الاستخدام راكدة لأسابيع حتى تم تعطيل وضع "Bot Fight".

WebDev · 3 دقيقة قراءة

تحطم أسطورة الإجماع في الذكاء الاصطناعي: 10 نماذج، 5 خانات، 29 إجابة فريدة

استطلعت التجربة عشرة من أفضل النماذج اللغوية الكبيرة (LLMs) لتحديد أفضل صانعي خواتم الزفاف الفاخرة في رومانيا. ومن خلال 50 خانة توصية، قدمت هذه النماذج 29 علامة تجارية متميزة، حيث ظهرت 66% منها في نموذج واحد فقط، مما يكشف كيف تساهم مسارات البيانات في تعزيز الظهور.

WebDev · 2 دقيقة قراءة

GitHub تطلق المعاينة العامة لطلبات السحب المتراكمة (Stacked Pull Requests) لتقليل أوقات المراجعة

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

WebDev · 2 دقيقة قراءة

TanStack تتخلى عن مكونات React Server Components بسبب التعقيد والبطء

وجد فريق TanStack أن تصحيح أخطاء RSC يتطلب نموذجاً ذهنياً منفصلاً، وأن التنفيذ المقتصر على الخادم أدى إلى كسر التوافق مع العديد من المكتبات الخارجية، مما أجبرهم على اختيار بنية أبسط تعتمد على العميل فقط.

WebDev · 2 دقيقة قراءة