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

لوحة المتصدرين

  1. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      12

    • المساهمات

      13209


  2. محمد Fahmy

    محمد Fahmy

    الأعضاء


    • نقاط

      4

    • المساهمات

      986


  3. Ali Ali49

    Ali Ali49

    الأعضاء


    • نقاط

      3

    • المساهمات

      26


  4. Ali Ahmed39

    Ali Ahmed39

    الأعضاء


    • نقاط

      3

    • المساهمات

      138


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 06/06/23 في كل الموقع

  1. هل يمكنني الاشتراك في أحد الدورات بالتقسيط ؟
    2 نقاط
  2. لقد استخدمت Global Filter في VueJs 3 عدت مرات ولم اجد مشكلة ولكن عندما اردت استخدام الفلتر لتقليل من عدد الأحرف الموجودة في ال paragraph واجهتني مشكلة وهيا عدم التعرف ال function سأزودكم ببعض الصور لتوضيح المشكلة في الصورة الأول عملة على الفلتر وفي الصورا الثاني قمت بأستدعاء ال function وفي الصورة الثالثة تظهر المشكلة اتمنى ان أكون وضحت المشكلة بشكل جيد
    2 نقاط
  3. السلام عليكم.. للتو سمعت عن ال Connection pooling وانه يساعد على تحسين الاداء، لكن اريد ان اسأل كيف يعمل تحديداً وكيف يمكن ان يساعدني ؟
    1 نقطة
  4. السلام عليكم، حاليا أعمل على مشروع مطعم بيتزا كا front-end، وأستخدم تقنية Webpack. المشكلة هي أن عند عمل run in production mode تظهر لي مشكلة باني تخيطت الحد المسموح لملف bundle.js . جربت أن أقلل حجم الصور وأن اضيف بعض التحسينات في ملف webpack.config.js ولكن لم تحل المشكلة والموقع بطيئ جدا في التحميل بعد رفعه على github . لا أدري هل المشكلة في webpack أم في الكود الخاص بي. رابط المشروع : https://github.com/beloyosry/pizza أرجو المساعدة، شكرا،
    1 نقطة
  5. مالخطأ بهذا الكود أولا كود ( class ) from openpyxl import load_workbook class book_E: def __init__(self, BATH=None): self.BATH = BATH self.workbook = None self.sheet = None def load_file(self): if self.BATH: self.workbook = load_workbook(self.BATH) self.sheet = self.workbook.active def column_values(self): self.column_values_list = [cell.value for cell in self.sheet['A']] return self.column_values_list def on_combobox_selected(self,combo,AM): self.combo = combo self.AM = AM selected_value = self.combo.get() row_index = self.column_values_list.index(selected_value) + 1 corresponding_value = self.sheet[self.AM + str(row_index)].value print(corresponding_value) ثانيا كود البرنامج from ttkbootstrap.constants import * import ttkbootstrap as ttk from LOOD_BOOK import book_E BOOK1 = book_E() column_values = "1" def COLS_V(): file_path = "E:\people.xlsx" BOOK1 = book_E(file_path) BOOK1.load_file() combo_name.configure(values=BOOK1.column_values()) def sheet_Names(BOOK1): q = BOOK1.workbook.sheetnames return q def COL1_V(BOOK1): q = BOOK1.sheet['A2'].value #-------------------------------------------------------------------------------------------- def on_combo_name_selected(event): BOOK1.on_combobox_selected(combo_name,"a") #-------------------------------------------------------------------------------------------- root = ttk.Window(themename="minty") frame = ttk.Frame(root) frame.pack() widgets_frame = ttk.LabelFrame(frame, text="طباعة") widgets_frame.grid(row=0, column=0, padx=20, pady=5, sticky="nsew") b1 = ttk.Button(widgets_frame, text="print", bootstyle=("info", "outline"), command=COLS_V) b1.grid(row=0, column=0, padx=5, pady=5, sticky="ew") combo_name = ttk.Combobox(widgets_frame,justify=RIGHT,width=35,values=column_values) combo_name.current(0) combo_name.grid(row=1, column=0, padx=5, pady=5, sticky="ew") combo_name.bind("<<ComboboxSelected>>", on_combo_name_selected) root.mainloop() هذا الخطأ AttributeError: 'book_E' object has no attribute 'column_values_list'
    1 نقطة
  6. لما باجي اكتب else بيقولي Expected Expression والصورة هتوضح كل حاجة
    1 نقطة
  7. السلام عليكم أخاف أن أبرمج نظام و يتم إختراقي ماد افعل ؟ هل من الضروري تعلم الاهكر الاخلاقي قبل البدا في اي مجال ؟
    1 نقطة
  8. قمت بتعديل المشروع لك ورفعه بعد التعديل، عليك فقط تعديل المسار لملف people.xlsx الذي أنشأته وبه بيانات تجريبية فقط، وستقوم بتعديل المسار في ملف MINE.py وتغيير اسم المستخدم إلى اسم المستخدم الخاص بحاسوبك، حيث افترضت أن مجلد المشروع موجود لديك على سطح المكتب. file_path = r"C:\Users\اسم المستخدم هنا\Desktop\CLASS_1\people.xlsx" # المسار الذي تريده CLASS_1.rar
    1 نقطة
  9. هناك مشكلة في السطر التالي: self.column_values_list = [cell.value for cell in self.sheet['A']] ففي الدالة column_values() في صنف book_E، الخطأ الذي يحدث هو AttributeError: 'book_E' object has no attribute 'column_values_list'. وذلك لأنك تحاول تعيين قائمة column_values_list كخاصية للكائن self، ولكن لم تقم بتعريفها كمتغير عضو في الكلاس book_E. عليك بتعريف المتغير column_values_list كمتغير عضو في الدالة __init__ كالتالي: def __init__(self, BATH=None): self.BATH = BATH self.workbook = None self.sheet = None self.column_values_list = [] # تعريف المتغير كمتغير عضو في الكلاس بعد ذلك، تستطيع استخدام المتغير self.column_values_list في الدالة column_values() بدون أن تحدث الأخطاء. تأكد أيضًا من استيراد load_workbook من الوحدة الصحيحة openpyxl.
    1 نقطة
  10. السلام عليكم أستخدم لغة python أشكر كل من ساعدني مسبقاً في هذا الصرح العلمي الذي منه في الحقيقة إستفدت منه كثيراً أحبتي لدي هذا الكود ومحتاج به تعديل ولاكن جميع محولاتي لم تنجح عند عمل البرنامج الملف يتم تحميله عند التشغيل والذي موجود بهذا السطر BOOK1 = book_E('E:\people.xlsx') أحتاج أن يكون داخل زر ( Button ) في البداية هذا ملف الكلاس from openpyxl import load_workbook class book_E: def __init__(self, BATH): self.BATH = BATH self.workbook = load_workbook(BATH) self.sheet = self.workbook.active def column_values(self): self.column_values_list = [cell.value for cell in self.sheet['A']] return self.column_values_list def on_combobox_selected(self,combo,AM): self.combo = combo self.AM = AM selected_value = self.combo.get() row_index = self.column_values_list.index(selected_value) + 1 corresponding_value = self.sheet[self.AM + str(row_index)].value print(corresponding_value) وهنا الأن البرنامج الرئيسي from ttkbootstrap.constants import * import ttkbootstrap as ttk from LOOD_BOOK import book_E BOOK1 = book_E('D:\ABC.xlsx') column_values = "1" def COLS_V(BOOK1): combo_name.configure(values=BOOK1.column_values()) def on_combo_name_selected(event): BOOK1.on_combobox_selected(combo_name,"a") root = ttk.Window(themename="minty") frame = ttk.Frame(root) frame.pack() widgets_frame = ttk.LabelFrame(frame, text="طباعة") widgets_frame.grid(row=0, column=0, padx=20, pady=5, sticky="nsew") b1 = ttk.Button(widgets_frame, text="print", bootstyle=("info", "outline"),command=lambda:COLS_V(BOOK1)) b1.grid(row=0, column=0, padx=5, pady=5, sticky="ew") combo_name = ttk.Combobox(widgets_frame,justify=RIGHT,width=35,values=column_values) combo_name.current(0) combo_name.grid(row=1, column=0, padx=5, pady=5, sticky="ew") combo_name.bind("<<ComboboxSelected>>", on_combo_name_selected) root.mainloop() أحتاج كما أخبرتكم أن يكون تحميل الملف من خلال Button وأحتاج أيضاً تعديل في المتغير column_values كيف يتم معالجته بما تراه مناسب
    1 نقطة
  11. في الكلاس book_E، عليك بتعديل الدالة __init__ لتستقبل المسار كمعامل افتراضي بدلاً من استخدام القيمة المباشرة: class book_E: def __init__(self, BATH=None): self.BATH = BATH self.workbook = None self.sheet = None def load_file(self): if self.BATH: self.workbook = load_workbook(self.BATH) self.sheet = self.workbook.active # ... الدوال الأخرى هنا ... وأيضًا تعديل دالة COLS_V لتحميل الملف عند النقر على زر "Button": def COLS_V(): file_path = "E:\people.xlsx" # المسار الذي تريده BOOK1 = book_E(file_path) BOOK1.load_file() combo_name.configure(values=BOOK1.column_values()) وعليك بتحديث الأمر المرتبط بزر "Button" في الكود الرئيسي ليستدعي الدالة COLS_V بدلاً من COLS_V(BOOK1): b1 = ttk.Button(widgets_frame, text="print", bootstyle=("info", "outline"), command=COLS_V) وبذلك عند النقر على زر "Button" سيتم تحميل الملف وتعيين القيم في combobox. أما بالنسبة لتعديل المتغير column_values، بإمكانك تغيير قيمته بناءً على ما تحتاجه في البرنامج، باستخدام دالة BOOK1.column_values() للحصول على قائمة القيم من الملف، ومن ثم تعيينها للمتغير column_values. كمثال: column_values = BOOK1.column_values() وتستطيع استخدام هذه القائمة لإعداد الخيارات المتاحة في combobox كما فعلت في الكود الحالي لديك.
    1 نقطة
  12. بالنسبة للمشكلة التي تخاف منها، فإنه من المهم تطبيق ممارسات الأمان الأساسية عند برمجة التطبيقات والمواقع. تشمل هذه الممارسات: - تحديث إطر العمل والمكتبات والبرامج: يتم إصدار تحديثاتل للبرامج و إطر العمل والمكتبات بانتظام لتحسين الأمان وإصلاح الثغرات الأمنية، لذلك يجب عليك تحديث البرامج بانتظام. - استخدام كلمات مرور قوية: يجب استخدام كلمات مرور قوية وعشوائية لتقليل فرص اختراق الحسابات الخاصة بك. - تشفير البيانات: يجب تشفير البيانات الحساسة لتقليل فرص اختراقها. - الحد من الثغرات الأمنية: يجب العمل على الحد من الثغرات الأمنية في التطبيقات التي تقوم ببرمجتها، ويمكن استخدام أدوات التحليل الأمني للكشف عن هذه الثغرات. - بالنسبة لسؤالك الثاني، فإن تعلم الاختراق الأخلاقي ليس ضروريًا قبل تعلم البرمجة. ولكن، يمكنك تعلم المفاهيم الأساسية للأمن والحماية في عملية تعلم البرمجة، وهذا أمر مهم لتطوير تطبيقات آمنة وموثوقة. يمكنك تعلم المزيد عن الأمان والحماية من خلال الدروس والكورسات المتاحة عبر الإنترنت، والتي تشرح المفاهيم الأساسية للأمان والحماية في عملية تطوير التطبيقات. - وبمرور الوقت وتحسن مهاراتك في البرمجة، يمكنك تعلم المزيد عن الأمن والحماية وتطبيقها في تطبيقاتك. يمكنك البحث عن أدوات لتقييم أمان تطبيقاتك والعمل على تحسينها.
    1 نقطة
  13. اسمح لي بنصحك بالتالي، كثرة الأسئلة وتشتيت نفسك ستعيقك عن تعلم أي مجال، وكل ما تحتاجه هو تعلم أساسيات البرمجة وعلوم الحاسب، ثم اختر المجال الذي تريد التخصص به واتبع مسار تعليمي لمدة 6 أشهر ولا تحيد عنه. أي كل ما تحتاجه هو أن تبدأ فقط وستتضح لك كافة الأمور، وستجد نفسك قادر على التحديد والإختيار. وبخصوص سؤالك، لن يتم إختراق جهازك وأنت تعمل على مشروع ما، وما يعرض جهازك للإختراق بالفعل هو استخدام برامج مكركة بدون أي وعي لمخاطر ذلك، وأيضًا عدم وجود وعي أمني عند تصفح الإنترنت والتحميل منه بدون دراية. وعند نشر المشروع على الإنترنت عليك بتوفير الحماية اللازمة لحماية البيانات الحساسة، وستتعلم ذلك عند تعلم مجال الويب، في الوقت المناسب لذلك.
    1 نقطة
  14. وعليكم السلام من الطبيعي أن تشعر بالقلق في ظل تطور التكنولوجيا ولكن هناك خطوات يمكنك اتباعها لزيادة أمان النظام الخاص بك:- قم بتحديث برامجك وأنظمتك البرمجية بانتظام بحيث يجب أن تكون على دراية بآخر التحديثات والتصحيحات الأمنية المتوفرة للأدوات والتقنيات التي تستخدمها. قم بتطبيق هذه التحديثات بانتظام لتصليح الثغرات الأمنية المعروفة. استخدم تقنيات التشفير القوية وتأكد من استخدام بروتوكولات التشفير القوية عند التعامل مع البيانات الحساسة. استخدم بروتوكول HTTPS لحماية اتصالات الويب والتشفير المناسب لقواعد البيانات والملفات المهمة. قم بتطبيق ممارسات البرمجة الآمنة يجب أن تتأكد من اتباع ممارسات البرمجة الجيدة والآمنة أثناء تطوير نظامك. تجنب الثغرات الشائعة مثل ثغرات إدخال البيانات غير الآمنة وثغرات حقن الشفرة (Injection) وتعلم كيفية التعامل معها. استخدم العناصر الأمنية المتاحة هناك العديد من الأدوات والتقنيات المتاحة لتعزيز أمان نظامك. قم بتفعيل الحماية المضادة للبرمجيات الضارة (Antimalware) والحماية من الحركة الجانبية (Firewall) وتكوين نظام الحماية المتقدمة ضد الاختراق (Intrusion Detection System) وغيرها من الأدوات المشابهة. بالنسبة لسؤالك حول مدى ضرورة تعلم الاختراق الأخلاقي قبل البدء في أي مجال، فإن الإجابة تعتمد على الغرض من تعلمه. إذا كنت ترغب في أن تصبح محترفًا في أمن المعلومات والدفاع السيبراني، فإن تعلم الاختراق الأخلاقي يمكن أن يكون مفيدًا لفهم الثغرات وأساليب الهجوم المحتملة وكيفية التعامل معها. إلا أنه يجب أن يتم التعلم في سياق أخلاقي وقانوني، وأن تكون على دراية بالقوانين والتشريعات المتعلقة بالاختراق الأخلاقي في بلدك. من الجيد أن تكون لديك فهم جيد لأساسيات الأمان وأن تطبق الممارسات الأمنية في نظامك، وإذا احتجت إلى مساعدة متخصصة في مجال الأمن السيبراني، يمكنك التعاون مع محترفين في هذا المجال.
    1 نقطة
  15. السلام عليكم ماد لو اريد اتعلم برمجه الايفون فا هل الازم اتعلم لغة Dart ام اتعلم لغة swift ؟ هل الازم اتعلم برمجه الويب قبل الموبيل عشان اعرف اعمل API ؟ ماد افعل حتي اكون كويس في مجال طور الموبيل ؟ واخير ماد تنصحوني اتعلم Dart ام swift او يعني corss platform ام Native مع العلم انا حبب اطور تطبيقات تعمل علي نظام ابل؟
    1 نقطة
  16. السلام عليكم من فضلكم أحتاج مراجعة لهذا الكود في البداية قمت بإنشاء هذا الكلاس from openpyxl import load_workbook class book_E: def __init__(self, BATH): self.BATH = BATH self.workbook = load_workbook(BATH) self.sheet = self.workbook.active def column_values(self): # استخراج قيم العمود الأول من ورقة العمل وتخزينها في قائمة: self.column_values = [cell.value for cell in self.sheet['A']] return self.column_values من ثم في صفحة البرنامج قم بإنشاء هذا الكود from ttkbootstrap.constants import * import ttkbootstrap as ttk from LOOD_BOOK import book_E BOOK1 = book_E('d:\abc.xlsx') def sheet_Names(BOOK1): A = BOOK1.workbook.sheetnames return q def COLS_V(BOOK1): B = BOOK1.column_values() print(q) def COL1_V(BOOK1): C = BOOK1.sheet['A2'].value #-------------------------------------------------------------------------------------------- root = ttk.Window(themename="minty") frame = ttk.Frame(root) frame.pack() widgets_frame = ttk.LabelFrame(frame, text="طباعة") widgets_frame.grid(row=0, column=0, padx=20, pady=5, sticky="nsew") b1 = ttk.Button(widgets_frame, text="print", bootstyle=("info", "outline"),command=COLS_V(BOOK1)) b1.grid(row=0, column=0, padx=5, pady=5, sticky="ew") root.mainloop() المشكلة التي تحدث أنه قبل الضغط على الزر طباعة في واجهة البرنامج البرنامج يقوم بتنفيذ الأمر وحده عند تشغيل البرنامج داخل TERMINAL أين الخطأ في ذلك أحبتي
    1 نقطة
  17. وظيفة lambda في Python تستخدم لإنشاء وظائف مجهولة (anonymous functions)، وتسمح لك بتعريف وظيفة صغيرة دون الحاجة إلى تسميتها بشكل صريح، وتستخدم lambda في السياقات التي تحتاج فيها إلى وظيفة بسيطة وقصيرة. وبخصوص الزر الذي تستخدمه في واجهة البرنامج، تحتاج إلى تعيين دالة (function) للقيام بإجراء معين عند النقر على الزر، وباستخدام lambda، يتم تعريف دالة مجهولة بشكل فوري لتنفيذ الأمر الذي ترغب فيه عند النقر على الزر. بالنسبة للخطأ (TypeError: 'list' object is not callable)، فهناك تعارض في تسمية المتغيرات. وفي الكود الأول لديك، قمت بتسمية المتغير الذي يحمل قائمة القيم بنفس اسم الوظيفة column_values، وبالتالي، عند استدعاء الوظيفة للمرة الثانية، يتم تجاوز الدالة واستدعاء القائمة نفسها، وهذا هو سبب ظهور الخطأ. أي عليك بتغيير اسم المتغير الذي يحمل القائمة إلى اسم مختلف مثلاً تغييره إلى column_values_list كما يلي: class book_E: def __init__(self, BATH): self.BATH = BATH self.workbook = load_workbook(BATH) self.sheet = self.workbook.active def column_values(self): # استخراج قيم العمود الأول من ورقة العمل وتخزينها في قائمة: self.column_values_list = [cell.value for cell in self.sheet['A']] return self.column_values_list ثم في الكود الذي يعرض واجهة البرنامج، استخدم الدالة COLS_V مباشرة بدون استدعاء print: def COLS_V(BOOK1): B = BOOK1.column_values() print(B)
    1 نقطة
  18. كيف يمكنني بناء تطبيق يسمح للاعضاء ببيع كتب واعضاء اخرون عملاء يشترونها وتتحول الاموال لحساب كاتب وأخذ نسبة منها للموقع هل تحقيق هذا يتم عبر بوابات الدفع العادي سترايب وغيره ثم جعل المال يذهب لحساب التاجر ومن داخل التطبيق يتم رصد مبلغ للكاتب محفظة وهمي ثم تحويل له الاموال من حساب التاجر هل تسمح بوابات الدفع بذلك ام لها طريقة اخرى للأنجاز وماذا تسمى هذا الطريقة
    1 نقطة
  19. المشكلة تكمن في الطريقة التي تقوم بها بتعيين الدالة المرتبطة بزر الطباعة (b1) في واجهة البرنامج، ويجب أن تقوم بتمرير الدالة نفسها بدون استدعاءها فورًا. وباستطاعتك استخدام وظيفة lambda لتعيين الدالة كوظيفة منفصلة بدون استدعائها فورًا، وإليك الكود: b1 = ttk.Button(widgets_frame, text="print", bootstyle=("info", "outline"), command=lambda: COLS_V(BOOK1)) باستخدام lambda، سيتم تمرير الدالة COLS_V(BOOK1) نفسها كوظيفة مستقلة إلى الزر، ولن تستدعى فورًا عند تشغيل البرنامج. وعليك أيضًا تصحيح خطأ آخر في الدالة sheet_Names و COLS_V، وفي الدالة sheet_Names يجب أن تقوم بإرجاع A بدلاً من q. وفي الدالة COLS_V يجب أن تقوم بطباعة B بدلاً من q، وإليك الكود بعد التعديل: def sheet_Names(BOOK1): A = BOOK1.workbook.sheetnames return A def COLS_V(BOOK1): B = BOOK1.column_values() print(B) وبعد التعديل من المفترض أن تستدعى الدالة COLS_V(BOOK1) فقط عند النقر على زر "print" في واجهة البرنامج.
    1 نقطة
  20. كيف ادرس الدروس و استفيد اقصي استفاده
    1 نقطة
  21. هذه بعض الخطوات للاستفادة القصوى من الكورس: 1- التركيز والانتباه: عند بدء دراسة الكورس، يجب التركيز على المحتوى والاستماع جيداً للمعلومات المقدمة. وبعد ذلك يمكن أخذ ملاحظات مهمة وإنشاء ملف ملاحظات لتسجيل المفاهيم الهامة والأفكار. 2- العمل على المشاريع العملية: يمكن تعزيز فهم المفاهيم من خلال العمل على المشاريع العملية والتدريبات المتاحة في الكورس أو حتي إنشاء تطبيق بسيط أو موقع ويب، والعمل على تطويرها بشكل مستمر. هذا سيمنحك فرصة لتعلم المزيد وتطبيق ما تعلمته على مشاريع حقيقية. 3- البحث عن المصادر الإضافية: لا تكتفي بأي بكورس بل ابحث عن مصادر إضافية على الإنترنت مثل المقالات والفيديوهات والمواقع الأخرى التي تساعد في فهم المفاهيم بشكل أفضل يوجد في أكاديمية حسوب الكثير من المقالات الفيدة في مجال البرمجة يمكنك تصفحها من هنا. 5- الاستمرار في التدريب: يجب الاستمرار في التدريب والممارسة بشكل منتظم لتعزيز المهارات المكتسبة والتأكد من فهم المفاهيم بشكل جيد. 6- الاستفادة من المساعدة: يمكن الحصول على المساعدة من خلال المدربين لإرشادك والمساعدة في فهم المفاهيم بشكل أفضل وحل المشاكل التي تواجهك.
    1 نقطة
  22. نعم ، يمكنك إنشاء API من لغة Swift, بشكل عام يمكن إنشاء API من أي لغة برمجة ، وستختلف الخطوات اللازمة لإنشاء API حسب اللغة والإطار المستخدم. ولكن لا يجب على مطور تطبيقات الموبيل إنشاء API ، حيث يجب علي مطور backend القيام بذلك. ومع ذلك ، فإن فهم أساسيات إنشاء API يمكن أن يكون مفيدًا لمطوري التطبيقات ، حيث يساعد في فهم كيفية التواصل مع API. بشكل عام ، يعمل مطورو الbackend على إنشاء API ، بينما يعمل مطورو التطبيقات الموبيل على استخدام API وتطوير تطبيقات الموبيل التي تتوافق مع API.
    1 نقطة
  23. لبرمجة تطبيقات iPhone بشكل Native، فمن الضروري أن تتعلم لغة Swift، حيث أن لغة Swift هي لغة برمجة مطورة من قِبل Apple وتستخدم لتطوير تطبيقات iOS وMac. أما لغة Dart، على الجانب الآخر، هي لغة برمجة تستخدم بشكل رئيسي في إطار عمل Flutter الذي يستخدم لتطوير تطبيقات متعددة المنصات، وإذا كان هدفك تطوير تطبيقات لنظام Apple بشكل حصري، فمن الأفضل التركيز على تعلم لغة Swift. وبخصوص الـ API فعليك بتعلم الواجهة الخلفية Back-End لتتمكن من إنشاء API ولكن ذلك ليس ضروري، فيمكنك استخدام منصة مثل Firebase كواجهة خلفية لتطبيقك، وقد أوضحت لك ذلك هنا: وبخصوص تطوير تطبيقات الهاتف والحيرة في إختيار اللغة المناسبة أو الإطار، فأنصحك بقراءة التالي:
    1 نقطة
  24. ايون يعني ممكن اعمل API عادي من مثلا لغة swift ام من الويب ؟ وشكرا جدا لحضرتك
    1 نقطة
  25. إذا كنت ترغب في تطوير تطبيقات iOS ، فمن الأفضل أن تتعلم لغة Swift ، حيث تعد لغة Swift هي لغة برمجة الأساسية التي تستخدمها Apple لتطوير تطبيقات iOS. ولكن إذا كنت تريد تطوير تطبيقات Flutter لنظام iOS ، فيجب أن تتعلم لغة Dart. بالنسبة للسؤال الثاني ، لا يلزمك تعلم برمجة الويب قبل تطوير تطبيقات الموبايل ، ولكن من الأفضل أن تكون لديك بعض المعرفة بتطوير الويب بشكل عام و API بشكل خاص ، حيث أن العديد من تطبيقات الموبايل تستخدم API للتواصل مع الخوادم وجلب البيانات. لتصبح جيدًا في مجال تطوير تطبيقات الموبايل ، يجب عليك التدريب الدائم والاستمرار في تعلم اللغات والأدوات الحديثة ومتابعة التطورات في هذا المجال. أما بالنسبة للسؤال الأخير ، فإن القرار بين استخدام Dart أو Swift أو الاهتمام بتطوير تطبيقات Native أو Cross-Platform يعتمد على الاحتياجات الخاصة بك وعلى المشروع الذي تعمل عليه أو غايتك من التعلم. إذا كنت ترغب في تطوير تطبيقات iOS فقط ، فمن الأفضل تعلم Swift وتطوير تطبيقات Native. ولكن إذا كنت ترغب في تطوير تطبيقات لأنظمة تشغيل مختلفة ، فيمكنك التفكير في تعلم Flutter واستخدامها لتطوير تطبيقات Cross-Platform.
    1 نقطة
  26. ازاي اطلع اول حرف من اسم الوظيفة واخليه في output بين قوسين؟
    1 نقطة
  27. السؤال غير واضح، لكن بالطبع تريد استخدام لغة الاستعلام المهيكلة (SQL) لاستخراج الحرف الأول من اسم الوظيفة ووضعه بين قوسين في نتائج الاستعلام، وهناك العديد من قواعد البيانات المختلفة التي تدعم SQL، مثل MySQL و PostgreSQL و SQL Server وغيرها. وفيما يلي مثال لكيفية تنفيذ ذلك باستخدام جملة SQL: SELECT CONCAT('(', SUBSTRING(occupation, 1, 1), ')') AS first_letter FROM your_table_name; وتأكد من استبدال your_table_name بالاسم الصحيح للجدول الذي يحتوي على الأسماء والوظائف، حيث أن الاستعلام سيستخرج الحرف الأول من الوظيفة في كل سجل ويضعه بين قوسين في عمود يسمى "first_letter" في النتائج.
    1 نقطة
  28. عليك بتفهم، أنك بحاجة إلى فهم ما يتم شرحه وليس حفظه وبالطبع هناك ما يجب تذكره، لكن ليس كل ما يتم شرحه، ومن خلال الفهم ستتمكن من تنفيذ ما تريده والتعديل على الكود والبحث عن حل لمشكلة تواجهك أيضًا. والتطبيق هو العامل الأهم للاستفادة من أي دورة، فإذا قمت بمشاهدة الدروس فقط فلن تتعلم البرمجة، وإذا قمت بالتطبيق مرة واحدة فقط مع المدرب ستتعلم بنسبة 50% مثلاً، لكن إذا أردت الاستفادة حقًا، عليك بكتابة الكود مع المدرب ومرن يديك وعقلك على كتابة الكود بشكله الصحيح. ثم قم بتنفيذ التمرين أو إعادة ما قام به المدرب بمفردك، ولا مشكلة إذا كان مختلف أو الكود ليس بأفضل جودة ممكنة، طالما أنه يعمل فذلك هو المطلوب في البداية، لكن بالطبع تعلم الطريقة الصحيحة لكتابة الكود فيجب معرفة ذلك. وإذا واجهتك مشكلة عليك بتفقد أولاً هل أخطأت في الأساسيات مثل كتابة حرف بصورة غير صحيحة أو كتابة المسار بشكل غير صحيح، أو لم أقم باستيراد الملف وهكذا، ثم بعد ذلك ابحث عن حل للمشكلة على جوجل فإن لم تجد ابحث على يوتيوب. وقسم المشكلة إلى أجزاء صغيرة ثم أجزاء أصغر وهكذا، واتبع تلك الطريقة أيضًا عند تنفيذ مشروع. وقد شرحت بالتفصيل في النقاشات التالية كيف تستفيد من الدورات والدراسة بالشكل الصحيح، أرجو منك قراءتها: صعوبات البرمجة للمبتدئين
    1 نقطة
  29. لكل شخص الطريقة الأفضل للتعلم وما يناسبك لا يناسب غيرك ولكن هناك عدة نصائح يمكن اتباعها لتحقيق أقصى استفادة من دروسك وبدلاً من التكرار تم مناقشة هذا السؤال في الأسئلة التالية يفضل الإطلاع عليها
    1 نقطة
  30. قمت برفع مجلد node_modules وهو يحتوي على كافة الحزم الخاصة بالمشروع، وهو أمر غير صحيح، لذلك عليك بإضافة ملف .gitignore لمجلد المشروع لديك ولذلك رفع الكود المصدري فقط وتجاهل مجلدات مثل node_modules وdist وbuild. وقد شرحت ذلك هنا: وبعد تطبيق الشرح السابق، عليك بحذف المستودع وإعادة رفع المشروع من جديد وإليك طريقة حذف المستودع: وإليك طريقة رفع المشروع على GitHub pages أو استضافة مجانية مثل Netlify: ونصيحتي إليك هي برفع مجلد build أو dist على فرع منفصل داخل المستودع ثم استخدامه في GitHub pages أي أنشيء مستودع داخل المجلد ثم قم برفع محتوياته إلى فرع منفصل. أو بطريقة أسهل استخدم Netlify وستقوم برفع مجلد build مباشرًة إلى الاستضافة:
    1 نقطة
  31. لاحظت أن مشكلة حجم ملف bundle.js تنتج عن استخدام العديد من المكتبات الكبيرة والغير ضرورية في مشروعك. يتسبب ذلك في زيادة حجم الملف النهائي وتأثير سلبي على أداء التحميل والأداء العام للتطبيق. لتحسين وضغط حجم ملف bundle.js وزيادة سرعة التحميل، يمكنك اتباع بعض الخطوات: مراجعة الاعتمادات (dependencies): قم بتحليل المكتبات والموديولات التي تستخدمها في مشروعك وتأكد من أنك تستخدم فقط تلك التي تحتاجها حقًا. قد تحتاج إلى التخلص من المكتبات الزائدة والغير ضرورية. تحسين صور المشروع: قم بتحسين وضغط الصور المستخدمة في مشروعك باستخدام أدوات مثل TinyPNG أو ImageOptim. ضغط الصور يمكن أن يقلل بشكل كبير من حجم الملف النهائي. تحسين إعدادات webpack: قم بمراجعة ملف webpack.config.js وتحسين إعداداته لتحقيق أفضل ضغط وتقليل حجم الملف النهائي. يمكنك استخدام أدوات مثل Babel وUglifyJS وOptimizeCSSAssetsPlugin لضغط الكود وتحسينه. استخدام تقنيات تحميل متقدمة: يمكنك استخدام Lazy Loading وCode Splitting لتحميل الكود بشكل ديناميكي فقط عند الحاجة إليه. هذا يساعد في تقليل حجم الملف الأولي وتحسين أداء التحميل. استخدام CDN: يمكنك استخدام خدمات توزيع المحتوى (CDN) لتحسين سرعة التحميل. يقوم CDN بتخزين ملفات التطبيق في خوادم متعددة حول العالم، مما يساعد على تحميلها بشكل أسرع للمستخدمين في مواقع مخ
    1 نقطة
  32. يبدو أنك قمت بتحميل ملف الـ node_modules على GitHub وهذا خطأ، حيث لا ينبغي ان يتم رفع مجلد الـ node_modules، وربما يكون هذا هو سبب البطئ، كذلك فلا ينبغي أن يتم رفع ملف الـ build أيضاً إلا إذا كنت تريد استخدام GitHub pages. لتجنب رفع المجلدات `node_modules` و `build` على GitHub، يمكنك إنشاء ملف باسم `.gitignore` في المجلد الرئيسي لمشروعك وإضافة هذه المجلدات إلى هذا الملف. يعمل ملف `.gitignore` على تجاهل الملفات والمجلدات المحددة عند الرفع على GitHub. هذا مثال على محتوى ملف `.gitignore`: node_modules/ build/ بهذه الطريقة، لن يتم رفع المجلدات `node_modules` و `build` على GitHub.
    1 نقطة
  33. قبل أن أشرح لك أي شيء إذا كان لديك حاسوب بمواصفات منخفضة فلا تفكر في استخدام Visual Studio حيث أنه يستخدم موارد أكبر ولن يعمل بسلاسة لديك. وسأوضح لك الفارق بشكل بسيط. VScode VScode هو محرر نصوص متعدد المنصات يركز على تحرير النصوص وتطوير الويب، ويأتي بواجهة بسيطة ونظيفة ويمكن تخصيصه من خلال تثبيت الامتدادات المختلفة، أي يتطلب تخصيص وتكوين إضافي ليتناسب مع المشروع الذي تعمل عليه. مميزات: خفيف الوزن وسريع في التشغيل. يدعم العديد من لغات البرمجة المستخدمة في تطوير الويب مثل JavaScript وTypeScript وHTML وCSS وغيرها. يوفر مجموعة كبيرة من الامتدادات التي تساعد في تعزيز الإنتاجية وتوفير الوقت. دعم قوي لأدوات التصحيح والتصفيح (debugging) مع إمكانية تكوينها لمختلف البيئات. يوفر إمكانية التعديل على إعدادات المحرر وتخصيصها وفقًا لاحتياجاتك. اللغات المدعومة: JavaScript، TypeScript، HTML، CSS، Python، Java، Ruby، PHP والعديد من لغات البرمجة الأخرى. Visual Studio IDE Visual Studio IDE هو بيئة تطوير متكاملة توفر أدوات تحرير النصوص وتصميم الواجهة والتصحيح وإدارة المشروع، ويدعم العديد من لغات البرمجة وأطر العمل ويوفر وظائف متقدمة مثل الإنشاء التلقائي للكود وإدارة الإصدارات. أي يُعتبر خيارًا مناسبًا للمشاريع الكبيرة والمعقدة التي تتطلب ميزات متقدمة وتكاملًا عميقًا مع الأدوات الخارجية وخدمات السحابة. مميزات: بيئة تطوير متكاملة توفر ميزات متقدمة لإدارة المشروعات وتطوير التطبيقات. يدعم مجموعة واسعة من لغات البرمجة بما في ذلك C#، C++، JavaScript، TypeScript، HTML، CSS والمزيد. يوفر أدوات قوية للتصحيح والتصميم والتجريب. دعم متقدم لتطوير تطبيقات الويب وتطبيقات سطح المكتب وتطبيقات الهاتف المحمول. قدرة على إضافة الامتدادات وتخصيص البيئة حسب الاحتياجات. اللغات المدعومة: C#، C++، JavaScript، TypeScript، HTML، CSS، Python وغيرها. وتستطيع استخدام أي منهما وفقًا لما تفضل، حيث تستطيع توسيع إمكانيات VScode من خلال الامتدادات وتكوينها بشكل مخصص، في حين يوفر Visual Studio IDE بيئة تطوير متكاملة وشاملة لمشاريع البرمجة الكبيرة والمعقدة. ما زلت لم تقرر بعد؟ لماذا يجب أن يكون VS Code هو اختيارك؟ سرعة أداء عالية حيث يعتبر VS Code أسرع بكثير من Visual Studio. يمكن أن يبدأ التشغيل بشكل أسرع مقارنة بالبيئة المتكاملة للتطوير. يمكن لـ VS Code أن يفعل ما يقرب من أي شيء ترغب فيه، على الرغم من أنه تم تصميمه ليكون محرر نصوص، تستطيع تقريبًا استنساخ ما تقوم به بيئة التطوير المتكاملة. يتميز VS Code بتجربة تطوير بسيطة وسلسة، ويتمتع بواجهة بسيطة ويتجنب التعقيدات الزائدة. VS Code هو الخيار الأمثل لتطوير الويب، حيث يوفر دعمًا مع الآلاف من الأدوات والامتدادات المتاحة. لماذا يجب أن يكون Visual Studio هو اختيارك؟ يتمتع Visual Studio بميزات غنية ووظائف واسعة، في معظم الحالات، يلبي Visual Studio متطلبات معظم المطورين بشكل مثالي دون الحاجة إلى الاعتماد على مزيد من الامتدادات أو المكونات الإضافية. يسهل التعاون بين فريق العمل بسهولة باستخدام Visual Studio في عملية التطوير وتصحيح الأخطاء، حيث يمتاز ببسير عمل سلس ومحمل بجميع أنواع الميزات التي قد تحتاجها على المدى الطويل. عندما يتعلق الأمر بتحليل الأكواد الضخمة وتصحيح الأخطاء وتحسين الأداء، فإن Visual Studio هو خيار أفضل بلا شك. يتم استخدام Visual Studio بشكل شائع في صناعة تطوير الألعاب لكونه يتناسب مع المشاريع الضخمة وأيضًا مشاريع .NET و C و C# لكونه يدعمهمها بشكل إفتراضي. لكن عند العمل على مشاريع تستخدم فيها React أو Angular أو غيرهما من إطارات الواجهة الأمامية، فسيصبح VS code هو الخيار الأفضل لكونه يوفر دعم أفضل.
    1 نقطة
  34. تم تصحيح الأخطاء في الكود المعطى، ولكن هناك بعض الملاحظات والتحسينات التي يمكن إجراؤها على الكود لتحسينه ، وهذه الملاحظات والتحسينات على النحو التالي: استخدام نطاق range() بشكل صحيح: يجب تحديد النطاق الصحيح للحلقة الخارجية بناءً على عدد الصفوف التي تريد طباعة النجوم فيها. على سبيل المثال، إذا كنت تريد طباعة 5 صفوف من النجوم، يجب تعيين range(1,6) في الحلقة الخارجية. تحسين الحلقة الداخلية: يجب وضع الحلقة الداخليةبشكل صحيح، حيث يجب أن يتم طباعة النجمة في السطر الحالي بدون فراغات بينها، وبعد ذلك يجب طباعة سطر جديد باستخدام دالة print(). لذلك، يمكن تحسين الحلقة الداخلية لتصبح كالتالي: for i in range(1, 6): for j in range(1, i+1): print("*", end="") print() استخدام f-string لتحسين قابلية القراءة: يمكن استخدام f-string لتحسين قابلية القراءة وتسهيل فهم الكود. يمكن تحسين الكود بشكل التالي: for i in range(1, 6): row = "*" * i print(f"{row}") باستخدام f-string، يمكن استخدام المتغير row لتخزين النجومات المطلوبة في كل صف، ومن ثم طباعته باستخدام دالة print(). بهذه الطريقة، يمكن تحسين الكود وجعله أكثر فعالية وصحة، كما يمكن تحسين قابلية القراءة وتسهيل فهم الكود.
    1 نقطة
  35. الكود الذي كتبته لا يعمل بسبب بعض الأخطاء النحوية والترتيبية: في السطر الأول، يجب أن تنتهي الجملة بعلامة النقطة المنقوطة (:) بدلاً من الفاصلة (،). في السطر الثاني، لا توجد أي تعليمة طباعة محددة. في السطر الثالث، يجب أن تضيف الفراغات اللازمة قبل كلمة for وفي بداية السطر، وأيضًا استخدام علامة الترتيب العكسي (<) في نطاق range() لأن الحلقة تحتاج إلى القيم من 1 إلى 5 فقط (للطباعة من 1 إلى 5 نجوم). في السطر الرابع، يجب أن تزود الجملة المطبوعة (print()) بالجملة الذاتية (i) بدلاً من الفاصلة. في السطر الخامس، عليك أن تضيف الفراغات اللازمة قبل كلمة print(). وهنا الكود الصحيح لطباعة الشكل المطلوب في لغة Python: for i in range(1, 6): for j in range(i): print("*", end=" ") print() عليك بتعديل الكود كما هو موضح، وهو يقوم بتكرار الطباعة لمجموعة من النجوم بناءً على قيمة المتغير i. في الدورة الأولى ستطبع نجمة واحدة، الدورة الثانية ستطبع نجمتين، وهكذا حتى الدورة الخامسة التي ستطبع خمس نجوم. وإذا قمت بتشغيل الكود، ستحصل على النتيجة التالية: * * * * * * * * * * * * * * *
    1 نقطة
  36. بالإضافة إلى ما سبق ذكره يمكنك إضافة البايثون بشكل تلقائي إلى ال path. و لكن قبل ذلك، من فضلك تأكد بأن المشكلة هي كذلك، حيث أنه في بعض الأحيان بدلاً من كتابة python عليك كتابة py أو python3. في حال أي مما سبق لم ينجح علينا إضافته إلى ال path، يمكنك القيام بذلك بسهولة عن طريق الذهاب إلى مربع البحث في ويندوز و كتابة PATH، ثم نضغط على أول خيار يظهر. سيفتح لنا نافذة يكون فيها متغير اسمه PATH (في حال لم تظهر هذه النافذة من فضلك أرفق لقطة شاشة لما ظهر لك) نضغط عليه ثم نختار edit و نضيف في آخر خانة مسار البايثون. هناك مسار افتراضي للبايثون، يمكنك معرفته من خلال الصور السابقة التي أرفقها المدربون، طبعاً مع تبديل الاسم الظاهر باسم المستخدم لديك.
    1 نقطة
×
×
  • أضف...