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

Mustafa Suleiman

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

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

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

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

    365

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

  1. ستحتاج إلى دراسة أساسيات الاحتمالات و الإحصاء و الجبر الخطي، لكن كبداية أنصحك بدراسة أساسيات الاحتمالات و الإحصاء فقط و لاحقاً يمكنك التعمق حسب الحاجة. بخصوص الاحتمالات عليك أن تكون ملمًا لالمتغيرات العشوائية وهي متغيرات تستقبل قيمًا متعددة بناءًا على نوع معين من التجارب أو الأحداث العشوائية. والتوزيعات المتقطعة مثل توزيع بيرنولي، الذي يستخدم لتوصيف تجربة تحتوي على نتيجتين فقط (مثل نجاح أو فشل)، والتوزيعات المستمرة مثل التوزيع الغاوسي Gaussian Distribution، لوصف البيانات التي تتبع نمط الجرس bell curve، والتوزيع الأسي Exponential Distribution لنمذجة الزمن بين الأحداث في عملية بواسونية (Poisson process). إذا كانت لغتك الإنجليزية جيدة، أوصيك بمشاهدة دورة الاحتمالات من معهد ماساتشوستس للتكنولوجيا (MIT) على يوتيوب، حيث ستجد سلسلة من المحاضرات المفيدة جدًا التي تغطي تلك المواضيع بعمق. الإحصاء هو جزء آخر لا غنى عنه في تحليل البيانات، فتعلم كيفية تقييم دقة الإحصاءات المستخرجة من البيانات عبر مفاهيم مثل فترات الثقة confidence intervals واختبارات الفرضيات hypothesis testing. والتعامل مع البيانات الكبيرة التي قد يكون من المستحيل استعراضها بالكامل دفعة واحدة، ستحتاج إلى تقنيات مثل تحليل الانحدار regression analysis، تحليل التباين ANOVA، والتحليل العنقودي cluster analysis التي تساعد في استخراج معلومات هامة ومفيدة من البيانات.
  2. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  3. من خلال CSS سيكون كالتالي: <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> .box { position: relative; display: flex; justify-content: center; align-items: center; background-color: #1b1bb7; border-radius: calc(20% - 40px); padding: 40px 20px; width: 300px; height: 300px; text-align: center; } .box-overlay { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); mix-blend-mode: overlay; width: 91%; height: 91%; background-color: rgb(0 0 0 / 79%); border-radius: 9%; filter: blur(37px); } h1, p { font-size: 30px; font-weight: bold; font-family: system-ui; color: white; } </style> </head> <body> <div class="box"> <div class="content"> <h1>5+</h1> <p>Countries</p> </div> <div class="box-overlay"> </div> </body> </html> والنتيجة هي: حيث ستعتمد على خاصيتي mix-blend-mode و filter لتنفيذ الفكرة.
  4. الدورة متاحة لك مدى الحياة وبالتحديثات الخاصة بها أيضًا، لكن من الأفضل تحديد موعد والإلتزام به وهو 6 أشهر لكي تتمكن من قياس تقدمك والتخطيط على أساس ذلك. والإختبار تستطيع التقدم إليه أكثر من مرة لحين اجتيازه، لكن من الأفضل الاستعداد جيدًا واستيعاب المشاريع التي قمت بتنفيذها قبل التقدم للإختبار لكي لا تضيع وقتك. بخصوص المطلوب منك ستجد تفصيل هنا:
  5. تحتاجين إلى إنهاء 4 مسارات على الأقل لدخول الإختبار، وسيتم إختبارك في تلك المسارات فقط، لكن أنصحك بإنهاء الدورة بالكامل فالشهادة بحد ذاتها ليست العامل الأهم بل مهاراتك. بالنسبة للمشاريع، نقوم بإنشاء مجلد للدورة وتقسيمه إلى مجلدات لكل مسار مجلد، بعد ذلك نضع التطبيقات العملية البسيطة في تلك المجلدات بشكل منظم ثم نقوم برفع المجلد بالكامل إلى مستودع على GitHub. أما بخصوص المشاريع العملية الكاملة أي تطبيق ويب كامل مثلاً فنقوم بإنشاء مجلد منفصل له ثم رفع الكود المصدري الخاص به بعد الإنتهاء على منصة GitHub في مستودع منفصل أي مستودع لكل مشروع. ثم بعد الإنتهاء من الدورة تقومين بمراسلة مركز المساعدة وتوفير روابط المشاريع على GitHub أي التطبيقات العملية ليتم مراجعتها، ثم تحديد موعد للإختبار.
  6. في حال نسيان كلمة المرور، فعليكِ استعادتها من خلال الرابط التالي: https://www.jotform.com/login/ ثم الضغط على Forgot password وإدخال البريد واسترجاع كلمة المرور، وأحيانًا ذلك يحل مشكلة تسجيل الدخول لحسابك. وفي حال لم تتمكني من ذلك، فعليكِ التواصل مع الدعم الفني للمنصة من خلال الرابط التالي: https://www.jotform.com/contact/ وكتابة التفاصيل اللازمة وإرفاق صورة توضيحية وسيتم مراسلتك عبر البريد الإلكتروني.
  7. ستحتاجين إلى حساب بنكي على الأقل لكي يتم استلام الرصيد الخاص بك عليه، لكن التسجيل يكون مجاني على حد علمي على منصة مثل ThemeForest' لكن يتم خصم نسبة من المبيعات الخاصة بك تصل إلى 50% وهي نسبة مرتفعة جدًا.
  8. عملية التسجيل على أي متجر تطبيقات بحاجة إلى حساب بنكي على الأقل، وأيضًا دفع رسوم نشر التطبيق على ذلك المتجر من خلال وسائل الدفع المتاحة منها البطاقة الإئتمانية وبطاقة الخصم المباشر debit card. وبالطبع المتاجر المتاحة هي جوجل بلاي و Apple App Store، توجد متاجر أخرى بالنسبة لنظام أندرويد لكن جوجل بلاي هو المتجر الرسمي والمستخدم من قبل غالبية مستخدمي النظام.
  9. بالطبع، فكما ذكرت هي لوحة تحكم لصاحب الموقع أو المدير، يتحكم من خلالها بكافة الأمور بالموقع. بعد إنشاء حساب مدير من خلال الأمر python manage.py createsuperuser. في ملف admin.py قم بتسجيل نموذج الطالب لكي يتمكن المدير من إدارته من خلال لوحة التحكم، على إفتراض أن لديك نموذج الطالب في ملف models.py. from django.contrib import admin from .models import Student @admin.register(Student) class StudentAdmin(admin.ModelAdmin): list_display = ('id', 'name', 'email') search_fields = ('name', 'email') في from .models import Student قمت باستيراد نموذج Student من ملف models.py الموجود في نفس الدليل. ثم @admin.register(Student) هو ديكوريتور Decorator لتسجيل النموذج Student في لوحة الإدارة، وبمجرد استخدام الديكوريتور، سيظهر نموذج Student في لوحة الإدارة تلقائيًا. ثم class StudentAdmin(admin.ModelAdmin) يعني تعريف فئة فرعية من admin.ModelAdmin لتخصيص كيفية عرض وإدارة نموذج Student في لوحة الإدارة. بعد ذلك list_display = ('id', 'name', 'email') هي حقول الطالب التي تريد عرضها في لوحة الإدارة. و search_fields = ('name', 'email') هي الحقول التي يمكن البحث عنها، ففي الجزء العلوي من قائمة الطلاب، سيكون هناك حقل بحث يسمح لك بالبحث عن الطلاب باستخدام أسمائهم أو عناوين بريدهم الإلكتروني.
  10. بالفعل هناك مشكلة في التحميل من الموقع الرسمي حاليًا، تستطيع التحميل النسخة الأخيرة VMware-workstation-full-17.5.1 من الرابط التالي: https://onedrive1.dennisyau.asia/?/Softwares/VMware-workstation-full-17.5.1-23298084.exe
  11. في حال كان لديك إضافة Adblock أرجو حذفها واستخدام uBlock Origin بدلاً منها فهي لا تسبب مشكلة. إن لم يكن لديك تلك الإضافة، فأرجو حذف الملفات المؤقتة بالضغط على CTRL + F5 وتفقد هل تم حل المشكلة أم لا؟ إن لم يتم حل المشكلة، استخدم تطبيق Warp فهو بمثابة وسيط بينك وبين الإنترنت مثل الـ VPN: https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release
  12. بالطبع يوجد بدائل، لديك Appwrite التي تتميز بقاعدة بيانات NoSQL، مصادقة المستخدم، وظائف الخادم وتخزين الملفات. وهي مفتوحة المصدر ويمكن تشغيلها على أي سيرفر. أيضًا Backendless لها نفس الميزات السابقة. بجانب Hasura التي تتميز بقاعدة بيانات PostgreSQL، وGraphQL API ،مصادقة المستخدم وتكامل مع خدمات AWS و GCP. وتستطيع تشغيلها على أي مزود سحابي يدعم PostgreSQL. وبخصوص قاعدة البيانات المناسبة لمشروع Flutter، فالأمر يعتمد على البيانات التي سيتم التعامل معها، ستجد شرح مُفصل هنا:
  13. header و nav و section و footer تلك عناصر HTML Semantic. وبشكل بسيط لها نفس خواص عنصر div، لكن الفكرة في التسمية، فمن اسمها تجد أن لكل عنصر هدف معين في التصميم، وذلك لتسهيل قراءة الكود والتفرقة بين الأقسام المختلفة. فعنصر header يُستخدم لتعريف رأس الصفحة أو رأس قسم معين في المستند، ويحتوي على عناصر مثل العنوان الرئيسي (h1، h2، إلخ)، شعارات، قائمة تنقل أو أي معلومات توضيحية. أي الجزء العلوي من التصميم. <header> <h1>عنوان الموقع</h1> <nav> <ul> <li><a href="#home">الصفحة الرئيسية</a></li> <li><a href="#about">عن الموقع</a></li> <li><a href="#contact">الاتصال</a></li> </ul> </nav> </header> أما العنصر nav فهو لتعريف قسم التنقل في الصفحة، ويحتوي على روابط إلى أجزاء أخرى من الموقع أو إلى مواقع أخرى. <nav> <ul> <li><a href="#home">الصفحة الرئيسية</a></li> <li><a href="#about">عن الموقع</a></li> <li><a href="#contact">الاتصال</a></li> </ul> </nav> بينما العنصر section فالغرض منه تعريف قسم أو جزء محدد من الصفحة، ونعتمد عليه لتقسيم المحتوى إلى أجزاء منطقية يمكن معالجتها بشكل منفصل، أي أقسام أو أجزاء. <section> <h2>عن الموقع</h2> <p>هذا هو قسم من الموقع يحتوي على معلومات عن الموقع.</p> </section> footer نستخدمه لتعريف تذييل الصفحة أو تذييل قسم معين في التصميم، ويحتوي على معلومات مثل حقوق النشر، روابط ذات صلة، أو معلومات الاتصال. <footer> <p>حقوق النشر © 2023 الموقع. جميع الحقوق محفوظة.</p> <a href="#contact">الاتصال بنا</a> </footer> أما class فهي ليست عنصر بل سمة attribute نستطيع إضافتها إلى أي عنصر HTML لتحديد مجموعة من الأنماط styles التي يمكن تطبيقها بواسطة CSS، وباستخدام نفس اسم الـ class نستطيع تطبيق نفس الأنماط على عدة عناصر. <div class="box"> محتوى داخل الصندوق </div> <style> .box { border: 1px solid #000; padding: 10px; margin: 10px; } </style>
  14. لا داعي للإحباط، فأنتِ ما زلتي في البدايات، لذا تفقد ما هو المناسب لك عملية طبيعية، كنصيحة قبل دراسة الدورة يجب تحديد ما الذي تريدين تحقيقه من دراسة البرمجة؟ هل هو الحصول على عمل أم تنفيذ مشروع معين؟ أم تعلم البرمجة فقط. إذ يجب تفقد سوق العمل الذي تريدين العمل به، ثم تحديد ما المطلوب به (اللغات والتقنيات) والخبرة المطلوبة والمجال الذي يوجد عليه طلب أيضًا ثم تحديد ما ستتعلمينه بناءًا على ذلك. وبخصوص عملية استبدال الدورة، فأرجو التحدث لمركز المساعدة بخصوص ذلك وسيتم مساعدتك.
  15. لا مشكلة في ذلك، الخدمة المجانية توفر موارد جيدة جدًا، نحو 4 ساعات يوميًا هو وقت مناسب في رأي. يمكنك استخدام google colab ببساطة بالذهاب إلى google drive و إنشاء ملف و اختيار google colab (قد يكون الخيار غير ظاهر مباشرة فعليك الذهاب إلى الخيارات الإضافية لرؤيته). أو يمكنك رفع مشروعك من على github أو من خلال رفع الملف مباشرًة: https://colab.research.google.com/
  16. بالطبع، لكن لا حاجة إلى ذلك
  17. اضغط على CTRL + 0 وسيتم ضبط التقريب أو التكبير إلى الوضع الطبيعي، ويمكنك استخدام CTRL + أو CTRL - من أجل التكبير والتصغير.
  18. ما تبحث عن هو Templates أي قوالب، في البداية إن كان ذلك بغرض التعلم فهو أمر جيد لتفحص الكود وإنشاء مثله، لكن إن ما كنت في مرحلة التعلم فلا أنصحك أبدًا بفعل ذلك فأنت بحاجة إلى الممارسة لا إختصار الوقت. إنشاء موقع أو اثنان ليس بالأمر الكافي، ويجب إنشاء أكثر من موقع بأفكار وتصاميم مختلفة لتوظيف ما تعلمته. عامًة المستودع التالي ستجد به القوالب التي تبحث عنها: https://github.com/bradtraversy/design-resources-for-developers#html--css-templates
  19. لم تقم باستيراد مكتبة seaborn، وأيضًا seaborn_dark ليس تنسيق صحيح لـ matplotlib، فمكتبة seaborn توفر عدّة تنسيقات لكن seaborn_dark ليس منهم، بل يوجد darkgrid أو dark لذا الكود سيكون كالتالي: import matplotlib.pyplot as plt import seaborn as sns heart_disease = [629,561,559,70] sns.set_style('dark') plt.pie(heart_disease, labels=['Heartdisease','Normal','male','femal'], explode=[0.1,0.1,0.1,0.1]) plt.title("Heartdisease") plt.show() في حال أردت استخدام plt.style.use فنكتب seaborn-dark وليس seaborn_dark كالتالي: plt.style.use('seaborn-dark') وذلك بدلاً من sns.set_style('dark')
  20. هل قمت باستدعاء دالة show من مكتبة Matplotlib بعد إعداد الرسم البياني بـ Seaborn؟ فكما ذكرت لك من آنفًا، مكتبة Seaborn تعتمد على Matplotlib لإنشاء الرسوم البيانية، وبالتالي تحتاج إلى استدعاء show لعرض الرسم البياني. import seaborn as sns import matplotlib.pyplot as plt heart = [629,561,70,559,30] sns.histplot(heart) plt.show() قم بتثبيت كلا المكتبتين: pip install seaborn matplotlib
  21. ذلك مذكور في وصف الدورة، ومن حقك الحصول على ذلك بالطبع، لكن تلك أمور يتم مناقشتها بعد إنهاء مشروع التخرج والحصول على الشهادة، حيث سيتم إرشادك للخطوات التالية لدخول سوق العمل، ولتسهيل الأمر عليك أرجو التركيز على الأساسيات والتطبيق عليها وعدم التركيز على التقنيات (المكتبات والإطارات) بعد ذلك تستطيع إنشاء مشاريع من خلال التقنيات ولا تكتفي بمشاريع الدورة فقط وبالتصميم الخاص بها، من الأفضل تحسينه وإضافة مزايا أخرى لتحسين جودة مشاريعك وبناء معرض أعمال جيد. ولا تكتفي أبدًا بأي دورة تشاهدها، فأنت ما زلت في البداية وبحاجة إلى بذل مجهود. وفي حال تم رد المبلغ، فبالطبع يتم إلغاء الإشتراك بالدورة فذلك طبيعي.
  22. كلاهما لتحليل البيانات وتصويرها في لغة البرمجة Python، وكل منهما مناسبة لأغراض معينة. لأن Matplotlib هي مكتبة أساسية لتصوير البيانات ومرنة جداً وتوفر تحكم كامل بالتفاصيل الدقيقة للرسم البياني، وتستخدم لإنشاء الرسوم البيانية البسيطة والمعقدة. أما Seaborn في الواقع هي مبنية على Matplotlib وتهدف إلى جعل عملية إنشاء الرسوم البيانية الإحصائية أكثر سهولة وجمالية، حيث توفر واجهة عالية المستوى لإنشاء الرسوم البيانية الإحصائية المعقدة بسهولة. بالتالي Matplotlib تتطلب كتابة كود برمجي أكثر تفصيلاً لإنشاء الرسوم البيانية وتحتاج إلى إعدادات يدوية لكل جزء من الرسم البياني. بينما Seaborn توفر واجهة أبسط وأكثر بديهية لإنشاء الرسوم البيانية، وتقوم بتحديد العديد من الإعدادات بشكل تلقائي لجعل الرسوم البيانية أكثر جمالية. لذا Matplotlib توفر تحكم كامل في كل جزء من الرسم البياني، مما يجعلها مناسبة عند الحاجة إلى تخصيصات دقيقة ومعقدة.
  23. لا مشكلة، الفصول مرتبة ترتيبًا متدرجًا بدءًا من المواضيع الأساسية وحتى المواضيع المتقدمة بما يناسب المتعلم الجديد الذي يريد تعلم لغة جافاسكربت من الصفر دون خبرة مسبقة
  24. لا يوجد نسخة مطبوعة من الكتاب، لكن الكتاب مجاني تحت رخصة المشاع الإبداعي، أي تستطيعي تحميله ثم طباعته بنفسك لقراءته. لكن في بدايات تعلمك لا أنصحك بالتعلم من كتاب، فأنتِ بحاجة إلى مشاهدة التطبيق العملي والتوضيح بالفيديو وبعد الإنتهاء من الأساسيات والتطبيق عليها والوصول لمستوى جيد تستطيعي قراءة الكتاب.
  25. أولاً، عليك بتنظيم هيكل المجلدات في مشروعك إنشاء مجلد templates في جذر المشروع، وداخله مجلدات للقوالب المختلفة. /your-project /templates /template1 header.tpl footer.tpl index.tpl /template2 header.tpl footer.tpl index.tpl /admin edit_template.php index.php template_engine.php ثم كتابة كود بسيط لتحميل القوالب في ملف وليكن باسم TemplateEngine.php وسيكون مسؤول عن ترجمة ملفات .tpl واستبدال الـ placeholders ببيانات فعلية. class TemplateEngine { private $templateDir; public function __construct($templateDir) { $this->templateDir = $templateDir; } public function render($templateName, $data) { $templateFile = $this->templateDir . '/' . $templateName . '.tpl'; if (!file_exists($templateFile)) { throw new Exception("Template file not found: $templateFile"); } $templateContent = file_get_contents($templateFile); foreach ($data as $key => $value) { $templateContent = str_replace('{' . $key . '}', $value, $templateContent); } return $templateContent; } } ثم إنشاء مدير للقوالب TemplateManager ليكون مسؤول عن إنشاء وتعديل وحذف القوالب: class TemplateManager { private $templateDir; private $templateEngine; public function __construct($templateDir) { $this->templateDir = $templateDir; $this->templateEngine = new TemplateEngine($templateDir); } public function getTemplates() { $templates = scandir($this->templateDir); $templates = array_filter($templates, function ($file) { return substr($file, -4) === '.tpl'; }); return $templates; } public function getTemplateContent($templateName) { $templateFile = $this->templateDir . '/' . $templateName . '.tpl'; return file_get_contents($templateFile); } public function saveTemplateContent($templateName, $content) { $templateFile = $this->templateDir . '/' . $templateName . '.tpl'; file_put_contents($templateFile, $content); } public function renderTemplate($templateName, $data) { return $this->templateEngine->render($templateName, $data); } } بعد ذلك تستطيع استخدام TemplateManager في إدارة القوالب، قم بإنشاء نسخة من الكلاس لاستخدام الميثودز الخاصة به. مثلاً تستطيع إنشاء صفحة في لوحة التحكم تقوم بها بعرض جميع القوالب، ثم السماح للمديرين بتعديل القالب بالضغط عليه وعند الإنتهاء من التعديل تستخدم ميثود saveTemplateContent لحفظ التعديلات والقالب، وهكذا.
×
×
  • أضف...