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

Mustafa Suleiman

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

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

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

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

    340

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

  1. قم بطباعة post.image وتفقد هل مسار الصورة صحيح؟ أيضًا جرب التالي: <img src="https://placehold.co/600x400" /> في حال لم تظهر قم بإعادة التحديث وإن ظهرت فتأكد من كتابة مسار الصورة بشكل صحيح لديك، وإن لم تظهر أرفق مجلد المشروع.
  2. يوجد التالي: https://www.w3schools.com/js/exercise_js.asp?filename=exercise_js_variables1 https://www.jschallenger.com/ https://nouvil.net/javascript-quiz-ar/ أيضًا موقع Codewars فالأسئلة هناك أبسط من موقع leetcode، وتستطيع البحث على اليوتيوب عن "حل أسئلة Codewars جافاسكريبت"، أيضًا يوجد موقع coderhub.sa. وستجد تفصيل أكثر هنا: ومن الأفضل في البداية البحث عن مشاريع جافاسكريبت للمبتدئين على اليوتيوب ثم تنفيذها، ثم تستطيع بعد ذلك حل المشاكل البرمجية على تلك المواقع.
  3. لا يوجد مشكلة في تلك الحالة، فالإصدارات الغير رئيسية لا تؤثر وتتوافق مع الإصدارات التي قبلها فهى تضيف ميزة جديدة ليس أكثر، لكن أحيانًا الإصدار الفرعي MINOR يسبب مشكلة.
  4. عليك معرفة ما هو الإدارة الدلالية لنُسخ البرمجيات أو Semantic Versioning أو semver وبشكل بسيط: حيث تُمثل الإصدارات البرمجية بالشكل 0.0.0 ولنفترض أن لدينا إصدار 1.3.4 من البرنامج، فيعني الرقم: 4 إصدار رابع تصحيحي أي زيادة في الإصدار التصحيحي (PATCH) (إصلاحات الأخطاء متوافقة)، بمعنى أننا قمنا بإصلاح الأخطاء أو التعامل مع مشكلات دون إضافة ميزات جديدة، ويجب زيادة الإصدار التصحيحي ليصبح الإصدار 1.3.5 بينما رقم 3 يعني الإصدار الفرعي (MINOR) (إضافة ميزات جديدة متوافقة)، ونقوم بزيادته في حال قمنا بإضافة ميزات جديدة إلى المكتبة دون التأثير على الوظائف الحالية، ليصبح الإصدار 1.4.5 نأتي لرقم 1 ويعني الإصدار الرئيسي للبرنامج، أي هناك تغييرات رئيسية تؤثر على التوافق مع الشيفرة الحالية، مثل إزالة وظيفة مستخدمة على نطاق واسع أو تغيير واجهة البرمجة الرئيسية، وبالتالي يجب زيادة الإصدار الرئيسي ليصبح 2.4.5. ونتبع ذلك النهج مع كل إضافة للبرنامج، وبالطبع يوجد لواحق نضيفها للإصدارات مثل beta وalpha وستجد شرح مفصل هنا: https://semver.org/lang/ar/ وكمثال في لغة بايثون إصدار بايثون 3.12.1 صدر في 24 نوفمبر 2023، وهو إصدار ثانوي لإصدار 3.12.0. يتضمن إصدار 3.12.1 العديد من الإصلاحات للأخطاء، بما في ذلك: إصلاح خطأ في وحدة codeop يؤدي إلى تحديد Incomplete f-strings بشكل غير صحيح. إصلاح خطأ في وحدة parser يؤدي إلى محاولة الكتابة فوق أخطاء موجودة وتسبب في حدوث عطل. إصلاح عطل في وحدة compiler عند استخدام عبارة with مع 19 مديري سياق. استخدام حالة AST-parser لكل منها بدلاً من حالة عالمية لتتبع عمق الاستدعاء داخل محلل AST لمنع حالة السباق المحتملة بسبب التحليل المتزامن. حساب نهايات الأعمدة بشكل صحيح للرموز متعددة الأسطر في وحدة tokenize. إصلاح خطأ SystemError في عبارة import وفي طرق reduce() لأنواع بنية اللغة المضمنة عندما لا يكون builtins عبارة عن dict. إصلاح UnicodeEncodeError عند قراءة رسالة تحتوي على حرف surrogate Unicode بواسطة طريقة get_payload() من وحدة email.message. في وحدة asyncio.StreamReaderProtocol.connection_made()، يوجد رد اتصال يقوم بتسجيل خطأ إذا فشل المهمة التي تُغلف رد الاتصال "المتصل". سيفشل هذا رد الاتصال نفسه إذا تم إلغاء المهمة. منع ذلك عن طريق التحقق مما إذا كانت المهمة قد تم إلغاؤها أولاً. إذا كان الأمر كذلك، أغلق النقل ولكن لا تسجل خطأ. إصلاح تحذيرات الموارد لـ unclosed files في واجهات سطر الأوامر pickle و pickletools. التأكد من أن webbrowser.MacOSXOSAScript يرسل حدث تدقيق webbrowser.open. عندما يظهر مرجع ثانٍ إلى سلسلة في الإدخال إلى pickle، ويكون تنفيذ Python قيد الاستخدام، فإننا نضمن أن يتم حفظ نسخة واحدة فقط ونسخ واحدة فقط. كل 6 أشهر عليك تحديث معلوماتك، وبخصوص بايثون، ستجد شرح للتحديثات هنا: https://www.python.org/blogs/ وعليك الاشتراك في جروب مهتم ببايثون سواء على فيسبوك أو لينكدان إو تويتر (X) أو الإشتراك في نشرة بريدية خاصة ببايثون. أو يمكنك البحث على اليوتيوب مع كل إصدار جديد عن What's New in Python 3.12 مثلاً واستبدال 3.12 برقم الإصدار مثل 3.11 وشاهد الفيديو وسيوضح لك ما الجديد، وإن وجدت أنه مفيد لك تعلمه ولكن بعض المكتبات لا تتوافق مع الإصدارات الجديدة وتحتاج بعض الوقت للتحديث، لذا قد يتعين عليك استخدام إصدار أقدم من بايثون بسبب الحاجة إلى استخدام مكتبة معينة.
  5. حاول استخدام متصفح آخر، لتفقد أين تكمن المشكلة، فإن لم تحدث معك فذلك يعني أن المشكلة بالمتصفح الحالي لديك حاول تحديثه أو تفقد هل هناك إضافة تسبب ذلك. وإن استمرت أرجو التواصل مع مركز المساعدة وشرح المشكلة ولو أمكن توفير صورة للمشكلة وسيتم مساعدتك بخصوص حسابك. أيضًا ربما تكون المشكلة بسبب بطيء في الإنترنت لديك حاول إعادة تشغيل الراوتر وتغيير الـ DNS لجوجل مثلاً.
  6. قم بإنشاء مجلد المشروع ثم افتح منفذ الأوامر في مسار ذلك المجلد وأسهل طريقة هي كتابة cmd في شريط العنوان ثم الضغط على Enter: بعد ذلك عليك إنشاء بية إفتراضية لمشروعك لتثبيت الحزم بها كالتالي: python -m venv venv ثم تفعيلها: venv\Scripts\activate ثم تثبيت flask: pip install Flask ثم عليك كتابة الأكواد الآن واستخدام مكتبة flask وستجد شرح هنا:
  7. أرجو إرفاق مجلد المشروع لتفقد المشكلة.
  8. قم بطباعة الرد هل res.data يوجد به token؟ أيضًا عليك طباعة e في catch لكي تتمكن من معرفة الخطأ في حال حدوثه.
  9. المشكلة تكمن في الشرط الأخير المتعلق بالدرجة F، فالجملة else لا تستقبل أي شرط، عليك تحويلها إلى جملة elif. أيضًا عليك تحويل القيمة المدخلة من المستخدم من نص إلى رقم من خلال دالة int، ليصبح الكود: user = int(input('Enter your grade, please:')) if user <= 100 and user >= 90: print("Your grade is A") elif user <= 89 and user >= 80: print("Your grade is B") elif user <= 79 and user >= 70: print("Your grade is C") elif user <= 69 and user >= 60: print("Your grade is D") elif user <= 59 and user >= 50: print("Your grade is E") elif user <= 49 and user >= 40: print("Your grade is F") else: print("Invalid grade input")
  10. حاول استخدام الكود الخاص بك هنا وسيعمل يبدوا أن المشكلة لديك في المحرر أو الـ compiler: https://cpp.sh/
  11. الكود سليم ولا يوجد به مشكلة، ما الخطأ الذي يظهر لك في المحرر؟ #include <iostream> using namespace std; int main() { string name; int age; cout << "Please enter your name: " << endl; cin >> name; cout << "Please enter your age: " << endl; cin >> age; return 0; }
  12. ستحتاج إلى استخدام مكتبة مثل OpenCV لالتقاط صورة باستخدام كاميرا الهاتف، ثم استخدام تقنيات معالجة الصور مثل OCR (التعرف الضوئي على الحروف) لاستخراج النص من الصورة وتتوفر مكتبة Tesseract OCR لتحقيق ذلك. ثم مكتبة مثل openpyxl لكتابة المعلومات في ملف Excel.
  13. استخدم cors في الواجهة الخلفية من خلال: npm install cors ثم: import cors from 'cors'; ثم: const app = express(); app.use(cors()); سيظهر لك مشكلة أخرى وهي "confirmPassword\" is not allowed حاول حلها.
  14. حاول إعادة إنشاء قاعدة البيانات من خلال الأمر: php artisan migrate:fresh --seed ثم إنشاء مستخدم جديد والتجربة مرة أخرى.
  15. تأكد من كتابة بيانات قاعدة البيانات بشكل صحيح في ملف .env: DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= // Your Database Name DB_USERNAME= // Yout Database Username DB_PASSWORD= // Your Database Password وفي حال عدم وجود username قم بكتابة root. ثم تنفيذ الأمر التالي: php artisan optimize:clear وتأكد من أن سيرفر MySQL أو أيًا كان مثل Postgres يعمل بشكل سليم.
  16. قم بحذف الاستيراد التالي من ملف index.js: import { container } from 'webpack';
  17. الأمر بسيط، يمكنك تثبيت الحزم بشكل عالمي Global أي تصبح متاحة لأي مشروع تقوم بإنشاؤه من خلال الأمر التالي: pip install pandas أو يمكنك إنشاء بيئة إفتراضية وتثبيت الحزم بها بحيث تصبح خاصة بالمشروع الذي تعمل عليه فقط.
  18. عليك إختيار العنصر الصحيح الخاص بالـ navbar أي الذي يحوي الـ navbar: div.container-fluid.p-0 > div.row { position: sticky; top: 0; z-index: 10; opacity: .9; } ومن الأفضل تعيين كلاس خاص له لإختياره بشكل أسهل وتجنب مشاكل فيما بعد.
  19. بالطبع يمكن ذلك، والطريقة تختلف من لغة لأخرى، وأحد الأساليب الشائعة هي استخدام التضمين (composition) أو الوراثة (inheritance) في جافا مثلا: class MainObject { // خصائص الكائن الرئيسي } class SubObject { // خصائص الكائن الفرعي } class ContainerObject { MainObject mainObject; SubObject subObject; public ContainerObject(MainObject mainObject, SubObject subObject) { this.mainObject = mainObject; this.subObject = subObject; } } فهنا يحتوي ContainerObject على كائن من النوع MainObject وآخر من النوع SubObject، وتستطيع توسيع ذلك المفهوم وتعقيد العلاقات كما تريد. وفي جافاسكريبت كالتالي: // تعريف كائن أول let object1 = { property1: "Value 1", method1: function() { console.log("Method 1"); } }; // تعريف كائن آخر let object2 = { property2: "Value 2", method2: function() { console.log("Method 2"); }, embeddedObject: object1 // وضع كائن داخل كائن آخر }; // الوصول إلى الخصائص والأساليب في الكائن الفرعي console.log(object2.property2); // سيطبع: Value 2 object2.method1(); // سيطبع: Method 1 وأيضًا من الممكن الإعتماد على الوراثة بواسطة الـprototype في جافاسكريبت لتحقيق تنظيم هرمي للكائنات، وذلك يشمل وضع كائن داخل كائن آخر، أو استخدام مفاهيم مثل الـclass في ECMAScript 6 لتحقيق هيكلة أكثر تنظيمًا للكائنات.
  20. أرجو التعليق أسفل فيديو الدرس لمساعدتك بشكل أفضل وطرح الأسئلة العامة هنا في قسم أسئلة البرمجة. والملف الصحيح هو " الملفات الإبتدائية" أما الملف الآخر فهو المشروع النهائي بشكل مكتمل يمكنك الإطلاع عليه بعد تثبيت الحزم. والمشكلة هي أنه يتم استخدام إصدار 4 من مكتبة react-scripts في ذلك المشروع، وذلك الإصدار غير متوافق مع إصدار 18 أو أعلى من Node.js، لذا عليك تثبيت إصدار 5 من خلال الأمر التالي: npm i react-scripts@latest
  21. أنت تقصد علم البيانات Data science؟ باختصار، هو مجال الذي يهتم بدراسة الطرق التي يمكن من خلالها جمع وتخزين ومعالجة ونقل المعلومات، ويشمل ذلك الاهتمام بالنظريات والتقنيات التي تساهم في تحسين كفاءة هذه العمليات، ويتنوع نطاق علم المعلومات ويشمل مجالات مثل علم الحاسوب، وهندسة البرمجيات، ونظم المعلومات، والتعلم الآلي، والذكاء الاصطناعي. وستجد تفصيل هنا: أما الحوسبة الكمومية هي فرع من علم المعلومات يستخدم مفاهيم ميكانيكا الكم لتحسين أداء معالجة المعلومات، وتعتمد حوسبة الكم على استخدام البتات الكمية بدلاً من البتات التقليدية، من أجل القيام بعمليات متعددة في وقت واحد، مما يتيح حلاً فعالاً لمشاكل صعبة بشكل تفوق على الحواسيب التقليدية في بعض الحالات. مجالات الحوسبة الكمومية: الأمان الكمومي، حيث تستخدم مبادئ الكم لتحقيق أمان فائق في عمليات الاتصالات وتبادل المعلومات. التحليل الكمومي، لتحليل البيانات بشكل فعال، مثل في مجال التحليل الكمومي للبيانات الكبيرة. المحاكاة الكمومية للأنظمة والظواهر التي يصعب محاكاتها بواسطة الحواسيب التقليدية. تصميم الأدوية والمواد لتحليل وتصميم جزيئات دقيقة تستخدم في مجال الكيمياء وتصميم الأدوية. دراسة كيف يمكن تحسين بنية البرامج باستخدام مفاهيم الحوسبة الكمومية. استكشاف كيف يمكن استخدام ميزات الحوسبة الكمومية في تطوير نماذج ذكاء اصطناعي أفضل. ولا يوجد دورة متخصصة في ذلك في أكاديمية حسوب، لكن يوجد دورة بايثون وهي أساسية لمجال علم البيانات، وبها سيتم شرح تطبيقات عملية للتعامل مع البيانات بواسطة بايثون.
  22. تستطيع بناء موقع يعرض خدمات تلك الشركات والتسويق لها في المكان المناسب سواء من خلال تهيئة SEO للموقع، أو عمل إعلانات على المنصات التي يتواجد عليها فئة العملاء الذين تستهدفهم بخدماتك. ويمكنك إنشاء حساب على مواقع العمل الحر، ثم التقديم على عروض والتعريف بالخدمات التي يمكنك توفيرها لكن بشرط وجود سابقة أعمال، فيجب وجود إثبات لما تقدمه ومعاينة للجودة. أما إن كنت تقصد فتح شركة على أرض الواقع فذاك أمرك مختلف، حيث يجب استخراج سجل ضريبي للشركة. وبخصوص إدارة الفريق والمشاريع يمكنك استخدام أدوات مثل منصة "أنا" أو Trello وغيرهم.
  23. بالطبع، هناك وحدة التخزين المؤقتة التي تسمى "buffer" أو باستخدام مكتبة ctypes التي تتيح لك التفاعل مع المكتبات المكتوبة بلغة C. باستخدام buffer: # حجز مساحة في الذاكرة باستخدام buffer buffer_size = 1024 # يمكنك تحديد حجم الذاكرة الذي ترغب في حجزه buffer = bytearray(buffer_size) # الآن يمكنك القيام بالعمليات على الذاكرة المحجوزة # مثال: تغيير قيمة البايت الأول في الذاكرة إلى 42 buffer[0] = 42 باستخدام الدالة ctypes. import ctypes # تعريف البيانات التي سنخزنها في المكان الذي سنحجزه class DataStruct(ctypes.Structure): _fields_ = [("value", ctypes.c_int)] # حجز مكان في الذاكرة بحجم البيانات التي نريد تخزينها memory_block = ctypes.create_string_buffer(ctypes.sizeof(DataStruct)) # إنشاء كائن من البيانات data = DataStruct() data.value = 42 # نسخ البيانات إلى المكان الذي حجزناه في الذاكرة ctypes.memmove(memory_block, ctypes.byref(data), ctypes.sizeof(data)) # الآن يمكنك الوصول إلى المكان في الذاكرة واستخدام البيانات loaded_data = DataStruct() ctypes.memmove(ctypes.byref(loaded_data), memory_block, ctypes.sizeof(loaded_data)) print("قيمة المكان في الذاكرة:", loaded_data.value)
  24. لا يوجد مشكلة لديك الكود يعمل بشكل سليم Connected، حيث تم الإتصال والحصول على الرسالة Message received ثم قطع الإتصال Disconnected. لكن المشكلة هي أنه لم يتم الحصول على الرسالة التي أرسلتها أنت وهي hello websocket، وذلك بسبب أن السيرفر wss://ws.ifelse.io/ لا يقوم بإعادة الرسالة. يمكنك تجاهل ذلك حاليًا أو إنشاء حساب في piehost.com ثم ستحصل على رابط تستطيع استخدام كسيرفر وسيقوم بإعادة الرسالة. وأرجو منك التعليق أسفل الدرس المتعلق بالسؤال في الدورة وليس هنا حيث نطرح الأسئلة العامة هنا في قسم أسئلة البرمجة.
  25. النوع الأساسي للتشفير هنا هو التشفير المتناظر، حيث يستخدم مفتاح واحد لتشفير البيانات وفك تشفيرها، وتستخدم دالة bolt_decrypt() لفك تشفير البيانات، والتي تتطلب مفتاحًا كوسيط. ويشير الرمز ##!!!## إلى أن البيانات مشفرة باستخدام خوارزمية AES-256-GCM، وتلك الخوارزمية هي خوارزمية تشفير متناظرة قوية، وهي تستخدم على نطاق واسع في التطبيقات المختلفة. أي كالتالي: إنشاء مفتاح تشفير عشوائي يبلغ طول 256 بت. تشفير كود PHP باستخدام المفتاح العشوائي. تخزين المفتاح المشفر في ملف أو في قاعدة بيانات. ويتم الأمر بواسطة php_bolt وهي إضافة تستطيع استخدامها في لغة PHP: bolt_encrypt(): تشفير البيانات باستخدام AES-256-GCM. bolt_decrypt(): فك تشفير البيانات المشفرة باستخدام AES-256-GCM.
×
×
  • أضف...