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

عبدالباسط ابراهيم

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

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

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

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

    11

أجوبة بواسطة عبدالباسط ابراهيم

  1. يمكنك استخدام ال js كما في التعليق السابق 

    // جلب القيمة المحفوظة مسبقًا في الـ localStorage
    var selectedValue = localStorage.getItem("selectedValue");
    
    // تحديد القيمة المحفوظة مسبقًا في الـ localStorage في عنصر الـ select
    var selectElement = document.getElementById("mySelect");
    selectElement.value = selectedValue;

    ولكن، هناك بعض التحسينات والإضافات التي يمكن إجراؤها على المثال السابق. يمكن استخدام الـ localStorage بشكل أكثر فعالية والتحقق من وجود القيمة المحفوظة مسبقًا في localStorage قبل تحديدها في عنصر select. فيما يلي بعض التحسينات:

    • التحقق من وجود القيمة المحفوظة مسبقًا في localStorage:

    قبل تحديد القيمة المحفوظة مسبقًا في عنصر select، يجب التحقق من وجود القيمة في localStorage أولاً باستخدام الـ if statement. هذا يساعد على تجنب تحديد قيمة فارغة في حالة عدم وجود قيمة محفوظة مسبقًا.

    if(selectedValue !== null) {
      selectElement.value = selectedValue;
    }
    • إضافة اختيار افتراضي:

    يمكن إضافة خيار افتراضي لعنصر select إذا لم يتم تحديد قيمة محفوظة مسبقًا في localStorage. يمكن استخدام الـ selectedIndex property لتحديد الخيار الافتراضي.

    if(selectedValue !== null) {
    
      selectElement.value = selectedValue;
    
    } else {
    
      selectElement.selectedIndex = 0;
    
    }

    باستخدام هذه التحسينات، يمكن جعل التطبيق أكثر فعالية ومرونة، وتجنب الأخطاء المحتملة في حالة عدم وجود قيمة محفوظة مسبقًا في localStorage.

    • شكرًا 1
  2. كما أخبرك مصطفى في التعليق السابق 

    الدورة تبدأ بشرح الأساسيات بشكل سريع في البداية ثم شرح المزيد والتعمق من خلال المشاريع العملية وهذه ميزة كبيرة ولكن حتى يصبح الأمر أكثر سهولة في تقبل المعلومات الجديدة فيجب عليك الإستفادة من المميزات الموجودة في الأكاديمية

    • .إرشادات دائمة من المدربين : وجود فريق من المدربين المختصين على مدار الساعة للإجابة على أسئلتك لذلك لديك الميزة للإستفسار عن أي شئ
    • توفير  أفضل المقالات العربية لتقرأها في حالة أردت قراءة المزيد حول موضوع معين

    • موسوعة حسوب تهدف لتوفير توثيق عربي كامل وعالي الجودة، مدعّم بالأمثلة لمختلف لغات البرمجة وتطوير الويب وتطبيقات الجوال

    لذلك أجد أنه يجد أن تواجه بعض الصعوبات .في البداية حيث يتم تعليمك بعض المفاهيم المتقدمة من خلال التطبيق العملي وهذه الطريقة في التعليم أصعب ولكن توفر لك الكثير من الفوائد مثل إختصار الوقت والمجهود لك كما أن التطبيق العملي يجعل المعلومة واضحة وغير قابلة للنسيان

  3. بالإضافة للمواقع السابقة يمكنك تجربة المواقع التالية

    • TemplateMonster: يحتوي هذا الموقع على مجموعة كبيرة من القوالب الجاهزة للعمل على النظم الخلفية، ويمكن البحث فيه عن القوالب المجانية أو الدفعية.
    • Freefrontend: هذا الموقع يحتوي على العديد من القوالب الجاهزة للعمل على النظم الخلفية، مثل HTML وCSS وJavaScript وReact وAngular وVue وغيرها، ويمكن البحث فيه عن القوالب المجانية.
    • HTML5 Up: يحتوي هذا الموقع على مجموعة من القوالب الجاهزة للعمل على النظم الخلفية، ويمكن البحث فيه عن القوالب المجانية.
    • Colorlib: يحتوي هذا الموقع على مجموعة كبيرة من القوالب الجاهزة للعمل على النظم الخلفية، ويمكن البحث فيه عن القوالب المجانية أو الدفعية.
    •  Theme Forest: يحتوي هذا الموقع على مجموعة كبيرة من القوالب الجاهزة للعمل على النظم الخلفية، ويمكن البحث فيه عن القوالب المجانية أو الدفعية.
    • W3Layouts: يحتوي هذا الموقع على مجموعة كبيرة من القوالب الجاهزة للعمل على النظم الخلفية، مثل HTML وCSS وJavaScript وReact وAngular وVue وغيرها، ويمكن البحث فيه عن القوالب المجانية.
    • Creative Tim: يحتوي هذا الموقع على مجموعة كبيرة من القوالب الجاهزة للعمل على النظم الخلفية، مثل Bootstrap وMaterial Design وTailwind وVue وغيرها، ويمكن البحث فيه عن القوالب المجانية.

     

  4. هناك العديد من البوتات المفيدة والممتعة في ديسكورد، وهذه بعض الأمثلة عليها:

    • Rythm Bot: هذا البوت يعتبر واحداً من أشهر بوتات الموسيقى في ديسكورد، حيث يمكن استخدامه لتشغيل الموسيقى في الخادم والتحكم في قائمة التشغيل والتحكم في الصوت وغيرها.
    • MEE6 Bot: هذا البوت يوفر العديد من الأدوات المفيدة لإدارة الخادم، مثل تعيين الصلاحيات وتشكيل القنوات وإرسال الإعلانات والرسائل التلقائية وغيرها.
    • Dank Memer Bot: هذا البوت يوفر العديد من الألعاب والتحديات الممتعة في الخادم، بالإضافة إلى إمكانية استخدامه للحصول على صور ومقاطع فيديو مضحكة.
    • Translate Bot: هذا البوت يوفر العديد من الخدمات المفيدة، مثل ترجمة النصوص من لغة إلى أخرى وتحويل العملات والوحدات والوقت.
    • Giveaway Bot: هذا البوت يمكن استخدامه لإجراء مسابقات وجوائز في الخادم، حيث يمكن للمستخدمين المشاركة في المسابقات والفوز بالجوائز المختلفة.
    • Security Bot: هذا البوت يقوم بحماية الخادم من الهجمات المختلفة والتحقق من صحة حسابات المستخدمين ومنح الصلاحيات وفقاً لذلك.
    • Weather Bot: هذا البوت يمكن استخدامه للحصول على تقارير الطقس في المناطق المختلفة، حيث يمكن للمستخدمين الحصول على معلومات حول درجات الحرارة والرطوبة وسرعة الرياح وغيرها.
    • Poll Bot: هذا البوت يمكن استخدامه لإجراء استطلاعات الرأي في الخادم، حيث يمكن للمستخدمين إنشاء استطلاعات الرأي والتصويت عليها.
    • Trivia Bot: هذا البوت يمكن استخدامه لإجراء أسئلة مسابقة والتحديات في الخادم، حيث يمكن للمستخدمين المشاركة في المسابقات والفوز بالجوائز المختلفة.
    •  Cleverbot: هذا البوت يستخدم تقنية الذكاء الاصطناعي للتفاعل مع المستخدمين في الخادم والرد على أسئلتهم واستفساراتهم.
    • Reddit Bot: هذا البوت يمكن استخدامه للحصول على المنشورات والمواضيع الشائعة في موقع Reddit، حيث يمكن للمستخدمين تصفح المواضيع والمنشورات والتفاعل معها في الخادم.
    • Quote Bot: هذا البوت يمكن استخدامه لإضافة اقتباسات وحكم وأقوال مشهورة إلى الخادم، حيث يمكن للمستخدمين الاستمتاع بقراءة ومشاركة الحكم والأقوال المختلفة.
    • Dice Bot: هذا البوت يمكن استخدامه لإجراء ألعاب النرد في الخادم، حيث يمكن للمستخدمين اللعب مع بعضهم البعض أو مع البوت.
  5. في الواقع، الثوابت في جافاسكريبت لا يمكن تغيير قيمتها بعد ان تم تعريفها، وهذا ما يميزها عن المتغيرات. ولكن في الكود الذي وضعته، لم تقم بتعريف الثابت باستخدام الكلمة الأساسية "const"، بل استخدمت "let" أو "var" وهما يستخدمان لتعريف المتغيرات كما وضح مصطفى في التعليق السابق.

    لذلك، فإن القيام بتغيير قيمة المتغير في هذه الحالة ممكن. ولكن إذا كنت تحاول تغيير قيمة الثابت الذي تم تعريفه باستخدام const، سيتم إرجاع خطأ في وحدة التحكم بالمتصفح (console) ولن تتمكن من تغيير قيمته. 

    لذلك، يجب دائمًا استخدام "const" لتعريف الثوابت إذا كنت تريد تأكيد عدم القدرة على تغيير قيمتها فيما بعد.

    ولكن لماذا  المتغيرات الثابتة const في جافاسكريبت لا نستطيع تغيير قيمتها ما الإستفادة من ذلك ؟

    • منع التغيير العرضي: باستخدام الثوابت const، يمكن منع تغيير القيم الثابتة خلال تنفيذ البرنامج، وبالتالي تجنب الأخطاء الناتجة عن التغييرات العرضية غير المتوقعة في القيم.
    • تحسين القراءة والفهم: باستخدام الثوابت const، يمكن تحسين قراءة وفهم الكود، حيث يمكن التعرف بسرعة على القيم الثابتة والتي لن تتغير خلال تنفيذ البرنامج.
    • تحسين الأداء: يمكن أن يؤدي استخدام الثوابت const إلى تحسين الأداء، حيث تتم معالجة الثوابت في وقت الترجمة وليس في وقت التنفيذ، مما يجعل البرنامج أسرع.
    • تقليل الأخطاء: باستخدام الثوابت const، يمكن تقليل الأخطاء الناتجة عن تغيير القيم الثابتة بالخطأ، مما يجعل البرنامج أكثر موثوقية.
    • المساعدة في الصيانة: باستخدام الثوابت const، يمكن تسهيل عملية الصيانة والتعديل على البرنامج بشكل عام، حيث يمكن تحديد القيم الثابتة الهامة وتغييرها بشكل سهل في حالة الحاجة.

    بشكل عام، يمكن استخدام الثوابت const لتعريف القيم الثابتة التي لا يمكن تغييرها، ويمكن الاستفادة منها في تحسين الأداء وتحسين قراءة وفهم الكود وتقليل الأخطاء وتسهيل عملية الصيانة.

    • أعجبني 1
  6. هناك عدة أسباب محتملة لهذه المشكلة:

    • تطبيق التطوير وتطبيق الإنتاج يستخدمان إصدارات مختلفة من مكتبة React Native Payments، مما يؤدي للخطأ. يجب أن يكون الإصدار واحد في التطبيقين. 
    • معرف التاجر (Merchant ID) المستخدم في تطبيق الإنتاج ليس نفسه المستخدم في حساب App Store Connect. يجب أن يكونا متطابقين تمامًا.
    •  شهادة الإشعارات المستخدمة في تطبيق الإنتاج غير صحيحة أو غير نشطة. يجب أن تكون الشهادة سارية الصلاحية ومرتبطة بنفس المعرف. 
    • خيار "Apple Pay" لم يتم تفعيله ضمن المهام المتاحة في حساب تطبيق الإنتاج على App Store Connect.
    • قد يكون هناك خطأ برمجي صغير فقط في تطبيق الإنتاج يسبب هذه المشكلة.

    لحل المشكلة، يجب:

    •  التأكد من إصدار مكتبة React Native Payments المستخدم
    •  التأكد من معرف التاجر وشهادة الإشعارات في تطبيق الإنتاج
    • تفعيل خيار "Apple Pay" ضمن المهام المتاحة
    •  التأكد من عدم وجود أخطاء برمجية
    •  Rebuild  البروجيكت وتنظيف الكاش كحل أخير
  7. التعليقات السابقة توضح ال cdn بشكل ممتاز ولكن سأوضح بالتفصيل استخدام CDN لاستدعاء مكتبات مثل jQuery أو Bootstrap، هناك عدة مميزات:

    • السرعة:

    تحميل ملفات المكتبة مثل jQuery من شبكة توزيع المحتوى سيكون أسرع بكثير من سيرفر الويب الخاص بك. وهذا يعني صفحة تحميل أكثر سرعة وتجربة أفضل للمستخدم.

    • الموثوقية:

    توزع ملفات المكتبة على عقد متعددة في شبكة توزيع المحتوى، مما يجعل الوصول إليها أكثر موثوقية ومتاحة.

    • تخفيف الحمل:

    يتم تخفيف الضغط على سيرفر الويب الخاص بك لأن ملفات المكتبة تأتي من شبكة توزيع المحتوى بدلاً من سيرفرك.

    •  الاستجابة السريعة: 

    تقع مزايا شبكة توزيع المحتوى في أماكن جغرافية مختلفة، مما يعني صفحة تحميل أسرع للمستخدمين بغض النظر عن تواجدهم.

    • إعادة الاستخدام:

    يمكنك استخدام نفس ملفات المكتبة من شبكة توزيع المحتوى في مواقعك المتعددة.

    لذلك، ينصح دائمًا باستخدام CDN مع المكتبات الخارجية لتحقيق أعلى مستويات الأداء والموثوقية.

  8. إذا كنت تريد بناء قالب wordpress من الصفر بنفسك فيجب عليك تعلم 

    • HTML و CSS - هما الأساس لأي موقع وستعمل بهما كثيراً في وردبريس. 
    • تفهم نواة وردبريس - لدى وردبريس هيكلة أساسية ووظائف تسيطر على كل شيء. اقرأ عن الأساسيات مثل القوالب والإضافات وهرمية القالب والحلقة والوظائف. 
    • تعلم PHP - وردبريس مبني على PHP لذا ستحتاج إلى تعلم الأساسيات كالتعابير والمتغيرات والوظائف والحلقات.  ابدأ بدورة في PHP للمبتدئين.
    • ادرس وثائق وردبريس - هي الوثائق الرسمية لوردبريس. اقرأ عن المواضيع المطورة مثل بطاقات القالب والعمليات والفلاتر والتصفح وبرمجة وردبريس.
    •  تعلم JavaScript - ومع تطورك، سترغب في دمج JavaScript وAPIs .ابدأ باساسيات JavaScript و بعدها jQuery.

    ويمكنك التطوير بعد ذلك من مهاراتك ولكن هذه المهارات الأساسية لتستطيع  بناء قالب wordpress من الصفر بنفسك

    ويمكنك أيضاً استخدام خدمات لعمل قوالب ووردبريس مثل :

    • Elementor
    • Divi Builder
    • Visual Composer
    • Beaver Builder

    بالنسبة للسؤال الثاني فيوجد العديد من المتاجر التي يمكنك عرض القالب عليها مثل Themeforest وهو  الأفضل أما بالنسبة لبقية الأسئلة فيمكنك معرفة الإجابة من خلال تعلم بناء قوالب ال wordpress  فبالطبع لا يمكنك تعلم خاصيةموجودة في ال wordpress  قبل تعلم الwordpress  نفسه

  9. بتاريخ 1 ساعة قال oubai nezar:

    رأيت فيديو لأحد المتخصصين في مجال الفرونت إند و لقد حذر من تعلم boostrap للمبتدئين 

    يجب على المبتدئين في تطوير الويب التركيز على تعلم CSS بشكل جيد أولاً، حتى يتمكنوا من فهم كيفية تصميم وتنسيق العناصر على صفحة الويب، وكيفية تخصيص تصميماتهم بشكل أفضل وفقًا لاحتياجات المشروع. بمجرد أن يفهموا CSS بشكل جيد، يمكنهم استخدام Bootstrap كأداة إضافية لتسهيل وتسريع عملية تطوير واجهات المستخدم.وبعد تعلم ال bootstrap يجب تعلم المزيد حول ال css

    بتاريخ 1 ساعة قال oubai nezar:

    و أن الشركات الكبرى لا تعتمد عليه كثيرا بل تعتمد على css فهل هذا صحيح

    هذا ليس بالضرورة صحيحًا، فقد تختلف استخدامات Bootstrap و CSS من شركة إلى أخرى ومن مشروع إلى آخر. فعلى سبيل المثال، يمكن أن تعتمد بعض الشركات على Bootstrap بشكل كبير في تطوير مشاريعها، خاصة إذا كانت هذه المشاريع تتطلب تصميم واجهات المستخدم المستجيبة بسرعة. ومن ناحية أخرى، قد تعتمد بعض الشركات على CSS بشكل أساسي في تصميم مواقعها وتصميماتها.

    ومع ذلك، يعتبر CSS أساسيًا في تصميم الويب وتنسيق العناصر على الصفحة، ويستخدم على نطاق واسع في جميع أنواع المشاريع. وبالإضافة إلى ذلك، يمكن استخدام Bootstrap كأداة تسهل عملية تصميم وتطوير مواقع الويب، وليس بالضرورة أن يكون الخيار الأساسي لجميع الشركات.

  10. بالإضافة للخطوات لموجودة في التعليق السابق هناك بعض الأسباب المحتملة لهذا الخطأ:

    • عدم توافر أدوات البناء اللازمة مثل GCC لبناء المكتبات الخارجية في بايثون.
    •  عدم توافر الإعتمادات الأخرى المطلوبة مثل sqlite3.
    •  إصدار بايثون غير مدعوم من قبل مكتبة pysqlcipher3.

    يمكنك حل هذه المشكلة بإحدى الطرق التالية:

    • تحديث pip وsetuptools وwheel:

     

    pip install --upgrade pip setuptools wheel
    
    • استخدام البيئة الافتراضية لـ Python:

       

      python -m venv venv
      source venv/bin/activate  # On Linux / Mac
      venv\Scripts\activate  # On Windows
      pip install pysqlcipher3
       
    • تثبيت أدوات البناء مثل build-essential في يونيكس أو وندوز.
    • تثبيت الإعتمادات الأخرى المطلوبة مثل sqlite3.
    • تثبيت wheel مجهز مسبقًا لإصدار بايثون.
    • كحل أخير، يمكنك تثبيت مكتبة pysqlcipher3 من المصدر في virtualenv مع الأدوات والإعتمادات المطلوبة.

     

  11. لتحريك صورة الغلاف على محور الـ Y بإستخدام السحب بالفأرة في React، يمكن استخدام مكتبة React-Draggable التي توفر القدرة على سحب العناصر المرئية وتعديل موقعها بناءً على حركة الفأرة.

    قم بتثبيت مكتبة React-Draggable باستخدام npm عبر الأمر التالي:

    npm install react-draggable
    

    ثم يمكنك استخدام الكود التالي لإنشاء مكون React يحرّك صورة الغلاف على محور الـ Y:

    import React, { useState } from 'react';
    import Draggable from 'react-draggable';
    function CoverPhoto() {
      const [yPos, setYPos] = useState(0);
      const handleDrag = (event, ui) => {
        const { y } = ui;
        setYPos(y);
      };
      return (
        <div>
          <Draggable axis="y" onDrag={handleDrag}>
            <div
              style={{
                backgroundImage: `url('/path/to/image.jpg')`,
                backgroundRepeat: 'no-repeat',
                backgroundSize: 'cover',
                height: '200px',
                position: 'relative',
                top: yPos,
              }}
            />
          </Draggable>
        </div>
      );
    }
    export default CoverPhoto;

    في هذا المثال، يتم استخدام حالة محلية لحفظ موضع صورة الغلاف على محور الـ Y. تم إنشاء دالة `handleDrag` التي تختص بمعالجة الحدث onDrag الذي يتم إطلاقه عندما يتم سحب الصورة. يتم استخدام خاصية `top` في الـ CSS لتغيير موضع الصورة على محور الـ Y بناءً على قيمة yPos.

    يمكنك ضبط الارتفاع والأسلوب الذي يتم عرض صورة الغلاف في الـ CSS، كما هو موضح في المثال.

    كما يمكنك الإطلاع على المثال التالي

    https://codepen.io/chavdar84/pen/pKvXbq

  12. أعتقد أنك الأن تحتاج للبحث عن عمل ومن خلال المشاريع التي تأتيك فبالتأكيد ستكتسب بعض الخبرات في مجالك بدلاً من تعلم تقنيات تؤدي نفس الوظيفة 

    بالإضافة إلى ذلك هناك بعض التقنيات يفضل تعلمها

    • GraphQL هي تقنية جديدة لتطوير واجهات برمجة تطبيقات (APIs)، والتي تسمح للمطورين بتحديد البيانات التي يحتاجون إليها بشكل دقيق وبشكل مخصص. تتميز GraphQL بالسهولة في استعلام البيانات وتحسين أداء التطبيق.
    • AWS أو Azure أو Google Cloud Platform: الحوسبة السحابية ومنصات الخدمات السحابية مثل AWS و Azure و Google Cloud Platform هي أدوات هامة لتطوير تطبيقات الويب وإدارتها في بيئة السحابة. يمكن للمطورين تعلم كيفية استخدام هذه المنصات لتطوير ونشر التطبيقات بشكل أفضل وأكثر فعالية.
    • Docker و Kubernetes هما أدوات شائعة في تطوير تطبيقات الويب، والتي تمكن المطورين من إنشاء بيئات تطوير موحدة ونشر التطبيقات بشكل موحد ومتسق. تعلم كيفية استخدام Docker و Kubernetes يمكن أن يساعد المطورين في تطوير ونشر التطبيقات بشكل أسرع وأكثر فعالية.
    • Microservices: هي تقنية تسمح للمطورين بتقسيم التطبيق إلى مجموعة من الخدمات الصغيرة المستقلة، والتي يمكن تطويرها ونشرها بشكل منفصل. يمكن للمطورين تعلم كيفية تطوير تطبيقات Microservices لإنشاء تطبيقات قابلة للتوسع والصيانة والتحديث بشكل أفضل، ولكن يتطلب الأمر مهارات وخبرة في تطوير تطبيقات الويب.
    • شكرًا 1
  13. قم بتغييير إصدار http في الاعتمادات (pubspec.yaml) من الإصدار الأقدم إلى http: "^0.13.0"  (يمكن الحصول على نسخة من موقع pub.dev وكتابة http، ثم الذهاب إلى علامة التثبيت، وستجد هناك الإصدار المناسب).

    ثم يتم تشغيل flutter pub get، أو أي شيء يناسب احتياجاتك.

    الاعتمادات الحالية:

    dependencies:
      http: "^0.13.0"
      flutter:
        sdk: flutter

  14. حاول تعيين مفتاح جديد للتطبيق Laravel باستخدام الأمر

    php artisan key:generate

    بعد ذلك، يجب إعادة تشغيل التطبيق واختباره مرة أخرى باستخدام الأمر

    php artisan serve

    كما أحياناً الخطأ يأتي من EncryptCookies-Middleware.

    لذلك احذف ملفات تعريف الارتباط في متصفحك و / أو امسح ملفات الجلسة في تطبيق Laravel.

     

  15. إذا كنت تستخدم React 16.8+، يمكن التعامل بسهولة مع التمرير إلى الأعلى في كل مرة يتم فيها التنقل باستخدام مكون يقوم بالتمرير إلى الأعلى على نافذة المتصفح.

    فيما يلي مكون scrollToTop.js:

    import { useEffect } from "react";
    import { useLocation } from "react-router-dom";
    
    export default function ScrollToTop() {
      const { pathname } = useLocation();
    
      useEffect(() => {
        window.scrollTo(0, 0);
      }, [pathname]);
    
      return null;
    }

    ثم يمكن عرض المكون في أعلى تطبيقك، ولكن أسفل المكون Router.

    فيما يلي كيفية عرض المكون في ملف app.js:

    import ScrollToTop from "./scrollToTop";
    
    function App() {
      return (
        <Router>
          <ScrollToTop />
          <App />
        </Router>
      );
    }

    أو يمكن عرضه في ملف index.js:

    import ScrollToTop from "./scrollToTop";
    
    ReactDOM.render(
        <BrowserRouter>
            <ScrollToTop />
            <App />
        </BrowserRouter>
        document.getElementById("root")
    );

    بهذه الطريقة، سيتم تمرير الصفحة إلى الأعلى في كل مرة يتم فيها التنقل إلى صفحة جديدة.

    • شكرًا 1
  16. إذا كان لديك مجموعة من المقالات التي تحتوي على تاريخ النشر وعنوان المقالة وتريد تجميعها بناءً على التاريخ، يمكنك استخدام الكود التالي:

    $articles = Article::orderBy('published_date', 'desc')->get()->groupBy('published_date');

    في هذا المثال، يتم استدعاء دالة `groupBy()` على النتيجة المسترجعة من الدالة `get()` لتجميع المقالات بناءً على التاريخ. يتم تحديد الترتيب باستخدام الدالة `orderBy()` لجعل المقالات الأحدث أولاً.

    وبهذا، ستحصل على مجموعات من المقالات التي تم تجميعها بناءً على التاريخ، ولا يتم تكرار التاريخ في النتائج. يمكنك استخدامها في عرض المقالات على الصفحة بناءً على التاريخ، على سبيل المثال:

    @foreach($articles as $date => $articlesByDate)
      <h2>{{ $date }}</h2>
      <ul>
        @foreach($articlesByDate as $article)
          <li>{{ $article->title }}</li>
        @endforeach
      </ul>
    @endforeach

    في هذا المثال، يتم استخدام دالة `foreach()` للتكرار على المجموعات التي تم تجميعها بناءً على التاريخ. تم عرض التاريخ كعنوان رئيسي وعرض عناوين المقالات تحتها ضمن علامات `ul` و `li`.

  17. لا يوجد أفضل من الأمثلة لتوضيح الشرح كما يلي بعض الأمثلة البسيطة لتوضيح خاصية animate في jQuery:

    •  تحريك عنصر 100 بكسل على اليسار خلال 1 ثانية:
    <div id="div1"></div>
    
    $("#div1").animate({
        left: "100px"
    }, 1000);
    • تغيير عرض العنصر إلى 300 بكسل وارتفاعه إلى 150 بكسل خلال 500 مللى ثانية:
    $("#div1").animate({
        width: "300px",
        height: "150px"  
    }, 500);

    هنا بعض الأمثلة البسيطة لخاصية .animate() مع .scrollTop():

    • التمرير إلى أعلى الصفحة:
    $("html, body").animate({
      scrollTop: 0
    }, 1000);

    هذا سينقل المتصفح إلى أعلى الصفحة بانتقال متسلسل خلال 1000 مللي ثانية.

    • التمرير إلى عنصر ما:

    أولاً ، نحدد الموقف الافتراضي للعنصر:

    <div id="div1" style="position:relative; top:500px;">Element</div>

    ثم نستخدم .offset().top للحصول على موقعه العمودي وننقل المستخدم إليه:

    var elementPosition = $("#div1").offset().top;
    
    $("html, body").animate({
      scrollTop: elementPosition 
    }, 1000);
    • التمرير إلى أسفل الصفحة:
    $("html, body").animate({
      scrollTop: $(document).height()
    }, 1000);

    هذا سينقل المستخدم إلى أسفل الصفحة بحيث يمكنه رؤية العناصر التي تقع في أسفل الصفحة.

    https://wiki.hsoub.com/jQuery/animate

  18. إذا لم تعمل معك الحلول السابقة قد يكون تغيير إعدادات الشبكة للعمل مع IPv4 فقط هو حل لبعض المشاكل المتعلقة بالاتصال بالإنترنت. قد يكون هذا الحل مفيدًا إذا كان هناك مشاكل في الاتصال بالإنترنت بسبب التكوين الخاطئ لبروتوكول IPv6.

    لتغيير إعدادات الشبكة للعمل مع IPv4 فقط، يمكنك اتباع الخطوات التالية:

    • افتح قائمة "إعدادات الشبكة" في جهاز الكمبيوتر الخاص بك.
    • ابحث عن إعدادات IPv6 وقم بإلغاء تحديدها.
    • حفظ التغييرات وأعد تشغيل جهاز الكمبيوتر الخاص بك.

    بعد تطبيق هذه الخطوات، يجب أن يعمل جهاز الكمبيوتر الخاص بك الآن ببروتوكول IPv4 فقط، وقد يتم حل المشكلة التي كنت تواجهها.

    يرجى ملاحظة أن هذا الحل لا ينطبق على جميع المشاكل المتعلقة بالاتصال بالإنترنت، وقد يتطلب حلولًا أخرى في بعض الحالات.

    • شكرًا 1
  19.  وظيفة مطور الويب الأمامي (front end) لن تستبدل تمامًا بالذكاء الاصطناعي بالكامل.

    لكن يمكن للذكاء الاصطناعي أن يساعد مطوري الويب الأمامي ويقلل من بعض المهام الروتينية والمزعجة:

    يمكنك الإطلاع على النقاشات التالية للإستفادة 

     

  20. هناك أسباب أخرى قد تؤدي إلى حدوث خطأ "Expected Expression" في برمجة Python، وهي:

    • عدم وجود جملة بعد "if" أو "elif": يحدث هذا الخطأ عندما تضع كلمة "if" أو "elif" ولكن لا يوجد جملة بعدهما، بمعنى آخر، لم يتم توفير الشرط الذي يجب فحصه.
    • ترك فراغ بعد ":" في بنية التحكم: يحدث هذا الخطأ عندما تضع ":" بعد "if" أو "elif" أو "else"، ثم تترك فراغًا ولم يتم توفير جملة بعد ذلك.
    • استخدام كلمة محجوزة بشكل خاطئ: يحدث هذا الخطأ عندما تستخدم كلمة محجوزة في Python بشكل خاطئ، على سبيل المثال استخدام "True" بدلاً من "True:".
    •  عدم إغلاق قوس: يحدث هذا الخطأ عندما تفتح قوسًا في بنية التحكم ولكن لم تغلقه بشكل صحيح.

    لحل هذه المشكلات، يجب التأكد من توفير الشرط الذي يجب فحصه في "if" أو "elif"، وتوفير جملة بعد ":" في بنية التحكم، وعدم استخدام كلمات محجوزة بشكل خاطئ، والتأكد من إغلاق الأقواس بشكل صحيح. ويمكنك الإطلاع على المزيد من المعلومات من خلال المقالات الموجودة في التعليق السابق

  21. بتاريخ 21 ساعة قال Ali Ahmed39:

    هل من الضروري تعلم الاهكر الاخلاقي قبل البدا في اي مجال ؟

    ليس ضرورياً أبداً تعلم الهكر الأخلاقي قبل تعلم أي مجال من مجالات البرمجة إنما الأفضل هو تعلم بعض الأساسيات كما في التعليقات السابقة

    وبعد ذلك عند تحديد مجال محدد مثلاً لنفترض أنك تتعلم الويب سيكون هناك بعض الممارسات المطلوبة للمحافظة على الموقع من الإختراق فالمطورون ليسوا خبراء أمنيين ، وهذا هو سبب وجود مجموعات مثل قائمة العشرة الأوائل لمشروع أمان تطبيق الويب المفتوح (OWASP) هنا لمساعدتهم. كل بضع سنوات ، تنشر OWASP تحليلًا تفصيليًا وإرشادات وتحذيرات حول مجموعة واسعة من مشكلات الشبكات والسحابة والأمان.

    ال  OWASP Top 10 عبارة عن وثيقة توعية قياسية للمطورين وأمن تطبيقات الويب. إنه يمثل إجماعًا واسعًا حول مخاطر الأمان الأكثر أهمية لتطبيقات الويب.

    كما أن عند العمل مع إطار عمل مثل laravel يقوم إطار العمل بالحفاظ على الموقع من الإختراق 

    لذلك قم فقط بتحديد مجال لتعلمه وبعد ذلك ستفهم كل شئ

    • أعجبني 1
  22. بالطبع! دعني أوضح بالتفصيل كيف يمكن بناء تطبيق يسمح للأعضاء ببيع الكتب وتحويل الأموال لحساب الكاتب وتأخذ الموقع نسبة من الأموال باستخدام بوابات الدفع.

    أولاً، يجب عليك إنشاء تطبيق ويب يسمح للمستخدمين بإنشاء حسابات والتحميل والبيع والشراء من الكتب المتاحة. يمكن استخدام لغات البرمجة المختلفة والإطارات البرمجية المتاحة لتطوير التطبيق، مثل Django أو Flask باستخدام لغة Python، أو Ruby on Rails باستخدام لغة Ruby.

    بعد إنشاء التطبيق، يجب إضافة بوابة دفع إلكتروني لتسهيل عمليات الدفع. يمكن استخدام بوابات الدفع المختلفة التي تتوفر على الإنترنت، مثل Stripe و PayPal وغيرها. يمكن للمستخدمين استخدام حساباتهم على البوابات لإجراء عمليات الدفع بأمان وسهولة.

    عندما يتم إجراء عملية الدفع، سيتم تحويل الأموال إلى حساب البوابة المحددة. يمكن تكوين حسابات البوابات لتسهيل تحويل الأموال وتحصيل الرسوم. يمكن للموقع استخدام حسابه الخاص على البوابة لتحويل الأموال لحساب الكاتب وتأخذ نسبتها. ويجب أن يتم تحويل الأموال بشكل آمن وموثوق به عن طريق استخدام واجهة برمجة التطبيقات (API) الخاصة بالبوابة.

    يمكن استخدام محفظة إلكترونية (wallet) وهي حساب مالي افتراضي في التطبيق لتتبع الأموال المستحقة للكاتب وتحويل الأموال إليه. يمكن استخدام API للتواصل مع البوابة وتحديث حسابات المحفظة الإلكترونية وتحويل الأموال بين الحسابات. يجب تأمين الاتصالات والمعاملات المالية بشكل صارم لتجنب أي خروقات أمنية أو احتيال.

    يمكن استخدام العديد من الأدوات لتحقيق هذا الهدف، ولكن إذا كانت هذه هي المرة الأولى التي تقوم فيها ببناء تطبيق من هذا النوع، فإن استخدام إطار العمل Django مع إضافة Django Rest Framework لتطوير واجهة API و Django Allauth لإدارة الحسابات وتسجيل الدخول وإضافة بوابة دفع مثل Stripe ستكون خيارات جيدة للبدء في العمل.

     

  23. بتاريخ 18 ساعة قال Ali Ali49:

    ارجو منك توضيح أكثر لهذا السطر كيف أقوم بذلك ( وإرجاع الملف المفتوح في دالة __init__ دون تحميله )

    دالة openpyxl.load_workbook، وإرجاع الملف المفتوح في دالة __init__ دون تحميله، كما يلي:

    سأحاول التوضيح أكثر

    تحتاج إلى استخدام دالة openpyxl.load_workbook() لتحميل ملف Excel. يمكنك استخدام هذه الدالة لتحميل الملف وإرجاعه ككائن Workbook دون فتحه في الدالة __init__

    يمكنك استخدام openpyxl.load_workbook() لتحميل الملف وإرجاعه ككائن Workbook. يمكنك تخزين هذا الكائن المسترجع في متغير داخلي في الكلاس لاستخدامه لاحقًا في أي دوال أخرى في الكلاس.

  24. سأحاول شرح السؤال الثاني والثالث بالتفصيل 

    • لا يلزم أن تتعلم برمجة الويب قبل تعلم برمجة الموبايل، ولكن فهم مفاهيم الويب وتعلم العمل مع تقنيات الويب مثل RESTful API يمكن أن يساعدك في تطوير API لتطبيقات الموبايل. 

    تعد RESTful API من الطرق الشائعة لتطوير API، حيث تتيح للتطبيقات تبادل البيانات بشكل آمن وفعال عبر الإنترنت. وهي تتبع مجموعة من المفاهيم والمعايير المتعلقة بالويب مثل HTTP وURI وJSON.

    عندما تتعلم كيفية تطوير RESTful API، سيتعين عليك فهم كيفية إنشاء وتصميم الطلبات والاستجابات باستخدام HTTP وكيفية تحويل البيانات إلى JSON. كما ستحتاج إلى فهم مفاهيم الأمان والتحقق من هوية المستخدمين وحماية البيانات الحساسة.

    يمكنك استخدام هذه المعرفة في تطوير API لتطبيقات الموبايل، حيث يمكن لتطبيقات الموبايل الاتصال بالAPI لجلب البيانات وتحديثها وحذفها. وبالتالي، فإن فهم مفاهيم الويب وتعلم تقنيات الويب مثل RESTful API سيساعدك في تطوير تطبيقات الموبايل بشكل أفضل وأسرع.

    •  لتصبح جيدًا في مجال تطوير التطبيقات المحمولة، يجب أن تتعلم لغة البرمجة المناسبة وتطوير المهارات اللازمة في تصميم وتطوير واختبار التطبيقات. يمكن الحصول على هذه المهارات من خلال الكورسات والدورات التدريبية المتاحة على الإنترنت أو من خلال المشاركة في مجتمعات المطورين والتفاعل مع الآخرين.

    تعلم لغة البرمجة المناسبة هو الخطوة الأولى في تعلم تطوير التطبيقات المحمولة. وعلى سبيل المثال، إذا كنت ترغب في تطوير تطبيقات iOS، فمن المستحسن تعلم لغة Swift واستخدام منصة التطوير Xcode. وإذا كنت ترغب في تطوير تطبيقات لأنظمة التشغيل الأخرى بالإضافة إلى iOS، فيمكنك تعلم لغة Dart واستخدام إطار العمل Flutter لتطوير تطبيقات cross-platform تعمل على iOS و Android وغيرها من الأنظمة.

    وبالإضافة إلى تعلم لغة البرمجة المناسبة، يجب تطوير المهارات اللازمة في تصميم وتطوير واختبار التطبيقات. يمكن الحصولعلى هذه المهارات عن طريق العمل على مشاريع تطبيقات صغيرة وتحليل التطبيقات الأخرى لفهم كيفية تصميمها وتطويرها. كما يمكن الاستفادة من الكورسات والدورات التدريبية المتاحة على الإنترنت لتعلم أفضل الممارسات في تصميم وتطوير التطبيقات، بما في ذلك تطوير واجهات المستخدم وتطوير الوظائف الأساسية للتطبيقات.

    وأخيرًا، يمكن الاستفادة من المشاركة في مجتمعات المطورين والتفاعل مع الآخرين المهتمين بتطوير التطبيقات المحمولة. يمكن العثور على مجتمعات المطورين على الإنترنت والانضمام إليها للحصول على المشورة والمساعدة في تطوير التطبيقات.

    بشكل عام، لتصبح جيدًا في مجال تطوير التطبيقات المحمولة، يجب تعلم لغة البرمجة المناسبة وتطوير المهارات اللازمة في تصميم وتطوير واختبار التطبيقات، بالإضافة إلى الاستفادة من المشاركة في مجتمعات المطورين والتفاعل مع الآخرين.

    • أعجبني 1
  25. لكل شخص الطريقة الأفضل للتعلم وما يناسبك لا يناسب غيرك ولكن هناك عدة نصائح يمكن اتباعها لتحقيق أقصى استفادة من دروسك وبدلاً من التكرار تم مناقشة هذا السؤال في الأسئلة التالية يفضل الإطلاع عليها

     

    • أعجبني 1
×
×
  • أضف...