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

محمد_عاطف

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

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

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

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

    117

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

  1. هذا الخطأ شائع فى البرمجة وهو ما يسمى overflow اى ان الذاكرة لا تستطيع ان تحمل جميع البيانات فى المتغير . فمثلا المتغير من نوع int64 فى numby يستطيع ان يحمل ارقام من -9223372036854775808 الى 9223372036854775807 واى رقم يتجاوز هذه الارقام ستحدث مشكلة ال overflow اى فائض فان الذاكرة لا تعرف كيف تتعامل مع هذه البيانات الزائدة فتقوم بكتابة بيانات فوق البيانات الحالة فى المتغير مما يسبب ظهور ارقام سالبة او حتى رقم 0 . وهذه مشكلة متعلقة فى numby فهى لا تستطيع ان تتحمل بيانات كثيرة عكس python فانها مرنه حيث تقوم بتغير حجم الذاكرة حتى يتناسب مع المتغير . حيث لاحظ الفرق عند تنفيذ هذين السطرين. print(np.power(2,100)) #0 print((2**100)) #1267650600228229401496703205376 لاحظ فى السطر الاول فان numby تقوم باراجع 0 حيث حدثت مشكلة ال oveflow لان numby لم تستطع ان تتعامل مع العدد الذى اكبر من 9223372036854775807 . اما فى السطر الثانى فان بايثون مرنة حيث تستطيع تغير الذاكرة كما تريد لتتحمل اى قيمة للرقم . وكما اخبرتك من البداية ان المشكلة من الممكن ان تكمن فى numby ولم الحظ ان الرقم الذى يتم الاختبار عليه كبير . ولذلك يمكنك استخدام python بدون اى مكتبة مثل هكذا . def power_of_two(n): power_two = []; for i in range(1,n): power_two.append(2**i) return power_two print(power_of_two(10000)) ستجد ان بايثون لديها القدرة على تحمل اى رقم مهما كان .
  2. انك تحاول تشغيل السيرفر عند الضغط على run فى برنامج netbeans و هو يتطلب ان يكون هناك ملف الجذر الذى سيتم بدا السيرفر منه . وهو فى الحالة الافتراضية يكون ملف index.php وهو ليس موجود فى ملف المشروع لديك. لذلك الحل هو انشاء ملف index.php او كتابة الملف الذى تريد ان يكون هو ال root للسيرفر .
  3. هذا ليس المكان الخاص بال php.ini من فضلك قم بالذهاب للمسار التالى C:\Users\{user}\.config\herd\bin مع استبدال {user} باسم المستخدم لديك على الجهاز. ثم اذهب الى المجلد php على حسب الاصدار لديك . او فقط قم بتنفيذ هذا الامر وسيشير الى مكان ملف ال php.ini php --ini ثم قم بفتح php.ini وابحث عن variables_order وقم بتغيرها الى GPCS هكذا . variables_order = "GPCS" وذلك سيحل المشكلة ان شاء الله
  4. وعليكم السلام ورحمة الله وبركاته. نحن هنا لا نقوم بالاجابة على اسئلة الاختبارات ولكن يمكننى اعطائك نصائح لتستطيع حل المشكلة بنفسك. الكود الخاص بك لا يوجد به اى مشاكل وهو جيد جيدا . لذلك هل يمكنك ارسال رسالة الخطأ التى تظهر لك ؟ وايضا قم بكتابة الكود دون استخدام مكتبة numpy وحاول مرة اخرى وانظر هل يتم حل المشكلة ام لا . بالتوفيق لك
  5. الخطأ لديك فى العنصرين <div class="row text-header"> // سطر رقم 99 <div class="row cards"> // سطر رقم 102 لاحظ انك فى كلا العنصرين قد اضفت الخاصية position: absolute; وهذه الخاصية تقوم بحذف العنصر من ال flow اى انه لن يكون له اى تاثير على العناصر الاخرى من حيث الطول او العرض . لذلك سترى ان العنصر الاب <div class="container-fluid"> لا يمتلك اى طول . وانصحك بعدم استخدام position: absolute هنا حيث انك تستطيع تنفيذ نفس التصميم فقط باستخدام margin و padding و text-align: center; . ويمكنك استخدام الكود التالى . section#trending .text-header { /* position: absolute; top: 20%; right: 30%; */ text-align: center; margin-top: -50px; /* padding-bottom: 50px; */ } section#trending .cards { /* position: absolute; top: 50%; left: 1%; */ margin-left: 5px; width: 100%; } footer { margin-top: 50px; } ويمكنك استخدام اى قيمة كما تحب من حيث البعد عن العناصر margin او padding . وقد قمت بارفاق الملف لك بعد التعديل. style.css
  6. وعليكم السلام ورحمة الله وبركاته . ان دالة range هى دالة built-in function فى بايثون اما دالة arange فهى دالة خاصة بمكتبة numpy ولكن فى المجمل فان الدالتين متشابهتين فى الاستخدام و فى نفس كل شئ تقريبا . ولكن توجد بعض الفروق الجوهرية بينهما, ولكن اولا لنشرح ما وظيفتهما : دالة range تقوم بارجاع كائن من نوع مجال (range) يحتوي على أعداد صحيحة من نقطة البداية إلى نقطة النّهاية مع فصلها بمسافة عدديّة و تستقبل ثلاثة معاملات : start وهو النقطة التى نريد ان يبدا المجال منها. stop وهو النقطة التى نريد ان ينتهى المجال عندها . step وهو المسافة بين كل نقطة فى المجال وهو معامل اختيارى اذا لم يتم توفيره سيكون ب 1. مثال للدالة range list(range(3)) # من صفر إلى ثلاثة #[0, 1, 2] list(range(1, 5)) # من 1 إلى 5 #[1, 2, 3, 4] #list(range(1, 5, 2)) # من 1 إلى 5 مع اثنين كمسافة بين كلّ عنصر والآخر [1, 3] ويمكنك الذهاب لهذا الرابط لموسوعة حسوب لتفهم اكثر عمل الدالة. الان الدالة arange هى خاصة بمكتبة numpy وتقوم باعادة كائن من نوع مصفوفة (NumPy array) وهى تستقبل اربع معاملات اول ثلاق معاملات هم نفس الدالة range والمعامل الاخير هو نوع الكائن الذى تريد ان تقوم الدالة arange باعادته لك. الان ناتى للفروق الجوهرية : كما وضحت سابقا فان كل دالة تقوم بارجاع كائن مختلف عن الاخر فالدالة range تقوم بارجاع كائن مجال اما arange تقوم بارجاع كائن من نوع مصفوفة او كما تريد انت عن طريق تمرير المعامل الرابع كما تحب. ان دالة range لها قيد حيث لا يمكن ان تكون المسافة قيمة عشرية بل يجب ان تكون قيمة صحيحة عكس arange يمكن ان تمرر لها ما تريد import numpy as np print(np.arange(1,5,0.5)) print(list(range(1,5,0.5))) # هنا سوف يحدث مشكلة لان المسافة يجب ان تكون رقم صحيح السرعة هنا دالة arange أسرع من دالة range فى التنفيذ والعمليات التى تتم عليها . المساحة التى يتم استخدامها فى الذاكرة فى arange اقل من دالة range . ولكن يوجد بعض النصائح فاذا كنت تريد انشاء مجال يحوى على العديد من الارقام فان دالة range هى الافضل واذا اردت ان تقوم بالتكرار عليهم فقط فان الدالة range افضل كذلك من arrange . اما اذا كنت تريد تنفيذ عمليات عليهم فان numpy.arange تضمن لك السرعه فى ذلك الامر
  7. وعليكم السلام ورحمة الله وبركاته . الخطأ من الممكن ان يكون لاكثر من سبب ولكن السبب الاكثر شيوعا هو عدم وجود ملف php.ini لديك فى مكان تثبيت php . لذلك اولا قم بالذهاب الى مكان تنصيب Laravel Herd وقم بالذهاب لمجلد php وتاكد من وجود php.ini . اذا لم يكن موجودا ستجد ملف php.ini-development قم بتغير اسمه الى php.ini . واخبرنى بالنتيجة .
  8. وعليكم السلام ورحمة الله وبركاته. نعم بالطبع يمكنك استخدام دالة power لرفع اى رقم الى اى قوة تريد وليس 2 فقط . import numpy as np print(np.power(2,2)) # رقع الرقم 2 الى القوة 2 print(np.power(2,3)) # رفع الرقم 2 الى القوة 3 كما فى المثال السابق فان الدالة power تاخذ معاملين الاول هو الرقم الذى تريد رفعه الى قوة معينه , والثانى هو القوة التى تريد رفعها . وايضا power لا تتعامل فقط مع ارقام بل يمكنك تمرير قوائم (lists) ايضا . import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(np.power(arr,2)) # [ 1 4 9 16 25] لاحظ هنا سيتم رفع كل العناصر فى القائمة الى القوة 2 او اى قوة تريدها .
  9. ان #C مع اطار ASP.NET هو الافضل من حيث الامان و سرعة الاداء وايضا ASP core يمكنك من جعل ال desktop يعمل على جميع انظمة التشغيل سواء mac او windows او حتى linux . واذا لم تكن تريد ان يتصل البرنامج بالانترنت فيمكنك من انشاء microsoft sql server على جهاز رئيسى على الشبكة و الاتصال بها من داخل الشبكة فقط دون الحاجة الى شراء server لقاعدة البيانات على الانترنت وستوفر لك .NET Core تلك الخاصية .
  10. وعليكم السلام ورحمة الله وبركاته . ان لغه php واطار عمل لارافيل هو فى الاساس لبناء تطبيقات الويب ولكن توجد مكتبات لتحويل تطبيق الويب هذا الى desktop application ولكنه فى الاساس يعتبر تطبيق ويب . وهو شئ ليس سيئا ولكنه يعتمد على ما تريده انت فافضل لغه لبرمجة ال desktop application هى C# ASP.NET . ويمكنك سؤال المبرمج هل سيقوم بانشاء تطبيق ويب وتشغيله لديك على متصفح ؟ ام سيقوم بتحويل التطبيق الى ملف يمكن تثبيته ليعمل لديك على الجهاز . واذا كان التطبيق ستستعمله على جهاز واحد فالافضل هو تطبيق الويب من وجهة نظرى .
  11. نعم يوجد خطأ اخر هو انك قمت بوضع ال position ب fixed لذلك تجد الفيديو موجود فى كل الصفحة حيث انك قد اعطيته مكان ثابت فى الصفحة والحل هو استخدام قيمة absolute . واذا اردت ان ياخذ كام ال section نضع خاصية width و height ب 100% . بعد هذا ستقابلك مشكلة اخرى فى عنصر الذى يحوى class يساوى overlay فلم تقم باعطائه طول للعنصر لذلك ستجده اقل من طول الفيديو. واكواد الحل كالتالى. section#Home video { height: 100%; width: 100%; position: absolute; z-index: -1; } section#Home .overlay { background-color: rgba(255, 255, 255, 0.7); height: 100%; }
  12. الخطأ الأول فى عنصر section الذى يحوى id يساوى Home لقد قمت باعطائه الخاصية margin-top: 150px; لهذا تجد المسافة كبيرة لذلك قم بتغيرها الى 60px وسيعمل معك . اما بالنسبة للمشكلة الثانية فانت قمت بوضع الخاصية min-height: 100%; اى تشغل اصغير طول للفيديو هو 100% . ولذلك الحل هو استخدام الخاصية height لكن اعطائها قيمة ب هكذا height: 50%;
  13. نعم من الممكن عمل عدة واجهات بالخادم لا مشكلة بذلك وتوجد عدة طرق لتلك الطريقة. فكل واجهة تجعل لها عنوان خاص بها url . وفى هذا العنوان تقوم بتحميل الملفات الخاصة بالواجهة فقط فلنفرض ان الموقع الخاص بك هو test.com . اذا ستجعل الصفحة الخاصة بالعميل هكذا test.com/dashboard مثلا للعميل و نجعل صفحة فرعية للبائع هكذا test.com/seller/dashboard وفى كل صفحة نقوم فقط بتحميل الملفات الخاصة بها . 2. ويمكن ايضا جعل العنوان واحد اى test.com/dashboard و فى السيرفر نقوم بالتحقق من نوع المستخدم وعلى حسب نوعه نقوم بتحميل الصفحة لكل مستخدم. 3. واخيرا يمكنك استخدام sub domain للموقع الخاص بك ولكن ذلك سيجعلك تقوم بانشاء مشروعين وكل مشروع على domain مختلف هكذا : tes.com/dashboard وهذا هو ال domain الرئيسى للموقع . seller.tes.com/dashboard لاحظ هنا قد قمنا بجعل ال url الخاص بالبائع مختلف عن الرئيسى ولكنه بالفعل على نفس السيرفر ولكن يعتبر مشروعين منفصلين . وهذا سيفيدك اذا اردت مثلا انشاء تطبيقين للموبايل تطبيق للبائع والاخر للعميل او فصل المشروعين عن بعض .
  14. ان اسئلة الاختبارات لا يتم حلها هنا على الموقع ولكن ساقوم بتوضيح الخطأ لك والطريقة لحله . وانت يججب عليك ان تكتشف الكود الصحيح . الخطا يخبرك بان الكود الخاص بك ياخذ وقتا اكثر من اللازم فان معظم مواقع ال problem solving تضع وقتا معينا لا يجب تخطيه لتنفيذ الكود . ان الكود الخاص بك صحيح ولكنه ياخذ وقتا اكثر من اللازم حيث تقوم بالتكرار على الارقام من ١ حتى n فتخيل لو ان n رقم من ٩ خانات فانه سيتم تنفيذ العديدمن الاسطر مما يستغرق وقتا كثيرا. ولذلك يجب عليك ايجاد حل او خواريزمية لا تستخدم حلقة التكرار لحل تلك المسئلة .
  15. نعم لا مشكلة . حيث ان ليس كل السيرفيرات تقوم بتشغيل لغات البرمجة المختلفة . فان السيرفيرات التى تخدم js سواء node او react لا تتعامل مع php . لهذا فانكى سيتوجب عليكى استخدام سيرفر يدعم php . فاذا اردتى استخدام سيرفر واحد فقط يمكنكى استعمال الطريقة الثانية التى وضحتها لكى سابقا ورفع المشروع على سيرفر واحد يدعم php
  16. نعم بالفعل يمكن استخدام php واطار عمل laravel مع اى اطار عمل للواجهات الامامية سواء react او vue او حتى angular . ويمكن تحقيق ذلك بعدة طرق : يمكنك استخدام لارافيل لتوفير apis فقط واستدعاء تلك ال apis واستخدامها فى react او اى اطار عمل اخر, ولكن هذه الطريقة ستجعل كود الواجهة الخلفية منفصل عن الواجهة الامامية ويجب رفع كل منهما على سيرفر منفصل . يمكنك استخدام مكتبات مثل vite و laravel/ui لربط react مع laravel فى نفس المشروع و هنا ستعتمد اكثر على لغة php وليس react او javasript . ونصيحتى هى استعمال الطريقة الاولى لان الطريقة الثانية ستاخذ منكى وقت اطول لتعلم مكتبة vite و laravel/ui وايضا من الممكن ان تجدى صعوبة فى بداية الامر فى فهم كيفية سير الامور. لذلك يجب انشاء مشروعين منفصلين مشروع laravel وهو الواجهة الخلفية والثانى هو react للواجهة الامامية وربطهم عن طريق ال APIS.
  17. من فضلك قم بالتعليق اسفل الدرس الذى توجد به مشكلة حيث هذا القسم الخاص بالاسئلة العامة ولا نقوم بطرح اسئلة الدورات فيه. وذلك لمساعدتك بشكل افضل . شكرا لتفهمك وبالتوفيق لك .
  18. الخطأ لديك فى هذا الملف src\hook\cart\add-to-cart-hook.js فى مشروع الواجهة الامامية . فى سطر رقم 25 . if (item.availableColors.length >= 1) هنا انت تقوم بالتحقق من طول ال availableColors و هى ليست موجودة فى المتغير item لذلك يحدت الخطأ حيث لا يمكن استدعاء الخاصية length على undifined . والحل هو التحقق اولا من وجود ال availableColors هكذا . if (item.availableColors?.length >= 1) حيث ان علامة ال ? تتحقق اولا من ان القيمة ليست null او undefined قبل تنفيذ ما بعدها وهكذا تكون قد حلت المشكلة . و قد لاحظت ان معظم الاخطاء من هذا النوع حيث لا يقوم السيرفر الخلفى بارجاع البيانات التى تستخدمها فى الواجهة الامامية لذلك يجب عليك اولا التحقق من البيانات التى تعود لك من السيرفر قبل العمل عليها.
  19. منذ الاصدار الاعلى من 2.2 فى مكتبة vite تم الغاء الوصول الى المشروع من خارج الشبكه و يمكن فقط الوصول اليه من على نفس الجهاز وذلك لاغراض الامان ولتشغيل السيرفر على الشبكه والسماح للوصول اليها من اى مكان يجب وضع host-- لتحقيق ذلك . ولا شكر على واجب انا هنا لمساعدتك اذا ما احتجت اى مساعدة
  20. نعم من الممكن ان تكون تلك المشكلة حيث يظهر فى الصورة التى ارسلتها ان ال port 80 و 81 مستخدمان . لنحاول حل اخر وهو تعديل ملف package.json سطر رقم 19 قم باضافة host-- بعد vite هكذا "start": "vite --host" وقم باعادة تشغيل السيرفر ومحاولة الدخول على الروابط التى سوف يقوم بانشائها لك .
  21. الخطأ لديك فى ملف src\hook\products\view-products-detalis-hook.js فى مشروع الواجهة الامامية . فى سطر 27 و 31 . لاحظ انك تقوم باستدعاء ال api الخاص باحضار التصنيفات (category) وهذا ال api يتطلب ان ترسل ال id الخاص بال category ولكن انت تقوم بارسال item.category وهو object يحتوى فقط على اسماء ال categories لهذا يحدث هذا الخطأ لذلك يجب حذف هذه الاسطر او تمرير لها ال id الخاص بال category ولكن سيتعين عليك تعديل السيرفر الخاص بالواجهة الخلفية لارسال ال id الخاص بال category و لكن الان الحل هو حذف هذه الاسطر هكذا. useEffect(() => { // if (item.category) // dispatch(getOneCategory(item.category)) if (item.brand) dispatch(getOneBrand(item.brand)) // if (item.category) // dispatch(getProductLike(item.category)) }, [item])
  22. ستجد فى ملف vite.config.mjs سطر رقم 51 رقم ال port الذى تريد ان يعمل عليه المشروع . ومن المحتمل ان السيرفر لا يسمح بتوفير جميع ارقام ال ports لذلك يمكنك اسبتدال ال port رقم 1001 برقم 80 وهو هو المسؤل عن تصفح المواقع عبر شبكة الانترنت ويعرف بـ HTTP واما اذا كان السيرفر لديك يدعم https فاجعل رقم ال port هو 443 وسيعمل جيدا دون مشاكل ان شاء الله . واذا لم يعمل معك هل يمكنك ارسال رسالة الخطأ التى تظهر لك.
  23. لقد لاحظت فى الاكواد انك تقوم بعمل fetch للبيانات من سيرفر localhost فى جميع الصفحات عدى صفحة ال packages وايضا اذا كنت رفعت الخادم على نفس الاستضافه ونفس مكان مشروع next.js فمن الممكن ان يكون هذا السبب فمن فضلك قم بتغير اجزاء ال fetch فى الكود لتقوم بارجاع البيانات من الخادم وليس localhost وثم قم بحذف مجلدات .next و node_modules وقم بتشغيل امر ال build ثم اعادة تشغيل السيرفر .
  24. هل الخادم (الواجهة الخلفية) خاص بك ام لا . لانه اذا لم يكن خاص بك فمن الممكن ان مالك الخادم قام بعدم تفعيل ال cors . وللتاكد من هذا يمكنك استدعاء عنوان ال api فى برنامج post man والتاكد من اذا كان يعمل ام لا . واذا كان يعمل على post man فيمكنك استخدام fetch عن طريق الخادم وليس عن طريق المتصفح .
  25. ان مشكلة ال cors تحدث حيث ان السيرفر لا يسمح باستقبال الطلبات من خارج الخادم وذلك لتوفير امان المعلومات ومنع قراءة المعلومات من مصادر مجهولة. واذا كنت تستعمل nodejs فان الامر سهل يمكنك كتابة هذه الاسطر فى ملف السيرفر للسماح بتنفيذ الطلبات من اى مصدر . const cors = require('cors'); app.use(cors());
×
×
  • أضف...