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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. أرجو أن تبدأي بكتابة البرنامج و سنساعدك إن حصل معك أخطاء.
  2. أرجو أن تبدأي بكتابة البرنامج و سنساعدك إن حصل معك أخطاء.
  3. حسنا استخدم حاليا firebase لايوجد مشكلة لأن أهم ميزة فيها هي real time database. التكاليف في فايربيز ترتفع مع ازدياد حجم المشروع، حاول الاشتراك بخدمة "ادفع حسب ما تستهلك" بدل الاشتراك الثابت.. بشكل عام الموضوع بحاجة لدراسة عدد المشركين و حجم المشروع والتجريب.
  4. يمكنك الاستفادة من الطريقتين في مشروعك، فايربيس لتخزين البيانات التي تريد تحميلها بسرعة و تتطلب عمليات بحث.. مايتعلق بالمستخدمين.. كما يمكن الاستفادة من توثيق المستخدمين و تسجيل الدخول عن طريق مواقع ال social media وغيرها وكما التحقق من الحسابات للمستخدمين، لكن firebase تصبح غالية/مكلفة عند زيادة حجم البيانات فعليه الاستضافة المدفوعة تكون أرخص و تخزن عليها الصور مثلا.. روابط مفيدة: Firebase Database REST API مقالة: Integrate Firebase With PHP and Optimize Your Real Time Communication
  5. كلا، لأنك ستسجل حساب ربما Whatsapp bussiniss أو ماشابه مثل حساب مطور.. طبعا ليس أنت من ستقوم بإرسال الرسائل, إنما تجلب الرقم من المستخدم، ثم ترسل طلبية POST كما في المثال للرقم المطلوب ومن ثم تنتظر من المستخدم إدخال الكود الذي أرسلته لتتم عملية التحقق.
  6. يوفر Whatsapp خدمة api يمكنك من خلالها إرسال أي رسالة عن طريق الانترنت بتحديد رابط مكون من رقم المستخدم مع بادئة خاصةب Whatsapp domain: مثلا من متصفح بشكل بسيط.. https://api.whatsapp.com/send?phone=XXXXXXXXXXXX الآن برمجيا باتباع التوثيق: POST /v1/messages { "preview_url": false | true, "recipient_type": "individual", "to": "whatsapp-id", "type": "text", "text": { "body": "your-text-message-content" //////// OTP } } رابط التوثيق: developers.facebook/docs/whatsapp/overview يوجد SDK كامل يمكنك الاطلاع عليه وتضمينه في مشروعك إن وجدت طريقة ناجحة يمكنك مشاركتها ليستفيد الآخرون، شكرا جزيلا
  7. يمكننا استخدام دالتين مساعدتين zip و dict بالشكل التالي: keys = ['x', 'y', 'z'] values = ['abc', 123, True] zip_iterator = zip(keys, values) # تعيد pairs of elements dictionary = dict(zip_iterator) # تحويل لقاموس print(dictionary)
  8. يمكن عمل ذلك من خلال format أي عمل تنسيق و تمرير رمز اللون الموافق للمطلوب.. print(f"{bcolors.WARNING}Warning: Any Text ?{bcolors.ENDC}") حي ثيمكنك ملاحظة كود بداية اللون و كود النهاية، وهذه بعض الرموز للتلوين: class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKCYAN = '\033[96m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' كما يمكن استخدام المكتبة colored: from termcolor import colored print(colored('hello', 'green'), colored('world', 'red'))
  9. أرجو أن تبدأ بكتابة البرنامج و سنساعدك إن حصل معك أخطاء.
  10. هل قصدك بدون ظهور الرموز؟ هو بيخفي كلمة السر لأن الاتصال يتم مع نظام لينوكس وهو لايظهر عدد أو أحرف كلمة السر.
  11. في هذا الجزء يطلب اسم المستخدم الذي تريدين الاتصال من خلاله و الاستضافة user@host نستبدل user باسم المستخدم و host إما بعنوان IP أو domain مثل example.com.
  12. تظهر هذه الرسالة كثيرا، اختر yes (يمكنك تحديد الخيار في الأسفل لمنع عرض الرسالة مرة ثانية) يمكنك تحميل برنامج codeBlocks وهو مخصص ل c/++c : رابط التحميل: هنا أرجو تحميل codeblocks-20.03mingw-setup.exe
  13. عادة يتم تسليم المشروع بعد التجريب من قبل المطور بقيمة X$ مثلا. وتنتهي الصفقة بعد تسليم الملفات. إن كان يريدك أن تكون جاهزا لمراجعة الشيفرة لمدة 4 شهور، إما تضيف قيمة ثابتة للعرض أنت تحدد قيمة الدعم الفني ل4 أشهر. أو يتم تسليم المشروع ثم يقوم بعمل مشروع آخر منفصل للدعم الفني. بما أنك من تقوم ببرمجة الموقع، يريدك صاحب العمل أن تتابع الموقع بنفسك مثلا لكي لا يقوم مبرمج آخر بالنظر للشيفرة البرمجية وربما نسخ أكواد منه. لذلك يريد دعم من نفس المطور وهو يفهم برنامجه بشكل أفضل أيضا. برأيي تقسيم المشروع لمرحلتين، تسليم الشيفرة و مرحلة الدعم الفني كل منهما لوحدها
  14. عندما نريد تمرير أكثر من متغير، نمرر tuple كوسيط ثاني للدالة execute: في MySQLdb: cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3)) أما في sqlite3: cursor.execute("INSERT INTO table VALUES (?, ?, ?)", (var1, var2, var3)) ويمكن استخدام النمط الذي يدعم التسمية: (:var1, :var2, :var3) or (%(var1)s, %(var2)s, %(var3)s)
  15. ابحث ضمن موقع خمسات أو مستقل ستجد مختصين في الترجمة و كتابة المحتوى
  16. هل تريد طباعة السلسلة في console؟ لا تقم بوضع return ضمن الدالة: void printName(String name) { print(name) } نستخدم الكلمة المحجوزة Void وهي نمط لايعيد قيمة، فلا تقم بتخزين ناتج الاستدعاء في متغير
  17. نعم متاح، أرجو الاطلاع على الرابط التالي: اكتب معنا لا أعتقد وجود توظيف مباشر، إنما مثل المقالة الموجودة في الرابط، يتم نشر مشاريع على مستقل ويمكنك التقدم عليها.
  18. السؤال محلول من قبل: حاولي التعلم و الاستفادة من الشروحات
  19. في نظام windows 10 افتح على خصائص شبكة ال wifi التي تتصل عليها و حددها كشبكة خاصة private network. حاول تشغيل المخدم بالأمر: exp start --dev --lan الخطوة الأولى تتخطي firewall.
  20. كلمة برنامج تعني تطبيق لنظام ويندوز، أوسطح مكتب بشكل عام. ضمن دورة جافاسكربت يوجد المسار: تطوير تطبيق سطح مكتب باستخدام Electron.js وبيئة العمل هذه تسمح بذلك. يمكنك تصفح المسار من هذا الرابط: تطوير تطبيق سطح مكتب باستخدام Electron.js وهو مسار جديد تمت إضافته لدورة جافاسكربت. بالتوفيق
  21. الدالة length تقوم بعد الحروف المستخدمة ضمن مصفوفة محرفية، نقوم بعد الحروف من بدابة المصفوفة حتى نجد المحرف الصفري int c = 0; char arr[300]; while(arr[c] != '/0') c++; cout << c; لحساب غدد البايتات التي يحجزها متغير، علينا معرفة نوعه، وإن كان مصفوفة يتم الحساب بعدد العناصر ضرب حجم العنصر الوحيد. sizeOf(char) => 1 byte sizeOf(int) => 4 byte . . sizeOf(array of int) => 4 * length(array) الصف الأول يكون دليل السطر خاصتهم 0 ويكون شكلهم كالتلي: أما العمود فهو متغير بعدد الأعمدة arr [0] [j] j = 0..m-1 أما العمود الأول، يمكون دليل العمود ثابت و السطر متغير: arr [i] [0] i = 0..n-1 إن كانت المصفوفة مربعة يكون n = m (الأبعاد متساوية) تبقى عملية تبديل قيمتين ممكن باستخدام دالة swap أو متغير مؤقت نخزن فيه قيمة أحد عنصري التبديل وننقلهم للآخر..
  22. هذا يعني أن password المتغير لايحوي قيمة، حاول طباعتها في console وتأكد من Id هل العنصر موجود فعليلا في الصفحة.. يوجد تابع في جيكويري يضمن تنفيذ الشيفرة بعد اكتماا تحميل الصفحة أنت تستخدمه ولكن لم تضع جميع الشيفرة ضمنه لذلك العنصر ليس موجود في HTML وقت تنفيذ جافاسكربت
  23. مرحبا نهلة، أرجو التأكد من حفظ الملفات قبل تجريب النتائج في المتصفح، الملف الذي أرفقته الخاص بجافاسكربت فارغ وهذا يعني أنه غير محفوظ. - طالما أنت مشتركة في الدورة يمكنك طرح الأسئلة الخاصة بكل درس في قسم التعليقات أسفل الفيديو وسيجيبك المدربون هناك. يمكنك وضع عبارة برمجية بسيطة في ملف جافاسكربت مثل: document.write('hi') وهذا سيجعل الصفحة في المتصفح تحوي الكلمة hi للتجريب و التأكد أن الملف مربوط بالصفحة بطريقة صحيحة يمكنك كتابة أي محتوى ضمن الوسم body وسيظهر في المتصفح لاختبار صفحة HTML نفسها
  24. لتعديل قيمة المتغير الذي نطبق عليه الدالة يجب إسناد ناتج الدالة لنفس المتغير مثل: name = 'Adam' name = name.replace('am', 'd') name => Add لأن هذه الدوال تعيد كائن جديد ولا تعدل على المتغير الكائن الأساسي الذي تم تطبيقها عليه. حيث أن النمط String في بايثون هو immutable غير قابل للتعديل، هذه الدوال تعيد نسخة معدلة من قيمة المتغير
  25. عند تحديد shell=True يتوقع تمرير سلسلة نصية واحدة لعملية shell أما في حال shell=False يمكن تمرير قائمة بعدة أوامر دفعة واحدة. في حالتك تمرر أمر واحد، لذلك لا مشكلة، إنما إن أردت تمرير عدة أوامر عليك تحديد الخيار shell=False
×
×
  • أضف...