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

Mustafa Suleiman

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

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

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

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

    365

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

  1. ستجدي أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  2. دائمًا ستجد في المستند الرسمي للمكتبة أو الإطار دليل تحديث للنسخة الجديدة باسم migration guide، وكمثال بالنسبة لمكتبة react ستجد في المستند الرسمي الدليل التالي: How to Upgrade to React 18 أو يمكنك مشاهدة فيديو على اليوتيوب للتحديثات الجديدة التي تمت وفهم ما تم التخلي عنه أو أصبح قديم، لكي تقوم بتحديث مشروعك بناءًا على ذلك، لكن يجب الموازنة بين التحديث وبين استقرار المشروع فلا يعني صدور إصدار جديد أن يتم تحديث المشروع فورًا، بالطبع التحديثات الأمنية لها أولوية أخرى تلك يجب تطبيقها فورًا. ويمكنك متابعة أشخاص لهم خبرة في المجال الذي تنوي التخصص به على LinkedIn وTwitter لمتابعة التغيرات والتعلم منهم.
  3. تلك ميزة جديدة في بايثون 3.7 وما بعدها، لغرض إنشاء كلاسات تحتوي على بيانات فقط (بدون أساليب أخرى)، وتُستخدم لتخزين المعلومات التي ستتم نقلها بين أجزاء مختلفة من البرنامج أو النظام. بالتالي تُسهل إنشاء كلاسات بعدد أسطر أقل من الكود وتُنفذ بشكل ضمني بعض الأساليب الأساسية مثل __init__ و __repr__ و __eq__، وتوفر تمثيلًا نصيًا للكائنات باستخدام __repr__ ومقارنات بسيطة وتحويل البيانات إلى نماذج بيانات أخرى، مثل JSON أو CSV. تستطيع استيراد الديكوريتور @dataclass من وحدة dataclasses ثم استخدامه لتعريف كلاس بيانات: @dataclass class Person: name: str age: int email: str وذلك التعريف يُنشئ فئة Person مع ثلاثة خصائص name من نوع str، age من نوع int، و email من نوع str. ويتم التحقق من نوع البيانات تلقائيًا عند إنشاء مثيل من الفئة، وباستطاعتك تعديل الخصائص بعد إنشاء المثيل، ومقارنة مثيلات الفئة باستخدام عامل المقارنة == @dataclass class Person: name: str age: int email: str person1 = Person("Jasem", 30, "Jasem@example.com") person2 = Person("Jasem", 25, "Jasem@example.com") print(person1.name) print(person2.age) if person1 == person2: print("The persons are equal") else: print("The persons are not equal")
  4. لا حاجة لك بذلك، ما الفائدة من معرفة مكان تثبيت الحزمة؟ فليس لك حاجة بالملفات الخاصة بها. ويتم تثبيتها في مجلد بايثون في قرص الـ C في الويندوز، وذلك في مسار مشابه للتالي: C:\Users\اسم المستخدم لديك\AppData\Local\Programs\Python\Python310\Lib\site-packages ولرؤية المكتبات المثبتة global أي عالمي للاستخدام بأي مشروع استخدم الأمر: pip list ولحذف أي حزمة استخدم الأمر: pip uninstall اسم الحزمة ومن الأفضل إنشاء بيئة إفتراضية في مجلد المشروع وسيتم تثبيت المكتبات في نفس مجلد المشروع في مجلد البيئة الإفتراضية الذي يوجد به مجلد باسم lib
  5. يُحدث خلط شائع بين لغة SQL ونظم إدارة قواعد البيانات العلائقية (RDBMS)، فعلى الرغم من ارتباطهما الوثيق، إلا أنهما مفهومان مختلفان. حيث أنّ لغة SQL (Structured Query Language)، لغة برمجة معيارية تُستخدم للتفاعل مع قواعد البيانات العلائقية، وتسمح بإنشاء الجداول، وإضافة البيانات، واستردادها، وتعديلها، وحذفها، تُستخدم لكتابة أوامر مثل SELECT و INSERT و UPDATE و DELETE، أي تُعتبر لغة إعلانية، حيث تصف ما تريدين فعله بالبيانات بدلاً من شرح كيفية القيام بذلك. بينما نظام إدارة قواعد البيانات العلائقية (RDBMS)، هو برنامج لإدارة وتنظيم البيانات في قاعدة بيانات علائقية يخزن البيانات في جداول مرتبطة ببعضها البعض من خلال علاقات محددة ويُنفذ قواعد معالجة البيانات وضمان اتساقها. و أنظمة إدارة قواعد البيانات العلائقية الشائعة هي MySQL و PostgreSQL و Oracle Database و Microsoft SQL Server. الأمر بحاجة إلى تفصيل ستجديه هنا:
  6. <div> هو أشهر عنصر في لغة HTML لأنه يُستخدم لإنشاء قسم أو حاوية داخل مستند HTML، ولا يُؤثّر على محتوى أو تخطيط المستند بشكلٍ تلقائي، بل يتطلب استخدام لغة CSS لتصميمه وتحديد خصائصه، أي لتنظيم وتجميع أجزاء مختلفة من صفحة الويب وتجميع مجموعة من العناصر معاً وتطبيق تنسيقات وأنماط مشتركة عليها. ويستحوذ على كامل عرض المستند (الصفحة) بشكل إفتراضي لكونه عنصر من نوع Block. مثال لإنشاء قسم لعرض فقرة من النص: <div id="content"> <p>هذا هو محتوى الصفحة.</p> </div> ستجد تفصيل أكثر هنا:
  7. كل دورة منفصلة عن الدورة الأخرى، لكن المشترك هو أنّ المسار الأول من كل دورة متاح لك بشكل مجاني، تستطيع دراسة محتواه كما يحلو لك. ولمشاهدة باقي المحتوى الدورة يجب الإشتراك بها. ولتحديد الدورة المناسبة لك، عليك تحديد المجال الذي تريد التخصص به لترشيح الدورة المناسبة.
  8. بشكل مجاني الأفضل حاليًا هي استضافة render و vercel (تدعم بايثون 3.9 فقط) أو fly.io أو يمكنك استخدام https://appliku.com/ لتسهيل العملية أكثر. وإذا أردت استضافة قاعدة بيانات بشكل منفصل فيوجد Supabase. ومدفوع، لديك Digital Ocean و aws وHostinger
  9. صحيح، فالدورة متاحة لك مدى الحياة، ويتم تطوير الدورات بالأكاديمية كل فترة لمواكبة التطورات المستمرة في مجال البرمجة، وعامًة يمكنك الرجوع للمحتوى القديم للدورة في مسار الأرشيف بالدورة إذا أردت تفقده، لكن أنصحك بمتابعة المحتوى الجديد من البداية.
  10. الفكرة هي أن البرمجة الديناميكية تعتمد على مبدأ تكسير المشكلة إلى مشكلات فرعية أصغر، وحلّ تلك المشكلات بشكل متكرر، وتخزين الحلول للاستفادة منها في حلّ المشكلة الأصلية. بالتالي تُحسّن البرمجة الديناميكية من كفاءة الخوارزميات من خلال تقليل الوقت والمساحة اللازمين لحلّ المشكلة، والحصول على الحل الأمثل للمشكلة، وبإمكانك تطبيق البرمجة الديناميكية على مجموعة واسعة من المشكلات ذات البنية المتكررة. إذا لو المشكلة بسيطة ويمكن حلّها بسهولة باستخدام خوارزميات أخرى أكثر كفاءة، فلا داعي لاستخدام البرمجة الديناميكية، أيضًا لا تُعدّ البرمجة الديناميكية فعالة لحلّ المشكلات التي لا تتبع بنية مثالية أو متكررة، لأنه يصعب تطبيق البرمجة الديناميكية على مشكلات تتضمن قيودًا معقدة أو تعتمد على عوامل عشوائية. بجانب أنها غير مناسبة في حال كانت الموارد (مثل الذاكرة أو وقت المعالجة) محدودة.
  11. ما تريده هو العمل الحر كمدخل بيانات Data entry، لكن يجب إمتلاك مهارات في ذلك المجال وهي القدرة على التعامل الجيد مع برامج مايكروسوفت وتعديل الملفات وتخصيصها، وبالأخص برامج Excel, Word, PowerPoint. بعد ذلك تتجه لمواقع العمل الحر مثل مستقل وخمسات وطرح نماذج من أعمالك على تلك البرامج وما هي الخدمات التي تستطيع تقديمها، وتقديم العروض على المشاريع المعروضة.
  12. بالفعل الأمر غير متوفر بالـ API، سيتعين عليك القيام بذلك بنفسك من خلال تحويل الوقت، ولحسن الحظ يوجد دالة مضمنة في اللغة توفر لك ما تريد وهي toLocaleTimeString. وإليك مثال: function convertTime(timeString) { const time = new Date('1970-01-01T' + timeString + 'Z'); const options = { timeZone: 'UTC', hour12: true, hour: 'numeric', minute: 'numeric' }; return time.toLocaleTimeString('en-US', options); } let convertedTime = convertTime("16:28:00") document.getElementById('myTime').innerText = convertedTime html: <h1 id='myTime'></h1> قم باستخدام الدالة وتمرير الوقت إليها وسيتم تحويله، وتستطيع تحويل جميع الأوقات دفعة واحدة قبل استخدامها من خلال تمرير كائن أوقات الصلاة timings ومعالجته في الدالة.
  13. كل ما يتعلق بالإختبار والشهادة يتم من خلال مركز المساعدة، ولا تقلق بخصوص الرد أحيانًا يوجد ضغط، سيتم الرد عليك ونعم ستتلقى رسالة على البريد تفيد بالرد على رسالتك، أو يمكنك تفقد المحادثة الخاصة بك وستجد الرد. وإن احتجت إلى أي شيء تستطيع الاستفسار عنه بطرح الأسئلة في قسم أسئلة البرمجة إن كان عام، أو أسفل فيديو الدورة إن كان متعلق بالدورة.
  14. ما هو الـ API الذي تستخدمه؟ بالتأكيد يوجد إعداد من أجل عرض الوقت بنظام 12 وليس 24.
  15. بغض النظر عن أنّ الأمر غير مسموح به والدورة من حقك أنت فقط، لكن أنت على خير عظيم ما دمت تتحرى الحلال من الحرام وفقك الله لما فيه الخير إن شاء الله.
  16. المطلوب غير واضح، لكن إحدى الطرق هي بالإعتماد على حلقة foreach مع متغير مساعد لتتبع البيانات التي تم تكرارها مسبقًا، كالتالي: $data = array("أحمد", "علي", "محمد", "أحمد", "فاطمة"); $seen = array(); foreach ($data as $item) { if (!in_array($item, $seen)) { echo $item . "<br>"; $seen[] = $item; } } أو استخدام دالة array_unique() لإنشاء مصفوفة جديدة تحتوي فقط على العناصر الفريدة في المصفوفة الأصلية: $data = array("أحمد", "علي", "محمد", "أحمد", "فاطمة"); $uniqueData = array_unique($data); foreach ($uniqueData as $item) { echo $item . "<br>"; }
  17. تلك مجموعة من أدوات JavaScript خفيفة الوزن مصممة لتحسين تجربة المستخدم في تطبيقات Ruby on Rails، ويوفر Hotwire مجموعة من الميزات التي تجعل من السهل إنشاء تطبيقات سريعة الاستجابة وديناميكية باستخدام أداة Turbo، بالتالي تحميل صفحات الويب الجديدة دون إعادة تحميل الصفحة بأكملها، مما يوفر تجربة مستخدم أكثر سلاسة وسريعة. وتطوير تطبيقات WebSockets باستخدام أداة Stimulus تستطيع أكواد JavaScript تفاعلية دون الحاجة إلى استخدام مكتبات إضافية. وإنشاء واجهات مستخدم سهلة الاستخدام من خلال أداة Turbolinks، وذلك بتحسين تحميل الصفحات وتقديم تجربة مستخدم أكثر سلاسة. المصادر هي المستند الذي تم تطويره بواسطة مجتمع المستخدمين Community-driven documentation: https://hotwire.io/documentation أو ابحث على اليوتيوب عن hotwired guide
  18. غير متوفر مُلخصات أو ترجمة أو ملفات نصية لمحتوى الدروس بالدورات، يمكنك الإعتماد على موسوعة حسوب كمرجع لك، أو الدروس والمقالات في أكاديمية حسوب. وإذا أردت ملخص للغة أو إطار معين أو مكتبة تستطيع البحث عن cheat sheet ثم اسم اللغة مثلاُ وليكن js إذا ستبحث عن cheat sheet for js وستجد ملخصات.
  19. مساحة (عرض) العنصر الأب صغيرة إذن، أو عرض المنتجات كبيرة على المساحة، لذا عليك تحديد مساحة الثلث لكل منتج من خلال التنسيق التالي للكلاس الخاص بالمنتجات: flex-basis: 33.3333% وهو إختصار للخواص التالية: flex-grow: 0 flex-shrink: 0 flex-basis: 33.3333%
  20. أرجو الإنتظار وسيتم الرد عليك من قبل مركز المساعدة في أقرب وقت، فقد تم إرسال مشكلتك إليهم، وسأعود إليك إن كان هناك أمر عليك فعله.
  21. بالنسبةللإلتزامات قصيرة الأجل، فيجب على الشركة سدادها خلال سنة واحدة أو دورة التشغيل العادية، وتشمل أمثلة ذلك الحسابات الدائنة، وأوراق الدفع، والقروض قصيرة الأجل، والمصروفات المستحقة. والالتزامات طويلة الأجل هي الالتزامات التي تستحق الدفع بعد سنة واحدة من تاريخ الميزانية العمومية، مثل القروض طويلة الأجل، والسندات، والالتزامات الاستئجارية. تُدرج الالتزامات قصيرة الأجل وطويلة الأجل في قسم الخصوم في الميزانية العمومية. وللحصول على القيمة الدفترية للالتزامات قصيرة الأجل، عليك جمع جميع المبالغ المدرجة في قسم الخصوم المتداولة، أما القيمة الدفترية للالتزامات طويلة الأجل قم جمع جميع المبالغ المدرجة في قسم الخصوم طويلة الأجل.
  22. عليكي استخدام flex box، ثم تعيين flex-wrap لكي يتم عرض المنتجات الباقية أسفل المنتجات الأخرى عندما لا توجد مساحة في العنصر الأب، أي يتم إزاحتها على سطر جديد. أي تعيين التالي للعنصر الأب الذي يحتوي المنتجات: .wrapper{ display: flex; flex-wrap: wrap; gap: 10px; } ثم وضع المنتجات بداخله، وكل منتج يجب أن يكون بداخل div منفصل.
  23. من خلال معامل or أو and حسب طبيعة الشروط، فمعامل or يتم تنفيذ الجملة الشرطية إن تحقق أحد الشروط الثلاث، بينما and يجب تحقق جميع الشروط. ففي جافاسكريبت سيكون الأمر كالتالي: function checkAdmission(mathGrade, scienceGrade, historyGrade) { const mathRequirement = 80; const scienceRequirement = 75; const historyRequirement = 70; if (mathGrade >= mathRequirement && scienceGrade >= scienceRequirement && historyGrade >= historyRequirement) { return "مؤهل للقبول في البرنامج"; } else { return "غير مؤهل للقبول في البرنامج"; } } console.log(checkAdmission(85, 80, 75)); console.log(checkAdmission(70, 80, 60)); أما إن كان بخصوص SQL سيفيدك التالي: المعاملات المنطقية في SQL
  24. هناك مشكلة بالخادم الخاص بـ flask بسبب خطأ 500، هل يظهر خطأ معين في التيرمنال (منفذ الأوامر) الخاص بالخادم؟ وهل الخادم يعمل بشكل صحيح؟ أي قبل إرسال البيانات هل يظهر خطأ معين أم يعمل بشكل سليم؟ أيضًا تأكدي من استيراد مكتبات Flask الصحيحة: from flask import Flask, request, jsonify وتعريف نقطة النهاية POST: @app.route("/save_data", methods=["POST"]) def save_data(): # ... ثم تحليل بيانات JSON من طلب POST: data = request.get_json() ثم التفاعل مع قاعدة البيانات لحفظ البيانات وإرجاع استجابة مناسبة: return jsonify({"message": "Data saved successfully"}) وتأكدي من أنكِ ترسلين طلب POST بدلاً من طلب GET.
  25. لديك برنامج WinRAR بالفعل وهو البرنامج المسؤول عن التعامل مع الملفات المضغوطة، لفك الضغط عن ملف نضغط عليك بزر الفأرة الأيمن ثم نختر extract here أو فك الضغط هنا ليتم فك ضغط الملف في نفس المكان. ما المشكلة التي تظهر لك؟
×
×
  • أضف...