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

محمد_عاطف

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

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

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

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

    5

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

  1. الخطأ لديك فى العنصرين <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
  2. وعليكم السلام ورحمة الله وبركاته . ان دالة 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 تضمن لك السرعه فى ذلك الامر
  3. وعليكم السلام ورحمة الله وبركاته . الخطأ من الممكن ان يكون لاكثر من سبب ولكن السبب الاكثر شيوعا هو عدم وجود ملف php.ini لديك فى مكان تثبيت php . لذلك اولا قم بالذهاب الى مكان تنصيب Laravel Herd وقم بالذهاب لمجلد php وتاكد من وجود php.ini . اذا لم يكن موجودا ستجد ملف php.ini-development قم بتغير اسمه الى php.ini . واخبرنى بالنتيجة .
  4. وعليكم السلام ورحمة الله وبركاته. نعم بالطبع يمكنك استخدام دالة 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 او اى قوة تريدها .
  5. ان #C مع اطار ASP.NET هو الافضل من حيث الامان و سرعة الاداء وايضا ASP core يمكنك من جعل ال desktop يعمل على جميع انظمة التشغيل سواء mac او windows او حتى linux . واذا لم تكن تريد ان يتصل البرنامج بالانترنت فيمكنك من انشاء microsoft sql server على جهاز رئيسى على الشبكة و الاتصال بها من داخل الشبكة فقط دون الحاجة الى شراء server لقاعدة البيانات على الانترنت وستوفر لك .NET Core تلك الخاصية .
  6. وعليكم السلام ورحمة الله وبركاته . ان لغه php واطار عمل لارافيل هو فى الاساس لبناء تطبيقات الويب ولكن توجد مكتبات لتحويل تطبيق الويب هذا الى desktop application ولكنه فى الاساس يعتبر تطبيق ويب . وهو شئ ليس سيئا ولكنه يعتمد على ما تريده انت فافضل لغه لبرمجة ال desktop application هى C# ASP.NET . ويمكنك سؤال المبرمج هل سيقوم بانشاء تطبيق ويب وتشغيله لديك على متصفح ؟ ام سيقوم بتحويل التطبيق الى ملف يمكن تثبيته ليعمل لديك على الجهاز . واذا كان التطبيق ستستعمله على جهاز واحد فالافضل هو تطبيق الويب من وجهة نظرى .
  7. نعم يوجد خطأ اخر هو انك قمت بوضع ال 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%; }
  8. الخطأ الأول فى عنصر section الذى يحوى id يساوى Home لقد قمت باعطائه الخاصية margin-top: 150px; لهذا تجد المسافة كبيرة لذلك قم بتغيرها الى 60px وسيعمل معك . اما بالنسبة للمشكلة الثانية فانت قمت بوضع الخاصية min-height: 100%; اى تشغل اصغير طول للفيديو هو 100% . ولذلك الحل هو استخدام الخاصية height لكن اعطائها قيمة ب هكذا height: 50%;
  9. نعم من الممكن عمل عدة واجهات بالخادم لا مشكلة بذلك وتوجد عدة طرق لتلك الطريقة. فكل واجهة تجعل لها عنوان خاص بها 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 الخاص بالبائع مختلف عن الرئيسى ولكنه بالفعل على نفس السيرفر ولكن يعتبر مشروعين منفصلين . وهذا سيفيدك اذا اردت مثلا انشاء تطبيقين للموبايل تطبيق للبائع والاخر للعميل او فصل المشروعين عن بعض .
  10. ان اسئلة الاختبارات لا يتم حلها هنا على الموقع ولكن ساقوم بتوضيح الخطأ لك والطريقة لحله . وانت يججب عليك ان تكتشف الكود الصحيح . الخطا يخبرك بان الكود الخاص بك ياخذ وقتا اكثر من اللازم فان معظم مواقع ال problem solving تضع وقتا معينا لا يجب تخطيه لتنفيذ الكود . ان الكود الخاص بك صحيح ولكنه ياخذ وقتا اكثر من اللازم حيث تقوم بالتكرار على الارقام من ١ حتى n فتخيل لو ان n رقم من ٩ خانات فانه سيتم تنفيذ العديدمن الاسطر مما يستغرق وقتا كثيرا. ولذلك يجب عليك ايجاد حل او خواريزمية لا تستخدم حلقة التكرار لحل تلك المسئلة .
  11. نعم لا مشكلة . حيث ان ليس كل السيرفيرات تقوم بتشغيل لغات البرمجة المختلفة . فان السيرفيرات التى تخدم js سواء node او react لا تتعامل مع php . لهذا فانكى سيتوجب عليكى استخدام سيرفر يدعم php . فاذا اردتى استخدام سيرفر واحد فقط يمكنكى استعمال الطريقة الثانية التى وضحتها لكى سابقا ورفع المشروع على سيرفر واحد يدعم php
  12. نعم بالفعل يمكن استخدام php واطار عمل laravel مع اى اطار عمل للواجهات الامامية سواء react او vue او حتى angular . ويمكن تحقيق ذلك بعدة طرق : يمكنك استخدام لارافيل لتوفير apis فقط واستدعاء تلك ال apis واستخدامها فى react او اى اطار عمل اخر, ولكن هذه الطريقة ستجعل كود الواجهة الخلفية منفصل عن الواجهة الامامية ويجب رفع كل منهما على سيرفر منفصل . يمكنك استخدام مكتبات مثل vite و laravel/ui لربط react مع laravel فى نفس المشروع و هنا ستعتمد اكثر على لغة php وليس react او javasript . ونصيحتى هى استعمال الطريقة الاولى لان الطريقة الثانية ستاخذ منكى وقت اطول لتعلم مكتبة vite و laravel/ui وايضا من الممكن ان تجدى صعوبة فى بداية الامر فى فهم كيفية سير الامور. لذلك يجب انشاء مشروعين منفصلين مشروع laravel وهو الواجهة الخلفية والثانى هو react للواجهة الامامية وربطهم عن طريق ال APIS.
  13. من فضلك قم بالتعليق اسفل الدرس الذى توجد به مشكلة حيث هذا القسم الخاص بالاسئلة العامة ولا نقوم بطرح اسئلة الدورات فيه. وذلك لمساعدتك بشكل افضل . شكرا لتفهمك وبالتوفيق لك .
  14. الخطأ لديك فى هذا الملف 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 قبل تنفيذ ما بعدها وهكذا تكون قد حلت المشكلة . و قد لاحظت ان معظم الاخطاء من هذا النوع حيث لا يقوم السيرفر الخلفى بارجاع البيانات التى تستخدمها فى الواجهة الامامية لذلك يجب عليك اولا التحقق من البيانات التى تعود لك من السيرفر قبل العمل عليها.
  15. منذ الاصدار الاعلى من 2.2 فى مكتبة vite تم الغاء الوصول الى المشروع من خارج الشبكه و يمكن فقط الوصول اليه من على نفس الجهاز وذلك لاغراض الامان ولتشغيل السيرفر على الشبكه والسماح للوصول اليها من اى مكان يجب وضع host-- لتحقيق ذلك . ولا شكر على واجب انا هنا لمساعدتك اذا ما احتجت اى مساعدة
  16. نعم من الممكن ان تكون تلك المشكلة حيث يظهر فى الصورة التى ارسلتها ان ال port 80 و 81 مستخدمان . لنحاول حل اخر وهو تعديل ملف package.json سطر رقم 19 قم باضافة host-- بعد vite هكذا "start": "vite --host" وقم باعادة تشغيل السيرفر ومحاولة الدخول على الروابط التى سوف يقوم بانشائها لك .
  17. الخطأ لديك فى ملف 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])
  18. ستجد فى ملف vite.config.mjs سطر رقم 51 رقم ال port الذى تريد ان يعمل عليه المشروع . ومن المحتمل ان السيرفر لا يسمح بتوفير جميع ارقام ال ports لذلك يمكنك اسبتدال ال port رقم 1001 برقم 80 وهو هو المسؤل عن تصفح المواقع عبر شبكة الانترنت ويعرف بـ HTTP واما اذا كان السيرفر لديك يدعم https فاجعل رقم ال port هو 443 وسيعمل جيدا دون مشاكل ان شاء الله . واذا لم يعمل معك هل يمكنك ارسال رسالة الخطأ التى تظهر لك.
  19. لقد لاحظت فى الاكواد انك تقوم بعمل fetch للبيانات من سيرفر localhost فى جميع الصفحات عدى صفحة ال packages وايضا اذا كنت رفعت الخادم على نفس الاستضافه ونفس مكان مشروع next.js فمن الممكن ان يكون هذا السبب فمن فضلك قم بتغير اجزاء ال fetch فى الكود لتقوم بارجاع البيانات من الخادم وليس localhost وثم قم بحذف مجلدات .next و node_modules وقم بتشغيل امر ال build ثم اعادة تشغيل السيرفر .
  20. هل الخادم (الواجهة الخلفية) خاص بك ام لا . لانه اذا لم يكن خاص بك فمن الممكن ان مالك الخادم قام بعدم تفعيل ال cors . وللتاكد من هذا يمكنك استدعاء عنوان ال api فى برنامج post man والتاكد من اذا كان يعمل ام لا . واذا كان يعمل على post man فيمكنك استخدام fetch عن طريق الخادم وليس عن طريق المتصفح .
  21. ان مشكلة ال cors تحدث حيث ان السيرفر لا يسمح باستقبال الطلبات من خارج الخادم وذلك لتوفير امان المعلومات ومنع قراءة المعلومات من مصادر مجهولة. واذا كنت تستعمل nodejs فان الامر سهل يمكنك كتابة هذه الاسطر فى ملف السيرفر للسماح بتنفيذ الطلبات من اى مصدر . const cors = require('cors'); app.use(cors());
  22. وعليكم السلام ورحمة الله وبركاته . يجب عليكى تنفيذ امر npm run dev لتوليد ملفات ال assets من js و css لتشغيل المشروع . لهذا يجب تشغيل موجه اوامر جديد "cmd" وتنفيذ الامر التالى . npm run dev واعادة تحديث الصفحة وكل شئ سيعمل جيدا ان شاء الله . واخبارى بالنتيجة
  23. هل قمت برفع الملفات بعد تنفيذ امر build ام قمت بتنفيذ امر build على السيرفر ؟ حيث ان الخطأ 404 يعنى ان هذه الملفات ليست موجودة على السيرفر فتاكد من ان هذا المسار موجود لديك والملفات موجودة ايضا واذا لم تكن كذلك فقم برفع الملفات مرة اخرى . حيث ان هذه هى static اى ثابته لا تتغير فان السيرفر عند عمل build يقوم بجلب البيانات من ال apis و انشاء صفحات ثابته فحتى لو تم تغير البيانات فى قاعدة البيانات فان الملفات لن تتغير الا حينما يتم تنفيذ امر build من جديد
  24. توجد عدة دورات تقدمها اكاديمة حسوب وكل دورة لها اكثر من مسمى وظيفى خاص بها على حسب الاقسام التى قم بالانتهاء منها. اولا دورة تطوير التطبيقات باستخدام لغة Python بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة بايثون و backend devolper باطار عمل django وايضا تهيئك لمجال تحليل البيانات والذكاء الاصطناعى وتعلم الالة . وهذه الدورة اذا اردت ان تصبح مطور واجهات خلفية . ثانيا دورة تطوير التطبيقات باستخدام JavaScript بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة جافاسكريبت وتمكنك من ان تصبح مطور واجهات خلفية MERN stack وايضا تمكنك من تطوير تطبيقات الهاتف ومن الممكن ان تستعملها لتصبح FULL STACK Developer ثالثا دورة تطوير تطبيقات الويب باستخدام لغة PHP بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة php باطار عمل لارافيل و ووردبريس وهذه الدورة تؤهلك لتصبح مطور واجهات خلفية بواسطة php. رابعا دورة تطوير تطبيقات الويب باستخدام لغة Ruby عد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة ruby وهذه الدورة تؤهلك لتصبح مطور واجهات خلفية. خامسا دورة تطوير واجهات المستخدم بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور واجهات امامية . ولتصبح full stack يجب ان يكون لديك المعرفة بلغة او عدة لغات من الواجهات الخلفية و دورة تطوير الواجهات الامامية .
  25. يجب عليك تفعيل خاصية ادخال ال identity column قبل عمل اى insert بواسطة identity . SET IDENTITY_INSERT tableName ON واسبتدال كلمة tableName باسم الجدول لديك . وفي نهاية الملف بعد عمل ال insert قم بايقاف خاصية الادخال عن طريق هذا الامر . SET IDENTITY_INSERT Table1 OFF
×
×
  • أضف...