كل الأنشطة
- الساعة الماضية
-
عبير الاحمري اشترك بالأكاديمية
-
user-68cb3f7e3156c4.59959413 اشترك بالأكاديمية
-
سما عطيه اشترك بالأكاديمية
-
شوق الحربي6 اشترك بالأكاديمية
-
مصطفى الحمداني اشترك بالأكاديمية
- اليوم
-
Arabic Graphic اشترك بالأكاديمية
-
سميره العطوي اشترك بالأكاديمية
-
Mrblackmack خالد اشترك بالأكاديمية
-
Medina Med اشترك بالأكاديمية
-
Amal Fadul اشترك بالأكاديمية
-
المشاريع الخاصة بجانغو نستخدم بها API بالفعل، فلا يوجد مشروع واجهة خلفية بدون API، الفكرة أننا قمنا بتطوير الواجهة الأمامية أيضًا من خلال جانغو عن طريق محرك القوالب الخاص به، ولو تجاهلت ذلك الجزء، ستجد أننا قمنا بإنشاء API أي مسارات ومتحكمات لمعالجة الطلبات الواردة. أي لو أردت تطوير واجهة خلفية لمشروع آخر من خلال جانغو، تستطيع ذلك لا مشكلة، ستقوم بتطوير المشروع كما فعلنا في الدورة ولكن بدون الجزء الخاص بالواجهة الأمامية. نفس الحال بالنسبة لمشاريع Flask. وفي حال تقصد Django REST Framework فلم يتم التطرق إليه في الدورة، لكنه يعتمد على جانغو لذا بتعلم جانغو فقد تعلمت نسبية كبيرة من ذلك الإطار. ستجد تفصيل هنا:
-
هل فيما بعد عند تنفيذ مشروع لعميل أو من أجل بناء معرض أعمالك ستقوم بنسخ هيكل مشروع ما؟ بالطبع لا، يجب أن تتعلم طريقة تهيئة المشروع وتهيئة بيئة العمل. لكن يجب التفرقة بين الـ Boilerplate وبين تهيئة المشروع، حيث الـ Boilerplate هو هيكل المشروع والأكواد الأساسية اللازمة لإنشاء مشروع react مثلاً، ولا حاجة لفعل ذلك بنفسك، حيث ستقوم بتنفيذ أمر بسيط يقوم بذلك بشكل تلقائي: npm create vite@latest my-react-app -- --template react ما يجب عليك استيعاب هيكل المشروع الذي تم إنشائه وليس تجاهله، بمعنى تستوعب لماذا تم إنشائه بهذا الشكل، لكي تتمكن من التعديل عليه وتطوير المشروع، وتتجنب وضع ملفات في المكان الغير صحيح. بينما مشاريع الويب من خلال HTML, CSS و webpack مثلاً، فتحتاج إلى تعلم كيفية تهيئة المشروع من الصفر، حيث لا يوجد هيكل أساسي لتلك المشاريع، وهي الأساس الذي يُبنى عليه، لذا تعلم الطريقة الصحيحة لهيكلة المشروع والأسلوب المُتعارف عليه وتستطيع التعديل عليه كيفما تريد لكن ليس بالشكل الذي يجعله صعب الفهم من قبل الآخرين.
-
كل عنصر HTML هو بمثابة صندوق، وخاصية display تحدد كيف سيتصرف وكيف سيؤثر على الصناديق التي حوله، وأهم القيم هي: 1- display: block حيث تحول العنصر إلى نوع block والذي يستحوذ على كامل عرض السطر المتاح له ويبدأ دائماً على سطر جديد، وله الخصائص التالية: يمكنك تحديد width و height له. تستطيع تطبيق margin و padding عليه من كل الجهات. يدفع العناصر التي تأتي بعده إلى سطر جديد. 2- display: inline تحول العنصر إلى نوع inline والذي يستحوذ فقط على المساحة التي يحتاجها بقدر المحتوى الذي بداخله، ويبقى على نفس السطر مع العناصر الأخرى. وخصائصه: لا يمكنك تحديد width أو height له حيث يتجاهلهما. margin-top و margin-bottom ليس لهما تأثير. يبقى بجانب العناصر الأخرى في نفس السطر. 3- display: inline-block تحول العنصر إلى مزيد بين النوعين السابقين، بحيث يبقى على نفس السطر مع العناصر الأخرى مثل inline، ولكن تستطيع تحديد width و height و margin و padding له بالكامل مثل block. وتستخدم ذلك في حال تريد عناصر بجانب بعضها البعض ولكن مع التحكم الكامل في أبعادها. ولكن ستعتمد على ما سبق بنسبة قليلة، فحاليًا flexbox وgrid هما الأساس، أي القيم التالية: display: flex display: grid وبالطبع تحتاج إلى دراسة الأساسيات الخاصة بهم لتستطيع استخدامهم بكفاءة. وتوجد قيمة أخيرة وهي . display: none التي تقوم بإزالة العنصر من الصفحة بالكامل وكأنه غير موجود، أي لا تخفيه بل تزيله.
-
عليك باستخدام Laravel Breeze لأنه تم إطلاقها في 2021، وتستخدم مكوناتBlade و Alpine.js وVite، والتصميم الإفتراضي يعتكد على TailwindCSS ويمكن استبداله، ولاستخدام Bootstrap يتطلب الأمر تعديلات تستغرق حوالي 5 إلى 10 دقائق. وتوفر تسجيل دخول، تسجيل مستخدم، إعادة تعيين كلمة المرور، تأكيد البريد، وremember me، ومكوناتBlade قابلة لإعادة الاستخدام، وتنسيق منفصل عن الـ CSS. وبما أنها تعتمد على Vite فالتحميل أسرع، ويتم تقسيم ملفات CSS وJS، وتدعم لارافل 10 وما بعده، وما زالت تحصل على تحديثات مستمرة لكونها مكتبة حديثة. ومن حيث الصيانة فهي أكثر سهولة لأن Breeze يعتمد على الـ components والـ middleware الحديث. بينما Laravel UI تم نشرها في 2019، وتعتمد على قوالب Blade التقليدية وتستخدم Laravel Mix وهي أداة تحزيم قديمة ولم تعد تستخدم، وتعتمد على بوتستراب بشكل إفتراضي أي بخصوص إعداد المشروع فلن تستغرق وقت بسبب إعتمادها على بوتستراب. وتوفر نفس الوظائف، لكن بدون الـ email verification المدمج في Breeze وتستطيع إضافته يدويًا، والقوالب جاهزة ولكنها أحادية أي لا توجد مكونات. وبما أنها تعتمد على Laravel Mix فحجم الملفات أكبر قليلاً والأداء أقل كذلك. وبخصوص الصيانة فتحتاج تعديلات يدوية أكثر عند ترقية لارافل إلى إصدار حديث.
-
لن تستطيع ذلك، الأفلام والمواد الإبداعية محمية بموجب حقوق الطبع والنشر، أي يجب أن يدفع المستخدم للاستفادة منها سواء بالمشاهدة أو الاستخدام، ولن تتمكن من رفع الموقع على Netlify وGitHub بسبب انتهاك حقوق الغير، أي حتى لو تم رفعه سيتم غلقه من قبلهم، وذلك بسبب تطبيق سياسات DMCA وهو قانون أمريكي لحماية الحقوق الرقمية. كل ما يمكنك فعله هو وضع معلومات عن الأفلام وطريقة لمشاهدتها بشكل قانوني. في حال تتساءل عن مواقع الأفلام التي تنشر أفلام مسروقة، فلا يمكن مساعدتك مساعدتك في ذلك بالطبع.
-
في البرمجة المشاهدة شيء والتطبيق العملي شيء آخر تمامًا، بكل صراحة لن تتعلم البرمجة بالمشاهدة فقط، عليك تقسيم الدرس أو الشرح إلى أجزاء طالما مدته طويلة، ثم التوقف والتطبيق. أو لو لديك القدرة، قم بمشاهدة الشرح وتطبيق ما جاء به بالكامل بمفردك، أو التطبيق على مشروع أو تمرين آخر لتوظيف ما تعلمته، المهم هي الممارسة العملية، ستتفاجيء بأمور كثيرة تظن أنك استوعبتها لكن بالتطبيق العملي يظهر عكس ذلك. تفقد التصاميم التالية وحاول تنفيذها من خلال flexbox https://www.frontendmentor.io/challenges?difficulty=1&type=free%2Cfree-plus
- 1 جواب
-
- 1
-
-
محمد قماري بدأ بمتابعة استفسار بخصوص تعلم Flex box
-
لقد درست Flex box في فديو فيه 48 دقيقة شاهدتها وفهمتها ولكن لم اكتب ورائها اي كود هل اشاهد لgrid ام انشئ مشروع بhtml and css بإستعمال Flex box وشكرا
- 1 جواب
-
- 1
-
-
في دورة بايثون، يوجد مقدمة وشرح أساسيات بسيطة في مجال تعلم الآلة، فتخصص الدورة هو لغة بايثون وليس تعلم الآلة. بينما دورة الذكاء الاصطناعي فستدرس بها ما يلي: ستتعلم تحليل البيانات على مشاريع عملية، وستتعلم استخلاص المعلومات من مجموعات من البيانات بتحليلها وتصويرها، والتعامل مع مكتبات شهيرة مثل Pandas و Numpy و Matpoltlib و Seaborn. التعامل مع نماذج الذكاء الاصطناعي LLMs الكبيرة مثل GPT من OpenAI مثل ChatGPT ونموذج LLaMA و DeepSeek مع أمثلة عملية عن استخدامها. التعامل مع نماذج الرؤية الحاسوبية باستخدام نماذج الذكاء الاصطناعي الحديثة مثل YOLO وCLIP وVision Transformers، مع صقل Fine-Tuning هذه النماذج لتحقيق أداء أعلى. ستطبق خوارزميات التعلم العميق في تصنيف العناصر، وتدرب شبكات عصبية CNN للتعرف على الصور، وتحلل المشاعر والنصوص وتبني بوت محادثة عبر الشبكات التكرارية RNN، وتطبيقات أخرى عملية عليها. تقنيات نقل التعلم وتدريب النماذج وصقلها Fine-Tuning لتحقيق أداء أعلى في مهام الذكاء الاصطناعي، وستستفيد من النماذج المدربة مسبقًا لتسريع عملية التدريب، وتخصيصها لتلبية احتياجات تطبيقات محددة مثل تصنيف الصور وتحليل النصوص. الخوارزميات التي تستخدم في مهام الانحدار Regressions والتصنيف Classification والتجميع Clustering وغيرها في تعلم الآلة. خوارزميات التعلم الخاضعة للإشراف Supervised learning وخوارزميات التعلم الغير خاضعة للإشراف Unsupervised learning وخوارزميات التعلم المعزز Reinforced learning. ستتعلم هندسة الموجهات Prompt Engineering وضبطها Prompt tuning مع مختلف نماذج LLMs، وكيفية تشغيل Ollama محليًا. ستوظف ما تعلمته من تحليل للبيانات وتعلم الآلة في متجر إلكتروني، بدءًا من جلب البيانات من قاعدة البيانات ثم تحليلها ثم برمجة نماذج الذكاء الاصطناعي ثم دمجها مع المتجر لتقديم أنظمة ذكية للعملاء. كيفية جمع الصور ومعالجتها وتهيئتها لبناء نموذج شبكة عصبية عبر TensorFlow، وستتعلم إنشاء واجهة برمجية API بنفسك لدمج النماذج التي دربتها مع تطبيقاتك. كيفية تصميم أنظمة ذكية تتعلم من التجربة لاتخاذ قرارات مثلى في بيئات ديناميكية، باستخدام تقنيات مثل Q-learning والتعلم العميق. بعد الإنتهاء من الدورة ستنقلك من مستوى شخص لديه أساسيات في تعلم الآلة وهو مستواك الحالي إلى مستوى مهندس تعلم آلة مبتدئ إلى متوسط. أي ستتخرج منها وأنت لست مجرد محلل بيانات بل مطور ذكاء اصطناعي قادر على: تحليل المشكلة وتحديد النهج المناسب سواء تعلم آلة تقليدي، تعلم عميق، استخدام LLM. جمع البيانات ومعالجتها. بناء وتدريب وتخصيص النماذج باستخدام أحدث المكتبات والأدوات بواسطة Transformers أو TensorFlow دمج تلك النماذج في تطبيقات حقيقية عبر واجهات برمجية APIs.
-
ما هو التخصص البرمجي؟ وما هي الاستخدامات الأخرى؟ ففي حال تعلم الآلة فالمواصفات ليس كافية، فالـ GPU المدمج جيد للتعلم، لكن للمشاريع الكبيرة ستحتاج Google Colab Pro أو منصات سحابية أخرى. أيضًا سعة 512GB ستمتلئ مع الـ datasets الكبيرة أو النماذج الضخمة، ستحتاج استخدم Google Colab أو قرص خارجي. لذا تستطيع شراؤه حاليًا والاستفادة منه ثم بيعه وشراء نسخة أفضل فيما بعد، أو التوجه ناحية نظام الويندوز أي لابتوب بنظام ويندوز، فستحصل على مواصفات مرتفعة بنفس السعر. أو في حال ليس لديك مشكلة في دفع اشتراك Google Colab وهي 10$ شهريًا فلا مشكلة.
-
الأمر به مخاطرة بالطبع، وحتى لو طالت المدة يوجد مخاطرة بحظر حساب الشركة أيضًا، فأنظمة Google قوية جدًا في إنشاء بصمة رقمية للمستخدمين من خلال Big Data، بمعنى الربط بين الأجهزة المشتركة (أجهزة الكمبيوتر، الهواتف الذكية) وتسجيل الدخول إلى حساب مطور جديد أو مختلف من جهاز تم استخدامه مسبقاً للوصول إلى حساب تم إنهاؤه هو علامة خطر، بالتالي يمكن للنظام تتبع المعرفات الخاصة بالجهاز. ولو استخدمت نفس الشبكة في منزلك أو شبكة المكتب بنفس عنوان IP الذي تعرض للحظر، وذلك للوصول إلى حسابات مطورين متعددة فبذلك تعرضها لخطر الحظر، حتى استخدام شبكات Wi-Fi العامة أو الشبكات الافتراضية الخاصة (VPNs) محفوفة بالمخاطر أيضًا، فأنت لا تضمن استخدام مطور محظور لنفس الخدمة. والمتصفحات الحديثة توفر الكثير من البيانات منها الخطوط، الإضافات، دقة الشاشة، وكيل المستخدم user-agent، والتي من خلالها يتم إنشاء بصمة فريدة بجانب بيانات أخرى، وذلك يربط الأنشطة عبر حسابات مختلفة حتى بدون ملفات تعريف الارتباط أي الكوكيز. وتوجد حالة مشابهة، ابحث عن Raya Games، حيث تم حظر الحساب الشخصي لموظف سابق منذ ثلاث سنوات، وبعدها تم إنهاء حساب الشركة بسبب الارتباط واستخدام الموظف لحساباتها، تم أيضاً إنهاء حساب Google الشخصي للمالك، وكان الرابط الوحيد هو الوصول المتبقي للموظف السابق إلى تطبيق قديم وغير منشور. ستحتاج إلى استخدام بصمة مختلفة غير متعلقة بالحساب الذي تم حظره، أي جهاز جديد إن أمكن وIP جديد ومتصفح مختلف، ولا تقم بتسجيل الدخول من أي حساب جوجل قمت بتسجيل الدخول به على الجهاز القديم، فجوجل لا تعتمد فقط على الموقع الجغرافي، بل على الـ IP والجهاز، ولو الـ IP الخاص بك في الجزائر، فسيتم التعرف عليه حتى لو كان الحساب مسجلاً في قطر. غير الـ IP من خلال VPN مثل ExpressVPN أو NordVPN لتغيير الـ IP إلى واحد في قطر أو بلد آخر، وفعله دائماً عند الوصول إلى Play Console. ولو أردت استعادة حسابك الشخصي قدم طعناً appeal عبر الرابط في الإشعار مع شرح الظروف وإثبات صدق نيتك، لكن نسبة القبول ضعيفة.
-
في الشروحات ستجد أسماء تلك المفاهيم يتم استخدامها بشكل متبادل للدلالة على نفس المعنى، لكن للدقة المعاملات تعني المتغيرات التي يتم تعريفها بين أقواس الدالة عند إنشائها أي بمثابة أسماء رمزية أو خانات فارغة تحدد أنواع البيانات التي تتوقع الدالة استقبالها لكي تعمل بشكل صحيح. function calculateArea(length, width) { let area = length * width; console.log("مساحة المستطيل هي: " + area); } لاحظ length هو مُعامل Parameter وwidth أيضًا. وعند استدعاء الدالة نقوم بتمرير قيم لها تسمى الوسائط، وتلك القيم تملأ الخانات الفارغة التي حددتها المُعاملات. calculateArea(10, 5); القيمة 10 هي وسيط يُمرّر للمُعامل length، والقيمة 5 تُمرر لـ width. كما لاحظت يجب تمرير القيم بنفس ترتيب المعاملات عند تعريفها في الدالة، وتستطيع تمرير عدد من الوسائط أكثر أو أقل من عدد المُعاملات المحددة، لكن لو قمت باستخدام معامل داخل الدالة لم تمرر له قيمة سيحدث خطأ لأنه udefined. أيضًا تستطيع تحديد قيمة افتراضية لمُعامل في حال لم يتم تمرير وسيط له عند استدعاء الدالة. function calculateArea(length=1, width=1) { let area = length * width; console.log("مساحة المستطيل هي: " + area); } calculateArea()
-
السلام عليكم ورحمة الله تعالى وبركاته، يمكنك تعديل الكود ليطلب من المستخدم إدخال اسم المدينة بدلاً من استخدام رابط ثابت. استبدل الجزء الخاص بالرابط والبحث بهذا الكود: city = input("أدخل اسم المدينة: ") url = f"https://www.timeanddate.com/worldclock/{city.lower()}" driver.get(url) مع إضافة معالجة للأخطاء في حالة عدم وجود المدينة: try: html = driver.page_source soup = BeautifulSoup(html, "html.parser") time_element = soup.find("span", {"id": "ct"}) if time_element: print(f"الوقت في {city}: {time_element.text}") else: print("لم يتم العثور على المدينة") except Exception as e: print("خطأ في الحصول على البيانات") finally: driver.quit()
-
# دالة تضرب أي عدد من الأرقام وتُرجع النتيجة def multiply(*numbers): result = 1 for n in numbers: result *= n return result # الآن برنامج أكبر يستعمل الدالة print("أدخل أرقامًا تريد ضربها (افصلها بمسافة):") user_input = input(">> ") # تحويل الإدخال إلى قائمة أرقام numbers = [float(x) for x in user_input.split()] # استعمال الدالة لحساب النتيجة product = multiply(*numbers) # طباعة النتيجة print("النتيجة هي:", product)
-
من خلال دالة input ستطلب من المستخدم كتابة اسم المدينة وتخزينه في متغير user_input. user_input = input("Please enter the city name: ") ثم بدلاً من الذهاب إلى رابط ثابت، عليك إنشاء رابط جديد في كل مرة بناءًا على مدخلات المستخدم، أي الرابط الخاص بالبحث في الموقع يكون بهذا الشكل لو أدخل المستخدم cairo https://www.timeanddate.com/worldclock/?query=cairo وتستطيع تكوين الرابط من خلال f-string لتسهيل دمج اسم المدينة في الرابط، لكن عليك استخدام وحدة urllib لتحويل المسافات لرمز + بمعنى New York يتم تحويلها إلى New+York. import urllib.parse query = urllib.parse.quote_plus(city_name) url = f"https://www.timeanddate.com/worldclock/?query={query}"
- 2 اجابة
-
- 1
-
-
- 2 اجابة
-
- 1
-
-
منصة Kaggle وجوجل كولاب هي بيئة عمل جاهزة، لذا الاستقرار هو أهم عامل يتم التركيز عليه، فبيئة Kaggle Notebook تُعرف بـ Docker Image أي هي نظام متكامل ومعقد، ولا تحتوي فقط على مكتبة واحدة مثل pandas أو scikit-learn، بل تحتوي على مئات المكتبات التي تعتمد على بعضها البعض، بالإضافة إلى برامج تشغيل GPU مثل CUDA و cuDNN. وبتحديث مكتبة واحدة بشكل عشوائي إلى أحدث إصدار، فأحيانًا يكسر توافقها مع مكتبة أخرى، أي قد يتطلب إصدار جديد من TensorFlow نسخة أحدث من CUDA لا تدعمها بيئة Kaggle الحالية، أو يتعارض مع نسخة معينة من numpy. لذا يعمل فريق Kaggle على تجميع واختبار Image كاملة تحتوي على مجموعة من المكتبات التي تم التأكد من أنها تعمل معاً بشكل سليم ومستقر. أيضًا لا يعني وجود إصدار جديد من المكتبة أنه أفضل، بل أحيانًا يحدث العكس، لذا الأمر بحاجة إلى وقت لإختبار والتحقق من استقرار تلك الإصدارات.
-
لا قصدي نظام مدينة كشف الجرائم يعني : 1- سرقة المتاجر. 2- الإختطافات . 3- معرفة الاطفال الضائعة من خلال ميزة التتبع. 4- مرور على الاشارة الحمراء. 5- تتبع المشتبه عبر تسلسل الكاميرات. 6- التقاط ارقام السيارات الي دخالها المشتبه. وأكيد داخل بيئة محاكات في الحاسب ,وسبب اختياره لعدة نماذجه. مثل هذا :https://github.com/OpenVisualCloud/Smart-City-Sample اريد معرفة الاشياء الاخرى التي يجب أن اتعلمها ,وطرق اخرى لتكوين خبرة عالية في المجال وتعزيز الفهم. وشكرا.
-
ليس دائمًا، فالدوال الجاهزة مثل image_dataset_from_directory مناسبة في الحالات العادية التي يتوفر بها هيكل بيانات اعتيادي، بمعنى مجلد لمجموعة البيانات ويحتوي بداخله على مجلدات أخرى وبها البيانات. ومن خلالها تستطيع تحميل مجموعة بيانات كاملة ببضعة أسطر فقط، وتلك الدوال ليست مجرد اختصار في TensorFlow، بل تقوم image_dataset_from_directory بإنشاء كائن tf.data.Dataset، وهو مصمم خصيصًا للأداء العالي، ويستخدم تقنيات مثل الجلب المسبق Prefetching لتحميل الدفعة التالية من البيانات في الخلفية بينما تتدرب الشبكة على الدفعة الحالية، لمنع اختناق وحدة معالجة الرسومات وانتظارها للبيانات، وتقنية التوازي Parallelism لقراءة ومعالجة عدة صور في نفس الوقت باستخدام أنوية المعالج المتعددة. أيضًا التخزين المؤقت لتخزين البيانات في الذاكرة بعد قراءتها لأول مرة لتسريع الوصول إليها في الدورات التدريبية Epochs التالية. والكائن الناتج منها يكون جاهز للاستخدام مباشرة مع model.fit() في Keras أو في حلقة التدريب المخصصة في PyTorch، دون الحاجة لتحويلات إضافية، أيضًا تقوم تلقائيًا باستنتاج أسماء الفئات Classes من أسماء المجلدات، وتوفر خيارات سهلة للتقسيم إلى دفعات Batching والخلط Shuffling. بينما الطريقة اليدوية أنسب عند الحاجة إلى مرونة وتحكم كامل، وفي حالات لا تغطيها الدوال الجاهزة، بمعنى هيكل مجلدات معقدة أو معالجة مسبقة متقدمة أو مخصصة أو تحكم دقيق في الذاكرة. صحيح من ناحيتين وقت المطور و وقت التنفيذ، فالأول كتابة بنية شبكة CNN باستخدام Keras أو PyTorch هي الجزء الأسرع والمباشر في المشروع، فهي عبارة عن تكديس طبقات فوق بعضها البعض (Conv2D, MaxPooling2D, Dense ). والثاني أثناء تدريب النموذج، خط أنابيب البيانات هو عنق الزجاجة في الأداء، وليس حسابات الشبكة العصبونية نفسها.
-
ما الذي تقصده بمدينة ذكية؟ فلو تقصد محاكاة لمدينة ذكية، فالمشروع ليس مجرد نموذج ذكاء اصطناعي واحد، بل نظام من ضمن أنظمة مختلفة يتطلبها المشروع، في الدورة أنت تعلمت كيف تبني العقل الذكي وهو الذكاء الاصطناعي، وستحتاج لتعلم كيفية بناء الجسد الذي يربط العقل بالعالم الحقيقي ويجعله يتفاعل معه. بمعنى المدينة الذكية ترى وتشعر من خلال أجهزة الاستشعار، وذلك يتم من خلال مجال إنترنت الأشياء IoT، وتلك هي الطبقة الأولى لاستشعار وجمع البيانات (الحواس): ثم الطبقة الثانية أو النظام الثاني، وهي هندسة البيانات، حيث كمية البيانات التي تنتجها مدينة ضخمة (فيديو، قراءات مستشعرات، إلخ) هائلة وتحتاج إلى بنية تحتية قوية للتعامل معها. والطبقة الثالثة، هي تطبيق مهاراتك الحالية في الذكاء الاصطناعي، والرابعة تطوير الواجهات الخلفية وواجهات برمجة التطبيقات API's، والخامسة خيالبنية التحتية السحابية و DevOps، والسادسة: عرض البيانات والتفاعل (الواجهة) أي كيف سيرى المسؤولون في المدينة ما يحدث؟ من خلال لوحات المعلومات. لذا لن تستطيع القيام بذلك بمفردك، ما تستطيع تنفيذه هو بناء نموذج أولي Proof of Concept أي اختر مشكلة واحدة صغيرة جداً ولا تبدأ بالمدينة الذكية، بل بنظام ذكي لمراقبة امتلاء حاويات القمامة في حي واحد: اجمع صوراً لحاويات قمامة (ممتلئة، فارغة، نصف ممتلئة). ابنِ نموذج Computer Vision يصنف حالة الحاوية من الصورة. من خلال الـ IoT استخدم Raspberry Pi مع كاميرا لالتقاط صورة وإرسالها كل ساعة. ابنِ API بسيط باستخدام Flask يستقبل الصورة من الـ Raspberry Pi، يمررها للنموذج، ويخزن النتيجة مثلاً حاوية رقم 123 ممتلئة في قاعدة بيانات بسيطة. ابنِ لوحة تحكم بسيطة جداً باستخدام Streamlit أو Dash تعرض خريطة عليها نقاط تمثل الحاويات، ولون النقطة يتغير حسب حالتها. بعد نجاح المشروع، ستكون قد تعلمت أساسيات IoT، Backend، و Dashboards، وتستطيع الآن العمل على مشكلة أخرى أكبر قليلاً، مثل تحليل حركة المرور عند تقاطع واحد، وتطبيق نفس الخطوات. بالطبع ستحتاج إلى إنهاء الدورة بالكامل قبل العمل على المشروع فباقي المسارات أنت بحاجة إلى دراستها.
-
المشكلات تنشأ بسبب طبيعة السحابة نفسها، حيث يتم تخزين البيانات وتشغيل التطبيقات على بنية تحتية يملكها ويديرها طرف ثالث مثل Amazon AWS, Microsoft Azure, Google Cloud. والخطر الأكبر، هو تمكن المهاجمون من الوصول إلى البنية التحتية السحابية، أي الإختراق وسرقة بيانات حساسة لآلاف أو ملايين العملاء، وذلك يحدث لأسباب عديدة منها ثغرات أمنية، أو إعدادات خاطئة، أو هجمات تصيد Phishing ناجحة، والخسائر هنا خسائر مالية فادحة، الإضرار بسمعة الشركة، وعقوبات قانونية. أو الإعدادات الخاطئة والتهيئة غير الآمنة، فهي أحد أكثر الأسباب شيوعًا للحوادث الأمنية في السحابة، وغالبًا ما يكون الخطأ من جانب العميل وليس من مزود الخدمة السحابية، بمعنى ترك قواعد بيانات أو وحدات تخزين مثل Amazon S3 buckets مفتوحة للجميع دون حماية، استخدام كلمات مرور ضعيفة أو افتراضية، أو عدم تفعيل جدران الحماية بشكل صحيح. أيضًأ واجهات برمجة التطبيقات غير الآمنة، بمعنى الـ APIs وهي الطريقة التي تتفاعل بها الخدمات والتطبيقات مع البيئة السحابية، فلو كانت الواجهات ضعيفة أمنيًا، سيتم استغلالها للتحكم في الخدمات السحابية وسرقة البيانات، سواء بسبب ضعف في آليات المصادقة Authentication أو السماح بصلاحيات أوسع من اللازم. ولو تمكن المهاجم من سرقة بيانات الإعتماد أي اسم مستخدم وكلمة مرور لمسؤول النظام، فيمكنه التحكم في جميع الموارد السحابية للشركة، وذلك بسبب هجمات التصيد، البرامج الضارة، أو استخدام كلمات مرور ضعيفة. وهناك مخاطر أخرى منها موظف يقوم بحذف البيانات أو سرقتها عمدًا، أو يرتكب خطأ بدون قصد، مثل حذف بيانات مهمة أو الوقوع ضحية للتصيد، أو هجمات حجب الخدمة DoS لكن تلك مشكلة مؤقتة ولا تُعرض البيانات للسرقة.
-
بالضبط الإصدار هو 11 وهو قديم بالفعل، ومحتوى الدورات يتم تحديثه كل فترة، ويتم العمل على تحديث مختلف الدورات بالأكاديمية، وفي مسارات أخرى وهي: أساسيات TypeScript تطبيق تعلم اللغات باستخدام Next.js وتقنيات الذكاء الاصطناعي يتم استخدم الإصدار 13 والميزات الجديدة التي توفيرها في الإصدار 12 و13، حيث قدم Next.js 13 مفهوم App Router أي مجلد app كنظام جديد كليًا يعمل بالتوازي مع النظام القديم Pages Router، وعلى الرغم من أن النظام القديم لا يزال مدعوم، إلا أن App Router هو الأفضل لجميع المشاريع الجديدة.
-
الفكرة الأساسية هي تجنب التطبيق بدون استيعاب، وحتى لو استوعبت الشرح وطبقت مع المدرب، فهناك أمور لن تتضح لك إلا عند التنفيذ بمفردك، بمعنى تقسيم الدرس إلى حصص في حال كان الدرس طويل، ثم التوقف والتطبيق على كل جزء بمفردك، أو مشاهدة الدرس بالكامل في حال كان بسيط ثم التطبيق. وفي حال واجهت صعوبة، حاول التذكر والتجربة بنفسك أولاً ثم العودة للدرس للمراجعة، أي لا تخف من التجربة والخطأ فهي أساس عملية التعلم. وبعد فترة من التعلم، حاول توظيف ما تعلمته في المشاريع التي تعمل عليها، أي لا تكتفي بما تم بالدرس فقط، مثال بسيط، عند تعلم أساسيات لغة برمجية فهناك تمارين بالدروس حول مفهوم الدرس فقط، قم بتطبيق ما تعلمته في الدروس السابقة في التمرين الخاص بالدرس أيضًا وهكذا. أيضًا لو أردت تنفيذ أمر ما ولم يتم شرحه بعد أو لم يتم ذكره في الدورة، قم بالبحث عن أو السؤال، ولا تكتفي بما يتم تقديمه لك، مثلاً أثناء تنفيذك للتمرين أردت تطبيق منطق معين ولكنك لا تعرف كيف؟ تفقد دروس الدورة في حال لم تجد شرح للمفهوم ابحث عنه على يوتيوب أو جوجل، أو قم بالسؤال وسيتم مساعدتك. ستجد هنا تفصيل أكثر: