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

لوحة المتصدرين

  1. سامح أشرف

    سامح أشرف

    الأعضاء


    • نقاط

      11

    • المساهمات

      2934


  2. Mohammed Saeed

    Mohammed Saeed

    الأعضاء


    • نقاط

      4

    • المساهمات

      13


  3. إياد أحمد

    إياد أحمد

    الأعضاء


    • نقاط

      3

    • المساهمات

      92


  4. Hassan Hedr

    Hassan Hedr

    الأعضاء


    • نقاط

      3

    • المساهمات

      2852


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 12/19/21 in أجوبة

  1. لدي المخطط التالي: import seaborn as sns tips = sns.load_dataset('tips') rp = sns.relplot(data=tips, x='total_bill', y='tip',col='sex', row='smoker', kind='scatter') rp.fig.subplots_adjust(top=0.9) والشكل الناتج: ما أريده هو وضع عنوان عام للمخططات البيانية؟
    1 نقطة
  2. تغيير لون المحاور axis و ال ticks و الملصقات labels للرسم البياني في لدي الكود التالي وأحاول وضع أسماء للمحاور بالشكل التالي: import seaborn as sns import pandas as pd df = pd.DataFrame({'color': ['black', 'blue', 'brown'], 'num': [1, 2, 3]}) figObj = sns.barplot(x = 'num', y = 'color', data = df, color = 'red') figObj.set_axis_labels('Colors', 'Values') لكنه يعطيني الخطأ التالي: --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-9-5708b6ef67e6> in <module>() 5 data = df, 6 color = 'red') ----> 7 fig.set_axis_labels('Colors', 'Values') AttributeError: 'AxesSubplot' object has no attribute 'set_axis_labels'
    1 نقطة
  3. لدي مخطط بياني يحتوي العديد من التسميات (لكل نقطة بيانات هناك اسم) ولهذا السبب تتداخل التسميات مع بعضها البعض، لذا أريد أن يتم تدوير هذه التسميات بزاوية 90 درجة بحيث تصبح عمودية، لذا كيف يمكننا القيام بذلك؟
    1 نقطة
  4. أحاول عرض بعض النصوص في أحد القوالب ولكن هذه النصوص تحتوي على عناصر تستعملها قوالب Jinja، كالتالي: <ul> {% for item in seq %} <li>{{ item }}</li> {% endfor %} </ul> وبالتالي سيتم ترجمة هذه النصوص على أساس أنها جزء من القالب، ولكن أريد عرضها كما هي. هل توجد طريقة تمكنني من عرض هذا النص كما هو بدون تنفيذه؟
    1 نقطة
  5. أريد رفع المشاريع التي قمت بعملها لتكون معرض أعمالي ولكن لا أعرف كيف ذلك
    1 نقطة
  6. هناك دوره علي منصه udacity تعرف ب autonomous flight انا مهتم بالدوره لانها تخدم دراستي, اريد الاشتراك فيها لكن معرفتي البرمجيه ضعيعه وهذه الدوره تتطلب substantial experience in any programing language plus an intermediate experience in both c++ and python , تساءل الان اذا كانت دوره علوم الحاسب الخاصه بكم كافيه لرفع مستواي لهذا القدر قبل الاشتراك واذا كانت هذه الدوره من الاساس مناسبه لي ام لا وشكراا
    1 نقطة
  7. ستكون الاستفادة الكبرى لديك من هذه الدورة هي من مسار الخوارزميات والتفكير المنطقي يمكنك البدء بقراءة المقالات التي ذكرت سابقًا فهي ستعطيك أساس جيد في اللغات التي تريد تعلمها ++C و بايثون
    1 نقطة
  8. السلام عليكم ورحمة الله وبركاته لقد أثناء تعلمي للغة البرمجة جافا سكريبت رأيت كثير من الدوال مثل ()getDate وغيرها سؤالي هو هل يوجد مرجع او كتاب فيه جميع دوال لغة جافا سكريبت
    1 نقطة
  9. لا أظن ذلك، مع أن الدورة لا تركز على خصائص جافاسكريبت بل تقوم بواسطة جافاسكريبت بشرح مفاهيم عامة برمجية، ستواجه صعوبة بمحاولة المتابعة مع دروس الدورة في حال كنت تعمل ضمن لغة أخرى، لكن لا شيء يمنع من تطبيق الأفكار نفسها على لغة مختلفة أنت على دراية بها بما أنه لديك تجربة مع أساسيات لغة برمجة فهذا المسار ضمن الدورة سيمكن تلك الأساسيات فقط، الاستفادة الكبرى ستحققها من باقي المسارات ضمن هذه الدورة.
    1 نقطة
  10. أحاول أن أقوم بعمل مسار يحتوي على معامل واحد ولكن يجب أن يحتوي هذا المعامل على بعض الشروط، مثل أن يكون طوله من 2 إلى 5 أحرف فقط، ولا يجب أن يكون بأي أحرف غير الإنجليزية والأرقام، أي يجب أن ينطبق على التعبير التالي: [a-zA-Z0-9]{2,5} هل يمكن القيام بهذا الأمر في فلاسك Flask أم يجب أن أقوم بإستقبال المعامل داخل الدالة والتحقق منه يدويًا؟
    1 نقطة
  11. ما هو الاكثر استخداما فى سوق العمل Express JS أم Loopback 4 ؟؟ فى سوق العمل الخاص ب Node js يوجد العديد من ال frameworks وانا اريد ان اعرف ايهم اكثر انتشارا وشيوعا
    1 نقطة
  12. دورة علوم الحاسوب ستتدرب خلالها على المفاهيم التالية: مدخل إلى علوم الحاسوب أساسيات البرمجة أنظمة التشغيل ولينكس قواعد البيانات إلى عالم الويب البرمجة الكائنية الخوارزميات وبنى المعطيات أنماط التصميم أي الدورة مناسبة لمن يريد دخول مجال علوم الحاسب بشكل عام من ناحية فهم الأساسيات والأنماط والخوارزميات والتعامل مع قواعد البيانات وأنظمة تشغيل لينكس. ما تطلبه هو "خبرة" جيدة في كل من ++C و Python، الخبرة تحتاج أولا لتعلم تلك اللغات بشكل جيد، ثانيًا والأهم تطبيقها ضمن عدة مشاريع ليكون المطور قادرًا مستقبلًا على توظيف تلك اللغات في حل المشكلات المطلوبة. يمكنك مراجعة سلسلة مقالات دليل تعلم بايثون والبدء من أول مقال يمكنك مراجعة أيضًا سلسلة مقالات ++C للمحترفين والبدء من أول مقال
    1 نقطة
  13. هل أرشيف المسارات الأقدم هو تحديث للفيديوهات والكورسات القديمة ام ماذا؟؟
    1 نقطة
  14. يمكنك البدء مباشرة بالمسارات الأخرى التي تحوي معلومات أحدث، ولا حاجة لك في أرشيف المسارات الأقدم. يمكنك التخلي عن مشاهدته. السبب الأرجح في عدم التخلي عن أرشيف المسارات الأقدم بعد تحديث الكورسات هو في كون امتلاك المشترك في دورات الأكاديمية وصولا مدى الحياة، فالأكاديمية لا تلزم الطلاب بمشاهدة الفيديوهات في أوقات محددة، ولذلك نجد بعض الطلبة الذين لا يزالون يحتاجونه كونهم قد تأخروا عن إنهاء الكورس أو مشاهدته.
    1 نقطة
  15. بسال من استخدام الجافا سكريبت لماذا تستخدم الجي كويري بدلا عنها
    1 نقطة
  16. يعني ابدأ بالأرشيف ولا بالكورسات الأعلى؟
    1 نقطة
  17. بسمع انه مكتبة الجي كويري سيتم الاستغناء عنها قريبا عشان كدة انا سألت
    1 نقطة
  18. يمكنك القيام بهذا الأمر بطريقتين، الأولى عبر إستعمال JavaScript للحصول على البيانات من عنصر input وإرسالها في طلب إلى فلاسك Flask ليتم إستخدام هذه البيانات في عمل أي مهمة ثم إرجاع نتيحة معينة إلى صفحة الويب، أما الطريقة الثانية وهي الأسهل، حيث يتم إستخدام نموذج form لإرسال البيانات بطريقة POST إلى فلاسك Flask ثم يقوم بتنفيذ بعض المهام بإستخدام هذا النص ويرجع البيانات، كالتالي: في البداية تحتاج إلى تجهيز مسار route في فلاسك يستقبل هذه البيانات ويرجع قيمة معينة: @app.route('/process', methods=['POST']) def upper_text(): text = request.form['text'] processed_text = text.upper() return processed_text ومسار route آخر لعرض النموذج form: @app.route('/') def form(): return render_template('form.html') وسيحتوي الملف templates/form.html على نموذج واحد كالتالي: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Upper Text</title> </head> <body> <form method="POST" action="/process"> <input name="text"> <input type="submit"> </form> </body> </html> بهذا الشكل سوف يتم الحصول على البيانات من النموذج form ثم سيتم تحويلها إلى أحرف كبيرة (يمكنك القيام بأي شيء في الدالة upper_text) ثم يتم إرجاع البيانات إلى المتصفح مرة أخرى. يمكنك أيضًا أن تستعمل قالب ليعرض البيانات المرجعة بدلًا من عرضها في شكل نصي فقط.
    1 نقطة
  19. يستخدم فلاسك Flask مكتبة logging لعرض الرسائل في الـ console ويمكنك أن تعدل على هذا الأمر وتجعله يعرض رسائل الخطأ فقط من خلال إضافة الكود التالي: import logging log = logging.getLogger('werkzeug') log.setLevel(logging.ERROR) بهذا الشكل لن يتم عرض أي رسائل إلا رسائل الخطأ فقط. هنا مثال لكيفية إستخدام هذا الكود في تطبيق فلاسك: from flask import Flask, request, render_template import logging app = Flask(__name__) # Stop logger log = logging.getLogger('werkzeug') log.setLevel(logging.ERROR) @app.route('/', methods=['POST', 'GET']) def index(): return render_template('home.html') if __name__ == '__main__': app.run(debug=True)
    1 نقطة
  20. يمكنك تمرير قيمة ثابتة لكل سطر في ناتج الاستعلام مثل type = x لتعرف سطر اول او ثاني SELECT *, 'R1' AS type FROM table UNION SELECT *, 'R2' AS type FROM table و مرر R2 للاستعلام الثاني ثم يمكنك معرفة كل سطر من الناتج لمن يعود حل آخر، لا بأس بعمل استعلامين، وخزن نتيجتهما في متغيري منفصلين و طبق الشرط الذي يحلو لك لكل ناتج.
    1 نقطة
  21. كلامهما عبارة عن مصرِّف من مجموعة مصرفات جنو GNU Compliers Collection أو إختصارًا GCC (بأحرف كبيرة)، وهو عبارة عن كل اللغات المختلفة التي يدعما مصرف جنو GNU Compiler. التسمية سُمي المصرِّف gcc كإختصار لـ GNU: C Compiler ، بينما تم تسميه المصرِّف ++g إختصار لـ GNU C++ Compiler الإختلافات توجد مجموعة من الإختلافات الرئيسية بينهما: المصرِّف gcc سوف يقوم بتصريف الملفات c.* و cpp.* بناءً على اللغة المستخدمة، أي أن الملفات التي تنتهي بالصيغة c. سوف يتم ترجمتها على أساس لغة C ونفس الأمر بالنسبة للملفات التي لها الصيغة cpp.* سيتم تصريفها على أساس لغة ++C، على الجانب الآخر لن يقوم المصرف ++C بهذا الأمر وسيقوم بالتعامل مع كلا الصيغتين على أنهما ملفات ++C بشكل إفتراضي. عند إستخدام المصرِّف ++g لربط ملفات الكائنات Object files سوف يقوم تلقائيًا بربط المكتبات القياسية المستخدمة std C++ libraries، بينما المصرِّف gcc يحتاج إلى إستخدام المعامل التالي: gcc -xc++ -lstdc++ -shared-libgcc المصرِّف gcc سوف يستخدم شيفرات جامعة (macros) أقل عند تصريف ملفات c.* عند إستخدام المصرف gcc لتصريف ملفات ++C أو عند إستخدام المصرِّف ++g (لتصريف الملفات c.* أو cpp.*) فسيتم إستخدام بعض الـ Macros الإضافية، كالتالي: #define __GXX_WEAK__ 1 #define __cplusplus 1 #define __DEPRECATED 1 #define __GNUG__ 4 #define __EXCEPTIONS 1 #define __private_extern__ extern كخلاصة لما سبق، يمكن إستخدام كلا المصرفين لتصريف ملفات ++C بدون مشكلة، ويفضل أن تستخدم ++g عند التعامل معه ++C بشكل عام، لأنه يسهل على المبرمج عملية ربط ملفات الكائنات Object Files.
    1 نقطة
  22. هذه العادة البرمجية جاءت من لغة C ، حيث أنه في لغة C الدالة التي لديها قوسين فارغين كالدالة التالية: int func(); تقبل أي عدد من المدخلات من أي نوع، حيث لا يقوم المصرف بالتحقق في هذه الحالة من عدد المدخلات إلى الدالة، ولجعل الدالة لا تقبل أي مدخلات على الإطلاق يجب أن تكتب النوع void كمعامل لهذه الدالة، ويؤدي إستخدام الدالة بأقواس فارغة إلى سلوك غير معروف undefined behavior, لذلك يجب أن يتم تمرير معامل واحد على الأقل، وفي الوقت الحالي يفضل أن يتم إستخدام طريقة ... لعمل دالة تقبل أي عدد من المدخلات: int func(int args, ...); أما في لغة ++C فإن الأقواس الفارغة ( ) تعني أن الدالة لا تقبل أي مدخلات، ومع ذلك فإن void كمعامل للدالة في لغة ++C يُعد صحيحًا أيضًا. وبناءً على ما سبق فلا يوجد فرق في للأداء بين الطريقتين.
    1 نقطة
  23. في BeautifulSoup يمكن إستخدام التابع find أو find_all للبحث عن عنصر معين من خلال تمرير دالة كمعامل لهذا التابع، كالتالي: import requests from bs4 import BeautifulSoup def check_content(tag): return tag.name=="h2" and "دورة" in tag.get_text() user_input_url = 'https://academy.hsoub.com/store/c1-%D8%AF%D9%88%D8%B1%D8%A7%D8%AA-%D8%AA%D8%B9%D9%84%D9%8A%D9%85%D9%8A%D8%A9/' website_content = requests.get(user_input_url.strip()).text soup = BeautifulSoup(website_content, features='lxml') print(soup.find_all(check_content)) # سيتم طباعة قائمة من العناصر التي تحتوي على كلمة 'دورة' في داخلها لاحظ أن الدالة check_content يجب أن تقوم بإرجاع قيمة منطقية Boolean الفرق بين find و find_all هو أن التابع find سقوم بإرجاع أول عنصر يجده، بينما التابع find_all سوف يقوم بإرجاع كل العناصر التي تنطبق عليها الشروط. أيضًا يمكن إستعمال الأنماط التعبيرية regular expression للبحث عن النصوص بطريقة متقدمة أكثر، كالتالي: import requests from bs4 import BeautifulSoup import re user_input_url = 'https://academy.hsoub.com/store/c1-%D8%AF%D9%88%D8%B1%D8%A7%D8%AA-%D8%AA%D8%B9%D9%84%D9%8A%D9%85%D9%8A%D8%A9/' website_content = requests.get(user_input_url.strip()).text soup = BeautifulSoup(website_content, features='lxml') h2_elements = soup.find_all('h2') # تحديد كل عناصر h2 # سنتحقق من محتوى كل عنصر من عناصر h2 التي تم تحديدها for element in h2_elements: if element.find_all(text=re.compile("دورة")): # إن كان محتوى العنصر يحتوي على الكلمة دورة print(element)
    1 نقطة
  24. في الواقع هذا ليس معامل واحد بل معاملين معًا، الأول هو معامل الإنقاص -- والثاني هو معامل المقارنة < ، وبذلك يتم مقارنة قيمة x مع الصفر ثم يتم إنقاص واحد من هذه القيمة، ليكون الكود أوضح يمكنك أن تستخدم الأقواس، كالتالي: #include <iostream> int main() { int x = 11; while ((x--) > 0) { std::cout << x << std::endl; } return 0; } لاحظ يبدو الكود أكثر وضوحًا الآن، كما يمكن إستعمال نفس الطريقة في حلقة for: for(int x = 11; x --> 0;) { std::cout << x << std::endl; }
    1 نقطة
  25. السبب ليس تأثير هذه الطريقة في إستخدام المجال std على أداء البرنامج، في الواقع هذا الكود لن يؤثر على أداء البرنامج بل على طريقة تصريفه compiling حيث قد تظهر العديد من الأخطاء في حالة وجود دوال مشابة للموجودة في المجال std، فعلى سبيل المثال إن كان لدينا الكود التالي: using namespace foo; // يحتوي على الدالة xyz using namespace bar; // يحتوي ايضًا على الدالة xyz الكود السابق سوف يؤدي إلى خطأ أثناء عملية التصريف بسبب تعريف الدالة xyz مسبقًا، وبالتالي لا تستفيد من فضاءات الأسماء namespaces حيث أن سبب إستخدامها هو حل هذه المشكلة من الأساس. يمكنك الإطلاع على هذه المقالة لمزيد من المعلومات حول فضاءات الأسماء namespaces: ملاحظة يمكنك أن تستعمل اللكود التالي في حالة أردت إستخدام cout بدون كتابة اسم المجال std: #include <iostream> // إستخدام cout فقط using std::cout; int main() { cout << "hello, wolrd\n"; return 0; } بهذه الطريقة يمكنك إستعمال كل الدوال من المكتبة القياسية iostream وفي نفس الوقت تستطيع إستعمال cout بشكل مباشر.
    1 نقطة
  26. لتحسين ترتيب نتائج المدونة تحتاج إلى أن تتعلم أكثر عن تحسين محركات البحث Search Engine Optimization أو ما يعرف بـ SEO، حيث أن هناك الكثير من العوامل التي تقوم محركات البحث بالإعتماد عليها لترتيب نتائج البحث، ومن هذه العوامل: عنوان المقالات: يجب ان يكون جيد ومعبر عن المقالة وليس طويل لكي يظهر بشكل كامل في نتائج البحث. الكلمات المفتاحية: يجب أن تختار الكلمات التي يبحث عنها الزوار وتحددهم بنائًا على الأهمية، يمكنك أن تستعمل أدوات لمساعدك في البحث عن هذه الكلمات مثل Semrush أو ahrefs. وسوم Metatag: يجب أن تحتوي المدونة على وسوم Meta Tags معدة بشكل جيد حتى تتمكن محركات البحث من تصنيف صفحات مدونتك. الصور: يمكن أن تؤثر الصور التي أستخدمها على SEO المدونة وعلى الزوار أيضًا، الروابط: تحتاج إلى عمل روابط خلفية backlinks تشير إلى مدونتك لكي تحصل على زيارات أكثر من مواقع ومنتديات مختلفة. السرعة: سرعة المدونة عامل مهم في ترتيب نتائج المدونة في محركات البحث المدة التي يستغرقها الزوار في تصفح مدونتك وعوامل أخرى كثيرة، يمكنك أن تتعلم وتقرأ أكثر حول تحسين محركات البحث من خلال قسم تهيئة محركات البحث SEO في أكاديمية حسوب من هنا. كما أن عليك أن تهتم بالمحتوى كثيرًا، فهو ما يريده الزائر ولن تهتم لك محركات البحث إن لم تهتم أنت بزوارك.
    1 نقطة
  27. أكواد جافاسكريبت لا يمكن إخفائها، لأن المتصفح يجب أن يقوم بتحميلها حتى يستطيع أن ينفذها، وبما أن المتصفح يقوم بتحميلها فيمكن للمستخدم الحصول على هذه الأكواد من خلال أدوات المطورين dev tools في المتصفح، لكن يمكنك أن تقوم بتحويل الكود لكي يكون صعب الفهم، وهذا ما يسمى التعميم Obfuscation حيث نقوم بتحويل الكود التالي: function NewObject(prefix) { var count=0; this.SayHello=function(msg) { count++; alert(prefix+msg); } this.GetCount=function() { return count; } } var obj=new NewObject("Message : "); obj.SayHello("You are welcome."); ليكون بهذا الشكل على سبيل المثال: var _0xafc3=["\x53\x61\x79\x48\x65\x6C\x6C\x6F","\x47\x65\x74\x43\x6F\x75\x6E\x74","\x4D\x65\x73\x73\x61\x67\x65\x20\x3A\x20","\x59\x6F\x75\x20\x61\x72\x65\x20\x77\x65\x6C\x63\x6F\x6D\x65\x2E"];function NewObject(_0xe9e5x2){var _0xe9e5x3=0;this[_0xafc3[0]]= function(_0xe9e5x4){_0xe9e5x3++;alert(_0xe9e5x2+ _0xe9e5x4)};this[_0xafc3[1]]= function(){return _0xe9e5x3}}var obj= new NewObject(_0xafc3[2]);obj.SayHello(_0xafc3[3]) وسيعمل كل شيء على ما يرام، يمكنك تجربة الكود من خلال تشغيله في الـ console توجد أداة مجانية تسمى Javascript Obfuscator تقوم بهذا الأمر
    1 نقطة
  28. مكتبة React.js المستخدمه في الويب تختلف عن React Native المستخدمه في عمل تطبيقات الهواتف الذكية، لكنهما يشتركان في نفس طريقة كتابة الكود بالإضافة إلى إستخدام نفس المباديء لتنفيذ الأمور، مما يعني أنه بمجرد تعلم React سيكون من السهل جدًا تعلم React Native. وبالتأكيد يمكن إستخدام React للمشاريع الكبيرة، وتوجد بالفعل الكثير من المواقع الضخمة التي تستعمله مثل Trello و AWS و Udacity وغيرهم الكثير من المشاريع والمواقع الكبيرة. بالإضافة إلى تطبيقات كبيرة ومعروفة (على الهواتف الذكية) التي بنيت بإستخدم React Native مثل Instagram و Pinterest و جميع تطبيقات office 365 و tesla و walmart و wix.
    1 نقطة
  29. حسب هذا التعديل في منتدى Adobe فإن إمكانية تغير كلمة Sample في هذه القائمة سوف يؤدي إلى بطئ في الفوتوشوب، لذلك لا توجد إمكانية لتغير هذه الكلمة في الوقت الحالي، بدلًا من ذلك يمكنك أن تقوم بكتابة الجملة التي تريد وتحديدها وفتح قائمة تغير الخط والتنقل بين الخطوط من خلال الأسهم لتشاهد شكل الجملة يتغير مع تغير الخط. وبإمكانك أيضًا تستعمل خدمة مثل Google Fonts أو Adobe Fonts لتبحث الخط المناسب لك، كما تقدم هذه المواقع إمكانية كتابة جملة مخصصة لترى شكل الجملة في كل الخطوط كما في الصورة:
    1 نقطة
×
×
  • أضف...