-
المساهمات
2653 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
5
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو ياسر مسكين
-
مرحبا، عندما نكتب CSS نستخدم قاعدة الهوامش بهذا الشكل: margin: 3px 30px 2px 5px; وهذه القيم تعني: 3px: هامش من الأعلى 30px: هامش من اليمين 2px: هامش من الأسفل 5px: هامش من اليسار لكن في اللغة العربية أو أي لغة تكتب من اليمين إلى اليسار سيتم عرض الصفحة بالعكس لكن قيم CSS لا تتغير تلقائيا ففي اللغة الإنجليزية سيظهر الهامش الأيمن (30px) على يمين العنصر بينما في اللغة العربية سيظهر نفس الهامش (30px) لكن على يسار العنصر (لأن الاتجاه انعكس). لحل هذه المشكلة يمكنك استخدام خصائص CSS الحديثة التي تتكيف مع اتجاه اللغة: margin-block-start: 3px; margin-inline-end: 30px; margin-block-end: 2px; margin-inline-start: 5px; وفي حال كان سؤالك متعلقا بإحدى الدورات التي قمت بالاشتراك فيها، أرجو منك الانتقال إلى قسم "دوراتي" ثم أسفل الدرس الذي واجهت فيه المشكلة، قم بإضافة سؤالك هناك، وهذا لمساعدتك بشكل أفضل. بالتوفيق إن شاء الله.
- 1 جواب
-
- 1
-
-
الفرق الرئيسي بين Google Colab وJupyter Notebook يكمن في المنصة وطريقة الاستخدام فمثلا نجد أنّ Google Colab يعتمد على السحابة الإلكترونية أو الاستضافة السحابية من جوجل ولا يحتاج إلى تثبيت مسبق كما أنه يوفر وصولا مجانيا لفترات محدودة إلى وحدات معالجة الرسومات (GPU) أو وحدات المعالجة التنسورية (TPU)، مما يجعله مثاليا لمهام التعلم الآلي والتعاون الفوري عبر Google Drive. أما Jupyter Notebook فهو أداة مفتوحة المصدر تثبّت محليا على جهازنا مما يمنح تحكما كاملا في التخصيص والمكتبات والموارد، لكنه يعتمد على إمكانيات جهازك الشخصي أقترح عليك هاتين المقالتين للاستفاضة أكثر:
-
كلاهما لديه غرض مختلف فالعامل scoring يحدد كيفية تقييم أداء النموذج أثناء التحقق المتقاطع يمكنك تعيينه كسلسلة مثلا 'accuracy' أو 'f1' أو كدالة مخصصة وهنا يخبر GridSearchCV بالمقياس الذي يجب استخدامه لمقارنة تركيبات المعاملات المختلفة. في حين أنّ refit يتحكم فيما إذا كان سيتم إعادة تدريب ال estimator على مجموعة البيانات الكاملة بعد إيجاد أفضل المعاملات فعند تعيينه إلى True يقوم GridSearchCV بعد التحقق المتقاطع بإعادة تدريب النموذج باستخدام أفضل المعاملات التي تم العثور عليها على كامل بيانات التدريب، ويصبح النموذج النهائي متاحا عبر best_estimator_. إذا استخدمت عدة مقاييس عن طريق تمرير قاموس إلى scoring، يمكنك تعيين refit إلى مفتاح محدد للدلالة على المقياس الذي يجب استخدامه لاختيار أفضل نموذج. أما إذا تم تعيين refit إلى False، فلن يتم تدريب النموذج النهائي على مجموعة البيانات الكاملة، وستقتصر النتائج على نتائج التحقق المتقاطع أي أنّ scoring يتعلق بكيفية قياس أداء النموذج أثناء البحث، بينما يتعلق refit بما يجب القيام به بعد تحديد أفضل المعاملات.
- 6 اجابة
-
- 1
-
-
لا يؤدي استخدام PredefinedSplit إلى تسريع تدريب النموذج بطبيعته بل يغير فقط كيفية تقسيم البيانات أثناء ضبط المعلمات الفائقة أين يتم تحديد إجمالي وقت التدريب في GridSearchCV أو RandomizedSearchCV إلى حد كبير من خلال عدد مجموعات المعلمات وعدد التقسيمات التي تقيمها لكل مجموعة. إذا كنت تستخدم مثلا تقسيما واحدا (train/validation) بدلا من استخدام تقنيات التقسيم المتعددة (مثل 5-fold cross-validation)، فإن عدد مرات تدريب النموذج لكل تركيبة من معلمات النموذج سينخفض (من خمس مرات إلى مرة واحدة) وهذا قد يؤدي إلى تقليل الزمن الإجمالي للتدريب. بينما يقلل استخدام تقسيم واحد من زمن التدريب فإنه قد يؤثر على قوة التقييم والموثوقية لأن التقييم يعتمد على تقسيم واحد فقط بدلا من تقييم أكثر شمولا باستخدام عدة تقسيمات وإذا كنت تستخدم بالفعل تقسيما واحدا للتدريب والتحقق، فلن يكون هناك فرق كبير في زمن التدريب عند استخدام PredefinedSplit.
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، بالنسبة لمكتبة pickle فهي مكتبة قياسية في بايثون لتخزين الكائنات وتحميلها لكنها لا تدعم ضغط البيانات أو التحسين للتخزين الفعال يمكنك مراجعتها من خلال المصدر التالي: الوحدة pickle في بايثون أما مكتبة joblib فهي جزء من حزمة scikit-learn وهي مصممة خصيصا لتحسين تخزين الكائنات التي تحتوي على مصفوفات NumPy كبيرة وهي شائعة في نماذج التعلم الآلي كما أنها تدعم ضغط البيانات مثل zlib، lz4 لتقليل حجم الملفات وتستخدم غالبا لحفظ وتحميل نماذج التعلم الآلي مثل sklearn بكفاءة، يمكنك مراجعة استخدامها من هنا: وباختصار فإن joblib هي اختيار أفضل لبيئات التعلم الآلي والبيانات الكبيرة بفضل تحسيناتها، بينما pickle مناسبة للاستخدام العام مع كائنات بايثون العادية.
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، كل من numpy.linspace و numpy.arange تستخدمان لإنشاء مصفوفات من الأرقام في مكتبة NumPy لكن كل منهما تعمل بطريقة مختلفة فمثلا تستخدم linspace لتوليد مجموعة من الأرقام المتساوية التباعد بين نقطتين محددتين حيث يمكنك تحديد عدد النقاط المطلوبة، وغالبا ما تتضمن النهاية أيضا، مما يتيح توزيعا دقيقا للنقاط عبر النطاق. أما arange فتستخدم لتوليد تسلسل يبدأ من قيمة معينة ويستمر بزيادة ثابتة (step) حتى الوصول إلى قيمة نهاية غير مشمولة، مما قد يؤدي في بعض الأحيان إلى أخطاء طفيفة عند التعامل مع القيم العشرية بسبب تمثيلها داخل الحاسوب.
- 5 اجابة
-
- 1
-
-
لقد تمت الإجابة من قبل على هذا التساؤل، يمكنك البحث في شريط البحث عن كل ما يتعلق بالأسئلة الخاصة بامتحان الدورة وستجد العشرات من الإجابات مثلا يمكنك تصفحها من هنا: ويمكنك مراجعة الشروط من هنا: الامتحان والحصول على الشهادة أو من خلال الأسئلة الشائعة.
-
مهارة حل المشكلات ال Problem solving Skills واحدة من أهم المهارات البرمجية هذا إن لم تكن أهم مهارة في مجال ال Computer science حيث أن هذا المجال معتمد في الأساس على حل المشكلات فمثلا كانت هنالك مشكلة في الماضي وهي الرسائل المشفرة والتي كان من الصعب فك تشفيرها ولكن تم حلها من خلال البرمجة و فك التشفير والعديد من المشكلات الكثيرة التي تم حلها بالبرمجة لذا لا يمكن الاستغناء عن تكاملهما.
-
الفرق يتلخص في الوظيفة التي يؤديها كل منهما.، حيث أن confusion_matrix هي أداة تستخدم لحساب مصفوفة الارتباك بناء على التوقعات الفعلية والمتوقعة للنموذج، و تعرض هذه المصفوفة عدد التصنيفات الصحيحة والخاطئة، مما يساعد في تقييم أداء النموذج، بينما ConfusionMatrixDisplay هي أداة تستخدم لتصور مصفوفة الارتباك بشكل رسومي، مما يسهل فهم الأداء وتفسير النتائج بطريقة مرئية.
- 5 اجابة
-
- 1
-
-
قيمة الدورة هي 290 دولار، يمكنك موازنتها مع الجنيه المصري لمعرفة قيمتها بالعملة الخاصة ببلدك، أما بالنسبة للدفع فيكون فقط بالدولار، و بالتالي إذا كان لدى أحد أفراد عائلتك بطاقة فيزا يمكنهم الدفع بدلا عنك، و من الأفضل التحدث مع مركز المساعدة و حاول توضيح مشكلة في الرسالة.
-
بالتأكيد يمكنك ذلك فعمود ID يحتوي في الكثير من الأحيان على أرقام فريدة فقط خاصة بكل سطر، وبالتالي إبقاءه يمكن أن يؤثر بالسلب على تدريب النموذج، و أيضا بحذفه لن تخسر أي معلومة في البيانات بل يكون أفضل لتدريب النموذج، لهذا من الأفضل حذفه و تدريب النموذج بدونه
- 7 اجابة
-
- 1
-
-
من الأفضل تقسيم البيانات المتاحة لديك إلى مجموعتين، مجموعة تدريب ومجموعة اختبار، و استخدم مجموعة التدريب لتدريب النموذج، ثم قم بتقييم أدائه على مجموعة الاختبار، إذا كان الأداء جيدا على مجموعة الاختبار، فهذا مؤشر إيجابي على أن النموذج قادر على التعميم بشكل جيد. و يمكنك استخدام تقنيات مثل التحقق المتقاطع أو Cross-Validation لتقييم أداء النموذج على أجزاء مختلفة من البيانات، و إذا كانت البيانات الجديدة متاحة يمكنك اختبار النموذج مباشرة عليها لمعرفة كيفية تعامله معها.
- 4 اجابة
-
- 1
-
-
بالنسبة للمحركات الجاهزة توفر أدوات متكاملة تساعدك على تسريع عملية تطوير الألعاب، كما تحتوي على مكتبات جاهزة ومكونات إضافية تساعدك على بناء الألعاب بسهولة، فثملا Unity معروف بسهولة استخدامه ودعمه للعديد من المنصات، بينما Unreal Engine يتميز بجودة رسوميات عالية جدا وواقعية. و بعضها مجاني لكن مع اشتراكات أو عمولات تعتمد على أرباح اللعبة، حيث أن Unity مجاني حتى 200 ألف دولار أرباح سنوية، بعدها يتطلب اشتراكا، أما Unreal Engine يأخذ عمولة بنسبة 5% من الأرباح بعد تحقيق 1 مليون دولار. أما بناء محرك خاص يستغرق وقتا طويلا و ميزانية عاليا جدا لدرجة أنه يعتبر مستحيل أن تقوم بهذا بمفردك، وبالتالي تحتاج إلى فريق متكامل و ميزانية عاليا لتحقيق هذا الأمر.
-
السبب في عدم وجود المسار الأول (WindowsLiveGamebar) هو أن هذا المسار كان يستخدم في الإصدارات القديمة من Windows قبل Windows 10 ومع إطلاق Windows 10 قامت Microsoft بإعادة تصميم Game Bar بالكامل وتغيير هيكلة تخزين الإعدادات في سجل النظام. أصبحت الإعدادات الآن تخزن في المسار الجديد: لذا انتقل إلى المسار التالي: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR بعدها أعد تشغيل الجهاز ثم جرب التسجيل مرة أخرى.
- 4 اجابة
-
- 1
-
-
لا ليس كذلك فدالة sorted() في بايثون لا تستخدم خوارزمية Merge Sort وتستخدم بايثون خوارزمية مخصصة تسمى Timsortوهي خوارزمية هجينة تجمع بين مميزات كل من: Merge Sort (دمج مرتب) Insertion Sort (ترتيب بالإدراج) وتم تطوير Timsort بواسطة Tim Peters في عام 2002 خصيصا لبايثون والمميز في هذه الخوارزمية أنها تعمل بشكل أسرع مع البيانات المرتبة جزئيا وهي مستقرة (stable sort) وتحافظ على الترتيب النسبي للعناصر المتساوية وتستخدم ذاكرة إضافية أقل من Merge Sort الكلاسيكية وأما التعقيد الزمني لها في أسوأ الحالات هو O(n log n). يمكنك مراجعة المزيد من هنا حول الدالة: الدالة sorted() في بايثون
- 4 اجابة
-
- 1
-
-
لا توجد طريقة سحرية لمتابعة الدورة فكلّ طالب لديه ظروفه ومتغيراته الشخصية التي لا يمكن القياس عليها، لذا أنصحك بإنجاز برنامجك الخاص ويكون مرنا وفقا لاحتياجاتك وظروفك اليومية، ولكن في البرمجة بشكل خاص عامل الاستمرارية في التعلم والتطبيق العملي مهم جدا للتحصيل الجيد للدورة وللمعارف المكتسبة أثناء دراستها، لذا فليس العبرة بالحجم الساعي اليومي بقدر ما تكون في الكمّ المعرفي المكتسب يوميا، لذا من الأفضل متابعة الدورات كما هي وفقا للترتيب التي هي عليه، ولا حرج بل هو أمر مستحسن أن يأخذ الطالب قسطا من الراحة بين الفينة والأخرى، أو بين إتمامه لمسار وبدايته لمسار آخر، أين يمكنك حينها مراجعة ما تعلمته والتدرب عليه تحضيرا لما هو آت من مسارات إذ أنك في الأغلب ستجد مسارات مترابطة مع بعضها البعض كالحلقات ومن الجيد فهم كل جزء منها للانتقال إلى التي بعدها كما يمكنك مراجعة الإجابات التالية على سؤال مشابه من هنا:
-
يبدو أن هناك مشكلة في ذاكرة الحاسوب فالبرنامج يحاول إنشاء مصفوفة NumPy كبيرة جدا ولا يوجد ذاكرة كافية لتخزينها لاحظ أنّ المصفوفة التي تحاول إنشاءها تحمل الأبعاد التالية: 28800 × 43094 ونوع البيانات هو float64 أي 8 بايت لكل عنصر ومنه بعملية حسابية بسيطة سنجد أنّ الحجم الإجمالي المطلوب هو 9.25 جيجابايت لذا يمكنك استخدام نوع بيانات أصغر مثل float32 بدلا من float64 لتقليل استهلاك الذاكرة للنصف: dtype=np.float32 أو يمكنك استخدام المصفوفات المتناثرة (sparse matrices) كالتالي: from scipy import sparse sparse_matrix = sparse.csr_matrix((28800, 43094), dtype=np.float32) m = DesignMatrix(sparse_matrix, design_info)
- 4 اجابة
-
- 1
-
-
صحيح أنّ الفيديو الترويجي مرّ عليه وقت لكن توجد فيديوهات أخرى تتحدث عن تطوير الواجهات ويتم إضافة فيديوهات متعلقة بهذا المجال دوريا مثل هذا الفيديو: بالنسبة لمحاور الدورة وأيّ شيء متعلق بمساراتها فستحده محدّثا في هذه الصفحة: كما يتمّ تحديث هذه الصفحة دوريا كلّما قام فريق الإعداد والإدارة بتحديث معين داخل الدورة، كتحديث فيديو أو إضافة مسار جديد، كما يمكنك أن تجد أنّه يتم إضافة ملاحظات دورية أسفل الدروس بخصوص تحديث بعض الأمور وهذا ما يبين وجود متابعة صارمة من قبل الأكاديمية على محتوى الدروس والتحديثات الجديدة التي تطرأ في التقنية. بالرغم من ذلك فإنّ الوصول للدورة سيكون متاحا مدى الحياة بالإضافة إلى أيّ تحديثات تطرأ عليها، كما أنّ ثلّة من المدربين يرافقون الطلبة في مشوارهم التعليمي في الأكاديمية بحيث يجيبون على استفساراتهم وانشغالاتهم. بمجرد إتمامك للدورة أو إتمامك لأربع مسارات كاملة مع تحقيق الشروط التالية: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub أولًا بأول لمشاركتها معنا توثيق الهوية فستكون مؤهلا لاجتياز الامتحان والحصول على شهادة ومتابعة رسمية من قبل فريق مختص.
-
أولا أنصحك بتحديد نوع التطبيق قبل البدء في حال ما رغبت أن تعمل: تطبيق ويب فسيكون مناسبا إذا كنت تريد أن يكون التطبيق متاحا عبر الإنترنت هنا يمكنك استخدام تقنيات مثل: Backend: Python (Flask أو Django)، أو Node.js. Frontend: React، Vue.js أو أي مكتبة أو إطار عمل لبناء واجهات المستخدم. قاعدة البيانات: PostgreSQL مع أدوات مثل pgAdmin لإدارة البيانات. أو تطبيق سطح مكتب سيكون مناسبا إذا كان التطبيق سيعمل على أجهزة معينة داخل الشركة في هذه الحال يمكنك استخدام: Python مع مكتبة مثل Tkinter أو PyQt لإنشاء واجهات سطح المكتب. PostgreSQL كقاعدة بيانات. بالنسبة لتصميم قاعدة البيانات يمكنك البدء بتصميم قاعدة بيانات متكاملة تعكس العمليات التي سيحتاجها التطبيق ويتضمن ذلك إنشاء جداول مثل جدول العمال لتخزين بياناتهم الأساسية كالأسماء والأرقام الوظيفية والحالة الإدارية، وجدول آخر لتسجيل العمليات التي تتم على بياناتهم، مثل التعديلات أو الإضافات، مع تفاصيل عن الشخص الذي أجرى التعديل ووقته.
- 2 اجابة
-
- 1
-
-
الخطأ x8232367 تحديدا يشير إلى فشل في تهيئة خدمة التسجيل في Game Bar بسبب عدم تطابق القيم في سجل النظام مع إعدادات التطبيق وتحدث المشكلة بشكل خاص في الحالات التالية: بعد تحديثات Windows الكبيرة عند تغيير إعدادات بطاقة الرسومات عند حدوث خلل في تثبيت تحديثات Xbox Game Bar لحل المشكلة أرجو الضغط على Windows + R ثم اكتب regedit واضغط Enter بعدها انتقل إلى المسار التالي: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsLiveGamebar ابحث عن مفتاح يسمى AllowGameDVR وفي حال لم تجده قم بإنشائه بالنقر بزر الماوس الأيمن كالتالي: > New > DWORD (32-bit) Value ثم اضبط قيمته على 1 بعدها أعد تشغيل الكمبيوتر، بعد ذلك افتح التالي: Settings > Gaming > Captures ثم قم بتعطيل ثم إعادة تفعيل الخيار التالي: "Record game clips and screenshots".
-
من خلال رسالة الخطأ فالمشكلة الرئيسية هي أن المشروع لا يستطيع العثور على مكتبات Groovy المطلوبة فالنظام بالتحديد يحاول البحث عن مكتبات Groovy مثل: groovy-core groovy-ant groovy-json groovy-xml وغيرها من المكتبات والخطأ يحدث في مرحلة تنفيذ Gradle task 'assembleDebug' وهي المرحلة المسؤولة عن بناء تطبيق Android للتصحيح كما هو موضح هنا: Execution failed for task ':gradle:compileGroovy' لذا في مجلد المشروع افتح terminal وقم بتنفيذ: flutter clean rm -rf pubspec.lock cd android && ./gradlew clean وعدّل ملف android/gradle/wrapper/gradle-wrapper.properties ليكون: distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip وتأكد من أن ملف android/build.gradle يحتوي على: buildscript { ext.kotlin_version = '1.8.0' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() mavenCentral() } } ثم نفذ التالي: flutter pub get flutter run وإذا استمرت المشكلة أرجو حذف مجلد .gradle في مجلد android وحذف مجلد build في مجلد المشروع ثم إعادة تنفيذ الخطوات السابقة من جديد.
-
المشكلة في الكود تكمن في أن العناوين العربية تظهر بشكل رموز (Unicode) مثل \u0645\u0639 بدلا من ظهورها بشكل نص عربي صحيح لذا الحل بسيط جدا نحتاج فقط تعديل سطر واحد في الكود عند حفظ النتائج في ملف JSON وتحديدا في هذا الجزء: with open('results.josn' ,'w',encoding='utf8') as f: json.dump(results,f,indent=2) ونقوم بتعديله إلى التالي: with open('results.josn' ,'w',encoding='utf8') as f: json.dump(results, f, ensure_ascii=False, indent=2) بإضافة معامل ensure_ascii=False إلى دالة json.dump() وهذا سيجعل بايثون يحفظ النص العربي كما هو بدلا من تحويله إلى رموز Unicode.
- 2 اجابة
-
- 1
-
-
بالنسبة لشروط إتمام الدورة واجتياز الإمتحان فأرجو مراجعة الشروط كاملة من هنا: https://support.academy.hsoub.com/exams أما بالنسبة لأسئلتك حول ماذا سيحصل بعد اجتيازك للاختبار وحصولك على الشهادة فقد تمت الإجابة في السابق على تساؤل مماثل لذا أدعوك لمراجعة الأجوبة عليه من هنا:
-
وعليكم السلام ورحمة الله وبركاته، في الواقع القيم 0.0 و 1.0 في بيانات مرض السكري تمثل نفس المعنى مثل 0 و 1 لكن يتم تمثيلها بالأرقام العشرية (floating point numbers) لعدة أسباب من بينها: التناسق مع المعايير العامة في علم البيانات فعادة ما يتم تمثيل المتغيرات الثنائية (binary variables) كأرقام عشرية 0.0 و 1.0 التوافق مع خوارزميات التعلم الآلي فبعض الخوارزميات تتعامل بشكل أفضل مع الأرقام العشرية التناسق مع احتمالات التنبؤ لأنه عندما يقوم النموذج بالتنبؤ سيعطي نتائج على شكل احتمالات بين 0 و 1 مثل 0.7 أو 0.3 لذا يكون من المنطقي أن تكون البيانات الأصلية بنفس النمط فعندما تقوم بتدريب نموذج تصنيف ثنائي سيقوم بإخراج احتمالات عشرية بين 0 و 1 تمثل احتمال إصابة الشخص بالمرض لذا فإن استخدام 0.0 و 1.0 في البيانات الأصلية يتناسق مع هذا المفهوم.
- 2 اجابة
-
- 1
-