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

Mustafa Suleiman

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

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

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

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

    303

كل منشورات العضو Mustafa Suleiman

  1. تقصد توضيح لكود تريد فهم آلية عمله؟ نعم يمكن ذلك.
  2. وعليكم السلام، أولاً، random.randint لا ينتج مصفوفة بل ينتج عددًا عشوائيًا، وعليك استخدام numpy.random.randint بدلاً من ذلك. ثانيًا، عند استخدام count_nonzero، يجب أن تكون المصفوفة الداخلية لديك تحتوي على أرقام، ليس قائمة متعددة الأبعاد كالتالي: import numpy as np a = np.random.randint(0, 10, (3, 3)) x = np.count_nonzero(a > 5, axis=1) print(x) وبخصوص: axis تستقبل قيمًا أخرى غير الواحد، فمثلاً مرر 0 للعمل على الصفوف و1 للعمل على الأعمدة، وتستطيع أيضًا توفير قيمة None لحساب إجمالي عدد العناصر غير الصفر في المصفوفة بأكملها. بالنسبة للمتغيرات الأخرى التي تقبلها count_nonzero، فهي تستقبل المصفوفة (أو القائمة) كمدخل وتحسب عدد العناصر غير الصفر فيها، وبإمكانك أيضًا توفير المحور axis كمعلمة اختيارية، وإن لم تقدم قيمة للمحور، فستقوم بحساب العدد الإجمالي لجميع العناصر غير الصفر في المصفوفة.
  3. ببساطة هو منصة على الإنترنت تهدف إلى توفير مجتمع للمهنيين والهواة في مجال العلوم البيانية وتحليل البيانات، ويقدم مجموعة متنوعة من الفرص والأدوات لتعلم الآلة وتحليل البيانات، ويشكل مرجعًا قويًا للمطورين والعلماء البيانيين، وويضم أكثر من 20 مليون عضو من جميع أنحاء العالم. وكاستفادة، تستطيع الوصول إلى البيانات التي يوفرها، من خلال مجموعة واسعة من مجموعات البيانات المفتوحة التي يمكنك استخدامها لتعلم تعلم الآلة وتطوير مشاريعك الخاصة، بواسطة مكتبات مثل Pandas وتحليل البيانات لفهم هيكل البيانات والمتغيرات المتاحة. أيضًا هناك مسابقات البيانات (Data Competitions)، حيث ينظم الموقع مسابقات بيانات دورية وبإمكانك المشاركة في حلول لمشاكل واقعية تتعلق بالبيانات، مما يسمح لك بتحسين مهاراتك وتطبيق المفاهيم التي تعلمتها.
  4. المحرك غير متاح مجانًا، لكن هناك نسخة تعليمية من Pico-8. وهي مجانية تمامًا، ومتاح على جميع المنصات الرئيسية، بما في ذلك Windows و macOS و Linux. وهي مصممة خصيصًا للاستخدام في بيئات التعليم، وهي مناسبة للمبتدئين والمتقدمين على حد سواء. وتتميز نسخة Pico-8 التعليمية بالميزات التالية: مجانية تمامًا. متاح على جميع المنصات الرئيسية. سهل الاستخدام، حتى بالنسبة للمبتدئين. يحتوي على مجموعة كاملة من الأدوات اللازمة لإنشاء ألعاب Pico-8. يتضمن مجموعة من الألعاب التعليمية والتدريبية. يوفر موارد تعليمية، مثل الدروس والكتب الإلكترونية. وبالطبع هناك بعض الاختلافات الرئيسية بين نسخة Pico-8 التعليمية والنسخة الكاملة: لا تتضمن نسخة Pico-8 التعليمية القدرة على تصدير الألعاب إلى تنسيقات أخرى. لا تتضمن نسخة Pico-8 التعليمية بعض الميزات المتقدمة، مثل القدرة على إنشاء ألعاب متعددة اللاعبين. وتستطيع استخدام النسخة المجانية من الرابط التالي وهي تعمل في المتصفح فقط: https://www.pico-8-edu.com
  5. الكروت التالية مناسببة لما تريده: Nvidia GeForce RTX 3090 Ti: تتميز بأداء عالٍ للغاية وذاكرة وصول عشوائي كبيرة (24 جيجابايت). Nvidia GeForce RTX 3080 Ti: تقدم أداءً جيدًا بسعر أقل من RTX 3090 Ti. AMD Radeon RX 6900 XT: تقدم أداءً جيدًا جدًا بسعر أقل من RTX 3080 Ti. وبالطبع الأمر يعتمد على الميزانية الخاصة بك، فالكروت السابقة ذات أسعار مرتفعة نسبيًا.
  6. ما المقصود بالواجب، تقصد رفع المشروع الذي قمت بتنفيذه كما تم شرحه في الدورة؟ أم تريد إرفاق مجلد المشروع في السؤال؟
  7. شكرًا لإهتمامك أحمد، لكن أرجو التوضيح ما المقصود، تفقدت الدرس في أساسيات بايثون ولا يوجد به مشكلة؟
  8. الخوارزمية الأساسية المستخدمة في تعرف الوجوه تعتمد على ما يُعرف بـ "خوارزمية تصنيف الوجه" (Face Detection Algorithm)، وهناك عدة خوارزميات تستخدم لهذا الغرض، منها Haarcascades و Single Shot Multibox Detector (SSD) وغيرها. ومكتبة Face Recognition في بايثون هي مكتبة مفتوحة المصدر مصممة للتعرف على الوجوه، وتعتمد خوارزمية اكتشاف الوجه Haar Cascades، حيث تعمل الخوارزمية على اكتشاف الأشكال الأساسية في الصورة، مثل الخطوط والزوايا، أي تحويل الصور إلى نقاط مميزة يمكن استخدامها لتحديد الأشخاص، وبالطبع تم تدريب تلك الخوارزمية على مجموعة بيانات ضخمة من الصور التي تحتوي على وجوه بشرية. فعند تحميل صورة وجه، تقوم الخوارزمية بفحصها لاستخراج ميزات مميزة من الوجه Face Encoding، وتلك الميزات تشمل نقاط معينة على الوجه تمثل نقاط العيون والأنف والفم وغيرها. وتُستخدم الميزات المستخرجة لتمثيل الوجه بشكل رقمي (Face Representation)، وهو تمثيل رياضي يمكن استخدامه لمقارنة الوجوه. بعد تمثيل الوجه بشكل رقمي، يمكن مقارنته بتمثيل الوجه لأفراد آخرين، باستخدام مقياس الشبه لتحديد مدى تشابه الوجهين.
  9. تقصد الشروحات المتعلقة بذلك في الدورة؟ لا مشكلة في ذلك طالما أنك تستطيع التعامل مع توزيعة مختلفة، إن واجهت صعوبة في إتباع الشرح من الأفضل إذن تحميل Ubuntu. وأرجو التعليق أسفل فيديو الدورة الخاص بالسؤال لمساعدتك بشكل أفضل، وطرح الأسئلة العامة هنا.
  10. يوجد الكثير من الدروس والمراجع بخصوص بايثون في أكاديمية حسوب، وأيضًا يوجد كتاب لتعلم لغة بايثون، بالإَضافة وجود دورة مدفوعة، وبخصوص الدورات المجانية وما سبق ذكره ستجد كافة المصادر موضحة هنا:
  11. حرصًا على حقوق المستخدمين ولأن الحساب قد يكون مرتبطًا بمعاملات مالية جارية، لا يُتاح لك حذف حسابك بشكل مباشر من طرفك، إنما من خلال التواصل مع فريق الدعم وتوضيح الأسباب أو المشاكل لنقدم المساعدة المناسبة. في حال تأكيد رغبتك بحذف الحساب، سنقوم بإيقافه ولن تتمكن من استعادته مجدداً. أرجو منك التواصل مع مركز المساعدة وطلب حذف الحساب.
  12. ما ذكرته صحيح، والمصدر هو التالي: https://www.jetbrains.com/community/education/#courses سيتم مراجعة إقتراحك وتفقد إمكانية تطبيق أم لا من قبل القسم المسؤول، شكرًا لإهتمامك أحمد. وعامًة في حال كنت في الجامعة حاليًا أو لديك أحد قريب منك، تستطيع الحصول على نسخة مجانية من خلال الإيميل الجامعي والتفاصيل هنا: https://www.jetbrains.com/community/education/#students
  13. كلاهما يؤدي وظيفة مختلة، حيث نستخدم random.choice لاختيار قيمة عشوائية من مصفوفة معينة. وأنت قمت بكتابة random.choice(x) لاختيار قيمة عشوائية من المصفوفة x، والقيمة المختارة هي 3. بينما random.shuffle نستخدمها لخلط (إعادة ترتيب) العناصر في مصفوفة، وأنت قمت باستخدام random.shuffle(z) لخلط المصفوفة z ونتيجة العملية كانت ترتيب عشوائي جديد للعناصر في المصفوفة z. بالنسبة للفارق في طريقة الاستدعاء، يجب أن يكون اسم الدالة بشكل صحيح، فلديك خطأ في كتابة اسم الدالة random.shuffle ويجب أن يكون الاسم الصحيح هو random.shuffle(z) دون الحاجة إلى إضافة "y" في النهاية. random.shuffle(z)
  14. عليك أولاً تحديد نوع الملف وفلترته للسماح بصيغ محددة فقط: <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $uploadDir = "uploads/"; // مجلد الرفع $uploadFile = $uploadDir . basename($_FILES["image"]["name"]); $imageFileType = strtolower(pathinfo($uploadFile, PATHINFO_EXTENSION)); // السماح بالصيغ المحددة فقط $allowedExtensions = array("jpg", "jpeg", "png", "gif"); if (in_array($imageFileType, $allowedExtensions)) { // استمرار عملية الرفع } else { echo "الصيغ المسموح بها: jpg, jpeg, png, gif"; exit(); } } ?> ثم استخدم دالة move_uploaded_file لنقل الملف المرفوع إلى المجلد المحدد. <?php if (move_uploaded_file($_FILES["image"]["tmp_name"], $uploadFile)) { echo "تم رفع الصورة بنجاح."; } else { echo "فشل في رفع الصورة."; } ?> ثم الإتصال بقاعدة البيانات: <?php if (move_uploaded_file($_FILES["image"]["tmp_name"], $uploadFile)) { // ربط قاعدة البيانات (يفضل استخدام PDO أو MySQLi) $dbHost = "localhost"; $dbUsername = "اسم_المستخدم"; $dbPassword = "كلمة_المرور"; $dbName = "اسم_قاعدة_البيانات"; $conn = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); if ($conn->connect_error) { die("فشل الاتصال بقاعدة البيانات: " . $conn->connect_error); } // إدراج المعلومات في قاعدة البيانات $imagePath = $uploadDir . basename($_FILES["image"]["name"]); $currentDate = date("Y-m-d"); $sql = "INSERT INTO employee_data (image_path, entry_date) VALUES ('$imagePath', '$currentDate')"; if ($conn->query($sql) === TRUE) { echo "تم حفظ البيانات بنجاح."; } else { echo "خطأ في الحفظ: " . $conn->error; } $conn->close(); } else { echo "فشل في رفع الصورة."; } ?> وعليك إنشاء جدول employee_data في قاعدة البيانات بحيث يحتوي على حقول id (رقم تعريف فريد وتلقائي)، image_path و entry_date.
  15. بالطبع تستطيع ذلك، لكن ما هي اللغة التي تعمل بها لتوضيح طريقة التحديث؟ على أي حال، في بايثون تستطيع التحديث من خلال: pip install <package_name> --upgrade واستبدل <package_name> باسم المكتبة أو الإطار وسيتم التحديث لأحدث إصدار. وهناك أمر مختصر وهو: pip install <package_name> -U لكن بالطبع ذلك سيعني أنه سيتوجب عليك تحديث أجزاء في الكود لديك لتتوافق مع الإصدار الجديد.
  16. من الأفضل تعلم أساسيات بايثون، وستتمكن من تنفيذ ذلك بسهولة، وستجد هنا مصادر: وعامًة الخطوات هي تثبيت numpy: pip install numpy ثم استيرادها: import numpy as np ثم إنشاء دوال خاصة بجزء معين في اللعبة، مثل دالة create_board لإنشاء لوحة 3x3 فارغة باستخدام numpy. ودالة أخرى لعرض اللوحة، ثم دالة خاصة بتفقد هل هناك لاعب فاز أم لا، ودالة خاصة بتفقد هل اللوحة اكتملت لتحديد الفائز أم لا. ثم استخدام حلقة التكرار while لتنفيذ كود معين خاص بإدخال قيمة من قبل اللاعبين وهي أرقام 0 و2 أو 3 لوضع علامة باللوحة، ثم تبديل الأدوار بينهم والتحقق من النتيجة بواسطة دالة is_winner عبر جملة شرطية if وأيضًا elif في حال اكتملت اللوحة. وستجد شروحات على اليوتيوب.
  17. ليس شرطًا عليك كتابة نفس الكود، طالما أنك استوعبت ما يتم شرحه، تستطيع تنفيذ ما تريد بطريقتك أنت، مثلاً لو كنت تريد كتابة جزء معين من الكود بأسلوبك أنت فلا مشكلة، أو تريد تنفيذ مشروع آخر غير الذي تم شرحه بالدورة لا مشكلة طالما أنك استوعبت، المهم هو التطبيق على ما تعلمته وتسليم المشاريع المطلوبة منك فلكل دورة عدد مشاريع معينة على لغات وإطارات محددة. وكتابة الكود بناءًا على ما استوعبته أنت هي الطريقة الصحيحة لتعلم البرمجة، وليس كتابة الكود بشكل حرفي، عليك الاستيعاب ثم تطبيق المنطق البرمجي الخاص بك، وقارنه بما تم شرحه وربما تأتي بطريقة أفضل وأكثر تعقيدًا.
  18. nano مثبت بالفعل في توزيعتي Ubuntu وDebian. وعلي أي حال افتح terminal واكتب الأمر التالي: sudo apt install nano لإنشاء ملف Python باستخدام nano، اكتب الأمر التالي: nano my_python_file.py
  19. في البداية للتوضيح، تلك الأوامر تستخدم في أنظمة unix، مثل لينكس وMacOS. cat cat اختصار لـ "concatenate"، وهو أمر يستخدم لعرض محتوى الملفات، ويقوم بطباعة محتوى الملفات مباشرة على الشاشة، وتستطيع استخدامه لدمج المحتوى من عدة ملفات وعرضها على الشاشة، لكنه يفتقر إلى ميزات التنقل والبحث المتوفرة في less فلو كتبت cat filename.txt سيقوم بطباعة محتوى الملف filename.txt على الشاشة. less هو عبارة عن برنامج لعرض محتوى الملفات أيضًا، لكن بطريقة متقدمة أكثر من cat، حيث يسمح less بالتصفح السهل للملفات الكبيرة، من خلال التمرير للأمام وللخلف، البحث في الملف، والقفز إلى نقاط محددة، ويدعم ميزات مثل ترقيم السطور والتلوين ووضع التفاف. ويستخدم للملفات الكبيرة التي يصعب عرضها بأكملها في مرة واحدة على الشاشة، ويمكنك تشغيلها ببساطة باستخدام less filename.txt. file أمر يُستخدم لتحديد نوع الملف، وبمجرد تشغيل file مع اسم الملف، سيقوم بإظهار نوع الملف، مثل نصي (text)، صورة (image)، أو برنامج قابل للتنفيذ (executable). أي عند كتابة file filename.txt سيخبرك بنوع الملف، مثل "ASCII text" إذا كان نصيًا.
  20. بخصوص الدعم بعد الحصول على الشهادة، عليك التحدث في تلك النقطة مع مركز المساعدة . وعامًة، يجب تطوير مهاراتك وتعلم ما تبقى لك بالنسبة لمتطلبات سوق العمل وفقًا للوظيفة التي تريدها، وتستطيع التعلم من خلال تنفيذ مشاريع متوسطة الحجم والتعقيد فلا تكتفي بمشروع واحد فقط أو اثنان.
  21. الأمر حسب الإتفاق، هل ستقوم أنت بعمل Deploy للسيرفر على استضافة؟ إذن عليك تهيئة قاعدة البيانات، بالإضافة إلى تسليم الكود المصدري للمشروع وأية ملفات متعلقة به. أما في حال كان سيقوم هو بنشر المشروع، فسيقوم هو بإعداد قاعدة البيانات على الاستضافة ونشر المشروع. أيضًا تستطيع تحميل (تصدير) قاعدة البيانات على حاسوبك من MongoDB في هيئة JSON أو CSV ثم تستطيع استيرادها مرة أخرى. https://www.mongodb.com/docs/compass/current/import-export/
  22. تأكد من إختيار مترجم بايثون في محرر الأكواد vscode لديك حيث ستجد interperter بالأسفل اضغط عليه ثم اختر إصدار بايثون الذي يظهر بجانه recommended كالتالي:
  23. أنت تستخدم vite لذا عليك استيراد مسار الصورة كالتالي: import testImage from '../../image/IMG_20220103_173254.jpg'; ثم استخدامها كالتالي: <img src={testImage} /> حيث يتم عمل hash لمسار الصورة في الإخراج، لكن إذا أردت استخدام مسار ثابت أي كالتالي: <img src='/../../image/IMG_20220103_173254.jpg' /> فعليك نقل مجلد الصور إلى مجلد public حيث يتم البحث عن الوسائط بالمسارات الثابتة هناك ولكن ضع علامة / في بداية المسار للإشارة لمجلد الجذر root أي مجلد المشروع الرئيسي. وبخصوص Cannot read properties of undefined قم بطباعة كائن post وتفقد ما اسم الخاصية للصورة.
  24. قم بطباعة post.image وتفقد هل مسار الصورة صحيح؟ أيضًا جرب التالي: <img src="https://placehold.co/600x400" /> في حال لم تظهر قم بإعادة التحديث وإن ظهرت فتأكد من كتابة مسار الصورة بشكل صحيح لديك، وإن لم تظهر أرفق مجلد المشروع.
×
×
  • أضف...