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

Wael Aljamal

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

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

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

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

    218

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

  1. console.group هذه الطريقة تستخدم لتنسيق المخرجات وتجميعها عند التعامل مع consloe عند استخدام console.groupتقوم بفتح مجموعة جديدة ولكي تفصلها عن التي تليها عليك كتابة console.groupEnd(); بعدد مرات بداية المجموعات التي فتحتها لكي تبدأ بمجموعة جديدة ليست أبناء للأولى console.group("group 1"); console.log("message one"); console.log("message two"); console.groupCollapsed("child group"); console.log("message one"); console.log("message two"); console.groupCollapsed("grand child group"); console.log("message one"); console.log("message two"); console.groupEnd(); console.groupEnd(); console.groupEnd(); console.group("group 2"); console.log("message one"); console.log("message two"); يوجد هذه الإجابة:
  2. أهلا بك، في حال لم يكن لديك أي خبرة برمجية سابقة، أو ميول لمجال معين، يفضل الدخول من أوسع الأبواب وأخذ معرفة شاملة في كل المجالات، فأقترح منك التسجيل في دورة "علوم الحاسب" فهي تفتح لك المجال للتعرف على البرمجة بالشكل الصحيح، ثم بعدها يمكنك التخصص في مجال معين وعندها ستكون الرؤية أفضل لك ومجال تخصصك..
  3. حسناً شكراً لك على إضافة توضيح للمشكلة، يمكنك إرفاق الحل النهائي إن وجدته ليستفيد من يقرأ السؤال.
  4. حاولت إخبارك بطريقة غير مباشرة أن Html , CSS هم أسهل مستوى يمكن تعلمه وإتقانه، لأن هذه الشيفرات فقط للعرض، وليس عليك عمل خوارزمية لتحقيق خطوت برنامج ما، جافاسكربت يمكنك تعلم أساياتها من دورتها (مسار أساسيات جافاسكربت متاح لك أيضا) مفاهيم جافاسكربت متقدمة بالنسبة ل Html , CSS. تابع أساسيات جافاسكربت من دورتها الخاصة، ثم اختر ماتراه منسباً إن أحببت جافاسكربت ورأيت أن التعامل بها يناسبك ونمط تفكيرك انتقل لدورتها، وإلا أكمل في دورة "تطوير تطبيقات الجوال بإستخدام تقنيات الويب" يتم تحديث الدورات وإضافة مسار بشكل متكرر ، فعدد التطبيقات سوف يزيد، أنت حاول أولا التطبيق مع المدرب وأنتج أول تطبيق لك، ثم ارفعه على المتجر، بعد هذا ستصبح قادراً على برمجة أفكارك الخاصة وصنع تطبيقات متنوعة على رغبتك. دورة تطوير تطبيقات الجوال بإستخدام تقنيات الويب فيها تنوع أكبر بتطبيقات الجوال لأن جميع مساراتها تدور حول كوردوفا وفي كل مسار تتعلم أشياء إضافية وتطبيق مختلف، أما دورة جافاسكربت يوجد مثال واحد لكل تقنية منها، ولكن بالطبع يتم استخدام جميع الأساسيات و جميع ميزات المكتبات و التقنيات أي ستتعلم الكثير، وبعدها اعتمد على نفسك وابحث عن المكتبات وحاول تضمينها في مشاريعك. يمكنك طرح الأسئلة بعد الانهاء من الدورة في قسم أسئلة البرمجية وسيتم متابعتك في جميع المشاريع التي تعمل بها ومساعدتك في حل المشاكل وتقديم الملاحظات اللازمة. يمكنك الوصول لجميع مشاريع الدورات (الملفات) من الرابط: github/HsoubAcademy
  5. مرحبا عبد العلي، ستتعامل في حياتك البرمجية مع أكثر من لغة برمجية بشكل عام، والعديد من أشكال تنسيق الملفات وهياكل البيانات، ويتطلب منك الأمر الصبر والمتابعة في التعلم لتستطيع تطوير ذاتك ومهاراتك ومواكبة التقدم التكنولوجي وتحديثات لغات البرمجة. إن HTML - CSS ليست لغات برمجة ولا تقوم بأي معاملات منطقية أو تعامل مع البيانات ومعالجتهم، هم فقط شيفرة يكتبها المطور ثم يعالجها المتصفح لتظهر على شكل رسوميات جميلة وواضحة للمستخدم.. إن كان لديك ضعف بهم يمكنك دراسة أساسيات تطوير الويب من دورة تطوير واجهات المستخدم حيث أعتقد أن شرحهم بها أفضل وأكثر تنوع وبمراحل مفصلة وبشكل أبسط. بالإضافة لذلك، HTML - CSS ليست بسيطة جداً لأنها تحوي على الكثير من الخصائص التي تتفاعل مع بعضها لنستطيع عرض الصفحة بالطريقة المطلوبة، وهذا يحتاج لإلمام جيد بخصائص هذه اللغات. لغات البرمجة مثل جافاسكربت - جافا - PHP - ++C - هذه اللغات لها منطق الشروط و الحلقات والدوال فهي لغات برمجة فعلية وتعالج بيانات ولها كل الخصائص أما HTML - CSS لغات ساكنة يقرأ شيفرتها المتصفح ويقوم بعرضها. نعم بالطبع يمكنك تغيير الدورة، وأنا أنصحك بدورة جافاسكربت، لأن اللغة بحد ذاتها قوية ومرنة وتسمح لك ببناء مشاريع في مختلف البيئات البرمجية في المتصفح وعلى الخادم وتطبيقات سطح المكتب... وهي أكثر لغة برمجة منتشرة الآن لكن بها العديد من المفاهيم البرمجية التي ستكون متقدمة فعليك درساتها بشكل جيد ومتقفن بداية من الأساسيات. ميزات الدورة موجودة في صفحة شرح الدورة: يمكنك التواصل مع الدعم الفني من ( مركز مساعدة حسوب ) وطلب تغيير الدورة وسيتم إبلاغك بالخطوات. يمكنك مراجعة هذا السؤال: أيضاً: أرجو القراءة بتمعن جيد، تعلمك لأساسيات HTML - CSS سيفيدك في مجال تطوير مواقع الويب وتطبيقات الهاتف التي تعتمد عليهم (كوروفا و جافاسكربت) مسار الدورة (المسار الأول من كل دورة سمكن الوصول له بشكل مجاني في حال الاشتراك في أي دورة أخرى): دورة تطوير واجهات المستخدم أساسيات تطوير الويب خذ كامل وقتك في التعلم، بالتوفيق
  6. ارجو مشاركة الشيفرة بشكل كامل، لنفهم كيفية توزيعك للشيفرات البرمجية. الفصل إلى ملفين، يكون بجعل ملف الإعداد ل Voux.store بملف منفصل وتصديره لآخر.. إن كنت تستعمل this.$store ربما الخطأ من مرجعية this. .... بشكل عام أنت تستخدم دالة غير متزامنة، async لذلك من الطبيعي تأخر تخزين المتجر، حول الشيفرة إلى promise واستخدم then..
  7. سوف نجرب تحويل الدالة إلى arrow function async nuxtServerInit({ commit, dispatch }, { req }) => { const res = await dispatch('getData', { route: '/users/user' }); }, حاول ذلك، السبب هو في الوصول ل this في باقي الشيفرة، التي لم ترفقها - جزء استعمال store أضفت => قبل جسم الدالة حاول استبدال computed: { items() { return this.$store.state.items; } }, ب computed: { items() { return store.state.items; // الوصول ل store مباشرة بدون المرور على vue } }, حاول أيضا فصل إعداد المخزن عن استدعائه
  8. يظهر هذا الخطأ في حالة استخدام برمجية Docker والحل في ملف إعداد الحاوية نضيف الشيفرة التالية COPY --from=builder /app/public/ ./public لضمان نقل الملفات
  9. إلامً تتبع الخاصية store؟ وأرجو إرفاق باقي الشيفرة والأجزاء التي ترتبط بالصفحة و الخطأ
  10. يمكننا فهم دالة حساب القوة وهي ضرب العدد بنفسه عدد من المرات، x قوة y هي جداء x*x*x*x* لعدد y من المرات. يمكننا كتابة دالة عودية بهذه الطريقة: public static int pow( int a, int n) { if ( n == 0 ) { return 1; } return a * pow(a,n-1); } سوف تتكرر عملية ضرب a بنفسها n مرة، وشرط التوقف هو n = 0 وبالاستفادة من الرياضيات، وخواص الأس aⁿ as a^n/2 ⨯ a^n/2 2^8 = Prod = ( (a ^ 2) ^ 2) ^ 2 تجزئة القوة والتوزيع /** divide & Conquer دالة to لحساب a^n. * n عدد صحيح موجب */ long power(int a, int n) { if(n==0) return 0; // إن كان الأساس 0 نعيد 0 if(a == 0) return 0; if(n%2 == 0) return power(a*a, b/2); // القوة عدد زوجي else return a * power(a*a, b/2); // القوة عدد فردي } هذا يختصر تعقيد الخوازرمية من (n)O إلى (n)log2 حيث في كل خطوة نحسب العودية لنصف قيمة الأس a^2 = a * a a^3 = a * a * a a^4 = a^2 * a^2 a^5 = a * a ^ 4 = a * a^2 * a^2
  11. هل شبكة wifi التي تحولين الاتصال فيها مخفية؟ hidden network إن كان هكذا، عليك الدخول لضبط wifi ثم مسح إعدادات هذه الشبكة وإعادة إضافتها من جديد. أيضاً يمكن تشغيل network troubleshooter وهي أداة من ويندوز، موجودة في قسم الشبكات كخيار تعمل على تفحص مشاكل الاتصال، أيضا التأكد من تحديث ويندوز قد يحل المشكلة،
  12. أحيانا يكون سبب الخطأ تضارب إصدارات المكتبات إن قمت بالتحديث ل webpack to 5 و webpack cli to 4 فلحل المشكلة: npm uninstall webpack-cli نلغي تثبيت webpack-cli ونعيد تثبيت الإصدار 3 npm install webpack-cli@3 -D لتصبح إصدارات المكتبات لديك على سبيل المثال: // package.json "devDependencies": { "webpack": "^5.2.0", "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.0" } وانتبه لجزء كتابة scripts حيث أنه يختلف: For webpack-cli 3.x: "scripts": { "start:dev": "webpack-dev-server" } ^^^^^^^^^^^^^^^^^^ For webpack-cli 4.x: "scripts": { "start:dev": "webpack serve" } ^^^^^^^^^^^^^
  13. أرجو نسخ الأخطاء التي تظهر معك لنحاول البحث عن حلول لها، وإعادة تجريب الأوامر الأساسية من pip
  14. نقوم بإسناد الخاصية عند إجراء الإتصال: $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); طالما تستخدم PDO للاتصال مع القاعدة، أضف هذا السطر بعد إنشاء الاتصال مباشرة، وسيتم تطبيقه على كل مابعده
  15. بعد تحديث المكتبات حاول إغلاق cmd وأعد فتحه والتجريب لا أعتقد هذا، لا تحتاج ++c إلا إذا قمت بتحميل الشيفرة المصدرية وأردت بناء المكتبة لديك
  16. في الإجابة السابقة يوجد برنامج rustup أرجو تحميله وتنفيذه
  17. عدلت الإجابةـ سأضيف حلول أخرى لتحديث أدوات بايثون لديك pip + wheel python3 -m venv env/python source env/python/bin/activate pip3 install --upgrade pip pip3 install wheel وحل ربما يعمل: pip3 install --upgrade pip setuptools wheel أيضاً: هذا يحدث pip قبل المكتبتين الأخريتين pip install pip --upgrade pip install setuptools --upgrade ثم كحل آخر، اتبع التوثيق إن لم تحل مشكلة التثبيت لديك: autopilot-rs/autopy حيث تم استخدام: يتطلب تثبيتها : rustup ثم rustup default nightly-2019-10-05 pip install -U setuptools-rust pip install -U autopy
  18. حاول تثبيت مكتبة pip install wheel ثم أعد تنفيذ تثبيت autopy إن كنت تستخدم pip3 pip3 install wheel ويمكنك تجربة الحل السطر الأول مثال والثاني ل autopy بدون الاعتماد على cahce التخزين المؤقت: pip install <package> --no-cache-dir pip install autopy --no-cache-dir
  19. القيمة الافتراضية ل PDO::ATTR_ERRMODE هي PDO::ERRMODE_SILENT. لن يظهر أي أخطا SQL ولا حتى PHP. PDO::ERRMODE_SILENT الوضع الصامت، لايظهر أي خطأ أو استثناء حتى لو حدث خطأ (عند نشر الموقع نستعمل هذه القيمة لكي لايظهر شيئ للزوار) أي في نمط الإنتاج بعد إطلاق الموقع. PDO::ERRMODE_WARNING يظهر الأخطء التي تحدث في PHP أو SQL والتي تكون PHP E_WARNING عند حدوث خطأ وسوف يكمل تنفيذ السكربت مع إظهار الأخطاء. PDO::ERRMODE_EXCEPTION يتم رمي استثناء عند حدوث خطأ، ويتوقف تنفيذ البرنامج. الدالة setAttributeتستخدم لضبط نمط معين أثناء عمل الاتصال، مثل نمط الخطأ كالمثال: $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); حيث أن الشكل العام له: bool setAttribute ( int $attribute , mixed $value ) يعيد true في حال نجاح إسناد القيمة للنمط. mixed هو pseudo type تمت إضافته في PHP 8، يقبل أي نوع من الأنماط، مهما كان parameter أو return أو property
  20. عليك فقط عمل scroll وتحرك الصفحة للأسفل وتحديث الصفحة، سيظهر الزر ولن يختفي (في الحالة العادية) وبعد تعديل الشيفرة ووضعها في الدالة ستعمل بشطل سليم أقصد أنت تحدد scroll معين في الصفحة وتحدثها، وستتم معالجة الشيفرة مرة واحدة، إما يظهر أو يختفي
  21. لاحظ أن الشيفرات التي كتبتها سوف يتم تنفيذهامرة واحدة: if (window.scrollY >= 600) { btn.style.display = 'block' } else { btn.style.display = 'none' } أما في الدالة window.onscroll = function () {} سيتم تنفيذ الشيفرات ضمنها في كل مرة يحدث تمرير في الصفحة onscroll هذا مستمع أحداث action listener مثله مثل الدالة: btn.onclick = function () { } التي تنتظر حدث النقر على الزر ليتم تنفيذ شيفرتها.
  22. في PostForm أرجو تمرير request.FILES كوسيط ثاني form = PostForm(request.POST, request.FILES) المراجع: https://docs.djangoproject.com/en/3.2/ref/files/uploads/ https://docs.djangoproject.com/en/3.2/topics/http/file-uploads/#handling-uploaded-files-with-a-model حل المشكلة هو تضمين: from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # Project url patterns... ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) على كل حال، تابع توثيق معينـ، ونفذ خطواته لأنه على الأغلب لديك شيئ ناقص، مثل ربط قالب HTML مع دالة رفع الملف.. simple_upload.html {% extends 'base.html' %} {% load static %} {% block content %} <form method="post" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="myfile"> <button type="submit">Upload</button> </form> {% if uploaded_file_url %} <p>File uploaded at: <a href="{{ uploaded_file_url }}">{{ uploaded_file_url }}</a></p> {% endif %} <p><a href="{% url 'home' %}">Return to home</a></p> {% endblock %} views.py from django.shortcuts import render from django.conf import settings from django.core.files.storage import FileSystemStorage def simple_upload(request): if request.method == 'POST' and request.FILES['myfile']: myfile = request.FILES['myfile'] fs = FileSystemStorage() filename = fs.save(myfile.name, myfile) uploaded_file_url = fs.url(filename) return render(request, 'core/simple_upload.html', { 'uploaded_file_url': uploaded_file_url }) return render(request, 'core/simple_upload.html')
  23. أرجو نشر الأسئلة التي ضمن الدورات في قسم التعليقات أسفل الدرس، فقط الأسئلة التي تكون خارج محتوى الدرس نطرحها في الأسئلة العامة.
  24. إن لغة البرمجة جافاسكربت هي لغة مستقلة بذاتها وفهمها واستعمالها غير مرتبط بأي لغات برمجة أخرى، حيث يمكن استخدام جافاسكربت للقيام بأي عمليات برمجية وسكربتات، يقتصر ارتباطها ل HTML - CSS في برمجة واجهات المستخدم في مواقع الويب ولا تحتاج لشيئ آخر لاستعمالها معهم. إن كنت تتابع دورة تصميم واجهات المستخدم، فهذه الدورة تبدأ بأساسيات HTML و CSS أما دورة تطوير المواقع بواسطة جافاسكربت، لاتحتاج ل HTML - CSS فكل الشيفرة يتم كتابتها ل javascript ومن ثم يتم تحويلها بدون تدخل المطور لتصبح HTML ليعرضها المتصفح. بعد اشتراكك بأي دورة في أكاديمية حسوب، سيتم فتح المسارات الأولى من باقي الدورات مجاناً ويمكنك الاطلاع عليهم ودراستهم ومنمهم أساسيات HTML - CSS في دورة تطوير واجهات المستخدم وبالطبع سوف تستفيد منها دورة تطوير واجهات المستخدم > أساسيات تطوير الويب حيث أن هنالك جزء JSX (في واجهات المستخدم) في بعض أطر العمل يتم كتابته بتنسيق مثل HTML لكنه غير مرتبط فعليا بها، .. أما React فهي مكتبة واجهات مستخدم ترتبط مباشرة مع HTML - CSS يمكنك طرح أي أسئلة تشائها في قسم التعليقات أسفل الدرس، وطلب توضيحات أو أمثلة وسيعمل المدربين على شرحهم.
  25. في حال أردن التعامل مع عدد كبير من الاستعلامات (أي ليس عدد واحد فقط، بل مئات الاستعلامات) يمكن حساب الأعداد الأولية جميعها وتخزينها في مصفوفة ثم فقط التأكد من أن هل العدد المطلوب هو أولي أم لا باستعمال خوارزيمة Sieve. نفرض أن كل الأعداد أولية بتعريف مصفوفة قيمها True نقوم بالمرور على المصفوفة وكل عدد أولي ستكون مضاعفاته بالتأكيد غير أولية، لذلك نعمل حلقة ونبدل مضاعفات العدد الحالي لتصبح غير أولية أي تعديل جميع المضاعفات ل False const int N = 10000100; bool pno[N]; void SieveOfEratosthenes() { memset(pno, true, sizeof(pno)); for (int i = 2; i*i< = N; i++) { if (pno[i] == true) { for (int j = i*2; j< = N; j + = i) // المرور على مضاعفات العدد وتعليمها كغير أولية pno[j] = false; } } } للاختبار، هل العدد n أولي أم لا نتأكد من قيمة دليله في المصفوفة فقط، نحسب الأعداد جميعهم مرة واحدة ثم عملية التحقق تتم بلحظة. SieveOfEratosthenes(); // استدعاء الدالة int n; cin >> n; cout << pno[n] << " "; وتعقيد هذه الخوارزمية سريع جداً،
×
×
  • أضف...