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

Mustafa Suleiman

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

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

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

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

    302

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

  1. شكرًا لإهتمامك أحمد، لكن أرجو التوضيح ما المقصود، تفقدت الدرس في أساسيات بايثون ولا يوجد به مشكلة؟
  2. الخوارزمية الأساسية المستخدمة في تعرف الوجوه تعتمد على ما يُعرف بـ "خوارزمية تصنيف الوجه" (Face Detection Algorithm)، وهناك عدة خوارزميات تستخدم لهذا الغرض، منها Haarcascades و Single Shot Multibox Detector (SSD) وغيرها. ومكتبة Face Recognition في بايثون هي مكتبة مفتوحة المصدر مصممة للتعرف على الوجوه، وتعتمد خوارزمية اكتشاف الوجه Haar Cascades، حيث تعمل الخوارزمية على اكتشاف الأشكال الأساسية في الصورة، مثل الخطوط والزوايا، أي تحويل الصور إلى نقاط مميزة يمكن استخدامها لتحديد الأشخاص، وبالطبع تم تدريب تلك الخوارزمية على مجموعة بيانات ضخمة من الصور التي تحتوي على وجوه بشرية. فعند تحميل صورة وجه، تقوم الخوارزمية بفحصها لاستخراج ميزات مميزة من الوجه Face Encoding، وتلك الميزات تشمل نقاط معينة على الوجه تمثل نقاط العيون والأنف والفم وغيرها. وتُستخدم الميزات المستخرجة لتمثيل الوجه بشكل رقمي (Face Representation)، وهو تمثيل رياضي يمكن استخدامه لمقارنة الوجوه. بعد تمثيل الوجه بشكل رقمي، يمكن مقارنته بتمثيل الوجه لأفراد آخرين، باستخدام مقياس الشبه لتحديد مدى تشابه الوجهين.
  3. تقصد الشروحات المتعلقة بذلك في الدورة؟ لا مشكلة في ذلك طالما أنك تستطيع التعامل مع توزيعة مختلفة، إن واجهت صعوبة في إتباع الشرح من الأفضل إذن تحميل Ubuntu. وأرجو التعليق أسفل فيديو الدورة الخاص بالسؤال لمساعدتك بشكل أفضل، وطرح الأسئلة العامة هنا.
  4. يوجد الكثير من الدروس والمراجع بخصوص بايثون في أكاديمية حسوب، وأيضًا يوجد كتاب لتعلم لغة بايثون، بالإَضافة وجود دورة مدفوعة، وبخصوص الدورات المجانية وما سبق ذكره ستجد كافة المصادر موضحة هنا:
  5. حرصًا على حقوق المستخدمين ولأن الحساب قد يكون مرتبطًا بمعاملات مالية جارية، لا يُتاح لك حذف حسابك بشكل مباشر من طرفك، إنما من خلال التواصل مع فريق الدعم وتوضيح الأسباب أو المشاكل لنقدم المساعدة المناسبة. في حال تأكيد رغبتك بحذف الحساب، سنقوم بإيقافه ولن تتمكن من استعادته مجدداً. أرجو منك التواصل مع مركز المساعدة وطلب حذف الحساب.
  6. ما ذكرته صحيح، والمصدر هو التالي: https://www.jetbrains.com/community/education/#courses سيتم مراجعة إقتراحك وتفقد إمكانية تطبيق أم لا من قبل القسم المسؤول، شكرًا لإهتمامك أحمد. وعامًة في حال كنت في الجامعة حاليًا أو لديك أحد قريب منك، تستطيع الحصول على نسخة مجانية من خلال الإيميل الجامعي والتفاصيل هنا: https://www.jetbrains.com/community/education/#students
  7. كلاهما يؤدي وظيفة مختلة، حيث نستخدم random.choice لاختيار قيمة عشوائية من مصفوفة معينة. وأنت قمت بكتابة random.choice(x) لاختيار قيمة عشوائية من المصفوفة x، والقيمة المختارة هي 3. بينما random.shuffle نستخدمها لخلط (إعادة ترتيب) العناصر في مصفوفة، وأنت قمت باستخدام random.shuffle(z) لخلط المصفوفة z ونتيجة العملية كانت ترتيب عشوائي جديد للعناصر في المصفوفة z. بالنسبة للفارق في طريقة الاستدعاء، يجب أن يكون اسم الدالة بشكل صحيح، فلديك خطأ في كتابة اسم الدالة random.shuffle ويجب أن يكون الاسم الصحيح هو random.shuffle(z) دون الحاجة إلى إضافة "y" في النهاية. random.shuffle(z)
  8. عليك أولاً تحديد نوع الملف وفلترته للسماح بصيغ محددة فقط: <?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.
  9. بالطبع تستطيع ذلك، لكن ما هي اللغة التي تعمل بها لتوضيح طريقة التحديث؟ على أي حال، في بايثون تستطيع التحديث من خلال: pip install <package_name> --upgrade واستبدل <package_name> باسم المكتبة أو الإطار وسيتم التحديث لأحدث إصدار. وهناك أمر مختصر وهو: pip install <package_name> -U لكن بالطبع ذلك سيعني أنه سيتوجب عليك تحديث أجزاء في الكود لديك لتتوافق مع الإصدار الجديد.
  10. من الأفضل تعلم أساسيات بايثون، وستتمكن من تنفيذ ذلك بسهولة، وستجد هنا مصادر: وعامًة الخطوات هي تثبيت numpy: pip install numpy ثم استيرادها: import numpy as np ثم إنشاء دوال خاصة بجزء معين في اللعبة، مثل دالة create_board لإنشاء لوحة 3x3 فارغة باستخدام numpy. ودالة أخرى لعرض اللوحة، ثم دالة خاصة بتفقد هل هناك لاعب فاز أم لا، ودالة خاصة بتفقد هل اللوحة اكتملت لتحديد الفائز أم لا. ثم استخدام حلقة التكرار while لتنفيذ كود معين خاص بإدخال قيمة من قبل اللاعبين وهي أرقام 0 و2 أو 3 لوضع علامة باللوحة، ثم تبديل الأدوار بينهم والتحقق من النتيجة بواسطة دالة is_winner عبر جملة شرطية if وأيضًا elif في حال اكتملت اللوحة. وستجد شروحات على اليوتيوب.
  11. ليس شرطًا عليك كتابة نفس الكود، طالما أنك استوعبت ما يتم شرحه، تستطيع تنفيذ ما تريد بطريقتك أنت، مثلاً لو كنت تريد كتابة جزء معين من الكود بأسلوبك أنت فلا مشكلة، أو تريد تنفيذ مشروع آخر غير الذي تم شرحه بالدورة لا مشكلة طالما أنك استوعبت، المهم هو التطبيق على ما تعلمته وتسليم المشاريع المطلوبة منك فلكل دورة عدد مشاريع معينة على لغات وإطارات محددة. وكتابة الكود بناءًا على ما استوعبته أنت هي الطريقة الصحيحة لتعلم البرمجة، وليس كتابة الكود بشكل حرفي، عليك الاستيعاب ثم تطبيق المنطق البرمجي الخاص بك، وقارنه بما تم شرحه وربما تأتي بطريقة أفضل وأكثر تعقيدًا.
  12. nano مثبت بالفعل في توزيعتي Ubuntu وDebian. وعلي أي حال افتح terminal واكتب الأمر التالي: sudo apt install nano لإنشاء ملف Python باستخدام nano، اكتب الأمر التالي: nano my_python_file.py
  13. في البداية للتوضيح، تلك الأوامر تستخدم في أنظمة 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" إذا كان نصيًا.
  14. بخصوص الدعم بعد الحصول على الشهادة، عليك التحدث في تلك النقطة مع مركز المساعدة . وعامًة، يجب تطوير مهاراتك وتعلم ما تبقى لك بالنسبة لمتطلبات سوق العمل وفقًا للوظيفة التي تريدها، وتستطيع التعلم من خلال تنفيذ مشاريع متوسطة الحجم والتعقيد فلا تكتفي بمشروع واحد فقط أو اثنان.
  15. الأمر حسب الإتفاق، هل ستقوم أنت بعمل Deploy للسيرفر على استضافة؟ إذن عليك تهيئة قاعدة البيانات، بالإضافة إلى تسليم الكود المصدري للمشروع وأية ملفات متعلقة به. أما في حال كان سيقوم هو بنشر المشروع، فسيقوم هو بإعداد قاعدة البيانات على الاستضافة ونشر المشروع. أيضًا تستطيع تحميل (تصدير) قاعدة البيانات على حاسوبك من MongoDB في هيئة JSON أو CSV ثم تستطيع استيرادها مرة أخرى. https://www.mongodb.com/docs/compass/current/import-export/
  16. تأكد من إختيار مترجم بايثون في محرر الأكواد vscode لديك حيث ستجد interperter بالأسفل اضغط عليه ثم اختر إصدار بايثون الذي يظهر بجانه recommended كالتالي:
  17. أنت تستخدم 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 وتفقد ما اسم الخاصية للصورة.
  18. قم بطباعة post.image وتفقد هل مسار الصورة صحيح؟ أيضًا جرب التالي: <img src="https://placehold.co/600x400" /> في حال لم تظهر قم بإعادة التحديث وإن ظهرت فتأكد من كتابة مسار الصورة بشكل صحيح لديك، وإن لم تظهر أرفق مجلد المشروع.
  19. يوجد التالي: https://www.w3schools.com/js/exercise_js.asp?filename=exercise_js_variables1 https://www.jschallenger.com/ https://nouvil.net/javascript-quiz-ar/ أيضًا موقع Codewars فالأسئلة هناك أبسط من موقع leetcode، وتستطيع البحث على اليوتيوب عن "حل أسئلة Codewars جافاسكريبت"، أيضًا يوجد موقع coderhub.sa. وستجد تفصيل أكثر هنا: ومن الأفضل في البداية البحث عن مشاريع جافاسكريبت للمبتدئين على اليوتيوب ثم تنفيذها، ثم تستطيع بعد ذلك حل المشاكل البرمجية على تلك المواقع.
  20. لا يوجد مشكلة في تلك الحالة، فالإصدارات الغير رئيسية لا تؤثر وتتوافق مع الإصدارات التي قبلها فهى تضيف ميزة جديدة ليس أكثر، لكن أحيانًا الإصدار الفرعي MINOR يسبب مشكلة.
  21. عليك معرفة ما هو الإدارة الدلالية لنُسخ البرمجيات أو Semantic Versioning أو semver وبشكل بسيط: حيث تُمثل الإصدارات البرمجية بالشكل 0.0.0 ولنفترض أن لدينا إصدار 1.3.4 من البرنامج، فيعني الرقم: 4 إصدار رابع تصحيحي أي زيادة في الإصدار التصحيحي (PATCH) (إصلاحات الأخطاء متوافقة)، بمعنى أننا قمنا بإصلاح الأخطاء أو التعامل مع مشكلات دون إضافة ميزات جديدة، ويجب زيادة الإصدار التصحيحي ليصبح الإصدار 1.3.5 بينما رقم 3 يعني الإصدار الفرعي (MINOR) (إضافة ميزات جديدة متوافقة)، ونقوم بزيادته في حال قمنا بإضافة ميزات جديدة إلى المكتبة دون التأثير على الوظائف الحالية، ليصبح الإصدار 1.4.5 نأتي لرقم 1 ويعني الإصدار الرئيسي للبرنامج، أي هناك تغييرات رئيسية تؤثر على التوافق مع الشيفرة الحالية، مثل إزالة وظيفة مستخدمة على نطاق واسع أو تغيير واجهة البرمجة الرئيسية، وبالتالي يجب زيادة الإصدار الرئيسي ليصبح 2.4.5. ونتبع ذلك النهج مع كل إضافة للبرنامج، وبالطبع يوجد لواحق نضيفها للإصدارات مثل beta وalpha وستجد شرح مفصل هنا: https://semver.org/lang/ar/ وكمثال في لغة بايثون إصدار بايثون 3.12.1 صدر في 24 نوفمبر 2023، وهو إصدار ثانوي لإصدار 3.12.0. يتضمن إصدار 3.12.1 العديد من الإصلاحات للأخطاء، بما في ذلك: إصلاح خطأ في وحدة codeop يؤدي إلى تحديد Incomplete f-strings بشكل غير صحيح. إصلاح خطأ في وحدة parser يؤدي إلى محاولة الكتابة فوق أخطاء موجودة وتسبب في حدوث عطل. إصلاح عطل في وحدة compiler عند استخدام عبارة with مع 19 مديري سياق. استخدام حالة AST-parser لكل منها بدلاً من حالة عالمية لتتبع عمق الاستدعاء داخل محلل AST لمنع حالة السباق المحتملة بسبب التحليل المتزامن. حساب نهايات الأعمدة بشكل صحيح للرموز متعددة الأسطر في وحدة tokenize. إصلاح خطأ SystemError في عبارة import وفي طرق reduce() لأنواع بنية اللغة المضمنة عندما لا يكون builtins عبارة عن dict. إصلاح UnicodeEncodeError عند قراءة رسالة تحتوي على حرف surrogate Unicode بواسطة طريقة get_payload() من وحدة email.message. في وحدة asyncio.StreamReaderProtocol.connection_made()، يوجد رد اتصال يقوم بتسجيل خطأ إذا فشل المهمة التي تُغلف رد الاتصال "المتصل". سيفشل هذا رد الاتصال نفسه إذا تم إلغاء المهمة. منع ذلك عن طريق التحقق مما إذا كانت المهمة قد تم إلغاؤها أولاً. إذا كان الأمر كذلك، أغلق النقل ولكن لا تسجل خطأ. إصلاح تحذيرات الموارد لـ unclosed files في واجهات سطر الأوامر pickle و pickletools. التأكد من أن webbrowser.MacOSXOSAScript يرسل حدث تدقيق webbrowser.open. عندما يظهر مرجع ثانٍ إلى سلسلة في الإدخال إلى pickle، ويكون تنفيذ Python قيد الاستخدام، فإننا نضمن أن يتم حفظ نسخة واحدة فقط ونسخ واحدة فقط. كل 6 أشهر عليك تحديث معلوماتك، وبخصوص بايثون، ستجد شرح للتحديثات هنا: https://www.python.org/blogs/ وعليك الاشتراك في جروب مهتم ببايثون سواء على فيسبوك أو لينكدان إو تويتر (X) أو الإشتراك في نشرة بريدية خاصة ببايثون. أو يمكنك البحث على اليوتيوب مع كل إصدار جديد عن What's New in Python 3.12 مثلاً واستبدال 3.12 برقم الإصدار مثل 3.11 وشاهد الفيديو وسيوضح لك ما الجديد، وإن وجدت أنه مفيد لك تعلمه ولكن بعض المكتبات لا تتوافق مع الإصدارات الجديدة وتحتاج بعض الوقت للتحديث، لذا قد يتعين عليك استخدام إصدار أقدم من بايثون بسبب الحاجة إلى استخدام مكتبة معينة.
  22. حاول استخدام متصفح آخر، لتفقد أين تكمن المشكلة، فإن لم تحدث معك فذلك يعني أن المشكلة بالمتصفح الحالي لديك حاول تحديثه أو تفقد هل هناك إضافة تسبب ذلك. وإن استمرت أرجو التواصل مع مركز المساعدة وشرح المشكلة ولو أمكن توفير صورة للمشكلة وسيتم مساعدتك بخصوص حسابك. أيضًا ربما تكون المشكلة بسبب بطيء في الإنترنت لديك حاول إعادة تشغيل الراوتر وتغيير الـ DNS لجوجل مثلاً.
  23. قم بإنشاء مجلد المشروع ثم افتح منفذ الأوامر في مسار ذلك المجلد وأسهل طريقة هي كتابة cmd في شريط العنوان ثم الضغط على Enter: بعد ذلك عليك إنشاء بية إفتراضية لمشروعك لتثبيت الحزم بها كالتالي: python -m venv venv ثم تفعيلها: venv\Scripts\activate ثم تثبيت flask: pip install Flask ثم عليك كتابة الأكواد الآن واستخدام مكتبة flask وستجد شرح هنا:
  24. أرجو إرفاق مجلد المشروع لتفقد المشكلة.
×
×
  • أضف...