-
المساهمات
13209 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
365
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
في حال كان لديك إضافة adblock فغالبًا ذلك سبب المشكلة، استخدم uBlock Origin فتلك الإضافة لا تسبب مشكلة. إن استمرت أرجو تجربة تحميل وتثبيت Cloudflare WARP فهو بمثابة طبقة وسيطة مثل الـ VPN من خلال شبكة Cloudflare وبعد التثبيت قم بتشغيل التطبيق بالضغط على زر الإتصال مباشرًة وتفقد الدروس مرة أخرى. https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release وذلك لتفقد هل يوجد مشكلة بالإنترنت أم لا.
- 2 اجابة
-
- 1
-
أرجو التعليق أسفل فيديو الدرس الخاص بالسؤال لمساعدتك بشكل أفضل، بينما نطرح الأسئلة العامة هنا. ستجد أسفل فيديو الدرس صندوق تعليقات.
-
الأمل ممل بالفعل وبحاجة إلى صبر، في حال لا يوجد من يشاركك نفس الإهتمام، يمكنك تفقد المجتمعات الخاصة بدراسة ما تريده مثل البرمجة، لديك مجتمع IO وأيضًا لديك مجموعات الفيس بوك أو LinkedIn بحيث تقوم بإنشاء حساب والتواصل مع من لديهم نفس الإهتمام ونفس المستوى في رحلة الدراسة، قم بالسؤال عن مجموعة قائمة بالفعل للإشتراك بها والتواصل مع من بها.
-
هل تم حل المشكلة؟ للتوضيح: const data = fetchDataFromServer(); console.log(data); // قم بطباعة data وتفقد ما الذي يتم إعادته const result = data.map(item => item.value); // هنا قد تواجه مشكلة إذا لم تكن data مصفوفة console.log(result);
-
لديكِ مشكلة في عملية تحويل التعليمات البرمجية باستخدام IL2CPP (Intermediate Language To C++) في Unity. حاولي إعادة تشغيل Unity لكن كمسؤول أي البحث عنه في شريط البحث بالأسفل في الويندوز ثم اضغطي بزر الفأرة الأيمن ثم اختاري run as administrator، وإعادة التجربة. وإن استمرت المشكلة عليكِ تنظيف وإعادة بناء المشروع من خلال التوجه إلى Edit > Project Settings > Editor ثم اضغطي على زر Clean. ثم إعادة بناء المشروع من خلال التوجه إلى Build ثم اختاري Rebuild Project.
-
عملية البناء باستخدام il2cpp لم تكتمل بنجاح بسبب نقص المساحة على الجهاز No space left on device. عليكِ تفقد المساحة على قرص الـ C وإفراغ بعض المساحة لأن مشاريع Unity بحاجة إلى مساحة فارغة ليست بالصغيرة. وإن لم تتمكني من إفراغ مساحة كافية عليك تغيير مسار الإخراج output directory لملفات المشروع، من خلال التوجه إلى Edit > Project Settings > Editor ثم تغيير مسار Output Path إلى قرص فارغ على حاسوبك.
-
تلك ليست طريقة ضغط بل format أي تنسيق للكود، وحاليًا توجد أدوات كثيرة تفعل ذلك، مثل أداة Prettier.
-
لست مرغوم، تستطيع التقدم للوظائف التي تتطلب مستوى Junior، لكن في حالة Node.js الأمر صعب لأن تلك الوظائف بحاجة إلى خبرة أكثر من سنة لكون العمل من خلال Node.js يتطلب خبرة ومعرفة فالأخطاء يُسهل الوقوع بها عند العمل من خلالها، أيضًا لإخراج كود جيد الأمر يتطلب خبرة، فهي ليست مثل لارافل. لذا عليك تحديد وجهتك، وتفقد الوظائف المتاحة في بلدك أولاً وما المطلوب ثم تقوم بتعلمه وبناء مشاريع حقيقية وليست نماذج، من أجل تكوين معرض أعمال جيد ويا حبذا لو كانت تلك المشاريع غير اعتيادية بل لحل مشكلة تواجهها أنت مثلاً أو مشكلة من حولك. وبخصوص Node.js ستحتاج إلى تعلم إطار Nest.js فهو مخصص للمشاريع المعقدة وليس express.js. أي المقصد هو تحديد وجهتك وليس التشتت بين هذا وذاك فلن تصل بتلك الطريقة، ويمكنك تجربة Flutter لا مشكلة لكن عليك تحديد ما المجال الذي تريده والتزم به ولا تحيد عنه لفترة.
- 4 اجابة
-
- 1
-
السؤال غير واضح ما هي الطريقة الغير المعتادة؟ فالمثال الموضح هو كود CSS عادي.
- 5 اجابة
-
- 1
-
عليك التمكن من Python أولاً، ثم تعلم الأساسيات في الجبر الخطي، والإحصاء، وحساب التفاضل والتكامل، بعد ذلك ابدأ بتعلم مفاهيم التعلم الخاضع للإشراف وغير الخاضع للإشراف واستخدم مكتبات مثل Scikit-Learn لتطبيق المفاهيم. ثم تأتي خطوة تعلم الأساسيات في معالجة الصور وابدأ باستخدام مكتبات مثل OpenCV. يليها تعلم أساسيات الشبكات العصبية بالإعتماد على مكتبات مثل TensorFlow و PyTorch، وركز على الشبكات العصبية التلافيفية (CNNs) وتطبيقاتها في الرؤية الحاسوبية. ثم قم بتطبيق ما تعلمته في مشاريع عملية، مثل بناء نموذج لتصنيف الصور أو اكتشاف الكائنات.
- 5 اجابة
-
- 1
-
قبل الإجابة على سؤالك ما هو سوق العمل الذي تستهدفه أي العمل في شركة أم العمل الحر (مواقع عربية أو أجنبية)؟
- 4 اجابة
-
- 1
-
مكتبة nunit.framework يتم الإشارة إليها من قبل مكتبة Unity.InputSystem.TestFramework، ولكن لا يمكن تضمينها أو لم يتم العثور عليها. حاولي تجربة إصدار 1.4 input system بدلاً من 1.5 لأن نسخة 2019 من محرر unity تدعم ذلك الإصدار أو أقل منه. إن استمرت المشكلة افتحي نافذة "Package Manager" في Unity (Window > Package Manager)، وابحثي عن حزمة Unity.InputSystem.TestFramework أو أي حزمة مشابهة تتضمن مكتبات الاختبار، في حال الحزمة غير ضرورية للتطبيق، قومي بإزالتها.
-
بغض النظر عن النسبة، فالأمر صحيح فلكل لغة مدير حزم رسمي خاص بها لإدارة تلك الحزم، وبايثون لديها pip. لكن بالطبع تتوفر بدائل، فلديك conda وهو مدير حزم وبيئات يستخدم بشكل واسع مع توزيعات Anaconda وMiniconda. أيضًا يوجد Poetry مدير حزم حديث يهدف إلى تبسيط عملية إدارة الحزم والمشاريع. بالإضافة إلى Hatch. يمكنك تجربة Poetry وتفقد هل أنت بحاجة إلى ميزاته أم لا، أبقي الأمور بسيطة دائمًا طالما لا تحتاج إلى تعقيدها.
- 2 اجابة
-
- 1
-
لديك دورات PHP وإطار لارافل الخاص بها، ولديك جافاسكريبت وبيئة Node.js، ولديك Ruby وإطار Ruby on rails، ولديك بايثون وإطاري Flask و Django. لذا ليس الأمر بالدورات المتاحة، لكن بما اخترته أنت بما يتناسب مع سوق العمل الذي تستهدفه، هل هو موقع عمل حر مثل مستقل وخمسات؟ إذن عليك بتعلم PHP ولارافل. هل هي شركة في بلدك؟ إذن عليك بالبحث عن الوظائف في مواقع مثل Linked و Indeed بمستوى Junior في مجال الـ back-end وتفقد ما هي اللغات والمهارات المطلوبة ثم تعلم ذلك. وبما أنك تعلمت الواجهة الأمامية إذن تستطيع أن تصبح مطور Full-Stack، وذلك سيفيدك في البداية بلا شك. عليك بتحديد وجهتك ثم تعلم المطلوب وليس العكس.
-
لا تحتاج إلى استخدام not لأنك تتحقق بالفعل مما إن كان الاسم موجودًا باستخدام in. فـ in نستخدمها للتحقق من عنصر معين وهو name لتفقد إن كان موجودًا في تسلسل معين (مثل قائمة employees)، وإن وجد العنصر، تعود العبارة بقيمة صحيحة True. أما not in فهي لتفقد مما إن كان عنصر معين غير موجود في تسلسل معين، وإن لم يوجد تعود العبارة بقيمة صحيحة True. لذا بما أنك تريد التحقق من الاسم هل موجود في قائمة الموظفين، فإن استخدام in هو الصحيح، ولو تريد التحقق مما إن كان الاسم غير موجود، فنستخدم not in. if name not in employees: print(f"The name is not: {name}") else: print("The name is: " + name)
- 2 اجابة
-
- 1
-
بخصوص تبديل الدورة، تستطيع ذلك من خلال التحدث لمركز المساعدة وسيتم مساعدتك، لكن تحدث إليهم من الحساب المُشترك بالدورة مع ذكر وقت الإشتراك وسبب تبديل الدورة.
-
إما أنك لم تقم بحفظ الكود ثم تحديث الصفحة لتظهر التحديثات، أو هناك مشكلة في الكود مثل عدم توافق أسماء الكلاسات مع هيكل HTML لديك. إليك كود متوافق مع التنسيقات التي لديك مع بعض التحسينات: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Enhanced NavBar</title> <style> header .navbar nav { display: flex; justify-content: space-between; align-items: center; max-width: 1100px; margin: auto; padding: 10px; background-color: #f8f9fa; border-bottom: 1px solid #ddd; } header .navbar nav ul { display: flex; justify-content: center; align-items: center; list-style: none; padding: 0; margin: 0; } header .navbar nav ul li { margin: 0 15px; } header .navbar nav ul li a { text-decoration: none; color: #333; font-weight: bold; } header .navbar .logo { font-size: 1.5em; font-weight: bold; color: #333; } header .navbar .search-bar { display: flex; align-items: center; } header .navbar .search-bar input[type="text"] { padding: 5px; border: 1px solid #ccc; border-radius: 3px; } header .navbar .search-bar button { padding: 5px 10px; border: none; background-color: #007bff; color: white; border-radius: 3px; margin-left: 5px; } </style> </head> <body> <header> <div class="navbar"> <nav> <div class="logo">MyLogo</div> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> <div class="search-bar"> <input type="text" placeholder="Search..."> <button type="button">Search</button> </div> </nav> </div> </header> </body> </html>
-
ستحتاج إلى مكتبات بايثون المتخصصة في معالجة الصور ومطابقتها، وواحدة من المكتبات الشائعة والمناسبة للغرض هي مكتبة OpenCV ومكتبة scikit-image. بعد تثبيت المكتبات: pip install opencv-python pip install scikit-image عليك كتابة سكريبت يقوم بتحميل الصور من مجموعة البيانات dataset، واستخدام تقنيات مثل استخراج الميزات (feature extraction) لمقارنة الصور. للتوضيح بمثال بسيط حول كيفية مقارنة الصور باستخدام OpenCV: import cv2 import os import numpy as np from sklearn.metrics.pairwise import cosine_similarity def load_images_from_folder(folder): images = [] for filename in os.listdir(folder): img = cv2.imread(os.path.join(folder, filename)) if img is not None: images.append((filename, img)) return images def extract_features(image): gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) sift = cv2.SIFT_create() keypoints, descriptors = sift.detectAndCompute(gray, None) return descriptors def find_similar_images(image_path, dataset_folder, top_n=5): input_image = cv2.imread(image_path) input_features = extract_features(input_image) dataset_images = load_images_from_folder(dataset_folder) similarities = [] for filename, dataset_image in dataset_images: dataset_features = extract_features(dataset_image) if dataset_features is not None and input_features is not None: similarity = cosine_similarity(input_features, dataset_features) similarities.append((filename, np.mean(similarity))) similarities.sort(key=lambda x: x[1], reverse=True) return similarities[:top_n] if __name__ == "__main__": dataset_folder = 'path/to/dataset' input_image_path = 'path/to/input/image.jpg' similar_images = find_similar_images(input_image_path, dataset_folder) print("Similar Images:") for filename, similarity in similar_images: print(f"Filename: {filename}, Similarity: {similarity}") بعد ذلك تأتي خطوة دمج بايثون مع PHP، مثلاً من خلال استخدام shell_exec لتنفيذ سكريبت بايثون وإرجاع النتائج أو من خلال API بايثون أو subprocess في PHP اختر ما تريد، وللتوضيح ساستخدم shell_exec كالتالي: <?php $input_image_path = 'path/to/input/image.jpg'; $output = shell_exec("python3 path/to/your/script.py $input_image_path"); echo "<pre>$output</pre>"; ?> بعد أن تحصل على قائمة الصور المشابهة من سكريبت بايثون، تستطيع عرض الصور باستخدام PHP، كالتالي: <?php $similar_images = json_decode($output, true); echo "<h1>Similar Images:</h1>"; foreach ($similar_images as $image) { echo "<div>"; echo "<img src='path/to/dataset/{$image['filename']}' alt='{$image['filename']}'>"; echo "<p>Similarity: {$image['similarity']}</p>"; echo "</div>"; } ?>
-
للتحقق من المستخدم، هناك عدة استراتيجيات، منها JWT عبارة عن معيار مفتوح يستخدم لنقل البيانات بين الأطراف ككائن JSON مضغوط وآمن، بحيث تستخدم JWT لتأمين API ةيحصل المستخدم على رمز JWT بعد تسجيل الدخول، ويجب عليه إرسال هذا الرمز مع كل طلب لاحق. بعد ذلك يوجد الكوكيز هي ملفات صغيرة تُخزن على جهاز المستخدم وتُستخدم لتخزين معلومات الجلسة، وعند تسجيل الدخول، يمكن تخزين معرف الجلسة في الكوكيز، ويتم إرسال الكوكيز مع كل طلب إلى الخادم للتحقق من الجلسة. ويتوفر UUID هو معرف فريد يمكن استخدامه لتعريف المستخدمين بشكل آمن وفريد، وتُخزن UUID في قاعدة البيانات ويُستخدم لتعريف المستخدمين في التطبيقات. أما CSRF هو نوع من الهجمات التي تُجبر المستخدم على تنفيذ إجراءات غير مرغوب فيها على موقع ويب آخر يتمتع فيه المستخدم بالتصديق، والإعتماد على CSRF tokens هو آلية شائعة لمنع تلك الهجمات. وDevise هو حل كامل لمصادقة المستخدمين في تطبيقات Rails، بحيث يوفر Devise العديد من الميزات الجاهزة مثل التسجيل، تسجيل الدخول، استعادة كلمة المرور، تأكيد الحساب، وغيرها، تستطيع تثبيته كالتالي: إضافته إلى ملف gem: gem 'devise' ثم تثبيت Devise: rails generate devise:install بعد التثبيت، ستحتاج إلى اتباع التعليمات التي تظهر على الشاشة لتكوين Devise وإعداد البريد الإلكتروني لإرسال روابط تأكيد الحساب واستعادة كلمة المرور. وفي حال تقوم بإنشاء تطبيق جديد، فتستطيع إنشاء نموذج المستخدم باستخدام Devise: rails generate devise User ثم ترحيل قاعدة البيانات: rails db:migrate بعد ذلك إضافة مصادقة إلى عناصر التحكم من خلال before_action لحماية مساراتك: class ApplicationController < ActionController::Base before_action :authenticate_user! end و Rails يوفر حماية مدمجة ضد هجمات CSRF، لأنه يتم تضمين CSRF tokens تلقائيًا في النماذج والطلبات AJAX. ولو تحتاج استخدام JWT مع Devise، فهناك gem مثل devise-jwt ستوفر لك JWT مع Devise.
-
في بدايات تعلمك، لا أنصحك بنسخ الكود لتوفير الوقت والمجهود، بل ما أنتِ بحاجة إليه هو العكس، فكتابة الكود بيديكِ هو تمرين مطلوب للتعود على الطريقة الصحيحة ومعرفة الفرق بين كتابة بعض الأمور والتي لن تلاحظيها في حال قمتي بنسخ الكود. الأمر أشبه بتعلم الكتابة لكن نتعلم البرمجة في تلك الحالة.
-
ربما استخدمت let أو const في تعريف اسم المتغير، فلهما نطاق كتلة block scope أي أنهما يكونان مرئيين فقط داخل الكتلة التي تم تعريفهما فيها. بينما تعريف متغير باستخدام var خارج أي كتلة كود { } يتم اعتباره متغيرًا عالميًا global، بمعنى يمكن الوصول إليه من أي مكان في الكود (سواء داخل دوال أو خارجها) ويصبح جزءًا من كائن window في المتصفحات window.name والمشكلة أنه يوجد خاصية باسم name في الكائن العالمي window ولم يعد يتم دعمها في المتصفحات حاليًا. على العكس بتعريف متغير باستخدام const أو let في النطاق العالمي، فإنه لا يصبح جزءًا من كائن window، ويتم تعريفه في نطاق الكتلة block scope الخاص بالوحدة النمطية module scope أو النص البرمجي script scope.
- 9 اجابة
-
- 1
-
تفهمت ما تقصد، المشكلة في استخدامك لاسم المتغير name حيث يتم الخلط بينه وبين خاصية name في الكائن العالمي window ما يسبب طباعة التكرار على الأسماء في المصفوفة بالشكل التالي : Y a r o b , K h a l e d , O m e r لذا لو قمت بتغيير اسم المتغير إلى names مثلاً سيتم حل المشكلة ويتم طباعة yes أو قم باستخدام const بدلاً من var <body> <div style="text-align: center;"> <input class="input-btn" type="text"> <button class="submit-btn">submit</button> <h3 class="result-one"></h3> <h3 class="result-two"></h3> </div> </body> <script> var names = ["Yarob", "Khaled", "Omer"] document.getElementsByClassName("result-one")[0].innerHTML = names document.getElementsByClassName("submit-btn")[0].addEventListener("click", function(){ var school = document.getElementsByClassName("input-btn")[0].value for(var student of names){ console.log(student) if(student === school){ document.getElementsByClassName("result-two")[0].innerHTML = `${school} yas` break } document.getElementsByClassName("result-two")[0].innerHTML = `${school} no` } }) </script>
-
الكود الذي ارفقته لك يعمل بشكل سليم، لم ألحظ في الصورة الأولى لديك أنك كتبت كود جافاسكريبت خارج وسم body فعليك كتابة جافاسكريبت في عنصر script ونضعه في body أو head
-
الكود يعمل بدون مشكلة ما الخطأ الذي يظهر لك ؟ غالبًا أنت نسيت حفظ الكود عليك الضغط على CTRL + S ثم إعادة تحديث الصفحة في المتصفح. <body> <div style="text-align: center;"> <input class="input-btn" type="text"> <button class="submit-btn">submit</button> <h3 class="result-one"></h3> <h3 class="result-two"></h3> </div> <script> var name = ["Yarob", "Khaled", "Omer"] document.getElementsByClassName("result-one")[0].innerHTML = name document.getElementsByClassName("submit-btn")[0].addEventListener("click", function(){ var school = document.getElementsByClassName("input-btn")[0].value for(var student of name){ if(student == school){ document.getElementsByClassName("result-two")[0].innerHTML = `${school} yas` break } document.getElementsByClassName("result-two")[0].innerHTML = `${school} no` } }) </script> </body>