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

Mustafa Suleiman

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

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

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

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

    489

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

  1. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  2. ستجد في وصف الدورة التالي: وصول مدى الحياة لمحتويات الدورة تحديثات مستمرة على الدورة تحصل عليها مجانًا بالمستقبل نصائح مخصّصة لك وإرشاد بعد الدورة ضمان استرداد استثمارك خلال 6 أشهر شهادة معتمدة من أكاديمية حسوب لذا تلك من ضمن بنود الدورة التي اشتركت على أساسها، وستجد تفصيل هنا بخصوص ذلك:
  3. عند رفع مشروع بايثون على استضافة، هناك أمر لبناءالمشروع Build Command يتم تنفيذه وهو: pip install -r requirements.txt ومن خلاله يتم تثبيت جميع الحزم للازمة للمشروع من خلال ملف requirements.txt، ولا تقوم برفعها مع المشروع بل يتم تثبيتها على الاستضافة. ستجد توضيح مُفصل هنا:
  4. لأنك تستخدم قاعدة بيانات SQLite عليك تفعيل الإضافات التالية في ملف php.ini: extension=pdo_sqlite extension=sqlite3 ستجد بجانبهم فاصلة ; منقوطة قم بحذفها لتفعيل الإضافة ثم قم بالضغط على CTRL + S للحفظ. وإذا كنت لا تستخدم SQLite في لارافل 11، فقم بتعديل المتغيرات التالية في ملف .env: SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null إلى: SESSION_DRIVER=cookie SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null
  5. ومن أين سيحصل الـ ِAPI على البيانات؟ تقصد من ملف JSON مثلاً؟ الأمر يتوقف على حجم البيانات ونوعها، لكن عامًة الأفضل وجود قاعدة بيانات بسيطة على الأقل مثل SQLite وطالما أنك تستخدم فلاسك فالمشروع بسيط ولن يحتاج قاعدة بيانات معقدة عن SQLite.
  6. هل المقصود هو إنشاء list بها underscoresبطول يمثل طول الكلمة؟ سيكون الكود كالتالي: import random word = ["good", "bada"] chosen_word = random.choice(word) array = ["_" for _ in chosen_word] print(array) حيث أنّ "_" يمثل العنصر الذي سيتم إضافته مرارًا وتكرارًا إلى قائمة array من خلال for _ in. والرمز "_" بعد for هو متغير حامل لعلامة مكان لا يحمل أي قيمة فعلية ونستخدمه ببساطة للتكرار على التسلسل المقدم بعد ذلك، وتستطيعي استخدام i لا مشكلة.
  7. ما تقصده هو أدوات Low code أو No Code، وتلك الأدوات ستظل موجودة دائمًا، فليس جميع المشاريع بحاجة إلى برمجة من الصفر وتخصيص المشروع بناءًا على احتياجاته. فهناك مشاريع بسيطة بحاجة إلى أدوات جاهزة، لذا تلك المنصات موجهة لذلك، وهي مفيدة أيضًا لتنفيذ نماذج تجريبية Demos أو تصاميم أولية بشكل سريع لفكرة مشروع معين تريد تفنيذها لتجربتها أو عرضها على الفريق الذي تعمل معه أو العميل. عليك الإهتمام بتعلم الأساسيات بشكل جيد أثناء البرمجة وهي HTML, CSS, JS وعدم الإهتمام بشكل كبير بالتقنيات وبتلك المنصات، فهي متغيرة وليست ثابتة ومجرد أداة مساعدة. وستجد تفصيل أكثر هنا:
  8. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  9. ستجد توضيح شامل هنا والمكتبات المتاحة أيضًا، لكن لا حاجة لذلك فالأمر متوفر من خلال لارافل، لكن المكتبات تجعل الأمر أسهل وكود أقل بالنسبة لك.
  10. نعتمد على وظيفة only() داخل طلب HTTP للحصول على مجموعة محددة من بيانات الإدخال من الطلب. وتستقبل only() قائمة بأسماء الحقول كوسائط، وتُرجع only() مصفوفة جديدة تحتوي فقط على البيانات المحددة في تلك الحقول. وذلك لتنظيف بيانات الإدخال قبل معالجتها أو لتحديد البيانات التي يجب تخزينها في قاعدة البيانات أو لتمرير بيانات محددة إلى وظائف أو تطبيقات أخرى. $request = Illuminate\Http\Request::createFromGlobals(); $name = $request->only('name')['name']; $data = $request->only(['name', 'email']); وفي Laravel، يتم توفير مثيل Request تلقائيًا لكل وحدة تحكم، ويتيح لك الوصول بسهولة إلى بيانات الطلب، بما في ذلك $request->all() للحصول على جميع بيانات النموذج في الطلب. و $request->input('name') للحصول على قيمة حقل محدد أو $request->only(['name', 'email']) للحصول على قيم متعددة الحقول. واستخدم only() لتنظيف بيانات الإدخال قبل معالجتها مع تحديد فقط البيانات التي تحتاجها فعلاً، وتجنب استخدامها للحصول على جميع بيانات النموذج، حيث يؤدي ذلك إلى مشاكل بالأداء.
  11. تستطيع بسهولة التحقق من وجود المستخدم في قاعدة البيانات أثناء عملية المصادقة باستخدام طريقة attempt في فئة Auth مع تمرير اسم المستخدم وكلمة المرور. أولاً التحقق من وجود المستخدم كالتالي: use Illuminate\Support\Facades\Auth; $username = request('username'); $password = request('password'); $user = Auth::attempt([ 'username' => $username, 'password' => $password, ]); ثم التحقق من صحة عملية تسجيل الدخول: if ($user) { return redirect()->intended('home'); } else { return back()->withErrors([ 'username' => 'اسم المستخدم أو كلمة المرور غير صحيحة', ]); } وفي حال لم يتم العثور على المستخدم في قاعدة البيانات، بإمكانك عرض رابط لتسجيل حساب جديد: return back()->withErrors([ 'username' => 'اسم المستخدم أو كلمة المرور غير صحيحة', ])->with('register_link', route('register')); وللعلم، هناك مكتبات متاحة في Laravel تسهل عملية التحقق من وجود المستخدم في قاعدة البيانات أثناء عملية المصادقة، ومنها Laravel Sanctum وLaravel Jetstream وLaravel Fortify وlaravel/breeze. والأسهل استخدام laravel/breeze فهي مكتبة بسيطة، ولميزات مصادقة أكثر تعقيدًا، اعتمد على Laravel Jetstream أو Laravel Fortify.
  12. تلك العملية تسمى RAG، والتي تعني تحويل النصول إلى أجزاء Chunks ثم تحويل ذلك إلى صيغ رقمية Vectors حيث تخزن في قاعدة البيانات مع الجزء النصي ثم يتم عمل بحث دلالي semantic search. والفكرة هو استخراج أجزاء من النصوص المتشابهة عند كتابة شيء ما، أي يتم مقارنة ما تم كتابته مع النص الموجود في الملف كما لو أنك بحثت في جوجل، ثم بعد ذلك ترسل للـ Model الخاص بـ LLM ليفهمها ويضمنها في الـ Context، أي أنّ الفهم لم يتم عن طريق الـ LLM لكامل النصوص الموجودة في قاعدة البيانات إنما فقط لما اختاره البحث الدلالي. وهناك إمكانية لحل تلك المشكلة نسبيًا وتحسين الـ RAG من خلال استخدام مكتبة إو إطار عمل مثل DSPY.
  13. يمكنك استخدام Power Point لإنشاء مثل تلك الرسومات والعروض، ثم تحويل ذلك إلى PDF.
  14. صحيح، جافاسكريبت هي اللغة المسؤولة عن تطوير الواجهة الأمامية والحصول على أذونات من المستخدم لاستخدام موارد الجهاز، بينما PHP عملها يقتصر على الواجهة الخلفية (السيرفر) لذا لا تتعامل مع المستخدم مباشرًة، وللعلم PHP قادرة على عرض HTML في الواجهة الأمامية لأن بها templating engine حيث تكتب بداخل كود PHP كود HTML لعرضه في المتصفح.
  15. عليك استخدام integer بدلاً من int فذلك هو الاسم لنوع بيانات "رقم صحيح" ستجد تفصيل هنا: https://laravel.com/docs/11.x/migrations#creating-columns
  16. على استضافة vercel يوجد إمكانية إنشاء قاعدة بيانات وذلك غالب الحال في أغلب الاستضافات. أو تستيطع استخدام منصة supabase لقاعدة البيانات وذلك أفضل.
  17. أولاً يجب أن تختار استضافة تدعم اللغة البرمجية للمشروع، وأغلب الاستضافات التي تدعم جافاسكريبت تدعم PHP أيضًا. بخصوص الاستضافات ستجد تفصيل هنا: لذا تستطيع معرفة اللغات وبيئات التطوير المدعومة، من خلال البحث على جوجل عن : "hosting name" supported language استبدل "hosting name" باسم الاستضافة. عامًة كمطور جافاسكريبت، استخدم vercel. وابحث على اليوتيوب عن how to deploy next.js project on vercel وغير next.js باسم التقنية التي تستخدمها.
  18. نصيحتي إليك لا تستخدم xampp فقد عفى عليه الزمن، استخدام لاراجون حاليًا: https://github.com/leokhoa/laragon/releases/download/6.0.0/laragon-wamp.exe ثم شاهد شرح بسيط له على اليوتيوب
  19. من خلال الأمر التالي: composer create-project --prefer-dist laravel/laravel:^7.0 myapp
  20. أنت تستخدم إصدار 11 من لارافل والذي يتطلب إصدار 8.2 من PHP كحد أدنى، إذًا عليك تحديث نسخة PHP لديك. وذلك بتحميل الإصدار 8.3 من هنا ثم استبدال النسخة لديك في لاراجون أو Xampp والأمر أسهل في لاراجون. إليك رابط مباشر: https://windows.php.net/downloads/releases/php-8.3.7-nts-Win32-vs16-x64.zip
  21. ستجد حل لنفس المشكلة هنا: إن لم يعمل الحل الخاص بتشغيل الـ service بالضغط على العلامة التي بجانب mysql، قم بتنفيذ الحل الخاص بتغيير منفذ mysql
  22. ما هو الخطأ؟ أرجو توضيحه
  23. لا مشكلة في ذلك، طالما أن الكود خاص بك أو لديك سماحية باستخدامه كأن يكود كود متاح على GitHub مثلاً وبه رخصة تسمح بذلك مثل رخصة MIT التي تسمح باستخدام الكود وتعديله وتوزيعه لأي غرض، بما في ذلك الاستخدام التجاري ولا تتطلب رخصة MIT أي نسب أو قيود على التعديلات. أيضًا رخصة Apache 2.0 وGPLv3 أو (Creative Commons Zero (CC0. لو كان الأمر بغرض تعليمي فافعل ما تريد لا ضرر بذلك.
  24. ستحتاج إلى قراءة التالي: وعامًة بنود العقد تشمل تحديد عنوان كل طرف مع اسمه وعنوانه ورقم هاتفه وعنوان بريده الإلكتروني. شرح موجز لطبيعة الاتفاق بين الطرفين. تعريف أي مصطلحات رئيسية ستُستخدم في العقد. وصف تفصيلي للمهام والخدمات التي سيقدمها كل طرف. توضيح كيفية الدفع للمهام والخدمات، بما في ذلك المبلغ والجدول الزمني وشروط الدفع. تحديد مسؤوليات كل طرف بوضوح، بما في ذلك الالتزامات والمواعيد النهائية. تحديد ملكية أي مواد أو نتائج ناتجة عن الاتفاق. اتفاق الطرفين على الحفاظ على سرية بعض المعلومات. تحديد مدة سريان العقد. شرح شروط إنهاء العقد، بما في ذلك الإشعار المطلوب وفسخ العقد بسبب الإخلال. تحديد كيفية حل أي نزاعات قد تنشأ عن العقد. تحديد القانون المُنظم للعقد. تخصيص مكان لتوقيعات الطرفين.
×
×
  • أضف...