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

Mustafa Suleiman

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

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

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

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

    289

كل منشورات العضو Mustafa Suleiman

  1. بمعنى أن رخصة Apache تتطلب من المستخدمين الذين يقومون بتوزيع أو استخدام أو تعديل البرمجيات التي تم إصدارها بموجب هذه الرخصة، أن يذكروا بوضوح حقوق الملكية الفكرية للمطورين الأصليين لهذه البرمجيات. وهذا يعني أن أي شخص يستخدم أو يعدل هذه البرمجيات يجب أن يذكر بوضوح أن المطورين الأصليين لهذه البرمجيات هم أصحاب الحقوق الأصلية وأنهم قاموا بتوفير البرمجيات تحت رخصة Apache. ويمكن ذلك عن طريق وضع إشارة إلى رخصة Apache في مستند التوثيق أو ملفات المصدر أو أي مكان آخر يحتوي على المعلومات الخاصة بهذه البرمجيات. غير صحيح. على الرغم من أن رخصة GPL لا تتطلب الإشارة إلى حقوق الملكية الفكرية عند استخدام مكتبات مفتوحة المصدر، إلا أنها تتطلب ذكر الحقوق الفكرية الخاصة بها وإشارة إلى الرخصة التي تخضع لها. وعامًة، فإن توزيع البرمجيات المفتوحة المصدر يتطلب ذكر الحقوق الفكرية والإشارة إلى الرخصة التي تخضع لها، سواء كانت GPL أو رخصة أخرى. وهذا يهدف إلى حماية حقوق الملكية الفكرية وتعزيز شفافية المشروع.
  2. يتم تخزين عروض Laravel في مجلد "resources/views" في المشروع. باستطاعتك اتباع الخطوات التالية: قم بإنشاء ملف جديد بعنوان "create.blade.php" في مجلد "resources/views/projects" ، أو يمكنك إعادة تسمية ملف موجود مسبقًا باسم "create.blade.php" إلى "projects.create.blade.php". قم بفتح الملف الجديد وإضافة الشفرة الخاصة بتصميم صفحة إنشاء المشروع الخاصة بك، ويمكنك الاستفادة من ملفات العرض الأخرى في المشروع كمرجع أو استخدام أدوات تصميم الواجهات مثل Bootstrap. بمجرد إنشاء عرض projects.create بشكل صحيح ، يجب عليك التأكد من أن أي رمز يشير إلى هذا العرض في التطبيق Laravel الخاص بك يشير إلى المسار الصحيح.
  3. بالإضافة إلى ما تم شرحه، يمكنك محاولة تثبيت إصدارات LightGBM الأقدم أو الأحدث لمعرفة ما إذا كانت هذه المشكلة تنحصر في إصدار LightGBM. سبيل المثال، تثبيت الإصدار 2.3.1 بإدخال الأمر التالي: pip install lightgbm==2.3.1 ويمكن تثبيت أحدث إصدار من LightGBM باستخدام الأمر التالي: pip install --upgrade lightgbm وهناك بدائل، و Scikit-learn هي واحدة من البدائل الممكنة ل LightGBM والتي تقدم وظائف تعلم الآلة المتقدمة، حيث يمكنك استخدام Scikit-learn بسهولة من خلال تثبيتها باستخدام pip، وذلك باستخدام الأمر التالي: pip install -U scikit-learn ومن ثم استيراد المكتبة في ملفات بايثون الخاصة بك.
  4. GPL (General Public License) هي رخصة تحكم استخدام البرمجيات المفتوحة المصدر. وبخصوص الأسئلة الخاصة بك: 1- إذا لم تقم بأي استدعاء لمكتبة تحت رخصة GPL، فإنك لست ملزمًا ببيع تطبيقك تحت هذه الرخصة، فمفهوم رخصة GPL يتطلب أن يكون البرنامج المستخدم بشكل كامل تحت تلك الرخصة إذا كنت تستخدم أي جزء من البرمجيات تحت هذه الرخصة. 2- إذا استدعيت مكتبة واحدة تحت رخصة GPL في تطبيقك، فإن الرخصة تحكم باستخدام التطبيق بأكمله. يعني ذلك أن عند بيع التطبيق يجب أن يتم بيعه تحت رخصة GPL. لكن يمكنك استخدام ترخيص أخر للأجزاء الأخرى من التطبيق وفقًا لرخصتها. 3- إذا قمت بتطوير تطبيق في نظام مفتوح المصدر مثل Linux، فإنه لا يلزم بالضرورة أن يتم بيع التطبيق تحت رخصة GPL، ولكن يجب الانتباه إلى أن توزيع تطبيق يعمل على Linux يمكن أن يكون مختلفًا عن توزيع تطبيق يعمل على نظام تشغيل آخر. فقد تكون هناك بعض الاختلافات في القواعد المطبقة على توزيع التطبيق في كل نظام. وهناك العديد من أنواع التراخيص الأخرى التي يمكن استخدامها لترخيص البرمجيات والأعمال الإبداعية الأخرى، ومن بين هذه التراخيص: 1- رخصة المشاع الإبداعي (Creative Commons License): رخصة مفتوحة المصدر تسمح للمبدعين بترخيص أعمالهم الإبداعية (مثل الصور والموسيقى والأفلام والكتب) وتحديد الاستخدامات المسموح بها والمحظورة. 2- رخصة BSD: رخصة مفتوحة المصدر تسمح بتوزيع البرمجيات وتعديلها واستخدامها دون قيود، ولكنها تتطلب الإشارة إلى حقوق الملكية الفكرية وعدم استخدام اسم المطورين للترويج للمنتج. 3- رخصة MIT: رخصة مفتوحة المصدر تسمح بتوزيع البرمجيات وتعديلها واستخدامها دون قيود، وتتطلب فقط الإشارة إلى حقوق الملكية الفكرية. 4- رخصة Apache: رخصة مفتوحة المصدر تسمح بتوزيع البرمجيات وتعديلها واستخدامها دون قيود، ولكنها تضمن بعض الحماية القانونية للمطورين وتتطلب إشارة إلى حقوق الملكية الفكرية. 5- رخصة GPL: رخصة مفتوحة المصدر تسمح بتوزيع البرمجيات وتعديلها واستخدامها، ولكنها تفرض بعض القيود على استخدام البرمجيات المشتقة وتتطلب نشر البرمجيات المشتقة تحت نفس الرخصة.
  5. المشكلة في الصورة تعني أن Laravel لا يمكنه العثور على عرض projects.create المطلوب، ويتم استخدام العروض في Laravel لعرض محتوى الصفحة للمستخدم. وقد يكون هذا الخطأ ناجمًا عن عدة أسباب، مثل: عرض projects.create غير موجود في مجلد المشروع الذي تعمل عليه، قد يكون قد تم تغيير المسار الذي يتم فيه تخزين عروض المشروع. إذا كان عرض projects.create قد تم نقله أو إعادة تسميته، فإنه يجب تحديث الرمز الذي يشير إلى عرض المشروع الجديد. قد يكون هناك خطأ في اسم العرض، فتأكد من كتابة الاسم بشكل صحيح. قد يكون هناك خطأ في ملف العرض نفسه، فتأكد من أن ملف العرض يحتوي على الشفرة الصحيحة وهو بامتداد .blade.php. أيضًا تأكد من وجود ملف العرض projects.create في المسار الصحيح وبالامتداد الصحيح، وتأكد من تحديث أي رمز يشير إلى العرض الجديد بشكل صحيح. كما يمكنك استخدام أدوات تصحيح الأخطاء مثل "php artisan view:clear" لمسح ذاكرة التخزين المؤقتة وتحديث أي تغييرات جديدة في المشروع.
  6. يمكنك تجربة الحلول التالية: تحقق من أن الصورة ليست محمية بشكل غير صحيح أو تحتوي على أي عيوب أخرى قد تؤثر على القدرة على قص الصور. في بعض الأحيان، يمكن أن يحدث خطأ معين عند استخدام "Layer via Cut"، لذا يمكنك محاولة استخدام "Layer via Copy" بدلاً من ذلك. قد يكون هناك بعض الأخطاء في الإصدار الذي تستخدمه من فوتوشوب، ولذلك يمكنك محاولة تحديث البرنامج إلى أحدث إصدار. يمكن أن تتسبب الأدوات المخصصة للقص في بعض الأحيان في مشاكل في عملية القص، لذلك يمكنك محاولة إعادة تعيين هذه الأدوات. وأيضًا حاول تجربة التالي: استخدام أداة "Marquee" لتحديد المنطقة التي ترغب في نسخها أو قصها. الذهاب إلى القائمة Layer > New > Layer via Cut/Copy. النقر على Ctrl+J. ولكن في بعض الأحيان، يتم تعطيل هذه الخيارات وتصبح رمادية ولا تعمل. ويتم ذلك لأن الفوتوشوب لا يتعرف على البيكسلات التي تريد قصها أو نسخها. ولحل هذه المشكلة، هناك حلاً بسيطاً، وهو النقر بزر الماوس الأيمن على الطبقة التي توجد بها الصورة واختيار "Rasterize Layer". وبعد ذلك، يمكن استخدام أحد الخيارات السابقة لعمل نسخة من الصورة أو قصها بحرية.
  7. الأمر يعتمد على ما تريد، فإذا كنت تريد التخصص في مجال UI/UX فأنت بحاجة إلى تعلم أساسيات التصميم أولاً والألوان وخلافه ثم الإنتقال لتعلم أداة لتصميم الواجهات وأشهرها حاليًا هي Figma. وقد تم ذكر معلومات كافية عن الأمر من قبل في النقاشات التالية: كيف أصبح مصمم تجربة وواجهة مستخدم (UIUX designer )؟ الفرق بين UI & UX وهنا ستجد دروس ومقالات حول الـ UI/UX تصميم واجهة المستخدم UI تصميم تجربة المستخدم UX وهناك دورة متخصصة في تصميم واجهة المستخدم من أكاديمية حسوب. وهناك مسار آخر وهو أن تصبح مطور Front-End وقد قمت بالإجابة على نفس السؤال من قبل أيضًا وأنصحك بقراءة النقاشات والإجابات التالية لمعرفة الفرق.
  8. لا مشكلة في مشاركة الكود الخاص لمساعدتك في حل المشكلة طالما أنك تحاول جاهدًا وعملت على الكود بنفسك. وبالنسبة للصور تأكد من إضافة التالي ضمن مصفوفة rules في إعدادات webpack. { test: /\.(png|jpe?g|gif|svg)$/i, type: "asset/resource", } وبالنسبة للخطوط والأيقونات تأكد من إضافة الإعدادات التالية { test: /\.(svg|eot|woff|woff2|ttf)$/, use: ['file-loader'], } وتأكد من تحميل مكتبة font/awesome بالشكل التالي وهي للإصدار v5.5.0: npm install --save-dev @fortawesome/fontawesome-free وفي ملف index.js قم بإضافة التالي لاستيراد المكتبة: import '@fortawesome/fontawesome-free/js/fontawesome' import '@fortawesome/fontawesome-free/js/solid' import '@fortawesome/fontawesome-free/js/regular' import '@fortawesome/fontawesome-free/js/brands' بعض الأسباب التي عليك التحقق منها: قد يكون مسار الملفات غير صحيح، فإذا كان مسار ملفات font/awesome أو الصور غير صحيح، فلن يتم تحميل الملفات ولا يمكن عرضها. الإعدادات الخاصة بـ webpack.config.js: يجب التأكد من أن الإعدادات الخاصة بـ webpack.config.js صحيحة وتم تكوينها بشكل صحيح، فإذا لم يتم تكوين webpack.config.js بشكل صحيح، فلا يمكن عرض الصور والإضافات. يجب التأكد من أن الملفات مضمنة بشكل صحيح في الملف HTML الخاص بك، إذا لم يتم تضمين الملفات بشكل صحيح، فلا يمكن عرضها. قد يكون هناك مشكلات في الإضافات أو الصور نفسها، فإذا كانت الملفات تالفة أو تحتوي على أخطاء، فلا يمكن عرضها.
  9. Request cycle life عبارة عن عملية تتبعها إطار العمل Laravel عندما يتلقى طلبًا HTTP من المتصفح إلى حين تجاوز الرد على هذا الطلب، تتكون تلك الدورة من عدة مراحل وهي: تلقي الطلب: تبدأ دورة حياة الطلب في Laravel بتلقي الطلب HTTP من المتصفح عن طريق خادم الويب (مثل Apache أو Nginx). يتم تحويل الطلب إلى إطار العمل Laravel باستخدام نواة PHP وملف index.php الذي يعمل كنقطة دخول للتطبيق. التوجيه: بعد تلقي الطلب، يتم تحديد العملية أو الوظيفة التي يجب تشغيلها للرد على الطلب. يتم ذلك باستخدام المسار المحدد في عنوان URL المرسل من المتصفح. يتم تحديد الوظيفة باستخدام ملف التوجيه routes/web.php في Laravel. التحقق: بعد تحديد العملية أو الوظيفة، يتم التحقق من صحة الطلب. يتم التحقق من صحة المدخلات المرسلة في الطلب، ومن حقوق الوصول للمستخدم الذي يقوم بالطلب، ومن أي شروط أخرى يجب توافرها لإتمام العملية بنجاح. التنفيذ: بعد التحقق، يتم تنفيذ العملية أو الوظيفة المحددة. يمكن أن تشمل هذه العملية أي شيء من استرجاع البيانات من قاعدة البيانات، إلى تحديث الملفات أو إرسال رسائل البريد الإلكتروني، أو أي نوع من العمليات الأخرى. الاستجابة: بعد تنفيذ العملية بنجاح، يتم إرسال الاستجابة إلى المتصفح. يتم إنشاء الاستجابة باستخدام النموذج الخاص بـ Laravel للعرض والإخراج. يتم عادةً إنشاء الاستجابة في شكل صفحة HTML تتم عرضها على المتصفح. يتم إرسال الاستجابة إلى المتصفح باستخدام بروتوكول HTTP. وتتضمن الاستجابة عادةً رمز حالة HTTP لتحديد ما إذا كان الطلب قد تم معالجته بنجاح أم لا، ورسالة نصية توضح نتيجة الطلب. النهاية: بعد إرسال الاستجابة إلى المتصفح، تنتهي دورة حياة الطلب في Laravel وتتوقف العملية. يتم إغلاق جميع الاتصالات النشطة مع قاعدة البيانات وملفات النظام وغيرها، وتتم إعادة تعيين المتغيرات والكائنات المحددة في ذاكرة الوصول العشوائي (RAM) إلى القيم الافتراضية. يجب ملاحظة أن دورة حياة الطلب في Laravel يمكن تعديلها وتخصيصها باستخدام العديد من الأدوات والوظائف المتاحة في Laravel، ويمكن أيضًا إنشاء مراحل إضافية وفقًا لاحتياجات التطبيق المحدد. مثال بسيط يوضح دورة حياة الطلب في Laravel: // مثال بسيط عن دورة حياة الطلب في Laravel // 1. استقبال الطلب Route::get('/users', function () { // 2. الكود المعالج للطلب $users = DB::table('users')->get(); // 3. إرسال الاستجابة return view('users', ['users' => $users]); }); // 4. الإنشاء: تحديد المسار والعرض المستخدم للإدخال // 5. المعالجة: تنفيذ العملية وإنشاء الاستجابة // 6. النهاية: توقف العملية وإغلاق جميع الاتصالات النشطة في المثال، يتم استقبال طلب GET على /users، ومعالجته عن طريق الحصول على جميع المستخدمين من قاعدة البيانات وإرسالهم إلى عرض users. ثم إنشاء الاستجابة وإرسالها إلى المتصفح، وتنتهي العملية ويتم إغلاق جميع الاتصالات النشطة.
  10. يمكنك التأكد من خلال الموقع الرسمي للمكتبات التي ستقوم باستخدامها وأغلبها مجانية وتسمح لك باستخدامها تجاريًا، ويتم تخصيص جزء منها بشكل مدفوع في أغلب الأحيان. ويمكنك التأكد من خلال السؤال هنا.
  11. الأمر لا يسير بتلك الطريقة عزيزي، فجميع لغات البرمجة مجانية، لكن بعض البرامج والمكتبات بحاجة إلى تراخيص لاستخدامها تجاريًا. فلا تشغل بالك بتلك الأمور أبدًا في البداية، وقم بإنشاء المشروع الذي تريده، الأمر خاص بالشركات وليس لك، فلا تشغل بالك. أيضًا عليك باستخدام اللغة المطلوبة في سوق العمل مثل PHP وإطار العمل لارافيل ثم React.js بالنسبة للواجهة الأمامية، والأمر يتوقف على ما الذي تريده، فقد تصبح بايثون هي اللغة المناسبة لمشروعك. فلا يوجد أفضل لغة أو أسوأ لغة، الأمر أكبر من ذلك ودائمًا الإجابة ستكون الأمر "يعتمد" على المشروع واحتياجاته وأسباب أخرى. لكن لا تستخدم برامج أو مكتبات مدفوعة بطرق غير شرعية بل عليك شراء الرخصة إن كانت مدفوعة، وإن كانت مجانية فحاول تفقد على تسمح بالاستخدام التجاري وإن لم تتمكن من معرفة ذلك فلا تشغل بالك قم باستخدامها، أو يمكنك السؤال هنا وسيتم الرد عليك.
  12. مرحبًا @Abdelali Sadki في البداية أرجو منك طرح السؤال أسفل فيديو الدورة ، وطرح الأسئلة العامة هنا، شكرًا لك. الخوارزمية صحيحة، لكن يمكنك الاستغناء عن الأرقام المرتبطة بالاتجاهات واستخدام الأوامر الحركية المباشرة في الشكل الصحيح. لذلك يمكن تعديل الخوارزمية إلى الصيغة التالية: بدء المشروع. إعداد بيئة العمل: استيراد شكل المتاهة. إضافة شكل القط. إضافة شكل قطعة الخبز. عند الضغط على السهم العلوي: اتجه إلى الأمام لمدة 4 خطوات. عند الضغط على السهم السفلي: اتجه إلى الخلف لمدة 4 خطوات. عند الضغط على السهم اليمين: اتجه إلى اليمين لمدة 4 خطوات. عند الضغط على السهم اليسار: اتجه إلى اليسار لمدة 4 خطوات. عند لمس القط لحائط المتاهة: ارجع خطوة للوراء وأصدر صوت انذار. عند لمس القط لقطعة الخبز: أصدر صوت فرح وعرض رسالة "لقد ربحت!". إنهاء المشروع. ويمكنك مقارنًة الخوارزمية الخاصة بك مع الخوارزمية التي قام بها المدرب، وأيضًا يمكنك مقارنتها مع مخطط التدفق التالي الذي يوضح سير البرنامج بشكل بياني:
  13. بالتأكيد يمكن إنشاء تطبيق باستخدام Python وبيعه كتطبيق مغلق المصدر إذا كنت تستخدم مكتبات Python التي تسمح بالاستخدام التجاري غير المفتوح المصدر. بالنسبة لترخيص PSF ، فإنه يشير إلى ترخيص Python Software Foundation ، وهو ترخيص مفتوح المصدر ينص على شروط استخدام البرمجيات المرتبطة بلغة Python. ويحمي هذا الترخيص حقوق الملكية الفكرية ويتيح استخدام Python في البرامج التجارية والمفتوحة المصدر. تتميز لغة Python بترخيص مفتوح المصدر ويمكن استخدامها بحرية لتطوير التطبيقات، ومع ذلك ، يجب مراعاة تراخيص المكتبات الأخرى التي يتم استخدامها في التطبيق. يتم إصدار الإصدارات الجديدة من Python بتراخيص PSF المختلفة ، والتي قد تختلف بشكل طفيف في الشروط والأحكام. يوجد أيضًا ترخيص خاص بمكتبة Python الشهيرة "NumPy" ، والتي تستخدم على نطاق واسع في مجال العلوم والتكنولوجيا. يعتبر ترخيص PSF متوافقًا بشكل جيد مع التراخيص الأخرى المفتوحة المصدر ، مما يسهل عملية توزيع البرامج المبنية على Python بمجرد التأكد من مطابقة شروط الترخيص. بعض النقاط المتعلقة بتراخيص المكتبات وتوزيع التطبيقات: 1- تحتاج إلى التحقق من تراخيص المكتبات التي تستخدمها في تطوير التطبيقات الخاصة بك، ويمكن العثور على معلومات حول ذلك في مواقع مثل مستودع PyPI أو GitHub أو صفحة مكتبة الويب الخاصة بالمكتبة. 2- تحتاج إلى قراءة شروط ترخيص البرامج وفهمها بشكل جيد، وقد تتضمن بعض التراخيص شروطًا خاصة بالاستخدام التجاري ، وأحيانًا يكون هناك متطلبات محددة لنشر التطبيقات بمصدر مفتوح. 3- في بعض الحالات ، يمكن أن تجبرك بعض التراخيص المفتوحة المصدر على نشر التطبيق بمصدر مفتوح. ومع ذلك ، هذا ليس الحال دائمًا ، وتختلف شروط الترخيص حسب المكتبة. 4- فيما يتعلق بتوزيع التطبيقات ، فإنه يعتمد على شروط ترخيص المكتبات المستخدمة وأي شروط أخرى يتطلبها نظام التشغيل الذي تستخدمه. ومع ذلك ، يمكن أن يفيد إرفاق التطبيق بترخيص محدد لتوضيح شروط استخدامه. 5- في حالة بيع التطبيق بمصدر مغلق ، فإنك بحاجة إلى اتباع شروط ترخيص المكتبات المستخدمة وأي شروط أخرى يتطلبها نظام التشغيل الذي تستخدمه، ومع ذلك ، لا يوجد حاجة لنشر التطبيق بمصدر مفتوح ، ما لم يتطلب شروط الترخيص ذلك. 6- يمكنك اختيار ترخيصًا محددًا للتطبيق الخاص بك ، ويمكنك إرفاق نسخة من شروط الترخيص مع التطبيق لتوضيح الشروط والقيود المفروضة على استخدامه. وتوجد العديد من تراخيص البرامج المختلفة المتاحة ، بما في ذلك تراخيص مفتوحة المصدر مثل ترخيص GPL و BSD وتراخيص مغلقة المصدر مثل ترخيص تجاري.
  14. هناك مشكلة في استخدام متغير "payment" في الدالة "payment" بدون تعريفها أولاً، لذلك يجب تعريف "payment" باستخدام "Payment.objects.get(...)" قبل استخدامها في الكود. يمكن استخدام الكود التالي لتجاوز هذه المشكلة: def payment(request): payment_id = <payment_id> try: payment = Payment.objects.get(id=payment_id) except Payment.DoesNotExist: # إذا كان هناك خطأ في الدفع، يجب القيام بالإجراء المناسب هنا return HttpResponse("Payment does not exist") if payment.Delivery_Service: dist = GeoDistance("in") cal_distance = dist.query_postal_code(payment.post_code, product_detail.product_vendor.post_code) delivery_costs = cal_distance * Delivary.objects.first().price Order.objects.filter(payment=payment).update(delivery_costs=delivery_costs) else: Order.objects.filter(payment=payment).update(delivery_costs=0) context = { # تحديد context بشكل مناسب هنا } return render(request, "payment.html", context) وأرجو منك التحقق من النقاط التالية: 1- في تكلفة التوصيل، يجب استخدام نوع الحقل الصحيح لتخزين قيمة التكلفة (بدلاً من CharField): delivery_costs = models.DecimalField(default=0, max_digits=10, decimal_places=2, blank=True, null=True) 2- أيضًا استخدام القيم الحقيقية للأشياء المطلوبة بدلاً من النماذج. على سبيل المثال، يجب استخدام request.POST.get('post_code') بدلاً من Payment.post_code. 3- استخدام مؤشر على كائن Delivary بدلاً من استخدام اسم النموذج، مثل: delivery_price = Delivary.objects.get().price
  15. في البداية الأفضل استخدام نظام ويندوز بسبب التكلفة المرتفعة لأجهزة الماك وستحصل على مواصفات مرتفعة بتكلفة أقل في نظام الويندوز، وأيضًا يمكنك استخدام لينكس بجانب الويندوز. وبعد التعلم والتعمق في المجال ستتمكن من معرفة الإحتياجات والنظام والمناسب لك.
  16. تعتمد مواصفات الحاسوب المناسب لتعلم الذكاء الاصطناعي على نوع المهام والتطبيقات التي تريد تنفيذها، والحجم والتعقيدية النسبية للبيانات التي تعمل عليها. مواصفات حاسوب للذكاء الإصطناعي قبل طرح بعض المواصفات، أريد التنبيه على شيء وهو أنه منذ منتصف عقد 2010، تم تسريع تطورات الذكاء الاصطناعي والتعلم الآلي بفضل توافر تقنية تسريع المعالجة الرسومية (GPU)، ويعتبر هذا النوع من التسريع هو العامل الرئيسي والحاسم الذي ساهم في التقدم السريع في هذا المجال. وفي نهاية عام 2019، كتب الدكتور دون كينغهورن مقالًا عن تأثير شركة NVIDIA الكبير في هذا المجال. وتشير النص إلى أن معالجات الرسوميات (GPUs) توفر تحسينات كبيرة في الأداء مقارنة بمعالجات المركزية (CPUs) فيما يتعلق بتدريب النماذج العميقة للتعلم الآلي. لذلك يجب الإهتمام بشراء كرت شاشة قوي فهو القطعة الأساسية في حاسوبك. وإليك بعض الإقتراحات تبعًا للميزانية الخاصة بك. في حالة الميزانية المنخفضة الأفضل استخدام معالج يمكنه التعامل بسهولة مع بعض التعقيدات في العمليات، مثل معالج i3-I3-10100F أو أي معالج i3 من الجيل التاسع والذي لا يحتوي على وحدة معالجة رسومية مدمجة، وذلك لأن هذه المعالجات يمكن أن تؤدي المهام بشكل جيد بميزانية أقل. أيضًا أنصحك باستخدام ذاكرة وصول عشوائي (RAM) بحجم 8 جيجابايت على الأقل، وإذا لم تكن المكونات الأخرى تتوافق مع هذا المبلغ، ويمكن استخدام 4 جيجابايت من الذاكرة المؤقتًا. يوصى بشراء قرص صلب (SSD) بسعة 128 جيجابايت إذا أمكن ذلك، وجهاز تخزين (HDD) بسعة 1 تيرابايت لأداء مشاريع التعلم العميق بمستوى مقبول. وأخيرًا، يوصى باستخدام بطاقات رسومية تابعة للفئة GTX 1050 أو أي بطاقة أقل من هذا المستوى. في حالة الميزانية المتوسطة الأفضل استخدام معالج مثل i5-9400F أو Ryzen 5 من AMD، وذاكرة وصول عشوائي بين 8 إلى 16 جيجابايت، وSSD بحجم 256 جيجابايت إلى 512 جيجابايت، وجهاز تخزين HDD بسعة 1 تيرابايت إلى 2 تيرابايت، وبطاقة رسومية في نفس المستوى كـ GTX 1650 أو GTX 1660 Ti. في حالة الميزانية العالية يمكن استخدام معالجات AMD أو Intel الفائقة مثل الجيل 12 من إنتل وthreadripper من AMD، وذاكرة وصول عشوائي تتراوح بين 16 إلى 32 جيجابايت DDR4 مع تردد عالي، كما ينبغي الاهتمام بسعة التخزين التي تتراوح بين 512 جيجابايت إلى 1 تيرابايت أو أكثر من وحدات التخزين الصلبة ذات الحالة الصلبة (SSD)، بالإضافة إلى قرص صلب بسعة تصل إلى 4 تيرابايت. أما بالنسبة للبطاقات الرسومية المثالية لهذه الميزانية فغالبا ما تتوافر خيارات واسعة، ويمكن شراء بطاقات رسومية متعددة في بعض الأحيان. ويمكن اختيار بطاقات رسومية مثل GTX 1080 Ti و RTX 2080 و RTX 2080 Ti و RTX 3080 و RTX 3090 وغيرها من الخيارات الممتازة.
  17. من الصعب تحديد سبب المشكلة دونّ رؤية الكود أو ملفات المشروع، ولكن هناك عدّة أسباب قد تؤدي إلى ذلك: في البداية أنت تحتاج إلى إضافة ملف السكريبت الخاص بك داخل ملف index.html وذلك لكي يتم عرض الأخطاء أو النتيجة في الكونسول ويتم الربط كالتالي داخل عنصر head أو body: <head> <script src="script.js"></script> </head> ثم تأكد من النقاط التالية: 1- وجود أخطاء في الكود نفسه، مثل وجود خطأ في الصياغة أو في استخدام الدوال والتي من المفترض أن تظهر لك سبب الخطأ في الكونسول في المتصفح في حالة قمت بربط ملف السكريبت كما شرحت لك. 2- عدم وجود بيانات كافية لإنتاج النتيجة المتوقعة، على سبيل المثال إذا كان الكود يستخدم بيانات من مصدر خارجي وتم توفير بيانات غير كافية. 3- عدم تحديد مكان عرض النتيجة في الصفحة، أي أن الكود يعمل ولكن النتيجة لا تظهر لأنها لم تتم عرضها في الصفحة. 4- تعارض الكود مع كود آخر في الصفحة أو ملفات CSS أو JS، وهذا يؤدي إلى عدم عرض النتيجة بالشكل المطلوب.
  18. يمكنك تجربة إضافة الكود التالي في ملف composer.json : { "config": { "platform-check": false } }
  19. أحسنتي بالمحاولة، هناك بعض الأخطاء، الكود الذي قمتي بكتابته يقوم بتعكيس الكلمات في النص، وليس بتنفيذ الخطوات التي ذكرتها. لذلك، سنحتاج لتعديل الكود لتنفيذ الخطوات المذكورة، كالتالي باستخدام لغة جافا: import java.util.*; class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter a string: "); String s = input.nextLine(); Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { stack.push(s.charAt(i)); } String reversedString = ""; while (!stack.empty()) { reversedString += stack.pop(); } System.out.println("Reversed string: " + reversedString); } } يتم استخدام Scanner للحصول على النص الذي تم إدخاله من المستخدم، و تقسيم النص إلى حروف وإضافتها إلى الستاك. ثم يتم إنشاء StringBuilder لإنشاء النص الجديد المعكوس بعد ذلك يتم إزالة الحروف وإضافتها إلى StringBuilder. أخيراً طباعة النص الجديد المعكوس.
  20. من أسهل وأفضل الاستضافات التي توفر باقات مجانية هي: https://railway.app ويمكنك استخدام منفذ الأوامر CLI الخاص بها للتعامل مع الاستضافة. وأيضًا هناك استضافات أخرى لكن ليس أفضل منها، وأنصحك بقراءة النقاشات التالية: وبخصوص الدورة فقد تم شرح استضافة Heroku لكونها أفضل استضافة كانت متوفرة، لكن حاليًا لم تعد مجانية وسيتم تحديث الشرح في التحديثات القادمة لاستضافة أخرى.
  21. أرجو منك التحقق من النقاط التالية: 1- في الكلاس Payment، يجب تعيين خاصية Delivery_Service على نموذج Payment بدلاً من تعيينها على نسخة Payment. 2- في دالة payment، يجب استخدام نسخة Payment.objects.filter(...) لاسترداد طلب الدفع الذي يتم عملية الدفع له، ولا يمكن الوصول إلى الخاصية Delivery_Service مباشرة من النموذج Payment. 3- في خط Order.delivery_costs==0 ، يجب استخدام عامل الإسناد ( = ) بدلاً من عامل المساواة المزدوج ( == ). 4- يجب حفظ الطلب المحدث بعد تعيين تكلفة التوصيل. بناءً على ما سبق، يمكن تحديث الكود على النحو التالي: def payment(request): if Payment.objects.filter(id=<payment_id>, Delivery_Service=True).exists(): payment = Payment.objects.get(id=<payment_id>) dist = GeoDistance("in") cal_distance = dist.query_postal_code(payment.post_code, product_detail.product_vendor.post_code) delivery_costs = cal_distance * Delivary.objects.first().price Order.objects.filter(payment=payment).update(delivery_costs=delivery_costs) else: Order.objects.filter(payment=payment).update(delivery_costs=0) ويجب استبدال <payment_id> بمعرف الدفع الذي يتم عملية الدفع له. وأخيرًا، في العرض، يجب التحقق من وجود قيمة لتكلفة التوصيل قبل عرضها، لذلك يمكن استبدال {%if order.delivery_costs%} بـ {% if order.delivery_costs is not None and order.delivery_costs != '' %}. بعد ذلك يمكنك التحقق من النتيجة وأخبريني إذا ظهرت مشاكل أخرى.
  22. المشكلة تحدث عند استخدام خاصية غير معروفة في إعدادات Dev Server options في webpack-cli. وفي حالتك، الخاصية الغير معروفة هي 'overlay' والتي لا تتوافق مع schema الصحيحة لإعدادات Dev Server options. لحل هذه المشكلة، يمكنك إما إزالة الخاصية 'overlay' من الإعدادات، أو استخدام schema الصحيحة التي تشمل الخاصية 'overlay' كخاصية صالحة في إعدادات Dev Server options. والخيار "overlay" في webpack-dev-server يتيح لك إظهار الأخطاء والتحذيرات المتعلقة بـ webpack في مكان مرئي في صفحة الويب الخاصة بك، ويعرض هذا الخيار رسالة تنبيه تحتوي على تفاصيل الخطأ في حالة حدوث خطأ في تجميع webpack. يمكنك استخدام الخيار "overlay" في webpack.config.js على النحو التالي: module.exports = { //... devServer: { client: { overlay: { errors: true, warnings: false, }, }, }, }; وإذا استمرت المشكلة أرجو مشاركة الإعدادات في ملف webpack.config.js مع ذكر إصدار webpack هل 4 أم 5.
  23. ربما هناك مشكلة في ملف التكوين الخاص بـ Maven، أو الخطأ يحدث عندما يحاول Maven تشغيل plugin غير موجود أو غير مثبت بشكل صحيح. لحل المشكلة، يمكنك تجربة الحلول التالية: تأكد من أن Maven مثبت بشكل صحيح وأن الإصدار الذي تستخدمه متوافق مع إصدار Java الخاص بك. تحديث مشروع Maven إلى آخر إصدار من خلال تنفيذ الأمر mvn clean install في مجلد المشروع الخاص بك. تنفيذ أمر mvn clean install -U لتحديث كافة التبعيات الخاصة بمشروعك والتأكد من حصولها على أحدث الإصدارات. قم بتنزيل plugin المذكور في رسالة الخطأ بشكل يدوي باستخدام أمر mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=<path-to-plugin-jar> إذا استمرت المشكلة، يمكنك مشاركة تفاصيل أكثر حول الخطأ الذي تواجهه، ومحتوى ملفات التكوين الخاصة بك، وملف pom.xml الخاص بمشروعك لأتمكن من مساعدتك.
  24. هناك الكثير من الدروس المجانية في أكاديمية حسوب، من خلال الإطلاع على قسم دروس ومقالات وستجد محتوى قيم ودروس تطبيقية في المجالات التالية: البرمجة ريادة الأعمال العمل الحر التسويق والمبيعات التصميم DevOps البرامج والتطبيقات الشهادات المتخصصة أيضًا هناك موسوعة حسوب الخاصة بالبرمجة وبها توثيق لأشهر لغات وتقنيات البرمجة: HTML CSS Sass Bootstrap Python PHP Laravel Twig Ruby Rails JavaScript TypeScript Node.js React Next.js React Native jQuery Bash Cordova Kotlin Arduino Algorithms Design Patterns SQL Refactoring Liquid كذلك عند الإشتراك في أحد دورات حسوب يتم السماح لك بالإطلاع على القسم الأول من الدورات الأخرى وإذا أردت استكمال الدورة يمكنك الإشتراك بها.
  25. بما أن السؤال خاص بمشروع أو سؤال إمتحاني يتم ذكر الخطوات فقط، ويمكن مساعدتك في الكود إذا تم توفيره أو جزء منه. هذه هي الخطوات المطلوبة لحل السؤال باستخدام جافاسكريبت: استخدم دالة prompt() للحصول على النص الذي يدخله المستخدم. استخدم دالة split() لتحويل النص إلى مصفوفة من الأحرف. أنشئ متغيرًا جديدًا لتخزين المحتوى الذي تم إدخاله من المستخدم بطريقة معكوسة. يمكن القيام بذلك عن طريق استخدام الدالة push() لإضافة الحروف إلى الستاك ومن ثم استخدام دالة pop() لإزالة الحروف من الستاك ووضعها في المصفوفة. استخدم دالة join() لتحويل المصفوفة إلى سلسلة جديدة. استخدم دالة alert() أو console.log() لعرض النتيجة للمستخدم. مثال لأول خطوتين: // الخطوة 1 let inputString = prompt("أدخل نصاً:"); // الخطوة 2 let charArray = inputString.split("");
×
×
  • أضف...