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

عبد الوهاب بومعراف

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

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

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

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

    2

كل منشورات العضو عبد الوهاب بومعراف

  1. يمكنك إتمام أي أربع مسارات من الدورة وليس شرطا إتمامها بالترتيب، لكن من المنطقي ومن المستنصح به إكمال أول مسارين بالترتيب لأخذ الأساسيات اللازمة لإكمال الدورة يمكنك الاطلاع على شروط الامتحان وكيفية التقدم وكيفية التحضير له من خلال هذه المراجع: الامتحان والحصول على الشهادة.
  2. يستطيع ذلك يمكنه ربط قواعد بيانات 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.
  3. ليس لديّ شكّ في ذلك، فالمستقبل اليوم يدور حول الشبكات التوليدية المتعادية (GANs) حيث تعتبر من المواضيع الأساسية في مجال التعلم العميق والذكاء الاصطناعي والشبكات التوليدية هذه هي نماذج تعلم عميق تستخدم لإنشاء بيانات جديدة تشبه البيانات الأصلية (مثل الصور أو الصوت) عن طريق تدريب نموذجين في وقت واحد المنتج الذي يحاول توليد بيانات واقعية، والتمييز الذي يحاول التمييز بين البيانات الحقيقية والمولدة ويمكن أن يتم تضمين شرح هذا الموضوع في التحديثات القادمة يمكنك البقاء على اطلاع دائم أو يمكنك التواصل مع مركز المساعدة وسيرشدونك.
  4. وعليكم السلام، R Markdown و Jupyter Notebook يشتركان في عدة أوجه تشابه، حيث يمكن استخدامهما لتضمين النصوص والأكواد وحتى نتائج التحليل في مستند واحد لكنهما مختلفان في عدة جوانب، لكن الأبرز هو أن Jupyter Notebook يركز على التفاعل المباشر حيث يمكن للمستخدم تشغيل كود وتحليل النتائج فورا، ويدعم لغات متعددة أبرزها Python، مما يجعله مناسبا للاستكشاف التجريبي وتحليل البيانات التفاعلي أما R Markdown، فهو موجه لإنتاج تقارير نهائية متكاملة بتنسيقات مثل PDF وHTML، ويدعم بشكل أساسي لغة R، حيث يتم إعداد المستند بالكامل مرة واحدة (knit) للحصول على النتائج، مما يجعله خيارا أفضل لتوثيق التحليلات وإنتاج التقارير الرسمية.
  5. أسئلة SMART هي أسئلة محددة، وقابلة للقياس، وقابلة للتحقيق، ومرتبطة بالهدف، ومحددة بوقت وهذه أمثلة عن هذه الأسئلة: محددة (Specific): ما هي القيم المحددة التي نريد تحسينها (مثل رضا العملاء أو معدل التحويل)؟ ما هي المجموعة المستهدفة من المستخدمين التي نريد جمع بياناتهم؟ قابلة للقياس (Measurable): كيف يمكننا قياس نجاح هذا القرار (مثل زيادة بنسبة 10% في عدد المستخدمين النشطين شهريًا)؟ ما هي المقاييس الأساسية التي سنعتمد عليها؟ قابلة للتحقيق (Achievable): هل لدينا البيانات والأدوات اللازمة لتحليل هذه المشكلة واتخاذ القرار المناسب؟ هل يمكن تنفيذ القرار بناءً على البيانات المتاحة خلال فترة زمنية معقولة؟ مرتبطة بالهدف (Relevant): كيف يساهم هذا القرار في تحقيق أهداف الشركة العامة، مثل تحسين جودة الخدمة أو زيادة الإيرادات؟ هل هذا القرار ينسجم مع احتياجات وتوقعات العملاء؟ محددة بوقت (Time-bound): متى نحتاج إلى اتخاذ هذا القرار وتحقيق النتائج؟ ما هو الإطار الزمني لتقييم فعالية القرار، مثل تحليل النتائج بعد ثلاثة أشهر؟ الأسئلة يمكن أن تختلف من مجال إلى آخر ومن مشروع إلى آخر فهي ليست قاعدة عامة.
  6. لا لا يمكن تعبير تحليل البيانات بعد تنزيلها من كاجل أو غيره تحليلا في الوقت الحقيقي لكن يمكن تحليل البيانات في الوقت الحقيقي باستخدام تقنيات وأدوات متقدمة مثل Apache Kafka وApache Flink وغيرها. لأنك عندما تقوم بتنزيل البيانات من منصات مثل كاجل وتحليلها، فأنت تعمل مع بيانات ثابتة أو تاريخية هذا يعني أنك تجري التحليل بعد جمع البيانات وتخزينها، وليس أثناء تدفق البيانات أما تحليل البيانات في الوقت الحقيقي أي فور وصولها أو إنشائها، مما يتيح اتخاذ قرارات فورية من التقنيات المستخدمة: Apache Kafka: وهي منصة لمعالجة تدفق البيانات. Apache Flink: وهو إطار عمل لمعالجة البيانات في الوقت الحقيقي. Spark Streaming: جزء من Apache Spark لمعالجة تدفق البيانات.
  7. للأسف حاليا لا توجد حماية مضمونة 100% لملفات PDF أو أي محتوى رقمي آخر لوجود برامج متخصصة لكسر حماية PDF مع إمكانية تصوير الشاشة وإمكانية إعادة كتابة المحتوى يدويا إضافة إلى تطور أدوات اختراق الحماية باستمرار لكن يمكنك تقليل المخاطر عبر دمج عدة طبقات من الحماية معا وإضافة علامات مائية تحتوي على بيانات المشتري وتحديث المحتوى باستمرار مع تقديم قيمة إضافية للمشترين الشرعيين كي لا يلجؤوا للقرصنة.
  8. المشكلة الرئيسية في الكود الخاص بك تكمن في طريقة توسيط ال 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; }
  9. import هو أمر خاص بلغة Python ولا يمكن استخدامه مباشرة في سطر الأوامر Terminal لذا لاستخدام import بشكل صحيح،يجب إما أن تفتح Python shell أولا من خلال تنفيذ الأمر: python3 ثم تنفيذه بعد ذلك: >>> import site أو أن تكتب الأمر في ملف Python: import site ثم تقوم بتشغيل الملف بمعنى آخر import هي كلمة محجوزة في Python وتستخدم لاستيراد المكتبات والوحدات البرمجية، وليست أمرا في نظام التشغيل.
  10. نعم 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))
  11. يمكنك ترسيخ ما تعلمته من أساسيات Html و Css بعد إتمامك لأساسيات لغة جافا سكريبت ثم عمل المشروع، إلا إن كان المشروع الذي تتحدث عنه بسيطا ومبني فقط على ال html و css فلا بأس بالتطبيق عليه ثم العودة لإتمام الدروس سيساعدك ذلك على ترسيخ ما تعلمته. لكن لا يجب أن تهمل JavaScript فهي ستفتح لك المزيد من الإمكانيات لإضافة التفاعلية والديناميكية للمشروع وjQuery يمكن أن تساعدك على التعامل مع JavaScript بشكل أسرع خاصة في بداية تعلمك، حيث إنها توفر طرقا بسيطة للتفاعل مع عناصر HTML ومعالجة الأحداث. كما يمكنك البحث في موسوعة حسوب عن أي درس تبحث بالتعمق فيه من هنا: JavaScript.
  12. بالتأكيد الاهتمام بالتفاصيل يعد جزءا أساسيا من كتابة التعليمات البرمجية بشكل احترافي، حيث أن التفاصيل الدقيقة تؤثر بشكل مباشر على جودة الكود وأداء البرنامج وسهولة صيانته، فأحيانا تعديلات صغيرة في الكود يمكن أن تحسن من أداء التطبيق وتقلل من استهلاك الذاكرة والموارد، و أيضا الاهتمام بالتفاصيل يعزز من وضوح الكود، مما يسهل فهمه وصيانته سواء لك أو للمبرمجين الآخرين، و الالتزام بمعايير كتابة الكود، مثل تسميات المتغيرات واتباع بنية معينة، يجعل الكود منظما وأسهل للتطوير، فالاهتمام بالتفاصيل هو ما يميز المبرمج المتمكن عن غيره.
  13. يوجد العديد من ال Providers الموثوقين ك SendGrid و NodeMailer و MailGun يمكنك الاعتماد عليهم على حسب التقنيات التي تعمل عليها.
  14. يمكنك استخدام خوارزميات التعلم الآلي التقليدية لتصنيف الصور والتعرف على الوجوه، وليس فقط التعلم العميق والشبكات العصبية CNN فهي تستخدم طرق التعلم الآلي التقليدية لتصنيف الصور مثل دعم الآلات المتجهة (SVM) التي تعتمد على استخراج الخصائص اليدوية ك SIFT أو HOG، مما يجعلها مناسبة للمجموعات البيانية الصغيرة نسبيا وتحقق أداء جيدا مع الصور البسيطة أما طريقة الجار الأقرب (k-NN)، فهي تعتمد على المقارنة المباشرة بين الصور، مما يجعلها بسيطة وسهلة التنفيذ وفعالة مع المجموعات الصغيرة ومن الأساليب المستخدمة أيضا للتعرف على الوجوه، تقنية Eigenfaces التي تعتمد على تحليل المكونات الرئيسية (PCA) وتعمل جيدا في ظروف إضاءة ووضعية ثابتة، بالإضافة إلى الأنماط الثنائية المحلية (LBP) التي تتيح استخراج خصائص النسيج وتعد فعالة مع مصنفات ك SVM ورغم فعالية هذه الطرق التقليدية، إلا أن الشبكات العصبية التلافيفية (CNNs) أصبحت الخيار الأمثل نظرا لدقتها العالية وقدرتها على التعامل مع الصور المعقدة والتغيرات في الإضاءة والزوايا، خاصة مع المجموعات البيانية الكبيرة.
  15. وعليكم السلام، توجد العديد من المكتبات والأدوات في بايثون التي تستخدم لمعالجة التحيز في البيانات وعلى الرغم من عدم وجود دالة واحدة ك bais في R إلا أن بايثون توفر خيارات أكثر مرونة وقوة فمثلا يمكن معالجة البيانات المفقودة التي يمكن أن تسبب تحيزا باستخدام مكتبات مثل pandas و scikit-learn لمعالجة القيم المفقودة وهي التي تتضمن الطرق الشائعة الاستبدال بالقيمة المتوسطة أو الوسيط، أو استخدام تقنيات أكثر تعقيدا مثل IterativeImputer في scikit-learn وإذا كانت البيانات غير متوازنة مثلا نجد فئة واحدة أكثر تمثيلا من الأخرى يمكنك استخدام تقنيات إعادة التشكيل Resampling إمثل SMOTE لزيادة تمثيل الفئات الأقل أو RandomUnderSampler لتقليل تمثيل الفئات الأكثر كما تتوفر هذه التقنيات في مكتبة imbalanced-learn بطبيعة الحال. والكثير الكثير موجود لكن باختصار لا توجد دالة واحدة سحرية في بايثون لمعالجة التحيز لأن الأمر يتطلب فهما جيدا للبيانات واستخدام مجموعة من التقنيات والأساليب من بينها ما ذكرناه فكل نوع من التحيز له قصة وأسلوب لمعالجته.
  16. إذا كنت تقوم بتحليلات إحصائية أو تستخدم مكتبات للتصور البياني مثل Seaborn وMatplotlib، فإن البيانات الطويلة تكون غالبا الأنسب حيث تكون كل ملاحظة في صف مستقل، مما يسهل تطبيق العمليات الإحصائية والرسومات البيانية وهذا الشكل يجعل من السهل التعامل مع كل حالة بشكل فردي وتطبيق الفلاتر والشرط عليها. ومن ناحية أخرى قد تحتاج إلى تحويل البيانات إلى صيغة واسعة عندما ترغب في تقديمها في تقارير أو جداول، حيث يكون من الأسهل فهمها وقراءتها فالبيانات الواسعة تسهل أيضا بعض أنواع النمذجة التي تتطلب أن تكون كل ميزة في عمود منفصل، مما يسمح بإجراء مقارنات مباشرة بين المتغيرات المختلفة يمكنك تنفيذ هذه التحويلات بسهولة باستخدام مكتبة Pandas في Python وتستخدم melt() لجعل البيانات طويلة، بينما تستخدم pivot() أو pivot_table() لجعل البيانات واسعة، وفقًا لما تحتاجه من العمليات أو العرض.
  17. نعم يعتبر كلاهما نوعا من هياكل البيانات، فـ Series هي عبارة عن هيكل بيانات أحادي البعد تشبه القائمة، حيث تحتوي على بيانات مرتبة يتم تخزينها كقائمة من القيم، ويمكن أن يكون لكل عنصر فيها فهرس خاص به، و تستخدم عادة لتمثيل الأعمدة الفردية في الجداول. أما DataFrame هو هيكل بيانات ثنائي الأبعاد، يشبه الجدول أو قاعدة البيانات حيث يحتوي على صفوف وأعمدة، و يمكن القول بأنه مجموعة من الـSeries معا، حيث يمثل كل عمود Series مختلفة، ويمكن أن يحتوي كل عمود على نوع بيانات مختلف. و يعتبران هيكلين مهمين لمعالجة البيانات وتحليلها في بايثون، ويسمحان بإجراء عمليات متقدمة بشكل سهل وفعال.
  18. لا الـ pipe في لغة R تختلف تماما عن وظيفة الـ def في بايثون، حيث يعتبر مشغل يتم استخدامه لتمرير نتيجة تعبير أو دالة كمدخل للدالة التالية، ويجعل قراءة الكود أكثر سهولة وتتابعا، و غالبا ما يتم استخدامه في حزمة dplyr للتعامل مع البيانات بشكل تسلسلي. يعني وظيفة الـ pipe في R هي أنه يسمح بتمرير البيانات بين الدوال، بينما def في بايثون تستخدم لتعريف دالة جديدة.
  19. الكود الحالي فيه مشكلة بسيطة في الشرط الذي يستخدم لتحديد الأعمدة التي لن يتم استبدال القيم فيها، حيث استخدمت الشرط: 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'.
  20. لديك خطأ بسيط في السطر رقم 3 حيث إستخدمت علامة تساوي واحدة بينما من أجل المقارنة في بايثون نستخدم علامتي تساوي، لذا يجب تصحيح الكود بهذا الشكل: if name=='dada': بالتوفيق.
  21. بالنسبة للغة بايثون فهي تمس العديد من المجالات و بالتالي تعلمك لها لا يعني أن تتركها بهذه السهولة و إنما يمكنك العثور على وظائف فيها أيضا مع مرور الوقت، أما بالنسبة لدورة جافاسكريبت فيتم من خلالها تأسيسك من الصفر و بالتالي لا تحتاج إلى أن تدرس أي شيء خارج الدورة كبداية، و يمكنك الإطلاع على المعلومات الخاصة بالدورة أكثر من هذا الرابط. بالتوفيق إن شاء الله في مسارك الجديد.
  22. بالنسبة ل API التي تحتاجها لتنفيذ هذا المشروع، الأول سيكون خاص بتسجيل البائعين ومراجعة طلباتهم حيث تسمح للبائعين بإنشاء حساب جديد وتقديم معلوماتهم عبر نموذج تسجيل يحتوي على بيانات كـالاسم، عنوان المتجر، المنتجات،و أيضا ترسل إشعار إلى لوحة الإدارة عند تسجيل بائع جديد، مما يسمح لهم بمراجعة الطلب والموافقة عليه أو رفضه. الـ API الثاني خاص بإدارة المنتجات حيث يتيح للبائعين إضافة المنتجات إلى النظام أو تعديلها، و يحدد كمية المنتج الموجودة، ويتابع تحديثها، و بعد الموافقة، يتم تفعيل البائع وربط متجره بموقعك ليظهر ضمن المنصة. كما ستحتاج إلى نظام الإشعارات و الذي من خلاله يت إرسال إشعارات للبائعين أو للإدارة عندما تنخفض كميات المنتجات إلى مستوى معين، عبر البريد الإلكتروني أو الإشعارات المباشرة. بالنسبة للمدة و التكلفة هذه الأمور يتم تحديدها من طرف المبرمج الذي سيقوم بهذا الأمر و على حسب خبرته و سرعته في الإنجاز، أما بخصوص الإشعارات الفورية أو الإشعارات عبر الرسائل القصيرة فهي تعتمد على مزودي الخدمة مثل Twilio، وقد تتراوح بين 0.01 و0.05 دولار لكل إشعار و السعر يختلف على حسب الدول التي سيتم إرسال الرسائل النصية إليها.
  23. الدورة موجهة لكل الفئات و لا تحتاج إلى خبرة سابقة أو أي تهيئة قبل بدءها لأن تمس كامل الجوانب من الأساسيات إلى إحتراف لغة جافاسكريبت و أطر العمل الخاصة بها، فالمسار الأول كله حول أساسيات جافاسكريبت و تدرس من خلاله حلقات التكرار، الدوال، المصفوفات، الكائنات، الأصناف و غيرها من الأمور. بالنسبة لكونك تريد أن تكون مطور خلفية فقط، يمكنك الإكتفاء بأساسيات CSS كبداية لكن مع مرور الوقت أنصحك بالعودة لدروس CSS و مشاهدتها لأنه من المهم أن يكون لديك خلفية حول كيفية بناء صفحات الويب و يمكنك أن تعدل عليها و لو قليلا في حالة لزم الأمر.
  24. الخطأ "Hydration failed" في Next.js يعني أن HTML المنشئ على جانب الخادم (SSR) لا يتطابق مع HTML الذي تم إنشاؤه على جانب العميل وهذا عادة ما يكون بسبب اختلاف في البيانات أو الحالة أما في حالتك فالمشكلة في استخدام ubuntu.className داخل RootLayout لأن ubuntu.className هي خاصية ديناميكية، أي أنها تحسب في كل مرة يعاد تجميع المكون (React component) وبما أن Next.js يقوم بتحميل صفحة React من الخادم (SSR) ثم يحييها على جانب العميل (Client-side hydration)، فالتغييرات الديناميكية على الخادم قد لا تتطابق مع العميل، وبالتالي يحدث الخطأ "Hydration failed" لذا يمكن حل المشكلة عن طريق تخزين قيمة ubuntu.className في متغير ثابت داخل RootLayout ثم استخدامه في body: import {NextIntlClientProvider} from 'next-intl'; import {getLocale, getMessages} from 'next-intl/server'; import { AppProvider } from "@/context/AppContext"; import { Tajawal } from "next/font/google"; const ubuntu = Tajawal({ subsets: ["arabic"], weight: ["300", "400", "500", "700"] }); export default async function RootLayout({ children }) { const locale = await getLocale(); const messages = await getMessages(); const direction = locale === "ar" ? "rtl" : "ltr"; const fontClassName = ubuntu.className; return ( <html lang={locale} dir={direction}> <body className={fontClassName}> <NextIntlClientProvider messages={messages}> <AppProvider> {children} </AppProvider> </NextIntlClientProvider> </body> </html> ); } هنا نقوم بحساب ubuntu.className مرة واحدة على جانب الخادم ثم React يقوم بحفظ هذه القيمة في fontClassName بعدها نستخدم القيمة الثابتة fontClassName داخل className في body و رياكت سيستخدم هذه القيمة المخزنة على جانب الخادم.
  25. يمكنني أن أنصحك بالعديد من المواقع التي يمكنك من خلالها الحصول على البيانات والعمل عليها باحترافية تامة فالعديد من المصادر توفر مجموعات بيانات مفتوحة وسهلة للمبتدئين كموقع Kaggle الذي يحتوي على آلاف مجموعات البيانات المجانية، يمكنك تصفح مجموعات بيانات جاهزة لاستخدامها في التحليل، مثل بيانات الطقس، المبيعات، وسجلات المرضى ويمكنك الوصول إليها عبر Kaggle Datasets. كما توجد خدمة بحث من جوجل اسمها Google Dataset Search ستساعدك على العثور على مجموعات بيانات منشورة في الإنترنت يمكنك البحث عن مجموعات بيانات تتعلق بمواضيع معينة ترغب في العمل أو البحث عليها. كما توجد قائمة على موقع GitHub اسمها Awesome Public Datasets فهي تجمع العديد من مجموعات البيانات المفتوحة، يمكنك استخدامها في تحليل البيانات في مجالات متعددة مثل العلوم الاجتماعية، الاقتصاد، الرياضيات وغيرها كما يمكنك الاطلاع على الإجابات المشابهة لسؤالك هنا:
×
×
  • أضف...