مقالات في بناء الأنظمة الحقيقية
كتابة عملية واضحة عن المواقع والمنصات والأتمتة للمنشآت في السعودية.
محو بيانات العميل امتثالاً لنظام حماية البيانات الشخصية، عملياً
كل ما يُكتب بالعربية عن نظام حماية البيانات الشخصية أدلة قانونية. هذا ما يعنيه المحو داخل قاعدة بيانات فعلية: أي جداول، وماذا يبقى، ولماذا.
عشوائياتأسطول الأجهزة: التشفير وحفظ المفتاح ومحضر التسليم
ثلاث خطوات تفصل بين جهاز شركة وجهاز شخصي يُستعمل في العمل. أرخصها التشفير، وأهمها المحضر، وأكثرها نسياناً حفظ المفتاح.
مشاريعبناء بيئة Microsoft 365 من الصفر لمنشأة سعودية
الترتيب الصحيح لإنشاء بيئة عمل مؤسسية، والقرارات التي يصعب التراجع عنها لاحقاً، من واقع تنفيذ كامل لا من دليل مورّد.
مشاريعSharePoint كأنظمة لا كمجلدات
معظم المنشآت تستعمل SharePoint كخزانة ملفات على الإنترنت. الفرق بين ذلك وبين أنظمة تعمل هو نموذج البيانات الوصفية، وهذا ما يعنيه عملياً.
مشاريعتصميم بالحاسوب: مخرجات تُعاد بأمر لا بيد
أعدتُ إنتاج كل مخرج بصري في مشروع تصميم بأمر واحد بدل العمل اليدوي. السبب لم يكن السرعة، بل أن التعديل الأخير للعميل لا يعني إعادة العمل كله.
مشاريععنصر ثلاثي الأبعاد في الواجهة بلا تدمير الأداء
الـ 3D في أول شاشة يبدو مبهراً ويقتل الأداء وسهولة الوصول إن بُني خطأ. هذه القيود الأربعة التي التزمتها فبقي المشهد وبقيت السرعة.
عشوائياتاستخراج بيانات منظمة من عقود PDF
العقد ملف يقرأه البشر ولا تقرأه الأنظمة. هذه طريقة تحويله إلى صفوف، وأين تفشل، ولماذا يجب أن تفشل بصوت مسموع.
عشوائياتأتمتة بوابة تُستأنف بعد الانقطاع، وتُسلَّم لغير مبرمج
إدخال مئات السجلات في بوابة رسمية عمل متكرر ينهار عند أول انقطاع. هاتان الخاصيتان اللتان تحوّلانه من سكربت إلى أداة تُسلَّم.
عشوائياتموافقات داخل Teams وصلاحيات على مستوى العنصر
نظام طلبات الموظفين ينجح أو يفشل بتفصيلة واحدة: هل يرى الموظف طلبات غيره؟ هذه كيف تُضبط، ولماذا لا تُكسر الصلاحيات لآلاف العناصر.
عشوائياتالإرسال بالنيابة من صندوق مؤسسي: الإعداد الذي ينجح
أن يرسل الموظفون من عنوان الشركة الرسمي، لا من عناوينهم، مطلب متكرر. هذا الإعداد الصحيح والفرق بين نوعي الصلاحية الذي يوقع الناس.
مشاريعمتى تختار الحوسبة على الحافة ومتى لا تختارها
الحافة ليست خادماً أسرع، بل نموذج تشغيل مختلف بقيود مختلفة. هذه القيود التي واجهتها فعلاً، ومتى تكون في صالحك.
مشاريعلا ترهن معماريتك بمزوّد نموذج واحد
شغّلت نفس نظام الوكلاء على عائلتي نماذج مختلفتين. لم يكن الهدف توفير تكلفة، بل إثبات أن التصميم لا ينهار إن تغيّر المزوّد.
مشاريعموافقة بشرية قبل أن يصل العميل شيء
أكثر قرار أثّر في ثقة العميل بنظام آلي لم يكن تقنياً: أن كل ما يخرج للعميل يمر على موظف أولاً. هذه كيف بنيتها بحيث لا تصير عنق زجاجة.
مشاريعقاطع دورة لبوابة الذكاء الاصطناعي
حين تتوقف بوابة النموذج، النظام الساذج يستمر في المحاولة فيبطئ كل شيء ويستنزف الحصة. القاطع يوقف المحاولة مبكراً ويتعافى تدريجياً.
مشاريعمُدقّق يرفض أي مخرج بلا مصدر
الطريقة الوحيدة التي نجحت معي لمنع الهلوسة في نظام إنتاج لم تكن هندسة الأوامر، بل طبقة ترفض أي عنصر لا يُشير إلى مصدر قابل للتتبع.
مشاريعوكلاء متعددون في الإنتاج: التقسيم بالمسؤولية لا بالمهمة
معظم أنظمة الوكلاء تُقسَّم بالمهمة فتصير طبقة تعقيد بلا فائدة. التقسيم الذي نجح عندي كان بالمسؤولية: من يملك القرار ومن يملك القناة.
مشاريعصفحة عرض خاصة بدل ملف مرفق: ماذا تكسب
الرابط الخاص يخبرك بما لا يخبرك به المرفق: هل فُتح، ومتى، وكم مرة. وهذا يغيّر توقيت متابعتك من التخمين إلى المعلومة.
مشاريعكيف تحوّل طلب عميل غامض إلى نطاق قابل للتنفيذ
«أبغى موقع» ليست خطة. هذه الطريقة التي أحوّل بها الطلب المفتوح إلى نطاق مكتوب يوافق عليه العميل ويُسجَّل، فينتهي الجدل قبل أن يبدأ.
عشوائياتلماذا لا يظهر hreflang في موقع Next رغم أنه موجود؟
كدتُ أُبلغ بعطل غير موجود. البحث في صفحة مبنية عن hreflang لا يجد شيئاً، والسبب أن React يكتب السمة بحرف كبير في المصدر.
عشوائياتلماذا يرد GA4 برمز 403 وما الفرق بين المعطّلة والممنوعة؟
حالتان مختلفتان تماماً تعطيان نفس رمز الخطأ، وتحتاجان إصلاحين في مكانين مختلفين. الفرق بينهما في نص الرسالة لا في الرمز.
مشاريعفحص بصري يقيس DOM بدل أن يقارن الصور
كل المراجع تقترح مقارنة لقطات الشاشة. جرّبتها وتركتها، وبنيتُ فحصاً يقيس العناصر نفسها. النتيجة: لا صور مرجعية تُصان، ولا اختبارات هشة، ويكشف أخطاء لا تكشفها الصور.
مشاريعالعقد الموقّع يُقفل، وتعديله يعيده مسودة
أخطر حالة في أي نظام عقود ليست التزوير، بل أن يتغيّر نص العقد بعد أن وافق عليه العميل دون أن يعلم. هذه القاعدة التي منعتها بها.
مشاريعسجل تدقيق لا يستطيع التطبيق إعادة كتابته
سجل التدقيق الذي يحميه الكود يسقط مع أول خطأ برمجي. نقلتُ الحماية إلى قاعدة البيانات نفسها بثلاثة أسطر، فصار الضمان قائماً حتى لو أخطأ التطبيق بالكامل.
مشاريعنظام أعمال كامل على Cloudflare D1: خمس خدمات وقاعدة واحدة
من زائر يفتح صفحة إلى عقد موقّع وقسط مجدول، على خمس خدمات تتشارك قاعدة SQLite واحدة على الحافة. هذه معماريتها، وما اخترته، وما رفضته، وما كلّفني.
عشوائياتعقلية مهندس الأنظمة: قبل ما تبني أي حل، افهم المشكلة الحقيقية أولاً
قبل ما تبني أي حل، اسأل نفسك: هل فهمت المشكلة الحقيقية، أو بنيت حل على افتراضات؟ قصة حقيقية غيرت طريقة تفكيري في فهم المشاكل وحلها.