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

Mustafa Suleiman

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

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

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

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

    365

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

  1. من الخطأ يظهر أنك بحاجة إلى تثبيت Microsoft Visual C++ 14.0 قم بتحميل وتثبيت التالي https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false بعد ذلك قم بتشغيل الملف ثم اختر Desktop development with C++ ثم اختر منها MSVC و Windows 11 SDK أو windows 10 حسب إصدار الويندوز لديك كالتالي: ثم اضغط على insatall وسيتم تحميل قرابة 6 جيجابايت لذلك عليك الإنتظار.
  2. من المحتمل أن يكون الخطأ الذي تواجهه بسبب عدم توافق الإصدار الأقدم من Gensim (3.8.3) مع الإصدار الأحدث من NumPy المثبت على نظامك، حيث تشير رسالة الخطأ تحديدًا إلى AttributeError: 'dict' object has no attribute '__NUMPY_SETUP__'، مما يعني أن Gensim تحاول الوصول إلى سمة غير موجودة في الإصدار الأحدث من NumPy. حاول تثبيت إصدار أقدم من NumPy متوافق مع Gensim 3.8.3 كالتالي: pip install numpy==1.19.5
  3. ستتوجه إلى Device Manager من خلال البحث عن ذلك في شريط البحث بالأسفل: بعد ذلك ستجد Display adapters اضغط على ذلك وستظهر لك كروت الشاشة لديك، اضغط على الكرت الخارجي لديك بزر الفأرة الأيمن ثم اختر disable device كالتالي:
  4. الإشتراك في الأكاديمية يتم بعملة الدولار، وحاليًا في مصر هناك تقييد على الدفع بالدولار، لذلك الحد الأقصى للدفع هو 250 دولار شهريًا، من خلال بطاقات الإئتمان Credit Cards فقط لذلك أنت بحاجة إلى فتح حساب واستخراج بطاقة Credit. والطريقة الأخرى هى الدفع من خلال وسيط مقابل نسبة، بحيث ترسل له المبلغ عن طريق فودافون كاش أو انستاباي وسيقوم هو بالإشتراك لك، وإذا أردت يمكنني إرسال حساب وسيط لك يمكنك التعامل معه لكي لا تتعرض للنصب.
  5. أعتقد أن المقصود هو جدول هو "EmailSenderReceiver" ونستخدم الأمر التالي لإنشاؤه: CREATE TABLE EmailSenderReceiver ( emailID INT NOT NULL AUTO_INCREMENT, senderID INT NOT NULL, receiverID INT NOT NULL, subject VARCHAR(255) NOT NULL, body TEXT NOT NULL, sentDate DATETIME NOT NULL, PRIMARY KEY (emailID), FOREIGN KEY (senderID) REFERENCES Users (userID), FOREIGN KEY (receiverID) REFERENCES Users (userID) ); ,الأمر سينشئ جدولًا يسمى "EmailSenderReciver" بستة أعمدة: emailID: رقم تعريف البريد الإلكتروني senderID: رقم تعريف المرسل receiverID: رقم تعريف المستلم subject: موضوع البريد الإلكتروني body: نص البريد الإلكتروني sentDate: تاريخ إرسال البريد الإلكتروني يحدد المفتاح الأساسي للجدول أن كل صف يجب أن يحتوي على قيمة فريدة لـ emailID. يحدد المفتاح الخارجي لـ senderID أن senderID يجب أن يكون قيمة موجودة في جدول UsersK ,يحدد المفتاح الخارجي لـ receiverID أن receiverID يجب أن يكون قيمة موجودة في جدول Users.
  6. الكود يعمل بشكل سليم فأنت تقوم بتمرير مصفوفة واستخدام ميثود join عليها ولا مشكلة في ذلك، يمكنك تجاهل تلك الرسالة أو تجربة كتابة الكود كالتالي: const addTwoNumbers = function(l1 = [], l2 = []) { const num1 = BigInt(l1.reverse().join('')) || 0n; const num2 = BigInt(l2.reverse().join('')) || 0n; const sum = num1 + num2; return Array.from(String(sum), Number).reverse(); }; console.log(addTwoNumbers([9, 9, 9, 9, 9, 9, 9], [9, 9, 9, 9]));
  7. يتم التحقق من رمز CSRF بشكل ضمني أثناء معالجة الطلب على الخادم، والعملية تحدث تلقائيًا ولا تتطلب تدخلك إلا إذا قررت تعطيل التحقق من رمز CSRF. والتحقق يحدث عن طريق المقارنة بين القيمة المرسلة في حقل الرمز CSRF في الطلب والقيمة المتوقعة المخزنة في جلسة المستخدم، مما يضمن أن الشخص الذي يقوم بإرسال الطلب هو نفسه الشخص الذي استلم الصفحة الأولى وحصل على الرمز CSRF. وإن لم يكن هناك تطابق بين القيمتين، سيتم رفض الطلب ويتم إثارة استثناء CSRFTokenError، وهناك استثناءات في بعض الحالات، مثل عدم وجود جلسة متصلة، ولكن عمومًا، التحقق الرمز CSRF جزءًا أساسيًا من إجراءات الأمان في Django. وتستطيع أيضًا التحكم في كيفية تنفيذ التحقق من رمز CSRF في Django من خلال تكوين إعدادات CSRF_USE_SESSIONS و CSRF_COOKIE_SECURE و CSRF_COOKIE_AGE وغيرها في ملف settings.py. ومتاح لك إعطاء أوامر معينة للخادم باستخدام middleware، مثلاً لإضافة حقل جديد إلى كل طلب أو لإعادة توجيه كل طلب إلى عنوان URL مختلف، كالتالي: from django.middleware.csrf import CsrfViewMiddleware class MyAppMiddleware(CsrfViewMiddleware): def process_request(self, request): # Do something before the request is processed return super().process_request(request) def process_response(self, request, response): # Do something after the request is processed return super().process_response(request, response) و يقوم middleware بإضافة حقل CSRF token إلى كل طلب يتطلب المصادقة. يقوم الوسيط أيضًا بإجراء بعض الإجراءات الأخرى قبل وبعد معالجة الطلب.
  8. الرسالة لديك تخبرك أنه يوجد مستودع بالفعل في ذلك الموجود وتم إعادة إنشاؤه، حيث يتم إنشاء مجلد .git بشكل مخفي، عليك الضغط على التالي لإظهاره:
  9. تستطيع استخدام أداة pyenv-win للتنقل بين إصدارات بايثون كما يحلو لك، والأمر بسيط: أولاً قم بحذف إصدار بايثون الذي لديك من خلال لوحة التحكم Control panel ثم programs and features. بعد ذلك قم بتشغيل منفذ الأوامر PowerShell كمسؤول run as administrator ثم الصق الأمر التالي: Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1" الآن قم بإعادى تشغيل منفذ الأوامر ونفذ الأمر التالي للتأكد من عملية التثبيت: pyenv --version ولتثبيت نسخة معينة من بايثون نقوم بالتالي: pyenv install 3.8.0 الآن لتفعيل تلك النسخة بشكل عالمي نقوم بالتالي: pyenv global 3.8.0 والجدير بالذكر أنه يمكنك تفعيل نسخة خاصة بمشروع معين أي يمكنك تثبيت إصدار 3.8.0 وتفعيله بشكل local محلي لمشروع معين من خلال تنفيذ الأمر التالي في مسار مجلد المشروع لديك: pyenv local 3.8.0 وستجد شرح أكثر هنا: https://github.com/pyenv-win/pyenv-win#installation
  10. نستخدم slugs بالعربي بنفس الطريقة التي تستخدم بها بالإنجليزية. 1- تعريف SlugField في موديل: from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() slug = models.SlugField(unique=True) 2- توليد الـ Slug: عندما تقوم بإنشاء مقالة جديدة، نستخدم مكتبة Django slugify لتوليد الـ slug بناءً على عنوان المقالة باللغة العربية، وعليك تثبيت المكتبة إذا لم تكن مثبتة بالفعل: pip install django-utils-six ثم، في مكان ما في مشروعك، يمكنك استخدام slugify كما يلي: from django.utils.text import slugify article = Article.objects.create(title="عنوان المقالة", content="محتوى المقالة") article.slug = slugify(article.title) article.save() 3- استخدام الـ Slug في العنوان URL: استخدم قيمة الـ slug لبناء عناوين URL كالتالي: urlpatterns = [ path('articles/<slug:article_slug>/', views.article_detail, name='article_detail'), ] وعند زيارة عنوان URL /articles/عنوان-المقالة/، سيتم توجيه المستخدم إلى عرض تفاصيل المقالة.
  11. تلك الخوارزمية ليست متاحة للجميع، وهي خاصة بشركات الإتصالات، وعامًة الخوارزميات التي يمكن الإعتماد عليها ستجدها مذكورة في التعليق بالأعلى، ومن الممكن فك تشفير أرقام كروت الشحن، ولكن ليس من السهل القيام بذلك. وتعتمد صعوبة فك تشفير أرقام الشحن على الخوارزميات المستخدمة في عملية توليدها، وإن كانت الخوارزميات المستخدمة قوية، فستكون عملية فك التشفير أكثر صعوبة. لكن المشكلة أن تلك الأرقام عشوائية ولا تتبع نمط معين، والخوارزمية تمنع تكرار نفس الرقم لكن الأرقام نفسها عشوائية، لذلك قد تصيب في بعض الأحيان في الحصول على رقم ولكن أحيانًا كثيرة لن تصيب.
  12. السؤال يتمحور حول تنفيذ استعلامات باستخدام قاعدة بيانات Access لتحقيق الوظائف المطلوبة، وتستطيع تنفيذ ذلك من خلال لغة SQL (Structured Query Language). ولكن الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ولكن يمكن إرشادك للخطوات: أ) عرض صندوق الوارد لمستخدم (أحد أعضاء المجموعة): استخدم استعلام SELECT لاسترجاع البيانات من جدول الرسائل (Emails). استخدم الشرط (WHERE) لتحديد الرسائل التي تم إرسالها إلى المستخدم المعني أو إلى مجموعاته. قم بفرز النتائج بترتيب تنازلي حسب تاريخ البريد (EmailDate). ب) عرض جميع الرسائل البريدية التي تم إرسالها بواسطة مستخدم (أحد أعضاء المجموعة) مرتبة حسب تاريخ البريد: استخدم استعلام SELECT لاسترجاع البيانات من جدول الرسائل (Emails). استخدم الشرط (WHERE) لتحديد الرسائل التي تم إرسالها من قبل المستخدم المعني. قم بفرز النتائج بترتيب تصاعدي حسب تاريخ البريد (EmailDate). ج) عرض جميع الرسائل البريدية في مجموعة مستخدم: استخدم استعلام SELECT لاسترجاع البيانات من جدول الرسائل (Emails). استخدم الشرط (WHERE) لتحديد الرسائل التي تنتمي إلى المجموعة المعنية. د) إضافة مستخدم إلى مجموعة: استخدم استعلام INSERT INTO لإدراج بيانات جديدة في جدول يرتبط بالمستخدمين والمجموعات (على سبيل المثال، جدول GroupMembers). قم بتحديد معرف المستخدم ومعرف المجموعة الذين تريد إضافة المستخدم إليهم. https://wiki.hsoub.com/SQL
  13. في البداية مجال البرمجة ليس بالسهل وإلا تعلمه الجميع، فهو بحاجة إلى بذل مجهود والصبر لفترة ليست بالقصيرة بحد أدنى 4 أشهر وتصل إلى سنة حسب ظروف كل شخص والمجال الذي يتعلمه. وعامًة كبداية أنصحك بتعلم مجال الويب وأٌقصد الواجهة الأمامية، حيث سيتعين عليك تعلم HTML, CSS, JS ثم تعلم React أو Vue.js لتصبح مطور واجهة أمامية. وإذا أردت أن تصبح مطور PHP فعليك تعلم PHP ولارافل ووردبريس، والأمر يعتمد على ما إذا كنت تريد العمل بشركة أو تريد العمل على مواقع العمل الحر، والوقت المتاح لديك أيضًا. أيضًا لديك مجال الـ DevOps حيث يوجد عليه طلب حاليًا وتعلمه ليس بالصعب ولا يتم الإشارة إلى تعلمه كثيرًا رغم أنه من أسهل المجالات للدخول في سوق العمل الخاص بالبرمجة.
  14. ما هي اللغات التي تعلمتها وتريد التطبيق عليها؟ عامًة ستجد نصائح هنا وإرشادات للتطبيق على ما تعلمته وفي حال كان لديك سؤال أخبرني:
  15. نستخدم الدالة isalpha() لفحص ما إذا كان الحرف الأول من الباسورد حرفًا أم لا على النحو التالي: def convert_first_letter_to_capital(password): if password[0].isalpha(): return password[0].upper() + password[1:] else: return password read = open(R"C:\Users\Hass\desktop\txt.txt","r") re = read.read() for i in range(len(re)): try: r = re.split('\n') r1 = r[i].split(':') password = r1[1] password = convert_first_letter_to_capital(password) print(str(r1[0]) + ":" + password,"aafs") except Exception as ex: print(ex) continue وإليك مثال آخر باستخدام الدالة replace(): def convert_first_letter_to_capital(password): if password[0].isalpha(): return password.replace(password[0], password[0].upper()) else: return password read = open(R"C:\Users\Hass\desktop\txt.txt","r") re = read.read() for i in range(len(re)): try: r = re.split('\n') r1 = r[i].split(':') password = r1[1] password = convert_first_letter_to_capital(password) print(str(r1[0]) + ":" + password,"aafs") except Exception as ex: print(ex) continue
  16. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر ولكن يمكن إرشادك للخطوات: ستجد في موسوعة حسوب شرح للخورازميات المذكورة: https://wiki.hsoub.com/Algorithms ستجد في الرابط السابق الخاص بموسوعة حسوب أمثلة عملية من خلال لغات مختلفة يمكنك تفقدها وفهم الفكرة وكتابتها باللغة التي تريدها.
  17. في تلك الحالة من الأفضل تعلم GIT وGitHub من خلال التالي:
  18. هل قمت بعمل أي commits؟ أي قمت بالتالي: git add . ثم git commit -m "initial commit" ثم git push origin main وفي حال استمرار المشكلة أرجو تنفيذ الأمر التالي ثم إرفاق صورة: git branch -b
  19. أولاً SPSS هو برنامج إحصائي يستخدم لتحليل البيانات وإجراء التجارب الإحصائية، لكنك لم توضح ما الذي ترغب بفعله أو لديك مشكلة به، وعامًة إليك بعض النصائح الأساسية حول كيفية استخدام SPSS: اعتد على واجهة المستخدم في SPSS من أجل الوصول السريع إلى الأوامر والأدوات المختلفة. قم بإدخال البيانات في SPSS، من خلال استيراد البيانات من ملفات Excel أو نصية، أو إدخال البيانات يدويًا. اختر النوع المناسب من التحليل الإحصائي لبياناتك، بإجراء تحليلات مثل التحليل الوصفي، التحليل العاملي، واختبارات التباين (ANOVA)، والعديد من التحليلات الأخرى. استخدم أدوات SPSS لإنشاء الرسوم البيانية اللازمة لتصوير البيانات بشكل فعال. بمجرد الحصول على النتائج، تعلم كيفية تفسيرها بشكل صحيح، وSPSS يولد العديد من الإخراجات، ويجب عليك فهمها لاتخاذ القرارات الصحيحة.
  20. بإمكانك تعطيل ذلك التحذير مؤقتًا باستخدام تعليق eslint-disable-next-line فوق السطر الذي يولد التحذير، كالتالي: useEffect(() => { // eslint-disable-next-line react-hooks/exhaustive-deps // الكود الخاص بك هنا }, []); أو إنشاء ملف باسم .eslintrc في مجلد المشروع ثم وضع التالي به: { "plugins": ["react"], "rules": { "react-hooks/exhaustive-deps": [ "error", { "additionalHooks": ["useEffect"], "dependency-array-exclusions": ["[]"] } ] } } حيث تستخدم خاصية dependency-array-exclusions في ESLint لتستثني بعض المصفوفات من التحقق، وتستطيع استخدام تلك الخاصية لاستثناء المصفوفة الفارغة من التحقق، بحيث لا يصدر ESLint أي تنبيهات. وإن لم يعمل حاول تجربة الإعداد التالي: { "rules": { "react-hooks/exhaustive-deps": "off" } }
  21. يجب تحويل الإدخالات (name و number و choose) إلى أنواع بيانات مناسبة للمقارنة، وذلك باستخدام int() لتحويل الإدخالات إلى أعداد صحيحة. وضع الإدخالات داخل الحلقة لتكرار تنفيذ البرنامج. استخدام int() لتحويل choose إلى رقم صحيح للمقارنة في الشروط. ليصبح الكود كالتالي: entry_member = [["Amal", 1111111111], ["Mohammed", 2222222222], ["Khadijah", 3333333333], ["Abdullah", 4444444444], ["Rawan", 5555555555], ["Faisal", 6666666666], ["Layla", 7777777777] ] while True: print("Welcome to our phonebook !!! \n" "1 = To Add an entry\n" "2 = To Delete an entry\n" "3 = To Edit an entry\n" "4 = To View all entries") choose = int(input("Enter your choice: ")) if choose == 1: name = input("Enter a name: ") number = input("Enter a phone number: ") if len(number) != 10: print('Invalid phone number, please enter a 10 digit number') else: entry_member.append([name, number]) elif choose == 2: print("What is the entry you want to delete ?") name = input("Enter a name: ") number = input("Enter a phone number: ") for item in entry_member: if item[0] == name and item[1] == number: entry_member.remove(item) elif choose == 3: print("What is the entry you want to edit ?") name = input("Enter a name: ") number = input("Enter a phone number: ") for item in entry_member: if item[0] == name and item[1] == number: entry_member[entry_member.index(item)] = [name, number] elif choose == 4: for item in entry_member: print(f"Name: {item[0]}, Phone: {item[1]}")
  22. نعم تلك تصاميم فقط لتقوم بتحويلها إلى مشروع أي استلهام فكرة التطبيق والتصميم، وإذا أردت رؤية مشروع كامل يمكنك البحث في GitHub، أو رؤية شروحات على يوتيوب لمشاريع كاملة.
  23. لديك جامعة هارفارد تقدم العديد من الدورات عبر منصة edX حيث تقدم مجموعة متنوعة من البرامج في البرمجة عبر الإنترنت، بما في ذلك: Professional Certificate in Computer Science Professional Certificate in Web Development Professional Certificate in Artificial Intelligence معهد ماساتشوستس للتكنولوجيا MIT يقدم أيضًا مجموعة من الدورات على edX و Coursera: Professional Certificate in Computer Science Professional Certificate in Web Development Professional Certificate in Artificial Intelligence أيضًا الجامعات التالية: جامعة ستانفورد تقدم CS106A: Introduction to Computer Science. جامعة أكسفورد لديها Introduction to Computer Science. جامعة كامبريدج توفر برنامجًا في البرمجة عبر الإنترنت يسمى Introduction to Computer Science. بالإضافة إلى تلك الجامعات، هناك العديد من الجامعات الأخرى: University of California, Berkeley University of California, Los Angeles Cornell University Yale University University of Pennsylvania University of Chicago University of Michigan University of Texas at Austin أي تفقد موقعي Coursera و edX وفي حال لم تجد دورة من الجامعة التي تريدها تفقد موقع الجامعة الرسمي واسم الدورات المذكورة.
  24. شكراً جزيلاً على كلماتك الطيبة، ونبارك لك على تجربتك الإيجابية مع حسوب في تصميم واجهات المستخدم! حالياً، لا يوجد دورة خاصة بـ C# و ASP.net. أكاديمية حسوب تسعى دائماً لتحسين وتطوير محتواها التعليمي، وسنأخذ اقتراحك بعين الاعتبار لتوفير المزيد من الدورات في المستقبل، إذا كنت بحاجة إلى أي مساعدة إضافية أو كانت لديك أي أسئلة، فلا تتردد في السؤال. يمكنك متابعة الدروس والمقالات الخاص بلغة C# في الأكاديمية يوجد أيضًا دروس ومقالات لإطار ASP.NET أيضًا متابعة صفحة آخر التحديثات لمعرفة الجديد في الأكاديمية.
  25. const و final في حقول الفئة، نستخدم لتحديد أن القيمة يجب أن تكون ثابتة أثناء ترجمة البرنامج، أي يجب على القيمة التي تم تعيينها للحقل أن تكون ثابتة أثناء وقت الترجمة، ونستخدم final لتحديد أن القيمة يمكن تعيينها فقط مرة واحدة ولا يمكن تغييرها بعد ذلك، ويمكن تعيين قيمة final في وقت التشغيل (runtime) أو أثناء الترجمة. class Example { static const int myConst = 42; final String myFinalField; Example(this.myFinalField); } ونستخدم static لتحديد أن الحقل ينتمي إلى الفئة نفسها بدلاً من أن يكون ممتلكًا لكل نسخة (instance) من الفئة، ولا يمكن الوصول إلى الحقل الثابت إلا من خلال الفئة نفسها، بمعنى أنه: تنتمي إلى الفئة نفسها بدلاً من كائن معين، وتكون مشتركة بين جميع الكائنات التي تنتمي إلى الفئة. يمكن الوصول إلى الحقول static من أي مكان في التطبيق (على مستوى الفئة). لا يتم الوصول إليها باستخدام كائن محدد من الفئة، بل يمكن الوصول إليها مباشرة باستخدام اسم الفئة. class MyApp { static final String contextKey = "myContextKey"; } مما يعني أن الحقول final و static هي أنواع خاصة من الحقول التي لا يمكن تغييرها بعد إنشائها، والفرق بينهما هو أنَّ الحقول final يمكن الوصول إليها فقط من داخل الكائن الذي تم إنشاؤها فيه، بينما يمكن الوصول إلى الحقول static من أي مكان في التطبيق. أما مصطلح "السياق" فهو طريقة لتخزين البيانات والمتغيرات التي يمكن الوصول إليها من أي مكان في التطبيقاتـ ويستخدم السياق بشكل شائع لتخزين بيانات التطبيق المشتركة، مثل حالة التطبيق أو إعداداته. وبخصوص super فهى تستخدم للإشارة إلى الفئة الأم (الفئة التي يتم تمديد أو توسيع الفئة الحالية منها)، والخاصية super.key هي خاصية خاصة بالمكون المخصص، وتُرجع تلك الخاصية مفتاح المكون الأب للمكون الحالي، ونستخدمها لتعيين مفتاح المكون الحالي إلى مفتاح المكون الأب. class MyComponent extends StatelessWidget { @override Key get key => super.key ?? UniqueKey(); }
×
×
  • أضف...