Forwarded from اللجنة العلمية CS 22 (Osama Dammag)
السلام عليكم ي شباب 👋،
اصحاب التطبيقات المرفوعة في ال stores. في حاجه ضخمه لتوفير الوقت الذي تاخذه عشان التحديث. يعني بدل ما تعمل build و bundling ك apk و رفعه على ال store و تنتظر لصاحب ال store انه يراجع التحديثات الذي فعلتهم. في tool اسمها Shorebird Code Push. يعني الان تعرف تحدث تطبيقك بدون ما تعيد نشرة(رفعة) على ال store.
رابط الفيديو يشرح هذا الشيء كامل 👍
https://youtu.be/LX65WcrwtQc
تقبل الله منا ومنكم صالح الأعمال وكل عام وانتم بخير و بصحة وسلامة اعزائى 🤍.
اصحاب التطبيقات المرفوعة في ال stores. في حاجه ضخمه لتوفير الوقت الذي تاخذه عشان التحديث. يعني بدل ما تعمل build و bundling ك apk و رفعه على ال store و تنتظر لصاحب ال store انه يراجع التحديثات الذي فعلتهم. في tool اسمها Shorebird Code Push. يعني الان تعرف تحدث تطبيقك بدون ما تعيد نشرة(رفعة) على ال store.
رابط الفيديو يشرح هذا الشيء كامل 👍
https://youtu.be/LX65WcrwtQc
تقبل الله منا ومنكم صالح الأعمال وكل عام وانتم بخير و بصحة وسلامة اعزائى 🤍.
YouTube
Shorebird Code Push: Update Your Flutter App Instantly
Learn how to use Shorebird's Code Push to update your Flutter app instantly—without waiting for App Store or Play Store approvals! In this video, we'll cover everything from creating releases and patches to rolling back updates and managing artifacts. Stay…
🔥3
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
إلى كل UI/UX Designer وأي واحد يشتغل في المجال السوفتوير...
الـ AI مش جاي ياخذ مكانك، الـ AI جاي يفضحك! أيوه والله، الـ AI بيورّي الناس كلها إن أي حد يقدر يسوي اللي تسويه إذا كان شغلك بس تنفيذ وأدوات.
يعني لما تجي تصمّم لعيادة أسنان، مش تفكر كيف تخلي شكل السِنة حلو وبس، لا، تفكر في إحساس الشخص اللي خايف يروح للدكتور، تفكر كيف تطمّنه من أول ما يشوف التصميم.
شغلتك مش صورة وبس، شغلتك توصّل إحساس! تحرّك قرار، مش مجرد شكل. وهذا شيء الـ AI ما يقدر عليه.
الشطارة اليوم مش إنك تعرف تستخدم الأدوات! الشطارة إنك تكون مفكّر بصري، تفهم كيف تحل مشاكل حقيقية في السوق، تكون فاهم سيكولوجية المستخدم، تكون دارس تسويق، تقرأ، تسأل، تفكّر، تجرّب، تغلط، وتقوم تشتغل من جديد.
اللي الـ AI مستحيل يسويه هو طريقة تفكيرك… كيف تفكّك المشكلة؟ كيف تربط بين فكرة العميل واحتياج الناس؟ كيف تعرف متى تستخدم الأحمر… ومتى لا؟ كيف تخلي تجربة المستخدم سلسة من أول ما يشوف التصميم لحد ما يضغط على الزرار؟
هذا شغلك، وهذا الفرق بينك وبين AI.
#التصميم_مش_أدوات #فكر_قبل_ما_تصمّم #AI_مايقدر_يفكر_مكانك
الـ AI مش جاي ياخذ مكانك، الـ AI جاي يفضحك! أيوه والله، الـ AI بيورّي الناس كلها إن أي حد يقدر يسوي اللي تسويه إذا كان شغلك بس تنفيذ وأدوات.
يعني لما تجي تصمّم لعيادة أسنان، مش تفكر كيف تخلي شكل السِنة حلو وبس، لا، تفكر في إحساس الشخص اللي خايف يروح للدكتور، تفكر كيف تطمّنه من أول ما يشوف التصميم.
شغلتك مش صورة وبس، شغلتك توصّل إحساس! تحرّك قرار، مش مجرد شكل. وهذا شيء الـ AI ما يقدر عليه.
الشطارة اليوم مش إنك تعرف تستخدم الأدوات! الشطارة إنك تكون مفكّر بصري، تفهم كيف تحل مشاكل حقيقية في السوق، تكون فاهم سيكولوجية المستخدم، تكون دارس تسويق، تقرأ، تسأل، تفكّر، تجرّب، تغلط، وتقوم تشتغل من جديد.
اللي الـ AI مستحيل يسويه هو طريقة تفكيرك… كيف تفكّك المشكلة؟ كيف تربط بين فكرة العميل واحتياج الناس؟ كيف تعرف متى تستخدم الأحمر… ومتى لا؟ كيف تخلي تجربة المستخدم سلسة من أول ما يشوف التصميم لحد ما يضغط على الزرار؟
هذا شغلك، وهذا الفرق بينك وبين AI.
#التصميم_مش_أدوات #فكر_قبل_ما_تصمّم #AI_مايقدر_يفكر_مكانك
❤2
Forwarded from اللجنة العلمية CS 22 (ʙʀʜᴏᴏᴍ ⑇)
https://www.shadcn-vue.com/
من أعظم مكاتب ui component على الاطلاق....
الاصل رياكت... وهذا الرابط مشروع port منه خاص بـ vue
وموجود لـ angular طبعاً وفي كثير...
اذا مافي port للفريمورك الي تشتغل عليه هذه فرصه رهيبه تسوي انت المشروع وتشاركه open source
بيكون شي قوي في cv
من أعظم مكاتب ui component على الاطلاق....
الاصل رياكت... وهذا الرابط مشروع port منه خاص بـ vue
وموجود لـ angular طبعاً وفي كثير...
اذا مافي port للفريمورك الي تشتغل عليه هذه فرصه رهيبه تسوي انت المشروع وتشاركه open source
بيكون شي قوي في cv
Shadcn-Vue
The Foundation for your Design System
A set of beautifully designed components that you can customize, extend, and build on. Start here then make it your own. Open Source. Open Code.
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
هل يجب استخدام Clean Architecture في مشروع التخرج؟
مشروع التخرج ليس مجرد عرض تقديمي أو استعراض لمصطلحات معمارية، بل هو إثبات عملي لما تعلمته طوال سنوات دراستك. الفكرة ليست في الالتزام الأعمى بمفاهيم مثل Clean Architecture لمجرد تطبيقها، بل في تقديم منتج نهائي قوي وفعّال يعكس فهمك العميق للمبادئ البرمجية، بغض النظر عن المسميات.
إذا بدأت منذ البداية بتطبيق Clean Architecture وفق أصولها، فهذا رائع، لكنه يتطلب وقتًا وجهدًا كبيرين في التخطيط والتفصيل. أما إن كنت في مرحلة متأخرة من المشروع، فلا يجب أن تستهلك وقتك في تفاصيل قد تؤخرك دون فائدة جوهرية، بل ركّز على جودة الكود، أفضل الممارسات، وتحقيق الأهداف الوظيفية للنظام.
الهدف من مشروع التخرج ليس مجرد استخدام تقنيات متقدمة أو إدخال الذكاء الاصطناعي بلا فهم، بل تقديم نظام يعمل بكفاءة ويمثل مستواك الحقيقي كمبرمج. لو قدّم الطالب نظامًا بسيطًا، لكنه مكتوب بأفضل الممارسات ويمثل فهمًا عميقًا للمفاهيم البرمجية، فهذا إنجاز حقيقي.
النتيجة؟
✔ ركّز على المنتج النهائي
✔ طبق ما يخدم مشروعك فعلًا
✔ لا تضيّع وقتك في تفاصيل لا تضيف قيمة حقيقية
مشروع التخرج ليس مجرد عرض تقديمي أو استعراض لمصطلحات معمارية، بل هو إثبات عملي لما تعلمته طوال سنوات دراستك. الفكرة ليست في الالتزام الأعمى بمفاهيم مثل Clean Architecture لمجرد تطبيقها، بل في تقديم منتج نهائي قوي وفعّال يعكس فهمك العميق للمبادئ البرمجية، بغض النظر عن المسميات.
إذا بدأت منذ البداية بتطبيق Clean Architecture وفق أصولها، فهذا رائع، لكنه يتطلب وقتًا وجهدًا كبيرين في التخطيط والتفصيل. أما إن كنت في مرحلة متأخرة من المشروع، فلا يجب أن تستهلك وقتك في تفاصيل قد تؤخرك دون فائدة جوهرية، بل ركّز على جودة الكود، أفضل الممارسات، وتحقيق الأهداف الوظيفية للنظام.
الهدف من مشروع التخرج ليس مجرد استخدام تقنيات متقدمة أو إدخال الذكاء الاصطناعي بلا فهم، بل تقديم نظام يعمل بكفاءة ويمثل مستواك الحقيقي كمبرمج. لو قدّم الطالب نظامًا بسيطًا، لكنه مكتوب بأفضل الممارسات ويمثل فهمًا عميقًا للمفاهيم البرمجية، فهذا إنجاز حقيقي.
النتيجة؟
✔ ركّز على المنتج النهائي
✔ طبق ما يخدم مشروعك فعلًا
✔ لا تضيّع وقتك في تفاصيل لا تضيف قيمة حقيقية
❤1
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
ما هي الـ Anti-Patterns؟ 🤔
الـ Anti-Patterns هي الممارسات السيئة في التصميم أو التطوير التي تبدو في البداية كحلول جيدة، لكنها تؤدي إلى مشاكل معقدة مع مرور الوقت. هي عكس الـ Design Patterns التي تساعد على تحسين جودة الكود.
أشهر أنواع الـ Anti-Patterns:
1️⃣ Spaghetti Code 🍝
كود متداخل ومعقد، بدون تنظيم واضح أو طبقات.
من الصعب قراءته أو صيانته، وكل تعديل قد يسبب مشاكل غير متوقعة.
يحدث غالبًا بسبب غياب التصميم الجيد من البداية.
2️⃣ God Object / Big Ball of Mud 🏀
كائن أو فئة تحتوي على وظائف أكثر من اللازم وتتحكم في كل شيء.
يجعل الكود غير مرن، وكل تعديل قد يؤثر على أجزاء متعددة.
3️⃣ Hard Coding 🔢
وضع القيم مباشرة داخل الكود بدلًا من استخدام إعدادات قابلة للتغيير.
مثل كتابة "localhost:1433" داخل الكود بدلًا من قراءته من ملف إعدادات.
4️⃣ Magic Numbers and Strings 🎩
استخدام أرقام أو نصوص بدون تفسير، مما يجعل الكود غير مفهوم.
الحل: استبدالها بالثوابت (const) أو القيم المعرفّة (enum).
5️⃣ Copy-Paste Programming 📄📄
تكرار نفس الكود في أكثر من مكان بدلًا من إعادة استخدامه بطريقة صحيحة.
يؤدي إلى صعوبة في الصيانة، حيث يجب تعديل كل نسخة يدويًا.
6️⃣ Singleton Overuse 🏛
استخدام Singleton في كل مكان، مما يجعل الكود معتمدًا على حالة واحدة يصعب التحكم بها.
الحل: استخدم Dependency Injection بدلًا من ذلك.
7️⃣ Lava Flow 🌋
كود غير مستخدم أو موروث من مراحل تطوير سابقة لكنه لا يزال موجودًا بدون داعٍ.
يزيد تعقيد المشروع، ويجعل التعديلات أكثر خطورة.
8️⃣ Golden Hammer 🔨
محاولة استخدام نفس الأداة لحل كل مشكلة، مثل استخدام Design Pattern معين في كل موقف حتى لو لم يكن مناسبًا.
كيف تتجنب الـ Anti-Patterns؟
✅ استخدم مبادئ SOLID لتصميم الكود.
✅ ركّز على نظافة الكود بدلًا من الحلول السريعة.
✅ قم بالمراجعة الدورية للكود (Code Reviews).
✅ تعلم متى ولماذا تستخدم كل نمط تصميم، وليس فقط كيف تطبقه.
النتيجة؟ لا تقع في فخ الـ Anti-Patterns، فمعظمها يبدأ كحل سريع لكنه ينتهي بكود كارثي على المدى الطويل! 🚀
الـ Anti-Patterns هي الممارسات السيئة في التصميم أو التطوير التي تبدو في البداية كحلول جيدة، لكنها تؤدي إلى مشاكل معقدة مع مرور الوقت. هي عكس الـ Design Patterns التي تساعد على تحسين جودة الكود.
أشهر أنواع الـ Anti-Patterns:
1️⃣ Spaghetti Code 🍝
كود متداخل ومعقد، بدون تنظيم واضح أو طبقات.
من الصعب قراءته أو صيانته، وكل تعديل قد يسبب مشاكل غير متوقعة.
يحدث غالبًا بسبب غياب التصميم الجيد من البداية.
2️⃣ God Object / Big Ball of Mud 🏀
كائن أو فئة تحتوي على وظائف أكثر من اللازم وتتحكم في كل شيء.
يجعل الكود غير مرن، وكل تعديل قد يؤثر على أجزاء متعددة.
3️⃣ Hard Coding 🔢
وضع القيم مباشرة داخل الكود بدلًا من استخدام إعدادات قابلة للتغيير.
مثل كتابة "localhost:1433" داخل الكود بدلًا من قراءته من ملف إعدادات.
4️⃣ Magic Numbers and Strings 🎩
استخدام أرقام أو نصوص بدون تفسير، مما يجعل الكود غير مفهوم.
الحل: استبدالها بالثوابت (const) أو القيم المعرفّة (enum).
5️⃣ Copy-Paste Programming 📄📄
تكرار نفس الكود في أكثر من مكان بدلًا من إعادة استخدامه بطريقة صحيحة.
يؤدي إلى صعوبة في الصيانة، حيث يجب تعديل كل نسخة يدويًا.
6️⃣ Singleton Overuse 🏛
استخدام Singleton في كل مكان، مما يجعل الكود معتمدًا على حالة واحدة يصعب التحكم بها.
الحل: استخدم Dependency Injection بدلًا من ذلك.
7️⃣ Lava Flow 🌋
كود غير مستخدم أو موروث من مراحل تطوير سابقة لكنه لا يزال موجودًا بدون داعٍ.
يزيد تعقيد المشروع، ويجعل التعديلات أكثر خطورة.
8️⃣ Golden Hammer 🔨
محاولة استخدام نفس الأداة لحل كل مشكلة، مثل استخدام Design Pattern معين في كل موقف حتى لو لم يكن مناسبًا.
كيف تتجنب الـ Anti-Patterns؟
✅ استخدم مبادئ SOLID لتصميم الكود.
✅ ركّز على نظافة الكود بدلًا من الحلول السريعة.
✅ قم بالمراجعة الدورية للكود (Code Reviews).
✅ تعلم متى ولماذا تستخدم كل نمط تصميم، وليس فقط كيف تطبقه.
النتيجة؟ لا تقع في فخ الـ Anti-Patterns، فمعظمها يبدأ كحل سريع لكنه ينتهي بكود كارثي على المدى الطويل! 🚀
👍2
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
Hexagonal و Onion و Clean Architecture: هل نحن في سوق "تشليح" البرمجيات؟
في عالم البرمجيات، كثيرًا ما نسمع عن Clean Architecture، ثم نجد Hexagonal Architecture وOnion Architecture تتصدر المشهد، مما يجعل البعض يتساءل: هل هذه مجرد إعادة تغليف لنفس الفكرة، أم أن هناك فروقًا حقيقية؟ 🤔
الحقيقة؟ هذه المعماريات ليست سوى تفكيك وإعادة ترتيب لنفس المفاهيم، وكأننا في سوق "تشليح" البرمجيات، حيث يأخذ كل منهج جزءًا من الآخر، يغير بعض الأسماء، ثم يقدّمه كمفهوم جديد. لكن الفرق الحقيقي يكمن في التفاصيل:
1️⃣ Clean Architecture (المفهوم الأصلي)
يُركز على المرونة العالية، قابلية التغيير، وفصل الطبقات بطريقة تجعل النظام غير معتمد على أي إطار عمل أو قاعدة بيانات.
يعتمد على دوائر متداخلة، حيث يكون الـ Entities والقواعد التجارية في المركز، وتبتعد التفاصيل مثل واجهات المستخدم وقواعد البيانات إلى الأطراف.
2️⃣ Hexagonal Architecture (Ports and Adapters)
الفكرة الأساسية هي أن النظام يجب أن يكون مستقلاً تمامًا عن العالم الخارجي (مثل قواعد البيانات، الـ APIs، وواجهات المستخدم).
يتم تحقيق ذلك باستخدام المنافذ (Ports) والمهايئات (Adapters)، بحيث يتواصل النظام مع الخارج عبر واجهات مجرّدة.
3️⃣ Onion Architecture
يشبه Clean Architecture لكنه يؤكد أكثر على عدم الاعتماد على أي طبقة خارجية.
البنية هنا حرفيًا مثل البصلة 🧅، حيث تكون القواعد التجارية في الطبقة الأعمق، وتلتف حولها الطبقات الأخرى بشكل محكم.
إذًا، هل هناك فرق جوهري؟
✅ Clean Architecture هو الأصل، والاثنان الآخران مجرد تفصيلات مختلفة لنفس المفهوم.
✅ Hexagonal يركز على العزل بين النظام والعالم الخارجي عبر المنافذ والمهايئات.
✅ Onion يأخذ نفس المبدأ لكنه يضع القواعد التجارية في المركز، مع طبقات منظمة بشكل دائري.
النتيجة؟
🔹 هذه ليست مدارس مختلفة، بل مجرد "تشليح" لنفس الفكرة بأساليب متنوعة.
🔹 لا تهتم بالأسماء، ركّز على المبدأ الأساسي: جعل النظام نظيفًا، مستقلاً، وسهل التغيير.
🔹 إذا فهمت واحدة منها، فأنت عمليًا فهمتها كلها!
#الواقع
في عالم البرمجيات، كثيرًا ما نسمع عن Clean Architecture، ثم نجد Hexagonal Architecture وOnion Architecture تتصدر المشهد، مما يجعل البعض يتساءل: هل هذه مجرد إعادة تغليف لنفس الفكرة، أم أن هناك فروقًا حقيقية؟ 🤔
الحقيقة؟ هذه المعماريات ليست سوى تفكيك وإعادة ترتيب لنفس المفاهيم، وكأننا في سوق "تشليح" البرمجيات، حيث يأخذ كل منهج جزءًا من الآخر، يغير بعض الأسماء، ثم يقدّمه كمفهوم جديد. لكن الفرق الحقيقي يكمن في التفاصيل:
1️⃣ Clean Architecture (المفهوم الأصلي)
يُركز على المرونة العالية، قابلية التغيير، وفصل الطبقات بطريقة تجعل النظام غير معتمد على أي إطار عمل أو قاعدة بيانات.
يعتمد على دوائر متداخلة، حيث يكون الـ Entities والقواعد التجارية في المركز، وتبتعد التفاصيل مثل واجهات المستخدم وقواعد البيانات إلى الأطراف.
2️⃣ Hexagonal Architecture (Ports and Adapters)
الفكرة الأساسية هي أن النظام يجب أن يكون مستقلاً تمامًا عن العالم الخارجي (مثل قواعد البيانات، الـ APIs، وواجهات المستخدم).
يتم تحقيق ذلك باستخدام المنافذ (Ports) والمهايئات (Adapters)، بحيث يتواصل النظام مع الخارج عبر واجهات مجرّدة.
3️⃣ Onion Architecture
يشبه Clean Architecture لكنه يؤكد أكثر على عدم الاعتماد على أي طبقة خارجية.
البنية هنا حرفيًا مثل البصلة 🧅، حيث تكون القواعد التجارية في الطبقة الأعمق، وتلتف حولها الطبقات الأخرى بشكل محكم.
إذًا، هل هناك فرق جوهري؟
✅ Clean Architecture هو الأصل، والاثنان الآخران مجرد تفصيلات مختلفة لنفس المفهوم.
✅ Hexagonal يركز على العزل بين النظام والعالم الخارجي عبر المنافذ والمهايئات.
✅ Onion يأخذ نفس المبدأ لكنه يضع القواعد التجارية في المركز، مع طبقات منظمة بشكل دائري.
النتيجة؟
🔹 هذه ليست مدارس مختلفة، بل مجرد "تشليح" لنفس الفكرة بأساليب متنوعة.
🔹 لا تهتم بالأسماء، ركّز على المبدأ الأساسي: جعل النظام نظيفًا، مستقلاً، وسهل التغيير.
🔹 إذا فهمت واحدة منها، فأنت عمليًا فهمتها كلها!
#الواقع
Forwarded from 🚀DevJourney🚀 (Abdulwaisa Al Nuaimi)
طيب، اليوم لما نجي نتكلم في أي موضوع، لازم نحدد حاجة مهمة: من اللي بيتكلم؟ ومن اللي بيسمع؟ تمام؟ يعني، ممكن تكون بتتكلم مع شخص مبتدئ، أو شخص فاهم ومتخصص. وكذلك اللي بيتكلم نفسه، ممكن يكون فاهم، وممكن يكون مش فاهم. فالكلام اللي بتقوله بيختلف حسب المجتمع اللي بتخاطبه.
خلونا ناخذ مثال من الواقع:
أنت ساكن في بيت، ومقفل بقفل تمام. مقتنع إن القفل هذا بيحمي بيتك من أي حد يدخل؟ طيب، لو المفتاح حق القفل يقدر أي حد يعمله عند الحداد اللي تحت البيت ب ٣٠٠ ريال؟
لو جيت تقول "أنا مركب قفل بيحمي البيت"، هذا كلام ينفع تقوله لأطفال في أولى ابتدائي. لكن لو بتكلم مندوب شركة تأمين، لازم تقوله بطريقة ثانية: "أنا عندي قفل بيحمي بيتي من أي حد ما مابش معه ٣٠٠ ريال يشتري المفتاح من الحداد اللي تحت". لكن لو المفتاح مرمي قدام الباب، فأنت ساعتها بتقول: "القفل بيحمي البيت من أي سارق أعمى"، لأنه أي سارق عادي بيشوف المفتاح ويفتح الباب.
طيب، لو ما فيش حداد، وأنت ساكن في الدور الأرضي وشباكك مفتوح؟ هل القفل بيحمي البيت؟ لا، لأن الشخص مش محتاج يدخل من الباب أصلاً، يدخل من الشباك. لكن لو الشباك صغير وما يقدر يدخل منه إلا الأطفال، ساعتها بتقول: "بيتي محمي من أي حد وزنه أكثر من ٢٥ كيلو".
كل هذا نفس الفكرة، نفس القفل، بس طريقة الكلام تختلف حسب اللي بيسمع. وهذا هو اللي يربطنا بالموضوع الأساسي: الناس اللي تتكلم عن الأمان (Security) والحماية (Protection)، وما تفهم الفرق بينهم.
في بعض الناس لما تستخدم "const" أو تعدل في بعض الفيلدات، تقول: "إحنا كذا أمنّا البيانات عشان ما حدش يعدلها". طيب، هل فعلاً هذا يمنع أي حد من التعديل؟ خلونا نشوف.
عندك ثلاث أنواع من الناس يتعاملوا مع الكود حقك:
زملاؤك في الفريق: عندهم وصول مباشر للكود، ولو عايزين يعدلوا حاجة، بيعدلوها. مش لأنك عملتها "const"، بل لأن الشركة عندها سياسة مراجعة للكود، واللي ما يوافق عليه الـ Code Review ما يتم.
الأطراف الخارجية: بغض النظر عن أي حماية تسويها، كل لغة برمجة تقدم طرق للوصول للبيانات والتعديل عليها. مثلاً، في C++ ممكن يرمي الكائن كله داخل Pointer ويعدل فيه، وفي C# و Java عندك Reflection.
المستخدم النهائي: التطبيق لما يشتغل، النظام يشوف البيانات كأنها بيانات في الذاكرة، أي شخص معه Debugger أو Memory Viewer يقدر يعدل عليها.
بالتالي، لو كان هدفك تمنع أي تعديل، فشلت فشل ذريع، لأن أي حد يتعامل مع السيستم حقك يقدر يغيره.
وهنا نرجع للفرق بين الأمان والحماية:
Security (الأمان): أنك تمنع حد ما تريده يغير البيانات.
Protection (الحماية): أنك تمنع التغييرات غير المقصودة.
مثال:
عندك متغير يخزن درجة الطالب، والدرجة تكون بين 0 و 100. ما تريد أحد يدخل درجة أكثر من 100 أو أقل من 0. مش لأنك تبغى تتحكم فيهم، بل لأن المنطق حق البرنامج كذا. فتسوي دالة (Setter) تتأكد إن الدرجة في النطاق الصحيح، ولو في خطأ، ترمي Exception.
هنا، أنت حميت البيانات، لكن ما أمنتها. الحماية كانت على البيانات نفسها، مش على من يقدر يعدلها.
الفرق بين Data Protection و Data Security كبير جداً، وللأسف بعض الناس اللي يقولوا عن نفسهم متخصصين ما يفرقوا بينهم. كل اللي يعرفوه هو إنهم "بيمنعوا الناس من التعديل"، وهذا كلام ممكن يجي من شخص ما يعرف برمجة أصلاً.
فالنهاية: إذا كانت الكبسولة (Encapsulation) ما قدرت تمنع التعديل تماماً فهي فشلت من أول مبدأ في الـ OOP وانتهى الحوار!
#عيد_انتبه_لمنزلك
#رسالها_100_معيد_ودكتور
خلونا ناخذ مثال من الواقع:
أنت ساكن في بيت، ومقفل بقفل تمام. مقتنع إن القفل هذا بيحمي بيتك من أي حد يدخل؟ طيب، لو المفتاح حق القفل يقدر أي حد يعمله عند الحداد اللي تحت البيت ب ٣٠٠ ريال؟
لو جيت تقول "أنا مركب قفل بيحمي البيت"، هذا كلام ينفع تقوله لأطفال في أولى ابتدائي. لكن لو بتكلم مندوب شركة تأمين، لازم تقوله بطريقة ثانية: "أنا عندي قفل بيحمي بيتي من أي حد ما مابش معه ٣٠٠ ريال يشتري المفتاح من الحداد اللي تحت". لكن لو المفتاح مرمي قدام الباب، فأنت ساعتها بتقول: "القفل بيحمي البيت من أي سارق أعمى"، لأنه أي سارق عادي بيشوف المفتاح ويفتح الباب.
طيب، لو ما فيش حداد، وأنت ساكن في الدور الأرضي وشباكك مفتوح؟ هل القفل بيحمي البيت؟ لا، لأن الشخص مش محتاج يدخل من الباب أصلاً، يدخل من الشباك. لكن لو الشباك صغير وما يقدر يدخل منه إلا الأطفال، ساعتها بتقول: "بيتي محمي من أي حد وزنه أكثر من ٢٥ كيلو".
كل هذا نفس الفكرة، نفس القفل، بس طريقة الكلام تختلف حسب اللي بيسمع. وهذا هو اللي يربطنا بالموضوع الأساسي: الناس اللي تتكلم عن الأمان (Security) والحماية (Protection)، وما تفهم الفرق بينهم.
في بعض الناس لما تستخدم "const" أو تعدل في بعض الفيلدات، تقول: "إحنا كذا أمنّا البيانات عشان ما حدش يعدلها". طيب، هل فعلاً هذا يمنع أي حد من التعديل؟ خلونا نشوف.
عندك ثلاث أنواع من الناس يتعاملوا مع الكود حقك:
زملاؤك في الفريق: عندهم وصول مباشر للكود، ولو عايزين يعدلوا حاجة، بيعدلوها. مش لأنك عملتها "const"، بل لأن الشركة عندها سياسة مراجعة للكود، واللي ما يوافق عليه الـ Code Review ما يتم.
الأطراف الخارجية: بغض النظر عن أي حماية تسويها، كل لغة برمجة تقدم طرق للوصول للبيانات والتعديل عليها. مثلاً، في C++ ممكن يرمي الكائن كله داخل Pointer ويعدل فيه، وفي C# و Java عندك Reflection.
المستخدم النهائي: التطبيق لما يشتغل، النظام يشوف البيانات كأنها بيانات في الذاكرة، أي شخص معه Debugger أو Memory Viewer يقدر يعدل عليها.
بالتالي، لو كان هدفك تمنع أي تعديل، فشلت فشل ذريع، لأن أي حد يتعامل مع السيستم حقك يقدر يغيره.
وهنا نرجع للفرق بين الأمان والحماية:
Security (الأمان): أنك تمنع حد ما تريده يغير البيانات.
Protection (الحماية): أنك تمنع التغييرات غير المقصودة.
مثال:
عندك متغير يخزن درجة الطالب، والدرجة تكون بين 0 و 100. ما تريد أحد يدخل درجة أكثر من 100 أو أقل من 0. مش لأنك تبغى تتحكم فيهم، بل لأن المنطق حق البرنامج كذا. فتسوي دالة (Setter) تتأكد إن الدرجة في النطاق الصحيح، ولو في خطأ، ترمي Exception.
هنا، أنت حميت البيانات، لكن ما أمنتها. الحماية كانت على البيانات نفسها، مش على من يقدر يعدلها.
الفرق بين Data Protection و Data Security كبير جداً، وللأسف بعض الناس اللي يقولوا عن نفسهم متخصصين ما يفرقوا بينهم. كل اللي يعرفوه هو إنهم "بيمنعوا الناس من التعديل"، وهذا كلام ممكن يجي من شخص ما يعرف برمجة أصلاً.
فالنهاية: إذا كانت الكبسولة (Encapsulation) ما قدرت تمنع التعديل تماماً فهي فشلت من أول مبدأ في الـ OOP وانتهى الحوار!
#عيد_انتبه_لمنزلك
#رسالها_100_معيد_ودكتور
Forwarded from 🚀DevJourney🚀 (Abdulwaisa Al Nuaimi)
الحقيقة ان Encapsulation هو وسيلة لتنظيم الكود والتحكم في كيفية الوصول إلى البيانات، لكنه ليس وسيلة لحمايتها من التهديدات الأمنية
أي ان
Encapsulation يساعد في الحفاظ على سلامة البيانات (Data Integrity) لأنه يمنع التعديلات العشوائية أو غير المنطقية من داخل الكود نفسه
أي ان
Encapsulation يساعد في الحفاظ على سلامة البيانات (Data Integrity) لأنه يمنع التعديلات العشوائية أو غير المنطقية من داخل الكود نفسه
تعلم كيف تتعلم ! لو صببت الحليب قبل الشاهي أو العكس هل في فرق ؟
👍1
Forwarded from اللجنة العلمية CS 22 (ʙʀʜᴏᴏᴍ ⑇)
شغل Github Actions في الـ local
بس ليش نشغله في local؟
1 - نحصل Feedback بشكل أسؤع بدل ما نسوي git push كل شويه وننتظر الرد من github
2 - ليش لا... 😁👍🏻
https://nektosact.com
https://github.com/nektos/act
بس ليش نشغله في local؟
1 - نحصل Feedback بشكل أسؤع بدل ما نسوي git push كل شويه وننتظر الرد من github
2 - ليش لا... 😁👍🏻
https://nektosact.com
https://github.com/nektos/act
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
موضوع الأمن السيبراني مش قصة tools مدري ايش عندما حتى تدخل المجتمعات هذا أو أي جانب منهم حتى عندما تدخل معهم تفقد الثقه الموضوع ليس هذا والامن والحماية مبني على أساس قوي وبلاش تضيع وقتك في اختراق شبكة جارك أو أين كان طبعا هذا ليس اختراق والا تتعب في ال social engineering و الويب dark هم من عمل التكنلوجيا وفر الكل واحد سوق ومستفيد من الكل المتهبشين والي لا يعرف القانون فتح له سوق والي ماشي بالقوانين وفر له كذلك تعلم برمجة صح وكل خطوة فكر ازي تحميها .
#ازي_وضع_الأمن_السيبراني
#ازي_وضع_الأمن_السيبراني
Forwarded from 🚀DevJourney🚀 (Abdulwaisa Al Nuaimi)
مكتبات AutoMapper وMediatR بيصيروا بفلوس؟!
يا جماعة الخير، المطوّر المعروف Jimmy Bogard، صاحب مكتبات AutoMapper وMediatR اللي أغلبنا نستخدمها في مشاريعنا بالـ .NET، أعلن إنه بيبدأ يحوّل المكتبات هذي لنظام مدفوع، عشان يضمن استمراريتها وتحديثها بشكل منتظم.
يعني بالعربي، خلاص ماعاد بيكون كل شيء مجاني زي أول.
طيب للي مش عارفهم:
AutoMapper: هذي مكتبة تسهّل عليك عملية نسخ البيانات من كائن (Object) لكائن ثاني، يعني بدل ما تكتب كود تحويل كثير بين DTOs والـ Entities، AutoMapper يسوي لك الشغلة بلمسة زر.
MediatR: هذي مكتبة تطبّق مفهوم الـ CQRS وMediator Pattern، تخلي الكود مرتب ومافيش اعتماد مباشر بين الكلاسات، يعني بدل ما تستدعي الخدمة (Service) مباشرة، تستخدم Requests وHandlers.
والضربة الكبيرة كمان كانت في MassTransit
هذي مكتبة رسائل (Message Bus) ممتازة، تستخدمها في بناء تطبيقات موزعة (Distributed Systems) وتخلي الخدمات تتواصل مع بعض بطريقة احترافية وآمنة.
الصراحة طبيعي إن أي واحد يتعب ويقدم شي مفيد للمجتمع التقني، لما يشتهر مشروعه، يبدأ يفكر كيف يموّله ويغطي تكاليف الدعم والتطوير.
لكن السؤال الحين: هل بنتقبل الفكرة؟ ولا بندور على بدائل مجانية؟
#DotNet #AutoMapper #MediatR #MassTransit #JimmyBogard #برمجة #يمن_تك #Abdulwaisa
يا جماعة الخير، المطوّر المعروف Jimmy Bogard، صاحب مكتبات AutoMapper وMediatR اللي أغلبنا نستخدمها في مشاريعنا بالـ .NET، أعلن إنه بيبدأ يحوّل المكتبات هذي لنظام مدفوع، عشان يضمن استمراريتها وتحديثها بشكل منتظم.
يعني بالعربي، خلاص ماعاد بيكون كل شيء مجاني زي أول.
طيب للي مش عارفهم:
AutoMapper: هذي مكتبة تسهّل عليك عملية نسخ البيانات من كائن (Object) لكائن ثاني، يعني بدل ما تكتب كود تحويل كثير بين DTOs والـ Entities، AutoMapper يسوي لك الشغلة بلمسة زر.
MediatR: هذي مكتبة تطبّق مفهوم الـ CQRS وMediator Pattern، تخلي الكود مرتب ومافيش اعتماد مباشر بين الكلاسات، يعني بدل ما تستدعي الخدمة (Service) مباشرة، تستخدم Requests وHandlers.
والضربة الكبيرة كمان كانت في MassTransit
هذي مكتبة رسائل (Message Bus) ممتازة، تستخدمها في بناء تطبيقات موزعة (Distributed Systems) وتخلي الخدمات تتواصل مع بعض بطريقة احترافية وآمنة.
الصراحة طبيعي إن أي واحد يتعب ويقدم شي مفيد للمجتمع التقني، لما يشتهر مشروعه، يبدأ يفكر كيف يموّله ويغطي تكاليف الدعم والتطوير.
لكن السؤال الحين: هل بنتقبل الفكرة؟ ولا بندور على بدائل مجانية؟
#DotNet #AutoMapper #MediatR #MassTransit #JimmyBogard #برمجة #يمن_تك #Abdulwaisa
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
عنوان: "أنا والبزي… نفس السيارة، بس عقلين"
[المشهد: جلسة هادئة، قهوة بدون ضجيج، نظرات فيها تفكير عميق]
أنت: يا بزي، تعرف؟ أنا لي سنين أسوق في شوارع مثل المتاهات… ما فيها قانون واضح، ولا نظام ثابت. تعلمت أتصرف مش لأن في قانون، بل لأن الحياة ضغطتني أعتمد على نفسي.
البزي (بهدوء): وأنا يا صاحبي، تعلمت أسوق في شوارع مرسومة، محددة، كل شيء فيها محسوب. ما تعلمتش أكون ذكي للهروب… بل تعلمت أكون ملتزم لأني مؤمن إن النظام هو الأمان.
أنت (تنظر له بنظرة فيها ألم): بس لو أنا جيت بلدك… وطبقت سواقتي… أضيع، أتصادم، أو أنسحب. ولو أنت جيت بلدي، بسوقك النظيف… الناس يضحكوا عليك، ويمكن يدعسوك.
البزي: يعني إحنا مش مختلفين كمهارات… إحنا مختلفين كـ"عقل مبرمج".
أنت: بالضبط… أنا عقلي اتبرمج على التأقلم مع الفوضى، كيف أكون ناجي مش ناحج.
البزي (بنبرة احترام): وأنا عقلي اتبرمج على احترام النظام، كيف أكون جزء من منظومة ناجحة مش بس أعيش يومي.
أنت (تبتسم بأسى): بس تتخيل؟ لو عقليتي اشتغلت في بلدك… أعتبر مجرم.
ولو عقليتك اشتغلت في بلدي… تعتبر ضعيف.
البزي: يعني الحياة ما برمجتنا صح أو غلط… الحياة برمجتنا "حسب وجعنا".
أنت (بهمس): بس المشكلة مش إنك تتبرمج… المشكلة إنك تنسى تعيد برمجة نفسك لما تتغير البيئة.
الختام:
نفس السيارة. نفس الطريق. بس العقل؟ هو اللي يقرر: هل توصل… أو تضل تلف في نفس الدائرة.
#غير_جو
[المشهد: جلسة هادئة، قهوة بدون ضجيج، نظرات فيها تفكير عميق]
أنت: يا بزي، تعرف؟ أنا لي سنين أسوق في شوارع مثل المتاهات… ما فيها قانون واضح، ولا نظام ثابت. تعلمت أتصرف مش لأن في قانون، بل لأن الحياة ضغطتني أعتمد على نفسي.
البزي (بهدوء): وأنا يا صاحبي، تعلمت أسوق في شوارع مرسومة، محددة، كل شيء فيها محسوب. ما تعلمتش أكون ذكي للهروب… بل تعلمت أكون ملتزم لأني مؤمن إن النظام هو الأمان.
أنت (تنظر له بنظرة فيها ألم): بس لو أنا جيت بلدك… وطبقت سواقتي… أضيع، أتصادم، أو أنسحب. ولو أنت جيت بلدي، بسوقك النظيف… الناس يضحكوا عليك، ويمكن يدعسوك.
البزي: يعني إحنا مش مختلفين كمهارات… إحنا مختلفين كـ"عقل مبرمج".
أنت: بالضبط… أنا عقلي اتبرمج على التأقلم مع الفوضى، كيف أكون ناجي مش ناحج.
البزي (بنبرة احترام): وأنا عقلي اتبرمج على احترام النظام، كيف أكون جزء من منظومة ناجحة مش بس أعيش يومي.
أنت (تبتسم بأسى): بس تتخيل؟ لو عقليتي اشتغلت في بلدك… أعتبر مجرم.
ولو عقليتك اشتغلت في بلدي… تعتبر ضعيف.
البزي: يعني الحياة ما برمجتنا صح أو غلط… الحياة برمجتنا "حسب وجعنا".
أنت (بهمس): بس المشكلة مش إنك تتبرمج… المشكلة إنك تنسى تعيد برمجة نفسك لما تتغير البيئة.
الختام:
نفس السيارة. نفس الطريق. بس العقل؟ هو اللي يقرر: هل توصل… أو تضل تلف في نفس الدائرة.
#غير_جو
🥰1
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
طول ما انت فاكر ان دورك كا مهندس برمجيات هو رص الكود يبقا اكيد مش هيبقا ليك لازمه قريب
😁🙂 VibeCoding ابحث
😁🙂 VibeCoding ابحث
👍1
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
This media is not supported in your browser
VIEW IN TELEGRAM
مايكروسوفت تحتفل بعيد ميلادها الـ 50 بإطلاق مجموعة من تقنيات الذكاء الاصطناعي الجديدة.
لكن الأمور اتخذت منحنى مختلف في مؤتمر لـ (مصطفى سليمان) مدير الذكاء الاصطناعي في مايكروسوفت، حين واجهته موظفة في الشركة.
الموظفة ( كما في الفيديو ) اتهمت (مصطفى) ومايكروسوفت بالاحتفال بالذكاء الاصطناعي بعدما ساهموا في قتل الأطفال في واحدة من أخطر الإبادات الجماعية على مر التاريخ. " يدك ملطخة بالدماء، عار عليك "، " انتم استغلاليون تربحون المال من الحروب والإبادات الجماعية وقت**ل الأطفال ".
لو لم تفهم سبب انتفاض الموظفة، فهو لأن مايكروسوفت بالإضافة لجوجل وشركات تكنولوجية أمريكية أخرى، تبيع تقنياتها للذكاء الاصطناعي لإسر**ائيل لاستخدامها في التطويرات العسكرية، والتي تستخدمها اليوم أمام الملأ في إبادة لا مثيل لها.
طبعا الموظفة هي ابتهال ابو السعد، مطورة برمجيات في مايكروسوفت، وقد ارسلت أيميل إلى كل موظف في الشركة تقدر تقرأه في الرسالة 👇.
لكن الأمور اتخذت منحنى مختلف في مؤتمر لـ (مصطفى سليمان) مدير الذكاء الاصطناعي في مايكروسوفت، حين واجهته موظفة في الشركة.
الموظفة ( كما في الفيديو ) اتهمت (مصطفى) ومايكروسوفت بالاحتفال بالذكاء الاصطناعي بعدما ساهموا في قتل الأطفال في واحدة من أخطر الإبادات الجماعية على مر التاريخ. " يدك ملطخة بالدماء، عار عليك "، " انتم استغلاليون تربحون المال من الحروب والإبادات الجماعية وقت**ل الأطفال ".
لو لم تفهم سبب انتفاض الموظفة، فهو لأن مايكروسوفت بالإضافة لجوجل وشركات تكنولوجية أمريكية أخرى، تبيع تقنياتها للذكاء الاصطناعي لإسر**ائيل لاستخدامها في التطويرات العسكرية، والتي تستخدمها اليوم أمام الملأ في إبادة لا مثيل لها.
طبعا الموظفة هي ابتهال ابو السعد، مطورة برمجيات في مايكروسوفت، وقد ارسلت أيميل إلى كل موظف في الشركة تقدر تقرأه في الرسالة 👇.
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
InfoTechnology (IT4_2024)
مايكروسوفت تحتفل بعيد ميلادها الـ 50 بإطلاق مجموعة من تقنيات الذكاء الاصطناعي الجديدة. لكن الأمور اتخذت منحنى مختلف في مؤتمر لـ (مصطفى سليمان) مدير الذكاء الاصطناعي في مايكروسوفت، حين واجهته موظفة في الشركة. الموظفة ( كما في الفيديو ) اتهمت (مصطفى) ومايكروسوفت…
النص الأصلي:
Hi all,
As you might have just seen on the livestream or witnessed in person, I disrupted the speech of Microsoft AI CEO Mustafa Suleyman during the highly-anticipated 50th anniversary celebration. Here’s why.
My name is Ibtihal, and for the past 3.5 years, I’ve been a software engineer on Microsoft’s AI Platform org. I spoke up today because after learning that my org was powering the genocide of my people in Palestine, I saw no other moral choice. This is especially true when I’ve witnessed how Microsoft has tried to quell and suppress any dissent from my coworkers who tried to raise this issue. For the past year and a half, our Arab, Palestinian, and Muslim community at Microsoft has been silenced, intimidated, harassed, and doxxed, with impunity from Microsoft. Attempts at speaking up at best fell on deaf ears, and at worst, led to the firing of two employees for simply holding a vigil. There was simply no other way to make our voices heard.
We are witnessing a genocide
For the past 1.5 years, I’ve witnessed the ongoing genocide of the Palestinian people by Israel. I’ve seen unspeakable suffering amidst Israel’s mass human rights violations - indiscriminate carpet bombings, the targeting of hospitals and schools, and the continuation of an apartheid state - all of which have been condemned globally by the UN, ICC, and ICJ, and numerous human rights organizations. The images of innocent children covered in ash and blood, the wails of mourning parents, and the destruction of entire families and communities have forever fractured me.
At the time of writing, Israel has resumed its full-scale genocide in Gaza, which has so far killed by some estimates over 300,000 Gazans in the past 1.5 year alone. Just days ago, it was revealed that Israel killed fifteen paramedics and rescue workers in Gaza, executing them “one by one,” before burying them in the sand -- yet another horrific war crime. All the while, our “responsible” AI work powers this surveillance and murder. The United Nations and the International Court of Justice have concluded that this is a genocide, with the International Criminal Court issuing arrest warrants for Israeli leaders.
We are Complicit
When I moved to AI Platform, I was excited to contribute to cutting-edge AI technology and its applications for the good of humanity: accessibility products, translation services, and tools to “empower every human and organization to achieve more.” I was not informed that Microsoft would sell my work to the Israeli military and government, with the purpose of spying on and murdering journalists, doctors, aid workers, and entire civilian families. If I knew my work on trannoscription scenarios would help spy on and transcribe phone calls to better target Palestinians (source), I would not have joined this organization and contributed to genocide. I did not sign up to write code that violates human rights.
According to AP news, there is “a $133 million contract between Microsoft and Israel’s Ministry of Defense.”
“The Israeli military’s usage of Microsoft and OpenAI artificial intelligence spiked last March to nearly 200 times higher than before the week leading up to the Oct. 7 attack. The amount of data it stored on Microsoft servers doubled between that time and July 2024 to more than 13.6 petabytes.”
“The Israeli military uses Microsoft Azure to compile information gathered through mass surveillance, which it transcribes and translates, including phone calls, texts and audio messages, according to an Israeli intelligence officer who works with the systems. That data can then be cross-checked with Israel’s in-house targeting systems.”
Microsoft AI also powers the most “sensitive and highly classified projects” for the Israeli military, including its “target bank” and the Palestinian population registry. Microsoft cloud and AI enabled the Israeli military to be more lethal and destructive in Gaza than they otherwise could.
Hi all,
As you might have just seen on the livestream or witnessed in person, I disrupted the speech of Microsoft AI CEO Mustafa Suleyman during the highly-anticipated 50th anniversary celebration. Here’s why.
My name is Ibtihal, and for the past 3.5 years, I’ve been a software engineer on Microsoft’s AI Platform org. I spoke up today because after learning that my org was powering the genocide of my people in Palestine, I saw no other moral choice. This is especially true when I’ve witnessed how Microsoft has tried to quell and suppress any dissent from my coworkers who tried to raise this issue. For the past year and a half, our Arab, Palestinian, and Muslim community at Microsoft has been silenced, intimidated, harassed, and doxxed, with impunity from Microsoft. Attempts at speaking up at best fell on deaf ears, and at worst, led to the firing of two employees for simply holding a vigil. There was simply no other way to make our voices heard.
We are witnessing a genocide
For the past 1.5 years, I’ve witnessed the ongoing genocide of the Palestinian people by Israel. I’ve seen unspeakable suffering amidst Israel’s mass human rights violations - indiscriminate carpet bombings, the targeting of hospitals and schools, and the continuation of an apartheid state - all of which have been condemned globally by the UN, ICC, and ICJ, and numerous human rights organizations. The images of innocent children covered in ash and blood, the wails of mourning parents, and the destruction of entire families and communities have forever fractured me.
At the time of writing, Israel has resumed its full-scale genocide in Gaza, which has so far killed by some estimates over 300,000 Gazans in the past 1.5 year alone. Just days ago, it was revealed that Israel killed fifteen paramedics and rescue workers in Gaza, executing them “one by one,” before burying them in the sand -- yet another horrific war crime. All the while, our “responsible” AI work powers this surveillance and murder. The United Nations and the International Court of Justice have concluded that this is a genocide, with the International Criminal Court issuing arrest warrants for Israeli leaders.
We are Complicit
When I moved to AI Platform, I was excited to contribute to cutting-edge AI technology and its applications for the good of humanity: accessibility products, translation services, and tools to “empower every human and organization to achieve more.” I was not informed that Microsoft would sell my work to the Israeli military and government, with the purpose of spying on and murdering journalists, doctors, aid workers, and entire civilian families. If I knew my work on trannoscription scenarios would help spy on and transcribe phone calls to better target Palestinians (source), I would not have joined this organization and contributed to genocide. I did not sign up to write code that violates human rights.
According to AP news, there is “a $133 million contract between Microsoft and Israel’s Ministry of Defense.”
“The Israeli military’s usage of Microsoft and OpenAI artificial intelligence spiked last March to nearly 200 times higher than before the week leading up to the Oct. 7 attack. The amount of data it stored on Microsoft servers doubled between that time and July 2024 to more than 13.6 petabytes.”
“The Israeli military uses Microsoft Azure to compile information gathered through mass surveillance, which it transcribes and translates, including phone calls, texts and audio messages, according to an Israeli intelligence officer who works with the systems. That data can then be cross-checked with Israel’s in-house targeting systems.”
Microsoft AI also powers the most “sensitive and highly classified projects” for the Israeli military, including its “target bank” and the Palestinian population registry. Microsoft cloud and AI enabled the Israeli military to be more lethal and destructive in Gaza than they otherwise could.
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
InfoTechnology (IT4_2024)
مايكروسوفت تحتفل بعيد ميلادها الـ 50 بإطلاق مجموعة من تقنيات الذكاء الاصطناعي الجديدة. لكن الأمور اتخذت منحنى مختلف في مؤتمر لـ (مصطفى سليمان) مدير الذكاء الاصطناعي في مايكروسوفت، حين واجهته موظفة في الشركة. الموظفة ( كما في الفيديو ) اتهمت (مصطفى) ومايكروسوفت…
Microsoft has also been providing software, cloud services, and consulting services to the Israeli military and government, totaling millions in profit. War Criminal Benjamin Netanyahu has explicitly mentioned his strong ties to Microsoft. A list of these contracts with the Israeli military and government can be found here: An Introduction to Microsoft’s Complicity in Apartheid and Genocide
In fact, Microsoft is so deeply connected to the Israeli military that it was just yesterday designated one of the priority boycott targets of the BDS (Boycott, Divest, Sanctions) campaign.
Regardless of your political stances, is this the legacy we want to leave behind? Is working on deadly AI weapons something you can tell your children about? Do we want to be on the wrong side of history?
Even though your work could be unrelated to the cloud that the military uses, your work benefits the company and allows it to take on the contract. Regardless of your team, you serve a company that is arming the Israeli occupation. It is undeniable that part of your compensation, no matter how small, is being paid by genocide.
Whether you work on AI or not, you will be complicit if you do nothing. It is now OUR job to take a vocal stand against Microsoft AI’s involvement in crimes against humanity.
This is why I decided to speak up today, and why I signed this important petition to demand Microsoft cut ties with genocide. And I urge you all to do the same.
Call to Action
Silence is complicity. But action always has a reaction, no matter how big or small. As workers for this company, we must make our voices heard, and demand that Microsoft does the right thing: stop selling technology to the Israeli military.
If you are also concerned about this news, and you also want your work to be used ethically, I urge you to take action:
Sign the No Azure for Apartheid petition: We will not write code that kills. And join the campaign to add your voice to the growing number of concerned Microsoft employees.
Join me in showing our discontent in this thread. If you also feel tricked into deploying weapons which target children and civilians, urge leadership (CC’ed) to drop these contracts.
Don’t stop speaking up. Urge SLT to drop these contracts at every opportunity.
Start conversations with your co-workers about the points above - so many employees may not know!
Microsoft’s human rights statement prohibits retaliation against anyone who raises a human rights-related concern: Human rights statement | Microsoft CSR
Our company has precedents in supporting human rights, including divestment from apartheid South Africa and dropping contracts with AnyVision (Israeli facial recognition startup), after Microsoft employee and community protests. My hope is that our collective voices will motivate our AI leaders to do the same, and correct Microsoft’s actions regarding these human rights violations, to avoid a stained legacy. Microsoft Cloud and AI should stop being the bombs and bullets of the 21st century.
Sincerely,
A concerned Microsoft employee
In fact, Microsoft is so deeply connected to the Israeli military that it was just yesterday designated one of the priority boycott targets of the BDS (Boycott, Divest, Sanctions) campaign.
Regardless of your political stances, is this the legacy we want to leave behind? Is working on deadly AI weapons something you can tell your children about? Do we want to be on the wrong side of history?
Even though your work could be unrelated to the cloud that the military uses, your work benefits the company and allows it to take on the contract. Regardless of your team, you serve a company that is arming the Israeli occupation. It is undeniable that part of your compensation, no matter how small, is being paid by genocide.
Whether you work on AI or not, you will be complicit if you do nothing. It is now OUR job to take a vocal stand against Microsoft AI’s involvement in crimes against humanity.
This is why I decided to speak up today, and why I signed this important petition to demand Microsoft cut ties with genocide. And I urge you all to do the same.
Call to Action
Silence is complicity. But action always has a reaction, no matter how big or small. As workers for this company, we must make our voices heard, and demand that Microsoft does the right thing: stop selling technology to the Israeli military.
If you are also concerned about this news, and you also want your work to be used ethically, I urge you to take action:
Sign the No Azure for Apartheid petition: We will not write code that kills. And join the campaign to add your voice to the growing number of concerned Microsoft employees.
Join me in showing our discontent in this thread. If you also feel tricked into deploying weapons which target children and civilians, urge leadership (CC’ed) to drop these contracts.
Don’t stop speaking up. Urge SLT to drop these contracts at every opportunity.
Start conversations with your co-workers about the points above - so many employees may not know!
Microsoft’s human rights statement prohibits retaliation against anyone who raises a human rights-related concern: Human rights statement | Microsoft CSR
Our company has precedents in supporting human rights, including divestment from apartheid South Africa and dropping contracts with AnyVision (Israeli facial recognition startup), after Microsoft employee and community protests. My hope is that our collective voices will motivate our AI leaders to do the same, and correct Microsoft’s actions regarding these human rights violations, to avoid a stained legacy. Microsoft Cloud and AI should stop being the bombs and bullets of the 21st century.
Sincerely,
A concerned Microsoft employee
Forwarded from الرسمية CS4 Class-22 (أحمد جلال | 𐩱𐩢𐩣𐩵 𐩴𐩡𐩱𐩡)
🛑🛑🛑 فرصة عمل 🛑🛑🛑
مطلوب مبرمجين لارافل للعمل
الراغبين يرسلو السي في وبيتم التواصل معاهم واعطائهم التفاصيل @ahmed_jalalCS
مطلوب مبرمجين لارافل للعمل
الراغبين يرسلو السي في وبيتم التواصل معاهم واعطائهم التفاصيل @ahmed_jalalCS
Forwarded from 🚀DevJourney🚀 (Abdulwaisa Al Nuaimi)
شوف… في أشياء لو ما أحد تكلم عنها بوضوح، بتظل تتكرر وتكلفنا كثير بدون ما ننتبه. تخيل معاك نظام أكثر من واحد يستخدمه، وكلهم يشتغلوا على نفس البيانات بنفس الوقت… أنا أشوفها كل مرة: واحد عدّل، والثاني عدّل، وكل واحد يظن إنه اشتغل لحاله، والنتيجة؟ تضارب، بيانات ضاعت، أو أحد كتب فوق الثاني. ولا أحد درى.
وهنا تظهر فكرة يسموها "Optimistic Locking"، بس هي مش مسألة اسم أو مصطلح… هي فكرة ببساطة تقول: "تأكد إنك آخر واحد شاف البيانات قبل ما تغيّر فيها."
يعني بدل ما نقفل البيانات ونمنع الكل يعدل (زي Pessimistic Locking)، نخلي الكل يشتغل بحرية… لكن نحط شرط بسيط: إذا أحد سبقك وعدّل، ما نسمح لك تحفظ إلا لما تشوف التحديث الجديد.
وهذا الشرط البسيط يتم عن طريق شيء يسموه ETag، وهو ببساطة بصمة للبيانات (زي توقيع)، كل مرة يتغير فيها المحتوى، تتغير البصمة.
بالنسبة للتعديل (PUT أو PATCH) لما ترسل الطلب، تحط الهيدر If-Match: "" وتقوله: "أنا بأعدّل، بس فقط لو البصمة هذي نفسها ما تغيّرت." لو تغيّرت؟ السيرفر يرد عليك بـ:
412 Precondition Failed "يعني أحد سبقك وعدّل، لازم تسحب التحديث الجديد وتشوفه أول، بعدين قرر."
والنقطة اللي ناس كثير ما ينتبهوا لها هي حتى عند القراءة (GET) تقدر تحط If-None-Match: "" وهنا تقول للسيرفر: "عطني البيانات فقط لو تغيّرت من آخر مرة." لو ما تغيّرت؟ السيرفر يرد بـ:
304 Not Modified "يعني لا ترجع لي نفس البيانات مرة ثانية، وفر علي البيانات والباندويث."
وش الفايدة؟ فايدتها قوية جدًا في الأنظمة الكبيرة أو اللي فيها بيانات تتكرر كثير. بدل ما كل شوي تجيب نفس البيانات من السيرفر، تستخدم ETag وتخليها كمرجع، وإذا البيانات نفسها؟ السيرفر يقول لك: "مافي جديد"، وأنت ترتاح.
تخيل آلاف الأجهزة تشيك بيانات بنفس اللحظة، لو كلها سحبت البيانات من جديد وهي نفسها؟ ضياع وقت وضغط على السيرفر بلا معنى. لكن مع ETag و If-None-Match؟ تقليل هائل في الاستهلاك، وتحسّن في الأداء، وكل هذا بصمت وذكاء.
والمقارنة هنا مع العكس تمامًا:
لو تجاهلت الـ ETag وفكرت تعدّل بدون أي تحقق، فاحتمال كبير تعدّل على بيانات قديمة بدون ما تدري، والنتيجة: بيانات ضاعت، أخطاء حصلت، أو تقارير صارت فيها تناقضات.
ولو في الـ GET تسحب البيانات في كل مرة بدون ما تسأل إذا تغيّرت؟ يضيع عليك وقت، موارد، وسرعة… والنتيجة تجربة مستخدم بطيئة ومتكررة بدون فائدة.
الخلاصة؟ مش لازم توقف الناس من التعديل، ولا تمنعهم من الوصول، بس خلي بينهم وبين الحقيقة شرط بسيط: "تأكد إنك ما تشتغل على شي قديم."
وهذا الشيء، رغم بساطته، يحل مشاكل كثيرة ويخلي النظام أذكى وأرتب، ويحمي بياناتك من الضياع بصمت.
ونقطة أخيرة… مش كل تعقيد في الكود شر، أحيانًا سطر واحد زي If-Match أو If-None-Match يحميك من أيام من التحقيق في bugs ما حد داري من فين طلعت.
ما تتعامل مع ETag؟ يعني أنت تسحب بيانات "تظن" إنها صحيحة… وتعدل على شيء "تفترض" إنه ما تغيّر… بينما النظام يقول لك: "أنا ما أقدر أضمن لك شيء."
#التزامن_مش_ترف #OptimisticLocking #DotNet #كود_يعيش_طويل #خلي_الكود_يحميك_مش_يعلقك
وهنا تظهر فكرة يسموها "Optimistic Locking"، بس هي مش مسألة اسم أو مصطلح… هي فكرة ببساطة تقول: "تأكد إنك آخر واحد شاف البيانات قبل ما تغيّر فيها."
يعني بدل ما نقفل البيانات ونمنع الكل يعدل (زي Pessimistic Locking)، نخلي الكل يشتغل بحرية… لكن نحط شرط بسيط: إذا أحد سبقك وعدّل، ما نسمح لك تحفظ إلا لما تشوف التحديث الجديد.
وهذا الشرط البسيط يتم عن طريق شيء يسموه ETag، وهو ببساطة بصمة للبيانات (زي توقيع)، كل مرة يتغير فيها المحتوى، تتغير البصمة.
بالنسبة للتعديل (PUT أو PATCH) لما ترسل الطلب، تحط الهيدر If-Match: "" وتقوله: "أنا بأعدّل، بس فقط لو البصمة هذي نفسها ما تغيّرت." لو تغيّرت؟ السيرفر يرد عليك بـ:
412 Precondition Failed "يعني أحد سبقك وعدّل، لازم تسحب التحديث الجديد وتشوفه أول، بعدين قرر."
والنقطة اللي ناس كثير ما ينتبهوا لها هي حتى عند القراءة (GET) تقدر تحط If-None-Match: "" وهنا تقول للسيرفر: "عطني البيانات فقط لو تغيّرت من آخر مرة." لو ما تغيّرت؟ السيرفر يرد بـ:
304 Not Modified "يعني لا ترجع لي نفس البيانات مرة ثانية، وفر علي البيانات والباندويث."
وش الفايدة؟ فايدتها قوية جدًا في الأنظمة الكبيرة أو اللي فيها بيانات تتكرر كثير. بدل ما كل شوي تجيب نفس البيانات من السيرفر، تستخدم ETag وتخليها كمرجع، وإذا البيانات نفسها؟ السيرفر يقول لك: "مافي جديد"، وأنت ترتاح.
تخيل آلاف الأجهزة تشيك بيانات بنفس اللحظة، لو كلها سحبت البيانات من جديد وهي نفسها؟ ضياع وقت وضغط على السيرفر بلا معنى. لكن مع ETag و If-None-Match؟ تقليل هائل في الاستهلاك، وتحسّن في الأداء، وكل هذا بصمت وذكاء.
والمقارنة هنا مع العكس تمامًا:
لو تجاهلت الـ ETag وفكرت تعدّل بدون أي تحقق، فاحتمال كبير تعدّل على بيانات قديمة بدون ما تدري، والنتيجة: بيانات ضاعت، أخطاء حصلت، أو تقارير صارت فيها تناقضات.
ولو في الـ GET تسحب البيانات في كل مرة بدون ما تسأل إذا تغيّرت؟ يضيع عليك وقت، موارد، وسرعة… والنتيجة تجربة مستخدم بطيئة ومتكررة بدون فائدة.
الخلاصة؟ مش لازم توقف الناس من التعديل، ولا تمنعهم من الوصول، بس خلي بينهم وبين الحقيقة شرط بسيط: "تأكد إنك ما تشتغل على شي قديم."
وهذا الشيء، رغم بساطته، يحل مشاكل كثيرة ويخلي النظام أذكى وأرتب، ويحمي بياناتك من الضياع بصمت.
ونقطة أخيرة… مش كل تعقيد في الكود شر، أحيانًا سطر واحد زي If-Match أو If-None-Match يحميك من أيام من التحقيق في bugs ما حد داري من فين طلعت.
ما تتعامل مع ETag؟ يعني أنت تسحب بيانات "تظن" إنها صحيحة… وتعدل على شيء "تفترض" إنه ما تغيّر… بينما النظام يقول لك: "أنا ما أقدر أضمن لك شيء."
#التزامن_مش_ترف #OptimisticLocking #DotNet #كود_يعيش_طويل #خلي_الكود_يحميك_مش_يعلقك
👏2
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
أهمية مراجعة الكود Code Review ستزداد في الفترة المقبلة مع الإعتماد المتزايد على الذكاء الإصطناعي التوليدي.
الوقت الذي نربحه في كتابة الكود بفضل ال AI سيسخر فيما بعد لقراءة ومراجعة وإعادة ترتيب ذلك الكود (قانون انحفاظ الطاقة 😀).
هناك مقولة في عالم البرمجة (منسوبة لمصمم لغة بايثون) تقول أن "الكود يُقرأ أكثر مما يُكتب"، ويبدو لي أنها عبارة سنسمعها أكثر وسيكون لها مسوغات أقوى في المستقبل القريب.
#الموضوع_كبير
الوقت الذي نربحه في كتابة الكود بفضل ال AI سيسخر فيما بعد لقراءة ومراجعة وإعادة ترتيب ذلك الكود (قانون انحفاظ الطاقة 😀).
هناك مقولة في عالم البرمجة (منسوبة لمصمم لغة بايثون) تقول أن "الكود يُقرأ أكثر مما يُكتب"، ويبدو لي أنها عبارة سنسمعها أكثر وسيكون لها مسوغات أقوى في المستقبل القريب.
#الموضوع_كبير
❤1
Forwarded from InfoTechnology (IT4_2024) (Abdulwaisa Al Nuaimi)
مرحباً،
أبحث عن مطور/ة Frontend مبدع(ة) ومتحمس(ة) للانضمام إلى فريقي لبناء مشروع مفتوح المصدر (Open Source) نطمح من خلاله إلى تقديم منتج عالي الجودة، مبني على أحدث تقنيات وتوجهات البرمجة الحديثة، مع الالتزام بأفضل الممارسات مثل:
كتابة كود نظيف (Clean Code) اتباع مبادئ SOLID استخدام أنماط التصميم (Design Patterns) التعاون ضمن بيئة تقنية تعليمية ومُلهمة
ليش ممكن تكون مهتم؟
ستعمل ضمن فريق يقدّر التعلم وتبادل الخبرات نُولي اهتمامًا كبيرًا بـ مهارات التواصل الفعّال والعمل الجماعي ستُساهم في بناء مشروع حقيقي يُضاف إلى ملفك المهني (Portfolio) ستُطوّر مهاراتك من خلال التطبيق العملي والعمل ضمن فريق محترف المشروع يُدار باحترافية من خلال فترات Sprint محددة، بحيث نراعي وقتك ونوازن بين التعلم والعمل والحياة
هدفنا مو بس ننجز مشروع، بل نبني بيئة حقيقية ننمو فيها كمطورين ونتبادل المعرفة ونتطوّر معاً.
إذا كنت:
تمتلك شغفاً أو خبرة في مجال الـ Frontend تحب التعلم ومشاركة المعرفة تجيد التواصل وتحب العمل ضمن فريق
راسلني، وخلّنا نبدأ سوا رحلة فيها شغف، تطوير، ومساهمة حقيقية في المستقبل.
أبحث عن مطور/ة Frontend مبدع(ة) ومتحمس(ة) للانضمام إلى فريقي لبناء مشروع مفتوح المصدر (Open Source) نطمح من خلاله إلى تقديم منتج عالي الجودة، مبني على أحدث تقنيات وتوجهات البرمجة الحديثة، مع الالتزام بأفضل الممارسات مثل:
كتابة كود نظيف (Clean Code) اتباع مبادئ SOLID استخدام أنماط التصميم (Design Patterns) التعاون ضمن بيئة تقنية تعليمية ومُلهمة
ليش ممكن تكون مهتم؟
ستعمل ضمن فريق يقدّر التعلم وتبادل الخبرات نُولي اهتمامًا كبيرًا بـ مهارات التواصل الفعّال والعمل الجماعي ستُساهم في بناء مشروع حقيقي يُضاف إلى ملفك المهني (Portfolio) ستُطوّر مهاراتك من خلال التطبيق العملي والعمل ضمن فريق محترف المشروع يُدار باحترافية من خلال فترات Sprint محددة، بحيث نراعي وقتك ونوازن بين التعلم والعمل والحياة
هدفنا مو بس ننجز مشروع، بل نبني بيئة حقيقية ننمو فيها كمطورين ونتبادل المعرفة ونتطوّر معاً.
إذا كنت:
تمتلك شغفاً أو خبرة في مجال الـ Frontend تحب التعلم ومشاركة المعرفة تجيد التواصل وتحب العمل ضمن فريق
راسلني، وخلّنا نبدأ سوا رحلة فيها شغف، تطوير، ومساهمة حقيقية في المستقبل.