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

Mustafa Suleiman

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

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

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

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

    340

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

  1. استخدم خاصية streams لعرض جميع الجودات المتاحة للفيديو كالتالي: video = pytube.YouTube(url) streams = video.streams for stream in streams: print(f"جودة الفيديو: {stream.resolution} - دقة الصوت: {stream.abr}") وبالطبع يجب وجود إنترنت من أجل التمكن من تحميل الفيديو.
  2. الدالة get_highest_resolution() موجودة وتستطيع تفقدها في المستند الرسمي وهي تعمل على جلب الفيديو بأعلى دقة متاحة إن وجدت.
  3. في البداية لن يفيدك ذلك، لكن بعد إنهاء مسارك البرمجي وتنفيذ أكثر من مشروع والإعتياد على استخدام GitHub، تستطيع المساهمة في المشاريع مفتوحة المصدر، وذلك سيفيدك بلا شك حيث ستتمكن من اكتساب مهارة قراءة أكواد الآخرين وفهم آلية عمل المشروع وكيف يتم تنظيم الأكواد وهيكلة مجلدات وملفات المشروع. وكيف يتم المساهمة والعمل كفريق من خلال نظام إدارة الإصدارات GIT. وستتفاجيء عند النظر للحزم والإطارات التي تستخدمها في مشروعك بأن الكثير منها مفتوح المصدر وتستطيع المساهمة بها إن كان لديك المعرفة الكافية. وكبداية لكسر حاجز الرهبة، يمكنك المساهمة بشكل بسيط من خلال مساهمات مخصصة للمبتدئين من خلال المواقع التالية: https://up-for-grabs.net https://goodfirstissue.dev
  4. عليك كتابة اسم النموذج بشكل صحيح حيث كتبت user والصحيح هو User لأنك تستورد ذلك: from django.contrib.auth.models import User أي تعديل الخطأ في السطر: user=models.OneToOneField(user,verbose_name=_('user'),on_delete=models.CASCADE) ليصبح: user = models.OneToOneField(User, on_delete=models.CASCADE) أيضًا سيظهر لديك خطأ NameError: name '_' is not defined، بسبب أنك لا تستورد gettext_lazy كالتالي: from django.utils.translation import gettext_lazy as _
  5. لا يوجد ذلك، فلغة HTML هي لغة هيكلية أو وصفية لهيكلة عناصر الصفحة، وما تريدينه يتم من خلال لغة برمجة وهي جافاسكريبت، وقد تم توضيح كيفية فعل ذلك هنا:
  6. ما تقصدينه هو تغيير اتجاه النص من اليسار إلى اليمين، أي يصبح الإتجاه من اليمين إلى اليسار RTL وهو اختصار لـ Right to Left وهو اتجاه اللغة العربية، ويتم أيضًا تحويل إتجاه العناصر من اليمين إلى اليسار أيضًا. وذلك من خلال سمة dir مع قيمة rtl، ونضعها في العنصر الرئيسي لصفحة HTML وهو عنصر html كالتالي: <!DOCTYPE html> <html dir="rtl"> <head> <meta charset="UTF-8"> <title>عنوان الصفحة</title> </head> <body> هذا نص باللغة العربية </body> </html> أو يمكننا بدلاً من ذلك استخدام CSS حيث نكتب التالي: html { direction: rtl; } واستخدام الخاصية dir هو الخيار المفضل لضبط اتجاه الصفحة بأكملها، وبالطبع تستطيعي استخدام CSS لضبط اتجاه عناصر محددة فقط في الصفحة.
  7. عليك استخدام الإعداد التالي في المكتبة: $mpdf = new Mpdf(); $mpdf->SetDirectionality('rtl'); $mpdf->autoLangToFont = true; $mpdf->WriteHTML($html); وذلك من أجل تعيين اتجاه الصفحة إلى يمين إلى يسار، لكي تتوافق مع اللغة العربية، أيضًأ تفعيل خاصية ربط اللغة بالخط تلقائيًا.
  8. الأمر صحيح من وجهة نظر معينة، لكن تستطيعي تعلم البرمجة بأي لغة تريدينها، فمن غير المنطقي أن نجبر أحد على تعلم البرمجة من خلال C++ أو جافا وهو مبتدأ تمامًا ولا يدري أي شيء حول علوم الحاسوب أو مستخدم بسيط للكمبيوتر والإنترنت. ولا مشكلة في ذلك فالجميع كان في نفس النقطة في مرحلةٍ ما، لذا لغة برمجة مثل بايثون أو جافاسكريبت بداية جيدة لتعلم البرمجة وسهلة، وبعد تعلم أول لغة برمجة تستطيعي تعلم أي لغة بشكل أسهل بمراحل فجميع اللغات تشترك في نفس المفاهيم. وبالطبع التأسيس من خلال لغة برمجية متوسطة المستوى أو منخفضة نسبيًا مثل c++ أو جافا هو يعطي أفضلية وفهم أفضل بلا شك، حيث أن بايثون وجافاسكريبت بهم تجريد abstraction أي يتم إخفاء الكثير من الأمور عنك وتتم بشكل تلقائي في الخلفية بينما تتعلمين تلك الأمور من خلال لغات متوسطة المستوى مثل c++ أو جافا. لذا في أي وقت تستطيعي العودة ودراسة الأساسيات من خلال تلك اللغات أو يمكن تجاهل الأمر والمضي قُدمًا ولا مشكلة في ذلك، فنسبة كبيرة من المطورين لم يقوموا بدراسة C++ أو جافا، الأمر يتوقف على المسار البرمجي فمثلاً مسار Front-End ليس بحاجة إلى دراسة لغة منخفضة المستوى بينما الـ back-end من الأفضل له تعلم C++ وليس جافا. وللعلم جافا أسهل من c++.
  9. هناك شركات مًصنعة جيدة منها DELL ثم MSI ثم Asus، ولينوفو جيدة بالنسبة للمواصفات لكن خامات اللابتوب ليست بجودة مرتفعة حيث يتم التركيز على المواصفات المرتفعة مقابل سعر مناسب أكثر. ومواصفات اللابتوب المناسب للبرمجة ليست مرتفعة، يكفي 8 جيجابايت من الذاكرة العشوائية بحد أدنى ومن الأفضل 16 جيجابايت تلك الأيام. بجانب معالج قوي موديل H وليس U الموفر للطاقة إن أمكن ذلك حيث يرتفع سعره نسبيًا مقارنًة بمعالجات U، على أي حال يشترط ألا تقل عدد الأنوية عن 4 أنوية. بالإضافة إلى وجود هارد SSD للتثبيت النظام والبرامج عليه فبدونه ستعانين من بطء النظام والبرامج، حتى لو كانت مواصفات اللابتوب مرتفعة. إن كانت الميزانية جيدة يمكن شراء لابتوب مع كرت شاشة إضافي أي ليس مدمج بالمعالج، وذلك في حال التعامل مع برامج مثل الفوتوشوب بشكل مكثف وليس بشكل بسيط. ولا أنصحك بشراء لاب توب إلا في حالة كنتي ستتنقلين به خارج المنزل، وأنصحك بشراء PC والسبب أن الحاسوب منخفض التكلفة مقارنًة باللاب توب وأيضًا مواصفاته مرتفعة مقابل السعر المنخفض. وعلى العكس اللاب توب سعره مرتفع ومواصفاته منخفضة، مقارنًة إذا قمتي بشراء حاسوب بنفس السعر. وأيضًا الحاسوب أفضل من حيث الإنتاجية والتركيز، بسبب وجود شاشة وماوس منفصل ولوحة مفاتيح، ويتحمل العمل الشاق وعمره طويل وأعطاله أقل. وبخصوص المواصفات تم النقاش حول ذلك في النقاشات التالية:
  10. هناك طرق رسمية وطرق غير رسمية ولا أنصحك إلا بالطريقة الرسمية. حيث تستطيع شراء مفتاح للتفعيل بثمن زهيد من مواقع أجنبية مثل digitalchillmart و hypestkey و keymarto و allkeyshop.digital، أو مواقع عربية مثل نود الرقمية والتنشيط الرقمي. وستحصل على مفتاح تستطيع استخدامه لتفعيل نسخة الويندوز حسب نوع الويندوز لديك سواء 10 أو 11. ابحث عن activation في شريط البحث بالأسفل بالويندوز ثم ستجد الخيار الخاص بالتفعيل بإدخال السريال:
  11. حاول تطبيق سمة dir بقيمة rtl على عنصر body الخاص بصفحة المقال مثلاً التي يتم بها عرض الجدول، كالتالي: <body dir='rtl'>
  12. بشكل مختصر، الإجابة هي لا. الغرض من تعلم جافاسكريبت هو تطوير مواقع الويب أو أمور متعلقة بذلك، وهي لغة تم تطويرها للويب بالأساس، أي للتلاعب بالـ DOM والـ DOM بشكل بسيط هو نموذج كائنات المستند، وهو تمثيل برمجي لصفحة الويب أي هو الـ HTML. إذن اللغة قائمة على ذلك، بحيث يتم برمجيًا تنفيذ أمور والتلاعب بالواجهة الأمامية. وجدلاً لنفترض أننا تعلمنا لغة جافاسكريبت بدون HTML، ما الذي سنفعله الآن؟ سنحتاج HTML لنتمكن من عرض ما نقوم ببرمجته، صحيح؟ حتى لو تم تعلم جافاسكريبت من أجل تطوير الواجهة الخلفية بواسطة بيئة Node.js فيجب أيضًا تعلم أساسيات HTML وهو أمر طبيعي بالنسبة لأي مطور واجهة خلفية حتى لو بلغة أخرى مثل PHP.
  13. ما هو المسار الذي قمتي بدراسه واخترتيه كمسار برمجي لك؟ أي الوظيفة التي تريدينها حاليًا؟
  14. طالما أنك قمت بتجربة كافة المسارات كما ذكرتي، فذلك يعني أنك على دراية بمجال الويب بمساريه الواجهة الأمامية و والواجهة الخلفية، أيضًا مجال تطوير تطبيقات الهاتف. عليك الآن تحديد ما هو المجال المناسب لك والذي تشعرين أن لديك ميول له وتستطيعي التفوق به أو قضاء فترة كبيرة لدراسته، فالبرمجة ليس دراسة لساعات محددة بل ستذاكرين بشكل دائم من أجل تحديث معلوماتك وتعلم الجديد في المكتبات والإطارات واللغة وخلافه. ومن الأفضل إختيار المجال بناءًا على الوظائف المتاحة في سوق العمل لديك، حيث نبحث عن الوظائف المعروضة من قبل الشركات في مجال البرمجة على مواقع مثل indeed و LinkedIn ثم في مجال الويب نتعلم التقنيات الأكثر طلبًا، ونفس الأمر لو أردنا مجال تطوير تطبيقات الهاتف سواء بتعلم React Native أو Flutter. أي يجب تحديد خريطة طريق Road map ثم الإلتزام بها وتنفيذ مشاريع كاملة لبناء معرض أعمال.
  15. صحيح، عليك الآن طلب الوصول Request access ولكن يظهر أن الزر مُعطل، حاول عمل inspect element للزر ثم إزالة type='primary' ثم حذف disabled وتجربة الضغط على الزر.
  16. بالطبع خاصية min-height لا تعمل بشكل صحيح لأن عنصر main يعتمد على إرتفاع العنصر الآب (wrapper) في حساب إرتفاعه. ولوضع طول بحسب المحتوى فقط، نستخدم قيمة max-content لـ height كالتالي: .main { background-color: red; grid-area: main; height: max-content; }
  17. فكر بالمشكلة على أنها كـمخطط حيث تُمثل المدن العقد، وتُمثل المسافات بين المدن الأوزان على الحواف، والهدف هو إيجاد دورة هاميلتونية (Hamiltonian Cycle) في المخطط، وهي دورة تمر عبر جميع العقد مرة واحدة فقط وتنتهي في نفس العقدة التي بدأت منها. وتعتبر مشكلة البائع المتجول من المشكلات NP-hard وتعني الصفة أنّه لا توجد خوارزمية معروفة يمكنها حل المشكلة بكفاءة في جميع الحالات أي بعبارة أخرى، مع ازدياد عدد المدن، يزداد الوقت الذي تستغرقه الخوارزمية لحل المشكلة بشكل كبير. مع عدد n من المدن، هناك n! (n factorial) طريقة مختلفة لترتيب زيارة المدن، أي أن عدد الحلول الممكنة ينمو بشكل سريع للغاية مع ازدياد عدد المدن. على الرغم من صعوبة حلها بشكل دقيق في جميع الحالات، إلا أن هناك بعض الخوارزميات التي يمكنها إيجاد حلول تقريبية جيدة. مثل خوارزمية القوة الغاشمة، وهي بسيطة للغاية، ولكنها بطيئة للغاية أيضًا، حيث تقوم بتجربة جميع الحلول الممكنة واختيار أفضلها. ومع ازدياد عدد المدن، يزداد عدد الحلول الممكنة بشكل كبير، مما يجعل الخوارزمية غير عملية. وهناك خوارزمية أقرب جار وتعتبر أكثر كفاءة من خوارزمية القوة الغاشمة، وتبدأ الخوارزمية من مدينة ما، ثم تختار في كل خطوة المدينة الأقرب إلى المدينة الحالية، وتستمر حتى يتم زيارة جميع المدن، لكن لا تضمن إيجاد أفضل حل ممكن، ولكنها توفر حلولًا جيدة في وقت معقول. لدينا أيضًا خوارزمية الخوارزميات الوراثية، والتي تحاكي عملية التطور البيولوجي، أي تبدأ بمجموعة من الحلول العشوائية، ثم تقوم بـ "تربية" الحلول لإنشاء حلول جديدة، وتستمر العملية حتى يتم العثور على حل جيد، وهي من أفضل الخوارزميات لحل مشكلة البائع المتجول، ولكنها تتطلب وقتًا طويلًا لحل المشكلات المعقدة. بالإضافة إلى خوارزمية الفرع والربط، والتي تقسم المشكلة إلى مشاكل فرعية أصغر، ثم حل كل مشكلة فرعية بشكل منفصل، ثم يتم دمج الحلول الفرعية للحصول على حل للمشكلة الأصلية، وهي أكثر كفاءة من خوارزمية القوة الغاشمة، ولكنها لا تضمن إيجاد أفضل حل ممكن. ولا يوجد حل نهائي لمشكلة البائع المتجول حتى باستخدام الحوسبة الكمومية وليس أجهزة الكمبيوتر التقليلدية حتى الآن. فعلى الرغم من أن الحوسبة الكمومية تُظهر إمكانات كبيرة لحل مشكلة البائع المتجول بشكل أكثر كفاءة من أجهزة الكمبيوتر الكلاسيكية، إلا أن هناك العديد من التحديات التي يجب التغلب عليها قبل أن تصبح هذه التقنية قابلة للتطبيق بشكل عملي.
  18. ما هو إصدار TinyMCE لديك؟ وهل تستخدم ووردبريس؟ عامًة هناك إضافة Directionality وتستطيع إضافتها من خلال كود جافاسكريبت التالي: tinymce.init({ selector: 'textarea', // change this value according to your HTML plugins: 'directionality', toolbar: 'ltr rtl' directionality :"rtl" }); https://www.tiny.cloud/docs/tinymce/latest/directionality/#toolbar-buttons وتأكد من تحديد النص ثم الضغط على الزر التالي:
  19. رسالة "Requirement already satisfied" (تم تلبية المتطلبات بالفعل) تعني أن الحزمة تم تثبيتها حاول استيرادها وتجربتها في الكود لديك.
  20. أولاً أرجو استخدام اسم دالة مناسب غير God، فالأمر ليس هين، الاسم الجديد في الشرح هو get_combined_list. ولا يتم دمج القوائم arr1 و arr2 في الدالة get_combined_list لأنك لم ترسلها كوسيطات عند استدعاء الدالة. لذا عليك، بإضافة وسيطتين جديدتين إلى الدالة get_combined_list لتلقي القوائم arr1 و arr2، وبتعديل الدالة get_combined_list لدمج القوائم arr1 و arr2 في قائمة واحدة، ثم أرسل القوائم arr1 و arr2 كوسيطات عند استدعاء الدالة. كالتالي: def get_combined_list(lst1, lst2): class Person: def __init__(self , name=None , gender=None , job=None , age=None): self.name = name self.gender = gender self.job = job self.age = age def alst(self): arr1 = [self.name , self.gender , self.job , self.age] arr2 = [self.name , self.gender , self.job , self.age] # دمج القوائم arr1 و arr2 combined_arr = arr1 + arr2 return combined_arr man = Person('Ali' , 'Male' , 'Programmer' , 20) woman = Person('Yomna' , 'Female' , 'Doctor' , 16) combined_arr = man.alst() + woman.alst() get_combined_list(combined_arr, combined_arr) أو تستطيع تعديل الدالة get_combined_list لتلقي قائمة واحدة فقط، وداخلها قم بإنشاء قائمتين جديدتين arr1 و arr2 وقم بتعبئتهما بقيم القائمة التي تم إرسالها كوسيط، ثم دمج القوائم arr1 و arr2 في قائمة واحدة.
  21. لم يتم توضيح اللغة، ولكن على أي حال الـ Abstract Class هو كلاس مجرد لا يمكن إنشاء كائنات منه مباشرة، بل يستخدم كقاعدة لتعريف سلوك عام يتم توريثه لكلاسات أخرى. وكمثال في بايثون، نقوم بتعريف الكلاس: abstract class Animal: # تعريف السلوك العام def make_sound(self): pass ثم تعريف الدوال المجردة بعد ذلك نستطيع إنشاء كلاسات مشتقة ثم إنشاء كائنات من الكلاسات المشتقة أي كالتالي: from abc import ABC, abstractmethod # تعريف الكلاس المجرد Animal class Animal(ABC): # تعريف الدالة المجردة make_sound() @abstractmethod def make_sound(self): pass # تعريف الكلاس المشتق Dog class Dog(Animal): # إعادة تعريف الدالة make_sound() def make_sound(self): print("Woof!") # تعريف الكلاس المشتق Cat class Cat(Animal): # إعادة تعريف الدالة make_sound() def make_sound(self): print("Meow!") # إنشاء كائنات من الكلاسات المشتقة dog = Dog() cat = Cat() # استدعاء الدالة make_sound() على الكائنات dog.make_sound() cat.make_sound()
  22. بخصوص إضافة إضافة كود HTML عليك بالتالي: انتقل إلى لوحة تحكم بلوجر. اختر القالب الذي تريد إضافة الكود إليه. انقر على "تعديل HTML". ابحث عن علامة </head>. الصق محتوى ملف HTML داخل علامتي <head> و </head>. إضافة كود CSS: انتقل إلى "تعديل HTML". ابحث عن علامة </head>. أضف الكود التالي قبل علامة </head>: <style type="text/css"> /* الصق محتوى ملف CSS هنا */ </style> إضافة كود JavaScript: انتقل إلى "تعديل HTML". ابحث عن علامة </body>. أضف الكود التالي قبل علامة </body>: <script type="text/javascript"> /* الصق محتوى ملف JavaScript هنا */ </script> ثم احفظ التغييرات بانقر على "حفظ".
  23. لا حل لتلك المشكلة، حيث أن vscode لا يدعم اللغة العربية لذا يتم عرض النصوص العربية بشكل غير صحيح في منفذ الأوامر، لذا عليك طباعة الرسائل باللغة الإنجليزية كالتالي: print('Hello') بينما عند تشغيل منفذ الأوامر مباشرًة في الويندوز ستجد أنه يتم طباعة الرسائل العربية بدون مشكلة. وإذا أردت طباعة الرسائل باللغة العربية في التيرمنال الخاص بـ vsocode عليك استخدام مكتبة تقوم بعكس الكلمات مثل مكتبة arabic-reshaper. https://pypi.org/project/arabic-reshaper/
  24. ببساطة هي فرع من علوم الكمبيوتر يركز على تصميم وتحليل الخوارزميات لحل مشاكل واقعية في مجالات مختلفة، وتهدف إلى إيجاد حلول فعالة وذات كفاءة عالية للمشكلات المعقدة التي تواجهنا في حياتنا اليومية. وكأمثلة على مجالات تطبيق الخوارزميات: الذكاء الاصطناعي: التعلم الآلي، معالجة اللغة الطبيعية، الرؤية الحاسوبية البيانات الضخمة: تحليل البيانات، استخراج المعلومات، التنبؤ الشبكات: تحسين مسارات الشبكة، أمن الشبكة، التحكم في ازدحام الشبكة التمويل: تحليل المخاطر، التنبؤ بالأسواق، إدارة الاستثمارات الصناعة: تحسين العمليات، التحكم في الجودة، جدولة الإنتاج الطب: تشخيص الأمراض، تطوير الأدوية، تحليل الصور الطبية والغاية هي إيجاد حلول فعالة للمشكلات المعقدة بأقل قدر من الوقت والموارد وأيضًا بدقة وموثوقية، وتُصمم الخوارزميات التطبيقية لتكون قابلة للتطوير بحيث يمكن تطبيقها على مشكلات ذات أحجام مختلفة لسهولة الاستخدام من قبل المستخدمين. ولتوضيح الفكرة لنستعرض خوارزميات موجودة بالفعل: خوارزمية ديجكسترا: تُستخدم لإيجاد أقصر مسار بين نقطتين على خريطة. كما في تطبيقات الملاحة مثل Google Maps و Waze لتحديد أقصر مسار بين موقعك ووجهتك، وتعمل الخوارزمية عن طريق تحليل شبكة الطرق وحساب المسافة بين كل نقطتين، وبالتالي تُساعد في توفير الوقت والوقود وتقليل الازدحام على الطرق. خوارزمية فلoyd-Warshall: لإيجاد أقصر مسار بين جميع أزواج النقاط على خريطة. ونستطيع الاستفاد من ذلك في تخطيط الرحلات لتحديد أفضل مسار رحلة بين مجموعة من المدن، وتأخذ الخوارزمية في الاعتبار تكلفة السفر والمدة الزمنية لكل رحلة، وذلك من أجل توفير المال والوقت عند تخطيط رحلات متعددة. خوارزمية Kruskal: الغرض منها هو إيجاد شجرة امتداد دنيا لمجموعة من النقاط. ونستفيد منها في تصميم الشبكات لتحديد أفضل طريقة لربط مجموعة من النقاط معًا وتقليل تكلفة إنشاء الشبكة وضمان كفاءة نقل البيانات. 5. خوارزمية PageRank في محركات البحث مثل Google لترتيب نتائج البحث حسب أهميتها. حيث تأخذ الخوارزمية في الاعتبار عدد الروابط المؤدية إلى كل صفحة ويب، وكذلك جودة تلك الروابط، لعرض نتائج البحث الأكثر صلة للمستخدمين.
×
×
  • أضف...