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

Hassan Hedr

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

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

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

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

    38

كل منشورات العضو Hassan Hedr

  1. دورة تطوير التطبيقات باستخدام لغة Python ستتعلم خلالها أساسيات بايثون، ثم ستستخدم اللغة لتطوير عدة تطبيقات كاملة باستخدام أشهر أطر العمل مثل Django و Flask، التطبيقات هي تطبيقات Fullstack أي ستتعلم خلالها بناء تطبيق كامل من واجهة المستخدم إلى بناء منطق التطبيق وتخزين بياناته وجلبها من قاعدة البيانات، يوجد مسار مخصص ل Flask لبناء واجهة برمجة تطبيات API، وهو مسار مخصص لبناء نظام خلفي Backend، يمكنك الاطلاع على صفحة الدورة مذكور فيها كل النقاط التي تغطيها الدورة مع فيديوهات مقتنطفات وشروحات عن الدورة، بالتوفيق لك
  2. يرجى استبدال الملفات بمحتوياتها المتعلقة فقط بالمشكلة، ضمن الأسئلة العامة نضيف الشيفرة بشكل نصي دون إرفاق الملفات، في حال كنت تواجه مشكلة تتعلق درس ما في الدورة يمكنك إضافة تعليقك أسفل الدرس مع إرفاق ملفات المشروع لنستطيع المساعدة
  3. الخطأ لديك في جملة شرط المقارنة استخدمت معامل الإسناد "=" بدلًا من معامل المساواة "=="، لحل المشكلة عدل الشرط ليصبح كالتالي: if (iconsBtn[i].innerHTML == `<i class="fa-solid fa-circle-plus"></i>`){ ^^ }
  4. يوجد مقالات عدة منشورة عن تقنية Sass ضمن الأكاديمية يمكنك الاستفادة من قراءتها، ستتعلم فيها أساسيات Sass مع بعض الأمثلة العملية عن استخدامها: يمكنك أيضًا الاستفادة من مشاهدة الفيديو التالي الذي يشرح أساسيات استخدام Sass:
  5. مع الوقت وتكرار حدوث مشاكل مشابهة ستكون لديك الخبرة في حصر المشاكل المحتملة وتحديد المشكلة بدقة
  6. يرجى في المرات القادمة فقط إرفاق الشيفرة ضمن نص السؤال مع تنسيقها بشكل مناسب وعدم إرفاق ملفات المشروع، السبب في المشكلة هو ترتيب ظهور العناصر فوق بعضها حيث عنصر الصورة يغطي الزر ويمنع الضغط عليه، يمكن حل المشكلة بإضافة التنسيق التالي: .card-icon { z-index: 1; }
  7. المشكلة لديك في شيفرة جافاسكريبت تحاول طباعة متغير غير معرف مما يسبب مشكلة ويوقف تنفيذ باقي الشيفرة البرمجية حاول تغيير اسم المتغير icons الذي تحاول طباعته الى اسمه الصحيح iconsBtn كالتالي: //.. console.log(iconsBtn) ^^^^^^^^ for (let i = 0; i < iconsBtn.length; i++) { console.log(iconsBtn[i]) ^^^^^^^^^^^ //.. } في حال بقيت المشكلة بعد التعديلين لديك يرجى إرفاق تنسيقات CSS للصفحة
  8. المشكلة الثانية التي تظهر لك بسبب إعادة تعريفك لنفس المتغيرات التي عرفت سابقًا ضمن الصفحة عبر Console، لن ينجح الأمر في محاولة لصق الشيفرة مرة أخرى في Console، يرجى أولًا إرفاق شيفرة HTML للصفحة ومحاولة تبديل السطر التالي: console.log(icons[i]) بالسطر التالي للتأكد من عناصر الأزرار التي تضيف إليها الحدث click: console.log(iconsBtn[i]) ^^^^^^^^
  9. نعم يوجد الكثير من الفرص في مجال البرمجة، يمكنك الاطلاع على الوظائف التي تنشر دوريًا ضمن منصة بعيد، الكثير من الشركات تطلب مبرمجين باختصاصات ومهارات مختلفة بحسب احتياجاتها براتب شهري بحسب الوظيفة المتاحة والمسؤوليات كمبتدئ لن تجد الكثير من الفرص، ركز على تطوير مهاراتك وبناء معرض أعمال تعرض فيه أعمالًا أنجزتها حتى لو كانت وهمية بغرض عرض مهاراتك وما يمكنك تقديمه للآخرين، لا يوجد وقت محدد هناك العديد من العوامل التي تحدد المدة اللازمة لكي تصبح متقنا لمهارة معينة، مثل قدرتك على التعلم والوقت المخصص لذلك والمجال والمهارة التي تحاول تعلمها وجودة الدروس التي تتعلم منها وقدرتك على البحث والفهم وغيرها ركز على تطوير مهاراتك فهي الوحيدة الكفيلة بزيادة فرص العمل لك، يمكنك الاستفادة أيضًا من قراءة المقالات التالية: والكتب التالية ستكون مفيدة جدًا لك لرسم صورة واضحة من أين تبدأ وكيف تخطط وترسم أهدافك وتنفذها:
  10. بفرض إزالة التعليق <-- --!> التنسيق صحيح، حيث أي عنصر لديك خاصية التموضع absolute يتم تحديد مكانه بالنسبة إلى أقرب عنصر أب له لديه خاصية التموضع relative، في حالتك يمكنك التحكم بمكان العناصر الثلاث الأبناء باستخدام top أو bottom أو left أو right بناءًا على مكان العنصر الحاوي لها <div style="position: relative"> <!-- يتموضع بالنسبة لهذا العنصر --> <div> <div style="position: absolute"> <!-- العنصر هذا --> </div> </div> </div> يمكنك الاستفادة من قراءة المقال التالي:
  11. يمكن توظيف البرمجة في مجالات عدة تستخدم الرياضيات بشكل كبير، مثل تحليل البيانات والإحصاء ومجال تعلم الآلة، حيث تعتمد تلك المجالات على عدة نماذج رياضية لتطوير تطبيقات مفيدة، من أفضل اللغات التي تساعدك في هذا المجال هي لغة بايثون، فهي لغة سهلة التعلم وقوية وتركز على الانتاجية، وتملك الكثير من المكتبات المختصة في المجالات الرياضية التي تساعدك في هذا المجال، يمكنك البدء أولًا بتعلمها، يمكنك الاستفادة من سلسلة مقالات دليل تعلم بايثون والدرس الأول منها: والاستفادة من مقالات تشرح تطبيقات رياضية باستخدام لغة بايثون، كالمقالات التالية: يمكنك القراءة والتعلم عن مجال الذكاء الاصطناعي وتعلم الآلة بداية، فهو متشعب وخلال اطلاعك على المجال ستتعلم عن الكثير من النماذج الرياضية وحلول تحليل البيانات، كتاب مدخل إلى الذكاء الاصطناعي سيفيدك كثيرا للتعرف على هذا المجال: والاستفادة من المقالات المنشورة في تطبيقات هذا المجال التالية:
  12. لا يعدل فوتوشوب على مقاس الصور بعد فتحها بواسطته مباشرة، لاحظ في أسفل يسار النافذة يظهر لك قياس الصورة الأصلي تأثير انخفاض الجودة قد يكون بسبب درجة التكبير الحالية التي هي أيضًا 80%، يمكنك عرض الصورة بحجمها الحقيقي بالضغط على Ctrl + 1 أو من View > 100%
  13. بحسب الطريقة التي تحفظ بها الصورة قد يؤثر ذلك على حجم الصورة المستخرجة، تأكد أولًا من Edit > Preferences > Export أن إعداداتك مطابقة للتالي: بعدها حاول تخريج الصورة باستخدام File > Export > Quick Export as PNG يمكنك الاستفادة من قراءة المقال التالي، لتتعرف على طريق تخفيض حجم ملفات الصور وتتجنبها:
  14. هناك المئات بل آلاف الأوامر المتاحة ضمن نظام لينكس، ومن الصعب تذكُّر كل تلك الأوامر خصوصًا على المستخدم المبتدئ. لكن لا داعي لتذكر جميع الأوامر، إذ يمكنك حفظ الأوامر التي تستخدمها على نحوٍ متكررٍ فقط. يستعرض في هذا المقال قائمةً بأوامر لينكس الشائعة، بحيث يمكنك استخدامها مرجعًا لك لاحقًا، فهي مناسبةٌ لكلٍ من المستخدم العادي وصاحب الخبرة. أوامر أساسية في لينكس سنستعرض في هذا القسم بعض الأوامر الأساسية في لينكس مع أمثلةٍ عليها. table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } الأمر الوصف hostnamectl عرض معلومات حول النظام، مثل نظام التشغيل والنواة ونسخة الإصدار الحالي date عرض التاريخ والوقت الحالي للنظام hostname عرض اسم المضيف للنظام ifconfig عرض عنوان IP وعنوان Mac للنظام w عرض المستخدمين المسجلين دخولهم إلى النظام free -m عرض المساحة الفارغة والمُستخدمة من الذاكرة ضمن النظام top عرض قائمة بالعمليات الجارية في الوقت الحالي ls عرض قائمة بالملفات والمجلدات الموجودة ضمن المجلد الحالي ls -al عرض كل الملفات والمجلدات بما فيها الملفات المخفية، ومعلومات عنها، مثل الأذونات والحجم واسم المالك لها cd تغيير المجلد الحالي إلى المجلد الرئيسي .. cd تغيير المجلد الحالي إلى المجلد الأب cat filename عرض محتويات الملف cat file1 file2 > file3 دمج الملفات المُسماة file1 و file2 وتخزين الخرج في ملف جديد بالاسم file3 tail filename عرض آخر 10 أسطر من الملف head filename عرض أول 10 أسطر من الملف mv oldfile newfile إعادة تسمية ملف rm filename حذف ملف mkdir dirname إنشاء مجلد جديد rm -rf dirname حذف مجلد history عرض قائمة بجميع الأوامر المُستخدمة clear مسح محتوى الطرفية shutdown -h now إيقاف تشغيل النظام reboot إعادة تشغيل النظام أوامر إعداد الشبكة يعرض الجدول التالي أشهر الأوامر المستعملة في إعدادات الشبكات في لينكس: الأمر الوصف ip addr show أو ifconfig عرض قائمة بكافة عناوين IP وواجهات الشبكة ip addr add IP-Address dev eth1 إضافة عنوان IP مؤقت للواجهة eth1 netstat -pnltu عرض قائمة بجميع المنافذ التي في حالة استماع whois domainname عرض معلومات أكثر عن اسم نطاقٍ ما dig domainname عرض معلومات DNS عن اسم نطاقٍ ما host domainname تنفيذ أمر بحث عن عنوان IP الخاص باسم نطاقٍ ما dig -x IP-Address تنفيذ أمر بحث عكسي لعنوان IP dig -x domainame تنفيذ بحث عكسي لاسم نطاق ما ping host-ip التحقق من الاتصال بي مضيفين أوامر أذونات الملفات نعرض في هذا القسم أهم الأوامر المستخدمة في إدارة أذونات الملفات وتقييد صلاحيات الوصول إليها: الأمر الوصف ls -l filename عرض الأذونات الحالية للملف chmod 777 filename إضافة أذونات كاملة بالقراءة والكتابة والتنفيذ للجميع chmod -R 777 dirname إضافة أذونات كاملة للمجلد ولجميع مجلداته الفرعية chmod 766 filename إضافة أذونات كاملة للمالك وأذونات القراءة والكتابة للمجموعة المالكة والبقية chmod -x filename إزالة إذن التنفيذ من الملف chown username filename تغيير ملكية الملف chown user:group filename تغيير المالك والمجموعة المالكة للملف chown -R user:group dirname تغيير المالك والمجموعة المالكة للمجلد وجميع مجلداته الفرعية أوامر إدارة المستخدم والمجموعة يُعد نظام لينكس نظامًا متعدد المستخدمين، أي يمكن لعدة مستخدمين الدخول والعمل على النظام في نفس الوقت. قد يحتاج مستخدمين أو أكثر أحيانًا إلى مشاركة الوصول إلى موارد النظام، مثل الملفات والمجلدات، وبالتالي يمكننا الاستفادة من إدارة المستخدمين والمجموعات لتحقيق ذلك. الأمر الوصف w عرض كل المستخدمين المسجلين دخولهم useradd username إضافة حساب مستخدم جديد userdel -r username حذف حساب مستخدم usermod [option] username تعديل معلومات حساب المستخدم، مثل المجموعة والمجلد الرئيسي والصدفة وتاريخ انتهاء الصلاحية usermod -aG groupname username إضافة مستخدم إلى مجموعة groupadd groupname إنشاء مجموعة جديدة groupdel groupname حذف مجموعة last عرض معلومات عن آخر مستخدم سجَّل دخوله id عرض UID و GID للمستخدم الحالي أوامر إدارة العمليات عند تنفيذ تطبيقٍ ما ضمن لينكس سيُعيَن معرّفٌ ID للعملية، ويُسمى أيضًا PID. تساعدنا إدارة العمليات في مراقبة وإدارة التطبيقات. الأمر الوصف ps عرض كل العمليات الفعالة ps -ef | grep processname عرض معلومات عن عملية محددة top عرض وإدارة كافة العمليات في الوقت الحقيقي pstree عرض العمليات مثل مخطط شجرة lsof عرض قائمة بالملفات المفتوحة من قبل العمليات المُشغَّلة حاليًا kill pid إنهاء عمل عملية محددة بواسطة معرف العملية ID killall processname إنهاء عمل كل العمليات بواسطة الاسم bg عرض الأعمال المتوقفة أو التي تعمل في الخلفية pidof processname عرض المعرِّف PID لعمليةٍ ما أوامر إدارة القرص سنستعرض في هذا القسم أوامر إدارة القرص، مثل إضافة وحذف الأقسام وتركيب قسم والتحقق من مساحة القرص الخالية وتهيئة القسم وأوامر أخرى. الأمر الوصف fdisk -l عرض قائمة بكافة أقسام القرص fdisk /dev/sda إنشاء قسم جديد ضمن الجهاز dev/sda/ mkfs.ext4 /dev/sda1 تنسيق القسم المسمى dev/sda1/ fsck.ext4 /dev/sda1 فحص وإصلاح نظام الملفات من جميع الأخطاء mount /dev/sda1 /mnt وصل أي قسم ضمن أي مجلد df -h عرض المساحة الخالية لنظام الملفات المركب df -i عرض عدد مؤشرات الفهرسة inodes المُتاحة ضمن نظام الملفات du -hs عرض حجم المجلد الحالي lsblk عرض معلومات عن الأجهزة المحظورة lsusb -tv عرض قائمة بكل الأجهزة من النوع USB hdparm -tT /dev/sda تنفيذ اختبار سريع للقراءة على القرص dev/sda/ badblocks -s /dev/sda اختبار الكتل غير القابلة للقراءة على القرص dev/sda/ أوامر إدارة الحزم سنستعرض في هذا القسم قائمةً بأوامر تثبيت وحذف وإدارة الحزم في لينكس. الأمر وصف apt-get install packagename تثبيت حزمة على توزيعةٍ مبنية على ديبيان Debian apt-get remove packagename حذف حزمة على توزيعةٍ مبنية على ديبيان dpkg -l | grep -i installed للحصول على قائمة بجميع الحزم على التوزيعات القائمة على دبيان dpkg -i packagename.deb تثبيت حزمة بلاحقة "deb." apt-get update تحديث المستودع على توزيعةٍ مبنية على ديبيان apt-get upgrade packagename تحديث حزمة معينة على توزيعةٍ مبنية على ديبيان apt-get autoremove إزالة جميع الحزم غير المرغوب بها على توزيعةٍ مبنية على ديبيان yum install packagename تثبيت حزمة على توزيعةٍ مبنية على RPM yum remove packagename حذف حزمة على توزيعةٍ مبنية على RPM yum update تحديث كافة حزم النظام إلى آخر إصدار على توزيعةٍ مبنية على RPM yum list --installed عرض قائمةٍ بالحزم المُثبتة على توزيعةٍ مبنية على RPM yum list --available عرض قائمةٍ بجميع الحزم المتاحة على توزيعةٍ مبنية على RPM أوامر الضغط وفك الضغط تُعد Tar و Zip و Unzip أشهر الأدوات المساعدة لسطر الأوامر المستخدمة لضغط وفك ضغط الملفات والمجلدات في لينكس وإليك أشهر الأوامر التي يمكن توظيفها فيها: الأمر الوصف tar -cvf filename.tar filename ضغط ملف إلى ملف أرشيف Tar tar -xvf filename.tar فك ضغط ملف Tar tar -tvf filename.tar عرض محتويات ملف Tar tar -xvf filename.tar file1.txt فك أرشفة ملف ما ضمن ملف Tar tar -rvf filename.tar file2.txt إضافة ملف إلى ملف Tar zip filename.zip filename ضغط ملف إلى ملف zip zip filename.zip file1.txt file2.txt file3.txt ضغط عدة ملفات إلى ملف zip zip -u filename.zip file4.txt إضافة ملف إلى ملف zip zip -d filename.zip file4.txt حذف ملف من ملف zip unzip -l filename.zip عرض محتويات ملف أرشيف zip unzip filename.zip فك ضغط ملف unzip filename.zip -d /dirname فك ضغط ملف إلى مجلدٍ محدّد الخاتمة عرضنا في الأمثلة السابقة أكثر الاستخدامات شيوعًا لأوامر لينكس، إذ ستساعدك تلك الأمثلة في تنفيذ مهام إدارة النظام اليومية المتكررة. ترجمة -وبتصرف- للمقال "Linux Commands Cheat Sheet" لصاحبه Hitesh J. اقرأ أيضًا ألف باء أساسيات التعامل مع لينكس مدخل إلى طرفيّة لينكس Linux Terminal
  15. بنفس الطريقة بعد جلب البيانات من الخادم يمكنك معالجتها وتمريرها للمكون Chart باستخدام map، مثلًا إذا أردت رسم مخطط يوضح اسم كل موظف مع قيمة راتبه يمكنك تطبيق ذلك كالتالي: const employeeData = employeeList.map(employee => ({name: employee.name, wage: employee.name}); //.. <Chart data={ employeeData } title="رواتب الموظفين" grid dataKey="wage"/> هنا عدلنا شكل البيانات القادمة لتصبح من الشكل التالي: [ { name: '...', wage: ... }, ... ] ومررناها إلى Chart مع تعيين المفتاح إلى القيمة wage من خلال الخاصية dataKey
  16. الشيفرة تعمل لديك بشكل سليم ولا يتم تحديث الصفحة تأكدي من أنك تعاينين نفس الصفحة ذات الشيفرة المصدرية المرفقة وليس نسخة أخرى، أيضًا سرعة التنفيذ بسبب أن العمليات تتم على المتصفح مباشرة، التأخير في التطبيقات عادة يكون بسبب إرسال طلب AJAX إلى الخادم وانتظار الرد ثم إضافة المهمة وتحديث الواجهة، يمكنك إذا أردت إضافة تأخير يدوي بشكل مقصود لمحاكاة عملية التأخر في وصول الرد بالاستفادة من التابع setTimeout كالتالي: <button onclick="setTimeout(addLi, 1000)">Add</button> ^^^^^^^^^^ ^^^^^^^ ستلاحظين تأخر لمدة ثانية قبل إضافة المهمة للقائمة
  17. يرجى إرفاق الشيفرة ضمن نص السؤال حتى يتوضح استفسارك وتحصلين على حل للمشكلة
  18. شكرًا لك على إرفاق الشيفرة، ما هو شكل البيانات الذي يأتي من المسار employees في التابع التالي: const getEmployees = () => { Axios.get("http://localhost:3001/employees").then((response) => { setEmployeeList(response.data); // data شكل البيانات }); }; هل يمكنك إرفاق مثال عنها كما ذكرت لك شكل تلك البيانات مهم لحل المشكلة هل تحوي فقط على name و age، من غير الواضح في شيفرة الخادم ما هو شكل تلك البيانات
  19. نعم عند طرح سؤالك ضمن قسم الأسئلة العامة في الأكاديمية يفضل دومًا إرفاق الشيفرة بشكل نصي بدلًا من الصور أو إرفاق الملفات، وذلك حتى تحصل على إجابة مناسبة من الضروري إرفاق شكل البيانات التي تجلبها (حتى لو كانت بيانات وهمية) لأن طريقة معالجتها وتمريرها إلى المخطط chart يعتمد على شكلها، لذا يرجى إرفاق مثال عن البيانات التي تأتي من الخادم كمثال كي تتوضح المشكلة وتحصل على الحل المناسب لك
  20. ضمن الدورات التي توفرها الأكاديمية يوجد دورة مختصة بتطوير التطبيقات باستخدام لغة Python تغطي النقاط التالية: تعلمك أساسيات البرمجة بلغة بايثون تطوير تطبيقات برمجية بلغة بايثون التعرف على أساسيات إطار العمل جانغو Django تطوير متجر إلكتروني باستخدام جانغو Django تطوير واجهة برمجية API باستخدام فلاسك Flask ستأهلك الدورة لتملك مهارات تطوير التطبيقات العملية باستخدام لغة بايثون، وتستطيع بعدها تنفيذ المشاريع الحقيقية باستخدام مهاراتك في البداية يوجد صعوبة نسبية في تعلم أي مجال جديد، لكن مع التمرين والتطبيق العملي تكتسب المهارة مع الوقت وتطور من نفسك بالتوفيق لك
  21. يرجى استخراج وإرفاق الشيفرة الموضحة في الصورة بشكل نصي ضمن نص السؤال حتى نستطيع المساعدة يمكنك بهذه الحالة إضافة التنسيق مباشرةً ضمن نص HTML في أثناء بناءه اعتمادًا على الشرط، وبالاستفادة من الخاصية style كالتالي: // 1 - نحذف الشيفرة السابقة //if (item["caffeine"] >= 250) // item["name"] = backgroundColor = 'red' // 2 - نضع شرط التنسيق والتنسيق ضمن العنصر body += ` <tr> <th scope="row">${++index}</th> <td>${item["decafe"]}</td> <td ${item["caffeine"] >= 250 ? 'style="background-color: red"' : ''} >${item["name"]}</td> <td>${item["caffeine"]}</td> <tr> `;
  22. يوجد العديد من المقالات المنشورة التي تشرح تقريبًا كافة جوانب لغة الاستعلام SQL، يمكنك الاستفادة من قراءتها والبدء منها في التطبيق العملي حتى البدء ببناء أمثلة عملية كمثال، كقاعدة بيانات لتطبيق ملاحظات، أو قاعدة بيانات لمدرسة لإدارة الطلاب وفصولهم ودرجاتهم، أو قاعدة بيانات إدارة مخزن منتجات، يمكنك الاستفادة من قراءة المقالات التالية:
  23. حاليًا لا يمكن القيام بذلك باستخدام CSS لأنه لا يوجد محدد يدعم الاستعلام للأعلى، المحدد الذي ذكرته يحدد الوسم body داخل الوسم h1 وهذا غير صحيح، يمكن استخدام جافاسكريبت والخصائص onmouseenter و onmousleave لتنفيذ تابع يعدل تنسيق body كالتالي: <h1 onmouseenter="toggle(true)" onmousleave="toggle(false)">...<h1/> وفي جافاسكريبت: function toggle(enable){ document.body.style.backgroundColor = enable ? "red" : "initial"; } مستقبلًا سيتم إضافة دعم للمحدد has الذي سيحل المشكلة السابقة بالذات، لكن يحتاج الأمر بعض الوقت حتى يتم دعمه من قبل المتصفحات الشهيرة
  24. يرجى استخراج محتويات الملفات وتحرير نص السؤال وإدراجها ضمنه بدلًا من الصور، أيضًا يفضل التأكد أن البيانات يتم جلبها من الخادم بشكل سليم، وإرفاق شكل تلك البيانات الواردة من الخادم
  25. يرجى استبدال الصور بالشيفرة بشكل نصي ضمن نص السؤال وتنسيقها بتنسيق Code لتحصل على الإجابة ونتمكن من المساعدة
×
×
  • أضف...