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

Mustafa Suleiman

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

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

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

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

    367

إجابات الأسئلة

  1. إجابة Mustafa Suleiman سؤال في كيف يمكنني زيادة سرعة الموقع مع استخدام صور ذات جودة عالية كانت الإجابة المقبولة   
    بالتأكيد أنت تستخدم الصور بحجمها الكامل وأيضًا لم تقم بضغطها مع استخدام صيغة مناسبة لكي لا تفقد جودتها، وتستطيع فعل ذلك من خلال الفوتشوب من خلال تصغير حجم الصور لتكون ضعف الحجم الذي تريد عرضها به، مثلاً لو تريد 500 بكسل ستكون الصورة 1000 بكسل لكي تظهر بجودة جيدة على الهواتف التي بها تقنية الـ double pixel.
    ثم حفظها بصيغة webp أو avif.
    وإذا لم ترد استخدام الفوتشوب تستطيع استخدام موقع Squoosh من خلال المتصفح، لتنفيذ ما سبق.
     
  2. إجابة Mustafa Suleiman سؤال في مشكل Human Verification عند تصفح الأكاديمية كانت الإجابة المقبولة   
    ذلك طبيعي حيث يتم تفقد الإتصال الخاص بك من وقت لآخر أثناء تصفح الأكاديمية، لكن هناك تعارض بين Salfeld و ميزة human verification في cloudflare.
    حاول تجربة استخدام vpn من أجل تمكن الدخول للموقع ثم تعطيله بعد نجاح الدخول، وهناك إضافات على المتصفح مثل Windscribe.
    https://chrome.google.com/webstore/detail/hnmpcagpplmpfojmgmnngilcnanddlhb وإن أمكن تعطيل Salfeld أثناء تصفح الأكاديمية فسيحل ذلك المشكلة.
  3. إجابة Mustafa Suleiman سؤال في ال size() function مش بتشتغل معايا  كانت الإجابة المقبولة   
    لأن دالة size() التي تستخدمها غير متوفرة في مكتبة C++ القياسية، وهناك وظائف مختلفة تسمى size() تعمل مع هياكل بيانات مختلفة، لكن تلك التي تستخدمها قد تكون خاصة بمكتبة معينة أو قد تكون وظيفة مخصصة لم تحددها.
    استخدام عامل sizeof() (للمصفوفات على غرار C) مثل numbers في الكود لديك، للحصول على عدد العناصر، ومع ذلك، لاحظ أن ذلك يرجع الحجم الكلي للمصفوفة بالبايتات، وليس عدد العناصر:
    #include <iostream> using namespace std; int main() { int numbers[] = {10, 20, 3, 30, 5, 7, 40}; int numssize = sizeof(numbers) / sizeof(numbers[0]); cout << numssize << endl; // Output: 7 return 0; } وإن كنت تستخدم عناصر من مكتبة Standard Template Library (STL) ، مثل المتجهات أو المصفوفات أو السلاسل، فتستطيع الإعتماد على دالة std::size():
    #include <iostream> #include <vector> using namespace std; int main() { vector<int> numbers = {10, 20, 3, 30, 5, 7, 40}; int numssize = std::size(numbers); cout << numssize << endl; // Output: 7 return 0; } ولو لديك وظيفة مخصصة أو مكتبة تحدد دالة size() خصيصًا لحالة استخدامك، فتحتاج إلى التأكد من أن الوظيفة مرئية في نطاق وظيفتك main()، وتحقق من مكان تعريف الوظيفة وتضمين الرؤوس أو الملفات الضرورية لإحضارها إلى النطاق.
  4. إجابة Mustafa Suleiman سؤال في إطار Next.Js هل هو باك اند أم فرونت اند ؟ كانت الإجابة المقبولة   
    الأمر محير بالفعل، ويجعلك تتسائل هل نحن بحاجة إلى واجهة خلفية عند استخدام Next.js؟
    أولاً Next.js مبني على بيئة Node.js بالفعل، أي مضمن بداخله Node.js.
    ومشاريع Next.js وNode.js تستطيع نشرهم على سيرفر عادي ولا يشترط أن نشر تطبيقات Next.js على منصة تدعم الـ serverless.
    وتستطيع من خلال Next.js إنشاء واجهة خلفية لتطبيقك بالفعل، من خلال إنشاء API's والتعامل مع قاعدة البيانات، فكما ذكرت الإطار مبني فوق بيئة Node.js.
    وبشكل مفصل لنتعرف أولاً على دورة حياة طلب الجزء الخلفي وتبدو تقريبًا كما يلي:
    المصادقة التفويض فك تسلسل الطلب (= ضمني في NodeJS / أو اللغات ديناميكية أي يحدث تلقائيًا في الخلفية) التحقق من صحة الطلب استرجاع الكائنات ذات الصلة business logic (كيفية عمل الخادم وكيفية تفاعله مع البيانات) الآثار الجانبية Side effects (ليس فقط التخزين في قاعدة البيانات، ولكن إرسال البريد الإلكتروني، واستدعاء خدمة خارجية أخرى، إلخ) ربط نموذج البيانات برد API تنطبق تلك الخطوات سواء كنت تستخدم GraphQL أو REST أو gRPC أو أي بروتوكول آخر.
    وكل ذلك تستطيع تسطيع تنفيذه من خلال Next.js لا مشكلة في ذلك، وبشكل مختصر الإطار ممتاز جدًا ويغنيك عن إنشاء واجهة خلفية بشكل منفصل في حال كان المشروع يتمحور أكثر نحو الواجهة الأمامية، أما في حالة العكس فستحتاج إلى واجهة خلفية منفصلة للتعامل مع الأمور المعقدة.
  5. إجابة Mustafa Suleiman سؤال في مشكلة في تشغيل برنامج Xampp كانت الإجابة المقبولة   
    قمت بتشغيل xampp كمسؤول وأعد الخطوات مرة ثم حاول التشغيل:
     

  6. إجابة Mustafa Suleiman سؤال في اريد داتا لتجار جمله من اين احصل عليها كانت الإجابة المقبولة   
    عليك شراء تلك الداتا أو سحبها بنفسك في حال توافرت، ابحث على جوجل عن "سحب داتا للإعلانات" وهناك مواقع توفر لك داتا بجودة عالية وأيضًا تفقد جروبات الفيس بوك المختصة بذلك.
  7. إجابة Mustafa Suleiman سؤال في شرح أنواع العلاقات في django كانت الإجابة المقبولة   
    أرجو التعليق أسفل فيديو الدورة لمساعدتك بشكل أفضل وطرح الأسئلة العامة هنا، وستجد المقالات والنقاشات التالية عونًا لك:
    وتصنف العلاقات في Django إلى ثلاثة أنواع رئيسية:
    علاقات واحد إلى واحد (One-to-One Relationships) علاقات واحد إلى كثير (One-to-Many Relationships) علاقات كثير إلى كثير (Many-to-Many Relationships) علاقات واحد إلى واحد (One-to-One Relationships)
    في علاقة واحد إلى واحد، يرتبط كل كائن من كائنين بحد أقصى بكائن واحد من الكائن الآخر، أي أن يكون لدى كل شخص بطاقة هوية واحدة، ولكن يمكن أن يكون لدى كل بطاقة هوية شخص واحد فقط.
    لنفترض أن لدينا نموذجين: Person و IdentityCard، ونريد أن نربط كل شخص ببطاقة هوية واحدة فقط، وكل بطاقة هوية بشخص واحد فقط.
    # models.py class Person(models.Model): name = models.CharField(max_length=255) identity_card = models.OneToOneField( 'IdentityCard', on_delete=models.CASCADE) class IdentityCard(models.Model): number = models.CharField(max_length=10) هنا نستخدم حقل OneToOneField لربط الكائنين. يُحدد الحقل on_delete ما يجب القيام به بالكائن المرتبط عندما يتم حذف الكائن الرئيسي، ونريد حذف الكائن المرتبط أيضًا، لذلك نستخدم on_delete=models.CASCADE.
    علاقات واحد إلى كثير (One-to-Many Relationships)
    تتيح لنا ربط كل كائن من كائن واحد بالعديد من الكائنات من كائن آخر، مثلاً لدى كل مدرس العديد من الطلاب، ولكن يمكن أن يكون لدى كل طالب مدرس واحد فقط.
    ولنفترض أن لدينا نموذجين هما Teacher و Student، ونريد أن نربط كل مدرس بالعديد من الطلاب، وكل طالب بمدرس واحد فقط.
    # models.py class Teacher(models.Model): name = models.CharField(max_length=255) students = models.ManyToManyField( 'Student', through='Enrollment') class Student(models.Model): name = models.CharField(max_length=255)  نعتمد على حقل ManyToManyField لربط الكائنين، ويُستخدم حقل through لتحديد جدول وسيط يربط الكائنين هو Enrollment.
    علاقات كثير إلى كثير (Many-to-Many Relationships)
    يرتبط كل كائن من كائنين بالعديد من الكائنات من الكائن الآخر، مثل أن يكون لدى كل كتاب العديد من المؤلفين، ويمكن أن يكون لدى كل مؤلف العديد من الكتب.
    ولنفترض أن لدينا نموذجين Book و Author، ونريد أن نربط كل كتاب بالعديد من المؤلفين، وكل مؤلف بالعديد من الكتب.
    # models.py class Book(models.Model): title = models.CharField(max_length=255) authors = models.ManyToManyField( 'Author', through='BookAuthor') class Author(models.Model): name = models.CharField(max_length=255) لاحظ حقل ManyToManyField لربط الكائنين، ويُستخدم حقل through لتحديد جدول وسيط يربط الكائنين يسمى BookAuthor.
  8. إجابة Mustafa Suleiman سؤال في مشكلة في كود بايثون كانت الإجابة المقبولة   
    ذلك يعني وجود خطأ في الكود، أرجو توفير الكود لمعرفة الخطأ
  9. إجابة Mustafa Suleiman سؤال في سبب خطأ Module not found: Error: Can't resolve 'worker_threads' كانت الإجابة المقبولة   
    قم بحذف الاستيراد التالي من ملف index.js:
    import { container } from 'webpack';  
  10. إجابة Mustafa Suleiman سؤال في مشكلة في رفع مشروع لارافيل على الانترنت كانت الإجابة المقبولة   
    بالطبع عليك تهيئة قاعدة البيانات لكن قبل ذلك عليك تغيير إصدار PHP إلى إصدار 8 من خلال الضغط على Advanced ثم PHP configuration ثم اختر  8.1 ثم Update.
    ثم عليك تهيئة قاعدة البيانات بنفس البيانات الموجودة في ملف env لديك.
    ومن المفترض أن يكون ملف .htaccess لديك كالتالي:
    <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>  
  11. إجابة Mustafa Suleiman سؤال في لا أستطيع الحصول على وظيفة بالشهادة المعتمدة التي تقدمها أكادمية حسوب في سن 11 سنة كانت الإجابة المقبولة   
    الأمر طبيعي لمن هم في سنك، فالوظيفة مرحلة مبكرة جدًا لعمرك، عليك التركيز حاليًا على تنمية مهاراتك وبناء شخصيتك بتأني وصبر فالعمر ما زال أمامك لكن لا تدع ذلك يخدعك فالسنين تمر بسرعة.
    الشهادة معتمدة بالطبع لكن لا معنى لها بدون أن تكون مستوعب لما قمت بدراسته وقادر بالفعل على توظيفه وإنشاء مشاريع برمجية، وتتميز الشهادات في أكاديمية حسوب بكونها شهادة إنهاء وإجتياز للدورة حيث يتم إختبارك بشكل شفهي وعملي من خلال مشروع أيضًا وليس مجرد الحضور وإنهاء الدورة فقط.
    وهناك فرصة أمامك في العمل الحر وستجد تفصيل هنا:
     
  12. إجابة Mustafa Suleiman سؤال في هل يمكنني التعلم لغة بايثون في عمر 11 سنة كانت الإجابة المقبولة   
    بالطبع يمكنك ذلك، وأنت حاليًا في سن صغير مثالي وهو سن 11 عام الذي يعتبر السن المناسب لتعلم البرمجة في حال أردت ذلك فقبل ذلك الأمر معقد لتفهمه .
    والحد الأدنى لتعلم البرمجة يختلف من شخص لآخر، وذلك يعتمد على مدى الاستعداد والقدرة على التعلم والتفاعل مع المواد التعليمية، ولكن الحد الأدنى الموصى به للبدء في تعلم البرمجة هو حوالي 8-10 سنوات، ويمكن للأطفال في هذا العمر أن يتعلموا البرمجة باستخدام لغات البرمجة المناسبة لهذا العمر مثل Scratch و Blockly وغيرها.
    ولا تشغل بالك بموضوع الوظيفة أو العمل، بل ركز اهتمامك على تنمية مهاراتك والاستمتاع بتعلم البرمجة فأنت أمامك الوقت لكي تتعلم ما تريد وتجربة أي شيء، وإن التزمت حقًا ستصل لمستوى ممتاز جدًا في مرحلة مبكرة وستبدأ حياتك العملية مبكرًا أيضًا.
    وستجد هنا نقاش مفصل:
     
  13. إجابة Mustafa Suleiman سؤال في ماهي افضل طريقة في نظام Windows لتحديث Node.js إلى الإصدار الأحدث ؟ كانت الإجابة المقبولة   
    من الأفضل حذف نسخة Node.js القديمة تمامًا uninstall ثم تثبيت النسخة الجديدة والتي يمكنك تحميلها من هنا:
    https://nodejs.org/en ودائمًا اختر النسخة المستقرة وهي LTS وهي إصدار 20 حاليًا.
    لكن هناك طريقة أفضل والتي يستخدمها مطوري Node.js لكن البعض قد يجدها معقدة قليلاً، وهي استخدام مدير إصدارات وهو NVM بمعنى أنه يمكنك تحميل أكثر من إصدار لـ Node والتنقل بينهم بكل سهولة باستخدام أمر بسيط.
    والأمر يتم كالتالي حذف أي إصدار Node.js لديك على حاسوبك من لوحة التحكم Control panel ثم تحميل وتثبيت NVM من:
    https://github.com/coreybutler/nvm-windows/releases/download/1.1.12/nvm-setup.exe وبعد التثبيت قم بتنفيذ الأمر التالي في منفذ الأوامر:
    nvm install lts وذلك من أجل تثبيت أحدث إصدار مستقر متوفر.
    أو يمكنك تحميل إصدار معين من خلال:
    nvm install 18 ثم قم بعرض الإصدارات الذي تم تثبيتها من خلال:
    nvm ls ولتفعيل إصدار معين اكتب رقمه فقط كالتالي:
    nvm use 18 والآن أنت على إصدار 18 وتستطيع التأكد من خلال:
    node --version وإذا أردت التنقل إلى أي إصدار اكتب nvm use ورقم الإصدار بجانبه.
  14. إجابة Mustafa Suleiman سؤال في مشكلة في كود JavaScript كانت الإجابة المقبولة   
    عليك أن تستخدم علامات الاقتباس (single or double quotes) للسلاسل النصية داخل دوال displayCart() و productContainer.innerHTML كالتالي:
    productContainer.innerHTML += ` <div class="products"> <img src="image/remove.png"> <img src="image/${item.tag}.png"> </div> <div class="price">${item.price}</div> <div class="quantity"> <img src="image/plus.png"> <span>${item.inCart}</span> <img src="image/mins.png"> </div> <div class="price-total"> ${item.price * item.inCart} </div> `; productContainer.innerHTML += ` <div class="bask"> <h4 class="baskTitle"> baskTitle </h4> <h4 class="baskTotal"> ${cartCost} </h4> </div> `; أيضًا في دالة setItems(), يجب تصحيح هذا السطر:
    localStorage.setItem("product.inCart", JSON.stringify(cartItems)); إلى:
    localStorage.setItem("productsInCart", JSON.stringify(cartItems)); وفي دالة displayCart(), صحح هذا السطر:
    let cartCost = document.querySelector('total'); إلى:
    let cartCost = document.querySelector('.baskTotal');  
  15. إجابة Mustafa Suleiman سؤال في ما هي الـ package التي تحتوي على class Point2D في جافا ؟ كانت الإجابة المقبولة   
    الحزمة هي package java.awt.geom وتحتوي على class Point2D، وتلك هي الفئة الأساسية لجميع الكائنات التي تخزن إحداثيات ثنائية الأبعاد.
    وتوفر الفئة مجموعة من الأساليب لمعالجة نقاط ثنائية الأبعاد، مثل حساب المسافة بين نقطتين وتحديد ما إذا كانت النقطة داخل شكل هندسي.
    باستطاعتك أيضًا استخدام الفئة javafx.geometry.Point2D لتمثيل نقاط ثنائية الأبعاد، وتلك الفئة متشابهة مع الفئة java.awt.geom.Point2D، ولكنها توفر بعض الميزات الإضافية، مثل دعم تنسيقات النقاط المعقدة.
    وإليك مثال على استعمال الفئة java.awt.geom.Point2D:
    import java.awt.geom.Point2D; public class Point2DExample { public static void main(String[] args) { Point2D point1 = new Point2D.Double(10, 20); Point2D point2 = new Point2D.Double(30, 40); System.out.println("Distance between points: " + point1.distance(point2)); if (point1.contains(point2)) { System.out.println("Point 2 is inside point 1"); } else { System.out.println("Point 2 is not inside point 1"); } } }
  16. إجابة Mustafa Suleiman سؤال في بعد حصولي على الشهادة, كيف يمكنني العمل في الشركة على الانترنت ؟ كانت الإجابة المقبولة   
    في مواقع التوظيف مثل LinkedIn وIndeed وBayt ومنصة بعيد، وهناك مواقع أخرى.
  17. إجابة Mustafa Suleiman سؤال في استفسار عن استعلامات قاعدة بيانات البريد الإلكتروني كانت الإجابة المقبولة   
    المطلوب هو التالي:
    1- عرض صندوق الوارد الخاص بمستخدم (أحد أعضاء المجموعة)، ويجب أن يشمل ذلك كل من رسائل البريد الإلكتروني المباشرة ورسائل البريد الإلكتروني إلى مجموعاته.
    ولعرض صندوق الوارد الخاص بمستخدم، ستحتاج إلى استعلام جدول Email وتصفية النتائج حسب عمود ReceiverID لتطابق معرف المستخدم، وستحتاج أيضًا إلى الانضمام إلى جدول UserGroup لتحديد المجموعات التي يكون المستخدم عضوًا فيها، ويمكن اعتبار أي رسائل بريد إلكتروني يتم إرسالها إلى مجموعة يكون المستخدم عضوًا فيها جزءًا من صندوق بريدهم.
    2- عرض جميع رسائل البريد الإلكتروني المرسلة بواسطة مستخدم (أحد أعضاء المجموعة) مرتبة حسب تاريخ البريد الإلكتروني.
    و ستحتاج إلى استعلام جدول Email وتصفية النتائج حسب عمود SenderID لتطابق معرف المستخدم، وتستطيع بعد ذلك فرز النتائج حسب عمود emailDate لترتيبها حسب التاريخ.
    3- عرض جميع رسائل البريد الإلكتروني في مجموعة المستخدمين
    استخدم هنا استعلام جدول Email والانضمام إلى جدول UserGroup لتحديد رسائل البريد الإلكتروني التي تم إرسالها إلى المجموعة، ثم تصفية النتائج حسب عمود GroupID لتطابق معرف المجموعة.
    4- إضافة مستخدم إلى مجموعة
    هنا عليك إدراج صف جديد في جدول UsersinGroup مع معرف المستخدم ومعرف المجموعة.
  18. إجابة Mustafa Suleiman سؤال في هل يمكن توضيح المطلوب عمله ف الجداول؟ كانت الإجابة المقبولة   
    أعتقد أن المقصود هو جدول هو "EmailSenderReceiver" ونستخدم الأمر التالي لإنشاؤه:
    CREATE TABLE EmailSenderReceiver ( emailID INT NOT NULL AUTO_INCREMENT, senderID INT NOT NULL, receiverID INT NOT NULL, subject VARCHAR(255) NOT NULL, body TEXT NOT NULL, sentDate DATETIME NOT NULL, PRIMARY KEY (emailID), FOREIGN KEY (senderID) REFERENCES Users (userID), FOREIGN KEY (receiverID) REFERENCES Users (userID) ); ,الأمر سينشئ جدولًا يسمى "EmailSenderReciver" بستة أعمدة:
    emailID: رقم تعريف البريد الإلكتروني senderID: رقم تعريف المرسل receiverID: رقم تعريف المستلم subject: موضوع البريد الإلكتروني body: نص البريد الإلكتروني sentDate: تاريخ إرسال البريد الإلكتروني يحدد المفتاح الأساسي للجدول أن كل صف يجب أن يحتوي على قيمة فريدة لـ emailID. يحدد المفتاح الخارجي لـ senderID أن senderID يجب أن يكون قيمة موجودة في جدول UsersK ,يحدد المفتاح الخارجي لـ receiverID أن receiverID يجب أن يكون قيمة موجودة في جدول Users.
  19. إجابة Mustafa Suleiman سؤال في مشكلة في تصفح الأكاديمية في ظل تفعيل برنامج Salfeld كانت الإجابة المقبولة   
    حاول تعطيل مانع الإعلانات أو تجربة متصفح آخر، وفي حال استمرار المشكلة فلا فرار من تعطيل salfeld 
  20. إجابة Mustafa Suleiman سؤال في رسم وتحريك الأشكال الهندسية باستخدام Java أو C كانت الإجابة المقبولة   
    هناك بعض المزايا التي تجعل استخدام Policies أفضل:
    تسمح Policies بفصل التحقق من Authorization عن المعالجة الفعلية للطلب، وذلك يساعد في جعل الكود أكثر قابلية للاختبار والصيانة، بمعنى تجميع جميع القواعد المتعلقة بالصلاحيات في مكان واحد بدلاً من تشتيتها في Middlewares، وأيضًا بسهولة يمكن فحص السياسات لفهم كيف يتم التحقق من الصلاحيات لنوع محدد من الموديل، مما يسهل عليك وعلى الآخرين فهم اللوجيك والتعديل عليها عند الحاجة. إعادة استخدام السياسات بسهولة في أماكن متعددة في تطبيقك، لتحقق الصلاحيات في مكان معين دون الحاجة إلى إعادة كتابة اللوجيك. تستخدم Policies للتحكم في الوصول إلى الموارد المحددة، كاستخدام Policy لتحديد ما إذا كان المستخدم مرخصًا لرؤية صفحة معينة أو إجراء عملية معينة. بإمكانك توسيع Policies بسهولة لإضافة قواعد جديدة للتحقق من Authorization. إمكانية تجاوز السياسات بسهولة الصلاحيات الأكثر تعقيدًا وتعقيدًا بناءًا على معطيات محددة، بينما تكون Middleware أقل قابلة للتعديل لتلبية حالات الاستخدام المعقدة. استخدام السياسات بشكل مباشر مع الـ Gate والـ Authorization في Laravel، مما يوفر لك أسلوبًا أكثر جمالاً للتحقق من الصلاحيات.
  21. إجابة Mustafa Suleiman سؤال في تصحيح استعلام SQL لاستبعاد قيم منفصلة في عمود معين؟ كانت الإجابة المقبولة   
    أرجو التعليق أسفل فيديو الدرس لمساعدتك بشكل أفضل.
     هناك خطأ في استعلامك، فالقيمة التي تريد استبعادها هي "four, five" ككل وليست قيمتين منفصلتين، أي يجب عليك تقسيمهما بواسطة فاصلة، وذلك باستخدام كلمة "IN" فقط لكل قيمة، كالتالي:
    SELECT * FROM school WHERE class NOT IN ('four', 'five'); بالطبع قم بتغيير اسم الجدول بما يتناسب لديك، وأيضًا لاحظ أنه في الجدول كتبت for وليس four لذلك عليك تصحيح الأمر.
  22. إجابة Mustafa Suleiman سؤال في تغيير بيانات صفحة وفق نسبة الـ سكرول كانت الإجابة المقبولة   
    الفكرة هي أنك بحاجة إلى تعديل تنسيق الـ Header عند عمل سكرول بنسبة معينة، ثم نقوم بإضافة كلاسات أخرى أو تنسيقات،  فمثلاً نستخدم الكود التالي:
    const className = "colorful"; const scrollTrigger = 60; window.onscroll = function() { if (window.scrollY >= scrollTrigger) { document.getElementsByTagName("header")[0].classList.add(className); } else { document.getElementsByTagName("header")[0].classList.remove(className); } }; طبق نفسك الفكرة بإضافة وحذف الكلاسات أو إضافة تنسيقات، فالكود السابق يقوم بإضافة كلاس colorful والذي يحمل التنسيق التالي في ملف css:
    .colorful { background-color: pink; box-shadow: 0 3px 5px 0.3px rgba(0, 0, 0, 0.1); } .colorful a { color: #0e436b; }  
  23. إجابة Mustafa Suleiman سؤال في حل خطأ "AttributeError: 'dict' object has no attribute 'NUMPY_SETUP'" عند تثبيت Gensim 3.8.3 كانت الإجابة المقبولة   
    حاول أولاً تثبيت مكتبة Wheel كالتالي:
    pip install wheel ثم حاول من جديد، وإن استمرت المشكلة حاول تثبيت مكتبة gensim من جديد وأيضًا تثبيت مكتبة pillow.
    وإن استمرت المشكلة حاول تجربة:
    pip install --use-pep517  
  24. إجابة Mustafa Suleiman سؤال في كيف اتفادى تنبيه ESLint في React عند استخدام useEffect Hook مع مصفوفة DependencyList فارغة ؟ كانت الإجابة المقبولة   
    بإمكانك تعطيل ذلك التحذير مؤقتًا باستخدام تعليق eslint-disable-next-line فوق السطر الذي يولد التحذير، كالتالي:
    useEffect(() => { // eslint-disable-next-line react-hooks/exhaustive-deps // الكود الخاص بك هنا }, []); أو إنشاء ملف باسم
    .eslintrc   في مجلد المشروع ثم وضع التالي به:
    { "plugins": ["react"], "rules": { "react-hooks/exhaustive-deps": [ "error", { "additionalHooks": ["useEffect"], "dependency-array-exclusions": ["[]"] } ] } } حيث تستخدم خاصية dependency-array-exclusions في ESLint لتستثني بعض المصفوفات من التحقق، وتستطيع استخدام تلك الخاصية لاستثناء المصفوفة الفارغة من التحقق، بحيث لا يصدر ESLint أي تنبيهات.
    وإن لم يعمل حاول تجربة الإعداد التالي:
    { "rules": { "react-hooks/exhaustive-deps": "off" } }
  25. إجابة Mustafa Suleiman سؤال في لماذا عند دخول مسار بايثون، يكتب Human Verification ولا أستخدم VPN أو بروكسي كانت الإجابة المقبولة   
    في حال استمرت المشكلة على الهاتف وعلى متصفح آخر، فذلك يعني وجود مشكلة في إتصال الإنترنت لديك، حاول إعادة تشغيل الراوتر وتركه لمدة 10 دقائق من أجل تغيير الـ IP الخاص بك، ثم أعد تشغيله، وفي حال استمرت المشكلة حاول تغيير إعدادات الـ DNS في نظام الويندوز لتصبح كالتالي:
    1.1.1.1 1.0.0.1  
×
×
  • أضف...