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

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

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

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

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

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

    11

كل منشورات العضو عبدالباسط ابراهيم

  1. يمكنك تخصيص بعض الوقت لحل المشاكل البرمجية، حيث سيكون لها فوائد كبيرة على المدى الطويل: ستزيد مهاراتك في التفكير المنطقي وحل المشاكل. ستصبح أكثر إلماماً بلغات البرمجة التي تستخدمها (جافاسكريبت وبايثون) وخوارزمياتها وبنائها. ستكتسب خبرة عملية في كتابة الكود واختباره وإصلاح الأخطاء. سيساعدك ذلك في مرحلة تطوير الواجهة الخلفية باستخدام بايثون. أوصيك بالتركيز على حل مسائل برمجية باستخدام لغة بايثون، لأنها اللغة التي ستستخدمها في المستقبل لتطوير الواجهة الخلفية. يمكنك البدء بحل بعض المسائل البسيطة على مواقع مثل HackerRank أو LeetCode لتدريب نفسك على بايثون. أما إذا كانت الطريقة السابقة تقلل من الإنتاجية والتركيز يمكنك تعلم تطوير الواجهات الأمامية حالياً
  2. يجب عليك الأن تحديث الصفحة في المتصفح حتى تستطيع إظهار التعديلات التي قمت بها كما يمكنك أيضاً لتسهيل عملية البرمجة تفعيل ال auto-save في برنامج vs code عن طريق الضغط على files في أعلى يسار البرنامج وستظهر لك قائمة أختيارات قم بالضغط على auto-save ذلك بالنسبة لحفظ التعديلات على البرنامج أما بالنسبة لتحديث الموقع على المتصفح فيمكنك استخدام live-server كما في الإجابات التالية
  3. Github هو موقع ويب يستخدم لتخزين الكود ومشاركته والعمل عليه بشكل تعاوني. هنا بعض الأشياء التي يمكنك فعلها مع Github: إنشاء حساب Github لتتمكن من تخزين الكود على السحابة. إنشاء مشاريع (repositories) لتنظيم الكود. إضافة كودك إلى المشاريع عن طريق "الدفع" (pushing) إلى Github. الإشراف على تغييرات الكود وتاريخها من خلال "السحب" (pulling) من Github. العمل التعاوني مع الآخرين عن طريق تمكين المساهمة في المشروع. جعل كودك عام للآخرين من خلال جعل المشروع علني. بناء سمعتك كمطور من خلال مشاريعك على Github. كما يفضل الإطلاع على المصادر التالية
  4. يجب عليك فتح ملف ال HTML في متصفح Google Chrome باتباع الخطوات التالية: انتقل إلى الموقع الذي يحتوي على الملف HTML الذي تريد فتحه. انقر بزر الماوس الأيمن على الملف HTML واختر "فتح بـ" (Open with) من القائمة المنبثقة. اختر Google Chrome من القائمة المنبثقة. سيتم فتح الملف HTML في متصفح Google Chrome. بالإضافة إلى ذلك، يمكنك أيضًا فتح ملف HTML في Google Chrome بسحب وإسقاط الملف في نافذة المتصفح أو بالنقر المزدوج على الملف HTML في مستكشف الملفات الخاص بك، وسيتم فتحه تلقائيًا في متصفح Google Chrome. كما يمكنك استخدام الإضافة live-server كما في التعليق السابق
  5. يبدو أن الخطأ الذي تواجهه يعود إلى مشكلة في تمرير المعاملات لدالة `write_to_excel`. تحتاج إلى تمرير مسار الملف الذي تريد فتحه كمعامل لدالة `write_to_excel`، مثل هذا: file_path = "C:\\path\\to\\file.xlsx" write_to_excel(file_path) ويتم استدعاء الدالة `write_to_excel` بمعامل `file_path`. لذلك، تحتاج إلى التأكد من تمرير قيمة لـ `file_path` عند استدعاء الدالة. وإذا كان المشكلة لا تزال مستمرة، يمكنك محاولة استخدام الأكواد التالية لفحص الأخطاء: import win32com.client as win32 def write_to_excel(file_path): try: # إنشاء نسخة من تطبيق Excel excel = win32.gencache.EnsureDispatch('Excel.Application') # فتح الملف wb = excel.Workbooks.Open(file_path) # إغلاق الملف wb.Close(SaveChanges=True) except Exception as e: print("Error: ", e) # تمرير مسار الملف كمعامل للدالة write_to_excel file_path = "C:\\path\\to\\file.xlsx" write_to_excel(file_path) يجب عدم نسيان إغلاق الملف بعد الانتهاء من استخدامه باستخدام `wb.Close(SaveChanges=True)`، حيث يتم حفظ التغييرات قبل إغلاق الملف.
  6. لا، لا يشترط تفعيل مشتريات داخل التطبيق (In-App Purchases) لكي تعمل خاصية Apple Pay في تطبيقك. Apple Pay هي طريقة للدفع تسمح للمستخدمين بإجراء مدفوعات باستخدام بطاقات ائتمان وبطاقات الخصم الخاصة بهم، ويمكن تفعيلها في التطبيقات بغض النظر عن وجود مشتريات داخل التطبيق أم لا. لتفعيل Apple Pay في تطبيقك، يجب: تسجيل حساب تطوير Apple وتسجيل تطبيقك في برنامج Apple Developer. إنشاء معرف تاجر (Merchant ID) في مركز أعضاء المطورين. هذا المعرف سيُمكّن Apple من التعرف على تطبيقك كـ "تاجر" للمشتريات. إنشاء وتنزيل شهادة توقيع الطلبات (CSR) من Keychain Access. إنشاء شهادة معالجة المدفوعات في مركز أعضاء المطورين. هذه الشهادة ستستخدم لتأمين بيانات المعاملات. تفعيل Apple Pay في القدرات في Xcode واختيار معرف التاجر الصحيح. كتابة كود تطبيق iOS لإظهار PKPaymentAuthorizationViewController للمستخدم. تكميل بروتوكول PKPaymentAuthorizationViewControllerDelegate لإكمال المعاملة عند السماح لها. وهذه الخطوات تكفي لتفعيل خاصية Apple Pay في تطبيقك بغض النظر عن وجود مشتريات داخل التطبيق أم لا. ويمكنك الإطلاع على المزيد من المعلومات من خلال هذا الرابط
  7. لا يمكنك استيراد مكونات مباشرة من مشروع إلى آخر كما تفعل في الكود الموجود بالصورة. إذا كنت ترغب في الحصول على مكون قابل لإعادة الاستخدام ، أو مكتبة مكون أفضل ، فمن المحتمل أن تكون أفضل الممارسات هي إنشاء المكون الخاص بك في مشروع مختلف تنشره على npm ثم تثبيت مكتبة المكونات هذه في كلا المشروعين حيث تحتاجهما . يمكنك إتباع الخطوات الموجودة في الإجابات التالية
  8. الكود يبدو صحيحًا الآن كما في التعليق السابق، ولكن يمكن إجراء بعض التحسينات البسيطة لتحسين قابلية القراءة والصيانة، مثل: يمكن إزالة الفراغات الزائدة في بعض الأماكن لتحسين التنسيق. يمكن إعطاء العنصر الذي يحتوي على الحقول المدخلة والأزرار اسمًا أكثر وضوحًا ومعبرًا، مثل "register-form". يمكن إضافة تعليقات لشرح الكود وتوضيح الوظيفة الخاصة بكل جزء منه. يمكن إعطاء العناصر الرئيسية داخل النموذج أسماء معينة، مثل "email", "name", "password" و "cpassword"، للتعامل معها في الأكواد اللاحقة.
  9. إذا كنت لا تمتلك أي معلومات عن شبكات الحاسوب ومجال تكنولوجيا المعلومات، فيمكن البدء بالتعرف على المفاهيم الأساسية والمصطلحات والتقنيات وأنظمة التشغيل وغيرها من الموضوعات المتعلقة بهذا المجال. ويمكن العثور على العديد من الموارد المجانية والمدفوعة عبر الإنترنت، مثل الكورسات والمقالات والفيديوهات والمنتديات، التي يمكن استخدامها لتعلم هذه المواد الدراسية. وبعد ذلك، يمكن البدء بتعلم CCNA و MCSA وهما شهادتان مهمتان في مجال تكنولوجيا المعلومات. ولكن يجب أن تعلم أن هذه الشهادات تحتاج إلى دراسة وعمل كثير، وتحتاج إلى فهم جيد للمفاهيم والتقنيات المختلفة في مجال تكنولوجيا المعلومات. بالإضافة إلى ذلك، يجب أن تعمل على تطوير مهاراتك التقنية والعملية، والتي يمكن الحصول عليها من خلال العمل على مشاريع تطبيقية والعمل مع أدوات وتقنيات مختلفة في مجال تكنولوجيا المعلومات. ويجب أن تبحث عن فرص تطوعية أو تدريبية في مجال تكنولوجيا المعلومات، وتتواصل مع المحترفين في هذا المجال وتسأل عن نصائحهم وخبراتهم. ويمكن أيضًا الانضمام إلى المنتديات المختلفة والمجتمعات التقنية للتواصل مع المحترفين والمتعلمين في مجال تكنولوجيا المعلومات. بالنسبة ل CCNA و بعدها MCSA و سوف يصبحو كافيين في سيرتي الذاتيه للتقدم علي عمل او كيف ابدأ هذا الطريق؟ إذا كنت تريد العمل في مجال تكنولوجيا المعلومات، فإن الحصول على شهادات مثل CCNA و MCSA يمكن أن تكون مفيدة وتزيد من فرصك في الحصول على وظيفة. ومع ذلك، يجب الانتباه إلى أن الشهادات وحدها لن تضمن لك الحصول على وظيفة، ويجب أن تكون لديك أيضًا خبرة عملية ومهارات فنية قوية. إذا كنت ترغب في الحصول على شهادات CCNA و MCSA، فيمكنك البدء بالتعرف على المواد الدراسية المتعلقة بهذه الشهادات والتسجيل لدورات تدريبية وامتحانات الشهادات. ويوجد العديد من الموارد المجانية والمدفوعة عبر الإنترنت التي يمكن استخدامها لتعلم هذه المواد الدراسية. وبالإضافة إلى الحصول على الشهادات، يجب أن تعمل على تطوير مهاراتك التقنية والعملية، والتي يمكن الحصول عليها من خلال العمل على مشاريع تطبيقية والعمل مع أدوات وتقنيات مختلفة في مجال تكنولوجيا المعلومات. كما يجب أن تبحث عن فرص عمل في مجال تكنولوجيا المعلومات وتقدم لها، ويمكن العثور على هذه الفرص من خلال مواقع البحث عن الوظائف وشبكات التواصل الاجتماعي المختلفة. بشكل عام، يجب أن تعمل على تطوير مهاراتك والحصول على الشهادات المناسبة والبحث عن الفرص العملية في مجال تكنولوجيا المعلومات لزيادة فرصك في الحصول على وظيفة.
  10. React.js و React Native هما إطار عمل شائعان لتطوير تطبيقات الويب والهاتف المحمول باستخدام لغة JavaScript. يستخدمون Virtual DOM بدلاً من DOM الحقيقي، وبالتالي يتم تحسين أداء التطبيقات بشكل كبير. ومن خلال استخدام React.js و React Native، يمكن للمطورين التركيز على إنشاء المكونات والإدارة الفعالة للحالة دون الحاجة إلى القلق بشأن التفاعل مع العناصر الفعلية في DOM. ومع ذلك، فإن فهم DOM و BOM يظل مهمًا في تطوير التطبيقات باستخدام React.js و React Native. فالمطورون يحتاجون إلى فهم كيفية التفاعل مع عناصر DOM وتحديثها وإدارتها بشكل ديناميكي، وكذلك كيفية التفاعل مع BOM لإدارة النوافذ والإطارات والمخازن المحلية وغيرها. DOM هو مخطط لعناصر الويب الأساسية مثل النص والصور والروابط والأشكال، ويستخدم المطورون React.js و React Native لتحديث وإدارة هذه العناصر دون الحاجة إلى القلق بشأن التفاعل مع عناصر DOM الفعلية. بدلاً من ذلك، يتم إنشاء Virtual DOM الذي يقوم بتحديث وإدارة DOM بشكل فعال وفي الوقت المناسب. على الرغم من ذلك، فإن المطورين لا يمكنهم تجاهل DOM تمامًا، حيث يحتاجون إلى فهم كيفية الوصول إلى عناصر DOM وتحديثها وإدارتها بشكل ديناميكي. وهذا يتطلب معرفة بلغات الويب الأساسية مثل HTML وCSS وJavaScript وAPIs المختلفة التي تتعلق بـ DOM. بالإضافة إلى ذلك، يحتاج المطورون إلى فهم BOM للتفاعل مع المستخدم وإدارة النوافذ والإطارات والمخازن المحلية وغيرها من العناصر التي تتعلق بـ BOM. وهذا يتطلب فهمًا جيدًا للغة JavaScript وAPIs المختلفة المتاحة لـ BOM. لا يمكن الاستغناء عن DOM و BOM في تطوير تطبيقات الويب والهاتف المحمول بشكل كامل، حيث إنهما يشكلان جزءًا أساسيًا من عملية بناء وتطوير التطبيقات. إذا كنت ترغب في جلب العناصر وترتيبها وتنسيقها، فيمكنك استخدام React.js و React Native لإنشاء المكونات وإدارة الحالة بشكل فعال. على سبيل المثال، يمكنك استخدام React.js لإنشاء مكونات واجهة المستخدم وإدارة حالة التطبيق. وباستخدام CSS، يمكنك تنسيق وترتيب عناصر واجهة المستخدم بسهولة. بالإضافة إلى ذلك، يمكن استخدام API مختلفة للوصول إلى البيانات والتفاعل مع الخادم. ومع ذلك، يحتاج المطورون إلى فهم DOM و BOM لإدارة عناصر الواجهة وتحديثها بشكل ديناميكي. ويمكن استخدام React.js و React Native لتحقيق ذلك بطريقة أكثر فعالية وسهولة. وبالتالي، يمكن القول إنه لا يمكن الاستغناء عن DOM و BOM بشكل كامل في تطوير تطبيقات الويب والهاتف المحمول، ولكن يمكن استخدام React.js و React Native لإدارة وتحسين العملية بشكل كبير.
  11. تتأكد أولاً إنك قمت بتخزين البيانات في ال localStorage بصيغة JSON صحيحة، باستخدام JSON.stringify ويمكن أيضاً أن يكون السبب هو أن localStorage.getItem() قد لا يعيد قيمة صالحة من JSON، مما يؤدي إلى خطأ عند JSON.parse(). يمكن أن تحدث حالات مثل: لا يوجد عنصر تخزين مؤقت باسم "data"، مما يعني أن localStorage.getItem() سيعيد null. يوجد عنصر تخزين مؤقت ولكن ليس سلسلة JSON صالحة. في كلتا الحالتين، فإن JSON.parse() لن يعمل، مما يسبب خطأً.إذا أردت معالجة هذا، فيمكنك استخدام try/catch: const [data, setData] = useState([]) try { setData(JSON.parse(localStorage.getItem("data"))) } catch { // ... } أو اختبار صلاحية السلسلة قبل التحويل: const data = localStorage.getItem("data") const parsed = JSON.stringify(data) === '{}' ? [] : JSON.parse(data) const [data, setData] = useState(parsed)
  12. تصميم الدورات تتبع ترتيب معين لضمان فهم الدروس والمفاهيم بشكل صحيح وسليم. وعلى الرغم من ذلك، يمكنك بالطبع الانتقال إلى أي قسم من الدورة تريد دون الحاجة إلى اتمام قسم محدد بالكامل، كما يمكنك التركيز على الأجزاء التي تهمك أكثر. إذا تعلمت التقنيات التالية (ويجب الإطلاع على محتوى الأقسام كاملة ربما يكون بعض الدروس الجديدة بالنسبة لك) أساسيات HTML أساسيات CSS أساسيات JavaScript أساسيات jQuery أساسيات Bootstrap فيمكنك الإنتقال للمسار التالي ولكن يجب الإتباه أنه خلال دراسة المسارات السابقة يوجد أيضاً عدة تطبيقات عملية
  13. كل شيء في بايثون هو كائن - أنواع متغيرة بدائية (على سبيل المثال، أعداد صحيحة وعشرية وسلاسل) وأنواع مدمجة (على سبيل المثال، قوائم ومعاجم) وأنواع محددة من قبل المستخدم (على سبيل المثال، فئات، دوال). للكائنات خصائص (سمات) ووظائف (طرق). على سبيل المثال، لكائن سلسلة .upper() طريقة لتحويلها إلى حروف كبيرة و .endswith() الطريقة للتحقق من إذا كانت تنتهي بفرعسلسلة محددة. عند تعريف فئة، فإنك ببساطة تنشئ نوع كائن جديد. فإن نسخ الفئة (الكائنات) ترث الخصائص والطرق من الفئة. التوجه الكائني يعطي الكود البايثوني إعادة الاستخدام والقابلية للتوسع والتصميم الوحدي. يمكنك توريث الفئات الموجودة، إعادة تعريف الطرق وإنشاء نماذج كائنية هرمية. حتى الوحدات/الحزم هي كائنات لديها سمة .name. الدوال هي كائنات يمكن تمريرها وتخزينها في متغيرات إلخ. كل شيء كائن، ولكن بعض الكائنات مثل الأعداد الصحيحة والعشرية والسلاسل غير قابلة للتغيير "غير قابلة للتغيير"، أي لا يمكن تغيير قيمها. القوائم والمعاجم إلخ قابلة للتغيير "قابلة للتعديل". وراء الكواليس، يتم تخصيص"object id" للكائنات من قبل ال interpreter لتحديدها بشكل فريد أثناء التنفيذ. باختصار، نستخدم isinstance() للتحقق مما إذا كان شيء ما كائن أو لا. في كل مرة نطبع True لأن كل الأمثلة هي حقاً كائنات في بايثون. # الأعداد هي كائنات x = 1 print(isinstance(x, object)) # يطبع True # السلاسل هي كائنات y = "Hello" print(isinstance(y, object)) # يطبع True # القوائم هي كائنات z = [1, 2, 3] print(isinstance(z, object)) # يطبع True # تعريف فئة class Person: pass # مثيل من هذه الفئة هو كائن james = Person() print(isinstance(james, object)) # يطبع True # وحدات المكتبة هي كائنات import math print(isinstance(math, object)) # يطبع True # الدوال هي كائنات def add(x, y): return x + y print(isinstance(add, object)) # يطبع True
  14. يمكن أن يحدث هذا الخطأ لأسباب مختلفة. لاحظ أنه عند ظهور الخطأ قمت أنت بتنفيذ الأمر git push -u origin master لذلك السبب الأكثر احتمالاً لحدوث هذا الخطأ هو أن الفرع master غير موجود. وذلك لأن خلال السنوات الأخيرة، تمت حركة داخل مجتمع التكنولوجيا لإزالة اللغة والمصطلحات الضارة التي تعزز العنصرية والتمييز. كجزء من هذه الحركة، قامت بعض الشركات والمنظمات، بما في ذلك GitHub، بإجراء تغييرات لاستبدال اسم الفرع الافتراضي "master" بشيء أكثر شمولًا، مثل "main" لذلك في الأمر الثاني أصبح يعمل معك لأنك تستخدم main git push -u origin main
  15. بالعكس يأخذ العنصر card أو ال row ال margin التي قمت بتحديدها وهي m-5 من بوتستراب ولكنها ليست كافية لتظهر حيث أن العنصر card يبداً من أول الصفحة وذلك لأن ال navbar يأخذ الخاصية position والصورة التالية توضح كل شئ والحل هو حذف الصنف m-5 حتى يتم تطبيق ال margin-top: 180px; لصبح الكود كالتالي <div class="row" style="margin-top: 180px; "> بدلاً من <div class="row m-5" style="margin-top: 180px; ">
  16. يبدو أنك تقوم بتصميم هذا الشكل كتدريب أو مطلوب منك تنفيذ هذا الشكل بهذه الطريقة حيث أن هناك الكثير من الطرق الأسهل والأفضل كما في التعليق السابق استخدام flex أو grid وما إلى ذلك ولكن حتى تستطيع معرفة لماذا تظهر مسافة بين العناصر inline-block غريبة مما يجعل المسافات على اليمين غير منسقة لذلك الحل سيكون كالتالي نجعل ال font-size: 0; للعنصر الأب 0 ثم نقوم بتحديد ال font-size:16px; أو أي قيمة للعناصر بالداخل ليصبح الكود كالتالي .parent .c { display: block; margin: 15px 0; font-size: 0; } وبالنسبة ل .c div .c div { height: calc((100% - (15px * 5)) / 4); text-align: center; display: inline-block; background-color: #adacac; margin-left: 15px; font-size: 16px; }
  17. نصيحتي لك هي: تركز على دراسة شيء واحد حتى تتقنه وتتعلمه جيدا. تشتيت التركيز قد يسبب مشكلة. ان التعلم يأتي عن طريق التكرار والممارسة. فمن الأفضل أن تتعلم واحد في الوقت حتى تستطيع ممارسته وتطبيقه عمليا. بعد أن تتقن واحد منهم بشكل جيد، يمكنك أن تنتقل للآخر. في البداية قد تحتاج كل وقتك لدراسة تطوير الواجهات الأمامية.بعد ذلك، عندما تتقن ذلك، سيصبح بالإمكان ممارسة كلاهما، لكن في البداية فأنصح بالتركيز على شيء واحد حتى تتعلمه جيدا. والمفيد أيضاً هو عند تعلمك لمجال واحد بإمكانك تنفيذ العديد من المشاريع بشكل أسرع حتى يجعلك تلاحظ التقدم في عملية الدراسة بجانب ذلك يمكنك أيضاً التقدم لبعض الوظائف بجانب دراسة الواجهة الخلفية (إذا قمت بدراسة تطوير الواجهة الأمامية مثلاً) لذلك عندما تكون الأهداف مقسمه لخطوات قصيرة كلما كانت أسهل للتحقيق
  18. بجانب التعليق السابق سأحاول شرح بعض الأسئلة بالتفصيل بالنسبة لكيف اشرح، لا علاقة لي بالتدريس والتعليم؟ إذا لم تكن لديك خبرة في التدريس والشرح، فيمكن أن يكون الأمر صعبًا في البداية. ومع ذلك، يمكنك تحسين مهاراتك في التدريس والشرح عبر التدريب والممارسة.فيما يلي بعض النصائح التي يمكن أن تساعدك على تحسين مهارات التدريس والشرح: تحضير الدروس: قم بإعداد دروس مفصلة ومنظمة ومنطقية لتسهيل فهم المفاهيم والمعلومات المعقدة. يمكنك استخدام مخططات وأشكال بيانية وأمثلة عملية لتبسيط الموضوع وجعله أكثر وضوحًا وسهولة للفهم. استخدام الأمثلة الواقعية: استخدم الأمثلة الواقعية والتطبيقات العملية لتوضيح المفاهيم والمعلومات وجعلها أكثر إيضاحًا وفهمًا. استمع إلى الأسئلة والاستفسارات وأجب عليها بوضوح ومنطقية واستخدم أمثلة وتوضيحات لإيضاح الأمور. التدريب على الشرح: يمكنك تحسين مهاراتك في التدريس والشرح عن طريق التدريب والممارسة. قم بتمرين الشرح أمام الأصدقاء أو العائلة واستمع لتعليقاتهم واستفد منها. الاستمرار في التعلم: حافظ على تعلمك وتحديث معرفتك بالموضوع الذي تريد شرحه، حتى تتمكن من توصيل المعلومات بكفاءة ودقة. بالنسبة لشرح الجافا لا، لم يفت الأوان لشرح الجافا في هذا الوقت بأي حال من الأحوال. الجافا هي لغة برمجة شائعة ومستخدمة بشكل واسع في تطبيقات الويب والجوّال والحوسبة السحابية وغيرها، وما زالت تستخدم حتى اليوم. وبالتالي، فإن شرح الجافا لا يزال ضروريًا ومهمًا لمن يريدون العمل في هذه المجالات. بالإضافة إلى ذلك، فإن الجافا هي لغة برمجة تتطور باستمرار وتحتوي على ميزات وتقنيات جديدة، ولذلك يمكن للمطورين الذين لديهم خبرة في الجافا أن يستفيدوا من هذه التحديثات والتقنيات الجديدة لتحسين أدائهم وتطوير تطبيقاتهم. لذلك، فإن شرح الجافا في هذا الوقت لا يزال جيدًا وضروريًا، ويمكن أن يكون فرصة لتعلم مهارات جديدة وتطوير مهارات البرمجة لدى الطلاب والمطورين.
  19. في هذا الكود، يتم استخدام دالة `findIndex()` التي تقوم بالبحث في مصفوفة `numbers` عن العنصر الأول الذي يفوق القيمة `70`. ثم يتم طباعة الفهرس (index) لهذا العنصر. في الدالة الخاصة بـ `findIndex()`، يتم استخدام معامل واحد وهو `item`والذي يعبر عن كل عنصر في المصفوفة `numbers` على التوالي. يتم تحليل المعامل `item` في الدالة باستخدام الدالة السهمية (arrow function) التي تحدد شرط بحث الدالة، وهو `item > 70`، والتي تقوم بإرجاع `true` إذا كان العنصر الحالي في المصفوفة يفوق القيمة `70`. وتمرر هذه الدالة السهمية إلى دالة `findIndex()` لتنفيذ البحث. مثال بسيط: العثور على أول عنصر أكبر من 5 let numbers = [1, 5, 8, 9]; let index = numbers.findIndex(function(num) { return num > 5; }); console.log(index); // 1 نفس المثال ولكن باستخدام أسهم الوظيفة اختصارا: let index = numbers.findIndex(num => num > 5); ملاحظة: إذا لم يتم العثور على أي عنصر يلبي المعايير ، فسيعيد findIndex() -1. ويمكنك الإطلاع على المزيد من المعلومات من خلال هذا الرابط
  20. فكرتك عامة صحيحة، من الجيد أن تتعلم HTML وCSS جنبا إلى جنب مع Python. سأوصي بذلك: HTML و CSS هما أساسيان. سوف تحتاجهما بغض النظر عما إذا كنت ترغب في بناء تطبيقات ويب أو تطبيقات برمجية. تعلم HTML و CSS سوف يكونا بمثابة أساس جيد لتعلم JavaScript بعد ذلك. Python مفيد للغاية لبناء التطبيقات وحل المشكلات. ولكن ستحتاج HTML و CSS لإنشاء واجهة مستخدم لهذه التطبيقات. تعلم HTML و CSS في البداية سوف يعطيك فكرة أفضل عن كيفية عمل تطبيقات الويب، ما يساعدك على استخدام Python بشكل أفضل فيما بعد. في الخلاصة، أنصحك بتعلم HTML و CSS جنبا إلى جنب مع Python في البداية. ثم تعلم JavaScript لاحقا عندما تشعر بالثقة، فهذا ما يمنحك أساسا قويا.
  21. يمكن مقارنة GulpJS و Vite نوعًا ما، لأنهما كلاهما أدوات تساعد على تطوير تطبيقات الويب وتحسين تجربة المطورين. GulpJS هي أداة لتنسيق مهام معينة في مشروع الويب، مثل تحسين الصور أو دمج وضغط ملفات CSS و JS. يتم استخدام GulpJS عادةً في عمليات البناء (build process)، حيث يتم تحويل ملفات المصدر إلى ملفات تنفيذية يمكن استخدامها في الإنتاج. يتم كتابة مهام GulpJS في ملف gulpfile.js وتشغيلها باستخدام موجه الأوامر. أما Vite، فهي أداة لتطوير تطبيقات الويب بشكل أسرع وأكثر فعالية. تقوم Vite بإنشاء بيئة تطويرية سريعة وخفيفة الوزن باستخدام ميزة ES modules في المتصفحات الحديثة. بالإضافة إلى ذلك، فهي توفر ميزات مثل تحميل الملفات عند الطلب (on-demand loading) والتحميل التوقعي (preloading) والتحميل العكسي (reverse proxying)، مما يجعل تطوير التطبيقات أسرع وأكثر كفاءة. يمكن استخدام GulpJS في الحالات التالية: عمليات البناء (build process): يمكن استخدام GulpJS لتحويل ملفات المصدر إلى ملفات تنفيذية يمكن استخدامها في الإنتاج. يمكن استخدام GulpJS لتحسين الصور ودمج وضغط ملفات CSS و JS وغيرها من المهام التي يتم تنفيذها في عملية البناء. مهام الأتمتة: يمكن استخدام GulpJS لتنسيق عمليات الأتمتة، مثل تشغيل اختبارات الوحدة أو نسخ ملفات المصدر إلى مجلد الإنتاج. العمليات الدورية: يمكن استخدام GulpJS لتنفيذ مهام معينة بشكل دوري، مثل تحديث قاعدة البيانات أو التحقق من صحة الملفات. أما Vite، فيمكن استخدامه في الحالات التالية: تطوير التطبيقات: يمكن استخدام Vite لتطوير تطبيقات الويب بشكل أسرع وأكثر كفاءة. يقوم Vite بإنشاء بيئة تطويرية سريعة وخفيفة الوزن باستخدام ميزة ES modules في المتصفحات الحديثة. تحميل الملفات عند الطلب: يمكن استخدام Vite لتحميل الملفات عند الطلب (on-demand loading)، مما يعني أن المستخدمين لن يتم تحميل كل الملفات في الصفحة مباشرة، وسيتم تحميلها فقط عند الحاجة إليها. الأداء العالي: يمكن استخدام Vite لتحسين أداء التطبيقات، حيث يقوم بتحميل الملفات بشكل أسرع ويوفر ميزات مثل التحميل التوقعي (preloading) والتحميل العكسي (reverse proxying)، مما يجعل تجربة المستخدم أكثر سلاسة.
  22. نعم، يفضل دراسة كل من لغات C++ و Python. في مجال الذكاء الاصطناعي، يتم استخدام كل من اللغتين معًا في نفس الوقت. يتم استخدام C++ للقيام بالعمل في الإطار ويتم استخدام Python للتحكم في الإطار. نعم، Python ليست اللغة الرئيسية، واللغة الرئيسية هي C++. يتم استخدام لغة Python لإرسال المتطلبات إلى الإطار وعرض الإجابات للبشر. يتم العمل الفعلي في المكتبات المكتوبة بلغة C++. إذا كان بإمكانك القيام بعملك باستخدام الخوارزميات التي تم كتابتها بلغة C++، فمن المحتمل أن تستخدم فقط لغة Python للتعامل مع الإطار للقيام بالمهام المعروفة جيدًا. ومع ذلك، إذا كنت تقوم بتطوير خوارزميات جديدة، فستحتاج إلى تنفيذها باستخدام C++. كلما ابتعدت أكثر عن الخوارزميات الحالية، كلما تحتاج إلى العمل في C++. كلما استخدمت الخوارزميات الحالية أكثر، كلما استخدمت Python أكثر. لذلك، تشكل C++ و Python أداة قوية جدًا تتيح لك أن تكون فعالًا للغاية، مع التفكير في مستويات مختلفة من التجريد. أعتقد أن هذه الأداة القوية (C++ - Python) ليست فريدة من نوعها في مجال الذكاء الاصطناعي ويمكن استخدامها في جميع التحقيقات العلمية تقريبًا. أخيرًا، يجب علي أن أوضح أن C++ اليوم لا يمكن استبدالها، في حين يمكن استبدال Python بلغات أخرى مثل Julia أو R. ومع ذلك، فإن Python هي اللغة السائدة حاليًا.
  23. يتم استخدام عنصر `<div>` في HTML لإنشاء عناصر تحتوي على مجموعة من العناصر الأخرى وتنظيمها بطريقة محددة. وتعتبر هذه العناصر مفيدة لأنها تسمح بتنظيم الصفحة وتجميع العناصر المتعلقة ببعضها البعض مما يتيح للمطورين إضفاء التنظيم والتنسيق على محتوى الصفحة. وهنا بعض الأسباب المفصلة التي توضح لماذا يتم استخدام عنصر `<div>` في HTML: التنظيم: يسمح عنصر `<div>` بتحديد مجموعة من العناصر الأخرى وتنظيمها بطريقة محددة. وعند استخدام `<div>` بشكل جيد، يتيح للمطورين تصميم صفحات ويب أكثر تنظيمًا وسهولة في القراءة. باستخدام `<div>`، يمكن للمطورين تجميع العناصر المتعلقة ببعضها البعض وإدارتها بسهولة. وبهذه الطريقة، يصبح من الأسهل إضافة وحذف العناصر بشكل فعال. التنسيق: يمكن لعنصر `<div>` تطبيق مظهر وتنسيق محدد على مجموعة من العناصر المتعلقة ببعضها البعض. وعند تطبيق التنسيقات الصحيحة، يمكن للمطورين إضفاء التنسيق والتصميم على الصفحة. تحسين تحسين محركات البحث: يمكن استخدام `<div>` بشكل صحيح لتحسين تصنيف صفحات الويب في محركات البحث. يمكن تحسين تصنيف صفحة الويب بتنظيم محتواها بطريقة منطقية باستخدام عناصر `<div>`. بشكل عام، يمكن القول أن استخدام عنصر `<div>` في HTML يتيح تنظيم الصفحة والإدارة الفعالة للعناصر والتحكم في التنسيق وتحسين تحسين محركات البحث.
  24. السؤال يتعلق بجدول يسمى employees والذي يحتوي على بيانات الموظفين بما في ذلك رواتبهم. وفقًا للسؤال، تم التكليف بحساب المتوسط الشهري لجميع الرواتب في هذا الجدول. ومن دون أن تدرك، كان مفتاح الصفر على لوحة مفاتيحها معطلًا، مما جعلها تقوم بحساب المتوسط بدون وجود الأصفار في الرواتب. الإستعلام الذي يجب كتابته لحساب الفرق بين المتوسط الشهري الفعلي للرواتب والمتوسط الذي تم حسابه بطريقة خاطئة وتقريب النتيجة إلى الصحيح التالي هو: SELECT CEIL(AVG(salary) - AVG(REPLACE(salary, '0', ''))) FROM employees; هذا الاستعلام يقوم بحساب المتوسط الشهري الفعلي للرواتب باستخدام دالة AVG: AVG(salary) ثم يقوم بحساب المتوسط الذي تم حسابه بطريقة خاطئة باستخدام دالة AVG مع REPLACE لإزالة الأصفار من الرواتب: AVG(REPLACE(salary, '0', '')) ثم يقوم بحساب الفرق بينهما: AVG(salary) - AVG(REPLACE(salary, '0', '')) وأخيرًا، يقوم بتقريب النتيجة إلى الصحيح التالي باستخدام دالة CEIL: CEIL(AVG(salary) - AVG(REPLACE(salary, '0', ''))) عند تشغيل هذا الاستعلام على الجدول employees الذي تم تحديده في السؤال، يتم حساب الفرق بين المتوسط الشهري الفعلي للرواتب والمتوسط الذي تم حسابه بطريقة خاطئة، ويتم تقريب النتيجة إلى الصحيح التالي.
  25. يفضل عدم ذكر التقنيات الأساسية مثل HTML و CSS و JavaScript في ملف Readme للمشروع، لأنها بديهية ومفترضة .فمثلاً عندما يرى أي شخص مشروع ويب، فهو يفترض بشكل تلقائي أنه مبني باستخدام HTML و CSS و JavaScript. يجب أن يركز ملف Readme على التقنيات أو المكتبات التي تم استخدامها وتميز المشروع، مثل Bootstrap أو Axios أو غيرها. هذا ما يهم القراء. يؤدي إلى قائمة طويلة: إذا تم تضمين التقنيات الأساسية، ستكون قائمة التقنيات في الملف طويلة للغاية وغير ضرورية. يكفي ذكر التقنيات الإضافية التي استخدمتها لبناء المشروع، مثل: Bootstrap Axios للطلبات HTTP أي API خارجية استخدمت في المشروع أي إضافات أو مكتبات JavaScript أخرى أي نظام إدارة قوالب مثل Pug أو EJS هذا يعطي القارئ فكرة أفضل عن التقنيات المتقدمة التي بني عليها المشروع. بشكل عام، يجب على ملف Readme أن يحتوي على: وصف موجز للمشروع تعليمات التثبيت إذا تطلب الأمر التقنيات المستخدمة (غير الأساسية) شرح كيفية الاستخدام أي فوائد أخرى
×
×
  • أضف...