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

Mustafa Suleiman

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

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

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

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

    365

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

  1. بالطبع تعلم figma فهي الأداة الأقوى والأساسية حاليًا لتصميم واجهات المستخدم ويتم استخدامها لأمور أخرى أيضًا، وكشرط أساسي كمصمم واجهات مستخدم سيتعين عليك تعلم Figma لكن ليس كشرط أساسي كمطور واجهة أمامية أن تتعلم تصميم واجهات المستخدم وfigma. بل من المفترض أن يكون لديك أساسيات التصميم الجيد لواجهة المستخدم، بالإضافة إلى أساسيات استخدام figma بحيث تستلم التصميم على المنصة ثم تقوم بتحويله إلى كود وموقع حي. وستجد تفصيل أكثر هنا:
  2. أرجو التعليق أسفل فيديو الدورة الخاص بالسؤال لمساعدتك بشكل أفضل، وطرح الأسئلة العامة هنا في قسم أسئلة البرمجة. بالنسبة للمشكلة لديك أنت تحاول عرض مسار غير موجود بالمسارات لديك في المشروع، فالمسارات الموجودة لديك هي admin وmyapp، لذا عليك زيارة الرابط التالي: http://127.0.0.1:8000/myapp
  3. أولاً أنت تحاول استخدام مكتبة مخصصة لتوزيعة Debian 9, 64 bits على نظام ويندوز، لذا عليك استخدام توزيعة Debian 9 أو أعلى ثم اتباع خطوات الاستخدام وهي كالتالي: الإتصال بسيرفر ssh: ssh root@163.202.62.11 ثم الحصول على صلاحيات الروت: su تثبيت rsync: apt-get install rsync ثم افتح نافذة تيرمنال جديدة ونفذ الأوامر التالية: git clone https://github.com/lefdilia/Axabot.git && cd "$(basename "$_" .git)/_init" ثم: npm install و npm start بعد ذلك عليك اختر خيار 1 كما فعلت أنت من أجل تثبيت سيرفر جديد.
  4. للتأهل لدخول الإختبار، يجب إنهاء 4 مسارات على الأقل وتسليم التطبيقات العملية الخاصة بهم، وسيتم سؤالك في تلك المسارات فقط. في حال تم الإنتهاء منه وترين أنك مستعدة للإختبار أرجو منك التحدث لمركز المساعدة وإخبارهم أنك تريدين خوض الإختبار الخاص بدورة (ذكر الدورة التي تريدين الإختبار بها).
  5. ستجد مصادر للتعلم من خلال التالي: https://www.tutorialspoint.com/plsql/index.htm (تتوفر نسخة PDF) https://www.plsqltutorial.com/ https://www.geeksforgeeks.org/plsql-introduction/ https://www.javatpoint.com/pl-sql-tutorial بالنسبة للكتب المجانية: https://datubaze.files.wordpress.com/2015/09/s_feuerstein_oracle-pl_sql-programming_6th-edition_2014.pdf https://freecomputerbooks.com/Oracle-Advanced-PL-SQL-Developer-Professional-Guide.html https://www.freebookcentre.net/Database/Pl-Sql-Books-Download.html
  6. حاليًا الإتجاه السائد هو استخدام المكتبة بشكل أساسي في الشركات والمشاريع المتوسطة والكبيرة. وذلك بدلاً من استخدام Bootsrap والمكونات الجاهزة والأشبه برص القوالب ، بينما Tawilwind يُتيح لك تنسيق الواجهة لديك كما تريد من خلال كلاسات. وبالطبع مكونات بوتستراب، قابلة للتخصيص لكن بشكل متوسط، حيث يمكن تعديل المكونات الجاهزة إلى حد ما. بينما Tailwind تتمتع المكونات بقابلية تخصيص عالية، بالإضافة إلى الكلاسات الشاملة التي توفرها المكتبة حيث نستخدم الكلاسات لإنشاء تصاميم مخصصة تمامًا. وبالطبع تعلم بوتستراب أسهل من Tailwind لكن ستتمكن من فعل المزيد من خلال Tailwind. لكن طالما أنك تريد التخصص في مجال الواجهة الأمامية فيجب إتقان CSS قبل استخدام تلك المكتبات. والأمر يطول شرحه وستجد تفصيل هنا:
  7. ما تقصده هي الشركة التالية swsg.co صحيح؟ هل ستتعامل معها في تجارة أو ما شابه؟ عامًة الشركة تعمل كموزع للجهزة المنزلية والإلكترونيات في السعودية وتم تأسيسها منذ 1982 لذا هي شركة قديمة جدًا ولها سمعتها.
  8. ذلك يعني وجود مشكلة يجب حلها في إعدادات الخادم أو إعدادات المشروع لديك، عليك التواصل مع الدعم الفني الخاص بالاستضافة وسيتم حل المشكلة.
  9. ما هي المشاكل؟ قمت بتشغيل المشروع وتووجهت للمسار : http://127.0.0.1:8000/members/ لديك وتم عرض رسالة hello world؟
  10. الأمر يؤدي إلى عدة مشاكل منها: 1- عدم تكامل البيانات (Data Integrity)، فالهدف من مفاتيح الخارجية هو ضمان تكامل البيانات بين الجداول المرتبطة، وعند قيامك بتعيين أحد العمودين في المفتاح الخارجي بقيمة فارغة ، فذلك يعني أن القيمة المقابلة في العمود المرتبط مفقودة، وبالتي يؤدي إلى عدم دقة البيانات أو حتى إلى فقدان البيانات. وسأفترض أن لديك جدولين مرتبطين، أحدهما يسمى "الموظفين" والآخر يسمى "المديرون". العمود "مدير" في جدول الموظفين هو مفتاح خارجي يشير إلى العمود "معرف المدير" في جدول المديرين، وإن قمت بإدخال سجل جديد في جدول الموظفين مع قيمة فارغة في العمود "مدير"، بالتالي الموظف المعني ليس لديه مدير، وذلك يؤدي إلى مشاكل في إدارة الموظفين، مثل عدم القدرة على تتبع التقارير الإدارية للموظفين. 2- صعوبة الاستعلام عن البيانات (Data Querying) عندما تريد العثور على جميع السجلات في جدول يكون فيها عمود المفتاح الخارجي فارغًا، فلو لديك جدولًا يسمى "المنتجات" يحتوي على عمود "مزود" هو مفتاح خارجي يشير إلى جدول "الموردين، وقمت بإدخال سجل جديد في جدول المنتجات مع قيمة فارغة في العمود "مزود"، فالنتيجة هي أن المنتج غير مرتبط بأي مورد. إذا كنت تريد العثور على جميع المنتجات التي لا ترتبط بأي مورد، وسيصعب القيام بذلك لأنك لا تستطيع استخدام المفتاح الخارجي للتصفية على البيانات. 3- صعوبة معالجة البيانات (Data Processing)، ففي حال يوجد جدول باسم "الطلبات" يحتوي على عمود "رقم المنتج" هو مفتاح خارجي يشير إلى جدول "المنتجات"، فعند إدخال سجل جديد في جدول الطلبات مع قيمة فارغة في العمود "رقم المنتج"، أي أن الطلب غير مرتبط بأي منتج. إذا كنت تريد حساب إجمالي قيمة جميع الطلبات التي تم تقديمها لنفس المنتج، وبالتالي من الصعب القيام بذلك لأنك لا تستطيع استخدام المفتاح الخارجي للتصفية على البيانات.
  11. بإمكانك تسمية الصفحات بأي اسم مناسب، وللتوضيح: a. صفحة إدخال البيانات: اسم الصفحة: "AddProductFlightVisitorPage" صفحة الإضافة للمنتج: "/add-product" صفحة الإضافة للرحلة: "/add-flight" صفحة الإضافة للزائر: "/add-visitor" b. صفحة الاختيار: اسم الصفحة: "ChooseOptionPage" تستطيع بها إضافة روابط أو صور أو أسماء. c. صفحة الاختيار المحدد والبيانات الديناميكية: اسم الصفحة: "SelectedOptionDetailsPage" الرابط بعد الاختيار: "/selected-option-details" d. صفحة النتيجة لاختيار فردي: اسم الصفحة: "SingleRecordResultPage" الرابط: "/single-record-result" e. صفحة النتيجة لاستعلام اختيار وعرض عدة سجلات: اسم الصفحة: "MultipleRecordsDynamicTablePage" الرابط: "/multiple-records-dynamic-table" f. صفحة النتيجة لاستعلام اختيار وعرض عدة سجلات بعدد محدد لكل صفحة: اسم الصفحة: "PagedRecordsDisplayPage" الرابط: "/paged-records-display" g. صفحات إضافية: نقوم بتسمية الصفحات الإضافية عند الحاجة بنفس الكيفية
  12. حاول تنفيذ التالي: SELECT VIEW_DEFINITION FROM information_schema.views WHERE view_name = 'show_projects_adm'; وإن استمرت المشكلة واسم العمود لا يزال يسبب مشكلة، استخدم الاستعلام التالي للحصول على جميع الأعمدة المتاحة في الجدول information_schema.views: DESCRIBE information_schema.views; ومن ثمّ، ابحث عن اسم العمود الذي يحتوي على تعريف الـ View واستخدمه في الاستعلام الذي كنا نحاول تنفيذه.
  13. كما هي، لو لديك عرض يسمى my_view فسنكتب التالي: SELECT definition FROM information_schema.views WHERE view_name = 'my_view';
  14. حاول استخدام information_schema.views كالتالي: SELECT definition FROM information_schema.views WHERE view_name = 'view_name'; و view_name هو اسم العرض الذي تريد عرض صيغة إنشائه.
  15. أرجو التعليق أسفل فيديو الدرس المتعلق بالسؤال لمساعدتك بشكل أفضل، فحاليًا المشكلة غير واضحة، ستجد أسفل الفيديو صندوق تعليقات كما هنا ضع به سؤالك. ونضع الأسئلة العامة هنا في قسم أسئلة البرمجة.
  16. لا يمكن الجزم بسبب المشكلة، عامًة خطأ Response status code was unacceptable :500 هو خطأ بالخادم نفسه الخاص بالموقع بمعنى أن الخادم واجه حالة غير متوقعة منعت من استكمال الطلب. هل ذلك مشروع تعملين عليه أم ماذا؟
  17. مكتبة جافاسكريبت: https://www.npmjs.com/package/@google-cloud/speech تتوفر مكتبة لبايثون أيضًا: https://cloud.google.com/python/docs/reference/speech/latest
  18. بالفعل الدالة 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.
  19. هي ليست لغة بل مكتبة مبنية على لغة جافاسكريبت من أجل التلاعب بالواجهة الأمامية أي تسهيل تلك العملية فقديمًا كان الأمر صعب من خلال لغة جافاسكريبت والأمر كان بحاجة إلى كتابة كود معقد. أما حاليًا أصبح الأمر أسهل وتطورت لغة جافاسكريبت وأصبح بها الكثير من المزايا الموجودة في 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.
  20. أرجو التعليق أسفل فيديو الدورة لمساعدتك بشكل أفضل وطرح الأسئلة العامة هنا، وستجد المقالات والنقاشات التالية عونًا لك: وتصنف العلاقات في 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.
  21. تلك مشكلة طبيعية، وكل ما عليك هو البدء فقط وستجد نفسك تحدد ما تريده بعد فترة، لكن كثرة التفكير لن تصل بك إلى أي مكان، تستطيع البدء بأساسيات علوم الحاسب وأساسيات البرمجة من خلال لغة سهلة مثل بايثون أو جافاسكريبت. وإن لم تستطيع تحديد المجال تعلم مجال الويب وستستفيد بما تعلمته في المجالات الأخرى وستجد تفصيل أكثر هنا:
  22. يجب دراسة أساسيات بايثون وفي حال كانت لديك الأساسيات لا مشكلة تستطيع استكمال باقي الدورة بدءًا من مسار التعامل مع البيانات وإن كان لك دراية بها تستطيع المتابعة من المسار التالي وهو نماذج الذكاء الاصطناعي. ومنهج الدورة موضوع بشكل متدرج بحيث ينتقل بك من الأساسيات اللازمة ثم التطبيقات العملية.
  23. تستطيع استخدام iOS Simulator، ولكن من الأفضل شراء أيفون مستعمل من أجل إختبار التطبيق عليه، ويمكنك شراء iPhone 6s بتكلفة زهيدة، وإن لم تستطع يمكنك استخدام المحاكيات لإختبار التطبيق لكن العديد من المزايا غير متوفرة بها وتتوفر فقط في الأيفون. بالإضافة إلى أنّ بعض المشاكل تظهر وتحدث فقط في الأجهزة الحقيقية عند إختبار التطبيق. ولكن لا تدع ذلك يثبطك، تعلم واستخدم ما لديك حاليًا وادخر مبلغ لشراء أيفون بتكلفة منخفضة نسبيًا. أما في حال إمتلاكك MacBook تستطيع الاستغناء عن الأيفون وستتمكن من تطوير تطبيقك من خلال محرر Xcode الخاص بآبل. وبالطبع ستحتاج إلى تعلم لغة Swift لكونها اللغة الخاصة بنظام iOS. وبالنسبة لـ Flutter فيوجد طلب عليه حاليًا وكلا المجالين مطلوبان، لكن تعلم Flutter أسهل ومتطلبات دخول المجال أسهل من iOS لذا من الأفضل تعلم ذلك الإطار وستتمكن من تطوير تطبيقات لنظامي الأندرويد وiOS معًا.
  24. أول دالة هي: 1- loadtxt وتستخدم لقراءة البيانات من ملف نصي سواء الملف بتنسيق CSV أو تنسيق TSV أو تنسيق آخر، وتسقبل الدالة loadtxt() اسم الملف كوسيط أول، وتستقبل أيضًا معلمات أخرى لتحديد تنسيق الملف ونوع البيانات. 2- fromfile وظيفتها هي قراءة البيانات من ملف بايت. يمكن أن يكون الملف بتنسيق ثنائي أو تنسيق آخر. تأخذ الدالة fromfile() اسم الملف كوسيط أول، ويمكن أن تأخذ أيضًا معلمات أخرى لتحديد نوع البيانات. 3- genfromtxt تقرأ الدالة البيانات من ملف نصي، وتعيد مصفوفة NumPy، وتستقبل اسم الملف كوسيط أول، بالإضافة إلى معلمات أخرى لتحديد تنسيق الملف ونوع البيانات.
  25. الغرض من تقديم المشاريع هو إثبات أنك قمت باستيعاب ما تم شرحه بالدورة وقمت بالتطبيق العملي على ذلك، فمشاهدة الدروس فقط لن تعني أنك أصبحت مبرمج. ليس المطلوب منك تقديم النماذج البسيطة بل المشاريع العملية الكاملة، مثل مشاريع سكراتش وأي مشروع آخر بالدورة حيث ستجد في نهاية كل مسار متعلق البرمجة أو قواعد البيانات تطبيقات عملية نهائية ومن خلالها يتم التطبيق على ما تم دراسته في المسار. ويمكنك تقسيم تلك المشاريع في مجلدات داخل مجلد واحد باسم الدورة ثم رفع ذلك المجلد على GitHub. ويتم مراجعة تلك المشاريع وإخبارك بأية ملاحظات أو نصائح، أيضًا يتم سؤالك عن محتوى المسارات التي قمت بإنهائها وأقل عدد هو 4، للتأكد من استيعابك لها.
×
×
  • أضف...