تخيل خطأ بسيط يوقف Google وخدمات Google Cloud لساعات!
في إحدى أشهر الحوادث التقنية، تسبب Null Pointer Exception بتوقف خدمات Google لأكثر من 5 ساعات، وأثّر على ملايين المستخدمين حول العالم، وكل الشركات اللي بتعتمد على Google Cloud.
ما هو Null Pointer Exception؟
هو خطأ برمجي شائع يحدث عند محاولة الوصول إلى متغير أو كائن فارغ (Null) لم يتم تهيئته.
🔸 مثال (Java):
السبب؟
name فارغ (null)، وبرنامجك يحاول يستدعي دالة عليه.
لغات يظهر فيها هذا الخطأ:
Java → NullPointerException
C# → NullReferenceException
Python → AttributeError: 'NoneType'
PHP → Error: Call to a member function on null
ما الذي حدث مع Google؟
خلال تحديث لنظام الصلاحيات، تم تمرير قيمة Null عن طريق الخطأ إلى نظام حساس، مما أدى إلى انهيار الخدمات، واستغرق إصلاحها أكثر من 5 ساعات.
✅ الدرس:
لا تستهين بأبسط الأخطاء… خطأ صغير قد يوقف أقوى الأنظمة!
في إحدى أشهر الحوادث التقنية، تسبب Null Pointer Exception بتوقف خدمات Google لأكثر من 5 ساعات، وأثّر على ملايين المستخدمين حول العالم، وكل الشركات اللي بتعتمد على Google Cloud.
ما هو Null Pointer Exception؟
هو خطأ برمجي شائع يحدث عند محاولة الوصول إلى متغير أو كائن فارغ (Null) لم يتم تهيئته.
🔸 مثال (Java):
String name = null;
System.out.println(name.length()); // NullPointerException
السبب؟
name فارغ (null)، وبرنامجك يحاول يستدعي دالة عليه.
لغات يظهر فيها هذا الخطأ:
Java → NullPointerException
C# → NullReferenceException
Python → AttributeError: 'NoneType'
PHP → Error: Call to a member function on null
ما الذي حدث مع Google؟
خلال تحديث لنظام الصلاحيات، تم تمرير قيمة Null عن طريق الخطأ إلى نظام حساس، مما أدى إلى انهيار الخدمات، واستغرق إصلاحها أكثر من 5 ساعات.
✅ الدرس:
لا تستهين بأبسط الأخطاء… خطأ صغير قد يوقف أقوى الأنظمة!
❤8👌3👍1
مايكروسوفت تؤكد رسمياً حدوث انقطاع كبير في منصة Microsoft Teams، ما تسبب بتوقف الخدمة لدى عدد ضخم من المستخدمين حول العالم، خاصة مع اعتماد الشركات والمؤسسات عليها في الاجتماعات والعمل عن بُعد.
الشركة ذكرت أن بعض المستخدمين واجهوا مشاكل في تسجيل الدخول، إضافة لتعطّل الدردشة ومكالمات الفيديو.
ودعت جميع المسؤولين لمتابعة الحالة تحت رقم الحادث TM1112332 في مركز الإدارة للحصول على آخر التحديثات.
مايكروسوفت قالت إن بعض الأنظمة بدأت بالفعل باستعادة الخدمة تدريجياً، لكن التحقيق لا يزال مستمراً للكشف عن السبب الجذري، مع تأكيدها على الشفافية في مشاركة التفاصيل لاحقاً.
وفي تحديث جديد، أوضحت مايكروسوفت أن الخدمة عادت بشكل كامل تقريباً، لكن التحقيقات لا تزال جارية.
و لكن السؤال:
هل ستقدم مايكروسوفت فعلاً شفافية كاملة بخصوص سبب هذا الانقطاع؟
خاصة وأنها ليست المرة الأولى التي يتعرض فيها Teams لمثل هذا النوع من الأعطال! 🤔
الشركة ذكرت أن بعض المستخدمين واجهوا مشاكل في تسجيل الدخول، إضافة لتعطّل الدردشة ومكالمات الفيديو.
ودعت جميع المسؤولين لمتابعة الحالة تحت رقم الحادث TM1112332 في مركز الإدارة للحصول على آخر التحديثات.
مايكروسوفت قالت إن بعض الأنظمة بدأت بالفعل باستعادة الخدمة تدريجياً، لكن التحقيق لا يزال مستمراً للكشف عن السبب الجذري، مع تأكيدها على الشفافية في مشاركة التفاصيل لاحقاً.
وفي تحديث جديد، أوضحت مايكروسوفت أن الخدمة عادت بشكل كامل تقريباً، لكن التحقيقات لا تزال جارية.
و لكن السؤال:
هل ستقدم مايكروسوفت فعلاً شفافية كاملة بخصوص سبب هذا الانقطاع؟
خاصة وأنها ليست المرة الأولى التي يتعرض فيها Teams لمثل هذا النوع من الأعطال! 🤔
❤1
أصدقائي الأعزاء
بتمنالكم أسبوع عمل مريح، بلا meetings مزعجة ولا bugs مفاجئة!
كما جرت العادة نستقبل اسئلتكم على Instagram من خلال الرابط: هنا
بانتظار أسئلتكم 🙏🏻
بتمنالكم أسبوع عمل مريح، بلا meetings مزعجة ولا bugs مفاجئة!
كما جرت العادة نستقبل اسئلتكم على Instagram من خلال الرابط: هنا
بانتظار أسئلتكم 🙏🏻
❤3
تسريب أكثر من 260,000 مفتاح APP_KEY من تطبيقات Laravel على GitHub!
كشف باحثو أمن معلومات عن ثغرة خطيرة تهدد مئات التطبيقات المبنية بلارافيل بعد تسريب مفاتيح التشفير (APP_KEY) عبر GitHub.
شو هو الـ APP_KEY؟
هو المفتاح اللي بيستخدمه Laravel لتشفير البيانات والجلسات وتوليد التوكنات. إذا تسرب، المهاجمين بيقدروا ينفذوا كود عن بُعد (RCE) بدون ما يخترقوا الكود أو يدخلوا للنظام!
كشف باحثو أمن معلومات عن ثغرة خطيرة تهدد مئات التطبيقات المبنية بلارافيل بعد تسريب مفاتيح التشفير (APP_KEY) عبر GitHub.
شو هو الـ APP_KEY؟
هو المفتاح اللي بيستخدمه Laravel لتشفير البيانات والجلسات وتوليد التوكنات. إذا تسرب، المهاجمين بيقدروا ينفذوا كود عن بُعد (RCE) بدون ما يخترقوا الكود أو يدخلوا للنظام!
📊 أرقام صادمة:
260 ألف مفتاح APP_KEY تم تسريبهم علنًا.
600 تطبيق معرض للخطر.
120 تطبيق يمكن اختراقهم فورًا عن بعد بسبب الجمع بين APP_KEY و APP_URL.
كيف تحمي تطبيقك؟
لا ترفع ملف .env على GitHub أبداً 🚫
إذا تسرب المفتاح:
بدله فوراً (php artisan key:generate)
امسح الجلسات والتوكنات القديمة
استخدم أدوات مراقبة مثل GitGuardian أو GitHub Secret Scanning
تجنب استخدام SESSION_DRIVER=cookie في الإنتاج
لا تحط أسرارك داخل Docker Images أو ملفات CI/CD
و على فكرة لارافيل بشكل افتراضي تضع ملف .env ضمن ملف .gitignore، لهيك المشكلة مو منها المشكلة من المبرمجين اللي ما بينتهبوا على هي الامور
260 ألف مفتاح APP_KEY تم تسريبهم علنًا.
600 تطبيق معرض للخطر.
120 تطبيق يمكن اختراقهم فورًا عن بعد بسبب الجمع بين APP_KEY و APP_URL.
كيف تحمي تطبيقك؟
لا ترفع ملف .env على GitHub أبداً 🚫
إذا تسرب المفتاح:
بدله فوراً (php artisan key:generate)
امسح الجلسات والتوكنات القديمة
استخدم أدوات مراقبة مثل GitGuardian أو GitHub Secret Scanning
تجنب استخدام SESSION_DRIVER=cookie في الإنتاج
لا تحط أسرارك داخل Docker Images أو ملفات CI/CD
و على فكرة لارافيل بشكل افتراضي تضع ملف .env ضمن ملف .gitignore، لهيك المشكلة مو منها المشكلة من المبرمجين اللي ما بينتهبوا على هي الامور
👍7❤5
عيد ميلاد Django الـ 20! 🎂🎉
اليوم، 13 تموز 2025، نحتفل بـ مرور 20 سنة على إطلاق إطار العمل Django، واحد من أقوى وأشهر أطر تطوير الويب بلغة Python، والذي انطلق لأول مرة في 13 يوليو 2005! 🚀💝
الـ Django، الذي ساهم في تسريع تطوير تطبيقات الويب الآمنة والقابلة للتوسع، يحتفل هذه السنة بسلسلة من الفعاليات المجتمعية حول العالم، تشمل مؤتمرات وورشات عمل ولقاءات محلية 🎤🌍
#Django #Python #Django20 #WebDevelopment #OpenSource
اليوم، 13 تموز 2025، نحتفل بـ مرور 20 سنة على إطلاق إطار العمل Django، واحد من أقوى وأشهر أطر تطوير الويب بلغة Python، والذي انطلق لأول مرة في 13 يوليو 2005! 🚀💝
الـ Django، الذي ساهم في تسريع تطوير تطبيقات الويب الآمنة والقابلة للتوسع، يحتفل هذه السنة بسلسلة من الفعاليات المجتمعية حول العالم، تشمل مؤتمرات وورشات عمل ولقاءات محلية 🎤🌍
#Django #Python #Django20 #WebDevelopment #OpenSource
❤6🔥2
لكل بنت مهتمة تتعلّم أساسيات الذكاء الاصطناعي، في فرصة مجانية 100٪ ما لازم تفوتك!
الذكاء الاصطناعي صار مهارة أساسية بأي مجال اليوم، ولهيك Microsoft بالتعاون مع Founderz أطلقوا دورة AI Skills 4 Women المصممة خصيصاً للبنات والصبايا المهتمات بدخول هذا المجال.
📌 التسجيل مجاني من هون:
https://founderz.com/aiskills4women/
الذكاء الاصطناعي صار مهارة أساسية بأي مجال اليوم، ولهيك Microsoft بالتعاون مع Founderz أطلقوا دورة AI Skills 4 Women المصممة خصيصاً للبنات والصبايا المهتمات بدخول هذا المجال.
📌 التسجيل مجاني من هون:
https://founderz.com/aiskills4women/
Founderz
AI Skills 4 Women | Founderz
A free course designed for women in AI. Gain essential skills, connect with a supportive community, and explore career opportunities.
🔥8
إذا نويت تربط ChatGPT بمشروعك او اي ذكاء اصطناعي اخر رح تمر عليك مجموعة من المفاهيم و خصوصاً إذا ماكنت جاية من خلفية ذكاء اصطناعي رح تحسها غريبة و ما تفهمها و لهيك جبتلك هاد الشرح من Google
❤6👍1
#منقول
هل أنت مطوّر Django وتبحث عن فرصة مختلفة؟
نبحث عن مطوّر Django شغوف وملتزم للانضمام إلى فريقنا في مشروع ريادي واعد يدمج التقنية بالابتكار.
المتطلبات الأساسية:
🔹 خبرة عملية +2 سنوات في تطوير Django
🔹 القدرة على الالتزام بدوام يومي مرن من 4 إلى 6 ساعات
🔹 بيئة عمل هجينة (Hybrid): بين المكتب والعمل عن بُعد
عن المشروع:
"مقنِع" هي منصة ذكية تُساعد روّاد الأعمال على تحويل أفكارهم إلى عروض تقديمية مقنعة وجاهزة للمستثمرين، باستخدام تقنيات الذكاء الاصطناعي.
إذا كنت تبحث عن تحدٍ حقيقي وفرصة لتكون جزءًا من منتج تقني مختلف… يسعدنا تواصلك معنا!
أرسل سيرتك الذاتية أو نماذج من أعمالك إلى:
muqne32024@gmail.com
تاغ ومنشن لـ وحش البآاكإِند!
#BackendDeveloper
#Django
#تطوير_ويب
#وظائف_سوريا
#منصة_مقنع
هل أنت مطوّر Django وتبحث عن فرصة مختلفة؟
نبحث عن مطوّر Django شغوف وملتزم للانضمام إلى فريقنا في مشروع ريادي واعد يدمج التقنية بالابتكار.
المتطلبات الأساسية:
🔹 خبرة عملية +2 سنوات في تطوير Django
🔹 القدرة على الالتزام بدوام يومي مرن من 4 إلى 6 ساعات
🔹 بيئة عمل هجينة (Hybrid): بين المكتب والعمل عن بُعد
عن المشروع:
"مقنِع" هي منصة ذكية تُساعد روّاد الأعمال على تحويل أفكارهم إلى عروض تقديمية مقنعة وجاهزة للمستثمرين، باستخدام تقنيات الذكاء الاصطناعي.
إذا كنت تبحث عن تحدٍ حقيقي وفرصة لتكون جزءًا من منتج تقني مختلف… يسعدنا تواصلك معنا!
أرسل سيرتك الذاتية أو نماذج من أعمالك إلى:
muqne32024@gmail.com
تاغ ومنشن لـ وحش البآاكإِند!
#BackendDeveloper
#Django
#تطوير_ويب
#وظائف_سوريا
#منصة_مقنع
❤7
تحديث ضخم لـ NativePHP for Mobile – الإصدار 1.1 أصبح متاح الآن!
بعد شغل كبير، فريق NativePHP أطلق التحديث الجديد v1.1، واللي جاب معو تحسينات جذرية وميزات خرافية 🔥
شو الجديد؟
✅ Geolocation – صار فيك تجيب موقع المستخدم بدقة وبدعم الأذونات
✅ Splash Screens – شاشات ترحيبية مخصصة لتجربة مستخدم احترافية
✅ Secure Storage – خزّن التوكنز والمفاتيح بأمان باستخدام Keychain أو Keystore
✅ Media Library Access – خلي المستخدم يختار صور وفيديوهات من المعرض بسهولة
✅ دعم Android 15 Edge-to-Edge
✅ دعم ProGuard و R8 على أندرويد
✅ حزم Laravel مضغوطة على iOS لتسريع تجربة التطوير 🚀
تحسينات الأداء؟ كتيرة 👇
🔹 حجم مكتبات PHP المضمنة تقلّص بأكثر من 50%
🔹 حجم تطبيقاتك صار أخف (بعضها صار أصغر بـ 30MB)
🔹 سرعة تحميل أسرع
🔹 أداء PHP أسرع
نظام API جديد وأكثر تنظيمًا
تم فصل الـ APIs إلى Facades خاصة بكل ميّزة مثل:
📦 Geolocation, SecureStorage, Camera, Biometrics وغيرها
وكلها متوافقة مع Laravel بشكل أنيق وسلس.
المفاجأة؟
📚 تم إعادة كتابة كل التوثيق من الصفر ليكون أوضح وأسهل لأي مطور Laravel – حتى لو ما سبق لك طوّرت تطبيق موبايل!
بعد شغل كبير، فريق NativePHP أطلق التحديث الجديد v1.1، واللي جاب معو تحسينات جذرية وميزات خرافية 🔥
شو الجديد؟
✅ Geolocation – صار فيك تجيب موقع المستخدم بدقة وبدعم الأذونات
✅ Splash Screens – شاشات ترحيبية مخصصة لتجربة مستخدم احترافية
✅ Secure Storage – خزّن التوكنز والمفاتيح بأمان باستخدام Keychain أو Keystore
✅ Media Library Access – خلي المستخدم يختار صور وفيديوهات من المعرض بسهولة
✅ دعم Android 15 Edge-to-Edge
✅ دعم ProGuard و R8 على أندرويد
✅ حزم Laravel مضغوطة على iOS لتسريع تجربة التطوير 🚀
تحسينات الأداء؟ كتيرة 👇
🔹 حجم مكتبات PHP المضمنة تقلّص بأكثر من 50%
🔹 حجم تطبيقاتك صار أخف (بعضها صار أصغر بـ 30MB)
🔹 سرعة تحميل أسرع
🔹 أداء PHP أسرع
نظام API جديد وأكثر تنظيمًا
تم فصل الـ APIs إلى Facades خاصة بكل ميّزة مثل:
📦 Geolocation, SecureStorage, Camera, Biometrics وغيرها
وكلها متوافقة مع Laravel بشكل أنيق وسلس.
المفاجأة؟
📚 تم إعادة كتابة كل التوثيق من الصفر ليكون أوضح وأسهل لأي مطور Laravel – حتى لو ما سبق لك طوّرت تطبيق موبايل!
❤7🔥2👍1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
لو بتستخدم Docker بشكل يومي، في أداة لازم تعرفها 👇
🔥 ctop = واجهة تفاعلية في التيرمنال بتخليك تراقب الـ containers لحظيًا وكأنك فاتح htop... بس لـ Docker!
🧠 الميّزات:
✅ عرض استهلاك CPU / Memory / Network
✅ ألوان تفاعلية مريحة وسريعة الفهم
✅ ترتيب حسب أكثر كونتينر بيستهلك
✅ خفيفة جدًا وسهلة التثبيت
✅ تشتغل بسطر واحد: ctop
🎯 مثالية لأي مطوّر بيشتغل على microservices أو أنظمة مركبة.
جربها ووفّر وقتك في الـ debugging!
🔥 ctop = واجهة تفاعلية في التيرمنال بتخليك تراقب الـ containers لحظيًا وكأنك فاتح htop... بس لـ Docker!
🧠 الميّزات:
✅ عرض استهلاك CPU / Memory / Network
✅ ألوان تفاعلية مريحة وسريعة الفهم
✅ ترتيب حسب أكثر كونتينر بيستهلك
✅ خفيفة جدًا وسهلة التثبيت
✅ تشتغل بسطر واحد: ctop
🎯 مثالية لأي مطوّر بيشتغل على microservices أو أنظمة مركبة.
جربها ووفّر وقتك في الـ debugging!
❤8🔥1
Forwarded from Roduan Kareem Aldeen - رضوان كريم الدين
اذا عم تستعمل Livewire حدث مباشرة لنسخة V3.6.4
باختصار: في ثغرة امنية بتسمح للمخترق تشغيل أوامر عالسيرفر
https://github.com/livewire/livewire/security/advisories/GHSA-29cq-5w36-x7w3
باختصار: في ثغرة امنية بتسمح للمخترق تشغيل أوامر عالسيرفر
https://github.com/livewire/livewire/security/advisories/GHSA-29cq-5w36-x7w3
❤9👍2
❓ كم يستغرق تفعيل حساب الاستضافة في Namecheap؟
✅ الإجابة:
يعتمد وقت التفعيل على نوع باقة الاستضافة:
🔹 الاستضافة المشتركة (Shared) والموزعة (Reseller):
يتم تفعيل الحساب تلقائيًا خلال دقائق. في حالات نادرة، قد يتطلب الأمر تدخل يدوي ويستغرق حتى 30 دقيقة.
🔸 سيرفر VPS:
رغم وصول رسالة الترحيب فورًا، يُفضل الانتظار حوالي ساعتين قبل البدء، خصوصًا إذا كانت الباقة تحتوي على cPanel.
أما إذا كانت الباقة بإدارة أساسية أو كاملة (Basic/Complete Management)، فقد يستغرق الإعداد حتى 4 ساعات.
🔹 السيرفرات الخاصة (Dedicated Servers):
يتم التحقق من الطلب يدويًا لدواعي أمنية. بعد التحقق، يبدأ تجهيز السيرفر حسب النظام والإدارة المختارة، وقد يستغرق حتى 24 ساعة في حال الإدارة الكاملة.
✅ الإجابة:
يعتمد وقت التفعيل على نوع باقة الاستضافة:
🔹 الاستضافة المشتركة (Shared) والموزعة (Reseller):
يتم تفعيل الحساب تلقائيًا خلال دقائق. في حالات نادرة، قد يتطلب الأمر تدخل يدوي ويستغرق حتى 30 دقيقة.
🔸 سيرفر VPS:
رغم وصول رسالة الترحيب فورًا، يُفضل الانتظار حوالي ساعتين قبل البدء، خصوصًا إذا كانت الباقة تحتوي على cPanel.
أما إذا كانت الباقة بإدارة أساسية أو كاملة (Basic/Complete Management)، فقد يستغرق الإعداد حتى 4 ساعات.
🔹 السيرفرات الخاصة (Dedicated Servers):
يتم التحقق من الطلب يدويًا لدواعي أمنية. بعد التحقق، يبدأ تجهيز السيرفر حسب النظام والإدارة المختارة، وقد يستغرق حتى 24 ساعة في حال الإدارة الكاملة.
❤6
مشكلة واجهتني بعد نقل مشروع Laravel للـ Production (وحلها كان بسيط بس مهم!)
بعد ما نقلت مشروعي المبني بـ Laravel 12.20 و PHP 8.3 من جهازي المحلي للسيرفر (عليه WHM و Filament Admin Panel)، حاولت سجل دخول وفجأة طلعلي الخطأ التالي:
MethodNotAllowedHttpException
POST مو مدعوم على /admin/login، بس في GET و HEAD!
دورت بكل مكان، لكن الحل كان ببساطة:
تابع باقي التفاصيل على المنشور في LinkedIn هنا
بعد ما نقلت مشروعي المبني بـ Laravel 12.20 و PHP 8.3 من جهازي المحلي للسيرفر (عليه WHM و Filament Admin Panel)، حاولت سجل دخول وفجأة طلعلي الخطأ التالي:
MethodNotAllowedHttpException
POST مو مدعوم على /admin/login، بس في GET و HEAD!
دورت بكل مكان، لكن الحل كان ببساطة:
تابع باقي التفاصيل على المنشور في LinkedIn هنا
❤4🔥2😁1👾1
📌 معلومة Laravel مهمة لازم تعرفها 👇
إذا استعملت الكود التالي:
👈 الـ Observers مثل deleting() و deleted() ما رح تشتغل!
🔍 ليش؟
هالكود بيعمل Direct SQL DELETE من قاعدة البيانات بدون ما يعمل Load للـ Models، وبالتالي ما بيمر على نظام الـ Events والـ Observers تبع Laravel.
✅ الحل الصح:
إذا بدك الـ deleting و deleted يشتغلوا، لازم تعمل Load للسجلات أولاً وبعدين تحذف كل واحد:
🔑 نفس الفكرة بتنطبق على update():
💡 الخلاصة:
->delete() و ->update() المباشرة = ما في Observers
foreach مع delete() أو update() = Observers شغالة ✅
#Laravel #Eloquent #Observers #PHP #Tips
إذا استعملت الكود التالي:
Model::where(...)->delete();
👈 الـ Observers مثل deleting() و deleted() ما رح تشتغل!
🔍 ليش؟
هالكود بيعمل Direct SQL DELETE من قاعدة البيانات بدون ما يعمل Load للـ Models، وبالتالي ما بيمر على نظام الـ Events والـ Observers تبع Laravel.
✅ الحل الصح:
إذا بدك الـ deleting و deleted يشتغلوا، لازم تعمل Load للسجلات أولاً وبعدين تحذف كل واحد:
$models = Model::where(...)->get();
foreach ($models as $model) {
$model->delete(); // هون بتشتغل الـ Observers
}
🔑 نفس الفكرة بتنطبق على update():
Model::where(...)->update(['field' => 'value']); // ما بيشغل updating/updated
💡 الخلاصة:
->delete() و ->update() المباشرة = ما في Observers
foreach مع delete() أو update() = Observers شغالة ✅
#Laravel #Eloquent #Observers #PHP #Tips
❤7👍6
من بعد غياب رجعنا ناخد اسئلتكم على instgram و تم جدولة محتوى الشهر القادم
بانتظاركم من خلال الرابط:
https://www.instagram.com/stories/code.with.somar/3687448949335606067?utm_source=ig_story_item_share&igsh=NmdjamhlajQ4OTNh
بانتظاركم من خلال الرابط:
https://www.instagram.com/stories/code.with.somar/3687448949335606067?utm_source=ig_story_item_share&igsh=NmdjamhlajQ4OTNh
❤2