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

محمد عاطف17

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

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

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

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

    68

كل منشورات العضو محمد عاطف17

  1. لاحظ في سطر رقم 3 لم تضع الفاصلة في نهاية السطر ولهذا يحدث هذا الخطأ لأن الملف أصبح لا يمثل كود JSON صحيح. لذلك يجب وضع علامة , في نهاية سطر 3 كما في جميع الأسطر الأخرى.
  2. المشكلة غير واضحة . هل قمت بتنفيذ أمر php artisan storage:link من خلال ال SSH وتم بنجاح أم لا ؟ وأيضا حينما قمت بتنفيذ الأمر يدويا هل تقصد بأن مجلد public ظهر بداخل storage أم العكس وهو storage ظهر بداخل public ؟ إذا كان مجلد public هو ما ظهر بداخل storage فيبدوا أنك قد قمت بعكس الأمر فيمكنك محاولة تبديل المسارين ومن المفترض أن يعمل معك. ولكن الافضل لك هو إستعمال SSH وتنفيذ أمر php artisan storage:link مباشرة من خلاله. ولكن إذا لم يكن لديك وصول إليه يمكنك إنشاء مسار يقوم بتنفيذ الأمر في ملف web ومن ثم حذف هذا المسار : use Illuminate\Support\Facades\Artisan; Route::get('/storage-link',function(){ Artisan::call('storage:link'); }); الآن يمكنك الذهاب إلى عنوان /storage-link بعد الدومين الخاص بك وسيتم تنفيذ الأمر تلقائيا وعمل link لل storage لديك . بعد ذلك يرجى حذف الكود السابق حتى لا تحدث مشاكل مستقبلا ولأنك لم تعد بحاجة له.
  3. هذا الأمر يعتمد على عدة أمور بما فيها احتياجاتك التي تريدها في التطبيق و خبرتك البرمجية واللغة التي تعمل عليها . أولا Electron: يتم إستخدام لغات مثل JavaScript و HTML و CSS. حيث يُستخدم لبناء تطبيقات سطح المكتب باستخدام تقنيات الويب. مميزاته : إذا كنت على علم بالفعل ب JavaScript و HTML وCSS فإن Electron سيكون سهل بالنسبة لك في تعلمه سريعا. يمكنك إستخدام الكثير من المكتبات المتاحة حيث يعمل على بيئة تطوير node مما يعطيك الكثير من الخيارات للمكاتب التي تساعدك. يمكنك بناء تطبيقات تعمل على Windows و macOS و Linux بنفس الكود. عيوبه : Electron معروف باستهلاك الذاكرة والموارد بشكل كبير لأنه يعمل بشكل رئيسي على محرك Chromium ومكتبات Node.js والعديد من الأسباب الأخرى التطبيقات يكون حجمها كبير إلى حد ما. ثانيا PyQt5: يعمل على لغة بايثون Python حيث هي مكتبة تستخدم لبناء تطبيقات سطح المكتب باستخدام واجهات المستخدم الرسومية GUI. مميزاته : إذا كنت تعرف Python فإنه يمكنك التعامل مع PyQt5 بسهولة. التطبيقات تكون أخف وزنا وحجما وأسرع في الأداء مقارنة بـ Electron. يوفر لك تحكم كبير في واجهة المستخدم والعناصر والتطبيق بشكل عام. يمكنك بناء تطبيقات تعمل على Windows و macOS و Linux أيضا. عيوبه : من الممكن أن تجدصعوبة إذا لم تكن لديك معرفة أو تعاملت مع واجهات المستخدم الرسومية قبل ذلك. لا يحتوي على الموارد والمكتبات بكثيرة كما في Electron. ولهذا الخيار يعتمد على اللغة التي لديك حاليا أو التي تفضل العمل بها . فإذا كان لديك خبرة جيدة في JavaScript و HTML و CSS و تريد بناء تطبيق يعتمد على تقنيات الويب ويشبهها وأيضا تحتاج إلى إستخدام مكتبات لمساعدتك ولا توجد لديك مشكلة في استهلاك الموارد وحجم التطبيق فحينها Electron أفضل لك بكثير. أما إذا كان لديك خبرة في Python و تريد بناء تطبيق خفيف و سريع و أيضا تحتاج إلى تحكم أكبر في واجهة المستخدم دون الحاجة لمعرفة مسبقة بالتصميم أو التنسيق و تفضل استخدام لغة برمجة واحدة وهي بايثون Python في التطبيق كاملا فحينها الأفضل لك هو PyQt5 . ويمكنك قراءة الإجابات التالية أيضا :
  4. مرحبا . نعتذر عن ذلك . من الممكن ان يتأخر ظهور قسم دوراتي قليلا بعد الدفع لهذا لا يجب القلق . يرجي التحدث مع مركز المساعدة من خلال الرابط التالي وسيتم مساعدتك وحل المشكلة ان شاء الله : https://support.academy.hsoub.com/conversations من الممكن ان يتاخر مركز المساعدة في الرد قليلا حيث يوجد حاليا ضغط عليه لهذا يرجي الانتظار قليلا لحين الرد عليك.
  5. لاحظ أن البرنامج لا يغلق من تلقاء نفسه ويقوم بإكمال الكود دائما ما لم يحدث خطأ أو يتم إيقافه من خلال دالة exit . لاحظ أنه ستواجهك مشكلة في سطر 19 لأنك تحاول إستخدام المتغير computer_result ولكن هذا المتغير تم تعريفه في جزء جملة if أى أنه إذا لم يتحقق الشرط وتم تنفيذ else فهنا ستحدث مشكلة لأن المتغير لم يتم تعريفه. ولهذا يجب إغلاق الكود في جزء else من خلال exit() هكذا : import random choose = input( "welcome to the coin guessing game!\nchoose a method to toss the coin\n1.using random.random()\n2.using random.randint()\nenter your choice (1 or 2):\n" ) if choose == "1": if random.random() >= 0.5: computer_result = "heads" else: computer_result = "tails" elif choose == "2": if random.randint(0, 1) == 0: computer_result = "heads" else: computer_result = "tails" else: print("invalid choice. Please select either 1 or 2") exit() user_choice = input("enter your guess (heads or tails):\n") if user_choice.lower() == computer_result.lower(): print("congratulations! you won") print(f"the computer's coin toss result was: {computer_result}") else: print("sorry, you lost") print(f"the computer's coin toss result was: {computer_result}")
  6. لا مشكلة يمكنك إتباع الخطوات التي ذكرها المدرب مصطفي للإتصال من الجهاز الأخر وكتابة إسم المستخدم وكلمة المرور التي أنشأتها . أما إذا أردت البدء من جديد فيمكنك إستخدام الأمر التالي لحذف المستخدم الذي أنشأته من خلال الجهاز الخاص به : sudo smbpasswd -x kemo ويمكنك تغير kemo إلى إسم المستخدم على الجهاز الأخر.
  7. وعليكم السلام ورحمة الله وبركاته. إن ال GridSearch هو أسلوب في تعلم الآلة يتم إستخدامه للبحث عن أفضل مجموعة من المعاملات (hyperparameters) لنموذج معين. فبدلا من تجربة القيم يدويا يقوم GridSearch بالبحث بشكل تلقائي عن جميع التركيبات الممكنة للمعاملات من خلال تحديد نطاقات متعددة لكل معلمة. حيث يتم تحديد مجموعة من القيم الممكنة لكل هايبربارامتر. وم ثم إنشاء شبكة من التركيبات الممكنة للهايبربارامترات المحددة. وبعد ذلك يتم تدريب النموذج لكل تركيبة من التركيبات وتقييم أدائه باستخدام تقييم معين (مثل دقة التصنيف أو خطأ التوقع). وأخيرا يتم اختيار التركيبة التي تعطي أفضل أداء للنموذج. تلخيصا لما سبق فإن بحث مصفوفة المعاملات GridSearch يستخدم لاختبار عدد من المعاملات أو إعدادات النماذج المختلفة دفعة واحدة والعثور على أفضل مجموعة معاملات تحقق أفضل أداء . ولكن تستهلك هذه الطريقة وقتا وموارد حاسوبية كبيرة خاصة إذا كانت المعاملات كثيرة جدا
  8. هذه المشكلة غالبا بسبب أنه لا يوجد مستخدم koko لديك على النظام بالفعل . حيث تتطلب smbpasswd أن يكون المستخدم موجودا لديك قبل ذلك. لهذا يجب عليك أولا التحقق من وجود المستخدم من خلال الأمر التالي : id koko إذا لم يكن المستخدم موجود يرجى تنفيذ الأمر التالي لإنشاءه : sudo useradd koko بعد ذلك إضافة باسورد لهذا المستخدم : sudo passwd koko الآن يمكنك إستخدام smbpasswd : sudo smbpasswd -a koko وكتابة كلمة مرور جديدة وتكرارها مرة أخرى . ومن ثم تنفيذ الأمر التالي : sudo systemctl restart smbd
  9. نعم بالطبع يوجد فرق بين حقوق المستأجر و الشخص المستفيد من العقار وهذا يعتمد على طبيعة العلاقة القانونية بين كل منهما وبين مالك العقار وهذا يختلف من دولة إلى أخرى حسب القانون. المستأجر : هو الشخص الذي يحصل على حق استخدام العقار لفترة محددة بموجب عقد إيجار مع المالك المباشر للعقار.وحقوقه هي : حق الاستخدام: يحق للمستأجر استخدام العقار وفق الشروط المتفق عليها في عقد الإيجار. حق الحماية من الإخلاء: لا يمكن للمالك إخلاء المستأجر قبل إنتهاء المدرة في العقد وذلك وفقا للشروط القانونية أو التي تم الإتفاق عليها في العقد. حق الصيانة: للمستأجر الحق في طلب صيانة العقار من المالك إذا كانت هناك مشاكل تؤثر على استخدامه وليس للمستأجر سبب أو دخل بها. حق التجديد: من الممكن وفي بعض الحالات يكون للمستأجر الحق في تجديد عقد الإيجار بعد انتهاء المدة المذكورة في العقد مع زيادة نسبة الإيجار المتفق عليها سنويا سواء في القانون أو في العقد. المستفيد : هو الشخص الذي يحصل على منفعة من العقار دون أن يكون بالضرورة طرف مباشر في عقد إيجار. فقد يكون المستفيد مستخدم للعقار بموجب ترتيب خاص، مثل الإعارة أو الحقوق العرفية مثل سكن الزوجة والأولاد بدلا من الزوج أو أى شخص أخر من طرف المستأجر مثل الميراث وغيرها وحقوقه هي: حق الاستخدام: للمستفيد حق استخدام العقار ولكن هذا الحق غالبا ما يكون محدود ولا يتمتع بنفس القوانين التي يتمتع بها المستأجر. لا يوجد عقد إيجار رسمي بين المستفيد ومالك العقار مما يعني أن حقوق المستفيد ليست واضحة لأنه لم يقم بالإيجار أو عقد إيجار ملزم مع المالك ولهذا باقي الحقوق تعتمد على العلاقة بين المستفيد والشخص المؤجر.
  10. دورة علوم الحاسوب توفر لك معلومات مكثفة حول مختلف مفاهيم لغات وتقنيات البرمجةو هي أساسية لزيادة معلوماتك حول مجال التقنية بشكل عام. و بانتهائك منها سيكون لديك خبرة جيّدة بدءً من الأساسيات والأفكار والمناهج النظرية مثل هندسة البرمجيات والبرمجة كائنية التوجه إلى التعامل مع أنظمة التشغيل ولغات البرمجة التي تم التطرق لها من خلال الأمثلة العملية في الدروس، وأيضاً سيكون لديك معرفة شاملة حول قواعد البيانات وطرق التعامل مع النوعين العلائقي وغير العلائقي. وفيها أيضاً مسار مخصص للدخول إلى عالم الويب والتعرّف على آلية عمل مطوري الويب في حال أحببت الانتقال إلى مجالات تطوير الويب لاحقاً لهذا إذا أردت التخصص في الواجهة الخلفية أو الأمامية فهذا المسار مهم جدا. ولذلك فتلك الدورة مهمة للتأسيس عليها وفهم أساسيات الحسوب و التعامل مع الخوادم والأنظمة وتعلم الخوارزميات وهياكل البيانات. أما بخصوص العمل فيمكنك التحدث بشكل أحسن مع مركز المساعدة سيساعدونك بخصوص هذا الامر. ويمكنك قراءة الإجابات التالية لمزيد من التفاصيل حول الدورة :
  11. يرجى مستقبلا حين رفع المشروع أن يتم رفع مجلد المشروع فقط المراد الإستفسار عنه وعدم رفع مجلدات أخرى معه وذلك حتى لا يكون حجم الملف كبيرا وأيضا حتى نستطيع مساعدتك بشكل أفضل. أولا يوجد لديك الكثير من الأخطاء في المشروع وخصوصا في التعامل مع livewire لذلك أنصحك بمذاكرة livewire أولا قبل التعامل معه حتى تستطيع بناء المشروع بشكل وهيكل جيد . حيث حاليا لا يفيدك livewire بأى شئ لأنك تستعمله بشكل خاطئ وغير صحيح. ثانيا يجب عليك حذف جميع التي تستخدم فيها @livewireScripts ويجب أن تتركها فقط في ال layout الرئيسي لأن ذلك يسبب تعارضات كثيرة لديك. أما بخصوص المشكلة فهي بسبب أنك تستخدم ملفات blade عادية وتقوم بإستدعائها من خلال @include وتريد أن تستدعي بها خصائص livewire مثل wire:click وغيرها وهذا لن يعمل حيث تعمل تلك الخصائص فقط في مكونات livewire . لذلك يجب عليك إستخدام مكون product-filter لأنه هو المكون livewire الوحيد لديك والذي توجد به الدالة setCategory . وأيضا يجب نقل ال filter و ال catergoy و ال product بداخل هذا المكون. لذلك يرجى في الملفات التالية resources\views\gallery.blade.php و resources\views\livewire\product-filter.blade.php تعديلهم ليتناسبوا مع livewire وإستدعاء المكونات بشكل صحيح. لقد قمت بإرفاق الملف لك بعد تعديلهم وإستخدام المكونات الصحيحة والآن كل شئ سيعمل معك. gallery.blade.php product-filter.blade.php
  12. وعليكم السلام ورحمة الله وبركاته. ينبغي عليك أن يكون لديك معرفة في طريقة التعامل وكيفية إستخدام إستعلامات SQL المسؤولة عن التعامل مع البيانات وإستخراجها وأيضا كيفية البحث والترشيح في تلك البيانات . وأرشح لك المقالين التاليين لتتعلم كيف تتعامل مع البيانات و إرجاعها بالطريقة التي تريدها وأيضا كيف تقوم بالبحث بداخل تلك البيانات : ولنفرض مثلا أن الجدول لديك يحتوي التالي : student_id: معرّف الطالب student_name: اسم الطالب department: التخصص فمثلا لو أردت معرفة عدد الطلاب في كل تخصص أو قسم يمكنك إستعمال الإستعلام التالي : SELECT department, COUNT(*) AS total_students FROM students GROUP BY department ORDER BY total_students DESC; لو أردت مثلا إحضار الطلاب في قسم أو تخصص معين يمكنك إستخدام الإستعلام التالي : SELECT student_name FROM students WHERE department = 'Computer'; وهكذا يمكنك بناء أى إستعلام تريده بناء على هيكل الجدول لديك وما هي التقارير التي تريد إنشاءها . أما إذا كنت تقصد عرضها أيضا في صفحة الموقع كرسومات بيانية فأنت ستحتاج مكتبة java script خاصة بعرض التقارير ويمكنك قراءة المقال التالي لأشهر المكتبات الخاصة بذلك وأنصحك بمكتبة charts.js فهي ممتازة في هذا الجزء :
  13. يفضل دائما إتباع ترتيب المسارات الموجود في الدورة حيث تم تصميم الدورات جميعها بترتيب مدروس ووضع هذا الترتيب لتوفير مسار تعليمي متدرج ومناسب للمبتدئين . وأيضا تهدف الأكاديمية إلى الشرح بشكل تصاعدي لضمان فهم الأساسيات قبل التعمق في المواضيع المتقدمة. وما تقوله صحيح فيفضل دراسة تحليل البيانات (Data Analysis) قبل البدء في مسارات تعلم الآلة (Machine Learning). حيث تحليل البيانات يشمل العديد من الأساسيات التي تعتبر ضرورية لفهم كيفية التعامل مع البيانات بشكل صحيح وهي خطوة أساسية في تعلم الآلة حيث سيجب عليك تنظيف البيانات وتجهيزها لتستطيع العمل عليها. وستلاحظ بالفعل أن المسارات الخاصة بتحليل البيانات قبل مسارات تعلم الآلة . ولكن في مسار "النماذج النصية الكبيرة LLMs" هنا لن يتم التطرق بشكل كبير في أدوات تحليل البيانات حيث سيتم توفير البيانات التي ستحتاجها في المرفقات الخاصة بالدرس ولن تتعامل معها بشكل كبير وأيضا ستتعامل مع نماذج موجودة مسبقا ولكنك ستقوم بتخصيصها بناء على الوظيفية التي تريدها منها لهذا لا مشكلة إن تم وضعها قبل مسارات تحليل البيانات. ولكن بالطبع تستطيع لك فيمكنك أولا مذاكرة المسارين "التعامل مع البيانات" و "تحليل البيانات Data Analysis" قبل البدء في مسار " "النماذج النصية الكبيرة LLMs""
  14. نعم بالفعل سيتم حفظها على الاستضافة بجوار ملف php الذي به هذا الكود . يمكنك بعد انشاء النسخة اعادة التوجيه الى اسم الملف مع المسار الموجود به وسيتم تحميل الملف على جهازك
  15. يرجى محاولة إستبدال الدالة system بالدالة exec هكذا : exec($command, $output) // بدلا من system($command, $output) إذا ظهرت مشكلة لديك يرجى إرفاقها هنا . إذا لم تظهر يرجى قراءة الإجابة التي أرفقتها لك سابقا جيدا وإتباع ما تم ذكره فيها فمن الممكن المشكلة لديك في متغيرات البيئة . وهذه هي الإجابة يرجى مراجعتها جيدا :
  16. وعليكم السلام ورحمة الله وبركاته. في جافاسكريبت الكائنات (Objects) هي عبارة عن مجموعات من الأزواج تتكون من مفتاح (key) و قيمة (value). وإن الكائنات في جافاسكريبت لا تحتفظ بترتيب محدد للخصائص ا(لمفاتيح) الخاصة بها. أى أن البيانات لا يتم تخزينها دائما بنفس الترتيب الذي تمت إضافتها به مثل المصفوفات ولا يمكن الاعتماد على ترتيب البيانات عند التكرار عبر الكائن. في المواصفات الرسمية لجافاسكريبت (ECMAScript)، لا يتم ضمان ترتيب الخصائص في الكائنات. قبل الإصدار ES6 كانت معظم المتصفحات تعرض الخصائص بنفس الترتيب الذي تمت إضافتها به لكن هذا لم يعد السلوك الحالي منذ ES6 حيث تم تحديد بعض القواعد لترتيب الخصائص لكنها لا تنطبق على جميع الحالات. حيث القواعد الحالية لترتيب الخصائص: المفاتيح الرقمية (أرقام): يتم ترتيبها تصاعديا. المفاتيح النصية (strings): يتم ترتيبها حسب الترتيب الذي تمت إضافتها به. المفاتيح من نوع Symbol: يتم ترتيبها حسب الترتيب الذي تمت إضافتها به. ولكن كما وضحت لك هذا الترتيب ليس مضمونا. لنرى المثال التالي : let obj = { "b": 2, "a": 1, 3: "three", 1: "one" }; console.log(obj); // { '1': 'one', '3': 'three', b: 2, a: 1 } console.log(Object.keys(obj)); // قد يعطي ["1", "3", "b", "a"] أو ["1", "3", "a", "b"] لاحظ كيف في الكائن السابق تم ترتيب المفاتيح التي هي أرقام أولا ترتيب تصاعدي حيث تم وضع 1 أولا و من ثم 3 . وبعد ذلك المفاتيح النصية تم ترتيبها بناء على الترتيب التي تم وضعها به . حيث تم وضع b أولا قبل a حين أنشأنا الكائن لهذا ظهرت b قبل 2 . ولكن كما وضحت لك هذا الترتيب ليس مضمون الحصول عليه. المشكلة الرئيسية لديك في دالة reduce حيث أنت تقوم بإنشاء كائن وتقوم بوضع الخصائص به وتجعل المفاتيح له هي أرقام لهذا يتم ترتيبها تصاعديا .حيث كما وضحت لك أن javascript تقوم بترتيب الكائن بالقواعد السابقة التي وضحتها وليس كما قمت أنت بوضعها . لهذا يتم ترتيب العنصر بشكل مختلف عن الذي أنشأته . والحل الأفضل لك هو إستخدام Map بدلا من ال obj في دالة reduce هكذا : function orderWeight(strng) { // "103 123 4444 99 2000" => "2000 103 123 4444 99" let arr = strng.split(" "); let weightsObject = {}; arr.map((number)=>{ let total = 0; let chars = number.split("") chars.map((char)=>{ total += +char; }) return weightsObject[number] = total; }) let sortedValues = Object.entries(weightsObject) .sort(([, a], [, b]) => a - b) .reduce((acc, [key, val]) => (acc.set(key, val)), new Map()); console.log(sortedValues); console.log(weightsObject); } orderWeight("100 180 90 56 65 74 68 86 99") وستجد أنه تم التريتب بناء على ترتيب وضع الخصائص وليس كما تفعل الكائنات.
  17. وعليكم السلام ورحمة الله وبركاته. ال Deep Learning ليس دائما أفضل من ال Machine Learning بشكل عام بل يعتمد ذلك على المشكلة التي تعمل عليها وحجم البيانات والميزات المتاحة لديك. حجم البيانات (Data Size): Deep Learning: إن التعليم العميق يتطلب كميات ضخمة وكبيرة جدا من البيانات لتدريب النماذج بفعالية. فإذا كانت لديك بيانات ضخمة ومعقدة مثل الصور أو الصوت أو حتى النصوص فإن الشبكات العصبية العميقة مثل CNN أو RNN ستكون جيدة لك. Machine Learning: إن تعلم الآلة يمكن أن يعمل بشكل جيد مع مجموعات بيانات أصغر من التعلم العميق . تعقيد المشكلة (Problem Complexity): Deep Learning: إن التعليم العميق مناسب للمشاكل المعقدة التي تحتوي على علاقات غير خطية أو أنماط معقدة مثل التعرف على الصور و معالجة اللغة الطبيعية والتعرف على الصوت و الشبكات العصبية قادرة على تعلم العلاقات المعقدة من البيانات. Machine Learning: إن تعلم الآلة يعمل بشكل جيد مع المشاكل الأبسط أو عندما تكون العلاقات بين الميزات وواضحة قليلا و إذا كانت المشكلة يمكن حلها باستخدام خوارزميات أبسط إذا فليس هناك أى حاجة لإستخدام التعلم العميق . عدد الميزات (Number of Features): Deep Learning: إن التعليم العميق يمكنه التعامل مع عدد كبير جدا من الميزات بشكل تلقائي حيث يستطيع النموذج أن يتعلم الفرق بين المميزات وأي المميزات هي الأكثر أهمية. Machine Learning : إن تعلم الآلة قد يحتاج إلى اختيار الميزات يدويا أو إستخدام هندسة المميزات ال (Feature Engineering) لتحسين الأداء خاصة إذا كان عدد الميمزات كبير لديك. الوقت والحسابات (Computation and Time): Deep Learning: إن التعليم العميق يتطلب قوة حسابية كبيرة بإستخدام ال GPUs أو ال TPU ووقت التدريب كبير وبخاصة مع البيانات الكبيرة. Machine Learning: إن تعلم الآلة عادة ما يكون أسرع في التدريب ويتطلب موارد حسابية أقل من التعلم العميق. تلخيصا لما سبق يمكنك إستخدام التعلم العميق عندما يكون لديك كمية كبيرة جدا من البيانات و عندما تكون المشكلة معقدة بشكل كبير وتتطلب تعلم أنماط غير خطية ومعقدة وأيضا إذا كانت الموارد لديك تسمح بذلك . أما عندما تكون البيانات محدودة لديك وتكون المشكلة أبسط ويمكن حلها بخوارزميات أبسط والموارد التي لديك ليست كافية فالأفضل إستخدام تعلم الآلة. ويمكنك قراءة الإجابة التالية للتوضيح أكثر :
  18. وعليكم السلام ورحمة الله وبركاته. هل يظهر البطئ وإستهلاك البطارية الكثير دائما أم في بعض الأحيان . إذا لم يكن دائما هل يمكنك توضيح متى يتم ذلك ؟ هل عندما تستخدم برنامج ما ؟ أو تقوم بتنفيذ أمر معين في ال power shell أو ال cmd ؟ يمكنك دائما فتح مدير المهام task manager لرؤية السبب الذي يؤدي إلى هذا . يمكنك فتح ال task manager من خلال الضغط بالزر الأيمن على شريط المهام : يرجى الضغط على ال CPU لرؤية البرامج التي تستهلك موارد كثيرة ويمكنك رؤية النسب لكل برنامج : يمكنك محاولة تنزيل antivirus لفصح الجهاز لديك حيث مضاد الفايروسات الخاص بالويندوز ليس جيدا في إكتشاف جميع الفيروسات. وأنصح بتنزيل برنامج malwarebytes وسيعطيك فترة مجانية يمكنك منه فحص جهازك وهو جيد في إكتشاف الفايروسات وال malware التي تسرق بياناتك أو تعمل في الخلفية.
  19. وعليكم السلام ورحمة الله وبركاته. أولا قبل التقسيم يجب عليك التأكد من أن الفئات أو التصنيفات التي لديك في البيانات متوازنة أيضا. فإذا كانت البيانات نفسها غير متوازنة مثل وجود فئة أكثر من الأخرى فستحتاج إلى استخدام تقنيات مثل Stratified Sampling لتستطيع الحفاظ على نفس النسبة في كل مجموعة. حيث يمكنك من استخدام train_test_split مع stratify للحفاظ على نفس التوزيع في كل مجموعة : from sklearn.model_selection import train_test_split X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, stratify=y) X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, stratify=y_temp) هنا test_size=0.3 تعني أننا نريد 30% من البيانات أن تكون في مجموعة التطوير والاختبار. و stratify=y تضمن أن التوزيع في الفئات y سيكون متشابها في جميع المجموعات. حيث أن X هي البيانات و إن y هي الفئات. ويمكنك قراءة المزيد حول stratify في مكتبة scikit-learn من خلال الرابط : https://scikit-learn.org/stable/modules/cross_validation.html#stratification
  20. ستجد في الرابط الخاص بشروط التقد للإختبار كل شئ ستريده . وإليك التالي وهو مقتبس من هذا الرابط : سنحدد لك موعد لاجراء محادثة صوتية لمدة 30 دقيقة يطرح المدرب فيها أسئلة متعلقة بالدورة ويناقش معك ما نفذته خلالها. سيحدد لك المدرب مشروعًا مرتبطًا بما تعلمته أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع الى أسبوعين. سيراجع المدرب المشروع الذي أنجزته، وإن سارت جميع الخطوات السابقة بشكل صحيح، ستتخرج وتحصل على الشهادة أو يرشدك المدرّب لأماكن القصور ويطلب منك تداركها ثم التواصل معنا من جديد.
  21. وعليكم السلام ورحمة الله وبركاته. بعد الإنتهاء من الدورة يمكنك محادثة مركز الدعم من خلال الرابط التالي : https://support.academy.hsoub.com/conversations ويمكنك إخبارهم برغبتك في التقدم للإمتحان . ويرجى التأكد أولا من أنك قد أنهيت على الأقل أربع مسارات من الدورة و رفع جميع التطبيقات التي قمت بها في الدروس مع المدرب على github . ويمكن قراءة الشروط للتقدم للإختبار من خلال الرابط التالي: https://support.academy.hsoub.com/exams
  22. وعليكم السلام ورحمة الله وبركاته. أولا بالنسبة إلى أن الصور لا تظهر ذلك بسبب أنه لم يتم تنفيذ أمر ربط مجلد storage وذلك لأن الصور بداخل مجلد storage وليست public لهذا يجب تنفيذ أمر الربط ليتم وضع رابط storage بداخل مجلد public . لهذا يجب تنفيذ الأمر التالي : php artisan storage:link أما بخصوص عرض المنتجات فهناك مشكلة إما في التنسيقات أ, أنك قمت بتغير هيكل الصفحة ولهذا التنسيقات قد إختلفت . ولا أعلم ما هي هيكل الصفحة الذي كنت تستعمله مسبقا ولكن أعتقد أن المنتجات من المفترض أن تكون بداخل عنصر div والذي يحوي السمة frame-21 . ولهذا قمت بتعديلها لك . وأيضا في ملف التنسيقات سيتوجب عليك وضع الخاصية flex-wrap بقيمة wrap للعنصر frame-18 وأيضا سيتوجب عليك وضع تنسيقات للصور حتي يكون حجمها مناسب حيث إذا لم يتم وضع حجم لها ستأخذ كامل الصفحة . لذلك يجب عليك وضع السطر التالي في ملف التنسيقات في سطر 543 : flex-wrap: wrap; وإضافة تنسيقات الصور التالية في الملف أيضا : .frame-21 img { width: 100px; } وستظهر لك بالشكل التالي : إذا أردت تغير حجم الصور يمكنك تغيرها في التنسيق الصابق وزيادة حجمها ويمكنك تغير التنسيقات الأخرى كما تريد بنفسك . لقد قمت بإرفاق الملفين لك بعد التعديل . stylePS.css gallery.blade.php
  23. لا داعي للشكر . وإياكم اللهم آمين . هذه مشكلة في postman بسبب أنه إذا أردنا إرسال بيانات من خلال طلب PUT أو PATCH يجب أن يتم إرسالها من خلال x-www-form-urlencoded : ولكن x-www-form-urlencoded لا تدعم إرسال ملفات ولهذا يمكننا إرسال الطلب ك POST ولكن نضيف ال _method بنوع الطلب الذي نريده سواء PUT أو PATCH و سيتم إرسال البيانات دون أى مشاكل وسيستطيع لارافل التعرف على نوع الطلب من خلال ال _method. وهذه المشكلة شائعة في Postman
  24. من الممكن أن المشكلة في postman لنحاول إرسال الطلب من نوع POST اي يجب عليكي تغير PUT إلى POST وإضافة : _method بقيمة PUT في البيانات هكذا :
  25. يرجى إستبدال $request->all() بالكود $request->validated(). أى في الجزء المشار إليه في الصورة السابقة يرجى إستبداله بالتالي : $request->validated() ويرجى أيضا محاولة طباعة السطر السابق والتاكد من أن البيانات التي يتم إرسالها من postman تصل بشكل صحيح. إذا إستمرت المشكلة يرجى إرفاق المشروع للإطلاع عليه ومساعدتكي بشكل افضل.
×
×
  • أضف...