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

Mustafa Suleiman

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

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

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

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

    272

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

  1. Series عبارة عن نوع بيانات خاص في pandas مخصص لتمثيل البيانات ذات المحاور (مثل السلاسل الزمنية) لكن القواميس نوع بيانات عام في Python لتمثيل مجموعات البيانات ذات المفاتيح والقيم. وتُنظم البيانات في Series بمحورين هما المحور الرئيسي (index) والقيم بينما في القواميس باستخدام المفاتيح والقيم فقط. يوجد في Series مجموعة واسعة من الوظائف المخصصة لتحليل البيانات ومعالجتها، مثل التصفية والفرز والتجميع، وتم تصميمها للتعامل مع مجموعات البيانات الكبيرة بكفاءة عالية، باستخدام خوارزميات محسّنة لتحليل البيانات. في حين تفتقر القواميس إلى مثل تلك الوظائف المخصصة، وتتطلب استخدام مكتبات خارجية أو كتابة أكواد مخصصة للتعامل مع البيانات بشكل متقدم، وهي أقل كفاءة عند التعامل مع مجموعات البيانات الكبيرة، خاصةً عند إجراء عمليات تحليلية معقدة.
  2. بشكل بسيط MySQL تعتمد على جداول وعلاقات، بالتالي مناسبة لتمثيل البيانات المنظمة بوضوح، لكنها تواجه تحديات في التوسع مع تزايد عدد المستخدمين و حجم البيانات، أي تواجه تحديات في الأداء عند التعامل مع كميات كبيرة جدًا من البيانات أو عند الحاجة إلى التوسع الأفقي. وغير مناسبة لتخزين البيانات الغير منظمة أي التي تتغير، بمعنى أنها تتطلب هيكل بيانات صارم، وذلك عائقًا في حال الحاجة إلى تغيير بنية البيانات بشكل متكرر. بمعنى أنها ستكون خيارًا جيدًا في حال كان تطبيقك صغيرًا أو متوسط الحجم، مع تخزين بيانات منظمة مثل: معلومات عن الصالات: الموقع، السعة، السعر، الميزات. معلومات عن العملاء: الاسم، البريد الإلكتروني، رقم الهاتف. بيانات الحجوزات: تاريخ الحجز، وقت الحجز، نوع المناسبة. بينما MongoDB (NoSQL) مصممة للتوسع الأفقي و التعامل مع كميات هائلة من البيانات، وتتيح لكِ تخزين مجموعة متنوعة من البيانات، بما في ذلك البيانات الغير منظمة مثل الصور والفيديوهات، وتتميز بالسرعة العالية في معالجة البيانات، خاصةً مع الاستعلامات التي تتطلب قراءة بيانات متعددة. حيث تُخزن البيانات في MongoDB على شكل مستندات JSON، وهي مرنة و يمكن أن تحتوي على مجموعة متنوعة من البيانات، بما في ذلك النصوص، الأرقام، المصفوفات، و حتى المستندات المضمنة. وللعلم MongoDB مجانية لكن ستحتاجين إلى استضافة VPS لتثبيتها، أما إذا أردتي خدمة سحابية فيوجد MongoDB Atlas. و MongoDB ستكون خيارًا أفضل في حال تتوقعين نموًا سريعًا لتطبيقك وتحتاجين إلى تخزين بيانات غير منظمة. إذًا في مشروعك MySQL هي الخيار الأنسب.
  3. كان يتم الإعتماد على C++ فيما مضى بشكل كبير، لكن حاليًا أصبح التوجه نحو C# بسبب إطار .NET (مثل .NET Core و .NET 5/6) الذي تطور بسرعة كبيرة ومن خلاله تستطيع تطوير تطبيق لمختلف المنصات Cross-platform. وتُعتبر الخيار الرئيسي لتطوير تطبيقات Windows الحديثة باستخدام إطار العمل Windows Presentation Foundation (WPF) و Universal Windows Platform (UWP). أما C++ تُستخدم لتطوير تطبيقات ذات أداء عالي وتلك التي تحتاج إلى التفاعل المباشر مع نظام التشغيل، مثل مكتبات Windows API و DirectX لتطوير تطبيقات الألعاب وتطبيقات الرسوميات المكثفة. يوجد أيضًا إطار Eelectrone.js الخاص بلغة جافاسكريبت، لكن ذلك للتطبيقات والبرامج البسيطة التي لا تحتاج إلى أداء عالي واستقرار. أيضًا للتطبيقات البسيطة يوجد مكتبات مثل PyQt أو Tkinter الخاصة بلغة بايثون لتطوير تطبيقات سطح المكتب، لكنها غير مناسبة لتطبيقات Windows الكبيرة والمتقدمة.
  4. الطريقة الأولى من خلال تصميم تلك الصور والأيقونات على برنامج مثل الفوتوشوب واستخدامها في التصميم من خلال CSS. أما الأفضل هو الإعتماد على SVG وبالطبع الأمر ليس بالسهل للرسم من خلاله، لكن هناك أدوات توفر لك الرسم والتحميل مباشرًة مثل التالي: https://editor.method.ac/ https://vectorpaint.yaks.co.nz/ أو يمكنك استخدام برنامج مثل adobe illustrator لرسم الشكل الذي تريده وتصديره كـ SVG:
  5. أولاً لا يوجد مكتبة في اللغة العربية تدعم بشكل كامل تحويل النص إلى صوت في اللغة العربية (لكي ترتاح من عناء البحث عن مكتبة تقوم بذلك) اذا كان الهدف فقط التجربة تستطيع ذلك. يمكنك الاطلاع على هذا المشروع والاستفادة منه في تحويل النص إلى صوت text_to_speech. ومن الأفضل استخدام تعلم الآلة لفعل ذلك لديك مثلاً elevenlabs.io استخدم الـ API الخاص بهم. بخصوص pyttsx3 تأكد من أنك قمت بتحديد اللغة العربية كلغة النص الذي تريد تحويله إلى صوت باستخدام الأمر التالي: engine = pyttsx3.init() engine.setProperty('rate', 150) # سرعة النطق engine.setProperty('voice', 'com.apple.speech.synthesis.voice.sara') # اسم الصوت العربي وتستطيع استبدال 'com.apple.speech.synthesis.voice.sara' بالصوت العربي المناسب لجهازك. ستجد تفصيل أكثر حول تلك المشكلة هنا بخصوص gtts و pyttsx3 :
  6. لا يوجد أمر كذلك، فجميع مجالات البرمجة مطلوبة، بالطبع هناك أفضلية لمجال عن آخر حسب طبيعة سوق العمل في الوقت الحالي والتي تتغير كل 5 سنوات مثلاً لكون المجال البرمجي يتطور بشكل مستمر وهناك أمور تغير من مساره. لذا عليك تعلم أساسيات البرمجة أولاً ثم تفقد المجال البرمجي الذي يوجد عليه طلب والخبرة المطلوبة للعمل به، والمهارات البرمجية اللازمة، ثم تضع خطة وتسعى جاهدًا للوصول لذلك الهدف في مدة زمنية معينة ولن تقل عن سنة أقل من ذلك لن يصح. ومواقع التوظيف الألمانية هي: https://www.stepstone.de https://www.monster.de https://www.xing.com https://de.linkedin.com وستجد تفصيل أكثر هنا:
  7. لأن result ستعود لنا بقائمة list وبها رقم 7 لذا نريد طباعة الرقم فقط وليس القائمة.
  8. بشكل بسيط سيكون الكود كالتالي: my_list = [1, 2, 3, 4] result = [x + 5 for x in my_list if x == 2] print(result[0]) حيث نضع شرط في حلقة التكرار عندما يتم تلبيته يتم الجمع.
  9. غير متوفر دورة للأمن السيبراني في أكاديمية حسوب، لكن في حال لم يكن لديك دراية بمجال البرمجة وعلوم الحاسوب، ستحتاج إلى دورة تأهيلية لمساعدتك على إختيار المجال المناسب لك ووضعك على أرض صلبة. وتلك الدورة هي علوم الحاسوب حيث يتم بها شرح ما يلي: أساسيات الحاسوب وعلومه والتفكير المنطقي وما هي الخوارزميات وكيف تفيد في البرمجة تطبيقات عملية على أساسيات التفكير المنطقي باستخدام بيئة سكراتش Scratch التفاعلية أساسيات لغة البرمجة JavaScript وتطبيق المفاهيم التي تم شرحها باستخدامها، والتوسع في شرح التطبيقات العملية للغات البرمجة أساسيات أنظمة التشغيل المختلفة وكيفية تثبيت البرمجيات اللازمة للبرمجة عليها أساسيات سطر الأوامر في نظام لينكس، وشرح الأسس التي بني عليها النظام مع تطبيقها عمليًا أنظمة قواعد البيانات المختلفة، مع شرح تفصيلي للغة SQL للتعامل معها مبادئ أساسية في أنظمة قواعد البيانات NoSQL المفاهيم الأساسية التي تبنى فيها صفحات الويب مفاهيم أساسية في الشبكات والخوادم، وكيف يتم استقبال الطلبيات إلى الخادم والرد عليها مبادئ الحماية والأمان في الويب وبالنسبة للأمن السيبراني فهو ليس بحاجة إلى تعلمك للغات برمجة لكن من الأفضل على الأقل تعلم لغة واحدة وهي بايثون، وإن كنت تنوي العمل على مشاريع في الويب فستحتاج إلى جافاسكريبت وأساسيات PHP. وستجد تفصيل أكثر هنا:
  10. عليك حذف أي ملفات تم رفعها إلى المستودع على GitHub، أو حذف المستودع وإعادة إنشائه أيهما أسهل بالنسبة لك. ثم تعديل ملف .gitignore لديك بما يلي: ### Laravel ### /vendor/ node_modules/ npm-debug.log yarn-error.log # Laravel 4 specific bootstrap/compiled.php app/storage/ # Laravel 5 & Lumen specific public/storage public/hot # Laravel 5 & Lumen specific with changed public path public_html/storage public_html/hot storage/*.key .env Homestead.yaml Homestead.json /.vagrant .phpunit.result.cache ثم تنفيذ الأمر التالي لحذف المستودع المحلي لـ Git في مجلد مشروعك: rm -rf .git ثم إعادة إنشاء المستودع من خلال الأمر: git init ثم رفع المشروع من خلال: git add . // ثم git commit -m "first commit" // ثم git branch -M main // ثم git remote add origin https://github.com/ اسم المستخدم/repoName.git // ثم git push -u origin main
  11. من الاسم يكمن الإختلاف، حيث أنّ Public API (واجهة برمجية عامة) أي متاحة للجميع للإتصال بها والحصول على بيانات محددة من قبل الـ API. ولا يتطلب الوصول إلى Public API أي تسجيل أو إذن مسبق، وفي بعض الأحيان سيتعين عليك إنشاء حساب للحصول عليه. أي الواجهات متاحة للجمهور العام ويمكن لأي مطور استخدامها وفقًا للشروط والأحكام المحددة، مثل واجهات Google Maps API، Twitter API، أو Facebook API. أو بشكل أبسط تطبيق الطقس الذي يسمح للمطورين الآخرين باستخدام بيانات الطقس في تطبيقاتهم عن طريق واجهة برمجية عامة. بينما Private API (واجهة برمجية خاصة)، فيُمكن الوصول إليها فقط من قبل المستخدمين المُصرح لهم، بحيث يتطلب الوصول إلى Private API تسجيلًا و/أو إذنًا مُسبقًا. وهي متاحة فقط للمطورين داخل الشركة أو الفريق الذي يعمل على المشروع ولا يُتاح الوصول إليها للجمهور الخارجي، وذلك لتسهيل التفاعل والتكامل بين مختلف أجزاء التطبيق أو الأنظمة الداخلية للشركة. مثل نظام إدارة المحتوى الذي يستخدم واجهة برمجية خاصة لربط الواجهة الأمامية للموقع بقاعدة البيانات الخاصة بالشركة، أو واجهة برمجة التطبيقات الخاصة لإدارة قاعدة بيانات العملاء الداخلية، ومعالجة الطلبات، وحساب تكاليف التوصيل.
  12. الواجهة ستتكون من عدّة مكونات رئيسية وهم: الصفحة الرئيسية ستحتوي على التالي: عرض معلومات أساسية عن الموظف، مثل اسمه وصورة شخصية ورقم الموظف. قائمة بوظائف النظام الرئيسية، مثل "إدخال البيانات" و "التقارير" و "الاستعلامات". صفحة إدخال البيانات: تحتوي على نموذج لإدخال البيانات الأساسية للموظف، مثل المؤهل العلمي ومكان العمل الحالي. تسمح بتحميل صورة شخصية للموظف. صفحة الإجازات: تعرض رصيد الاجازات المتاح للموظف. تسمح بطلب إجازة جديدة، مع تحديد نوع الإجازة وتاريخ البدء والانتهاء. صفحة التقارير: تعرض تقارير الكفاءة للموظف. تسمح بتوليد تقارير جديدة حسب معايير محددة. وطالما أنك تريد تصميم الواجهة باستخدام Bootstrap فسيكون الأمر كالتالي: سنستخدم نظام شبكة Bootstrap لتنظيم محتوى الصفحات وتقسيمه بشكل متجاوب. مكونات Bootstrap مثل "الأزرار" و "النماذج" و "الجداول" لإنشاء عناصر واجهة المستخدم. سنعتمد CSS مخصصًا لتعديل مظهر واجهة المستخدم حسب احتياجاتنا. وفي لارافل عليك معالجة طلبات المستخدم وإنشاء استجابات ديناميكية، وقواعد بيانات للوصول إلى بيانات الموظفين وتعديلها وميزات Laravel للتحقق من صحة البيانات وتأمين النظام. ابحث عن hr dashboard ui وستجد نتائج مثل التالي:
  13. في السطر 194 من الكود.، يتم تعيين الخاصية android:layout_width إلى -2. وفي Android XML، لا يُسمح باستخدام القيمة "-2" مباشرةً لـ android:layout_width أو android:layout_height، وعليك استخدام إحدى القيم التالية بدلاً من ذلك: wrap_content: سيستحوذ العنصر على أكبر عرض ممكن داخل الوالد. fill_parent: سيأخذ العنصر نفس عرض الوالد. match_parent: سيأخذ العنصر نفس عرض الوالد. dimension: سيأخذ العنصر عرضًا محددًا بوحدات dp أو px. مثلاً كالتالي: <LinearLayout android:layout_width="100dp" android:layout_height="50dp"> </LinearLayout> أو: <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> </LinearLayout>
  14. المقصود أن Manifest version 2 قد أصبح قديمًا وسيتم إيقاف دعمه في عام 2024، كما سيتم حظر ملفات تعريف الارتباط الخاصة بجهات خارجية. ستحتاج إلى تحديث ملف manifest.json ليتوافق مع متطلبات جوجل كروم الجديدة، كالتالي: غيّر manifest_version من 2 إلى 3 في ملف manifest.json. تعديل الإضافة للتعامل مع حظر جوجل كروم لملفات تعريف الارتباط الخاصة بجهات خارجية، وتستطيع القيام بذلك بعدة طرق، مثل: استخدام واجهة برمجة التطبيقات Permissions API الجديدة لطلب إذن المستخدم لتنفيذ مهام تتطلب ملفات تعريف الارتباط. استخدام تخزين التخزين المحلي بدلاً من ملفات تعريف الارتباط لبعض البيانات. تعديل وظائف الإضافة لتجنب الاعتماد على ملفات تعريف الارتباط. وتأكد من أن الإضافة تتوافق مع سياسات محتوى الأمان الجديدة في جوجل كروم. https://developer.chrome.com/docs/extensions/develop/migrate
  15. ذلك مذكور بالفعل من ضمن وصف الدورة، لذا عملية المتابعة بعد التخرج تتم من خلال مركز المساعدة أرجو التحدث إليهم وإخبارهم بما قمت بتحقيقه حتى الآن وما تريده في الخطوة القادمة لك لتوجيهك وتوضيح الأمر لك. وللعلم دورة علوم الحاسوب دورة تأسيسية أكثر منها دورة للتخصص في مجال برمجي وتعلم تقنيات ومكتبات وخلافه، بل الغرض منها تأهيلك لدخول عالم البرمجة وإختيار المجال البرمجي المناسب لك للتخصص به والعمل به في سوق العمل.
  16. عليك إضافة وظيفة callback التي تتم عند انتهاء العداد وهي onExpiry في مكتبة jQuery Countdown التي تستخدمها. لكن أولاً، قم بإضافة معرف فريد لكل زر تسليم في ملف show.blade.php: <td> <div class="counter wow animate__animated animate__fadeInDown"> <div class="defaultCountdown" data-date="{{ $homework->deadline }}"> </div> </div> </td> <td> <div class="delivery"> <a href="{{ route('download-file', $homework->id) }}" class="btn btn-sm btn-secondary" id="delivery-button-{{ $homework->id }}"> <i class="fa fa-upload"></i> تسليم </a> </div> </td> ثم، قم بإضافة الوظيفة onExpiry إلى العداد: <script> $(function () { $('.defaultCountdown').each(function (i) { const time = new Date($(this).data('date')); $(this).countdown({ until: time, format: 'odHMS', onExpiry: function() { const id = $(this).parent().parent().find('.delivery a').attr('id'); $('#' + id).hide(); } }); }) }); </script>
  17. تفقد استخدام المعالج هل هناك مشكلة به أثناء التشغيل؟ فتلك المشكلة غالبًا من استهلاك مرتفع للمعالج. وما هي نسخة Visual studio التي تستعملها؟ هل هي 2022؟ حاول إذن استخدام نسخة 2019. https://visualstudio.microsoft.com/vs/older-downloads/ وإن استمرت المشكلة، يمكنك استخدام Vscode بدلاً من Visual studio فهو أخف ولا يستهلك موارد الحاسوب.
  18. ما سبب تلك المساحة، هل قمت بعدم تضمين ملف node_modules من خلال ملف .gitignore حيث لا يتم رفعه إلى مستودع GitHub، فبه الحزم المثبتة بالمشروع، لذا عند تحميل شخص آخر لمشروعك يقوم بتحميلها من خلال ملف package.json من خلال أمر npm install
  19. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  20. ستجد في وصف الدورة التالي: وصول مدى الحياة لمحتويات الدورة تحديثات مستمرة على الدورة تحصل عليها مجانًا بالمستقبل نصائح مخصّصة لك وإرشاد بعد الدورة ضمان استرداد استثمارك خلال 6 أشهر شهادة معتمدة من أكاديمية حسوب لذا تلك من ضمن بنود الدورة التي اشتركت على أساسها، وستجد تفصيل هنا بخصوص ذلك:
  21. عند رفع مشروع بايثون على استضافة، هناك أمر لبناءالمشروع Build Command يتم تنفيذه وهو: pip install -r requirements.txt ومن خلاله يتم تثبيت جميع الحزم للازمة للمشروع من خلال ملف requirements.txt، ولا تقوم برفعها مع المشروع بل يتم تثبيتها على الاستضافة. ستجد توضيح مُفصل هنا:
  22. لأنك تستخدم قاعدة بيانات SQLite عليك تفعيل الإضافات التالية في ملف php.ini: extension=pdo_sqlite extension=sqlite3 ستجد بجانبهم فاصلة ; منقوطة قم بحذفها لتفعيل الإضافة ثم قم بالضغط على CTRL + S للحفظ. وإذا كنت لا تستخدم SQLite في لارافل 11، فقم بتعديل المتغيرات التالية في ملف .env: SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null إلى: SESSION_DRIVER=cookie SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null
  23. ومن أين سيحصل الـ ِAPI على البيانات؟ تقصد من ملف JSON مثلاً؟ الأمر يتوقف على حجم البيانات ونوعها، لكن عامًة الأفضل وجود قاعدة بيانات بسيطة على الأقل مثل SQLite وطالما أنك تستخدم فلاسك فالمشروع بسيط ولن يحتاج قاعدة بيانات معقدة عن SQLite.
  24. هل المقصود هو إنشاء list بها underscoresبطول يمثل طول الكلمة؟ سيكون الكود كالتالي: import random word = ["good", "bada"] chosen_word = random.choice(word) array = ["_" for _ in chosen_word] print(array) حيث أنّ "_" يمثل العنصر الذي سيتم إضافته مرارًا وتكرارًا إلى قائمة array من خلال for _ in. والرمز "_" بعد for هو متغير حامل لعلامة مكان لا يحمل أي قيمة فعلية ونستخدمه ببساطة للتكرار على التسلسل المقدم بعد ذلك، وتستطيعي استخدام i لا مشكلة.
  25. ما تقصده هو أدوات Low code أو No Code، وتلك الأدوات ستظل موجودة دائمًا، فليس جميع المشاريع بحاجة إلى برمجة من الصفر وتخصيص المشروع بناءًا على احتياجاته. فهناك مشاريع بسيطة بحاجة إلى أدوات جاهزة، لذا تلك المنصات موجهة لذلك، وهي مفيدة أيضًا لتنفيذ نماذج تجريبية Demos أو تصاميم أولية بشكل سريع لفكرة مشروع معين تريد تفنيذها لتجربتها أو عرضها على الفريق الذي تعمل معه أو العميل. عليك الإهتمام بتعلم الأساسيات بشكل جيد أثناء البرمجة وهي HTML, CSS, JS وعدم الإهتمام بشكل كبير بالتقنيات وبتلك المنصات، فهي متغيرة وليست ثابتة ومجرد أداة مساعدة. وستجد تفصيل أكثر هنا:
×
×
  • أضف...