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

ياسر مسكين

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

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

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

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

    5

كل منشورات العضو ياسر مسكين

  1. ال span هو عنصر inline يستخدم لتجميع وتنسيق جزء من النص داخل عنصر آخر لكنه لا يضيف أي تنسيق افتراضي للمحتوى أي أنه يمكننا استخدامه مع CSS لتنسيق أجزاء محددة من النص كالتالي: <p> هذه الجملة تحتوي على <span style="color: red;">كلمات ملونة</span> باللون الأحمر. </p> لأنّ أهم استخدامات span تكمن في تطبيق تنسيقات CSS على جزء محدد من النص من خلال إضافة classes أو IDs لأجزاء معينة للتحكم بها عبر جافا سكريبت لتمييز كلمات أو عبارات معينة داخل النص أو لتغيير لون أو حجم أو نمط خط جزء من النص. ويختلف span عن div في أنه عنصر inline بينما div هو عنصر block وهذا يعني أن span لا يبدأ سطرا جديدا ويأخذ فقط المساحة الضرورية لمحتواه يمكنك الاطلاع أكثر من هنا: العنصر <span> موسوعة حسوب وأرجو في قادم المرات طرح سؤالك في أسفل الدرس في صندوق التعليقات المخصص لذلك في حال كان سؤالك متعلقا بإحدى الدروس المتعلقة بأساسيات HTML في إحدى الدورات حيث هنا نطرح فقط الأسئلة العامة وهذا لمساعدتك بالشكل المناسب.
  2. الترتيب الحالي هو الأنسب للمبتدئين لأنه مدروس ليتناسب مع ذلك في إطار التعلم بالتدريج، لذا بما أنك في بداياتك فلا أنصحك بتخطّي الدروس من الأحسن دراستها كما هي والتطبيق مع المدرب، وعادة ننصح من يمتلك خبرة أو يعرف درسا معينا بتخطّي جزئية معينة، وحتى لو كنت مبتدئا واستصعب عليك إكمال وحدة معينة من المسار يمكنك تخطّيها والعودة إليها لاحقا، لكن دوما ننصح بطلب الاستشارة مباشرة وتوضيح أي جزئية ترغب في تخطّيها وسنقول لك إن كانت ستؤثر بشكل كبير أم لا ويمكنك العودة إليها لاحقا خاصة في حال عدم ترابط الدروس والمسارات ببعضها البعض، أما في حالتك الآن فمن الأفضل دراسة الدروس كما هي لأنّ الترتيب الحالي هو الأفضل للمبتدئين في الدورة وفي حال وجدت أيّ استفسار يمكنك طرحه أسفل الدرس المعني بذلك في صندوق التعليقات المخصص له وسنجيبك بكل صدر رحب.
  3. أرجو طرح سؤالك في أسفل الدرس في صندوق التعليقات المخصص لذلك في حال كان سؤالك متعلقا بإحدى الدروس في إحدى الدورات حيث هنا نطرح فقط الأسئلة العامة وهذا لمساعدتك بالشكل المناسب. في حال كان سؤالك غير متعلق بإحدى الدورات أرجو إضافة تفاصيل إضافية، لقطة شاشة أو أيّ رسالة خطأ تظهر لك لمساعدتك.
  4. ما يريده المطور هو يتعلق بالتغيير في تدفق إنشاء الحساب (Signup Flow) فحاليا عندما ينقر المستخدم على "إنشاء حساب جديد" في صفحة تسجيل الدخول (Signin) سيتم نقله إلى صفحة إنشاء الحساب (Signup) مع تمرير البريد الإلكتروني أو رقم الهاتف ك query parameter في ال URL مثل: /signup?email=user@example.com وهذه الطريقة غير آمنة وليست أفضل ممارسة برمجية لأن البيانات الحساسة مثل البريد الإلكتروني أو رقم الهاتف) ستظهر في ال URL لذا ما يريده أنه وبدلا من ذلك يريد أن يتم نقل المستخدم إلى صفحة إنشاء الحساب (Signup) بدون تمرير أي بيانات في ال URL ثم في صفحة إنشاء الحساب (Signup) يتم جمع البريد الإلكتروني أو رقم الهاتف مباشرة من المستخدم وبالنسبة للتعامل مع المستخدمين الذين لا يملكون بريدا إلكترونيا أو لا يفضلون إدخال رقم الهاتف فبعض المستخدمين قد لا يملكون بريدا إلكترونيا، أو قد لا يرغبون في إدخال رقم الهاتف وهنا مشكلة لذا يريد المطور حلا لهذه الحالة، بحيث يكون هناك مرونة في التعامل مع هؤلاء المستخدمين.
  5. هل قمت بتثبيت إضافة باسم Bitdefender Anti-tracker‬ على متصفحك؟ إن كان كذلك فأرجو تعطيلها وفي حال استمرار المشكلة المرجو منك تعطيل الإضافات وموانع الإعلانات الواحدة تلو الأخرى إلى حين معرفة أيّ إضافة هي المتسببة في هذا الخطأ، يمكنك تجربة العمل من من تصفح آخر لمعرفة إن كانت المشكلة من الفيديو أو من المتصفح، في حال كان من المتصفح أرجو اتباع الإرشادات التي أخبرتك إياها أو يمكنك متابعتها من خلال هذه الإجابة من هنا: بعدها يمكنك التوجه إلى تبويبة "دوراتي" ثم توجه إلى الدورة التي قمت بالاشتراك فيها، ثم إلى المسار الذي أنت تدرس فيه، ثم يمكنك متابعة الدروس بكلّ سلاسة.
  6. وعليكم السلام ورحمة الله وبركاته، يتم تقسيم البيانات إلى مجموعات تدريب واختبار وغالبا مجموعة تطوير / تحقق وهو خطوة أساسية في بناء نماذج التعلم الآلي بالنسبة لمجموعة التدريب (Training Set) فهي البيانات التي يستخدمها النموذج للتعلم وهذا النموذج يتعلم الأنماط والقواعد من هذه البيانات وعادة تكون أكبر مجموعة مثلا 70 إلى 80% من البيانات الكلية أما مجموعة التطويرأو التحقق (Validation Set) فتستخدم لضبط معاملات النموذج (Hyperparameters) وتقييم أدائه أثناء التدريب أي أنها تساعد في منع الإفراط في التخصيص (Overfitting) أي عندما يتعلم النموذج التفاصيل الدقيقة للبيانات بدلا من الأنماط العامة وعادة تكون حوالي 10إلى 15% من البيانات في حين مجموعة الاختبار (Test Set) تستخدم لتقييم أداء النموذج النهائي بعد اكتمال التدريب وهذه البيانات لا تستخدم أبدا أثناء التدريب أو الضبط وهي تمثل البيانات الجديدة التي سيواجهها النموذج في العالم الحقيقي وعادة تكون أيضا حوالي 10 إلى 15% من البيانات. فلو كان عندنا 1000 عينة بيانات سيتم تقسيمها إلى: 700 للتدريب (Training) لتعليم النموذج. 150 للتطوير (Validation) لضبط النموذج وتجنب الإفراط في التخصيص. 150 للاختبار (Test) لتقييم الأداء النهائي بشكل عادل.
  7. عند استخدام تحليل الانحدار الخطي (OLS) الأفضلية بين استخدام جميع الأعمدة دفعة واحدة أو تقسيمها إلى مجموعات تعتمد على عدد المتغيرات وأهداف التحليل فإذا كان عدد الأعمدة صغيرا مثلا أقل من 10 يفضل استخدام جميع الأعمدة مرة واحدة للحصول على نموذج شامل ودقيق أما إذا كان العدد كبيرا يمكن تقسيم الأعمدة إلى مجموعات لتجنب مشاكل مثل تعدد الخطية (Multicollinearity) أو استهلاك الموارد الزائد مع مراعاة اختبار العلاقات بين المتغيرات باستخدام VIF لضمان دقة النتائج وبشكل عام والبدء باستخدام جميع الأعمدة هو الخيار الأفضل وإذا ظهرت مشكلات يمكن استخدام تقنيات مثل اختيار الميزات أو تقليل الأبعاد لتحسين النموذج لذا من الأفضل تحليل ال 8 أعمدة مرة واحدة لأن هذا يعطينا فهم أفضل للعلاقات بين كل البيانات ولأنّ تقسيم البيانات قد يؤدي لنتائج غير دقيقة.
  8. برنامج Google Summer of Code (GSoC) هو مبادرة سنوية تقدمها Google لدعم تطوير البرمجيات مفتوحة المصدر أين يتمثل الهدف الرئيسي للبرنامج في تشجيع الطلاب والمطورين على المشاركة في مشاريع برمجية مفتوحة المصدر من خلال توفير فرصة للعمل مع منظمات داعمة لهذه المشاريع ويعمل البرنامج من خلال سلسلة من الخطوات المنظمة التي تهدف إلى دمج الطلاب والمطورين في مشاريع برمجية مفتوحة المصدر. تبدأ العملية عندما تقوم المنظمات الداعمة للمشاريع مفتوحة المصدر بالتقدم للمشاركة في البرنامج، حيث تقوم Google باختيار المنظمات المؤهلة التي ستشارك في النسخة السنوية بعد ذلك يتقدم الطلاب أو المطورون الراغبون في المشاركة بطلبات لتنفيذ مشاريع محددة تقترحها هذه المنظمات، مع تقديم مقترحات مشاريع مصحوبة بخطة عمل مفصلة. تقوم المنظمات بعد ذلك بمراجعة الطلبات واختيار الطلاب المناسبين للمشاريع المقترحة.
  9. لإدارة المنصة من خلال خادمك المنزلي يمكنك استخدام أحد حواسيبك ذات الإمكانيات العالية كسيرفر إداري، قم بتثبيت نظام Linux مثل Ubuntu لتوفير بيئة مستقرة وآمنة. ولتأمين الطاقة أثناء انقطاع الكهرباء يمكنك شراء جهاز UPS لضمان استمرار العمل مؤقتا ومولد كهربائي صغير أو نظام طاقة شمسية لحلول طويلة الأمد على حسب ميزانيتك بطبيعة الحال، ثم تثبيت الأدوات اللازمة مثل Nextcloud لإدارة الملفات وosTicket لإدارة استفسارات العملاء مع جدار ناري مثل UFW لحماية البيانات. ويمكنك استخدام اتصال إنترنت ثابت وسريع وتهيئة السيرفر للوصول المحلي أو عبر الإنترنت باستخدام SSH ولضمان استمرارية العمل وعدم فقدان أية بيانات خذ نسخا احتياطية دورية للبيانات باستخدام وحدات تخزين خارجية وخدمات سحابية مثل Google Drive.
  10. text-indent هي خاصية في CSS تستخدم لتحديد المسافة البادئة للسطر الأول من النص في عنصر معين بمعنى آخر أنها تسمح بتحريك السطر الأول من النص إلى الداخل أو الخارج بالنسبة لحافة العنصر والقيم الممكنة لها مثلا بالنسبة للطول الثابت نستعمل: px، em، rem، cm كالتالي: text-indent: 20px; وهذا سيحرك السطر الأول من النص إلى الداخل بمقدار 20 بكسل. وهنا مثلا: p { text-indent: 50px; } هنا سيتم تحريك السطر الأول من كل فقرة إلى الداخل بمقدار 50 بكسل لكن يجب الانتباه إلى أنّ text-indent تؤثر فقط على السطر الأول من النص وليس جميع الأسطر.
  11. حاليا لا توجد دورة شاملة لذا لكي تكون مبرمج Full-Stack يجب أن تدرس دورة تطوير الواجهات Frontend وتختار إحدى دورات تطوير الواجهات الخلفية Backend يمكنك تصفح الدورات الموجودة من هنا: إضافة إلى الدورات التي أضيفت حديثا: https://academy.hsoub.com/learn/artificial-intelligence/ https://academy.hsoub.com/learn/game-development/ يمكنك الاطلاع على الإجابات التي طرحت من قبل من هنا:
  12. بالنسبة لتعلم البرمجة بلغة بايثون يمكنك مراجعة الإجابة على هذا السؤال فستجد مجموعة من الكتب المفيدة: إضافة إلى ذلك هذه ثلة من الكتب الخاصة بتطوير الواجهات الأمامية (Front-End): كتاب تعلم JavaScript من الأساسيات إلى المفاهيم المتقدمة Eloquent JavaScript" by Marijn Haverbeke "HTML and CSS: Design and Build Websites" by Jon Duckett "CSS Secrets" by Lea Verou "JavaScript: The Good Parts" by Douglas Crockford يمكنك إيجاد كتب أخرى ضمن قسم الكتب الخاص بأكاديمية حسوب من هنا: https://academy.hsoub.com/files/
  13. وعليكم السلام ورحمة الله، النماذج التنبؤية لا تفشل بالمعنى المطلق بل تعاني من قصور في معالجة الفجوات المتعلقة بهذه الحالات وهذا بسبب تحيزات في البيانات أو تصميم النماذج وهذا القصور يؤدي إلى نتائج غير دقيقة أو غير عادلة لفئات معينة مما يجعلها تبدو وكأنها "تفشل" في التعامل مع هذه الفجوات فعندما تكون البيانات المستخدمة لتدريب النماذج غير متنوعة أو تأتي بشكل رئيسي من فئات معينة، فإن النموذج يصبح أكثر دقة لتلك الفئات فقط، بينما يفشل في التعامل مع الفئات الأخرى وقد تتجاهل النماذج العوامل الاجتماعية والاقتصادية المهمة، مثل الفقر أو التمييز التاريخي، مما يؤدي إلى توقعات غير دقيقة أو غير عادلة. ولتحسين هذه النماذج، يجب ضمان تمثيل جميع الفئات في البيانات ومراعاة العدالة في تصميم الخوارزميات واختبار النماذج على مجموعات متنوعة لضمان دقتها وعدالتها للجميع.
  14. أرجو إن كان سؤالك متعلقا بإحدى الدروس الخاصة بالدورات أن تقوم بوضعه أسفل الدرس في صندوق التعليقات المخصص لذلك، فهذا القسم مخصص للأسئلة العامة وهذا لمساعدتك بشكل أفضل. وفضلا وليس أمرا، حين طرح سؤالك التوضيح أكثر بشأن الخطأ الذي يواجهك، لأن صياغة السؤال مهم جدا لإيصال استفسارك وهذا لمرافقتك بالشكل المناسب.
  15. وعليكم السلام ورحمة الله، هذا أكيد علي، فالبرمجة بلا شك هي أداة أساسية لبناء الحلول المبتكرة في عصرنا الحالي فهي تتيح لنا تطوير الخوارزميات ومنه بناء نماذج تعلم آلة متطورة، نستطيع من خلالها معالجة البيانات ومنه تحليل كميات كبيرة من البيانات ونحقق من خلالها التكامل من خلال دمج تقنيات وأدوات الذكاء الاصطناعي في مختلف التطبيقات التي نبرمجها. كما أنّ عامل التخصيص يساعدنا لتكييف الحلول حسب احتياجات محددة وهذا لا يمكن أن يتمّ دون برمجة، علاوة على ذلك تساعدنا في تحسين النماذج وهذا ما يؤدي لتطوير أداء وكفاءة الأنظمة الذكية، أي أنّ العلاقة بينهما ضرورية لتحقيق الابتكار واستمرارية التطوير في كلا المجالين، البرمجة والذكاء الاصطناعي. يمكنك البحث عن أيّ مقالة تريد في قسم المقالات "الذكاء الاصطناعي" وستجد معلومات مفيدة أكثر: https://academy.hsoub.com/programming/artificial-intelligence/
  16. أنت تستخدم await وهذا يعني أن الكود يجب أن يكون داخل دالة async لذا أرجو التأكد من أن الدالة التي تحتوي على هذا السطر معرفة ك async def وهل قمت بإنشاء كائن highrise بشكل صحيح أرجو التأكد أيضا من تهيئة الكائن قبل استخدامه وفي حال استمرار المشكلة أرجو إرفاق رسالة الخطأ وصورة توضح المشكلة واستخدامها يمكن أن يكون بهذا الشكل: async def some_function(self): try: roomUsers = (await self.highrise.get_room_users()).content return roomUsers except Exception as e: print(f"Error: {e}") في حال كانت المشكلة متعلقة بإحدى الدروس الخاصة بإحدى الدورات أرجو طرح سؤالك أسفل الدرس المعني بذلك في صندوق التعليقات المخصص لذلك فهنا نطرح فقط الأسئلة العامة وهذا لمساعدتك بالشكل المناسب.
  17. في الحقيقة فاختيار نظام التشغيل يعتمد أساسا على احتياجاتك الحالية والمستقبلية ولتطوير تطبيقات Android يمكنك استخدام أي من Windows أو macOS دون قيود حيث توفر Flutter مثلا الأدوات اللازمة لكلا النظامين أما لتطوير تطبيقات iOS أو رفعها إلى App Store فستحتاج إلى جهاز macOS لأن أدوات مثل Xcode ضرورية لهذه العملية وهي متوفرة فقط على macOS أما إذا كنت تركز في البداية على Android فقط يمكنك استخدام Windows لتوفير التكلفة ثم يمكنك لاحقا وعند الحاجة لدعم iOS يمكنك الانتقال إلى macOS أو الاستعانة بخدمات سحابية مثل MacStadium وأما إذا كان دعم iOS جزءا أساسيا من خطتك منذ البداية فإن macOS سيكون الخيار الأفضل لتجنب أي تعقيدات مستقبلية أي أنك إذا كنت تستهدف Android فقط الآن فإن Windows كاف ولن تواجه أي قيود أما إذا كنت تخطط لدعم iOS أو رفع التطبيقات إلى App Store، فستحتاج إلى macOS لأن تطوير وإدارة تطبيقات iOS يعتمد بشكل أساسي على أدوات متوفرة حصريا على macOS.
  18. ما يحدث هنا أن PyCharm يعمل بشكل افتراضي باستخدام البيئة الافتراضية المحددة في إعدادات المشروع، حتى لو لم تقم بتنشيط البيئة يدويا من الطرفية لكن إذا قمت بتشغيل الكود مباشرة من الطرفية باستخدام الأمر: python test.py فسيحاول بايثون استخدام المفسر الافتراضي للنظام وليس البيئة الافتراضية مما يؤدي إلى ظهور خطأ ModuleNotFoundError إذا كانت المكتبة غير مثبتة في المفسر الافتراضي ويحدث هذا لأنه في: في PyCharm: البيئة الافتراضية مهيأة في إعدادات المشروع لذلك يتم تشغيل الكود باستخدام المفسر المحدد (البيئة الافتراضية)، حتى إذا لم تقم بتفعيلها يدويا. في Terminal: عند تشغيل الكود باستخدام الأمر python يتم استخدام المفسر الافتراضي للنظام إذا لم تكن البيئة الافتراضية مفعّلة. لذا يجب التأكد من تفعيل البيئة الافتراضية عند العمل من الطرفية: .venv\Scripts\activate ثم تشغيل الملف.
  19. التدوين شيئ جميل، لكن ما ندوّنه هو الأهم فإن كنّا نقوم بتدوين كلّ شيء تقريبا فهذا الأمر ليس بالأمر الجيد ولا أنصح به، لأنه سيجعل عملية التعلم طويلة ويجعل المتعلم يتواكل أكثر على ما يكتبه وقد لا يفهمه أساسا، لذا أعتقد أنّ عملية التدوين يجب أن تكون منظمة فلا ندوّن أمورا يمكن أن نجدها في مصادر خارجية أو في التوثيقات الرسمية، مثل الأكواد مثلا أو أسماء الدوال وتعريفاتها وغيرها. يمكنك التركيز أكثر على الأفكار التي يقوم المدرب بتطبيقها في كلّ درس، فكلّ درس يأخذ فكرة جديدة ويطبقّها، ونحن هنا يجب أن ننتبه بأننا لا نقوم بالحفظ ونركز أكثر على الفهم وأخذ الأفكار وتطبيقها ومعاودة تطبيقها بأنفسنا لترسيخ الأفكار التي نكتسبها كما يمكنك مراجعة بضعة نصائح حول أحسن الطرق لمراجعة الدورات ودراستها من هنا:
  20. ذلك يعتمد بشكل كبير على كمية البيانات المتبقية ونمط القيم المفقودة فإذا كانت القيم المفقودة عشوائية وتمثل نسبة صغيرة من الأعمدة أو الصفوف المتبقية، فإن التأثير قد يكون محدودا خاصة إذا تم استخدام تقنيات معالجة مثل إحلال القيم المفقودة (Imputation) باستخدام المتوسط، الوسيط، أو الفئة الأكثر شيوعا. وأما إذا كانت القيم المفقودة تتركز في أعمدة أو صفوف رئيسية ذات تأثير كبير على النموذج فإن ذلك سيؤدي إلى فقدان التمثيل السليم للبيانات مما يقلل من دقة النموذج ويزيد من التحيز فإذا كانت نسبة البيانات المفقودة مرتفعة للغاية، فإن كمية البيانات المستخدمة لتدريب النموذج قد تصبح غير كافية، مما يؤدي إلى ضعف التعميم عند التنبؤ بالبيانات الجديدة. للتخفيف من هذا التأثير، يمكنك حذف الأعمدة أو الصفوف ذات القيم المفقودة بشكل مفرط، أو استخدام تقنيات مثل النماذج التي تتحمل القيم المفقودة (مثل أشجار القرار)، مع التأكد من أن البيانات المتبقية تعكس التوزيع الأصلي لتجنب انحراف النتائج.
  21. في هذه الحالة القيم NaN ظاهرة في الجدول لأن عملية groupby تقوم بإنشاء جدول تقاطعي ما يعرف ب cross-tabulation يحتوي على جميع التركيبات الممكنة بين year_hct و prim_disease_hct وعندما لا يوجد أي حالات لمرض معين في سنة معينة سيتم عرضها ك NaN أي Not a Number لذا إذا كنت تريد إزالة قيم NaN من الجدول يمكنك استخدام fillna(0) لاستبدال NaN بالقيمة 0 كالتالي: disease_year_distribution = data_train.groupby(['year_hct' , 'prim_disease_hct']).size().unstack().fillna(0) print(disease_year_distribution) هذا سيعرض نفس الجدول ولكن مع استبدال جميع قيم NaN بالصفر مما يعني أنه لم تكن هناك حالات لهذا المرض في تلك السنة المحددة.
  22. أرجو طرح سؤالك أسفل الدرس في صندوق التعليقات وليس هنا في قسم الأسئلة العامة وهذا لمساعدتك بالشكل الأفضل,
  23. في حال كان سؤالك متعلقا بإحدى الدورات أو أحد الدروس أرجو وضع سؤالك في أسفل الدرس أين ستجد صندوقا للتعليقات يمكنك وضع سؤالك هناك حيث هذا القسم مخصص فقط لقسم الأسئلة العامة.
  24. نحن هنا في الأكاديمية حريصون على عدم الإجابة على أسئلة الاختبارات والامتحانات، لاتباعها نهجا تعليميا لذا من الأحسن توضيح أيّ جزئية لم تفهميها في البرمجة بلغة C++ لنشرحها لك ثم يمكنك المحاولة بنفسك لحلّ الاختبار وفي حال أخطأت يمكننا توجيهك. إضافة لذلك يمكنني اقتراح عدة مصادر للتعلم من أجلك من هنا: https://academy.hsoub.com/programming/cpp/
  25. أيّ شيء متعلق بشروط دراسة الدورات وكيفية إتمام المسارات والتقدم للامتحان تجدها من هنا: شروط التقدم للامتحان أما الحصول على الشهادة وكيفية ذلك أرجو منك مراجعة الأجوبة السابقة من خلال هذا الرابط: وفي حال كنت تسأل عن الدورة المناسبة لك فأرجو تقديم تفصيلات أكثر لنساعدك في التوجيه أو يمكنك مراجعة الأجوبة السابقة من هنا:
×
×
  • أضف...