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

Kais Hasan

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

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

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

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

    24

كل منشورات العضو Kais Hasan

  1. يتم إطلاق اسم مدونة بشكل عام على الموقع المختص بنشر المقالات المختلفة، أو كتابات مختلفة تعبر عن آراء فلسفية أو اجتماعية أو غيرها. بينما الموقع هو اسم عام، يمكن أن يكون موقع تجارة الكترونية مثل أمازون أو موقع تواصل اجتماعي مثل فيسبوك أو حتى موقع تعليمي مثل أكاديمية حسوب. لتغيير الدومين الخاص بالمدونة يجب عليك شراء دومين من أحد الشركات التي تقدم ذلك، و من ثم ضبط إعدادت المدونة لتعمل على الدومين الخاص بك، في حال شراءك لدومين يمكنك إخبارنا لمساعدتك في ضبط الإعدادات.
  2. من فضلك هل يمكنك توضيح كيف تقوم بتشغيله، قد يكون الخطأ من طريقة التشغيل.
  3. يمكنك رفع المشروع على github pages باتباع الخطوات التالية: في البداية يجب أن نقوم بإنشاء repo محلية للمشروع عن طريق استعمال التعليمة git init في مجلد المشروع، بعدها علينا تنفيذ ما يلي لحفظ التغييرات و إرسالها إلى github: git commit -m "first commit" git branch -M main git remote add origin رابط المشروع على غيت هاب git push -u origin main بعدها نقوم بتنزيل الحزمة الخاصة ب github pages كما يلي: npm install gh-pages --save-dev بعدها علينا إضافة ما يلي إلى قسم scripts ضمن package.json: "predeploy" : "npm run build", "deploy" : "gh-pages -d build", ثم نقوم بحفظ التغييرات و إرسالها إلى السيرفر كما يلي: git add . git commit -m "setup gh-pages" git push و في النهاية نقوم بتنفيذ ما يلي: npm run deploy
  4. يمكنك استعمال ال polling و التي يمكن تحديد حدث معين لها حتى تقوم بتحديث جزء من الصفحة بدون إعادة تحميل الصفحة كاملة، أي من ناحية الفكرة هي مماثلة لل ajax. يمكنك الإطلاع عليها من هنا. مثلاً لتحديث مكون ما كل 750ms يمكننا كتابة ما يلي: <div wire:poll.750ms> Current time: {{ now() }} </div> هنا كل 750ms سيحدث الوقت المعروض في الصفحة و بدون أي إعادة تحميل للصفحة، بالتالي يمكنك استعمال أمر مشابه و لكن بحيث تقوم بتغيير أيقونة الإشعارات أو أي أمر آخر ترغب به.
  5. يمكنك التواصل معي لاخباري بالتفاصيل. تحياتي.
  6. مرحباً، هذا الطلب يمكنك نشره على مستقل، حيث أنها المنصة المتخصصة بذلك. بكافة الأحوال، لدي خبرة كبيرة في الرياضيات و خاصة الاحتمالات بسبب كون اختصاصي ذكاء صنعي، يمكنني مساعدتك في ذلك.
  7. يمكنك استعمال for each عندما يكون لديك ما يدعى ب collection أو container أي مثل مجموعة من الأغراض مجموعين سوية. بينما for العادية يمكنك استعمالها في أي حالة تتضمن التكرار عدد من المرات. أي بشكل عام يمكنك اعتبار for each حالة خاصة من ال for. مثلاً لنفترض كنت تريد المرور على الأعداد من 1 إلى 100، لا فكرة أن تقوم بإنشاء مجموعة من الأعداد للمرور عليهم، يكفي أن تستعمل ال for العادية فهذا أفضل، بينما في حال كان لديك مصفوفة من الأغراض فقد يكون من الأسهل استعمال for each كما أن هذا يسهل قراءة الكود و يقلل الأخطاء التي قد تقع فيها نتيجة الوصول إلى خانة غير موجودة.
  8. هناك العديد من الطرق للقيام بذلك و هذا يعتمد على المكتبة التي تقوم باستعمالها، من أكثر المكتبات استعمالاً هي pillow و يمكنك حفظ صورة فيها كما يلي: from PIL import Image im = Image.open("...") im.save("im.jpg") أما في حال كنت تستعمل opencv فيتم الأمر كما يلي: import cv2 img = cv2.imread(image_path) cv2.imwrite("اسم الملف", img)
  9. إن javascript لا تعتمد في عملها على ال html, css و بالتالي يمكنك استعمالها و تعلمها بدون معرفة ما سبق. يمكنك تنفيذ أكواد ال javascript في ال console الخاص بالمتصفح أو بعض المحررات مثل vscode يوفر إضافات لتنفيذ أكواد ال javascript. و في هذه الدورة كما ذكر المدرب محمد لا يتم تعليم تصميم المواقع في هذا المسار، و بالتالي لا داعي لتعلم ال html, css. كما أنه يمكنك لاحقاً تعلم html, css و استعمال ال javascript للتعديل فيهما.
  10. نحن نستعمل التابعين السابقين لجلب عنصر من ال html و بالتالي فإنه لمعرفة متى نستعمل كل منهما يجب معرفة متى نستعمل id و متى نستعمل class لعنصر في ال html. إن id هو شيء فريد و لا يكون لعنصرين نفس ال id، و بالتالي نستعمل التابع الخاص بال id عندما نريد جلب عنصر واحد فريد. بينما ال class يمكن تطبيق نفس القيمة على أكثر من عنصر، مثلاً نحن نكتب عدة مقالات في الموقع فنعطي لكل مكون يعبر عن مقالة class هو article هنا يجب أن نجلب أكثر من قيمة و بالتالي علينا استعمال تابع ال class و ليس تابع ال id. أي باختصار التابع الخاص بال id نستعمله لجلب عنصر واحد بينما الثاني نستعمله لجلب مجموعة من العناصر التي غالباً ما يجمعها شيء ما.
  11. سأعطيك فكرة للحل. يمكنك ان تقوم بإنشاء مكون يمثل الكرسي، بحيث تكون له خاصية selected، و بالتالي يصبح كل كرسي مسؤولاً عن تحديد فيما إذا كان تم الضغط عليه،و هو من يقوم بمعالجة حدث الضغط. أعتقد أنه من السهل عليك تنفيذ هذا الأمر، و يصبح المكون الحالي يقوم فقط بعرض مجموعة من الكراسي لا أكثر. حل آخر أن تقوم بتخزين مصفوفة من العناصر التي تم اختيارها بدلاً من تخزين دليل واحد فقط و عند كل ضغطة إما تقوم بالحذف منها أو الإضافة إليها، لكن شخصياً أنصحك بالحل الأول.
  12. يبدو أنك تقوم بتنفيذ البرنامج بدون تمرير أي شيء له، يجب عليك تمرير اسم التابع الذي تريد استعماله. للقيام بذلك عليك الذهاب في البداية إلى سطر الأوامر و كتابة التعليمة التالية: venv\Scripts\activate هذه التعليمة ستقوم بتفعيل البيئة الافتراضية التي قمت بإنشاءها، بعد ذلك علينا القيام بتنفيذ البرنامج كما يلي: مثلاً لنستعمل التابع list يمكننا كتابة ما يلي: python taskaty\app.py list طبعاً التطبيق الخاص بك يحوي على الكثير من الأخطاء المطبعية، و تنفيذ ما سبق سيعطي خطأ بسبب ذلك، حاول إيجاد الأخطاء المطبعية، إن vscode سيضع خط أصفر تحتها و بالتالي يجب عليك إيجادها بسهولة. كما أنه في حال كان هذا السؤال يتبع لأحد الفيديوهات من الدورات من فضلك قم بنشر سؤالك دائماً أسفل الدرس في قسم التعليقات و ليس هنا في قسم الأسئلة البرمجية العامة.
  13. العدد الأقصى الافتراضي هو 32,767، و لكن يمكنك تعديل هذا الخيار عن طريق القيام بتنفيذ ال query التالية: USE AdventureWorks2012 ; GO EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE ; GO EXEC sp_configure 'user connections', 325 ; GO RECONFIGURE; GO مثلا هنا قمنا بالتعديل ليصبح العدد الأعظمي هو 325.
  14. Rescript تشبه ال typescript من ناحية المبدأ، أي أنها بشكل مبسط بعض القواعد على كتابة ال javascript و التي يمكنك الكتابة بها و هي ستقوم بتحويل الكود إلى javascript. أهم مثال هو أن تفرض نمط معين للبيانات، أن مثلاً int، حيث أن ال javascript لا يمكنها القيام بذلك بشكل مباشر فالمتغير ليس له نمط.
  15. بعد تعلم لغة برمجة أفضل أمر تقوم به هو محاولة بناء مشروع صغير باستعمال ما تعلمته، مثلاً قم بمشروع صغير يقوم ببعض الأمور على ملف excel، هذا سوف يجعلك تتعلم أيضاً التعامل مع مختلف المكتبات في اللغة، فمن المستحيل تعلمهم بدون بناء مشروع. نصيحتي التالية لك، هي اختر مجالاً ما، مثلاً في حال كنت تحب تطوير مواقع الويب يمكنك تعلم ال django فهو إطار عمل يساعد على بناء المواقع، قم ببناء موقع صغير باستعماله. بالإضافة إلى كل ذلك، و لتتأكد من مرونتك في التعامل مع اللغة من الجيد حل بعض المسائل على المواقع التي تقدم مسائل برمجية، هناك الكثير من هذه المواقع و التي ستنمي مهاراتك في اللغة و في مهارة حل المشكلات و التفكير بشكل عام و هو أمر أساسي قبل البدء ببناء تطبيقات كبيرة، من هذه المواقع hackerrank. في حال كنت تريد بناء تطبيقات سطح مكتب فيمكنك تعلم pyqt على سبيل المثال. كما أنه من الجيد أن تتطلع على دورة بايثون التي تقدمها حسوب، أعتقد أنها ستكون جيدة بالنسبة لك فهي تعلمك الكثير من كافة الجوانب و بالتالي يمكنك بعدها الاختيار و التعمق فيما أحببته.
  16. يمكنك القيام بذلك باتباع الخطوات التالية: عليك تنزيل إضافة mbstring على السيرفر و تفعيلها. عليك نسخ المجلد generic_wiris من مجلدات الإضافة و وضعه في ال root للسيرفر الخاص بك، من ثم عليك فتح الملف generic_wiris/configuration.ini و ضبط الإعدادات التي تريدها. يجب أن يكون المستخدم على السيرفر له صلاحيات تنفيذ لمحتويات المجلد generic_wiris/integration.
  17. لا يمكنك القيام بالتضمين هكذا، لا يمكن لملفين تضمين بعضهما فهذا غير منطقي حيث أن كل منهما يعتمد على الآخر و بالتالي لا يمكن البدء بتنفيذ أحدهما قبل الآخر و لا يمكن تنفيذهما معا و بالتالي يحدث خطأ. في حال وجود أمور مشتركة بين ملفين يفضل وضعها في ملف ثالث لا يعتمد على شيء و جعل الملفين الآخرين يضمنان هذا الملف العام.
  18. هناك الكثير من الحلول الممكنة لذلك، أنصحك باستعمال إحدى الخدمات الشهيرة مثل AWS Lightsail أو google clouds فهي توفر لك خدمة الاستضافة لمدة مجانية معينة. شخصياً قمت بتجربة AWS Lightsail فهو يعطيك فترة 3 أشهر مجانية و هي فترة جيدة جداً في حال كان الهدف اختبار المشروع، كما أن الاشتراك بعد هذه الفترة ليس مكلفاً كثيراً. من الجيد تجربة هذه الخدمات فالمهارات في استعمالها مطلوبة في كل الشركات و بالتالي يمكنك إضافة شيء جيد جداً إلى أعمالك في حال قمت بذلك.
  19. ما الغريب في النتائج التي تظهر لديك؟ أنت تقوم في الكود الخاص بك بتخزين لائحة كل عنصر فيها عبارة عن لائحة فيها عنصرين، العنصر الأول هو أول حرف في السطر، و العنصر الثاني هو بقية الأحرف في السطر، و بالتالي في حال كان لديك سطر يحوي على حرف واحد سيكون لديك ثاني عنصر عبارة عن سلسلة نصية فارغة. بينما في الحالة الثانية سيكون لديك ثاني عنصر هو عبارة عن كل الأحرف في الكلمة ما عدا أول حرف. هذا موجود في التعليمة التالية: enletters.append([line[0], line[1:]]) في حال كنت تريد القيام بأمر آخر من فضلك أخبرنا به حتى نستطيع مساعدتك على كيفية القيام به.
  20. إن الدورات الخاصة باللغات ليس الهدف منها شرح كل تعليمة، الهدف هو شرح المفاهيم الخاصة بكل لغة و لذلك ستجد الدورات مختصرة، و لكنه المختصر المفيد، بالطبع يمكن لأي أحد أن يقوم بشرح كافة التعليمات الموجودة في اللغة لك، و سيظهر أن محتواه فيه الكثير من المعلومات و لكن الحقيقة ليست كثرة المعلومات هو الأمر المحبذ، الفائدة من الدورة هي تقديم أهم المعلومات بأقل وقت، و هذا ما يمكن للعالم الخبيرة تقديمه لك. أما شرح كل حرف في اللغة فهذا أصبح لا فائدة منه حيث يمكنك الذهاب و دراسة التوثيق الخاص باللغة لوحدك. تعليمة متل تعليمة الإدخال ليست بالأهمية الكبيرة حيث أنك ستستعمل هذه اللغة في الويب و لن تقوم بالإدخال عن طريق ال javascript، بل سيكون الإدخال عبر forms مكتوبة بال html على سبيل المثال.
  21. يجب ألا يكون الهدف الخاص بك هو الامتحان و النجاح به، الخبرة و استيعاب المفاهيم المطروحة أهم بكثير من ذلك. الشهادة مفيدة عندما تريد التقديم على شركة ما لأنها تثبت خبرتك في المجال الذي أخذت به الشهادة، و لكن أي شركة سيكون لديها اختبارات لك، و في حال وجدت أنك لست خبيراً كما تدعي فإن هذا سيكون له تأثير سلبي كبير عليك. الدروس التي وجدت صعوبة في فهمها يمكنك دائماً إعادة مشاهدتها مرة و مرتين و السؤال أسفل كل درس في قسم التعليقات و سنكون سعيدين بالإجابة عن استفساراتك.
  22. بالأحوال العادية و لاستعمال أي موقع مثل هذه المواقع عليك التخاطب مع ال API الخاصة بالموقع، عن طريق الإرسال على إحدى النهايات الطرفية لها. في البايثون يوجد مكتبة تساعدك على ذلك، و لكنها مكتبة غير رسمية و بالتالي عليك وضع ذلك بالحسبان، و هي heyoo يمكنك عن طريقها استعمال الواتساب و إرسال الرسائل يمكنك الإطلاع على الآلية بشكل أكبر من هنا.
  23. في حال كان الدخل عبارة عن سلسلة نصية فقط، يمكن القيام بذلك عن طريق ما يلي: #include <iostream> using namespace std; int main(){ string s; int cnt = 0; while(cin >> s) cnt++; cout << cnt - 1 << endl; } حيث أن ال cin تقوم بالإدخال و تقف عند الفراغ، بالتالي عدد الفراغات سيساوي عدد الكلمات ناقص 1.
  24. إن خوارزمية ال bubble sort تفيد كما يوحي اسمها للترتيب، طبعاً بشكل عام لا نقوم باستعمالها لأنها ليست سريعة في الترتيب و توجد خوارزميات أفضل منها. آلية عملها هو أن تقوم في كل مرة بتبديل عنصرين متتالين في حال كان أحدهما أكبر من الآخر ( هذا يعتمد على إذا كنا نريد الترتيب تصاعدياً أو تنازلياً)، بشكل عام عندما نقوم بهذه الخطوة فإننا في كل مرة سنضع عنصر واحد على الأقل في مكانه الصحيح، لأنه تخيل معي أنه لدينا ترتيب تصاعدي، ففي أول مرور على المصفوفة العنصر الأكبر سيتم تبديله في كل مرة، هكذا حتى يصل إلى النهاية، في المرور التالي ثاني أكبر عنصر سيتم وضعه في مكانه الصحيح لنفس السبب، و بالتالي فإننا نريد عدد مرات مرور يساوي عدد العناصر ناقص 1، و ذلك لأنه في حال وضعنا n-1 عنصر في مكانه الصحيح فتلقائياً آخر عنصر سيكون في مكانه الصحيح، حيث n هنا هي عدد العناصر. بالتالي فكرة الكود كلها تتمثل في تكرار عملية n-1 مرة، هذه العملية هي المرور على كافة عناصر المصفوفة و تبديل عنصرين متتالين في حال كان الأول أكبر من الثاني ( ترتيب تصاعدي).
  25. مرحباً سوزان، هل يمكنك تجربة تنفيذ المطلوب على ال cmd؟ كما يفضل مشاركة صورة للكيبورد الخاصة بك. تحياتي.
×
×
  • أضف...