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

Mustafa Suleiman

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

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

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

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

    303

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

  1. بالفعل الدالة recognize_google غير متوفرة في مكتبة speech_recognition وكانت متوفرة في الإصدارات السابقة من المكتبة، ولكن تم إزالتها في الإصدار 3.8.0. ووفقًا لمستندات المكتبة، Google قد قامت بتغيير سياسة الوصول إلى API الخاصة بها، مما جعل من الصعب على مطوري البرامج استخدامها، ونتيجة لذلك، قرر مطورو مكتبة speech_recognition إزالة الدالة recognize_google لمنع المستخدمين من مواجهة مشاكل. وطالما أنك تريد استخدام الـ API الخاصة بـ Google Speech Recognition، فتستطيع فعل ذلك مباشرة من خلال موقع Google Cloud Platform. ولكن ستحتاج إلى إنشاء حساب ودفع رسوم مقابل استخدام API او الحصول على التجربة المجانية بقيمة 300 دولار لمدة 90 يوم وذلك في حال التسجيل لأول مرة. هناك خيار آخر وهو استخدام مكتبة أخرى تدعم API الخاصة بـ Google Speech Recognition، ويتوفر العديد من المكتبات مثل pyaudio وgoogle-cloud-speech.
  2. هي ليست لغة بل مكتبة مبنية على لغة جافاسكريبت من أجل التلاعب بالواجهة الأمامية أي تسهيل تلك العملية فقديمًا كان الأمر صعب من خلال لغة جافاسكريبت والأمر كان بحاجة إلى كتابة كود معقد. أما حاليًا أصبح الأمر أسهل وتطورت لغة جافاسكريبت وأصبح بها الكثير من المزايا الموجودة في jQuery، وبالأخص بدايًة من تحديث ES6 في عام 2016. لكن الواجهات الأمامية تطورت أيضًا واًصبح هناك حاجة مُلحة لوجود مكتبة إو طار متطور للواجهة الأمامية وتم تطوير Angular وReact من أجل ذلك ثم ظهر Vue.js وغيرهم. لكن ما سبب وجود jQuery حتى الآن؟ السبب هو أن نسبة كبيرة جدًا من المواقع كانت تستخدم jQuery وما زالت تستخدمها حتى الآن لذلك يجب الإعتياد على استخدام تلك المكتبة لكونك ستواجهها أُثناء العمل على مشاريع تم تطويرها سابقًا. فوفقًا لموقع w3techs يتم استخدامها في 77.3% من المواقع حاليًا. https://w3techs.com/technologies/details/js-jquery/1 وحاليًا يجب تعلم مكتبات وأُطر العمل الحديثة مثل React (يتم تدريسها بالأكاديمية) وVue.js وAngular.js.
  3. أرجو التعليق أسفل فيديو الدورة لمساعدتك بشكل أفضل وطرح الأسئلة العامة هنا، وستجد المقالات والنقاشات التالية عونًا لك: وتصنف العلاقات في Django إلى ثلاثة أنواع رئيسية: علاقات واحد إلى واحد (One-to-One Relationships) علاقات واحد إلى كثير (One-to-Many Relationships) علاقات كثير إلى كثير (Many-to-Many Relationships) علاقات واحد إلى واحد (One-to-One Relationships) في علاقة واحد إلى واحد، يرتبط كل كائن من كائنين بحد أقصى بكائن واحد من الكائن الآخر، أي أن يكون لدى كل شخص بطاقة هوية واحدة، ولكن يمكن أن يكون لدى كل بطاقة هوية شخص واحد فقط. لنفترض أن لدينا نموذجين: Person و IdentityCard، ونريد أن نربط كل شخص ببطاقة هوية واحدة فقط، وكل بطاقة هوية بشخص واحد فقط. # models.py class Person(models.Model): name = models.CharField(max_length=255) identity_card = models.OneToOneField( 'IdentityCard', on_delete=models.CASCADE) class IdentityCard(models.Model): number = models.CharField(max_length=10) هنا نستخدم حقل OneToOneField لربط الكائنين. يُحدد الحقل on_delete ما يجب القيام به بالكائن المرتبط عندما يتم حذف الكائن الرئيسي، ونريد حذف الكائن المرتبط أيضًا، لذلك نستخدم on_delete=models.CASCADE. علاقات واحد إلى كثير (One-to-Many Relationships) تتيح لنا ربط كل كائن من كائن واحد بالعديد من الكائنات من كائن آخر، مثلاً لدى كل مدرس العديد من الطلاب، ولكن يمكن أن يكون لدى كل طالب مدرس واحد فقط. ولنفترض أن لدينا نموذجين هما Teacher و Student، ونريد أن نربط كل مدرس بالعديد من الطلاب، وكل طالب بمدرس واحد فقط. # models.py class Teacher(models.Model): name = models.CharField(max_length=255) students = models.ManyToManyField( 'Student', through='Enrollment') class Student(models.Model): name = models.CharField(max_length=255) نعتمد على حقل ManyToManyField لربط الكائنين، ويُستخدم حقل through لتحديد جدول وسيط يربط الكائنين هو Enrollment. علاقات كثير إلى كثير (Many-to-Many Relationships) يرتبط كل كائن من كائنين بالعديد من الكائنات من الكائن الآخر، مثل أن يكون لدى كل كتاب العديد من المؤلفين، ويمكن أن يكون لدى كل مؤلف العديد من الكتب. ولنفترض أن لدينا نموذجين Book و Author، ونريد أن نربط كل كتاب بالعديد من المؤلفين، وكل مؤلف بالعديد من الكتب. # models.py class Book(models.Model): title = models.CharField(max_length=255) authors = models.ManyToManyField( 'Author', through='BookAuthor') class Author(models.Model): name = models.CharField(max_length=255) لاحظ حقل ManyToManyField لربط الكائنين، ويُستخدم حقل through لتحديد جدول وسيط يربط الكائنين يسمى BookAuthor.
  4. تلك مشكلة طبيعية، وكل ما عليك هو البدء فقط وستجد نفسك تحدد ما تريده بعد فترة، لكن كثرة التفكير لن تصل بك إلى أي مكان، تستطيع البدء بأساسيات علوم الحاسب وأساسيات البرمجة من خلال لغة سهلة مثل بايثون أو جافاسكريبت. وإن لم تستطيع تحديد المجال تعلم مجال الويب وستستفيد بما تعلمته في المجالات الأخرى وستجد تفصيل أكثر هنا:
  5. يجب دراسة أساسيات بايثون وفي حال كانت لديك الأساسيات لا مشكلة تستطيع استكمال باقي الدورة بدءًا من مسار التعامل مع البيانات وإن كان لك دراية بها تستطيع المتابعة من المسار التالي وهو نماذج الذكاء الاصطناعي. ومنهج الدورة موضوع بشكل متدرج بحيث ينتقل بك من الأساسيات اللازمة ثم التطبيقات العملية.
  6. تستطيع استخدام iOS Simulator، ولكن من الأفضل شراء أيفون مستعمل من أجل إختبار التطبيق عليه، ويمكنك شراء iPhone 6s بتكلفة زهيدة، وإن لم تستطع يمكنك استخدام المحاكيات لإختبار التطبيق لكن العديد من المزايا غير متوفرة بها وتتوفر فقط في الأيفون. بالإضافة إلى أنّ بعض المشاكل تظهر وتحدث فقط في الأجهزة الحقيقية عند إختبار التطبيق. ولكن لا تدع ذلك يثبطك، تعلم واستخدم ما لديك حاليًا وادخر مبلغ لشراء أيفون بتكلفة منخفضة نسبيًا. أما في حال إمتلاكك MacBook تستطيع الاستغناء عن الأيفون وستتمكن من تطوير تطبيقك من خلال محرر Xcode الخاص بآبل. وبالطبع ستحتاج إلى تعلم لغة Swift لكونها اللغة الخاصة بنظام iOS. وبالنسبة لـ Flutter فيوجد طلب عليه حاليًا وكلا المجالين مطلوبان، لكن تعلم Flutter أسهل ومتطلبات دخول المجال أسهل من iOS لذا من الأفضل تعلم ذلك الإطار وستتمكن من تطوير تطبيقات لنظامي الأندرويد وiOS معًا.
  7. أول دالة هي: 1- loadtxt وتستخدم لقراءة البيانات من ملف نصي سواء الملف بتنسيق CSV أو تنسيق TSV أو تنسيق آخر، وتسقبل الدالة loadtxt() اسم الملف كوسيط أول، وتستقبل أيضًا معلمات أخرى لتحديد تنسيق الملف ونوع البيانات. 2- fromfile وظيفتها هي قراءة البيانات من ملف بايت. يمكن أن يكون الملف بتنسيق ثنائي أو تنسيق آخر. تأخذ الدالة fromfile() اسم الملف كوسيط أول، ويمكن أن تأخذ أيضًا معلمات أخرى لتحديد نوع البيانات. 3- genfromtxt تقرأ الدالة البيانات من ملف نصي، وتعيد مصفوفة NumPy، وتستقبل اسم الملف كوسيط أول، بالإضافة إلى معلمات أخرى لتحديد تنسيق الملف ونوع البيانات.
  8. الغرض من تقديم المشاريع هو إثبات أنك قمت باستيعاب ما تم شرحه بالدورة وقمت بالتطبيق العملي على ذلك، فمشاهدة الدروس فقط لن تعني أنك أصبحت مبرمج. ليس المطلوب منك تقديم النماذج البسيطة بل المشاريع العملية الكاملة، مثل مشاريع سكراتش وأي مشروع آخر بالدورة حيث ستجد في نهاية كل مسار متعلق البرمجة أو قواعد البيانات تطبيقات عملية نهائية ومن خلالها يتم التطبيق على ما تم دراسته في المسار. ويمكنك تقسيم تلك المشاريع في مجلدات داخل مجلد واحد باسم الدورة ثم رفع ذلك المجلد على GitHub. ويتم مراجعة تلك المشاريع وإخبارك بأية ملاحظات أو نصائح، أيضًا يتم سؤالك عن محتوى المسارات التي قمت بإنهائها وأقل عدد هو 4، للتأكد من استيعابك لها.
  9. ستحتاج إلى لغة إنجليزية جيدة جدًا إذا أردت العمل في دول أجنبية، وطالما أن لديك وقت محدود حاليًا يمكنك إرجاء دورة CS50 لما بعد الإنتهاء من الدورة الحالية. وبالنسبة لفرص العمل في الشركات في حال كنت تدرس HTML, CSS,JS فتلك هي الأساسيات فقط، وأنت بحاجة إلى دراسة مكتبة مثل React أو إطار للواجهة الأمامية مثل Vue.js أو Angular، والأكثر طلبًا هو React وبالطبع يُفضل تعلم Next.js معها فهناك بعض الوظائف تطلب ذلك، وأيضًا إطار Angular.js عليه طلب أيضًا بالشركات وستجد تفصيل أكثر هنا:
  10. المقصود هو عملية إجراء تعديلات صغيرة وعشوائية على موقع الوجه أو الإضاءة بهدف زيادة دقة استخراج الميزات، ونقوم بتحديد عدد التشويش باستخدام المعامل num_jitters، مما يعني أن الدالة ستقوم بتطبيق التعديلات العشوائية على موقع الوجه لعدة مرات، حسب القيمة التي يتم تحديدها لهذا المعامل.
  11. طالما أنك بحاجة إلى مطور لكتابة كود أو صيانته فستجد ما تريده على منصات العمل الحر مثل مستقل وخمسات.
  12. هل المقصود دورة تطوير تطبيقات الجوال باستخدام تقنيات الويب؟ تم نقل بعض محتوى تلك الدورة إلى دورة جافاسكريبت حيث تلك الدورة أفضل الآن وتحتوي على الإطارات الخاص بجافاسكريبت والتي من خلالها تستطيعي تطوير تطبيقات الهاتف سواء من خلال ionic أو React Native ويتم شرح كلاهما.
  13. الدالة تستقبل عدة معاملات (parameters) لتحديد سلوكها، كالتالي: face_encodings(face_image, known_face_locations=None, num_jitters=1, model='small') face_image وهو المعامل الأساسي وهو يحدد الصورة التي تحتوي على الوجه الذي تريد استخراج الميزات الخاصة به. known_face_locations وهو معامل اختياري وتستطيع استخدامه لتوجيه الدالة إلى مواقع الوجوه المعروفة في الصورة، وستقوم الدالة بمحاولة استخراج الميزات فقط من الوجوه الموجودة في المواقع المحددة، مما يزيد من كفاءة العملية. num_jitter يحدد عدد مرات "التشويش" التي يجب أن تتم على الوجه لزيادة دقة استخراج الميزات، والتشويش يتمثل في إجراء تعديلات صغيرة عشوائية على موقع الوجه للحصول على نتائج أفضل. model يحدد نموذج التعلم العميق المستخدم لاستخراج الميزات سواء قيمة افتراضية أو يمكن تحديده بشكل صريح، مثل 'hog' لاستخدام وحدة معالجة الصور HOG أو 'cnn' لاستخدام شبكة عصبية تعمل بالتحسينات التكنولوجية.
  14. يعني أنه لا يمكنك استخدام مصفوفة غير منطقية للتعامل مع القيم المفقودة (NA/NaN) أثناء عملية التنقية (masking) ، أي أنك تحاول البحث عن اسم داخل مصفوفة تحتوي على قيم NA أو NaN. عليك أولاً إزالة أي قيم NA أو NaN من المصفوفة باستخدام وظيفة dropna()، وسأفترض أن المصفوفة الخاصة بك تسمى data: data = data.dropna() بمجرد إزالة أي قيم NA أو NaN، يمكنك محاولة البحث عن الاسم مرة أخرى.
  15. في حال أنك تريد التخصص في مجال الواجهة الأمامية فالمطلوب هو مكتبة مثل React أو إطار للواجهة الأمامية مثل Vue.js أو Angular، والأكثر طلبًا هو React وبالطبع يُفضل تعلم Next.js معها فهناك بعض الوظائف تطلب ذلك، وأيضًا إطار Angular.js عليه طلب أيضًا بالشركات. وفي سوق العمل أو المشاريع الحرة لن يكفي استخدام HTML, CSS, JS فقط في غالبية المشاريع، حيث يتم استخدام React أو غيرها من مكتبات وإطارات الواجهة الأمامية.
  16. بالطبع يمكنك تنفيذ ذلك من خلال HTML, CSS, JS كواجهة أمامية وExpress.js كواجهة خلفية مع قاعدة بيانات. لكن الأمر أصعب كذلك وستكتب الكثير من الكود، وأنت بحاجة إلى مكتبة React لتسهيل العمل في الواجهة الأمامية وكتابة كود أقل، أو إطار Next.js وهو الخيار الأمثل حيث ستتمكن من بناء كامل التطبيق بواسطة Next.js لكونه يتضمن Node.js بداخله ويُتيح لك إنشاء مسارات وAPI's.
  17. وعليكم السلام أحمد، ذكرت أنك درست دورة جافاسكريبت من خلال ذكرك لـ node.js وexpress وفي تلك الدورة يوجد مشروع بالفعل لموقع أسئلة وأجوبة باستخدام Next.js، فهل اطلعت عليه؟
  18. تقصد أنك اشتركت بدورة وغير موجودة بحسابك؟ أولاً أرجو منك تسجيل الدخول بنفس الإيميل الذي اشتركت من خلاله. ثم تأكد من وجود الدورة في تبويب دوراتي كالتالي: كيف أصل للدورات التي اشتركت بها وإن لم تجدها أرجو التحديث لمركز المساعدة في أكاديمية حسوب وسيتم مساعدتك بخصوص ذلك.
  19. تستطيع البحث عن مبرمجي تطبيقات الهواتف من خلال منصات العمل الحر مثل مستقل وخمسات. وبخصوص فكرة التطبيق أو المشروع، يجب تحديدها قبل البحث عن مبرمج لتنفيذها، وذلك بناءًا على احتياجات السوق الذي تريد توجيه التطبيق إليه، وفكر في التالي: فكر في مشاكلك ومشاكل الآخرين. ما هي الأشياء التي تجدها مزعجة أو صعبة؟ هل هناك شيء يمكن للتكنولوجيا مساعدتك فيه؟ ابحث عن الاتجاهات الحالية، ما هي المجالات التي تنمو بسرعة؟ ما هي الأشياء التي يهتم بها الناس؟ قم بإجراء بحث للسوق وانظر إلى التطبيقات الموجودة بالفعل في السوق وما هي التطبيقات الناجحة؟ ما هي التطبيقات التي لا تعمل بشكل جيد؟ وبإمكانك العثور على الأفكار بعدة طرق، ولكن من المهم أن تكون لديك فكرة واضحة عما تريده من تطبيقك قبل أن تبدأ في البحث عن مطور. وبالطبع يجب إختبار الفكرة ومدى فاعليتها وتقبل السوق لها قبل الشروع في تطوير التطبيق، وتوجد طرق مختلفة لذلك.
  20. شكرًا لإهتمامك بأكاديمية حسوب نادية، فكرة جيدة وسيتم الإطلاع عليها من قبل القسم المختص بالدورات. حاليًا الدورات المتاحة هي مدفوعة لكونها دورات شاملة وليست بسيطة أي تضم بداخلها عدّة دورات في دورة واحدة، وهناك إلتزامات من جهة الأكاديمية نحو المشتركين بالدورات ومزايا خاصة بهم ستجديها هنا: ميزات دورات الأكاديمية وقد بذل فريق المدربين مجهودًا كبيرًا في إعداد وتوفير هذه الدورات لك، ويتم تحديثها كل 3 او 6 أشهر حسب الحاجة وتستطيعي الوصول للتحديثات مدى الحياة، بالإضافة إلى الدعم من عدة مدربين للإجابة على أسئلتك ومساعدتك في أي وقت، بالإَضافة إلى إتاحة المسارات الأولى من باقي الدورات بشكل مجاني. وهناك سبب آخر أيضًا، من يسعى للتعلم ويعتز بالتحصيل العلمي يكون مستعدًا لبذل بعض الجهد والتكلفة للحصول على المواد التعليمية القيمة التي تؤهله لتحقيق أهدافه، أما من لا يبدي الاجتهاد ولا يهتم بجدية التعلم، فمن المرجح أنه لن يقوم بذلك، ولكن أنتِ لست كذلك، فأنتِ مستعدة للجهد والالتزام.
  21. أشهر محررات الأكواد على الهاتف هي: DroidEdit محرر نصوص يحتوي على العديد من الميزات المفيدة مثل الإكمال التلقائي، والتميز اللوني، وإدارة الملفات، وتوفير مساحة التخزين السحابية. Quoda يوفر الكثير من الميزات المفيدة للمستخدمين، مثل تمييز الألوان وتحرير الشفرة المصدرية وحفظ المشروعات. Acode محرر نصوص يتميز بالسرعة والبساطة، ويدعم العديد من لغات البرمجة ويتميز بالأدوات المفيدة وسهولة الاستخدام. وستجد تفصيل شامل هنا ذكرته من قبل:
  22. بالطبع يوجد لديك منصة عربية وهي منصة "أنا" التابعة لأكاديمية حسوب، بالإَضافة إلى منصات أخرى مثل Trello وAsana وbasecamp والمزيد هنا:
  23. index.js هو الملف الرئيسي للمشروع بحيث نقوم به بعرض المكون الرئيسي للمشروع وهو App داخل الـ root أي العنصر الرئيسي في صفحة HTML الذي نعرض به التطبيق بالكامل. أي عليك وضع المكون App فقط. ثم في المكون App تقوم بوضع المكونات الأخرى في التطبيق.
  24. ذلك يعني وجود خطأ في الكود، أرجو توفير الكود لمعرفة الخطأ
  25. في حال كان النص نسخ ولصق من المواقع فبالطبع ذلك غير صحيح وسينطبق عليك حقوق النشر، أما إن كنت تسعين بتلك المواقع من أجل كتابة المعلومات بنفسك ووضعها بالكتاب فلا مشكلة، تستطيع قراءة أية معلومة من الإنترنت ووضعها بكتابك، أي أنك تبذل مجهود في جمع المعلومات وإعادة كتابتها وشرحها بطريقتك أنت.
×
×
  • أضف...