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

Mustafa Suleiman

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

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

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

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

    303

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

  1. على إعتبار أنك تريد أن تصبح مطور واجهات أمامية Fron-End developer، فبشكل بسيط جدًا أنت بحاجة أولاً إلى دراسة اللغات الأساسية لتطوير الويب وهي HTML, CSS, JS وذلك ما يتم دراسته في دورة تطوير واجهات المستخدم. أيضًا ستجد شرح لمكتبات لتسهيل عملية التطوير مثل Bootstrap الخاصة بإنشاء واجهات مستخدم بشكل أسرع عن طريق كلاسات CSS، أيضًا مكتبة jQuery الخاصة بالتلاعب للواجهة وهي قائمة على جافاسكريبت حيث توفر عليك كتابة الكثير من أكواد جافاسكريبت عن طريق استخدام دوال تقوم بوظائف معينة مباشرًة. لكن لا تعتمد على أي مكتبة قبل أن تشعر بأريحية في استخدام اللغات الأساسية وهم HTML, CSS, JS والتطبيق على ما تعلمته من خلال مشاريع حيث تستطيع البحث على اليوتيوب عن مشاريع HTML, CSS ثم ابحث عن مشاريع "جافاسكريبت للمبتدئين" وقم بالتطبيق ولا تقلق في حال واجهت أمور جديدة تعلمها وتجاهل الخوف من رؤية شيء جديد. الأمر يصبح أسهل مع المرور الوقت تذكر ذلك. بعد ما سبق، سيتعين عليك تعلم إطار أو مكتبة للواجهة الأمامية مثل React وVue.js أو Angular، ولكن لا تشغل بالك بذلك حاليًا ركز على ما سبق أولاً. وستجد تفصيل هنا:
  2. أمامك خيارين الأول هو برنامج Recuva وهو برنامج مجاني. والثاني هو برنامج DMDE وهو ليس مجاني تمامًا حيث يسمح لك باسترجاع 4000 ملف لكل عملية بحث أي تستطيع تكرار العملية، وذلك البرنامج هو أفضل من Recuva لكنه ليس مجاني. تحذير: عند استرجاع الملفات عليك حفظها في مكان آخر غير المكان الذي تم حذفها منه حتى لا يتم الكتابة على الملفات المحذوفة وفقدانها للأبد، فعند نقل ملفات على الهارديسك يتم استبدال الملفات المحذوفة بالملفات الجديدة.
  3. عليك أن تكون حذرًا عند استخدام [0]، خاصة إذا كانت الصورة قد تحتوي على أكثر من وجه، ففي حالة وجود أكثر من وجه في الصورة، [0] سيعيد موقع الوجه الأول فقط، أما إن كنت ترغب في رسم المربعات حول جميع الوجوه المكتشفة، فيجب عليك تعديل الكود ليتناسب مع ذلك. للتأكد، يمكنك طباعة قائمة david_locations لرؤية عدد الوجوه المكتشفة ومواقعها: print(david_locations) وفي حال تريد رسم المربعات حول جميع الوجوه، نقوم بتعديل الكود كما يلي: import face_recognition from PIL import Image, ImageDraw david = face_recognition.load_image_file("David.png") david_locations = face_recognition.face_locations(david) img = Image.fromarray(david) draw = ImageDraw.Draw(img) for location in david_locations: left, top, right, bottom = location draw.rectangle(((left, top), (right, bottom)), outline='green', width=5) img.show() حيث حلقة (for) للتحقق من جميع مواقع الوجوه ورسم المربعات حولها.
  4. أمامك خيارين إما من خلال إطار Flask وهو مناسب للمشاريع الصغيرة أو إطار Django وهو مناسب لشاريع الويب المتوسطة والكبيرة من خلال بايثون. وستجد تفصيل هنا:
  5. أنت تقصد مشروع تطوير متجر إلكتروني باستخدام جانغو Django في دورة بايثون؟ أولاً أرجو التعليق أسفل الدرس لمساعدتك بشكل أفضل. وعليك تحميل الملفات الإبتدائية من درس المقدمة حيث ستجد رابط باسم "قالب الواجهة الأمامية" هنا: أيضًا يجب تشغيل الخادم وليس فتح الملف مباشرًة بل نقوم بتشغيل الخادم من خلال الأمر: python .\manage.py runserver وسيظهر لك رابط، اضغط على CTRL ثم اضغط على الرابط وسيتم فتحه في المتصفح.
  6. المقصود روابط المشاريع على GitHub أي المستودع الخاص بكل مشروع.
  7. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ولكن يمكن مساعدتك بإرشادك لخطوات الحل، وإن وفرت الكود سيتم مساعدتك في حل المشكلة. قم بتحديد متغير لتخزين عدد الأسئلة. اطلب من المستخدم إدخال عدد الأسئلة. استخدم حلقة لجمع البيانات لكل سؤال. قم بتعريف الدوال GenerateRandomString و CalculateCorrectAnswer لتوليد السلسلة المولدة وحساب الإجابة الصحيحة. استخدم حلقة لتقييم أداء المستخدم. قم بتعريف الدالة EvaluateAnswer للتحقق من صحة الجواب وتحسب النتيجة. ثم عرض النتائج الإحصائية.
  8. دورة علوم الحاسوب هي لتعلم أساسيات البرمجة وعلوم الحاسوب، وليس لتعلم مجال محدد للعمل به، أي تؤهلك لتعلم المجالات البرمجية بشكل أسهل وعلى دراية ووعي وسيصبح مستواك أفضل من أي شخص ليس لديه تلك الأساسيات. وستجد نقاش مفصل هنا:
  9. لديك مشكلة في استدعاء الدالة mysqli_connect() في السطر 9 من ملف db_conn.php في مشروعك، وتلك الدالة تستخدم لإنشاء اتصال بقاعدة بيانات MySQL باستخدام امتداد MySQLi. تأكد من أن امتداد MySQLi مفعل في تكوين PHP لديك، عن طريق فتح ملف php.ini والتأكد من أن السطر التالي غير معلق (أزل الفاصلة المنقوطة إذا كانت موجودة): extension=mysqli بعد إجراء التغييرات، أعد تشغيل خادم الويب لتطبيق التكوين. أيضًا عليك كتابة بيانات الاتصال بقاعدة البيانات (المضيف، اسم المستخدم، كلمة المرور، إلخ) التي قدمتها في دالة mysqli_connect() بشكل صحيح كالتالي: $conn = mysqli_connect("localhost", "اسم_المستخدم", "كلمة_المرور", "اسم_قاعدة_البيانات"); إن استمرت المشكلة جرب الاتصال بقاعدة البيانات باستخدام سكريبت PHP بسيط يحتوي على كود الاتصال فقط، وذلك يساعد في عزل المشكلة والتحقق مما إذا كانت المشكلة تتعلق بالكود نفسه أم بتكوين الخادم. <?php $conn = mysqli_connect("localhost", "اسم_المستخدم", "كلمة_المرور", "اسم_قاعدة_البيانات"); if (!$conn) { die("فشل الاتصال: " . mysqli_connect_error()); } echo "تم الاتصال بنجاح"; mysqli_close($conn); ?>
  10. بخصوص دورة تطوير واجهة المستخدم، في حال كنت مطور واجهة أمامية فهي دورة أساسية لك، حيث أنك كمطور واجهات أمامية مطلوب منك أن تكون مُلم باللغات الأساسية للويب وهي HTML, CSS, JS وأن تكون متعمق بها وقادر على إنشاء مشاريع بواسطتها. أيضًا المكتبات الخاصة بالواجهة الأمامية مثل Bootstrap وjQuery، وكل ذلك ستتعلمه في دورة تطوير واجهة المستخدم. لكن هل ذلك يكفي للعمل على منصات العمل الحر أو التوظيف في الشركة؟ ستحتاج إلى قراءة التالي لتفهم الأمر بشكل مفصل:
  11. بالطبع يمكنك ذلك، وأنت حاليًا في سن صغير مثالي وهو سن 11 عام الذي يعتبر السن المناسب لتعلم البرمجة في حال أردت ذلك فقبل ذلك الأمر معقد لتفهمه . والحد الأدنى لتعلم البرمجة يختلف من شخص لآخر، وذلك يعتمد على مدى الاستعداد والقدرة على التعلم والتفاعل مع المواد التعليمية، ولكن الحد الأدنى الموصى به للبدء في تعلم البرمجة هو حوالي 8-10 سنوات، ويمكن للأطفال في هذا العمر أن يتعلموا البرمجة باستخدام لغات البرمجة المناسبة لهذا العمر مثل Scratch و Blockly وغيرها. ولا تشغل بالك بموضوع الوظيفة أو العمل، بل ركز اهتمامك على تنمية مهاراتك والاستمتاع بتعلم البرمجة فأنت أمامك الوقت لكي تتعلم ما تريد وتجربة أي شيء، وإن التزمت حقًا ستصل لمستوى ممتاز جدًا في مرحلة مبكرة وستبدأ حياتك العملية مبكرًا أيضًا. وستجد هنا نقاش مفصل:
  12. أرفق الملفات التي تعمل عليها لإختبار الكود عليها.
  13. حاول استبدال محتويات ورقة العمل الحالية من خلال: with pd.ExcelWriter("AAA.xlsx", mode='a') as writer: Table.to_excel(writer, sheet_name='Sheet1', index=False, if_sheet_exists='replace') أو الإَضافة إلى نهاية ورقة العمل الحالية من خلال: with pd.ExcelWriter("AAA.xlsx", mode='a') as writer: Table.to_excel(writer, sheet_name='Sheet1', startrow=writer.sheets['Sheet1'].max_row, index=False)
  14. من الأفضل إرفاق مجلد المشروع لكي يتم مساعدتك فحاليًا الأمر مبهم ومن الصعب تحديد سبب المشكلة بدون تفقد كامل كود المشروع.
  15. لكي تتمكن من الوصول إلى المتغير Table خارج الدالة، عليك إرجاعه من الدالة كالتالي: import pandas as pd def Subject_One(cl1, cl2, cl3, cl4): df = pd.read_excel("AAA.xlsx", header=None) selected_column_1 = df.iloc[8::2, [0, 1, 2, cl1, cl2, cl3, cl4]] selected_column_1.reset_index(drop=True, inplace=True) selected_column_2 = df.iloc[9::2, [2, cl1, cl2, cl3, cl4]] selected_column_2.reset_index(drop=True, inplace=True) A = pd.DataFrame(selected_column_1) B = pd.DataFrame(selected_column_2) Table = pd.concat([A, B], axis=1) repeated_values1 = [df.iloc[6, 3]] * len(Table) repeated_values2 = [df.iloc[3, 4]] * len(Table) Table['الإسم'] = repeated_values1 Table['الرقم'] = repeated_values2 Table.fillna(0, inplace=True) Table["مرحلة الأولى"] = Table.iloc[:, [5, 6]].max(axis=1) Table["مرحلة ثانية"] = Table.iloc[:, [10, 11]].max(axis=1).apply(lambda x: 50 if x > 50 else x) Table['القيمة'] = Table.apply(lambda row: row.iloc[14] if row.iloc[15] == 0 else row.iloc[15] if 0 < row.iloc[15] <= 50 else None, axis=1) return Table # استدعاء الدالة وحفظ النتائج في متغير result1 = Subject_One(3, 4, 5, 6) result2 = Subject_One(7, 8, 9, 10) # دمج النتائج final_result = pd.concat([result1, result2]) # حفظ النتائج في نفس الملف final_result.to_excel("AAA.xlsx", index=False) أو يمكن كتابة الكود كالتالي أيضًا: def Subject_One(cl1,cl2,cl3,cl4): df = pd.read_excel("AAA.xlsx",header=None) selected_column_1 = df.iloc[8::2, [0,1,2,cl1,cl2,cl3,cl4]] selected_column_1.reset_index(drop=True, inplace=True) selected_column_2 = df.iloc[9::2, [2,cl1,cl2,cl3,cl4]] selected_column_2.reset_index(drop=True, inplace=True) A = pd.DataFrame(selected_column_1) B = pd.DataFrame(selected_column_2) Table=pd.concat([A,B],axis=1) repeated_values1 = [] repeated_values2 = [] for i in range(len(Table)): repeated_values1.append(df.iloc[6,3]) repeated_values2.append(df.iloc[3,4]) Table['الإسم'] = repeated_values1 Table['الرقم'] = repeated_values2 Table.fillna(0, inplace=True) Table["مرحلة الأولى"] = Table.iloc[:, [5,6]].max(axis=1) Table["مرحلة ثانية"] = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x) Table['القيمة'] = Table.apply(lambda row: row.iloc[14] if row.iloc[15] == 0 else row.iloc[15] if 0 < row.iloc[15] <= 50 else None, axis=1) # Write the data to the file with pd.ExcelWriter("AAA.xlsx", mode='a') as writer: Table.to_excel(writer, sheet_name='Sheet1', index=False) Subject_One(3,4,5,6) Subject_One(7,8,9,10)
  16. يتوفر الخيار append=True في الدالة to_excel()، وذلك هذا سيؤدي إلى إضافة البيانات الجديدة إلى نهاية الملف الموجود، دون استبدال البيانات الموجودة. كالتالي: Table2.to_excel("123456.xlsx", index=False, append=True) والنتيجة هي إضافة البيانات في Table2 إلى نهاية ملف 123456.xlsx.
  17. طريقة الاستدعاء الذاتي هي طريقة لجعل الدالة تستدعي نفسها بشكل متكرر حتى تتحقق حالة معينة/ ونستخدم يمكن تلك الطريقة لإنشاء خوارزميات تكرارية، مثل خوارزمية فيبوناتشي. def fibonacci(n): if n == 0 or n == 1: return n return fibonacci(n - 1) + fibonacci(n - 2) print(fibonacci(10)) أو دالة لحساب عاملي العدد المدخل لها: def factorial(n): if n == 0 or n == 1: return 1 else: return n * factorial(n-1) result = factorial(5) print("عاملين الثنائي لعدد 5 هو:", result) أما بخصوص الدوال المتداخلة فهي دوال يتم تعريفها داخل دوال أخرى، ونستخدم تلك الدوال لتنظيم الكود أو لإنشاء دوال أكثر تعقيدًا. مثل جمع عددين بطريقة متداخلة: def add(x): def add_inner(y): return x + y return add_inner add_5 = add(5) result = add_5(3) print("جمع 5 و 3 هو:", result) أو دالة متداخلة لحساب المربع والتكعيب: def power(x): def square(y): return y ** 2 def cube(y): return y ** 3 return square(x), cube(x) result_square, result_cube = power(4) print("المربع هو:", result_square) print("التكعيب هو:", result_cube) أو حساب مساحة الدائرة: def calculate_area(radius): def area_of_circle(radius): return 3.14 * radius * radius return area_of_circle(radius) print(calculate_area(5)) وكما ذكرت نستخدم الدوال المتداخلة لإنشاء دوال أكثر تعقيدًا، ولكن يمكن أن تجعل الكود أكثر صعوبة في القراءة والفهم، ويجب استخدام الدوال المتداخلة فقط عندما يكون ذلك ضروريًا.
  18. ما الذي يوجد في ملفي router وroute لديك؟ من الأفضل إرفاق مجلد المشروع لتفقد المشكلة.
  19. من الأفضل حذف نسخة Node.js القديمة تمامًا uninstall ثم تثبيت النسخة الجديدة والتي يمكنك تحميلها من هنا: https://nodejs.org/en ودائمًا اختر النسخة المستقرة وهي LTS وهي إصدار 20 حاليًا. لكن هناك طريقة أفضل والتي يستخدمها مطوري Node.js لكن البعض قد يجدها معقدة قليلاً، وهي استخدام مدير إصدارات وهو NVM بمعنى أنه يمكنك تحميل أكثر من إصدار لـ Node والتنقل بينهم بكل سهولة باستخدام أمر بسيط. والأمر يتم كالتالي حذف أي إصدار Node.js لديك على حاسوبك من لوحة التحكم Control panel ثم تحميل وتثبيت NVM من: https://github.com/coreybutler/nvm-windows/releases/download/1.1.12/nvm-setup.exe وبعد التثبيت قم بتنفيذ الأمر التالي في منفذ الأوامر: nvm install lts وذلك من أجل تثبيت أحدث إصدار مستقر متوفر. أو يمكنك تحميل إصدار معين من خلال: nvm install 18 ثم قم بعرض الإصدارات الذي تم تثبيتها من خلال: nvm ls ولتفعيل إصدار معين اكتب رقمه فقط كالتالي: nvm use 18 والآن أنت على إصدار 18 وتستطيع التأكد من خلال: node --version وإذا أردت التنقل إلى أي إصدار اكتب nvm use ورقم الإصدار بجانبه.
  20. من الصعب تحديد المشكلة، لكن: هل يتم إرسال بيانات المستخدم إلى صفحة البروفايل بشكل صحيح؟ هل يتم تخزين بيانات المستخدم بشكل صحيح في قاعدة البيانات؟ تأكدي من ذلك من خلال استعلام قاعدة البيانات للحصول على بيانات المستخدم. هل يتم عرض بيانات المستخدم بشكل صحيح في صفحة البروفايل؟ عليك تفقد البيانات لمعرفة أين تكمن المشكلة.
  21. تفقد الدورة من خلال تبويب دوراتي كالتالي: وستجد شرح شامل هنا: كيف أصل للدورات التي اشتركت بها في حال لم تجدها أرجو التواصل مع مركز المساعدة وشرح المشكلة.
  22. الأمر يعتمد على إتجاه الشرح في الكتاب، وستحتاج إلى معرفة بلغة جافا قبل قراءته حيث أنه مذكور التالي: "ينبغي أن تكون على معرفة جيدة بلغة البرمجة جافا قبل أن تبدأ بقراءة هذا الكتاب. وبالتحديد، لابُدّ أن تَعرِف كيف تُعرِّف صنفًا class جديدًا يمتدّ extend أو يرث من صنف آخر موجود، إلى جانب إمكانية تعريف صنف يُنفِّذ واجهة interface. إذا لم تكن لديك تلك المعرفة، فيُمكِنك البدء بسلسلة مدخل إلى جافا فهي مترجمة عن كتاب شهير يشرح لغة البرمجة جافا." مدخل إلى جافا
  23. أولاً هنا مشكلة في تبعية مكتبة androidx.activity:activity:1.8.0 في مشروعك، وهناك سببان محتملان لظهور تلك الرسالة: نسخة compileSdk في مشروعك حاليًا مضبوطة على 33، بينما تتطلب مكتبة androidx.activity:activity:1.8.0 استخدام نسخة 34 أو أعلى من واجهة برمجة تطبيقات أندرويد. من الممكن أن تكون قد استخدمت نسخة خاطئة من المكتبة غير متوافقة مع نسخة compileSdk الحالية. ولذا عليك القيام بتحديث compileSdk: افتح ملف build.gradle.kts الخاص بوحدة التطبيق (app module). ابحث عن قسم android داخل الملف. غيّر قيمة الخاصية compileSdk إلى 34 على الأقل. تأكد من حفظ الملف وإعادة مزامنة بالضغط على Gradle (Sync Now).
  24. المحاكي هو لنظام ويندوز وتستطيع تجربة تشغيل البرنامج عليه، لكن لا تنتظر من محاكي أن يقدم لك أداء مماثل للويندوز كما أن بعض البرامج أو الألعاب قد لا تعمل عليه.
×
×
  • أضف...