-
المساهمات
19762 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
472
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
أسهل طريقة هي من خلال مكتبة BeeWare، ستحتاج إلى تثبيت التالي: pip install briefcase ثم تنفيذ الأمر التالي لإنشاء مشروع وسيقوم بسؤالك عن بيانات المشروع قم بإدخالها خطوة بخطوة: briefcase new ثم في مجلد src ستجد ملف باسم app.py ضع به الكود الخاص بك، ثم توجه لمسار مجلد المشروع الرئيسي وليس src عن طريق منفذ الأوامر، ثم نفذ الأوامر التالية: briefcase build android briefcase package android ستجد تفصيل هنا: https://docs.beeware.org/en/latest/tutorial/tutorial-1.html
-
لا تقلق بخصوص ذلك، يتم مراجعة حسابك ثم يتم تفعيله طالما قمت بتقديم البيانات المطلوبة، سحتاج إلى الإنتظار ما بين 24 إلى 48 ساعة.
- 3 اجابة
-
- 1
-
-
للتحقق من وجود الملف قبل محاولة قراءته، فبدون الشرط سيحدث خطأ في حال الملف غير موجود، وتلك ممارسة صحيحة يجب إتباعها دائمًا عند التعامل مع الملفات أو المجلدات.
- 4 اجابة
-
- 1
-
-
محتوى الدورة تم إعداده على إفتراض أنك لا تعلم أي شيء عن مجال البرمجة، وسيتم البدء معك من الصفر بشرح أساسيات بايثون وهي اللغة البرمجية التي سنستخدمها. لكن الأفضل الإشتراك أيضًا في دورة علوم الحاسوب لو استطعت من أجل التأسيس بشكل جيد قبل دراسة مجال ليس بالسهل مثل الذكاء الاصطناعي، وفي حال لم تستطع، بإمكانك البحث على اليوتيوب عن دورة CS50 ودراستها وستجد محتوى بالعربية والإنجليزية فاختر المناسب لك.
-
بالنسبة للصور فلديك مواقع Unsplash, Pexels, Pixabay, Pngtree تقدم صورًا عالية الجودة بدون حقوق ملكية أو بترخيص CC0 الذي يسمح بالاستخدام التجاري والتعديل بدون ذكر المصدر. كذلك Freepik يحتوي على قسم ضخم من الميديا المجانية Vectors, PSDs, Photos, Icons. والمنصات المتخصصة في أصول الألعاب مثل Sprites, Tilesets, Backgrounds, 3D Models هي OpenGameArt.org والذي يحتوي على كم هائل من الرسومات ثنائية وثلاثية الأبعاد، مؤثرات صوتية، وموسيقى. وكذلك Kenney.nl يقدم مجموعات ضخمة من 2D sprites, 3D models, UI elements. بالإضافة إلى https://itch.io/game-assets/free وهو منصة لمطوري الألعاب المستقلين، وكثير منهم يشاركون أصولاً مجانية، وتفقد أيضًا موقع https://craftpix.net/freebies لكن تركيزه على تصميمات البكسل. ولو أردت أيقونات فقط فيتوفر موقع Flaticon وMaterial Icons.
- 3 اجابة
-
- 1
-
-
ما تريده هو أن تصبح مطور Full-Stack بمعنى تطوير الواجهة الأمامية Front-End والخلفية Back-End معًا، فالأمامية هي واجهة المستخدم التي تظهر في المتصفح، كواجهة أكاديمية حسوب هنا، بينما الواجهة الخلفية هو السيرفر الذي به قاعدة البيانات والمنطق الذي يقوم بمعالجة كل الطلبات من وإلى السيرفر. أمامك خيارين الأول تعلم تقنيات MERN والثاني تعلم PHP ولارافل، والأمر يعتمد على ما تريده من وراء تعلم البرمجة هل تنوي إتخاذها كمسار مهني أم مجرد هواية لتنفيذ مشروع تريده مثلاً؟ ستجد هنا تفصيل وتوضيح لكل من: ما هي علوم تطوير الويب؟ مجالات تطوير الويبالواجهات الأمامية Front-End لغات تطوير الواجهات الأمامية المكتبات وأطر العمل المتوفرة للواجهات الأمامية مصادر تعلم تطوير الواجهات الأمامية Front-End الواجهات الخلفية Back-End ما هي اللغات المتوفرة لبرمجة الواجهات الخلفية لمواقع الويب؟ أطر العمل المتوفرة لبرمجة الواجهات الخلفية للويب ماذا سيمكنك أن تفعل بعد تعلم إحدى اللغات البرمجية؟ مصادر لتعلم تطوير الواجهات الخلفية Back-End المطور الشامل Full-Stack ما هي فرص العمل بعد تعلم تطوير الويب؟ كيف أختار مجال تطوير الويب المناسب لي؟ والفيديو التالي سيوضح الأمر لك أيضًا:
-
طالما الأمر كذلك، فلابد من العودة و دراسة أساسيات جافاسكريبت من جديد كما لو أنها المرة الأولى لك، من خلال مسار أساسيات جافاسكريبت بالدورة، وفي كل درس يجب التطبيق على ما جاء به ولا تتخطى أي درس بدون تطبيق عملي، وتستطيع السؤال أسفل كل درس عن تمرين لو أردت. وكذلك المسار الأول من دورة تطوير واجهات المستخدم. ويجب إعادة ما جاء بالدرس بمفردك لقياس مدى استيعابك والتركيز على ما تقوم به بشكل أكبر، وستجد تفصيل هنا بخصوص طريقة الدراسة الصحيحة: ولا تتكاسل عن ذلك، فالمشكلة ستستمر.
-
كبداية عليك التطبيق على الأساسيات بدون المفاهيم المتقدمة، والمشروع المناسب لذلك هو مُولد اقتباسات عشوائية، عليك إنشاء صفحة ويب بسيطة تعرض اقتباس عشوائي في كل مرة يضغط فيها المستخدم على زر، وتستطيع أيضًا إضافة اسم قائل الاقتباس لو أردت. الغرض منه التطبيق على: المتغيرات المصفوفات الدوال التعامل مع عناصر HTML من خلال DOM الأحداث توليد أرقام عشوائية اهتم أولاً بكود HTML و جافاسكريبت، ثم في النهاية كود CSS.
-
بالضبط تم تنفيذ كل ما هو مطلوب
-
بسبب أنك عرفت IterativeImputer وهو يعتبر القيمة -1.0 هي القيمة المفقودة: IterativeImputer(missing_values=-1.0) لكن البيانات الفعلية التي يستقبلها IterativeImputer وهي الأعمدة الرقمية numeric_features من data_train تحتوي على قيم NaN، وهي الطريقة المتبعة في Pandas و NumPy لتمثيل القيم المفقودة. بالتالي عند استقبال NaN يجد -1.0 كعلامة للقيم المفقودة، لذا يعتبر الـ NaN قيمة غير صالحة ولا يستطيع التعامل معها. عليك تغيير missing_values=-1.0 إلى missing_values=np.nan.
- 8 اجابة
-
- 1
-
-
isna تتعرف على NaN و None وNaT (Not a Time - للتواريخ) كقيم مفقودة، ولا تعتبر -1.0 قيمة مفقودة بشكل افتراضي، حيث NaN هي قيمة خاصة تعني أنّ البيانات الرقمية مفقودة أو نتيجة عملية حسابية غير معرفة، بالتالي NaN في الغالب تعني أن الخلية كانت فارغة تمامًا في البيانات الأصلية، خصوصًا في الأعمدة الرقمية. ولتضمين قيم أخرى مثل -1.0 كقيم مفقودة، يجب تحديد ذلك صراحًة من خلال استبدالها عن طريق np.nan df.replace(-1.0, np.nan, inplace=True) أو إنشاء قناع مخصص: missing_mask = (df == -1.0) | df.isna() missing_count = missing_mask.sum()
- 4 اجابة
-
- 1
-
-
الدالة ستكون كالتالي: function winner(){ for(let i = 1; i < 10; i++){ square[i] = document.getElementById('item' + i).innerHTML; } if(square[1] == square[2] && square[2] == square[3] && square[1] != ''){ end(1,2,3) return; } if(square[4] == square[5] && square[5] == square[6] && square[5] != ''){ end(4,5,6) return; } if(square[7] == square[8] && square[8] == square[9] && square[8] != ''){ end(7,8,9) return; } if(square[1] == square[4] && square[4] == square[7] && square[1] != ''){ end(1,4,7) return; } if(square[2] == square[5] && square[5] == square[8] && square[5] != ''){ end(2,5,8) return; } if(square[3] == square[6] && square[6] == square[9] && square[6] != ''){ end(3,6,9) return; } if(square[1] == square[5] && square[5] == square[9] && square[5] != ''){ end(1,5,9) return; } if(square[3] == square[5] && square[5] == square[7] && square[5] != ''){ end(3,5,7) return; } // هنا نتحقق من التعادل let draw = true; for(let i = 1; i < 10; i++){ if(square[i] == ''){ draw = false; break; } } if(draw){ title.innerHTML = 'تعادل'; setTimeout(function(){location.reload()}, 4000); } }
-
عليك تعديل دالة winner بحيث تتحقق من حالة التعادل بعد التأكد من عدم وجود فائز، بمعنى بعد جميع شروط الفوز في الدالة، أضف شرط يتفقد هل جميع المربعات ممتلئة أي لا يوجد مربع فارغ ولم يتم استدعاء دالة end أي لم يفز أحد. وفي حال تحقق الشرط، قم بتغيير العنوان title.innerHTML إلى تعادل أو Draw، وتستطيع إعادة تحميل الصفحة بعد فترة قصيرة كما في حالة الفوز. لو واجهت صعوبة في التنفيذ أخبرني.
-
عليك ضبط الوسيط missing_values في IterativeImputer ليكون -1.0 بحيث يعامل كل تكرار للرقم على أنه مفقود، كالتالي: from sklearn.experimental import enable_iterative_imputer from sklearn.impute import IterativeImputer imp = IterativeImputer( missing_values=-1.0, max_iter=10, random_state=0) X_imp = imp.fit_transform(X) لكن لو يوجد قيم حقيقية تُساوي -1 فعلاً في بعض الصفوف، فاستخدام -1 كرمز للفقد سيخلط بين المفقود والقيمة الحقيقية، لذا الأفضل دائمًا استخدام np.nan أو pd.NA كرمز وحيد للفقد. ولو العمود من نوع int فوجود -1 لا يسبب مشكلة، ولكن لو استبدلت إلى np.nan فيما بعد، فستضطر لتحويل الأعمدة إلى float أو Int64. عامًة كل المُحسنات أي الـ Imputers الموجودة في scikit-learn سواء SimpleImputer أو KNNImputer أو IterativeImputer لا تكتشف القيم المفقودة تلقائيًا، بل تبحث عن قيمة معينة تحددها أنت في الوسيط missing_values وافتراضيًا هي np.nan. ولو القيم المفقودة مُمثلة في البيانات بالعدد -1 فلن تعتبرها تلك الأدوات مفقودة إلا إن أخبرتها بذلك صراحة أو قمت بتحويلها إلى np.nan قبل تمرير البيانات إلى المُحْسن. للتوضيح، عند استدعاء fit أو fit_transform، يُنشئ المُحسن mask أي قناع يساوي True حيث تكون الخانة مفقودة و False حيث لا تكون مفقودة. ويتم بناء القناع كالتالي: لو missing_values=np.nan وهي القيمة الافتراضية، فيتم تطبيق np.isnan(X). وفي حال حددت عدد أو رمز آخر ولينك missing_values = -1، يتم استخدام المقارنة X == -1. والقيم المفقودة المكتوبة - ستُعامل كقيمة عددية عادية إن أبقيت الوسيط على الحالة الافتراضية np.nan، بالتالي قبل التدريب استبدال -1 بـ np.nan أو قم بتحديد ذلك للمُحسن مباشرًة كالتالي: from sklearn.impute import KNNImputer imputer = KNNImputer(missing_values=-1) X_imp = imputer.fit_transform(df.values)
- 8 اجابة
-
- 1
-
-
قمت بما هو مطلوب، هناك نقطة وحيدة لم تقم بها وهي استخدام scikit-learn بشكل مباشر لقياس التشابه من خلال cosine_similarity، عامًة لا تحتاج ذلك لأن FAISS يقوم بتلك المهمة بكفاءة.
-
طالما تريد أن تصبح مطور واجهة أمامية فيجب تعلم React، الأمر بحاجة إلى وقت وممارسة لكي تستوعب آلية عملها وكيفية التطوير من خلالها، تستطيع مشاهدة شرح على اليوتيوب للأساسيات مرة أخرى أو مراجعة مسار الأساسيات من الدورة.
-
ما تقصده هو التطوير مباشرًة من خلال HTML و جافاسكريبت، وذلك ممكن للمشاريع البسيطة، بينما في الواقع العملي أي في المشاريع الحقيقية لا يتم تطوير مشاريع إلا من خلال مكتبة React أو إطار عمل مثل Next.js. وللعلم التطوير من خلال React أسهل بمراحل، فأنت لم تقم بتجربة تطوير مشروع معقد من خلال HTML و Javascript فقط، ستجد صعوبة وبطيء في عملية التطوير. حاول الدراسة بشكل مختلف، أي استوعب آلية عمل React ولا تقم بالتفكير بها نفس الطريقة، بمعنى في DOM لو ضغط المستخدم الزر، سنقوم مثلاً بتيير لون العنصر مباشرة عن طريق جافاسكريبت. أما في React نقوم بذلك عن طريق تغيير قيمة الحالة state، أي لو تغيرت قيمة الحالة isRed إلى true فالعنصر سيُعاد رسمه بلون أحمر. كذلك استيعاب مفهوم المكونات والـ Props وتلك هي أهم مفاهيم React الأساسية، وفي حال استوعبتها يصبح الأمر أسهل بمراحل.
-
لا يُتاح لك حذف حسابك بشكل مباشر من طرفك، إنما من خلال التواصل مع فريق الدعم وتوضيح الأسباب أو المشاكل لنقدم المساعدة المناسبة، حيث أنّ الحساب يرتبط بالدورة التي اشتركت بها أي يرتبط بأمور مالية، لذا ستحدث مشكلة في حال تم حذفه بالخطأ. تستطيع ترك الحساب كما هو لا مشكلة.
-
الحل صحيح بناءًا على ما هو مطلوب منك لا مشكلة، وللتحسين ليس أكثر، فلم تقم بتطبيق نفس دالة preprocess على user_input قبل توليد التضمين له. وذلك كممارسة جيدة، فعلى الرغم من أنّ نماذج SentenceTransformer تتعامل جيدًا مع النصوص الخام، إلا أنه من لجيد تطبيق نفس خطوات المعالجة المسبقة التي طبقتها على بيانات التدريب وهي أوصاف الكتب على بيانات الاستعلام لضمان الاتساق، خاصة لو المعالجة المسبقة تزيل معلومات مهمة يعتمد عليها النموذج، عامًة التأثير ليس كبيرًا لأن all-MiniLM-L6-v2 قوي.
-
إذن هناك مشكلة في الأساسيات وهي اللغة البرمجية جافاسكريبت، أنت بحاجة إلى العودة إليها ودراستها من جديد، فما ذكرته يعني أنك تخطيت تلك المرحلة وتوجهت مباشرًة لتعلم React والتقنيات الأخرى القائمة على جافاسكريبت، ولن تتمكن من الوصول بعيدًا بدون أساس قوي في اللغة البرمجية نفسها. ويجب تنفيذ مشاريع متدرجة الصعوبة من خلال جافاسكريبت بعد مراجعة الأساسيات، وستجد على اليوتيوب الكثير من المشاريع، ابحث عن مشاريع جافاسكريبت للمبتدئين. وعند التطبيق لا تقع في محاولة كتابة التطبيق دفعة واحدة حيث سيؤدي ذلك إلى شلل في التفكير لديك، يجب تقسيم المشروع إلى أجزاء صغيرة ثم العمل على حلها. ويجب التفكير والتخطيط أولاً قبل كتابة الكود فتلك هي الخطوة الأخيرة، قم بتنفيذ Pseudocode للمشروع ثم تحويله إلى كود.
-
صلاحية الوصول للملف غير صحيحة أرجو عند مشاركة الرابط إختيار anyone with the link
-
في البداية ليس المطلوب منك سوى تنفيذ المنطق بشكل صحيح، بغض النظر عن جودة الكود أو إتباع الممارسات الصحيحة، أي أهم هدف هو أن تتعلم ترجمة وصف المشكلة إلى خطوات منطقية واضحة ثم إلى كود يعمل بشكل سليم. واسمح لنفسك أن تكتب كود أطول أو أبطأ ما دمت تتعلم، فالتجربة والخطأ أفضل طريقة لترسيخ ما تعلمته، واحرص في كل مسألة على أن تسأل نفسك هل غطيت كل الحالات المطلوبة؟ قبل أن تقلق بشأن السرعة. بعد الوصول لمستوى متوسط ابدء في تعلم كيف يتم كتابة كود جيد وما هي أفضل الممارسات وكيف يتم تحسين الأداء، ولا تنتظر حتى تتقن كل شيء، فمن الجيد بعد كل حل أن تحسب تعقيد الزمن O() والذاكرة ولو تقديريًا، ويكفي أن تبدأ بالتمييز بين خوارزمية خطية O(n) وخوارزمية تربيعية O(n²) والخوارزميات التي تعتمد على log n.
- 3 اجابة
-
- 1
-
-
أرجو توفير صورة للمشكلة، وإليك تفصيل لكيفية التعديل:
