اذهب إلى المحتوى

Chihab Hedidi

الأعضاء
  • المساهمات

    2064
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    13

كل منشورات العضو Chihab Hedidi

  1. يظهر هذا الخطأ عندما تحاول إدراج قيمة صريحة في عمود هوية في جدول قاعدة البيانات بينما يكون إعداد IDENTITY_INSERT لهذا الجدول مضبوطًا على OFF، و لحل هذه المشكلة، يجب عليك تفعيل IDENTITY_INSERT يمكنك ذلك عن طريق إضافة هذا السطر: -- تفعيل IDENTITY_INSERT SET IDENTITY_INSERT categories ON; -- ثم تنفيذ عملية الإدخال -- إيقاف IDENTITY_INSERT بعد الإدخال SET IDENTITY_INSERT categories OFF; تأكد من إيقاف إعداد IDENTITY_INSERT بعد الانتهاء من الإدراج للحفاظ على سلامة البيانات.
  2. الأصل هو أن Visual Studio Code محرر أكواد نصية ولكن يمكن اعتباره أيضا بيئة تطوير متكاملة (IDE) إلى حد ما، لأنه يوفر العديد من الميزات التي تستخدم عادة في بيئات التطوير المتكاملة، كالتكامل مع أدوات التصحيح، دعم مجموعة متنوعة من لغات البرمجة من خلال الملحقات، التكامل مع أنظمة إدارة الإصدارات مثل Git، إمكانية كتابة وتشغيل الأوامر داخل المحرر، و حتى دعم العديد من أدوات التطوير الأخرى مثل Docker و Kubernetes من خلال الملحقات، و هذه المميزات تجدها عادة في بيئات التطوير المتكاملة فقط، كما أنه يمكن تخصيص Visual Studio Code بشكل كبير من خلال استخدام الملحقات، مما يجعله شبيها ببيئة تطوير متكاملة مرنة وقابلة للتخصيص.
  3. هي اختصار لـ Unified Modeling Language هي لغة نمذجة تستخدم في هندسة البرمجيات لتصميم وتوثيق هياكل وبرمجيات الأنظمة. تتضمن مجموعة من الرسوم التخطيطية، بما في ذلك الرسوم التخطيطية الطبقية التي تمثل الفئات وعلاقاتها، والرسوم التخطيطية التتابعية التي تظهر التفاعلات بين الكائنات في تسلسل زمني، والرسوم التخطيطية التشاركية التي توضح كيفية تفاعل الكائنات مع بعضها البعض. كما تشمل الرسوم التخطيطية للحالة التي تمثل حالات الكائنات وتغيراتها، والرسوم التخطيطية للنشاط التي توضح تسلسل الأنشطة وكيفية تدفقها، والرسوم التخطيطية للاستخدامات التي تبين التفاعل بين المستخدمين والنظام. تساعد هذه الرسوم التخطيطية في توضيح البنية العامة للأنظمة وتسهيل التواصل بين الفرق المختلفة. و تكمن استخدامات UML في تطوير البرمجيات لفهم وتصميم البنية العامة للأنظمة، كما تساعد على التواصل بين الفرق المختلفة من المطورين والمصممين والمديرين، وتسهل توثيق الأنظمة والبرمجيات. و يمكنك أن تطلع أكثر عليها من خلال هذه المقالات: بالتوفيق إن شاء الله.
  4. يمكنك استخدام JavaScript لإضافة عناصر جديدة أو نصوص إلى عنصر `div فارغ باستخدام DOM Manipulation، حيث يمكنك استخدام innerHTML أو appendChild أو insertBefore، وغيرها لإضافة محتوى. أو يمكنك حتى استخدام خاصية content مع الـ Pseudo Elements و يمكنك أن تطلع أكثر على الموضوع من خلال هذه المقالات:
  5. تعمل الأكاديمية جاهدة لتوفير دورات في كل المجالات الممكنة و أيضا على تحديث الدورات الحالية، و بالنسبة لدورة في الأمن السيبيراني سيصل إقتراحك إن شاء الله للإدارة، لا أستطيع أن أعطيك توقع لمتى تتوفر الدورة و لكن بالتأكيد ستكون في القريب العاجل.
  6. مرحبا يوسف، ارجوا وضع تساؤلاتك تحت كل فيديو حتى يتسنى لنا مساعدتك بشكل أفضل. بالتوفيق إن شاء الله.
  7. يمكنك دراسة الإثنين مع بعض، بالنسبة لطريقة دراستها الأفضل أن تشاهد فيديوات شرح أفضل لأنهم يتم تبسيطها بشكل كبير و بالتالي يسهل عليك فهمها.
  8. الفرق بينهما يكمن في الهدف الأساسي لكل منهما والطريقة التي يتم بها تحقيق ذلك، حيث أن أنماط التصميم تعتبر حلول مجربة ومعتمدة لمشاكل معينة في التصميم البرمجي، تمثل النماذج التي تستخدم مجموعة من التقنيات والمبادئ لحل مشكلة معينة بشكل فعال وقابل للتوسع والصيانة، وتهدف إلى توفير طرق قياسية لحل مشاكل معينة مثل إدارة التواصل بين الكائنات، وتقسيم المشاكل الكبيرة إلى أقسام صغيرة، وتنظيم هيكل التطبيق. أما الكود النظيف فيشير إلى كتابة الكود بطريقة تجعله سهل القراءة والفهم والصيانة والتعديل، يشمل ذلك استخدام تسميات مفصلة للمتغيرات والدوال، وتقسيم الكود إلى وحدات صغيرة ومستقلة، والتعليقات المفصلة لشرح الخوارزميات المعقدة. بالنسبة لمبرمجي الذكاء الاصطناعي، فإن فهم Design Patterns يمكن أن يكون مفيدا بشكل كبير، إذ يمكن أن تساعدهم في تنظيم وتصميم النظم بشكل أفضل، وتحسين الأداء والكفاءة، وزيادة قابلية التوسع والصيانة، كما أن فهم الأنماط التقليدية للتصميم يمكن أن يوفر الوقت والجهد من خلال استخدام حلول مجربة ومعتمدة. و يمكنك أن تقرأ أكثر عليها من خلال هذه المقالات:
  9. مكتبة sys توفر وصولا إلى المتغيرات والوظائف المرتبطة بالنظام، هذه المكتبة مفيدة للتعامل مع المعلومات البيئية للنظام والبرنامج الذي يعمل عليه، و تحتوي على العديد من الوظائف و لكن الأهم و الأكثر إستخداما هي : sys.argv: قائمة تحتوي على الوسائط التي تم تمريرها إلى البرنامج من خلال سطر الأوامر. sys.path: قائمة تحتوي على المسارات التي يتم البحث فيها للوصول إلى المكتبات المستخدمة في البرنامج. sys.platform: يوفر معلومات حول المنصة التي يتم تشغيل البرنامج عليها (مثل win32 لنظام Windows أو linux لنظام Linux). sys.exit(): يتيح إنهاء تنفيذ البرنامج في أي وقت.و هذا كود صغير لكيف يتم إستخدام هذه المكتبة: import sys # استخدام sys.argv لطباعة الوسائط الممررة من سطر الأوامر print("الوسائط الممررة:", sys.argv) # استخدام sys.exit() للخروج من البرنامج بشكل نظيم if len(sys.argv) < 2: print("الرجاء تمرير معلمة واحدة على الأقل.") sys.exit(1) # يعني خروج بحالة خطأ # استخدام sys.platform للتعامل مع الأنظمة المختلفة بطرق مختلفة if sys.platform == "win32": print("أنت تستخدم ويندوز.") elif sys.platform == "linux": print("أنت تستخدم لينكس.")
  10. نعم هذا الكورس مناسب للمبتدئين في مجال الذكاء الاصطناعي، لأنه يحتوي على المفاهيم الأساسية للذكاء الاصطناعي بشكل عام ويغطي فروعا مختلفة منه، بما في ذلك تعلم الآلة وتعلم الآلة العميق و غيرها، و يهدف الكورس بشكل أساسي إلى تزويد الطلاب بالأسس اللازمة لفهم وتطبيق تقنيات الذكاء الاصطناعي في مختلف المجالات، وبالنسبة للفرع الذي يغطيه الكورس بشكل خاص، فهو أكثر تركيزا على تعلم الآلة (Machine Learning) بمختلف فروعه، ولكنه يتطرق أيضا إلى مواضيع أخرى مثل تحليل البيانات والذكاء الاصطناعي التطبيقي.
  11. في الدورة العديد من التطبيقات، الأفضل أن تقوم بإنشاء مجلد للدورة، و من ثم أنشئ داخله مجلد لكل مسار و قم بوضع التطبيقات العملية للمسارات داخل كل مجلد خاص بها وضعها بالكامل في مستودع واحد، لأن التطبيقات العملية هناك صغيرة، و يوجد أيضا في الأخير مشروع قم بإنشاء مستودع منفصل له على GitHub. بالتوفيق إن شاء الله.
  12. Ubuntu Linux 22.04 LTS هو إصدار طويل الدعم (LTS) من نظام التشغيل Ubuntu Linux، و يعتبر LTS الإصدار الرئيسي لـ Ubuntu الذي يتم دعمه لمدة طويلة (عادة 5 سنوات) مع التركيز على الاستقرار والأمان. بالنسبة للميزات تم التركيز على تجربة مستخدم محسنة مع إضافة مبدل مساحة عمل أفقي ومشغل تطبيق أفقي، و تم تحسين مدير الملفات مع إضافة ميزات جديدة مثل شريط المسار القابل للتمرير والإكمال التلقائي للمسارات، كما يضم النظام تجربة لقطة شاشة جديدة وخيارات لتعطيل الرسوم المتحركة لسهولة الوصول. تم أيضا تحسين مظهر النظام بألوان مميزة ووضع مظلم حقيقي، مع تحسينات في واجهة سطح المكتب كما تم تحديث صفحات التطبيقات في مركز برامج Ubuntu Software، بالنسبة للعيوب المحتملة يمكن أن يكون هناك مشاكل في التوافق مع بعض البرامج والأجهزة القديمة، بالإضافة إلى التكيف الأولي للمستخدمين الجدد في نظام التشغيل Linux. و هذه أحد الصور للتقنيات الجديدة:
  13. لديك خطأ بسيط في المتغير gradients حيث أنك في السطر 14 قمت بكتابته بشكل خاطئ بالشكل التالي: gradinets, عدله فقط ليصبح هكذا gradients.
  14. أعتقد أن هناك بعض الأخطاء في عملية الربط وفي ترتيب الجداول، حاول تنفيذ الاستعلام التالي الذي يحل الأخطاء ويعطيك النتائج المطلوبة: SELECT f.path_file, p.name_project, s.Num_std, s.Name_std, s.Email_STD, t.Name_teah, d.Name_dept FROM file_project f LEFT JOIN projects p ON f.id_p = p.id_Pro RIGHT JOIN student s ON p.Num_STD = s.Num_std RIGHT JOIN teachers t ON s.id_teah = t.id_teah RIGHT JOIN departments d ON t.id_dept = d.id_dept; هذا الاستعلام يستخدم عمليات الانضمام لربط الجداول معا، و يتم الانضمام من جدول file_project إلى جدول projects باستخدام LEFT JOIN ومن ثم الانضمام بين الجدولين student و teachers و departments باستخدام RIGHT JOIN.
  15. البيانات الاصطناعية هي بيانات يتم إنشاؤها بواسطة الحاسوب وتكون مشابهة للبيانات الحقيقية الموجودة في العالم الحقيقي، و تستخدم بغرض زيادة الخصوصية وسلامة الأنظمة، و في حالة التعلم الآلي، نستخدم البيانات الاصطناعية لتحسين أداء النماذج، كما أنها مفيدة في الحالات التي يكون فيها البيانات قليلة أو غير متوازنة، و مكتبة faker أحد المكتبات الأكثر إستخداما في هذا الأمر. و يوجد حتى بعض الدراسات التي تشير أنه في 2024 ستكون 60٪ من البيانات المستخدمة في تطوير تطبيقات التعلم الآلي والتحليلية مولدة بشكل اصطناعي، ويعود هذا للاستخدام الزائد للبيانات الاصطناعية إلى التكلفة العالية لجمع وتنظيف البيانات الحقيقية، وندرة البيانات في بعض الحالات، والحاجة المتزايدة إلى البيانات لتدريب النماذج واختبارها. و هذه نتائج الدراسة التي تم إجرائها، يعني حاليا يعتبر هذا الأمر من توجهات الذكاء الإصطناعي، صحيح في بعض الخالات يتعين علينا إستخدام بيانات حقيقة، و لكن يمكن دعمها بهذا النوع من البيانات.
  16. نعم من الطبيعي أن ينسى الشخص بعض الأسماء الدقيقة للوظائف أو الأساليب المتاحة في لغة برمجة معينة، و الأمر ليس متعلق ب shuffle فقط، و إنما بأي دالة لا تستخدمها كثيرة و بالتالي ستنساها بعد مدة من عدم الاستخدام، في هذه الحالة يمكنك استخدام البحث عبر الإنترنت للتحقق من الاسم الصحيح واستخدامه في الشيفرة.
  17. لذا حاول إستخدام أحد البرامج التي ذكرت لك من أجل حفظ الملفات في مجلد معين، و من ثم قراءة محتوى الملف في تطبيقك.
  18. الأمر هذا يكون من البرنامج نفسه، حاول البحث في إعدادات الطباعة داخل البرنامج ربما تجد خاصية الحفظ كملف PDF، أو اذا كنت الطباعة خارجية يمكنك تفعيل هذا الأمر من خلال هذا الزر: و أيضا هناك برامج يمكنها تتبع وتسجيل كل ما يتم طباعته على الحاسوب، مما يمكنك من العثور على سجل لكل ما تم طباعته مثل برنامج PaperCut Print Logger
  19. الكود الذي كتبته لك مجرد مثال و يجب عليك تطبيقه على حسب طريقة برمجتك المستخدمة، يمكنك إلقاء نظرة على كيف قمت بدمجها هناك و يمكنك التعديل عليها على حسب متطلباتك. App (1).js
  20. الإستخدامات دائما تعود على حسب إحتياجات المشروع و طريقة تفكير المبرمج، frozen_sets لا يمكن تغييرها بعد إنشائها، بينما يمكن تغيير الأزواج أو tuples. هذا يجعل المجموعات المجمدة أكثر أمانا في بعض الحالات عندما نحتاج إلى بيانات ثابتة. في العادة نستخدم frozen_sets في الحالات التي نحتاج فيها إلى مجموعة من العناصر غير المتكررة والغير متغيرة، مثل مفاتيح القاموس أو القيم المتميزة (distinct values)، في حين أن الأزواج تستخدم عادة للعناصر المرتبطة ببعضها. و يمكنك الإطلاع على طريقة إستخدامها أكثر من خلال هذا المقال: الدالة frozenset()‎ في بايثون
  21. يمكنك القيام بذلك في كل مسار يتطلب التحقق من الهوية، يمكنك استخدام useEffect للتحقق من وجود AccessToken في الكوكيز عندما يتم تحميل المكون الخاص بالمسار.فيما يلي كيفية تحقق من وجود AccessToken وتوجيه المستخدم إلى صفحة تسجيل الدخول إذا لم يكن متاحًا: import React, { useEffect } from 'react'; import { Route, Navigate } from 'react-router-dom'; import Cookies from 'js-cookie'; // Define a protected route component const ProtectedRoute = ({ element, ...rest }) => { const accessToken = Cookies.get('accessToken'); useEffect(() => { if (!accessToken) { // If no accessToken, redirect to login page // You can also add some additional logic here, like displaying a message to the user window.location.replace('/login'); } }, [accessToken]); // Render the requested component if accessToken is available return <Route {...rest} element={accessToken ? element : <Navigate to="/login" />} />; }; // Example usage const App = () => { return ( <Routes> {/* Protected routes */} <ProtectedRoute path="/protected-route" element={<ProtectedComponent />} /> {/* Non-protected routes */} <Route path="/login" element={<Login />} /> </Routes> ); }; export default App; مثلا هنا يتم استخدام useEffect للتحقق من وجود AccessToken في الكوكيز و إذا لم يكن متاحًا، سيتم توجيه المستخدم إلى صفحة تسجيل الدخول.
  22. يمكنك حماية المسارات وجعلها متاحة فقط عند وجود AccessToken في الكوكيز، يمكنك استخدام middleware في جانب الخادم للتحقق من وجود AccessToken وصحته قبل السماح بالوصول إلى المسارات المحمية، فيما يلي مثال لكيفية تنفيذ ذلك باستخدام Express.js // وسيط لحماية المسارات const protectRoute = (req, res, next) => { const accessToken = req.cookies.accessToken; // التحقق مما إذا كان AccessToken موجودًا if (!accessToken) { return res.status(401).json({ message: "الرمز المميز مطلوب" }); } // يمكنك هنا إضافة المزيد من التحققات، مثل انتهاء صلاحية الرمز المميز، الخ. // إذا كان كل شيء على ما يرام، فمتابعة إلى الوسيط التالي next(); }; // مثال على مسار محمي app.get("/protected-route", protectRoute, (req, res) => { res.json({ message: "هذا المسار محمي" }); }); هنا قمت بإنشاء وسيط يدعى protectRoute يتحقق من وجود AccessToken في الكوكيز، إذا لم يكن هناك AccessToken، فسيتم إرجاع استجابة 401 غير مصرح بها، وإذا كان الAccessToken موجودا، فسيتم استدعاء الوسيط التالي باستخدام next(). يجب تسجيل هذا الوسيط للمسارات التي تحتاج إلى حماية، يمكنك فعل ذلك عن طريق إرفاقه بالطريق المناسب مثل ما هو موضح في المثال أعلاه، و يجب عليك تثبيت حزمة cookie-parser لاستخدام req.cookies.
  23. لا نجيب على الأسئلة الإمتحانية و لكن سأشرح الخطوات التي يمكن اتباعها لكتابة الكود لحل هذه المشكلة، قم بتعريف متغيرين لتتبع العدد الأصغر والعدد الثاني الأصغر. يمكنك استخدام smallest و second_smallest على سبيل المثال، استخدم حلقتين تكرار، واحدة داخل الأخرى، للانتقال عبر العناصر في المصفوفة، ضمن الحلقات، قم بفحص الشرط المعطى. إذا تم تحقيقه، قم بمقارنة العدد الحالي مع smallest و second_smallest عند الانتهاء من المرور عبر المصفوفة، قم بإرجاع العدد الثاني الأصغر. إذا لم يتم العثور على قيمة مطابقة، يمكنك إرجاع None أو قيمة مناسبة أخرى تشير إلى عدم وجود قيمة. أسهل لغة يمكنك كتابة هذه الخوازمية بها هي بايثون، و لكن بالتأكيد يمكنك كتابتها بأي لغة برمجة تتقنها.
  24. نعم يمكنك ذلك و يعتمد هذا على استخدام نماذج تنبؤ الطقس الحالية وتحليل البيانات الجوية لتدريب نموذج تنبؤ، و يمكنك القيام بذلك بعد تعمقك قليلا في مجال الذكاء الإصطناعي و خصوصا مجال التنبؤ. و يمكنك أن تطلع أكثر على الموضوع من خلال هذا المقالات: https://academy.hsoub.com/programming/artificial-intelligence/الذكاء-الاصطناعي/
  25. مرحبا يوسف، في المرة القادمة أرجوا وضع سؤالك أسفل الفيديو الخاص بالدورة و الذي واجهت فيه المشكلة، بالنسبة للتعليمة فهي صحيحة بشكل عام، ولكن هناك خطأ صغير في الصياغة، بدلا من استخدام "value" يجب استخدام "values"، والذي يفصل بين القيم بفاصلة، إليك الصياغة الصحيحة: insert into film (title, language_id) values ('pirates of the caribbean', (select language_id from language where language_id = 1)); بعد هذا التعديل يجب أن تعمل التعليمة بشكل صحيح. بالتوفيق إن شاء الله.
×
×
  • أضف...