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

Mustafa Suleiman

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

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

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

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

    365

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

  1. بالطبع من الأفضل تقسيم المهام وذلك هو النهج الصحيح عند تطوير مشاريع كبيرة، ولذلك فوائده: تقسيم العمل إلى أقسام أصغر يجعل عملية البرمجة أكثر سهولة وإدارة. يمكن لفريق العمل التركيز على وظائف محددة دون الحاجة إلى فهم جميع جوانب التطبيق. العمل على القسمين بشكل متزامن، مما يسرع عملية التطوير. يصبح من السهل إصلاح الأخطاء وتحديث الوظائف في كل قسم على حدة. تطوير واختبار كل خدمة بشكل مستقل دون التأثير على الخدمات الأخرى. ويجب تصميم التطبيق بشكل يسمح بتقسيمه إلى قسمين بشكل فعال. يجب أن تكون الوظائف العامة موجودة في قسم واحد فقط، بينما يجب أن تكون الوظائف الخاصة بكل خدمة موجودة في القسم الخاص بها، وبالطبع استخدام نظام إدارة الإصدارات لتتبع التغييرات التي يتم إجراؤها على كل قسم. مع وجود تواصل فعال بين فريق العمل في كل قسم لضمان التكامل بين الوظائف المختلفة، أيضًا اختبار التطبيق بشكل شامل للتأكد من أن جميع الوظائف تعمل بشكل صحيح في كل قسم. وبالطبع يوجد أدوات خاصة بإدارة المشاريع مثل منصة أنا وTRELLO وغيرهم.
  2. لا فرق بينهم، حيث نستخدم علامات الإقتباس في البرمجة للإشارة إلى السلاسل النصية، أي يتم ترجمة النص داخلها على أنه نص. بالطبع هناك استثناء لذلك من خلال الدالة f-strings وهي ميزة جديدة تم إدخالها في بايثون 3.6، عبارة عن نوع خاص من السلاسل النصية تسمح بتضمين المتغيرات مباشرة داخلها. مثال: length = 5 width = 3 area = length * width print(f"The area of the rectangle is {area}") لاحظ تم طباعة قيمة المتغير area ضمن السلسلة النصية.
  3. لا يوجد ما يسمى لغة آمنة أو نظام آمن، لكن يوجد لغة قوية ويصعب اختراقها وأنظمة كذلك. والأمر يعتمد بشكل كبير على المُبرمج نفسه وعلى إتباعه الممارسات الجيدة أثناء تطويره للمشروع وإهتمامه بالجانب الأمني وأن يكون على دارية بالأمور التي تُعرض الكود للإختراق. كمثال: لكن بالرغم من كون لغة PHP آمنة إلا أن كونها لغة شائعة الاستخدام ومفتوحة المصدر يشجع على استغلالها قبل المخترقين الذين يستغلون أي ثغرات أمنية تؤثر على تطبيقات PHP لتنفيذ الهجمات على المواقع، لذا من المهم إبقاء مواقعك محدثة إلى آخر الإصدارات من PHP. أي هي تعد من اللغات ضعيفة التنميط weakly-typed بمعنى أنك قادر على تخزين رقم في متغير ما ثم تخزين نص في نفس المتغير وهذا الأمر يجعل اللغة أكثر مرونة لكنه قد يسبب أخطاء غير متوقعة في التطبيقات، وأضافت الإصدارات الحديثة بدءًا من PHP 7 إمكانية تحديد أنواع المتغيرات والقيم الممررة إلى الدوال والمعادة منها، يمكن للمطورين الاستفادة من هذه الميزات لتحسين تطبيقاتهم الجديدة. وهناك العديد من لغات البرمجة الأخرى الأكثر أمانًا من PHP، مثل Java و C#، لذا تجد أنه يتم استخدام Java في مواقع البنوك مثلاً.
  4. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، لكن كمساعدة في تنفيذ المطلوب. المطلوب دمج صورتين بواسطة بايثون، لذا ستحتاج استخدام مكتبة OpenCV لمعالجة الصور ومكتبة NumPy للتعامل مع المصفوفات. حيث ستقوم بقراءة الصورة الأولى من خلال دالة معينة في OpenCV، ثم نفس الأمر للصورة الثانية. بعد ذلك التحقق من تطابق أبعاد الصورتين و إظهار رسالة خطأ إذا لم تتطابق أبعاد الصورتين، ثم دمج الصورتين باستخدام دالة معينة في OpenCV أيضًا. بعد ذلك عرض الصورة الناتجة و انتظار ضغط مفتاح لإغلاق النافذة، ويمكن حفظ الصورة الناتجة في ملف باسم output.jpg لكن تلك نقطة إختيارية. وتستطيع استخدام مكتبات أخرى لدمج الصور مثل Pillow.
  5. ما تتحدث عنه هو Server Components وهي ميزة جديدة في React وعليك استخدام أحدث إصدار من React وهو 18.20 لتستخدمها. وتلك الميزة تعمل على حل مشاكل موجودة في مشاريع React مثل مشكلة Water fall وهي أنّ المكونات قد تظهر بشكل متأخر وليس بشكل متتالي أو سويًا، حيث أن بعض المكونات قد تطلب بيانات من سيرفر مختلف والبعض الآخر يطلب بيانات من سيرفر آخر لذا وقت الرد ليس واحد، فتجد أن مكون قد ظهر بينما مكون آخر قد ظهر بعد فترة وقام بإزاحة المكون الذي ظهر إلى الأسفل لأنه من المفترض أن يظهر قبله في الكود لدينا لكن لم يظهر بسبب تأخر البيانات. أو حتى جلب البيانات من نفس السيرفر، فتخيل مكون أب بداخله مكونين أبناء، ويقوم المكون الأب بجلب بيانات أو أيًا كان المهم يجري إتصال مع الـ API في الواجهة الخلفية، فلن تظهر المكونات الأبناء حتى يكتمل الإتصال ويتم الحصول على البيانات. أيضًا في حال حذف مكون ولا نريده في المشروع بعد الآن، سنظل نحصل على البيانات الخاصة به من الواجهة الخلفية، فتخيل مثلاً دالة باسم fetchAllDetails تجلب كل البيانات الخاصة بقسم معين سنجد أنها تجلب بيانات لمكون لم يعد نستخدمه وبالتالي تلك مشكلة بالنسبة لصيانة الكود بسبب وجود كود غير مستخدم ويستهلك موارد التطبيق لدينا والوقت المتاح للتحميل. أيضًا الطريقة التي تعمل بها React هو تحديث الـ DOM من خلال JS وعرض المكونات من خلال جافاسكريبت، أي في بداية تحميل صفحة التطبيق لا يوجد أي كود HTML لدينا ويلزم استخدام جافاسكريبت لعرض المكونات وتحديث الـ DOM وتلك عملية ثقيلة على المتصفح وأيضًا بطيئة بالنسبة للمستخدم. لذا ميزة Server Components تقوم بمعالجة المكون على السيرفر (الخادم) ثم توفير كود HTML وجافاسكريبت مباشرًة للمتصفح، أي تتم الأمور كلها من قبل الخادم. وبالطبع نستخدم ذلك في المكونات التي ليست بحاجة إلى تفاعل مع المستخدم، والتي بحاجة إلى تفاعل نستخدم Client components
  6. أرجو التوضيح خبرة في https للقيام بماذا؟ عامًة في أي دورة برمجية في الأكاديمية، سيتم توضيح كيفية التعامل مع طلبات AJAX والتي تستخدم بروتوكول http وذلك في حال تم استخدامها بالدورة. لكن من الأفضل لو قمت بالقراءة أو دراسة الأمر بشكل بسيط لمعرفة الأساسيات وما معنى أرقام الأخطاء مثل 404 و500 أو أرقام نجاح الطب مثل 200، وستجد هنا مرجع لك.
  7. أرجو طرح سؤالك أسفل فيديو الدورة لمساعدتك بشكل أفضل، وطرح الأسئلة العامة هنا، ستجد صندوق تعليقات في نهاية صفحة الدرس. وعند رفع المشروع، نقوم بضغط مجلد المشروع من الخارج بواسطة winRAR ثم نرفع المجلد المضغوط وليس الملفات بشكل منفرد.
  8. أرجو قراءة التالي
  9. غالبًا مجلد bin لديك ليس مُضمن بمسارات البيئة System's environment variable، أي مسار مشابه للتالي: C:\ProgramFiles\Java\jdk1.8.0_05\bin توجهي للمسار المشابه على حاسوبك ثم نسخه ثم إضافته لمتغيرات البيئة. فذلك المجلد bin يحتوي على ملف باسم javac كالتالي: وبعد إضافته أعيدي تشغيل منفذ الأوامر.
  10. هل استخدمت المكتبة التالية؟ https://www.npmjs.com/package/@paypal/react-paypal-js والكود لديك ليس به مشكلة فالزر يظهر عند تجربته، يمكنك تفقد المثال التالي لتفهم الأمر والتعديل على الكود وتجربة الكود الخاص بالزر لديك: https://paypal.github.io/react-paypal-js/?path=/docs/example-paypalbuttons--default
  11. لم تعد استضافة heroku مجانية، ومن البدائل المتاحة كانت منصة railway إلا أنها لم تعد مجانية أيضًا، ومن حيث السهولة في الاستخدام لديك الآن vercel (تدعم (Node.js, Go, Ruby, Python) و أيضًا يوجد Render.com وcyclic.sh، بجانب Netlify والتي تدعم اللغات والبيئات التالية: Node.js Ruby Python PHP Go Java والمزيد يمكنك تفقده من خلال المستند الرسمي. وبخصوص استضافة قاعدة بيانات، فلديك planetscale وsupabase وcockroachDB بالإضافة إلى Atlas.
  12. حاول إعادة إنشاء ملف ldpaths وذلك من خلال إنشاء ملف فارغ باسم ldpaths في المجلد etc داخل مجلد R الرئيسي: sudo touch /usr/lib/R/etc/ldpaths ثم تعديل ملف Rprofile في مجلد R الرئيسي (~/.Rprofile)، أو إنشائه إذا لم يكن موجودًا. Sys.setenv("R_HOME"="/usr/lib/R") إن استمرت المشكلة تأكد من أنك قمت بإزالة R بشكل كامل قبل المحاولة الأولى لإعادة التثبيت، تحقق من ذلك بواسطة: dpkg -l | grep r-base وإن كان لديك أي حزم من R مثبتة، فيجب إزالتها جميعًا باستخدام الأمر: sudo apt-get purge r-base r-base-core r-recommended r-cran-* وإذا واجهتك أي مشاكل، فربما تحتاج إلى إعادة تهيئة متغيرات البيئة المتعلقة بـ R_HOME، وذلك عبر تعديل ملفات الإعداد في /etc/profile.d/ أو /etc/environment.
  13. عليك بالتوجه إلى الرابط التالي وتسجيل الدخول إذا طلب منك ذلك: https://accounts.hsoub.com/settings?service=11 ثم ستجد الاسم واسم العائلة، قم بتغييره للاسم الذي تريده، وبالأسفل اضغط على حفظ التعديلات. وستجد أنه تم تعديل الاسم هنا، وإذا لم يتم ذلك، قم بتسجيل الخروج ثم إعادة تسجيل الدخول.
  14. الكود يعمل بشكل سليم لا مشكلة، لرؤية النتيجة لا تقومي بإدخال أية أسماء أخرى اضغطي على Enter وسيتم عرض النتائج.
  15. توزيعة ريدهات لها إصدارات مدفوعة وأخرى مجانية، فالإصدارات المدفوعة هي: Red Hat Enterprise Linux (RHEL) هو الإصدار المدعوم من ريدهات، ويتميز بالاستقرار والأمان والدعم الفني من ريدهات. Red Hat Developer Suite عبارة عن مجموعة من أدوات التطوير التي توفرها ريدهات للمطورين. Red Hat OpenShift Platform هي منصة سحابية مفتوحة المصدر لإنشاء وتشغيل التطبيقات. أما الإصدارات المجانية فهي Fedora وهي توزيعة لينكس مجانية ومفتوحة المصدر تدعمها ريدهات، أيضًا CentOS Stream وهي توزيعة لينكس مجانية ومفتوحة المصدر مبنية على RHEL. والفرق بين الإصدارات المدفوعة والمجانية يتمثل في: توفر ريدهات دعمًا فنيًا مدفوعًا لمستخدمي RHEL بينما لا توفر ريدهات دعمًا فنيًا مجانيًا للإصدارات المجانية. يتم اختبار RHEL بشكل مكثف لضمان استقراره وأمانه بينما لا تكون الإصدارات المجانية مستقرة أو آمنة مثل RHEL. لذا RHEL معتمدة في البيئات التجارية والحكومية، مما يجعلها خيارًا شائعًا للشركات التي تحتاج إلى دعم موثوق واستقرار. https://academy.hsoub.com/devops/linux/redhat/
  16. @Asd البريكي إذن المشكلة لديك بسبب vanguard المستخدم في حماية ألعاب RIOT، إذا كان إصدار الويندوز لديك هو 21h2 عليك إذن تحديث النسخة. أيضًا تنفيذ الأمر التالي بمنفذ الأوامر لمحاولة حل المشاكل في الهارديسك والرامات: sfc/scannow ثم بعد الإنتهاء: chkdsk C: /f/x/r أيضًا تعطيل الخاصية التالية في الويندوز، ابحث عن performance في شريط البحث بالويندوز بالأسفل ثم اختر adjust appearance and performance: بعد ذلك اختر advanced من النافذة التي ستظهر لك، ثم اختر change ثم قم بإلغاء automatically manage paging file ثم اضغط ok وقم بعمل إعادة تشغيل للحاسوب:
  17. Angular 17 متوافق مع الإصدارات القديمة وبالتالي معظم ما ستتعلمه في الدورات القديمة سينطبق على Angular 17. وهناك بعض التغييرات المهمة في Angular 17 التي لم تكن موجودة في الإصدارات القديمة، أهمها: Ivy: هو مترجم جديد لـ Angular يجعل الكود أسرع وأكثر كفاءة. Pipes: تم تحسين وظائف الأنابيب بشكل كبير. Testing: تم تحسين اختبارات الوحدة واختبارات النهاية إلى النهاية. Material Design: تم تحديث مكونات Material Design لتتوافق مع معايير Material Design 3. لذا من الأفضل تعلم الإصدار الأحدث، لكن لو وجدت إصدار 16 أو 15 مثلاً، لكن الدورة محتواها أفضل والشرح يتناسب معك فلا مشكلة في ذلك، وتستطيع تعلم الميزات الجديدة في الإصدارات الأحدث دونّ مشكلة سواء من خلال المستند الرسمي أو من اليوتيوب.
  18. أرجو التعليق أسفل فيديو الدرس ستجد صندوق تعليقات في أسفل الصفحة، وذلك لمساعدتك بشكل أفضل، وطرح الأسئلة العامة هنا. وعامًة، تأكد من حفظ الكود من خلال CTRL + S لتظهر التعديلات، وأيضًا تحديث الصفحة في حال لم تكن تستخدم إضافة live server. وأرجو توفير صورة للمشكلة. وإليك مثال للطباعة: HTML: <!DOCTYPE html> <html> <head> <title>Print to Console Example</title> </head> <body> <h1>This is an HTML page</h1> <script src="index.js"></script> </body> </html> ملف index.js: console.log("Hello there!");
  19. هل تستطيع الدخول لسطح المكتب؟ أم تظهر لك الشاشة الزرقاء مباشرًة؟ وهل تم عمل فورمات لقرص الـ C ثم تثبيت ويندوز جديد؟ في حال تم ذلك فالمشكلة إما بسبب الهارديسك لديك أو الرامات (الذاكرة العشوائية)، إن كان لديك أكثر من رام حاول حذف واحدة منهم ثم التجربة، وإن استمرت قم بتركيب ما تم إزالته ثم إزالة الأخرى والتجربة. أيضًا إن كان لديك هارديسك آخر حاول تثبيت الويندوز عليه للتجربة.
  20. بالطبع فالدورة تؤهلك للقيام بالأمور التالية: مطور Full-stack لبناء مواقع الويب والمتاجر الإلكترونية أي قادر على تطوير الواجهة الأمامية والخلفية أيضًا من خلال Django و Flask. مطور واجهة خلفية Back-End فقط. مجال تعلم الآلة ولكن هنا أنت بحاجة إلى تعلم المزيد وعدم الإكتفاء بالدورة والأمر بحاجة إلى وقت أكثر من أي مجال آخر. محلل بيانات (Data Analyst )، حيث ستتمكن من استخدام مهارات البرمجة الخاصة بك للتحليل واستخراج البيانات من مصادر متنوعة، ومعالجة البيانات، وإجراء التحليلات الإحصائية والتعلم الآلي باستخدام مكتبات Python مثل pandas و NumPy و scikit-learn. مطور odoo بخصوص فترة شهر فالأمر لا يمكن تحديده، البعض قد يستغرق 3 أشهر للحصول على أول وظيفة، فدائمًا أول وظيفة هي الأصعب. لكن بالطبع يمكن تقليل تلك المدة، بالاستعداد جيدًا من خلال وجود معرض أعمال قوي لإثبات جاهزيتك وعرض مهاراتك بشكل عملي مما يضعك في موقف أفضل من باقي العروض التي ليست لديها معرض أعمال مناسب. أيضًا تعلم كتابة عرض مناسب عند التقديم على المشاريع والظهور بمظهر إحترافي وكيفية التسويق لنفسك بدون الظهور بمظهر المبتدئين. وأرجو قراءة التالي:
  21. المشكلة لديك هي أنّ المصفوفة notes ليست مصفوفة وبالتالي ميثود map لا يمكن التعرف عليها لأنها خاصة بالمصفوفات، وذلك ما يظهر لك map is not a function. لذا تأكد من تمرير notes بشكل صحيح وأنها مصفوفة يمكنك طباعتها بالكونسول للتأكد.
  22. مسؤول عن جميع جوانب الموقع الإلكتروني، بدءًا من تصميمه وتطويره ووصولًا إلى صيانته وتشغيله، وبالطبع تختلف مسؤوليات مدير الموقع اعتمادًا على نوع الموقع،وتشمل وظائفه ما يلي: 1. إدارة المحتوى: إنشاء وتحرير ونشر المحتوى على الموقع، مثل المقالات والصور ومقاطع الفيديو. ضمان دقة وفعالية المحتوى. تحسين المحتوى للبحث (SEO). إدارة حقوق النشر والملكية الفكرية. 2. التصميم والتطوير: الإشراف على تصميم وتطوير الموقع. ضمان سهولة استخدام الموقع وفعاليته. اختبار الموقع والتأكد من خلوه من الأخطاء. إجراء التحديثات والتغييرات على الموقع. 3. الصيانة والتشغيل: ضمان أمان الموقع وسلامته. مراقبة أداء الموقع وتحليله. حل المشكلات الفنية التي قد تواجه الموقع. تحديث البرامج والمكونات الإضافية. 4. التسويق: الترويج للموقع وجذب الزوار. تحسين زيارات الموقع (SEO). إدارة حملات التسويق عبر الإنترنت. تحليل بيانات الموقع لفهم سلوك الزوار. 5. إدارة الفريق: الإشراف على فريق عمل الموقع، مثل مصممي الويب والمطورين وكتاب المحتوى. توزيع المهام وتحديد الأولويات. تقييم أداء الفريق وتقديم التوجيهات. ,في حال كان الموقع متجرًا إلكترونيًا، فتشمل وظائف مدير الموقع أيضًا: إضافة وتعديل وحذف المنتجات. تتبع الطلبات والمخزون. ضمان أمان معالجة المدفوعات. حل مشكلات العملاء والرد على استفساراتهم. فمثلاً مدير موقع ويب إخباري مسؤول عن نشر المقالات الإخبارية، وإجراء المقابلات، وتحرير المحتوى، والتأكد من صحة المعلومات. ومدير موقع متجر إلكتروني مسؤول عن إضافة المنتجات الجديدة، وإدارة المخزون، ومعالجة المدفوعات، وتقديم خدمة العملاء. ومدير موقع شركة مسؤول عن تصميم الموقع وتطويره، ونشر المحتوى، والترويج للشركة، وتحليل بيانات الموقع.
  23. النشر يتم على منصة جوجل بلاي لكونها الأكثر استخدامًا والأسهل في النشر. وعملية إطلاق التطبيق ونشره تتم بواسطة الفريق التقني، لذا يكفي الإطلاع على سير العملية على منصة واحدة لفهم ما يحدث، وذلك ما تم بالدورة.
  24. أولاً الدالة floor غير موجودة في مكتبة C++ الأساسية وعليك تعريفها بواسطة <cmath>. أيضًا أنت تستخدم عامل modulo (%) مع نوع float على الجانب الأيسر وأنواع int على الجانب الأيمن، وذلك غير صحيح لأن عامل modulo يتطلب أن يكون كلا الجانبين من نوع integer، أي تحويل المتغير Seconds إلى int قبل العملية. ويوجد قوس مغلق (}) ناقص في نهاية دالة main. لذا الكود الصحيح هو: #include <iostream> #include <cmath> using namespace std; int main() { float Seconds; float remender; cout << "Enter Number Seconds: \n"; cin >> Seconds; int secperD = 24 * 60 * 60; int secperH = 60 * 60; int secperM = 60; int NumOfD = floor(Seconds / secperD); remender = static_cast<int>(Seconds) % secperD; int NumOfH = floor(static_cast<int>(remender) / secperH); remender = static_cast<int>(remender) % secperH; int NumOfM = floor(static_cast<int>(remender) / secperM); remender = static_cast<int>(remender) % secperM; int NumOfS = remender; cout << "Number of Days: " << NumOfD << endl; cout << "Number of Hours: " << NumOfH << endl; cout << "Number of Minutes: " << NumOfM << endl; cout << "Number of Seconds: " << NumOfS << endl; return 0; }
  25. ستحتاج إلى استخدام إطار Flask أو Django، فتلك الإطارات توفر إنشاء API بكل سهولة، أيضًا يوجد إطار FastAPI مع أدوات مدمجة للتحقق من صحة البيانات. لذا اختر الإطار الذي تريده، وإن المشروع بسيط فاستخدم Flask. والأمر مماثل لكل منهم: حدد نقاط النهاية (endpoints) التي ستعرض وظائف مشروعك. حدد نوع البيانات التي ستستخدمها لنقل البيانات بين العميل والخادم. حدد HTTP methods لعمليات CRUD (إنشاء، قراءة، تحديث، حذف). https://academy.hsoub.com/programming/python/flask/
×
×
  • أضف...