-
المساهمات
15448 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
403
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
Node.js مدعومة فقط من خلال VPS وليس الاستضافة المشتركة في Hostinger، لذ ا عليك إختيار vps-hosting: https://www.hostinger.com/vps-hosting ولن تحتاج إلى أدوات أخرى، ويمكنك البحث على اليوتيوب عن how to deploy MERN project on hostinger.
- 1 جواب
-
- 1
-
-
نظام الدراسة في الأكاديمية، هو أنك تشاهد الدورة والتطبيق مع الشرح، وفي حال واجهتك مشكلة أُثناء التطبيق أو تريد إيضاح لجزء معين، فتقوم بطرح السؤال أسفل الدرس المتعلق بالسؤال، وسيتم مساعدتك من قبل المدربين في الأكاديمية وتوفير المساعدة اللازمة في أي وقت. والدورة متاحة لك مدى الحياة، بالإضافة إلى المسارات الأولى من الدورات الأخرى للإطلاع عليها وتعلم ما ينقصك.
-
تستطيع السؤال أسفل كل درس عن تمارين خاصة بذلك الدرس وسيتم توفيرها لك، أيضًا بخصوص الخواص وما شابه هناك موسوعة حسوب تستطيع البحث عن اسم الخاصية وستجد تفصيل لها: موسوعة حسوب أيضًا يوجد دروس ومقالات في أكاديمية حسوب تستطيع التعلم منها: https://academy.hsoub.com/programming/
- 3 اجابة
-
- 1
-
-
ستحتاج إلى مكتبة برمجية لتحليل البيانات التي تم قراءتها من الباركود، ويوجد مكتبة zxing في بايثون، وإليك مثال بسيط: from zxing import BarCodeReader def detect_barcode_type(barcode_data): if barcode_data.startswith("D1"): return "D1" elif barcode_data.startswith("D2"): return "D2" else: return "Unknown" def scan_barcode(barcode_image_path): reader = BarCodeReader() barcode_result = reader.decode(barcode_image_path) if barcode_result and barcode_result.valid: barcode_data = barcode_result.data barcode_type = detect_barcode_type(barcode_data) return barcode_type else: return "No barcode found" # استخدام الدالة لتحديد نوع الباركود barcode_image_path = "barcode/image.png" result = scan_barcode(barcode_image_path) print(f"نوع الباركود: {result}") وبالطبع عليك تثبيت مكتبة zxing باستخدام الأمر التالي: pip install zxing وإذا أردت مكتبة PHP ابحث عن php qr code decoder.
-
الكروت جيدة لا مشكلة بها، لكن أداء الكروت على اللابتوب ليس كمثيلاتها على الحاسوب، ويوصى بـ 8 جيجابايت من VRAM على الأقل للمهام الأساسية للذكاء الاصطناعي، مثل التعرف على الكلام والرؤية الحاسوبية. وبالنسبة للمهام المكثفة للذكاء الاصطناعي، مثل التعلم العميق، يوصى بـ 16 جيجابايت أو أكثر من VRAM. أي التوصيات المحددة لحجم VRAM للذكاء الاصطناعي: المهام الأساسية للذكاء الاصطناعي: 8 جيجابايت على الأقل التعلم العميق: 16 جيجابايت أو أكثر الرؤية الحاسوبية: 8 جيجابايت أو أكثر التعرف على الكلام: 8 جيجابايت أو أكثر الواقع الافتراضي والواقع المعزز: 16 جيجابايت أو أكثر
- 4 اجابة
-
- 2
-
-
-
ما تريد هو إضافة للمتصفح، بحيث تسمح لك بتحديد عنصر معين في موقع ما وحفظه واستخدامه لتنفيذ سكريبت معين، مثل تحديد كلاس أو ID لزر الإعجاب ثم وضع حدث click للاستماع لنقرة الزر وتنفيذ كود معين بناءًا على ذلك. مثال للتوضيح، لنفترض أنه يوجد بالصفحة كالتالي: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Automatic Button</title> </head> <body> <!-- زر الإعجاب --> <button id="likeButton">اعجاب</button> </body> </html> فسنكتب سكريبت بسيط لاستهداف الزر وتنفيذ كود معين: // استهداف زر الإعجاب باستخدام معرفه const likeButton = document.getElementById('likeButton'); // وظيفة لتنفيذ الإجراء التلقائي function performAutoAction() { // يمكنك وضع الإجراء الذي تريد تنفيذه هنا console.log('تم النقر على زر الإعجاب. الآن يمكنك تنفيذ الإجراء المطلوب.'); // على سبيل المثال، يمكنك تغيير لون خلفية الصفحة عند النقر على الزر document.body.style.backgroundColor = 'lightblue'; } // تعيين الدالة لتنفيذها عند النقر على زر الإعجاب likeButton.addEventListener('click', performAutoAction); بالطبع الكود ينقصه الجزء الخاص بتحديد العنصر في موقع معين ثم حفظه وتذكره عند زيارة الموقع مرة أخرى، حاول تنفيذ ذاك المنطق.
-
الـ Flex والـ Grid هما البديل الحديث لـ Float لتخطيط وتصميم الصفحة، وستجد تفصيل هنا: أما بخصوص position فالأمر يعتمد على التصميم الخاص بك، ولها قيم مختلفة وستجد تفصيل هنا: وبشكل أساسي ستحتاج إما استخدام Flex أو Grid أو خليط بينهم على حسب التصميم، والـ Grid بحاجة إلى ممارسة لاستيعابه والتمكن من استخدام الخواص المختلفة له، على عكس Flex فهو أسهل نسبيًا لكن بالطبع في بعض التصاميم سيتعين عليك استخدام Grid.
- 2 اجابة
-
- 1
-
-
أولاً يتم استيراد المكتبات: face_recognition: مكتبة للتعرف على الوجوه. cv2 (OpenCV): مكتبة برمجية مفتوحة المصدر للرؤية الحاسوبية. ثم تهيئة كائن لتقاط الفيديو من الكاميرا الافتراضية (فهرس الكاميرا 0). video_capture = cv2.VideoCapture(0) ثم: تحميل صور لوجوه معروفة ( وهي باراك أوباما وجو بايدن). تُحسب تشفيرات الوجوه باستخدام face_recognition.face_encodings. بعد ذلك إعداد مصفوفات للوجوه المعروفة وتلك المصفوفات تخزن تشفيرات الوجوه المعروفة وأسمائها المقابلة. known_face_encodings = [obama_face_encoding, biden_face_encoding] known_face_names = ["Barack Obama", "Joe Biden"] وتبدأ الحلقة الرئيسية للتعرف على الوجوه، من خلال التقاط إطارات فيديو متتالية ومعالجتها باستمرار للتعرف على الوجوه. while True: تغيير حجم الإطارات لتسريع عملية المعالجة. استخراج مواقع وتشفيرات الوجوه من الإطار المُصغر. ثم مقارنة تشفير كل وجه مكتشف مع تشفيرات الوجوه المعروفة. وتحديد أفضل تطابق وتسند اسم للوجه (أو "غير معروف" إذا لم يتم العثور على تطابق). رسم مستطيلات حول الوجوه المكتشفة. إضافة نص يحمل اسم الشخص المعترف به. بعد ذلك الإطار المعالج يعرض في نافذة تحمل اسم 'Video'. cv2.imshow('Video', frame) ويمكن إنهاء البرنامج عن طريق الضغط على مفتاح 'q'. if cv2.waitKey(1) & 0xFF == ord('q'): break بحيث يتم تحرير كائن التقاط الفيديو، وتغلق نوافذ OpenCV.
- 23 اجابة
-
- 1
-
-
السؤال غير واضح، ما الذي تحاول فعله وما الخطأ الذي يظهر لك؟ عامًة ذلك كود بسيط من أجل إدخال قيمة معينة من قبل المستخدم في بايثون وطباعتها: user_input = input("Please enter a value: ") print("You entered: ", user_input)
-
وعليكم السلام، أولاً، 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 كمعلمة اختيارية، وإن لم تقدم قيمة للمحور، فستقوم بحساب العدد الإجمالي لجميع العناصر غير الصفر في المصفوفة.
-
ببساطة هو منصة على الإنترنت تهدف إلى توفير مجتمع للمهنيين والهواة في مجال العلوم البيانية وتحليل البيانات، ويقدم مجموعة متنوعة من الفرص والأدوات لتعلم الآلة وتحليل البيانات، ويشكل مرجعًا قويًا للمطورين والعلماء البيانيين، وويضم أكثر من 20 مليون عضو من جميع أنحاء العالم. وكاستفادة، تستطيع الوصول إلى البيانات التي يوفرها، من خلال مجموعة واسعة من مجموعات البيانات المفتوحة التي يمكنك استخدامها لتعلم تعلم الآلة وتطوير مشاريعك الخاصة، بواسطة مكتبات مثل Pandas وتحليل البيانات لفهم هيكل البيانات والمتغيرات المتاحة. أيضًا هناك مسابقات البيانات (Data Competitions)، حيث ينظم الموقع مسابقات بيانات دورية وبإمكانك المشاركة في حلول لمشاكل واقعية تتعلق بالبيانات، مما يسمح لك بتحسين مهاراتك وتطبيق المفاهيم التي تعلمتها.
- 1 جواب
-
- 1
-
-
المحرك غير متاح مجانًا، لكن هناك نسخة تعليمية من Pico-8. وهي مجانية تمامًا، ومتاح على جميع المنصات الرئيسية، بما في ذلك Windows و macOS و Linux. وهي مصممة خصيصًا للاستخدام في بيئات التعليم، وهي مناسبة للمبتدئين والمتقدمين على حد سواء. وتتميز نسخة Pico-8 التعليمية بالميزات التالية: مجانية تمامًا. متاح على جميع المنصات الرئيسية. سهل الاستخدام، حتى بالنسبة للمبتدئين. يحتوي على مجموعة كاملة من الأدوات اللازمة لإنشاء ألعاب Pico-8. يتضمن مجموعة من الألعاب التعليمية والتدريبية. يوفر موارد تعليمية، مثل الدروس والكتب الإلكترونية. وبالطبع هناك بعض الاختلافات الرئيسية بين نسخة Pico-8 التعليمية والنسخة الكاملة: لا تتضمن نسخة Pico-8 التعليمية القدرة على تصدير الألعاب إلى تنسيقات أخرى. لا تتضمن نسخة Pico-8 التعليمية بعض الميزات المتقدمة، مثل القدرة على إنشاء ألعاب متعددة اللاعبين. وتستطيع استخدام النسخة المجانية من الرابط التالي وهي تعمل في المتصفح فقط: https://www.pico-8-edu.com
-
الكروت التالية مناسببة لما تريده: Nvidia GeForce RTX 3090 Ti: تتميز بأداء عالٍ للغاية وذاكرة وصول عشوائي كبيرة (24 جيجابايت). Nvidia GeForce RTX 3080 Ti: تقدم أداءً جيدًا بسعر أقل من RTX 3090 Ti. AMD Radeon RX 6900 XT: تقدم أداءً جيدًا جدًا بسعر أقل من RTX 3080 Ti. وبالطبع الأمر يعتمد على الميزانية الخاصة بك، فالكروت السابقة ذات أسعار مرتفعة نسبيًا.
- 4 اجابة
-
- 1
-
-
ما المقصود بالواجب، تقصد رفع المشروع الذي قمت بتنفيذه كما تم شرحه في الدورة؟ أم تريد إرفاق مجلد المشروع في السؤال؟
-
شكرًا لإهتمامك أحمد، لكن أرجو التوضيح ما المقصود، تفقدت الدرس في أساسيات بايثون ولا يوجد به مشكلة؟
-
الخوارزمية الأساسية المستخدمة في تعرف الوجوه تعتمد على ما يُعرف بـ "خوارزمية تصنيف الوجه" (Face Detection Algorithm)، وهناك عدة خوارزميات تستخدم لهذا الغرض، منها Haarcascades و Single Shot Multibox Detector (SSD) وغيرها. ومكتبة Face Recognition في بايثون هي مكتبة مفتوحة المصدر مصممة للتعرف على الوجوه، وتعتمد خوارزمية اكتشاف الوجه Haar Cascades، حيث تعمل الخوارزمية على اكتشاف الأشكال الأساسية في الصورة، مثل الخطوط والزوايا، أي تحويل الصور إلى نقاط مميزة يمكن استخدامها لتحديد الأشخاص، وبالطبع تم تدريب تلك الخوارزمية على مجموعة بيانات ضخمة من الصور التي تحتوي على وجوه بشرية. فعند تحميل صورة وجه، تقوم الخوارزمية بفحصها لاستخراج ميزات مميزة من الوجه Face Encoding، وتلك الميزات تشمل نقاط معينة على الوجه تمثل نقاط العيون والأنف والفم وغيرها. وتُستخدم الميزات المستخرجة لتمثيل الوجه بشكل رقمي (Face Representation)، وهو تمثيل رياضي يمكن استخدامه لمقارنة الوجوه. بعد تمثيل الوجه بشكل رقمي، يمكن مقارنته بتمثيل الوجه لأفراد آخرين، باستخدام مقياس الشبه لتحديد مدى تشابه الوجهين.
- 2 اجابة
-
- 1
-
-
تقصد الشروحات المتعلقة بذلك في الدورة؟ لا مشكلة في ذلك طالما أنك تستطيع التعامل مع توزيعة مختلفة، إن واجهت صعوبة في إتباع الشرح من الأفضل إذن تحميل Ubuntu. وأرجو التعليق أسفل فيديو الدورة الخاص بالسؤال لمساعدتك بشكل أفضل، وطرح الأسئلة العامة هنا.
- 1 جواب
-
- 1
-
-
حرصًا على حقوق المستخدمين ولأن الحساب قد يكون مرتبطًا بمعاملات مالية جارية، لا يُتاح لك حذف حسابك بشكل مباشر من طرفك، إنما من خلال التواصل مع فريق الدعم وتوضيح الأسباب أو المشاكل لنقدم المساعدة المناسبة. في حال تأكيد رغبتك بحذف الحساب، سنقوم بإيقافه ولن تتمكن من استعادته مجدداً. أرجو منك التواصل مع مركز المساعدة وطلب حذف الحساب.
-
ما ذكرته صحيح، والمصدر هو التالي: https://www.jetbrains.com/community/education/#courses سيتم مراجعة إقتراحك وتفقد إمكانية تطبيق أم لا من قبل القسم المسؤول، شكرًا لإهتمامك أحمد. وعامًة في حال كنت في الجامعة حاليًا أو لديك أحد قريب منك، تستطيع الحصول على نسخة مجانية من خلال الإيميل الجامعي والتفاصيل هنا: https://www.jetbrains.com/community/education/#students
-
كلاهما يؤدي وظيفة مختلة، حيث نستخدم random.choice لاختيار قيمة عشوائية من مصفوفة معينة. وأنت قمت بكتابة random.choice(x) لاختيار قيمة عشوائية من المصفوفة x، والقيمة المختارة هي 3. بينما random.shuffle نستخدمها لخلط (إعادة ترتيب) العناصر في مصفوفة، وأنت قمت باستخدام random.shuffle(z) لخلط المصفوفة z ونتيجة العملية كانت ترتيب عشوائي جديد للعناصر في المصفوفة z. بالنسبة للفارق في طريقة الاستدعاء، يجب أن يكون اسم الدالة بشكل صحيح، فلديك خطأ في كتابة اسم الدالة random.shuffle ويجب أن يكون الاسم الصحيح هو random.shuffle(z) دون الحاجة إلى إضافة "y" في النهاية. random.shuffle(z)
-
عليك أولاً تحديد نوع الملف وفلترته للسماح بصيغ محددة فقط: <?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.