-
المساهمات
785 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبد الوهاب بومعراف
-
أقترح عليك مراجعة هذه الإجابة السابقة وستساعدك على رفع مشاريعك على موقع غيتهاب: في حال أردت التعلم والتزود أكثر بنفسك أقترح عليك هذه المراجع: https://academy.hsoub.com/programming/workflow/git/.
-
لا توجد أخطاء كثيرة لكن فيما يخص وضع: id="center" يجب وضعه على العنصر الخارجي <div> الذي يحتوي على عناصر النموذج بأكملها، وليس على العنصر الداخلي وهذا سيتيح تطبيق قواعد CSS بشكل صحيح كما يمكن إضافة action للنموذج على عنصر <form> لتحديد وجهة إرسال بيانات النموذج على سبيل المثال: <form action="/login" method="POST">. وينصح أيضا باستخدام سمة placeholder بدلا من value لتقديم نص تعبئة افتراضي في حقول الإدخال على سبيل المثال: <input type="username" id="username" placeholder="Type your user name"> <input type="password" id="password" placeholder="Type your password"> في حال كان سؤالك متعلقا بإحدى الدروس في إحدى الدورات أرجو وضع تعليقك في المرات القادمة في أسفل الدرس في صندوق التعليقات المخصص لذلك.
-
يقوم الكود بتعريف دالة G(a, b) تأخذ مدخلين a و b وترجع أربعة قيم على شكل Tuple والدالة G(a, b) تقوم بمعالجة الأعداد الفردية من 1 إلى b وتؤثر هذه الأعداد على قيمة i التي تتغير داخل الحلقة الخارجية التي تعتمد على a ثم تجري عمليات حسابية على i و j و T و M وترجع قيمها النهائية لاحظ التالي: الحلقة الخارجية: تتكرر من i = 1 إلى a - 1. الحلقة الداخلية: تتكرر من j = 1 إلى b. الشرط داخل الحلقة الداخلية يقول أنه إذا كان j عددا فرديا فسيتم تنفيذ العمليات الحسابية التالية: زيادة قيمة i بمقدار j. زيادة قيمة T بمقدار i + j (بعد تحديث i). تحديث قيمة M باستخدام الصيغة M + T // 2 + j % i. وعند الإرجاع أي بعد انتهاء الحلقات ترجع الدالة قيم i و j و T و M النهائية. لنأخذ مثالا عند استدعاء G(2, 3) الحلقة الخارجية ستتكرر مرة واحدة فقط عندما يكون i = 1 والحلقة الداخلية تتكرر ثلاث مرات كالآتي: j = 1: i يصبح 2، T يصبح 3، M يصبح 2. j = 2: لا شيء يحدث لأن j زوجي. j = 3: i يصبح 5، T يصبح 11، M يصبح 11. ثم ترجع الدالة (5, 3, 11, 11) وفي استدعاء G(2, 5) يتم نفس الشيء لكن الحلقة الداخلية ستتكرر خمس مرات، وترجع الدالة (10, 5, 26, 29).
-
يمكنك إتمام أي أربع مسارات من الدورة وليس شرطا إتمامها بالترتيب، لكن من المنطقي ومن المستنصح به إكمال أول مسارين بالترتيب لأخذ الأساسيات اللازمة لإكمال الدورة يمكنك الاطلاع على شروط الامتحان وكيفية التقدم وكيفية التحضير له من خلال هذه المراجع: الامتحان والحصول على الشهادة.
- 2 اجابة
-
- 1
-
يستطيع ذلك يمكنه ربط قواعد بيانات Oracle بمشروع لارافيل بسبب الدعم الذي توفره حزمة yajra/laravel-oci8 فهذه الحزمة تمكّن لارافيل من التواصل مع قواعد بيانات Oracle بسهولة، مما يسمح له باستخدام مزايا لارافيل مثل Eloquent وQuery Builder لإجراء الاستعلامات يمكنه استخدام حزمة yajra/laravel-oci8 وبعد تثبيت الحزمة، يمكنه إعداد ملف البيئة .env بمعلومات الاتصال بقاعدة البيانات مثل المضيف، واسم المستخدم، وكلمة المرور، واسم قاعدة البيانات أولا تثبيت الحزمة من خلال الأمر: composer require yajra/laravel-oci8 ثم تحديث إعدادات قاعدة البيانات في ملف .env: DB_CONNECTION=oracle DB_HOST=your-host DB_PORT=1521 DB_DATABASE=your-database DB_USERNAME=your-username DB_PASSWORD=your-password وتحديث إعدادات قاعدة البيانات في ملف config/database.php إذا لزم الأمر للتأكد من أنها تتضمن إعدادات Oracle.
- 2 اجابة
-
- 1
-
ليس لديّ شكّ في ذلك، فالمستقبل اليوم يدور حول الشبكات التوليدية المتعادية (GANs) حيث تعتبر من المواضيع الأساسية في مجال التعلم العميق والذكاء الاصطناعي والشبكات التوليدية هذه هي نماذج تعلم عميق تستخدم لإنشاء بيانات جديدة تشبه البيانات الأصلية (مثل الصور أو الصوت) عن طريق تدريب نموذجين في وقت واحد المنتج الذي يحاول توليد بيانات واقعية، والتمييز الذي يحاول التمييز بين البيانات الحقيقية والمولدة ويمكن أن يتم تضمين شرح هذا الموضوع في التحديثات القادمة يمكنك البقاء على اطلاع دائم أو يمكنك التواصل مع مركز المساعدة وسيرشدونك.
-
وعليكم السلام، R Markdown و Jupyter Notebook يشتركان في عدة أوجه تشابه، حيث يمكن استخدامهما لتضمين النصوص والأكواد وحتى نتائج التحليل في مستند واحد لكنهما مختلفان في عدة جوانب، لكن الأبرز هو أن Jupyter Notebook يركز على التفاعل المباشر حيث يمكن للمستخدم تشغيل كود وتحليل النتائج فورا، ويدعم لغات متعددة أبرزها Python، مما يجعله مناسبا للاستكشاف التجريبي وتحليل البيانات التفاعلي أما R Markdown، فهو موجه لإنتاج تقارير نهائية متكاملة بتنسيقات مثل PDF وHTML، ويدعم بشكل أساسي لغة R، حيث يتم إعداد المستند بالكامل مرة واحدة (knit) للحصول على النتائج، مما يجعله خيارا أفضل لتوثيق التحليلات وإنتاج التقارير الرسمية.
- 4 اجابة
-
- 1
-
أسئلة SMART هي أسئلة محددة، وقابلة للقياس، وقابلة للتحقيق، ومرتبطة بالهدف، ومحددة بوقت وهذه أمثلة عن هذه الأسئلة: محددة (Specific): ما هي القيم المحددة التي نريد تحسينها (مثل رضا العملاء أو معدل التحويل)؟ ما هي المجموعة المستهدفة من المستخدمين التي نريد جمع بياناتهم؟ قابلة للقياس (Measurable): كيف يمكننا قياس نجاح هذا القرار (مثل زيادة بنسبة 10% في عدد المستخدمين النشطين شهريًا)؟ ما هي المقاييس الأساسية التي سنعتمد عليها؟ قابلة للتحقيق (Achievable): هل لدينا البيانات والأدوات اللازمة لتحليل هذه المشكلة واتخاذ القرار المناسب؟ هل يمكن تنفيذ القرار بناءً على البيانات المتاحة خلال فترة زمنية معقولة؟ مرتبطة بالهدف (Relevant): كيف يساهم هذا القرار في تحقيق أهداف الشركة العامة، مثل تحسين جودة الخدمة أو زيادة الإيرادات؟ هل هذا القرار ينسجم مع احتياجات وتوقعات العملاء؟ محددة بوقت (Time-bound): متى نحتاج إلى اتخاذ هذا القرار وتحقيق النتائج؟ ما هو الإطار الزمني لتقييم فعالية القرار، مثل تحليل النتائج بعد ثلاثة أشهر؟ الأسئلة يمكن أن تختلف من مجال إلى آخر ومن مشروع إلى آخر فهي ليست قاعدة عامة.
- 4 اجابة
-
- 1
-
لا لا يمكن تعبير تحليل البيانات بعد تنزيلها من كاجل أو غيره تحليلا في الوقت الحقيقي لكن يمكن تحليل البيانات في الوقت الحقيقي باستخدام تقنيات وأدوات متقدمة مثل Apache Kafka وApache Flink وغيرها. لأنك عندما تقوم بتنزيل البيانات من منصات مثل كاجل وتحليلها، فأنت تعمل مع بيانات ثابتة أو تاريخية هذا يعني أنك تجري التحليل بعد جمع البيانات وتخزينها، وليس أثناء تدفق البيانات أما تحليل البيانات في الوقت الحقيقي أي فور وصولها أو إنشائها، مما يتيح اتخاذ قرارات فورية من التقنيات المستخدمة: Apache Kafka: وهي منصة لمعالجة تدفق البيانات. Apache Flink: وهو إطار عمل لمعالجة البيانات في الوقت الحقيقي. Spark Streaming: جزء من Apache Spark لمعالجة تدفق البيانات.
- 4 اجابة
-
- 1
-
للأسف حاليا لا توجد حماية مضمونة 100% لملفات PDF أو أي محتوى رقمي آخر لوجود برامج متخصصة لكسر حماية PDF مع إمكانية تصوير الشاشة وإمكانية إعادة كتابة المحتوى يدويا إضافة إلى تطور أدوات اختراق الحماية باستمرار لكن يمكنك تقليل المخاطر عبر دمج عدة طبقات من الحماية معا وإضافة علامات مائية تحتوي على بيانات المشتري وتحديث المحتوى باستمرار مع تقديم قيمة إضافية للمشترين الشرعيين كي لا يلجؤوا للقرصنة.
-
المشكلة الرئيسية في الكود الخاص بك تكمن في طريقة توسيط ال form فأنت تستخدم: form { width: 300px; height: 300px; align-content: center; align-items: center; justify-content: center; margin: auto; background-color: azure; } واستخدمت كلا من align-content, align-items, و justify-content بدون تحديد display: flex للعنصر الأب مع أن margin: auto يمكن أن يساعد في التوسيط الأفقي، لكنه لا يكفي للتوسيط الرأسي ولحل المشكلة، يمكنك استخدام flexbox في الـ body كالآتي: body { background: linear-gradient(90deg, rgba(0,24,36,1) 0%, rgba(41,154,153,1) 0%, rgba(74,82,84,1) 100%); width: 100%; height: 100vh; display: flex; align-items: center; justify-content: center; } form { width: 300px; height: 300px; background-color: azure; }
- 2 اجابة
-
- 1
-
import هو أمر خاص بلغة Python ولا يمكن استخدامه مباشرة في سطر الأوامر Terminal لذا لاستخدام import بشكل صحيح،يجب إما أن تفتح Python shell أولا من خلال تنفيذ الأمر: python3 ثم تنفيذه بعد ذلك: >>> import site أو أن تكتب الأمر في ملف Python: import site ثم تقوم بتشغيل الملف بمعنى آخر import هي كلمة محجوزة في Python وتستخدم لاستيراد المكتبات والوحدات البرمجية، وليست أمرا في نظام التشغيل.
-
نعم title هو لإضافة العنوان الرئيسي للرسم البياني، لكن يمكننا أيضا إضافة العناوين الفرعية والتعليقات التوضيحية لجعل الرسم البياني أكثر وضوحا باستخدام بعض دوال matplotlib الأخرى مثلا يمكنك استخدام plt.suptitle() فهي تستخدم لإضافة عنوان فرعي يظهر أعلى الرسم البياني ويكون منفصلا عن العنوان الرئيسي وy=1.02 هنا تحدد ارتفاع العنوان الفرعي بالنسبة للرسم، مما يساعد على وضعه فوق العنوان الرئيسي قليلا. plt.suptitle('العنوان الفرعي', fontsize=12, y=1.02) لدينا أيضا plt.text() تستخدم لإضافة نص توضيحي داخل الرسم البياني عند نقطة معينة: plt.text(2, 8, 'هذا تعليق توضيحي', fontsize=10) في حين plt.annotate() تضيف تعليقا مع سهم يشير إلى نقطة معينة، مما يساعد على تسليط الضوء على بيانات معينة وarrowprops يسمح بتخصيص مظهر السهم، مثل لون السهم عبر facecolor لاحظ: plt.annotate('ملاحظة', xy=(3, 6), # النقطة التي يشير إليها السهم xytext=(4, 7), # مكان النص arrowprops=dict(facecolor='black', shrink=0.05))
- 3 اجابة
-
- 1
-
يمكنك ترسيخ ما تعلمته من أساسيات Html و Css بعد إتمامك لأساسيات لغة جافا سكريبت ثم عمل المشروع، إلا إن كان المشروع الذي تتحدث عنه بسيطا ومبني فقط على ال html و css فلا بأس بالتطبيق عليه ثم العودة لإتمام الدروس سيساعدك ذلك على ترسيخ ما تعلمته. لكن لا يجب أن تهمل JavaScript فهي ستفتح لك المزيد من الإمكانيات لإضافة التفاعلية والديناميكية للمشروع وjQuery يمكن أن تساعدك على التعامل مع JavaScript بشكل أسرع خاصة في بداية تعلمك، حيث إنها توفر طرقا بسيطة للتفاعل مع عناصر HTML ومعالجة الأحداث. كما يمكنك البحث في موسوعة حسوب عن أي درس تبحث بالتعمق فيه من هنا: JavaScript.
-
بالتأكيد الاهتمام بالتفاصيل يعد جزءا أساسيا من كتابة التعليمات البرمجية بشكل احترافي، حيث أن التفاصيل الدقيقة تؤثر بشكل مباشر على جودة الكود وأداء البرنامج وسهولة صيانته، فأحيانا تعديلات صغيرة في الكود يمكن أن تحسن من أداء التطبيق وتقلل من استهلاك الذاكرة والموارد، و أيضا الاهتمام بالتفاصيل يعزز من وضوح الكود، مما يسهل فهمه وصيانته سواء لك أو للمبرمجين الآخرين، و الالتزام بمعايير كتابة الكود، مثل تسميات المتغيرات واتباع بنية معينة، يجعل الكود منظما وأسهل للتطوير، فالاهتمام بالتفاصيل هو ما يميز المبرمج المتمكن عن غيره.
- 4 اجابة
-
- 1
-
يمكنك استخدام خوارزميات التعلم الآلي التقليدية لتصنيف الصور والتعرف على الوجوه، وليس فقط التعلم العميق والشبكات العصبية CNN فهي تستخدم طرق التعلم الآلي التقليدية لتصنيف الصور مثل دعم الآلات المتجهة (SVM) التي تعتمد على استخراج الخصائص اليدوية ك SIFT أو HOG، مما يجعلها مناسبة للمجموعات البيانية الصغيرة نسبيا وتحقق أداء جيدا مع الصور البسيطة أما طريقة الجار الأقرب (k-NN)، فهي تعتمد على المقارنة المباشرة بين الصور، مما يجعلها بسيطة وسهلة التنفيذ وفعالة مع المجموعات الصغيرة ومن الأساليب المستخدمة أيضا للتعرف على الوجوه، تقنية Eigenfaces التي تعتمد على تحليل المكونات الرئيسية (PCA) وتعمل جيدا في ظروف إضاءة ووضعية ثابتة، بالإضافة إلى الأنماط الثنائية المحلية (LBP) التي تتيح استخراج خصائص النسيج وتعد فعالة مع مصنفات ك SVM ورغم فعالية هذه الطرق التقليدية، إلا أن الشبكات العصبية التلافيفية (CNNs) أصبحت الخيار الأمثل نظرا لدقتها العالية وقدرتها على التعامل مع الصور المعقدة والتغيرات في الإضاءة والزوايا، خاصة مع المجموعات البيانية الكبيرة.
- 4 اجابة
-
- 1
-
وعليكم السلام، توجد العديد من المكتبات والأدوات في بايثون التي تستخدم لمعالجة التحيز في البيانات وعلى الرغم من عدم وجود دالة واحدة ك bais في R إلا أن بايثون توفر خيارات أكثر مرونة وقوة فمثلا يمكن معالجة البيانات المفقودة التي يمكن أن تسبب تحيزا باستخدام مكتبات مثل pandas و scikit-learn لمعالجة القيم المفقودة وهي التي تتضمن الطرق الشائعة الاستبدال بالقيمة المتوسطة أو الوسيط، أو استخدام تقنيات أكثر تعقيدا مثل IterativeImputer في scikit-learn وإذا كانت البيانات غير متوازنة مثلا نجد فئة واحدة أكثر تمثيلا من الأخرى يمكنك استخدام تقنيات إعادة التشكيل Resampling إمثل SMOTE لزيادة تمثيل الفئات الأقل أو RandomUnderSampler لتقليل تمثيل الفئات الأكثر كما تتوفر هذه التقنيات في مكتبة imbalanced-learn بطبيعة الحال. والكثير الكثير موجود لكن باختصار لا توجد دالة واحدة سحرية في بايثون لمعالجة التحيز لأن الأمر يتطلب فهما جيدا للبيانات واستخدام مجموعة من التقنيات والأساليب من بينها ما ذكرناه فكل نوع من التحيز له قصة وأسلوب لمعالجته.
- 4 اجابة
-
- 1
-
إذا كنت تقوم بتحليلات إحصائية أو تستخدم مكتبات للتصور البياني مثل Seaborn وMatplotlib، فإن البيانات الطويلة تكون غالبا الأنسب حيث تكون كل ملاحظة في صف مستقل، مما يسهل تطبيق العمليات الإحصائية والرسومات البيانية وهذا الشكل يجعل من السهل التعامل مع كل حالة بشكل فردي وتطبيق الفلاتر والشرط عليها. ومن ناحية أخرى قد تحتاج إلى تحويل البيانات إلى صيغة واسعة عندما ترغب في تقديمها في تقارير أو جداول، حيث يكون من الأسهل فهمها وقراءتها فالبيانات الواسعة تسهل أيضا بعض أنواع النمذجة التي تتطلب أن تكون كل ميزة في عمود منفصل، مما يسمح بإجراء مقارنات مباشرة بين المتغيرات المختلفة يمكنك تنفيذ هذه التحويلات بسهولة باستخدام مكتبة Pandas في Python وتستخدم melt() لجعل البيانات طويلة، بينما تستخدم pivot() أو pivot_table() لجعل البيانات واسعة، وفقًا لما تحتاجه من العمليات أو العرض.
- 4 اجابة
-
- 1
-
نعم يعتبر كلاهما نوعا من هياكل البيانات، فـ Series هي عبارة عن هيكل بيانات أحادي البعد تشبه القائمة، حيث تحتوي على بيانات مرتبة يتم تخزينها كقائمة من القيم، ويمكن أن يكون لكل عنصر فيها فهرس خاص به، و تستخدم عادة لتمثيل الأعمدة الفردية في الجداول. أما DataFrame هو هيكل بيانات ثنائي الأبعاد، يشبه الجدول أو قاعدة البيانات حيث يحتوي على صفوف وأعمدة، و يمكن القول بأنه مجموعة من الـSeries معا، حيث يمثل كل عمود Series مختلفة، ويمكن أن يحتوي كل عمود على نوع بيانات مختلف. و يعتبران هيكلين مهمين لمعالجة البيانات وتحليلها في بايثون، ويسمحان بإجراء عمليات متقدمة بشكل سهل وفعال.
- 3 اجابة
-
- 1
-
لا الـ pipe في لغة R تختلف تماما عن وظيفة الـ def في بايثون، حيث يعتبر مشغل يتم استخدامه لتمرير نتيجة تعبير أو دالة كمدخل للدالة التالية، ويجعل قراءة الكود أكثر سهولة وتتابعا، و غالبا ما يتم استخدامه في حزمة dplyr للتعامل مع البيانات بشكل تسلسلي. يعني وظيفة الـ pipe في R هي أنه يسمح بتمرير البيانات بين الدوال، بينما def في بايثون تستخدم لتعريف دالة جديدة.
- 4 اجابة
-
- 1
-
الكود الحالي فيه مشكلة بسيطة في الشرط الذي يستخدم لتحديد الأعمدة التي لن يتم استبدال القيم فيها، حيث استخدمت الشرط: if col != 'Pregnancies' or col != 'DiabetesPedigreeFunction' ولكن هذا الشرط سيظل صحيحا دائما، لأن أي عمود إما أنه ليس 'Pregnancies' أو ليس 'DiabetesPedigreeFunction'، لذا يجب عليك استخدام الشرط and حتى يستثني فقط هذين العمودين معا، جرب تعديل الكود إلى الآتي: for col in diabetes.columns: if col != 'Pregnancies' and col != 'DiabetesPedigreeFunction': diabetes[col] = diabetes[col].replace(0, np.nan) هكذا سيتم استبدال القيم 0 بقيم NaN في جميع الأعمدة، ما عدا الأعمدة 'Pregnancies' و 'DiabetesPedigreeFunction'.
- 3 اجابة
-
- 1
-
بالنسبة للغة بايثون فهي تمس العديد من المجالات و بالتالي تعلمك لها لا يعني أن تتركها بهذه السهولة و إنما يمكنك العثور على وظائف فيها أيضا مع مرور الوقت، أما بالنسبة لدورة جافاسكريبت فيتم من خلالها تأسيسك من الصفر و بالتالي لا تحتاج إلى أن تدرس أي شيء خارج الدورة كبداية، و يمكنك الإطلاع على المعلومات الخاصة بالدورة أكثر من هذا الرابط. بالتوفيق إن شاء الله في مسارك الجديد.
-
بالنسبة ل API التي تحتاجها لتنفيذ هذا المشروع، الأول سيكون خاص بتسجيل البائعين ومراجعة طلباتهم حيث تسمح للبائعين بإنشاء حساب جديد وتقديم معلوماتهم عبر نموذج تسجيل يحتوي على بيانات كـالاسم، عنوان المتجر، المنتجات،و أيضا ترسل إشعار إلى لوحة الإدارة عند تسجيل بائع جديد، مما يسمح لهم بمراجعة الطلب والموافقة عليه أو رفضه. الـ API الثاني خاص بإدارة المنتجات حيث يتيح للبائعين إضافة المنتجات إلى النظام أو تعديلها، و يحدد كمية المنتج الموجودة، ويتابع تحديثها، و بعد الموافقة، يتم تفعيل البائع وربط متجره بموقعك ليظهر ضمن المنصة. كما ستحتاج إلى نظام الإشعارات و الذي من خلاله يت إرسال إشعارات للبائعين أو للإدارة عندما تنخفض كميات المنتجات إلى مستوى معين، عبر البريد الإلكتروني أو الإشعارات المباشرة. بالنسبة للمدة و التكلفة هذه الأمور يتم تحديدها من طرف المبرمج الذي سيقوم بهذا الأمر و على حسب خبرته و سرعته في الإنجاز، أما بخصوص الإشعارات الفورية أو الإشعارات عبر الرسائل القصيرة فهي تعتمد على مزودي الخدمة مثل Twilio، وقد تتراوح بين 0.01 و0.05 دولار لكل إشعار و السعر يختلف على حسب الدول التي سيتم إرسال الرسائل النصية إليها.