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

Mustafa Suleiman

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

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

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

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

    340

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

  1. تفقد إصدار بايثون الذي تستخدمه، ثم استخدام إصدار Pillow متوافق معه وستجد قائمة بالتوافقية هنا: https://pillow.readthedocs.io/en/latest/installation.html وتستطيع تثبيت إصدار معين من خلال الأمر التالي أو تعديل ملف requirements.txt: pip install pillow==8.0.0 أو يمكنك خفض إصدار بايثون downgrade في الاستضافة. وإن استمرت المشكلة حاول حل الأمر من خلال التالي: pip install --upgrade pip setuptools wheel ثم حاول التثبيت مجددًا. في حال استمرت المشكلة حاول تنفيذ التالي: sudo apt-get install python3-dev python3-pip وإن استمرت حاول التالي: pip install --only-binary Pillow Pillow
  2. الحزمة هي package java.awt.geom وتحتوي على class Point2D، وتلك هي الفئة الأساسية لجميع الكائنات التي تخزن إحداثيات ثنائية الأبعاد. وتوفر الفئة مجموعة من الأساليب لمعالجة نقاط ثنائية الأبعاد، مثل حساب المسافة بين نقطتين وتحديد ما إذا كانت النقطة داخل شكل هندسي. باستطاعتك أيضًا استخدام الفئة javafx.geometry.Point2D لتمثيل نقاط ثنائية الأبعاد، وتلك الفئة متشابهة مع الفئة java.awt.geom.Point2D، ولكنها توفر بعض الميزات الإضافية، مثل دعم تنسيقات النقاط المعقدة. وإليك مثال على استعمال الفئة java.awt.geom.Point2D: import java.awt.geom.Point2D; public class Point2DExample { public static void main(String[] args) { Point2D point1 = new Point2D.Double(10, 20); Point2D point2 = new Point2D.Double(30, 40); System.out.println("Distance between points: " + point1.distance(point2)); if (point1.contains(point2)) { System.out.println("Point 2 is inside point 1"); } else { System.out.println("Point 2 is not inside point 1"); } } }
  3. أرجو التعليق أسفل فيديو الدورة لمساعدتك بشكل أفضل. ويجب تفعيل مترجم بايثون في منفذ الأوامر وذلك يعرف باسم REPL لأي لغة برمجة، من أجل التمكن من ترجمة الأكواد التي ستكتبيها بعد ذلك في منفذ الأوامر (ألشاشة السوداء)، فحاليًا دالة input() لا معنى لها أو حتى أي كود بايثون، ولتفعيل مترجم بايثون نكتب التالي في منفذ الأوامر: python أو py ثم بعد ذلك نكتب أكواد بايثون التي نريدها.
  4. من أجل تقليل التكلفة، يمكنك تعلم لغة جافاسكريبت، واستخدام الإطارات المختلفة الخاصة بها، فالسطح المكتب يوجد إطار electrone.js الذي يمكنك من تطوير تطبيقات لسطح المكتب. وللهواتف يوجد إطار React Native الذي يمكنك من إنشاء تطبيق لمنصة أندرويد وiOS. وبالطبع للواجهة الخلفية Back-End والتعامل مع قواعد البيانات ستستخدم Node.js. أيضًا إذا أردت إنشاء موقع على الويب تستطيع ذلك من خلال React.js. وهناك خيار آخر وهو تعلم لغة C#، ثم استخدام إطار .NET واستخدامه لإنشاء برنامج سطح المكتب وتطبيقات الهاتف.
  5. لا مشكلة في ذلك، تستطيع التقدم للإختبار من خلال إنهاء 4 مسارات فقط في الدورة، لكن المهم عند تعلم لغة برمجية هي الأساسيات وليس الإطارات والمكتبات، لذا لا أنصحك بتجاوز التطبيقات على بايثون من أجل توظيف ما تعلمته أو تعلم المزيد عن بايثون. الشهادة لن تفيدك بشيء سوى دليل على أنك أتممت الدورة بالفعل وليس مجرد مشاهدة فقط واستخدامها في بناء حسابك على مواقع التوظيف مثل LinkedIn، لكن عليك أن تسأل نفسك هل حققت استفادة بالفعل واستوعبت ما تم شرحه؟
  6. عليك إنشاء بيئة إفتراضية من أجل أن تتمكن من تثبيت الحزم التي تريدها، من خلال لوحة التحكم cPanel اختر Setup Python App ثم اتبع الخطوات اللازمة والمشروحة هنا: https://www.namecheap.com/support/knowledgebase/article.aspx/10048/2182/how-to-work-with-python-app/ بعد ذلك ستجد أمر عليك نسخه ثم تنفيذه في التيرمنال من أجل تفعيل البيئة الإفتراضية وتتمكن من تثبيت الحزم: ابحث على اليوتيوب عن Deploy Django Application In CPANEL
  7. عليك استخدام بنك يدعم ذلك في بايونير وهو بنك Community Federal Savings Bank وستجد شرح لذلك هنا في تعليق سابق، لكن يجب التنويه أن بايونير بنك إسرائيلي. إذا أردت بديل يوجد حاليًا بنك Elevate ابحث على اليوتيوب عن شرح له وستجد.
  8. هو بنك مستقل بذاته، ويوجد تطبيق له على الأندرويد، وهو بنك أمريكي، ويقدم خدماته داخل أمريكا، لذلك لن تتمكن من فتح حساب خارج أمريكا.
  9. تلك ليست الطريقة الصحيحة، ما نريده هو الترتيب من الأصغر للأكبر، ابحث عن ذلك لكي تستفيد، ابحث على اليوتيوب عن "شرح ترتيب المصفوفة جافاسكريبت"
  10. ما قمت به صحيح، وما أنت بحاجة إليه الآن من اجل ترتيب المصفوفة، هو ترتيبها من الأصغر للأكبر، سأقدم لك طرف الخيط، ما هي الدالة المسؤولة عن الترتيب بالنسبة للمصفوفات في جافاسكريبت؟
  11. أرجو التعليق أسفل فيديو الدورة لمساعدتك بشكل أفضل. لاحظ أن لديك خطأ يخبرك، بأن console.loge ليست دالة وذلك صحيح، حيث أنك تكتبت loge بدلاً من log لذلك عليك تعديل ذلك في الكود لديك ليصبح: console.log('table one created')
  12. أرجو طرح السؤال أسفل الدرس في التعليقات لمساعدتك بشكل أفضل، وطرح الأسئلة العامة هنا. أولاً هنا num = 1 يتم تعيين قيمة بداية الأرقام إلى 1. الكود يعمل على طباعة سلسلة من الأرقام، من خلال حلقة مزدوجة ، مع حلقة خارجية بمتغير i وحلقة داخلية بمتغير j. تُستخدم الحلقة الخارجية لتعداد الأرقام من 0 إلى 3 لأن الدالة range تعيد كائن مجال يحتوي على أعداد صحيحة ما بين نقطة النهاية والبداية مع فصلها بمسافة عدديّة، أي 0 إلى 4 يعني الأرقام التالية: [0, 1, 2, 3] وتُستخدم الحلقة الداخلية لطباعة الأرقام من 0 إلى قيمة i ونعتمد على دالة range أيضًا. أي أن for j in range(0, i+1):: تكرر i+1 مرة لكل صف، والمتغير j يتغير من 0 إلى i. ثم في print(num, end=' ') يقوم بطباعة الرقم الحالي (num) مع إضافة فراغ بعد الرقم، ومن ثم يزيد قيمة num بواحد. و print() تقوم بطباعة سطر جديد بعد اكتمال الصف الحالي. وإليك الكود مع تعليقات توضح طريقة عمله: num = 1 # تعيين قيمة بداية الأرقام # الحلقة الخارجية تكرر 4 مرات لإنشاء 4 صفوف for i in range(0, 4): # الحلقة الداخلية تكرر i+1 مرة لكل صف for j in range(0, i+1): # طباعة الرقم الحالي ومن ثم زيادة قيمة num بواحد print(num, end=' ') num += 1 # طباعة سطر جديد بعد اكتمال الصف الحالي print()
  13. نكتب في جوجل examples أو demo بجانب اسم المكتبة مثلاً مكتبة Scipy نكتب Scipy exmaples. وستجدي الكثير من الأمثلة، في حال واجهتي صعوبة في إيجاد مثال لمكتبة معينة أخبريني. وأيضًا بعض المكتبات لديها أمثلة في المستند الرسمي الخاص بها، مثلاً Scikitborn لديها التالي: https://scikit-learn.org/stable/auto_examples/index.html ابحثي عن اسم المكتبة وبجانبها docs أي Scikitborn docs.
  14. continue هو عبارة تستخدم في لغات البرمجة لتخطي باقي الكود في الحلقة (loop) الحالية والانتقال إلى التكرار التالي من الحلقة. وإليك مثال لتوضيح الأمر: const person = { name: 'mahmoud', age: 30, sayHello: function() { console.log('Hello!'); }, city: 'New York' }; for (const key in person) { // تجاوز التكرار إذا كانت القيمة هي وظيفة if (typeof person[key] === 'function') { continue; } // هنا يتم تنفيذ الشيفرة التي تأتي بعد continue إذا لم تكن القيمة وظيفة console.log(key + ': ' + person[key]); }
  15. تقصد على منصل مستقل أو ما المقصود؟ في حال كان السؤال خاص بمنصة مستقل، فستجد نصائح هنا حول طريقة تقديم العروض: إضافة عرض احترافي أما إذا كان خاص بمواقع التوظيف مثل LinkedIn، فعليك كتابة سيرة ذاتية جيدة ثم إرفاقها عند التقدم لتلك الوظائف سواء من خلال البريد المذكور في وصف الوظيفة أو من خلال رفعها وإرسالها من خلال الموقع إن كان ذلك متوفر.
  16. باستخدام دالة iloc كالتالي: import pandas as pd # فتح ملف إكسل df = pd.read_excel("example.xlsx") # تحديد الخلية التي تريد نسخها cell = df.iloc[1, 2] # حفظ قيمة الخلية في متغير value = cell.item() # طباعة قيمة الخلية print(value) وآلية عمل cell = df.iloc[1, 2] هي أنه يقوم بتحديد الخلية الموجودة في الصف الأول والعمود الثالث من DataFrame df. وdf.iloc هو مؤشر يُستخدم لتحديد البيانات في DataFrame اعتمادًأ على موقعها العددي، حيث أن 1 يشير إلى الصف الأول و 2 يشير إلى العمود الثالث.
  17. من الأفضل ذكر المزيد من التفاصيل، هل تقصد بالتدريب على Zoom، أنه يتم حجز الدورة عند التسجيل ويتم إجراء مقابلات زووم بعد ذلك؟ أي مجرد دفع تكلفة الإشتراك ثم يتم إرسال رابط للمحاضرات في أوقات محددة؟ عامًة ستحتاج إلى برمجة مخصصة يمكنك تعيين أحد المستقلين على منصة مستقل، وستحتاج إلى استخدام Zoom API من أجل التضمين في ووردبريس، وأيضًا يوجد بعض الإضافات لووردبريس تفقد هل مميزاتها تتوافق مع ما تريده أم لا: https://wordpress.com/plugins/video-conferencing-with-zoom-api https://wordpress.com/plugins/eroom-zoom-meetings-webinar/ https://wordpress.com/plugins/the-events-calendar/
  18. ستحتاج إلى القطع التالية: مستشعر ,هو الجزء الذي سيقرأ البيانات الموجودة على البطاقة، وستحتاج إلى مستشعر يستخدم تقنية RFID أو NFC. وحدة التحكم وهي الجزء الذي سيعالج البيانات التي تم قراءتها من المستشعر، وأنت بحاجة إلى وحدة تحكم لديها القدرة على التواصل مع شبكة Wi-Fi أو Ethernet. ثم كتابة برنامج يدعم تقنية RFID أو NFC، سواء من خلال لغة بايثون أو جافا أو C++. وباستخدام وحدة التحكم لقراءة البيانات الموجودة على البطاقة، ستقوم بفك تشفير البيانات لتحديد معرف البطاقة، ثم استخدام معرف البطاقة للبحث عن العميل في قاعدة بيانات، وإن تم العثور على العميل، تقوم بتسجيل المديونية على حسابه.
  19. أنت تقصد rimsoox، لا أجد له أي مرجع سوى الموقع الرسمي، حتى صفحة About Us وContact Us لا تعمل تعطي خطأ 404، حتى الفيديو التعريفي عن البنك هو مجرد فيديو من قناة لا علاقة لها بالبنك. ولم يتم ذكر البنك في أي جهة موثوقة، لذلك في الغالب أنت تعرضت لعملية نصب، لا تقم بتزويد الموقع بأية معلومات أخرى عنك.
  20. حاول تنفيذ التالي في منفذ الأوامر في مسار مشروعك: npm install vite في حال استمرت المشكلة قم بحذف مجلد node_modules وملف package-lock.json، ثم تنفيذ التالي: npm cache clean --force ثم: npm install وتشغيل المشروع: npm run dev ومن المفترض أن تتواجد الحزم التالية في ملف package.json لديك: "devDependencies": { "laravel-vite-plugin": "^0.8.0", "vite": "^4.0.0" } في حال استمرت المشكلة، أعد تثبيت Node.js من خلال الرابط التالي: https://nodejs.org/dist/v18.17.0/node-v18.17.0-x64.msi
  21. في كل من جافاسكريبت و C++، الـ constructor هي دالة خاصة يتم استدعاؤها عند إنشاء كائن جديد، نستخدمها لإعداد الكائن الجديد و تخصيص قيمه الأولية. وهناك بعض الاختلافات بين كيفية معاملة ال constructor في جافاسكريبت و C++. في C++، يجب أن تكون ال constructor مخصصة، أي يجب أن يكون لها اسم فئة كاسم لها، بينما في جافاسكريبت، لا يلزم أن تكون ال constructor مخصصة. في C++، يمكن أن تعيد ال constructor قيمة، أما في جافاسكريبت، لا يتم إعادة قيمة. في C++، ترث الـ constructor من فئات أخرى، بينما في جافاسكريبت،لا ترث الـ constructor من فئات أخرى. مثال على الـ constructor في جافاسكريبت: class Person { constructor(name, age) { this.name = name; this.age = age; } } const person = new Person("mahmoud", 30); console.log(person.name); // "mahmoud" console.log(person.age); // 30 تُنشئ دالة الـ constructor الكائن الجديد وتعيين قيمة للمتغيرين name و age. مثال على الـ constructor في C++: class Person { public: Person(const std::string& name, int age) : name_(name), age_(age) {} private: std::string name_; int age_; }; int main() { Person person("mahmoud", 30); std::cout << person.name() << std::endl; // "mahmoud" std::cout << person.age() << std::endl; // 30 }
  22. الأمر يتوقف على نوع البيانات الذي سيتم تخزينه والتعامل معه، حيث أن لكل قاعدة ميزات معينة. MongoDB هي قاعدة بيانات غير علائقية، مما يعني أنها لا تخزن البيانات في جداول وصفوف، ولكن بدلاً من ذلك تخزنها في مستندات شبيهة بـ JSON، مما يجعلها مناسبة لتطبيقات تتطلب بيانات غير مترابطة أو ديناميكية، كتخزين البيانات من تطبيقات الويب أو تطبيقات الجوال أو تطبيقات التحليلات. بينما PostgreSQL هي قاعدة بيانات علائقية، مما يعني أنها تخزن البيانات في جداول وصفوف، وبالتالي هي مناسبة لتطبيقات تتطلب بيانات مترابطة أو موحدة، مثل تخزين البيانات من تطبيقات المؤسسات أو تطبيقات التجارة الإلكترونية أو تطبيقات قواعد البيانات. وستجد تفصيل هنا:
  23. خوارزمية البرمجة الديناميكية تتبع نمطاً مشابهاً في تصميمها، ويتم الأمر كالتالي: تحديد الهدف، مثل حل مسألة معقدة عن طريق تقسيمها إلى مسائل فرعية أبسط وحل كل مسألة فرعية مرة واحدة فقط. تقسيم المشكلة الكبيرة إلى مجموعة من المشاكل الفرعية الأصغر، وذلك بحيث يكون لديك تفاعلات تكرارية يمكن حفظ نتائجها. حددي الحالات الفرعية والفترات الفرعية التي يمكن تقسيم المشكلة إليها. حددي العلاقات التكرارية بين الفترات الفرعية وكيفية استفادتها من النتائج المحفوظة. قرّري كيفية تخزين النتائج المؤقتة بحيث يمكن إعادة استخدامها لتجنب حسابها مرارًا وتكرارًا. تحديد الحالة الأساسية أو الحالة الأولية التي تساعد في إيجاد الحل للمشكلة. استخدام النتائج المؤقتة المحفوظة لبناء الحل النهائي للمشكلة الكبيرة. تقييم التعقيد الزمني والمكاني للخوارزمية لضمان أدائها الجيد. في بعض الحالات، من الممكن تحسين الأداء عن طريق تحسين الذاكرة المستخدمة أو تحسين الخوارزمية نفسها. وفي النهاية نرسم flowchart أو خوارزمية توضح بشكل واضح تسلسل الخطوات والقرارات. وكمثال: لنفترض أن لدينا مشكلة حساب سلسلة فيبوناتشي بطريقة ديناميكية. الخوارزمية ستبدو كالتالي: تحديد الهدف: حساب العدد في سلسلة فيبوناتشي بطريقة ديناميكية. تقسيم المشكلة: تقسيم المشكلة إلى حالات فرعية: حساب العدد في السلسلة للفهرس n. تحديد الحالات الفرعية: الحالة الفرعية هي حساب العدد في الفهرس n. العلاقة التكرارية: F(n) = F(n-1) + F(n-2) حفظ النتائج المؤقتة: استخدام مصفوفة لحفظ النتائج المؤقتة. تحديد الحالة الأساسية: حالة أساسية: F(0) = 0, F(1) = 1 بناء الحل النهائي: استخدام العلاقة التكرارية لحساب F(n) باستخدام F(n-1) و F(n-2). تحليل التعقيد الزمني والمكاني: تعقيد زمني: O(n) وتعقيد مكاني: O(n) تحسين الأداء: بتحسين استخدام الذاكرة أو استخدام تقنيات محسنة. رسم Flowchart: رسم خريطة تدفق توضح الخطوات المذكورة أعلاه بشكل مبسط وواضح.
  24. نعم، تستطيع التقدم للإختبار بعد إنهاء 4 مسارات، وفي حال كانت تلك المسارات تحتوي على تطبيقات عملية فيجب تسليمها، وفي حال كانت تلك التطبيقات هي مشاريع برمجية أي أكواد، فيجب رفع المشاريع على GitHub. ولكن ليس الفكرة الحصول على الشهادة، هل حققت ما كنت تريده من الدورة؟ أي من الأفضل إنهاء الدورة بالكامل لكي تحقق استفادة منها، ولا مشكلة إن كان باقي المحتوى لا تريده حاليًا. وسيتم سؤالك عن مدى استيعابك للمسارات التي قمت بإنهائها، وطبيعة الإختبار هي كالتالي:
×
×
  • أضف...