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

Adnane Kadri

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

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

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

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

    51

كل منشورات العضو Adnane Kadri

  1. لا يتطلب استخدام PHP الأساسي تثبيت حزمة phpdotenv، ولكن يمكن أن تكون مفيدة في تكوين متغيرات البيئة لتطبيق Laravel أو أي تطبيق آخر في بيئات تطوير الويب الأخرى. اذ يتيح لك تكوين متغيرات البيئة الخاصة بتطبيقك دون الحاجة إلى تغيير الملفات المشفرة. يمكن أن تكون هذه الميزة مفيدة في إعدادات التطبيق المختلفة ، مثل بيئات التطوير والإنتاج وغيرها. ولذلك فأنت غير ملزم بتثبيتها إلا اذا دعت الحاجة لذلك، أما ان كنت تتابع احد مسارات دورة تطوير التطبيقات باستخدام لغة PHP وتم طلب ذلك منك، فأنت ستحتاج بطبيعة الحال تثبيتها لمواصلة المسار.
  2. يفرق دوما بين ثلاث أنواع من الحزم والاعتماديات في node هي كالتالي: الـ devDependencies : هي مجموع التبعيات و الحزم المطلوبة للتشغيل على بيئة التطوير، أي تلك التي يتم إستعمالها فقط أثناء التطوير أو الإصدار. بحيث تشكل مجموع الأدوات التي تساعدك على إدارة كيفية تطوير التطبيق لديك . الـ Dependencies : و هي مجموع التبعيات و الحزم التي يحتاجها مشروعك ليكون قادرًا على العمل في بيئة الإنتاج . الـ PeerDependencies : هي مجموع الحزم التي تحتاجها حزمة ما لكي تشتغل بشكل طبيعي، و نادرا ما يتم التعامل مع هاته التبعيات و الحزم. و يقصد بها أي حزمة B تتطلبه حزمة معينة A ما ولكنها لا تشمله مع نفسه عند تثبيته. كما يوجد أيضا : الـ bundledDependencies و الـ OptionalDependencies. التعارض الذي يحدث في الغالب هو بسبب تحديث التبعية او تبعية التطوير الى اصدار معين، مع عدم تواؤم اصدار الحزمة التابعة peerDep مع اصدارها. لنقل مثلا ان الحزمة A تتبع الحزمة B وتعتبرر peer dependency لها، وفي وقت ما تم تحديث اصدار A الى 1.1 ولم يتم تحديث اصدار B. عند محاولة تثبيت B يتم اخبارنا ان هنالك تعارضا فالحزمة B تتطلب الاصدار 1.0 من الحزمة A. وهكذا يتم الأمر باختصار. لتلافي مثل هاته المشكلة، نقوم بجبر التثبيت عن طريق اضافة الخيار force-- او تمكين تثبيت الحزم المتعارضة عن طريق الخيار legacy-peer-deps-- الى امر التثبيت.
  3. دورة تطوير واجهات المستخدم تركز على تعليمك المهارات والأساليب اللازمة لتصميم وتطوير واجهات المستخدم لتطبيقات الويب. اذ انك ستتعلم في هذه الدورة المفاهيم الأساسية لتصميم واجهات المستخدم باستخدام لغات الويب مثل HTML وCSS و JavaScript أو باستعمال ادوات اكثر تطورا مثل مولدات المواقع الثابتة static-site generators مثل Hugo أو محزمات الويب web bundlers مثل webpack. وستحصل على مهارات في تصميم واجهات مستخدم جذابة وسهلة الاستخدام. أما دورة تطبيقات باستخدام JavaScript فتركز على تعليم المهارات والأساليب اللازمة لتطوير تطبيقات الويب باستخدام JavaScript. اذ ستتعلم في هذه الدورة الأساسيات والمفاهيم المتقدمة للبرمجة باستخدام JavaScript و أحد أشهر مكتباتها ReactJS بجانب تعليمك NodeJS و كل ما هو مبني على جافاسكربت. والفائدة من كل دورة تعتمد على احتياجاتك واهتماماتك وأهدافك. إذا كنت ترغب في العمل كمصمم واجهات المستخدم، فإن دورة تطوير واجهات المستخدم ستكون مناسبة لك. وإذا كنت ترغب في تطوير تطبيقات الويب الشاملة، فإن دورة تطبيقات باستخدام JavaScript ستكون مناسبة لك. بعد الانتهاء من الدورات، ستحصل على المهارات والمعرفة اللازمة للعمل كمصمم واجهات المستخدم أو مطور تطبيقات الويب باستخدام JavaScript، ويمكنك العمل على تصميم وتطوير المواقع والتطبيقات الخاصة بك أو العمل في شركات التقنية كمطور أو مصمم. فيما يلي مسارات دورة تطوير واجهات المستخدم: أساسيات تطوير الويب بناء واجهة مستخدم تشبه موقع YouTube بناء صفحات هبوط تطوير متجر إلكتروني تطوير موقع شركة تطوير لوحة تحكم بناء مواقع ثابتة باستخدم Hugo تطوير موقع أخباري وفيما يلي مسارات دورة تطويرر التطبيقات باستخدام جافاسكربرت: أساسيات لغة JavaScript أساسيات React.js أساسيات Node.js تطوير تطبيق جوال باستخدام React Native تطبيق دردشة يشبه WhatsApp تطوير تطبيق سطح مكتب باستخدام Electron.js إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js تطوير تطبيق جوال للتواصل الاجتماعي باستخدام Ionic تطبيق حجز مناسبات باستخدام GraphQL
  4. زيادة على ما أشار اليها المدربون، فإنك ستحتاج في بعض الحالات تفعيل ميزة الوسوم المختصرة short_tags من خلال ملف اعداد php وهو php.ini، ابحث عن السطر الخاص بـ short_open_tag وعدله ليصبح: short_open_tag=On طبعا فإن هذا يكون في حالة تعذر اشتغال السياق التالي: <h1>Welcom <?= $UserName ?></h1>
  5. أحب دائما الاشارة إلى أن كم المادة العلمية التي يحتاجها المتعلم المبتدئ هي غالبا ما تكون محدودة ولا يحتاج الى ذاك التعمق والالمام بكامل الحيثيات، فهاته المفاهيم والجزئيات تطورت بدورها مع الوقت ولم يطلب أصلا تحصيلها في جلسات متتالية من الدراسة. بل سيجب عليه تعلمها ثم ادراكها ثم ممارستها وتطبيقها ثم التعود عليها. وهذا الأمر لا يتأتى إلا مع الوقت والصبر والممارسة، ولا يمكن بأي حال من الأحوال اختصار هاته الطريق، فكل ممن ذكرت من المحترفين في المجال قد مروا بنفس ما تمر به، وتسائلوا نفس ما تسائلت به، وأحسوا مثل ما أحسست به .. ولكنهم انشغلوا بالتطبيق والممارسة العملية بجانب التحصيل النظري والاطلاع على مواد علمية جديدة بشكل دوري. بل وحتى أن المجتمع البرمجي نفسه يمقت ويحذر من الاكتفاء بالتحصيل النظري فقط. فقد تجده مثلا يحذر من الوقوع في احد الظواهر المعروفة في المجال هي ظاهرة tutorial hell او جحيم التعلم وهو البقاء في دوامة مشاهدة الدورات والشعور بعدم الكفاءة للمارسة العملية او تطبيق ما يتعلمونه، ويحث على الممارسة والتطبيق فهي ما يتعلم الطالب خلاله فعلا. ولهذا تجد دورات الأكاديمية تركز على الشرح النظري أثناء التطبيق العملي نفسه، وتُلحق كل مسار نظري بعدة مسارات تطبيقية. ويُحثُ الطلبة دوما على القيام بأشياء معينة والتطبيق مع المدرب وما الى ذلك .. ولذلك فإنك -باختصار- لن تحتاج غير ما يقدم في الدورة التي تشترك بها فهي ستكفيك وتوفيك وتدفعك للعمل، هذا بجانب الميزات الأخرى لدورات الأكاديمية. أما بالنسبة للتحديثات ومواكبة التغييرات التي تحدث على المجال فبالطبع يتم ذلك، ويتم تحديث اي مادة علمية بعد تحديثها من قبل القائمين عليها بشكل مباشر. فالمشتركون بالاكاديمية يصلهم بريد الكتروني كل مرة يتم فيها تحديث دورة او مسار ما .. ونجد -تقريبا- في كل دورة مسارا لاحقا بعنوان "أرشيف المسارات الأقدم" يختص بالمواد العلمية التي تم تحديثها ولم يعد الطلبة مجبرون على مشاهدتها، ولا يتم حذفها -بطبيعة الحال- نهائيا لاحتمالية وجود بعض الطلبة الذين لا يزالون يشاهدون هاته المسارات. هذا بجانب التنبيه بشأن بعض الجزئيات التي يراقبها بشكل دوري فريق من المدربين المشرفين على الطلبة.
  6. تقريبا نعم، فبعض الثغرات الأمنية تقتضي كتابة شيفرات معينة لتحقيق اغراض معينة مثل هجمات ال XSS أو هجمات ال Malware فهي في الأصل ليست إلا برمجيات فقط. وبشكل عام، هي مهارات تستخدم في تحليل الأنظمة واختراقها، وذلك عادةً لأغراض غير قانونية أو غير مشروعة. وبالتالي، فإنه من الممكن أن يقوم الشخص المعني بكتابة الأكواد أو التعديل على الأكواد الموجودة للوصول إلى النظام الذي يريد اختراقه. ومع ذلك، فإن كتابة الأكواد ليست شرطا في الغالب لدخول المجال، اذ استخدام أدوات جاهزة أو انتهاج أساليب وأدوات تستخدم بدون كتابة الأكواد مباشرة، مثل استغلال الثغرات الأمنية أو الهندسة الاجتماعية وغيرها. فمهارات البرمجة وهندسة النظم -ان صح التعبير- تعد من هذا الباب نقطة اضافية plus point ولا تعد شرطا.
  7. يبدو أن الحزمة munafio/chatify تحتاج إلى حزمة pusher/pusher-php-server كحزمة تبعية بإصدارات محددة، ولكن الملف الموجود في المشروع الحالي يحتاج إلى إصدارات مختلفة من هذه الحزمة. لحل هذه المشكلة، يمكنك إما تثبيت الإصدارات الصحيحة من pusher/pusher-php-server المطلوبة في ملف composer.json الخاص بمشروعك، أو تحديد نطاق متوافق في ملف composer.json مثل "^3.4@dev"، "^7.0"، أو "^7.2" والتي تشمل الإصدارات المطلوبة. بعد ذلك، قم بتشغيل composer require munafio/chatify مرة أخرى لتثبيت الحزمة بنجاح. وكحل افضل، دع composer يقوم بتثبيت الاصدار المناسب من حزمة munafio/chatify الملائم لنسخة pusher-php-server المثبتة لديك: composer require munafio/chatify --with-all-dependencies او: composer require munafio/chatify --W
  8. المشكلة التي تحدث في شيفرتك هو انه لا يتم تجاوز قيمة result وانما يتم طباعة مجموع result و الرقم الذي تتوفر فيه الشروط فقط. جرب تعديل الكود ليصبح: #include <iostream> using namespace std; int main() { int result = 0; int num1, num2, num3, num4; cout << "Please Type 5 Number In A Row\n"; cout << "Only Even Numbers Smaller Than 20 Will Be Counted\n"; cin >> num1 >> num2 >> num3 >> num4; if (num1 < 20 && num1 % 2 == 0) { result += num1; } if (num2 < 20 && num2 % 2 == 0) { result += num2; } if (num3 < 20 && num3 % 2 == 0) { result += num3; } if (num4 < 20 && num4 % 2 == 0) { result += num4; } cout << "The sum of even numbers smaller than 20 is: " << result << endl; return 0; } تطلب الشيفرة من المستخدم إدخال 4 أرقام، ثم تقوم بفحص كل عدد إذا كان عددًا زوجيًا أقل من 20 وإذا كانت الشروط متوفرة فإنه يتم إضافة قيمة العدد إلى المتغير result. وفي الاخير طباعة هذا المجموع.
  9. يبدو أن تثبيت MariaDB الخاص بك به بعض المشاكل (إدخالات فاسدة). لا يمكن أن يتسبب phpMyAdmin في حدوث ذلكه. جرب اصلاح الخطأ عن طريق: النقر فوق قاعدة بيانات mysql في القائمة اليسرى، ثم جدول global_priv. أخيرًا، انتقل إلى علامة التبويب "العمليات" الموجودة في الجزء العلوي. قم بالنزول الى جزء صيانة الجدول "Table maintenance" اضغط repair link في تلك الصفحة لإصلاح الجدول global_priv. يفترض ان يحل هذا المشكلة،
  10. تظهر هذه الرسالة في الغالب عندما يحاول المستخدم تشغيل تطبيق يحتاج إلى مكتبة GD المرتبطة ب PHP. ومكتبة GD هي مكتبة تستخدم في توليد الصور ومعالجتها في PHP. يعتمد التطبيق على وجود هذه المكتبة للعمل بشكل صحيح. لحل هذه المشكلة، يجب تثبيت مكتبة GD على الخادم الخاص بك، وتفعيلها في PHP. يمكن القيام بذلك من خلال إضافة الحزمة المناسبة للمكتبة في نظام التشغيل الذي يستخدمه الخادم، ثم تحميل الامتداد الخاص بـ GD في PHP. يتم ذلك عادةً بإضافة السطر المناسب في ملف php.ini. ابحث عن السطر التالي: ;extension=gd وقم بالغاء تعليقه: extension=gd
  11. جرب ضبط تنسيقات sliderpreview وفق css بشكل عادي: .swiper-slide { background-position: center; background-size: cover; } او قم باسناد القيمة القيمة 0 للخاصية slidesOffsetAfter في مكون Swiper: <Swiper .. .. slidesOffsetAfter=(0)
  12. لنقل أن المهارات المطلوبة للعمل بشكل عام يمكن تقسيمها الى تفرعين كبيرين: المهارات الفنية ترجمة عن hard skills: وهي مجموع المهارات المتعلقة بمجال العمل الذي يريد المتمرن النشاط فيه، وقد ارفق الزملاء امثلة عن ذلك، من مثل: الترجمة والكتابة، البرمجة والتصميم، الاستشارة وادارة المشاريع وما الى ذلك .. المهارات الخفيفة ترجمة عن soft skills: وهي مجموع المهارات المتعلقة بالسمات الشخصية التي تساعد في انجاز العمل او تحسين انجازه، من مثل القدرة على المرونة والتكيف مع بيئات العمل والفرق المختلفة، مهارة التواصل والتحاور، مهارة ادارة الوقت والعلاقة مع العملاء .. الخ كل من هذين التفرعين يساعد في فرض تواجدك في سوق العمل بقوة، أمثلة أخرى عن مهارات فنية / تقنية hard skills: إتقان لغة ثانية أو أكثر من لغة. إدارة قواعد البيانات. إتقان العمل على برمجيات Adobe. أمن الشبكات. تسويق وتحسين محركات البحث SEM/SEO. التحليلات الإحصائية. تقنيات استخراج البيانات. تطوير تطبيقات الهواتف المحمولة. تصميم تجربة المستخدم. إدارة الحملات التسويقية والإعلانية. أنظمة تخزين البيانات وإدارتها. إتقان لغات البرمجة المختلفة (بايثون، جافا...الخ). أمثلة أخرى عن مهارات ناعمة / خفيفة soft skills: النزاهة. الاعتماد على الذات. مهارات التواصل الفعال. الانفتاح. مهارات العمل الجماعي. الإبداعية. مهارات حل المشكلات. التفكير النقدي. مهارات التكيف. مهارات التنظيم. الرغبة في التعلّم. التعاطف. ولتحديد المجال الذي تريد النشاط والعمل فيه اليك بعض الخطوات العملية: قم بعمل استقراء بسيط حول فرص العمل المتوفرة في سوق العمل الذي تريد ان تنشط فيه. اطلع على مقارنات تفرض بين تخصصين او اكثر. اسمع من خبراء كل مجال. قم بعمل دراسة بسيطة للمنافسين في المجال.
  13. ان كان الهدف هو الاحترافية اكثر في نظام وردبرس، فلا حاجة لتعلم لارافيل بعد PHP وسيمكنك الانتقال الى تعلم وردبرس بشكل مباشر. رغم ان تعلم لارافيل قد يسهل لك استيعاب الكثير من المفاهيم في نظام وردبرس مثل التعامل مع قواعد البيانات والقوالب والوحدات والاضافات وما الى ذلك. ولكن بشكل عام، سيكون عليك تعلم مفاهيم جامعة من خلال PHP قبل وردبرس من مثل البرمجة كائنية التوجه وانماط التصميم ومبادئ هندسة البرمجيات وقواعد الشيفرة النظيفة وما الى ذلك، فهي ما يعتمده وردبرس في بنيته، وتعلمها سيسهل لك الخوض في اعماق وردبرس اكثر. من جانب آخر، سيكون من الأحسن تعلم لارافيل ايضا. فهو الآخر سيزيد من قيمتك في سوق العمل، ويجعلك قادرا على العمل على مشاريع أخرى أكثر تخصصية، وهذا للميزات التي ذكرها المدربون في تعليقاتهم السابقة. الأمر الذي سيعزز من وجودك في سوق العمل.
  14. سؤالك غير واضح جيدا، ولكن ان كنت تتسائل عن امكانية تخزين بيانات باللغة العربية في قواعد البيانات فالاجابة باختصار هي: نعم. وكذلك هو الحال مع اي لغة كانت، يجب فقط الاعتبار الى استعمال الترميز المناسب مع اللغة المستهدفة (UTF-8 مثلا واللغة العربية). بالنسبة للسؤال الثاني، فنعم يمكن لنفس القاعدة البيانات أن تحتوي على بيانات مختلفة في اللغة، بشرط استخدام الترميز الصحيح للغة المختلفة. على سبيل المثال، يمكن تخزين بيانات باللغة العربية في جدول وبيانات باللغة الإنجليزية في جدول آخر في نفس القاعدة البيانات، أو يمكن تخزين البيانات المختلفة في نفس الجدول واستخدام الحقول المختلفة لكل لغة (name_ar و name_en مثلا).
  15. مرحبا محمد، لا يجب الاستعجال في التأسيس وتعلم البرمجة. فبدلاً من توفير الوقت، قد تؤدي العجلة في تعلم البرمجة إلى الفشل بالكلية. إذ أن تعلم البرمجة يتطلب الكثير من الممارسة والتدريب، وليس مجرد الحصول على معرفة نظرية. بالإضافة إلى ذلك، قد تؤدي العجلة في تعلم البرمجة إلى تجاهل بعض الأساسيات التي يمكن أن تكون أساسًا قويًا لتطوير مهارات البرمجة في المستقبل، هذا بجانب ان طبيعة هاته المفاهيم البرمجية في الغالب هي التجريد، الأمر الذي يحتاج بعض الوقت ليتم استعيابه وتعوده. لذلك، فهو من الأفضل أن تأخذ الوقت الكافي لتعلم الأساسيات ومن ثم البدء في تطوير مهارات البرمجة بشكل أعمق. يمكنك البحث عن الموارد المجانية على الإنترنت والتعلم عن طريق الكتب أو الدورات الإلكترونية. كما ينبغي أن تتدرب بانتظام وتحاول إنشاء بعض المشاريع الصغيرة التي تساعدك على تحسين مهاراتك في البرمجة. بشأن قرار صديقك بترك الدراسة الثانوية والانتقال إلى مجال البرمجة، يمكن أن يكون هذا الخيار مناسبًا لبعض الأشخاص ولكنه ليس مثاليًا للجميع. فالدراسة الجامعية وتحصيل شهادة في الحوسبة أو البرمجة قد يمنحك مهارات أكثر تخصصًا وأساسًا قويًا للعمل في هذا المجال.
  16. الشيفرة لديك تحتاج التنظيف والتنقيح، فأسماء المتغيرات لديك لا تظهر انها تحمل دلالات معينة والكتل البرمجية لديك موزعة بشكل عشوائي لا يعبر عن اي مضمون. والسبب في الغالب في عدم التعرف على المتغير باسم phi فهذا لأن phi يعرف في حلقة for كمتغير محلي لا يمكن استخدامه خارق نطاق الكتلة البرمجية الخاصة بالحلقة. فهو غير معرف خارجها. لا اعلم ما الذي تحاول القيام به على وجه التحديد، ولكن اظنك ستحتاج تصريح تعريف المتغير phi بشكل عام global ثم تجاوز قيمه باستعمال حلقة for وذلك حتى يمكن استعماله. نفس الامر بالنسبة للمتغير باسم h، قم بتصريح تعريفه واعد تجاوزه من داخل الحلقة او الشرط حتى يمكن التعرف عليه بشكل عام. اضف في الاعلى: var phi = ''; var h = [];
  17. بجانب المقترح، يمكنك ازالة الفراغات من سلسلة نصية عن طريق ازالة محارف الفراغات من بداية ونهاية السلسلة النصية، ثم من وسطها. مثال عملي: let str = " هذه النص يحتوي على فراغات زائدة "; // إزالة الفراغات من البداية والنهاية str = str.trim(); // إزالة الفراغات من وسط النص str = str.replace(/\s+/g, ' '); console.log(str); النتيجة: "هذه النص يحتوي على فراغات زائدة" لاحظ أنه تم استخدام العبارة النمطية /\s+/g لتوصيف أي مجموعة من الفراغات، وتم استخدام الدالة replace() لاستبدال هذه المجموعات بمسافة واحدة فقط.
  18. نعم يوجد، إذا كنت تريد استخدام react-router-dom في ذات الصفحة، يمكن استخدام "HashRouter" بدلاً من "BrowserRouter" في ملف الـمكون الجذر "App" أو غيره من المكونات الأبناء، وذلك للسماح بتحديد مسارات بدءًا من الرابط الحالي للموقع. على سبيل المثال: import { HashRouter, Route, Switch } from 'react-router-dom'; function App() { return ( <HashRouter> <Switch> <Route exact path="/" component={LandingPage} /> </Switch> </HashRouter> ); } سيحل هذا المشكلة.
  19. جرب استخدام مؤثر الحلقة. يمكن تعيين القيمة المراد إدخالها في كل دورة في متغير واستخدامه داخل الحلقة. وهناك عدة طرق لفعل ذلك، وإليك مثالًا بسيطًا: % تعريف المتغير الذي سنستخدمه في الحلقة x = zeros(1, 5); % حلقة for مع إدخال قيمة داخل الحلقة for i = 1:5 x(i) = input('Enter a value: '); % إدخال القيمة في كل دورة end % عرض المتغير x بعد انتهاء الحلقة disp(x); في هذا المثال، تم إنشاء متغير x الذي يحتوي على خمس عناصر (zeros(1,5))، ثم تم إنشاء حلقة for تتكون من خمس دورات (1:5). داخل الحلقة، تم استخدام دالة input لإدخال قيمة من المستخدم في كل دورة، ثم تم تعيين هذه القيمة في متغير x في مؤشر الحلقة الحالي. في النهاية، تم عرض المتغير x للتحقق من القيم التي تم إدخالها داخل الحلقة.
  20. بعد تصميم الواجهة الأمامية للموقع، يتم العمل على تطوير الواجهة الخلفية (Back-end) وربطها بقاعدة البيانات والواجهة الأمامية. وقد لا تحتاج بعض المواقع أصلا الى ذلك، من مثل مواقع صفحات الهبوط أو المواقع التعريفية او غيرها. فالتصميم والتنفيذ هو مرحلة من المراحل المهمة في تطوير منتجات الويب الرقمية. يحتاج المطور الخلفي إلى العمل بشكل متوازٍ مع المطور الأمامي في بعض الأحيان، وذلك للتأكد من ربط الواجهة الخلفية بشكل صحيح بالواجهة الأمامية، وذلك لغرض اخراج تطبيق ويب شامل. فمطور الواجهة الخلفية سيحتاج في الغالب تصدير واجهة برمجيات API ليستعملها مطور الواجهة الامامية في تصيير صفحات ويب تفاعلية ومتجاوبة. فحاجة احدهما الآخر في كثير من الاحيان غير ثابتة ومتغيرة وتتفرع الى جزئيات عديدة (الا في الفرق المنظمة جدا التي تسير على قدر عال من المنهجية ويسيرها مدير فريق محترف وملم بجزئيات المشروع وخادما لمبادئ هندسة البرمجيات). نعم، يمكن استخدام WordPress لإدارة المحتوى بعد إطلاق الموقع، ويمكن تعلم كيفية استخدامه عبر دروس على الإنترنت أو كورسات، وهو أقل تعقيدا من البرمجة الخاصة، ولكن رغم ذلك هو يحتاج بعض الالمام والخبرة. من أجل ضمان عدم حدوث مشاكل في التنسيق عند تغيير حجم الصور، يمكن استخدام تقنيات مثل تحديد حجم الصور بشكل أوتوماتيكي. فلا نعطي الصورة مثلا عرضا 1200 بكسل ان كان المقصود هو عرض الشاشة وانما نعطيها عرضا 100 بالمئة كنسبة حتى يتم اعتبار هاته النسبة من العرض الكامل بشكل تلقائي. إضافة لغات متعددة ينتهج طرقا مختلفة، ولكن بشكل عام. يتم تخزين ملفات JSON على الخادم تحوي كائنات تعرف كل كلمة وترجمتها الموافقة في لغة معينة، ثم يتم استعمال حزم من مثل i18n لحقن ما يوافق ترجمة كل كلمة من هاته الملفات. تكلفة تصميم موقع يختلف حسب حجمه ومتطلباته، وعادة ما يتم الاتفاق على التفاصيل مع المطور المختار، والتكلفة تتضمن تصميم الواجهة الأمامية والخلفية وربطهما، وقد يتم احتساب تكلفة إضافية لبعض الميزات الخاصة أو التعديلات الإضافية.
  21. انتبه الى ما تشير اليه رسالة الخطأ: caught (in promise) DOMException: play() failed because the user didn't interact with the document first. h يحدث هذا الخطأ عندما تحاول إحدى وظائف JavaScript تشغيل محتوى الصوت أو الفيديو دون أن يتفاعل المستخدم أولاً مع الصفحة. تحتوي معظم المتصفحات الحديثة على ميزة تمنع التشغيل التلقائي للوسائط دون تدخل المستخدم ، والتي تهدف إلى حماية المستخدمين من تشغيل الصوت والفيديو غير المرغوب فيه وذلك كنوع من الحماية من متصفحات الويب. تشير رسالة الخطأ إلى أن تابع التشغيل () فشل لأنه لم يبدأ من خلال تفاعل المستخدم، مثل النقر فوق زر أو ارتباط. يتم تشغيل هذا عادةً عند محاولة تشغيل الصوت أو الفيديو من خلال كود JavaScript الذي لم يتم تشغيله بواسطة حدث مستخدم ، مثل أحداث onclick أو onkeydown. ولعمل حيلة بسيطة قصد حل هاته المشكلة، سنحاول الاستماع لأحدث الأحداث التي تحدث على الوثيقة لنتصرف بناءا عليها ونقوم بتشغيل هذا الصوت، وليكن مثلا حدث تمرير المؤشر على الوثيقة، فيكون التشغيل كالتالي: document.addEventListener('mouseover' , () => { // تشغيل الصوت document.getElementById('welcome-sound').play(); }) سيعطي هذا نفس المقاربة تقريبا، اختبره.
  22. بالطبع سيحسن فهي المسؤولة عن تخزين البيانات بشكل مؤقت، وعن نفسي أتذكر اني قد لحظت فرقا كبيرا جدا في الآداء والانتاجية عندما قمت بترقية حجم الرامات من 4 الى 32 .. ولكن معظم المطورون يوصون بحجم 8 جيجابايت كحد أدنى، بينما يفضل الكثيرون استخدام 16 جيجابايت لأداء أفضل وأكثر استجابة. ومن المهم الإشارة إلى أن حجم الرام ليس العامل الوحيد الذي يؤثر على أداء الجهاز، بل يتأثر أيضاً بمعالج الكمبيوتر وسرعة القرص الصلب وكرت الشاشة وغيرها من المكونات الأخرى. لذلك، ينبغي النظر إلى المتطلبات الفعلية للتطبيقات والبرامج التي تعمل عليها وضمان توافق جميع المكونات. قم بعمل استطلاع بسيط والبحث بشأن افضل واقل المتطلبات لتشغيل برنامج معين، سيمكنك بهذا أخذ فكرة عن متطلبات البرنامج الذي تشتغل عليه. الجلوس على جهازك هو ما سيشغل حيزا كبيرا من وقتك مستقبلا، ولذلك فإنه من المهم جدا الاستثمار فيه وفي راحتك وفي انتاجيتك بدرجة أولى. فهو سرعان ما سيلحظ نتاجه.
  23. يمكن للأطفال بدء تعلم البرمجة من سن مبكرة جداً، بل وحتى في سن الروضة، عن طريق اللعب بألعاب تعليمية بسيطة تعلمهم مفاهيم أساسية في البرمجة مثل التسلسل والشروط والحلقات. مثل المقدم في مسار تعلم سكراتش في دورة علوم الحاسب في الاكاديمية. ولكن قد يقتضي تعلم البرمجة كسبا مطلقا لمبادئ الرياضيات مثل الأعداد والعمليات عليها وبعض المفاهيم المنطقية وقليلا جدا من الانجليزية (وهو ليس شرطا بل أمرا مساعدا فقط). يمكن استخدام لغات برمجة مثل Scratch وغيرها لتعليم الأطفال البرمجة بطريقة ممتعة وتفاعلية. ولكن بشكل عام، يتحكم في الموضوع عدة عوامل يمكن ان تؤثر في ذلك، على سبيل المثال اهتمام الطفل بالمجال وموهبته وقدرته على التركيز والمنطقية. من جانب آخر قد يجب على ولي أمره تشجيع الفضول فيه وحثه على الإبداع وتعزيز مهاراته في حل المشكلات، فهو ما سيحسن من انتاجيته وقدرته على الابداع اكثر.
  24. لا يمكن على وجه الحصر تحديد سبب المشكل، ولكن بشكل عام يمكن أن يتسبب في ظهور أخطاء اثناء قراءة واستدعاءات البيانات من قاعدة البيانات كل من الاحتمالات التالية: تأكد من عدم وجود خطأ في استعلام الاستدعاء الخاص بك. تأكد من أن اسم الجدول الذي تقوم بالاستدعاء منه صحيح. تأكد من أن الأعمدة التي تم تحديدها في استعلام البيانات موجودة بالفعل في الجدول وتم تسميتها بشكل صحيح. قم بقراءة نص رسالة المشكلة، وحاول فهم مدلولها فهو ما سيساعدك على حلها والعمل على ذلك.
×
×
  • أضف...