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

Mustafa Suleiman

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

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

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

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

    495

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

  1. الأسهل لك هو PHP مع لارافل، يوجد الكثير من المكونات والأدوات الجاهزة وأسهل في عملية التطوير بمفردك.
  2. هناك مبادرتين الأولى مبادرة مصر الرقمية والثانية الرواد الرقميون Digilians وكلاهما يشترط الجنسية المصرية. في السعودية ستجد مبادرات ومنح منها: الأكاديمية السعودية الرقمية منصة دروب السعودية برنامج الابتعاث في الذكاء الاصطناعي منحة جامعة محمد بن زايد للذكاء الاصطناعي مبادرة سماي من الهيئة السعودية للبيانات والذكاء الاصطناعي (سدايا)
  3. أنت تقصد دورة الذكاء الاصطناعي ، بالفعل لم يتم التعمق لأنّ نطاق الدورة لا يختص بتعلم SQL أو قواعد البيانات، لذا تم ذكر الأساسيات وما تحتاجه لدراسة الدورة. ستحتاج إلى التعمق من خلال البحث عن كورس في يوتيوب به تفصيل أكثر ومواضيع متقدمة، بجانب المقالات المتاحة بالأكاديمية في قسم SQL: https://academy.hsoub.com/programming/sql/ ستجد بها دروس متقدمة مثل: وتوثيق لغة SQL من موسوعة حسوب. والكتب التعليمية أيضًا:
  4. صحيح تم إضافة مسارات جديدة للدورة، أحدثها منذ أيام وهو مسار التعلم المعزز Reinforcement Learning. ستجد تفاصيل التحديثات هنا: https://academy.hsoub.com/release-notes/
  5. أرجو توضيح ما هي الدورة المقصودة في السؤال؟
  6. الأمر بسيط، المجال مطلوب بالطبع، والشهادات لا معنى لها بدون تعلم مهارات فعلية مطلوبة في الواقع العملي، بالتالي السعي وراء الشهادات مضيعة للوقت إلا كانت شهادة معروفة ومُعتمدة كـ CEH أو CISSP والتي تحصل عليها لاحقًا لتطوير مهاراتك. لذا تفقد ما الذي يوفر لك منهج تعليمي واقعي وحديث وليس نظري وقديم. وبخصوص العمل الحر، تستطيع ذلك لا مشكلة، تفقد مواقع العمل الحر وستجد مشاريع خاصة بالأمن السيبراني.
  7. بالطبع، تستطيع وضع استفسارك هنا والصعوبة التي تواجهها وسيتم مساعدتك في أي وقت، لكن ليس خطوة خطوة سيتم إرشادك وتوضيح الأمر لك وترك باقي المهمة لك، وفي حال واجهتك مشكلة في جزئية ما تستطيع السؤال.
  8. تحتاج للتدقيق لتخطي الـ captcha للتأكد من أنك لست روبوت، العملية الحسابية هي 7 - 5 وذلك يساوي 2 اكتب في الحقل رقم 2. بالنسبة لتخطيها من خلال بوت، ستحتاج إلى تدريب نموذج على تلك الإختبارات بإنشاء Dataset من تلك الإختبارات لتدريب النموذج عليها، ابحث عن fine-tuning وستجد تفصيل هنا: واعتمد على نماذج اكتشاف الكائنات المُدربة مسبقًا ومنها YOLO أو Faster R-CNN أو DETR أو EfficientDet عامًة ما ستقوم به هو توصيف كل صورة في مجموعة التدريب، بمعنى رسم مربعات محيطة Bounding Boxes حول كل رقم وكل رمز عملية حسابية تريد أن يتعرف عليها النموذج، وتحديد الصنف Label لكل مربع، وهناك أدوات توصيف متاحة منها LabelImg, CVAT, Roboflow. ثم تنفيذ الـ Fine-tuning بتدريب النموذج الذي اخترته مع الأوزان المدربة مسبقاً على مجموعة البيانات الموصوفة التي قمت بها، وسيتعلم النموذج تعديل معرفته العامة للتركيز على اكتشاف الأرقام والرموز.
  9. عليك تصحيح جملة UPDATE بإزالة person_id = ?, من الجزء SET. كالتالي: $sql_update_employee = "UPDATE employees SET `type` = ?, degree = ?, degree_date = ?, status = ?, due = ?, qualification = ?, start_date = ?, res_num = ?, section_id = ?, sub_section_id = ?, specialty_id = ?, bank_id = ?, branch = ?, account_num = ? WHERE person_id = ?"; ويجب وجود عمود باسم specialty_id تفقده في قاعدة البيانات. ثم تصحيح استدعاء bind_param لجدول employees باستخدم 15 متغيرًا مطابقًا لعلامات الاستفهام الـ 15 في الاستعلام السابق مع كتابة $id للمتغير الأخير الخاص بجملة WHERE. مع استخدم الأنواع الصحيحة وهي i للأرقام الصحيحة، s للسلاسل النصية، d للأرقام العشرية، تفقد أنواع الأعمدة في قاعدة البيانات أولاً ثم عدل الاستعلام التالي: $specialty_id = $_POST['specialties_id']; $sql_update_employee = "UPDATE employees SET `type` = ?, degree = ?, degree_date = ?, status = ?, due = ?, qualification = ?, start_date = ?, res_num = ?, section_id = ?, sub_section_id = ?, specialty_id = ?, bank_id = ?, branch = ?, account_num = ? WHERE person_id = ?"; $stmt_update_employee = $con->prepare($sql_update_employee); $types = "sissssssiiiissi"; // 15 حرفًا $stmt_update_employee->bind_param( $types, $type, $degree, $degree_date, $status, $due, $qualification, $start_date, $res_num, $section_id, $sub_section_id, $specialty_id, $bank_id, $branch, $account_num, $id );
  10. هل لديك لابتوب أم حاسوب PC؟ تحتاج إلى تثبيت التعريف الخاص بالكاميرا ليتم التعرف عليها، وهل تستخدم كاميرا خارجية أم كاميرا اللابتوب؟
  11. في رأي نسبة 60% عادلة، خاصة في البداية، لأنك تتحمل 100% من المخاطرة المالية، ورأس المال يطالب بعائد أعلى بسبب المخاطرة، ومن المفترض أن تكون 70% لو ستقوم بمهمة السفر أو التفاوض مع الموردين. في نفس الوقت نسبة 40% لشخصين يديران كل العمليات اليومية مبيعات، تسويق، مخزن ومحل مُنخفضة نسبياً في حال لا يتقاضون رواتب ثابتة منفصلة حتى لو بسيطة. وهل تم خصم تكلفة البضاعة التي استوردتها أنت تكلفة الشراء + الشحن + الجمارك وخلافه قبل حساب الأرباح؟ الصحيح أن يكون صافي الربح = إجمالي الإيرادات - تكلفة البضاعة المباعة - مصاريف التشغيل (أحمد ووسام) - أي خسائر أخرى. ويجب توضيح هل مصاريفك المتعلقة بالاستيراد (سفر، اتصالات، وقتك وجهدك في البحث والمفاوضة) محسوبة ضمن التكاليف أم أنك تتحملها شخصياً؟ ولو قررت توفير رواتب، هل تُخصم كمصاريف تشغيلية قبل حساب صافي الربح؟ لأنّ النسبة ستكون غير كافية لتحفيزهم على المدى الطويل أو لتغطية تكاليف معيشتهم، خاصًة الأرباح الأولية منخفضة في غالب الأحوال للمشاريع. من الأفضل الاتفاق على نسب متغيرة حسب حجم الأرباح، بمعنى لو صافي الربح أقل من مبلغ معين وليكن 50,000 ريال، تحصل على 70% وهم 30%. ولو تجاوز الربح مبلغ أعلى، تعود النسب إلى 60/40.
  12. آلية الإختبار هي كالتالي: بعد إنهاء 4 مسارات من الدورة على الأقل، أو الدورة بالكامل عليك رفع المشاريع التي قمت بها بالدورة على حسابك في github وذلك في حال كانت مشاريع برمجية، ثم التحدث لمركز المساعدة وإخبارهم أنك تريد التقدم للإختبار وتوفير روابط المشاريع على github أو روابط المشاريع التي قمت بها طالما أنك في دورة ادارة تطوير المنتجات. ثم الإنتظار لبعض الوقت لحين مراجعة المشاريع وسيتم الرد عليك، وتحديد موعد لإجراء مقابلة، وبها يتم: إجراء محادثة صوتيّة لمدة 30 دقيقة يطرح المدرّب عليك أسئلة متعلّقة بالدورة والأمور التي نفّذتها خلالها. يحدد لك المدرّب مشروعًا مرتبطًا بما قمت به أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع إلى أسبوعين. إجراء محادثة صوتيّة أخرى لمدّة 30 دقيقة يناقش بها مشروعك وما نفذته وتطرح أسئلة خلالها. إن سارت على جميع الخطوات السابقة بشكل صحيح، تحصل على الشهادة أو يرشدك المدرّب لأماكن القصور ويطلب منك تداركها ثم التواصل معنا من جديد.
  13. أتفهم الوضع الحالي لك، لكن نعتذر عن عدم توافر ذلك حاليًا من أجل حماية محتوى الدورات من النشر خارج الأكاديمية، ربما يتم توفيره مستقبلاً. ستجد تفصيل هنا عن السبب:
  14. إذن افحص category-items.php بحثًا عن مسافات أو BOM، تفقده في محرر مثل VSCode، ويجب أن تكون <?php هي أول شيء في الملف تمامًا، بدون أي مسافات أو أسطر فارغة قبله. ثم في VSCode، انقر على file ثم Save with Encoding، واختر UTF-8. وللتأكد من أن المشكلة في category-items.php وليس في القالب الرئيسي، أنشئ ملفًا جديدًا باسم test.php في نفس المجلد includes، وضع فيه الكود التالي: <?php define('ARTISTS_IMAGE_PATH', get_template_directory_uri() . '/images/'); function get_category_artists($category_type) { return array( array('name' => 'فنان اختبار', 'url' => '#', 'image' => ARTISTS_IMAGE_PATH . 'test.jpg') ); } echo "تم تنفيذ الملف بنجاح"; استبدل السطر في القالب الرئيسي: require_once(get_template_directory() . '/includes/category-items.php'); بـ: require_once(get_template_directory() . '/includes/test.php');
  15. عليك تغيير path/media إلى مسار مجلد media RewriteEngine On RewriteRule ^media/(.*)$ /path/media/$1 [L] RewriteRule ^(?!media/).*\.py$ - [F] Options -Indexes
  16. تفقد الحزمة التالية هي نفسها لكن مُعدلة لتدعم العربية: https://packagist.org/packages/baklysystems/laravel-dompdf وفي ملف القالب عليك وضع التالي: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> وستجد هنا المستودع الخاص بالمكتبة: https://github.com/baklysystems/laravel-dompdf
  17. ذلك متاح في دورة تطوير التطبيقات باستخدام لغة JavaScript ولست بحاجة إلى دراستها بالكامل، فهناك مسارات خاصة بالمشاريع العملية وبها التالي: أساسيات React.js به مشروع للتطبيق على أساسيات React. أساسيات Node.js به مشروع بناء واجهة برمجية API لتقييم الأفلام. تطوير تطبيق جوال باستخدام React Native تطبيق دردشة يشبه WhatsApp للويب والهاتف للتطبيق على React و React Native. أساسيات TypeScript به مشروع تطبيق للتتبع المصاريف من خلال Next.js تطوير تطبيق سطح مكتب باستخدام Electron.js إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js تطبيق تعلم اللغات باستخدام Next.js وتقنيات الذكاء الاصطناعي تطوير تطبيق جوال للتواصل الاجتماعي باستخدام Ionic تطبيق حجز مناسبات باستخدام GraphQL
  18. بخصوص التوظيف والأمور المالية، أرجو التحدث لمركز المساعدة للاستفسار عما تريد وسيتم توضيح الأمر لك.
  19. لا تقلق الأمر ليس مشكلة من جهتك، نعتذر لك عن أي إزعاج، أحيانًا تحدث تلك المشكلة مؤخرًا من قبل المنصة الخاصة باستضافة الدروس، وجاري العمل على حلها من قبلهم، الأمر خارج عن إرادة الأكاديمية ليس تقصير من جهتنا. بعد دقائق ستجد أنّ الفيديو يعمل بشكل سليم، أرجو إعادة تحديث الصفحة.
  20. NuxtErrorBoundary الغرض منه التعامل مع أخطاء العرض rendering errors أو الأخطاء التي تحدث بعد بدء العرض أو في دورات حياة معينة كـ onMounted في المتصفح، وذكرت أنّ المشكلة تحدث عند جلب البيانات من الخادم وذلك يمنع عرض الصفحة. الأفضل التعامل مع أخطاء جلب البيانات التي تحدث على الخادم أو العميل من خلال استخدام state التي توفرها أدوات جلب البيانات في Nuxt مثل useFetch أو useAsyncData، لمنع ظهور صفحة الخطأ 500. <template> <div> <NuxtErrorBoundary @error="logProductError"> <template #default> <div v-if="pending" class="loading"> جاري التحميل... </div> <div v-else-if="products.length" class="products"> <div v-for="product in products" :key="product.id"> {{ product.name }} </div> </div> <div v-else class="no-products"> لا توجد منتجات </div> </template> <template #error="{ error }"> <div class="error-container"> <p>عذراً، حدث خطأ في تحميل المنتجات</p> <button @click="handleRetry"> إعادة المحاولة </button> </div> </template> </NuxtErrorBoundary> </div> </template> <script setup> import { ref } from 'vue'; import { useFetch, clearNuxtError } from '#app'; const { data: products, pending, error, refresh } = useFetch('/api/products', { default: () => [], lazy: true, server: true, watch: true, }); function logProductError(err) { console.error('NuxtErrorBoundary caught an error:', err); } watch(error, (newError) => { if (newError) { console.error('Error fetching products:', newError); } }); async function handleRetry() { try { clearNuxtError(); await refresh(); } catch (e) { console.error('Retry failed:', e); } } onUnmounted(() => { }); </script> ولاحظ تم التعامل مع الحالات المختلفة: <div v-if="pending">جاري التحميل...</div> <div v-else-if="error">حدث خطأ</div> <div v-else-if="products.length">عرض المنتجات</div> <div v-else>لا توجد منتجات</div>
  21. ذلك متوفر من خلال دورة تطوير التطبيقات باستخدام لغة JavaScript وستتعلم بها ما يلي: الأسس البرمجية السليمة للغة JavaScript الإضافات الحديثة في نسخة ES6 من اللغة تطوير تطبيقات الخادم باستخدام بيئة Node.js أساسيات مكتبة React.js وبناء تطبيق ملاحظات باستخدامها أساسيات مكتبة React Native و Expo تطوير تطبيق جوال للوصل بين الأطباء والمرضى بالاعتماد على React Native التعرف على التطبيقات التي تتطلب اتصالًا مستمرًا بين المتصفح والخادم بناء تطبيق محادثة يشبه تطبيق WhatsApp إنشاء تطبيق أسئلة وأجوبة ونقاشات مع تصيير من جهة الخادم Server-side Rendering عبر إطار العمل Next.js بناء واجهات أمامية باستخدام React.js مع مكتبة Material-UI إنشاء تطبيقات سطح مكتب باستخدام JavaScript باستخدام إطار العمل Electron.js بناء تطبيق جوال لشبكة تواصل اجتماعي باستخدام إطار العمل Ionic ومكتبة React.js وعند الإشتراك بها سيتم إتاحة المسار الأول من دورة تطوير واجهات المستخدم بشكل مجاني، وستتعلم به ما يلي: مفهوم الواجهة الأماميّة للموقع front-end وكيفية عملها. أساسيات لغات تطوير واجهات المستخدم: HTML, CSS, JavaScript, jQuery
  22. حاليًا لا أرى مشكلة واضحة، المحتوى جيد لكن به مشكلة thin content بمعنى كلمات المقال أو الخبر قليلة 300 إلى 450 كلمة، لا مشكلة في ذلك لكن لو ذلك حال الموقع بالكامل فهو مؤشر غير جيد، فجوجل ترى أن المحتوى منخفض القيمة أو غير كافٍ أو غير أصلي، يجب أن تكون المقالات تقدم قيمة حقيقية وفريدة للقارئ، وفي حال مجرد إعادة صياغة لأخبار أو مواضيع منتشرة دون إضافة تحليل أو وجهة نظر خاصة لن يتم قبوله، ويلزم وجود مقالات مفصلة بما يكفي وتغطي الموضوع بعمق، بالطبع كما ذكرت ليس كامل الموقع لكن يجب وجود مثل تلك المقالات. من المفترض أن تتبع التالي: الكلمة المفتاحية الرئيسية تظهر في الفقرة الأولى من النص. كثافة الكلمة المفتاحية هي 1.3% من عدد كلمات المقال. الكلمة المفتاحية الرئيسية تظهر في عنوان فرعي واحد على الأقل. النص يحتوي على 500 كلمة وذلك زيادة قليلاً عن الحد الأدنى الموصى به وهو 300 كلمة. الربط الداخلي بين المقالات بروابط internal. الكلمة المفتاحية الرئيسية تظهر في عنوان URL لصفحة. لم يسبق لك استخدام الكلمة المفتاحية الرئيسية من قبل لمنع صفحاتك من التنافس مع بعضها البعض في نتائج البحث لنفس الكلمة، وتلك مشكلة تسمى Keyword Cannibalization. أيضًا يجب توافر زيارات يومية مقبولة ولا يوجد رقم محدد، لكن ما بين 100 إلى 500 رقم جيد.
  23. يجب إنهاء 4 مسارات من الدورة على الأقل، أو الدورة بالكامل، ثم عليك رفع المشاريع التي قمت بها بالدورة على حسابك في github، ثم التحدث لمركز المساعدة وإخبارهم أنك تريد التقدم للإختبار وتوفير روابط المشاريع على github. ثم الإنتظار لبعض الوقت لحين مراجعة المشاريع وسيتم الرد عليك، وتحديد موعد لإجراء مقابلة.
  24. تقصد المرفقات؟ ستجدها في درس المدخل أو المقدمة في بداية كل مسار
  25. الدورة متاحة لك مدى الحياة والتحديثات التي تتم عليها أيضًا. بخصوص مدرة الدراسة، فالأمر راجع لمجهودك ومدى تفرغك وأيضًا خبراتك السابقة في حال كان لديك دراية بالبرمجة من قبل، ستحتاج إلى 3 أشهر على الأقل وقد تصل إلى 6 أشهر وفي رأي الحد الأدنى هو 6 أشهر، والأمر المهم هو تحديد الوقت اليومي للدراسة والتطبيق، وليس من الضروري أن تنهي عددًا محددًا من الفيديوهات يوميًا، بل من الأفضل تخصيص عدد معين من الساعات يوميًا للدراسة بتركيز وتطبيق المفاهيم التي تعلمتها، ولا تعتمد على ذاكرتك فقط بل قم بكتابة الكود بنفسك لتثبيت المعرفة. ولا تنسى أن الاستيعاب والتطبيق يتطلبان وقتًا إضافيًا، وستحتاج إلى مراجعة المحتوى والبحث عن تفاصيل إضافية لفهمه بشكل كامل، بمعنى 4 إلى 5 أضعاف وقت الدورة لتتمكن من استيعاب المعلومات وتطبيقها بشكل جيد. وتحديد وقت للانتهاء من الدورة يساعدك على الالتزام وتقييم تقدمك، ولو تركت الأمر بدون جدولة، فستستغرق وقتًا طويلاً لإكمال الدورة بسبب الانشغالات الأخرى. وعندما ترى فيديو بمدة 30 دقيقة، فالوقت الفعلي الذي ستحتاجه لاستيعاب محتواه وتطبيقه يكون أكثر بكثير من ذلك، وليس كل النصائح والمعلومات تقدم بشكل سهل وقابل للفهم فورًا، فستحتاج إلى وقت إضافي لفهم المفاهيم وتطبيقها في البرمجة، بالتالي يجب احتساب وقت إضافي للمراجعة والتطبيق العملي، وحتى البحث عن توضيحات إضافية إن لزم الأمر. وفي حال كنت مبتدئًا في البرمجة، فبلا شك يوجد وقت إضافي لفهم المفاهيم الأساسية. أخيرًا، لا تنسى أن التطبيق العملي هو الأهم وليس المشاهدة النظرية، عليك التطبيق على المفاهيم التي تعلمتها بنفسك وحاول تغيير الكود لتفهمه بشكل أفضل، واستمر في التطوير وكن صبورًا.
×
×
  • أضف...