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

Mustafa Suleiman

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

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

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

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

    289

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

  1. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس وذلك لمساعدتك بشكل أفضل.
  2. قم تحديد موضع عنصر header في البداية من خلال خاصية top وقيمة 0 لها كالتالي: header{ margin-top:0px; padding-top:0px; width: 100%; position: fixed; top: 0; z-index: 999; display: flex; align-items: center; padding: 8px 40px; background-color:#0B6121; text-align:center; } إن وجدت إزاحات أخرى، قم بتحديد الإزاحة بقيمة 0 لعنصر body: body { margin: 0; }
  3. السؤال غير واضح، هل المقصود إنشاء بيئة إفتراضية لتنفيذ مشروع بايثون؟ ما فهمته هو أنك تريد إنشائها داخل قرص باسم New Volume، والأمر بسيط، ستقوم بكتابة cmd في شريط العنوان بالأعلى عند دخول القرص ثم اضغط على Enter وسيتم فتح منفذ الأوامر في مسار ذلك القرص. أو يمكنك الضغط بزر الفأرة الأيمن في مكان فارغ واختر open in terminal
  4. تبدأ عملية الـ Run بتحليل الكود المكتوب بلغة برمجة عالية المستوى، مثل بايثون أو جافا، وذلك باستخدام مترجم أو مُفسر، ثم يقوم المترجم بتحويل الكود بالكامل إلى تعليمات لغة الآلة دفعة واحدة، بينما المُفسر ينفذ الكود سطرًا بسطر. بعد ذلك يتم ترجمة الكود إلى تعليمات لغة الآلة التي يفهمها وحدة المعالجة المركزية (CPU) في الحاسوب، وتتكون تعليمات لغة الآلة من أوامر ثنائية (0 و 1) تُمثل عمليات محددة مثل الجمع أو التحقق من شرط أو نقل البيانات. بعد ترجمة أو تفسير الكود، يقوم وحدة المعالجة المركزية (CPU) بتنفيذ تعليمات لغة الآلة خطوة بخطوة، وتُستخدم ذاكرة الوصول العشوائي (RAM) لتخزين البيانات والتعليمات أثناء التنفيذ.
  5. الفكرة أنّ مكتبة Faker مخصصة لإنشاء بيانات وهمية واقعية تشبه البيانات الحقيقية. والفائدة منها هي ملء النقاط المفقودة أو القيم الناقصة في مجموعات البيانات. أو إنشاء مجموعات بيانات كبيرة لتدريب نماذج التعلم الآلي، خاصةً عندما تكون البيانات الحقيقية نادرة أو باهظة الثمن، أو لاستخدام تلك البيانات لاختبار وتقييم أداء نماذج التعلم الآلي. أو لتوليد بيانات اصطناعية تحاكي البيانات الحقيقية دون الكشف عن معلومات حساسة. لكن في حال تمكنت من الحصول على بيانات حقيقية وواقعية فمن الأفضل استخدامها، فبينما تحاول Faker إنشاء بيانات واقعية، إلا أنها لا تعكس دائمًا جميع جوانب البيانات الحقيقية.
  6. لا مشكلة، لكنك مستوعب لطريقة عملها وتستطيع البحث عنها واستخدامها وتنفيذ ما تريد، ذلك هو المطلوب، وعامًة الأشياء المطلوب منك تذكرها هي التي تستخدمها مهام عملك اليومية بشكل متكرر وستجد نفسك تتذكرها بدون مجهود، أما باقي الأشياء تستطيع البحث عنها. لكن بالطبع هناك أساسيات في البرمجة نفسها من غير الجيد أن يتم سؤالك عنها مثلاً ولا تتذكر ما هي أو تكون غير مُلم بها.
  7. بخصوص الواجهة فتستطيع بنائها بواسطة HTML, CSS, JS أو من خلال بوتستراب إذا أردت تنفيذ الأمر بشكل أسرع. وبخصوص رفع أي حجم فيديو وما شابه ستحتاج إلى تخزين سحابي إذن مثل S3 من AWS والتي توفر لك CDN أيضًا من خلال خدمة CloudFront لكي يتم الوصول للفيديو من كل الدول بشكل سريع، وستحتاج إلى استخدام مكتبة مثل FFmpeg لتقطيع الفيديو إلى أجزاء متساوية أو بناءًا على معدل البت. ثم ضغط كل جزء من أجزاء الفيديو باستخدام تنسيق ضغط فعال مثل H.264 أو VP9، ويتوفر مكتبة مثل PHP-FFmpeg أو gpac للضغط. وضغط محتوى الصفحة واستخدام تقنيات مثل caching و minification لتقليل وقت تحميل الصفحة. وبخصوص حماية المحتوى، فالحل البسيط والسهل لكن يسهل تخطيه هو بتعطيل النقر بالزر الأيمن على الفيديو لمنع المستخدمين من حفظه مباشرة. وهناك طرق أخرى أكثر تعقيدًا وفعالية ستجد تفصيل لها هنا:
  8. تخيل نظام التشغيل كمدير منزل ذكي، وأنّ المبرمجون هم السكّان ويُحددون المهام التي يريدون تنفيذها في المنزل (كتابة التطبيقات). ونظام التشغيل هو مدير المنزل يُنظّم عمل السكّان ويُتيح لهم أدواتهم ويُدير الموارد بكفاءة (إدارة الموارد وتوفير الخدمات الأساسية). الأجهزة هي أجزاء المنزل، مثل الأبواب والنوافذ والأضواء (المكونات المادية). لغة الآلة هي لغة التواصل الأساسية التي يفهمها جميع السكّان والأجهزة (لغة الآلة). لكن كل منزل فريد تصميم مختلف، وتختلف بعض أنظمة التشغيل في بنيتها الأساسية، وبالتالي تختلف واجهات برمجة التطبيقات API في كل نظام، ولا تكون كل المكتبات متوفرة على جميع أنظمة التشغيل. لذلك، لا تناسب تعليمات السكّان جميع المنازل. فالتطبيق المُصمم لمنزل معين لا يعمل في منزل آخر، مثل تطبيق مُصمم لنظام أندرويد لا يعمل على نظام iOS. ويجب على السكّان تعديل تعليماتهم ليناسب كل منزل، مثل إعادة كتابة التطبيق ليعمل على نظام مختلف. والفكرة هي في معمارية المعالج نفسه، وطريقة ترجمة الأوامر للغة الآلة في كل نظام.
  9. الفكرة هي الإعتماد على حلقة for لاختيار زوج من القيم من قائمة محددة وعرضهما. حيث أنّ i و j هما متغيرات محلية سيتم تعيينها بقيم من القائمة خلال كل تكرار من الحلقة، و in هي كلمة مفتاحية تشير إلى مصدر القيم. و [(1, 2), (3, 4), (5, 6)] هي قائمة تحتوي على ثلاثية، كل منها يتكون من زوج من القيم. بالتالي print(i, j) يتم استخدامها لعرض قيمة كل زوج من الأزواج السابقة i و j في كل تكرار، أي تبدأ الحلقة بقيمة i = 1 و j = 2 وهكذا في باقي دورات الحلقة أي الدورة الثانية i = 3 و j = 4
  10. قمت بنسخ الكود من مكانِ ما لذا يوجد مشكلة في النص نفسه لاحظ وجود مربع بسيط حول [] وذلك ما يسبب المشكلة إن قمت بالضغط على زر delete من لوحة المفاتيح سيختفي. الكود السليم: x = {"banana": 3} print(x["banana"])
  11. بالضبط لكن عليك استخدام الـ widget لكي تضع الزر في موقعك وفي المستودع ستجد شرح الإعدادات الخاصة بالكود. https://github.com/papercups-io/chat-widget
  12. special_chars = ["ß", "ç", "é", "ê", "ì", "í", "ò", "ó", "ù", "ú"] for char in special_chars: original_length = len(char) uppercase_char = char.upper() lowercase_char = uppercase_char.lower() lowercase_length = len(lowercase_char) if lowercase_length > original_length: print(f"String: {char}, Original Length: {original_length}, Lowercase Length: {lowercase_length}")
  13. أنت بحاجة إلى لابتوب، لتثبيت نظام ويندوز أو لينكس ومعالج مخصص لأنظمة سطح المكتب، وذلك متواجد باللابتوب
  14. التابلت غير مناسب للبرمجة، ستحتاج إلى لابتوب، وبذلك السعر متوفر : Acer Aspire 5 A515-45-R74Z Slim Microsoft Surface Laptop 3 HP Laptop 15-dy2021nr HP 14-fq1025nr Dell Latitude 7400 Touch حاول إختيار لابتوب بمعالج من فئة H مع رامات بحجم 16 جيجابايت، وستجد تفصيل هنا:
  15. ستحتاج إلى استخدام أحد المنصات التي توفر ذلك مثل proprofschat أو Tidio أو Tawk.to أو Freshchat وهناك العديد من المنصات التي توفر تلك الخدمة مع باقة مجانية للاستخدام المجاني وباقات مدفوعة بخصائص متقدمة. وبعد التسجيل في تلك المنصات، ستصحل على كود widget لإضافته في موقعك لكي يظهر لك الزر والصندوق كما في الصورة. إذا أردت خيار مجاني تمامًا من خلال مكتبة open source أي مفتوحة المصدر، فيوجد مكتبة papercups بعد التسجيل ستحصل على توكن استخدمه في تفعيل الـ widget في موقعك وستجد شرح هنا: https://github.com/papercups-io/chat-widget
  16. بالضبط، في البداية الحروف الخاصة هي كالتالي: special_chars = ["ß", "ç", "é", "ê", "ì", "í", "ò", "ó", "ù", "ú"] أرجو قراءة التعليق السابق مرة أخرى
  17. @Ail Ahmed أولاً لنفترض أن لديك سلسلة نصية تحتوي على حرف خاص، وهو حرف "ß" (الحرف الألماني الحاد s)، ولا تتوفر هذه العلامة ß في جميع اللغات، بما في ذلك العربية. وعندما تقوم بتحويل هذا الحرف الألماني الحاد "ß" إلى أحرف كبيرة (uppercase) في بعض اللغات مثل بايثون، فسيتم تحويله إلى حرفين "SS" بدلاً من حرف واحد كبير "ß". الآن، إن قمت بتحويل الأحرف الكبيرة "SS" مرة أخرى إلى أحرف صغيرة (lowercase)، ستحصل على حرفين صغيرين "ss". أي تكمن المشكلة هنا في أن السلسلة النهائية "ss" أصبحت أطول من السلسلة الأصلية "ß" بحرف واحد، وذلك يتعارض مع السلوك المعتاد لتحويل الأحرف الكبيرة والصغيرة، حيث من المتوقع أن يظل طول السلسلة كما هو. ابدء بتحديد قائمة من الأحرف الخاصة، بما في ذلك الأحرف المعرّفة، والرموز، والأحرف غير القياسية في لغة بايثون. ثم قم باختبار تحويل الأحرف كالتالي: نستخدم حلقة for للتكرار على قائمة من الأحرف الخاصة. لكل حرف، نقوم بتحويله إلى أحرف كبيرة باستخدام طريقة upper(). ثم نقوم بتحويله إلى أحرف صغيرة باستخدام طريقة lower(). نقارن طول السلسلة الأصلية بطول السلسلة بعد تحويلها إلى أحرف صغيرة. وللتأكد من ثبات السلوك، نكرر عملية تحويل الأحرف الكبيرة إلى أحرف صغيرة عدة مرات باستخدام السلسلة المرشحة، وإن استمرت الفروق في الطول، فقد وجدنا الحل. حاول حلها، وأخبرني لتوضيح الأمر لك من خلال الكود.
  18. بشكل مختصر الإطار يغنيك عن إنشاء واجهة خلفية بشكل منفصل في حال كان المشروع يتمحور أكثر نحو الواجهة الأمامية، أما في حالة العكس فستحتاج إلى واجهة خلفية منفصلة للتعامل مع الأمور المعقدة من خلال Nest.js أو Express.js. وستجد تفصيل أكثر هنا:
  19. ما تريد تنفيذه يسمى Mockup ابحث عن free Logo Mockup وستجد الكثير من القوالب.
  20. من خلال مستودع المكتبة على GitHub ستجد الكود المصدري، ومثلاً numpy المستودع الخاص بها هو التالي: https://github.com/numpy/numpy إما إن كنت تقصد رؤية الدوال التي تستطيع استخدامها فهناك دالة dir المدمجة في Python وتعرض قائمة بجميع الأسماء المحددة في ملف تعريف أو وحدة. import numpy as np functions = dir(np) for function in functions: print(function) أو من خلال المستند الرسمي: https://numpy.org/doc/stable/reference/
  21. سيتم إمتحانك في 4 مسارات أو 5 مسارات لا مشكلة، الحد الأدنى هو 4 مسارات، وسيتم إختبارك في تلك المسارات فقط، ويجب رفع المشاريع التي قمت بها خلال تلك المسارات على GitHub. لكن لا أنصحك بذلك، ومن الأفضل إتمام كامل الدورة. وبخصوص جاهزيتك، تستطيع إختبار نفسك قبل التقدم للإختبار، بقياس مدى استيعابك لما تم شرحه بمحاولة شرحه لنفسك وتلخيصه حتى لو بشكل شفهي، أي في كل درس حاول استرجاع أهم النقاط أو ما استفدته من ذلك الدرس، وإن كانت هناك شرح أكواد برمجية فمن الأفضل إعادة التطبيق بمفردك لترى إن كنت قد استوعب ما تم شرحه أم لا.
  22. تلك أمور يتم تحديدها بناءًا على طبيعة إحتياجات مستخدمي المنصة والأصلح بما يتناسب مع توجه المنصة، فمن منظورك الأمر غير مفهوم، لكن هناك أمور لا يدري بها سوى من يدير منصات شركة حسوب. وبالطبع أتفهم فائدة وجود تطبيق وبه ميزات أفضل للتواصل واستلام الإشعارات، وذلك أمر لا استطيع إفادتك بأنه يتم العمل عليه أم لا، لكن عامًة يتم تطوير منصات حسوب بشكل مستمر وربما في المستقبل القريب يتم إطلاق تطبيق للهاتف. أيضًا في حال تم إنشاء تطبيق ستكون هناك رسوم تفرضها كل من Google و Apple على عمليات الشراء داخل التطبيق بمعدل 15-30٪، وبالتالي توفر منصة حسوب تلك الرسوم من أجل توفير رسوم منخفضة للعملاء والمستقلين. لكن في رأي من الأفضل توفير تطبيق للتواصل فقط وليس لشراء الخدمات، ومتابعة المشاريع للمستقلين.
  23. هناك نقطة هامة يجب الإنتباه إليها وهي أن قاعدة بيانات SQLite عبارة عن ملف بسيط بالمشروع، وليس قاعدة بيانات متقدمة مثل PostgreSQL أو MongoDB وغيرهم نستطيع الإتصال بهم عن طريق رابط. بل يجب إنشاء واجهة خلفية وتوفير API من أجل التمكن من الإتصال بقاعدة البيانات على الاستضافة، وتستطيع استخدام Flask أو Django للقيام بذلك.
  24. لا يوجد مطابقة بين أي طالب في جدول الطلاب (students) وأي مشروع في جدول المشاريع (projects). هل يوجد سجلات في كل من جدول الطلاب وجدول المشاريع؟ أيضًا تحقق من أن حقل "Num_std" في جدول الطلاب مطابقًا لحقل "Num_std" في جدول المشاريع. وربما هناك قيم null في حقل "Num_std" في جدول الطلاب أو حقل "id_teah" في جدول الطلاب أو حقل "id_dept" في جدول المعلمين. جرب استخدام JOINs خارجية لعرض جميع السجلات من جدول واحد، حتى لو لم تكن هناك مطابقة في الجدول الآخر: SELECT s.Num_std ,s.Name_std ,s.Email_STD ,p.name_project,t.Name_teah,d.Name_dept FROM projects p LEFT JOIN student s ON p.Num_STD=s.Num_std LEFT JOIN teachers t ON s.id_teah=t.id_teah LEFT JOIN departments d ON t.id_dept=d.id_dept;
  25. الـ Entity مفهوم منطقي يمثل شيئًا حقيقيًا في العالم الحقيقي، مثل طالب أو منتج أو طلب، ويتم تخزينه في قاعدة بيانات مع صفات وخصائص تمثل خصائص الكيان. لنفترض مثلاً Entity خاص بكتاب فسيكون له خصائص مثل عنوان المؤلف، ISBN، عدد الصفحات، النوع. وهو يُستخدم لتحديد البيانات التي يجب تخزينها واسترجاعها من قاعدة البيانات، ولا يتم تمثيله مباشرة في الكود، بل يتم تعيينه إلى كائنات برمجية عند الاستخدام. بينما الـ Object مفهوم برمجي يُمثل مثيلًا من نوع بيانات محدد يتم إنشاؤه واستخدامه في الكود باستخدام لغة برمجة معينة، له خصائص وسلوكيات يمكن استدعائها وتعديلها، ويُستخدم لتمثيل البيانات وتنفيذ العمليات عليها في التطبيقات البرمجية. وكمثال للتوضيح بخصوص الكتاب فسيكون له خاصيات عنوان، مؤلف، ISBN، عدد الصفحات، نوع، والسلوكيات مثل عرض التفاصيل والتحقق من التواجد. بالتالي نعتمد على الـ Entity لتحديد البيانات التي يجب تخزينها واسترجاعها من قاعدة البيانات، بينما نستخدم الكائن Object لتمثيل البيانات وتنفيذ العمليات عليها في التطبيقات البرمجية، وبإمكانا استخدام كائنات برمجية متعددة لتمثيل Entity واحد.
×
×
  • أضف...