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

Mustafa Suleiman

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

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

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

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

    365

كل منشورات العضو Mustafa Suleiman

  1. الفكرة هي أنك بحاجة إلى تعديل تنسيق الـ Header عند عمل سكرول بنسبة معينة، ثم نقوم بإضافة كلاسات أخرى أو تنسيقات، فمثلاً نستخدم الكود التالي: const className = "colorful"; const scrollTrigger = 60; window.onscroll = function() { if (window.scrollY >= scrollTrigger) { document.getElementsByTagName("header")[0].classList.add(className); } else { document.getElementsByTagName("header")[0].classList.remove(className); } }; طبق نفسك الفكرة بإضافة وحذف الكلاسات أو إضافة تنسيقات، فالكود السابق يقوم بإضافة كلاس colorful والذي يحمل التنسيق التالي في ملف css: .colorful { background-color: pink; box-shadow: 0 3px 5px 0.3px rgba(0, 0, 0, 0.1); } .colorful a { color: #0e436b; }
  2. الأمر بسيط، كل ما أنت بحاجة إلى فعله هو تنفيذ الأمر التالي في منفذ الأوامر PowerShell: Set-ExecutionPolicy RemoteSigned وسبب المشكلة هو أن تنفيذ البرامج النصية (السكريبتات) معطل على نظامك، بمعنى أن PowerShell يمنع تشغيل البرامج النصية. حيث يتم تعيين سياسة التنفيذ الافتراضية لـ PowerShell على Restricted، والتي تمنع تنفيذ البرامج النصية لأسباب أمنية، ولتمكين تنفيذها، تحتاج إلى تغيير سياسة التنفيذ إلى مستوى أكثر تساهلاً، وهناك ثلاث سياسات تنفيذ رئيسية في PowerShell: Restricted: السياسة الافتراضية، والتي تمنع جميع عمليات تنفيذ البرامج النصية. RemoteSigned: تسمح بتنفيذ البرامج النصية التي تم إنشاؤها محليًا والبرامج النصية الموقعة عن بُعد من الناشرين الموثوق بهم. Unrestricted: تسمح بتنفيذ جميع البرامج النصية دون أي قيود.
  3. حاول الإعتماد على عبارة NOT IN لاستبعاد الطلاب الذين يحتوون على مواد معينة، ولكن يجب عليك تكوين الاستعلام بشكل صحيح، فأنت تستخدم IN لتحديد مجموعة من المواد المطلوبة، و NOT IN لاستبعاد مجموعة من المواد، لذا عليك استخدام AND لربط الشروط بشكل صحيح كالتالي: $sh=mysqli_query($con, "SELECT id_trainee, name, specialty, gpa FROM `tr1` WHERE id_trainee LIKE '%4432%' AND ramz IN ('داعم - 221', 'انجل - 204', 'داعم - 151', 'اسلم - 101', 'شبكا - 121') AND ramz NOT IN ('حاسب - 102', 'انجل - 102', 'انجل - 101', 'حاسب - 101', 'حاسب - 121') GROUP BY id_trainee HAVING COUNT(DISTINCT ramz) = 5"); تأكد من وضع AND بين شروط الـ IN و NOT IN. تستطيع أيضًا استخدام تعبيرات LIKE لإنشاء استعلام أكثر فاعلية، لاستبعاد الطلاب الذين لديهم أيًا من المواد التالية: SELECT id_trainee, name, specialty, gpa FROM `tr1` WHERE id_trainee LIKE '%4432%' AND (ramz LIKE '%داعم - 221%' OR ramz LIKE '%انجل - 204%' OR ramz LIKE '%داعم - 151%' OR ramz LIKE '%اسلم - 101%' OR ramz LIKE '%شبكا - 121%') AND NOT (ramz LIKE '%حاسب - 102%' OR ramz LIKE '%انجل - 102%' OR ramz LIKE '%انجل - 101%' OR ramz LIKE '%حاسب - 101%' OR ramz LIKE '%حاسب - 121%') GROUP BY id_trainee HAVING COUNT(DISTINCT ramz) = 5; ونتيجة الاستعلام هي نفسها مثل السابق، ولكنه يستخدم تعبيرات LIKE بدلاً من تعبيرات IN.
  4. في حال أن المحاكي لديك هو بإصدار 33 أو أعلى، فبدءًا من ذلك الإصدار تم إيقاف دعم HAXM، وHAXM هو اختصار لـ Intel Hardware Accelerated Execution Manager، وهو محرك يوفر تسريعًا للأجهزة للمحاكيات الافتراضية على أجهزة الكمبيوتر التي تعمل بمعالجات Intel، حيث يسمح ذلك للمحاكيات بالعمل بشكل أسرع وأكثر سلاسة، مما يحسن تجربة تطوير تطبيقات Android. وحاليًا عليك تثبيت Android Emulator hypervisor driver ويمكنك ذلك من خلال الخطوات التالية: افتح Android Studio. في شريط الأدوات، انقر فوق Tools > Android > SDK Manager. في علامة التبويب SDK Tools، حدد مربع الاختيارAndroid Emulator hypervisor driver. انقر فوق Apply > Install.
  5. أولاً تأكد من تطبيق خاصية box-sizing بقيمة border-box كالتالي: *{ box-sizing: border-box } ثانيًا سبب المشكلة، هو أنك قمت بتحديد الطول بنسبة 100% من الـ container وهو 600px ولذلك طبيعي أن يكون طول المحتوى بالداخل هو 600 لكن يوجد عنصر nav والذي يشغل مساحة من ذلك الطول وبالتالي تجد أن content خارج الـ container بسبب عدم وجود مساحة كاملة للـ 600px. والحل هو تحديد طول لكل من المحتوى والـ nav بنسبة 90% و10% كالتالي: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <style> * { box-sizing: border-box; } body { margin: 0; padding: 0; height: 100vh; } .container { height: 600px; border: 2px solid black; background-color: black; } nav { height: 10%; background-color: rgb(144, 209, 230); padding: 10px; } .content { height: 90%; border: 2px solid red; background-color: orange; } </style> </head> <body> <div class="container"> <nav> <!-- محتوى الناف --> </nav> <div class="content"> <!-- محتوى الكونتنت --> </div> </div> </body> </html>
  6. بالطبع يمكنك الدفع من أي مكان من خلال باي بال أو من خلال البطاقة الإئتمانية (بطاقة debit أو credit فقط)، وستجد هنا شرح لكيفية الإشتراك: كيفية الإشترك بالدورات وستجد هنا تفصيل لكيفية الوصول للدورات بعد الإشتراك: كيف أصل للدورات التي اشتركت بها
  7. يمكنك تعلم بايثون ومحاولة تنفيذ الأمر وستجد شروحات على اليوتيوب، لكن في حال وجود Captcha فقد لا تستطيع تنفيذ الأمر بناءًا على مستوى الصعوبة الخاصة بها ونوعها. وإليك مثال والحلول المقترحة: والخيار الثاني هو طرح المشروع على مستقل وإختيار مبرمج جيد للقيام بالأمر مع سابقة أعمال تثبت قدرته على ذلك.
  8. عامًة إذا كنت تقصد التصميم فستجد مواقع توفر تصميمات جاهز لكي تستلهم تصميمك منها: Pinterest Dribbble mobbin UX CRUSH Screen lane uplabs وستفيد المقالات التالية: أما بالنسبة للمشاريع، فيمكنك البحث على اليوتيوب عن flutter projects أو استبدل flutter بالإطار أو اللغة التي تستخدمها، وهكذا، وأيضًا ستجد على GitHub مشاريع جاهزة يمكنك تجربتها والتعلم منها.
  9. في السياق البرمجي، المعاملات (أو الباراميترز) تستخدم لتمرير القيم إلى دوال أو أحداثث، وتستطيع استخدام المعاملات لتمرير القيم من العناصر في صفحة HTML إلى الدوال في ملف السكريبت. المثال الأول: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Parameter and Input Field Binding</title> </head> <body> <label for="paramField">Parameter:</label> <input id="paramField"></input> <button type="submit" onclick='updateParameter()'>Submit</button> <script src="script.js"></script> </body> </html> JS: // script.js // Function to update the parameter field function updateParameter(value) { const data = document.getElementById("paramField").innerHTML = value; console.log(data); } قمت بتعريف دالة updateParameter ولكنها تتوقع معامل حيث حددت value كمعامل، ويجب تمريره لأنك تستخدمه في الدالة بوضع قيمة الحقل الذي يحمل id باسم paramField لتساوي معامل value، لذلك عليك تمريره كالتالي: <button type="submit" onclick='updateParameter("understand")'>Submit</button> الآن، عند النقر على زر "Submit"، ستقوم الدالة updateParameter بتحديث المحتوى في عنصر الإدخال paramField بالقيمة "understand". المثال الثاني: لم تقم بتعيين أي معامل هنا في الدالة: // script.js function submitForm() { var inputValue = document.getElementById("inputField").value; alert("Submitted value: " + inputValue); } بل تقوم باستخراج القيمة التي تم كتابتها في الحقل الذي يحمل id باسم inputField ثم تقوم باستخدامها في دالة alert.
  10. البرمج لا تتطلب مواصفات مرتفعة كل ما تحتاج له هو 16 جيجابايت أو 8 كحد أدنى من الذاكرة العشوائية، وهارد SSD بمساحة 120 جيجابايت كحد أدنى، ومعالج core i3 أو ما يماثله من AMD كحد أدنى. وبالطبع كلما كانت المواصفات متوسطة إلى مرتفعة كلما كان ذلك أفضل وتمكنت من استخدام برامج تحتاج إلى مواصفات جيدة مثل برنامج الفوتوشوب. وبالنسبة لسؤالك، فما بين الجهازين المذكورين، فمن حيث الأداء، فبالطبع آيباد اير M1 أفضل، فيحتوي على معالج أقوى مما يجعله قادرًا على التعامل مع المهام الثقيلة بشكل أفضل. لكن في حال أنك بحاجة إلى نظام الويندوز فليس أمامك خيار سوى Surface Pro 8.
  11. هل المقصود تطبيقات للهاتف أم مشاريع ويب، أي تريد تصميم واجهة مستخدم لتقوم بتنفيذها أم تريد فكرة مشروع؟
  12. في جانب الخادم استخدم split كالتالي: const token = req.headers.authorization.split(" ")[1]; وذلك لاستخراج التوكن (Token) من رأس الطلب (headers) في خادم Node.js، وذلك النمط يأتي من استخدام توقيع (Bearer) لتمييز التوكن في رأس الطلب. بمعنى أنه في معظم حالات استخدام JWT (JSON Web Tokens) كتوكن للمصادقة، يرسل التوكن في رأس الطلب باستخدام مفهوم "Bearer Token"، ويكون الرأس كالتالي: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c لذلك نستخدم req.headers.authorization.split(" ")[1] لاستخراج الجزء الثاني (index 1) من قيمة Authorization، وهو التوكن نفسه، ويتم فصل الجزء الأول (index 0) بواسطة الفراغ (space).
  13. أولاً الأمر لا يجوز، أتفهم رغبتك في الحفاظ على ابنك من المخاطر التي تحيط به، وهناك طريقة أفضل لفعل ذلك وهي حجب المواقع الإباحية من خلال تعديل إعدادات الـ DNS في الويندوز بالـ DNS الخاص بـ cloudflare التالي لحجب تلك المواقع: 1.1.1.3 1.0.0.3 وإليك الخطوات قم بالبحث في شريط البحث بالأسفل في الويندوز عن Network Connections ثم قم بالنقر عليها كما بالصورة: سيظهر أمامك عدّة شبكات اختر منها الذي يظهر أسفلها اسم كرت الشبكة لديك مثل التالي واضغط عليه بزر الفارة الأيمن ثم اختر properties. ستظهر لك نافذة ابحث بها عن ipv4 وقم بالنقر مرتين علي ذلك الخيار: وستظهر لك نافذة أخرى كالتالي، فقم بها بالضغط على use the following DNS server ثم قم بكتابة الـ DNS الذي ذكرته لك في الخانة الأولى ثم الثاني في الخانة الثانية كالتالي ثم اضغط على ok: الآن قم بتكرارنفس الأمر بالنسبة لشبكة الواي فاي حيث ستجد شبكة مماثلة وأسفلها اسم كرت الشبكة، فما قمنا به في البداية هو للشبكة الخاصة بكابل الإنترنت السلكي، لكون اللاب توب متاح بها الخيارين.
  14. أتفهم الصعوبة التي تواجهها ونقدر ذلك في الأكاديمية، ومجهود يشكر صراحًة منك في متابعتك للدورة رغم الصعوبات التي تواجهها، سأقوم بإيصال إقتراحك للقسم الخاص بالدورات في أكاديمية حسوب، لكن هناك صعوبة في توفير تلك الميزة بسبب أنها قد تؤدي إلى مشاهدة الدورات بطريقة غير مشروعة، وستجد تفصيل أكثر عن ذلك هنا: وفي الوقت الحالي يمكنك مشاهدة الدورة بجودة أقل مثل 540p خارج المنزل مثلاً.
  15. أولاً Access هو برنامج لإدارة قواعد البيانات، وهو مصمم خصيصًا لإنشاء وإدارة قواعد البيانات، ويوفر مجموعة واسعة من الميزات التي تجعل من السهل إنشاء قاعدة بيانات قوية وقابلة للتوسع، والإختيار يكون بناءًا على: 1- حجم البيانات إن كانت حجم البيانات لديك صغيرة إلى متوسطة، ولا تحتاجين إلى العديد من الجداول والعلاقات المعقدة، فيمكن استخدام Excel بسهولة. أما إن كانت البيانات كبيرة وتتطلب قاعدة بيانات قوية مع علاقات معقدة، فهنا يعتبر Access خيارًا أفضل. 2- هيكل البيانات في حال كانت البيانات مرتبطة بشكل كبير وتحتاج إلى علاقات بين مجموعات متعددة من البيانات، فيقدم Access هيكل قاعدة بيانات يمكن تنظيمه بشكل أفضل. على الناحية الأخرى إن كانت البيانات مستقلة وغير مرتبطة بشكل كبير، فيعتبر Excel كافيًا. 3- مرونة التحليل عند الحاجة إلى تحليل بياناتك بشكل متقدم أو إجراء عمليات معقدة، فيوفر Excl مجموعة واسعة من الوظائف والأدوات للتحليل. وعند الحاجة إلى تقارير متقدمة أو مرونة أكبر في تحليل البيانات، فيوفر Access استعلامات SQL وتقارير متقدمة. 4- واجهة المستخدم في حال يتعين عليك تقديم واجهة مستخدم بسيطة وسهلة الاستخدام، فهنا يعتبر Excel خيارًا جيدًا. إما إن كنتي بحاجة إلى نظام يتيح للمستخدمين إدخال واستعراض البيانات بشكل أكثر تعقيدًا، فيقدم Access نماذج قابلة للتخصيص بشكل أفضل. 5- الأمان Access يوفر مستويات أمان أعلى ويمكنك تحديد حقوق الوصول لكل مستخدم. Excel أقل أمانًا إذا لم يتم التحكم في حقوق الوصول بشكل صحيح.
  16. من المفترض أنها مجانية ربما تغير الأمر، عن أي كورس منهم تتحدث؟
  17. يمكنك مشاهدة الدورة في الحال فور الإشتراك، وتستطيع الوصول للدورة من خلال تبويب دوراتي كما بالصورة: أيضًا الدورة متاحة لك مدى الحياة وأي تحديثات تتم على الدورة ستحصل عليها مجانًا.
  18. بالطبع فقد هناك الكورسات التالية ولكن هي بالإنجليزية: كورس الذكاء الاصطناعي من جوجل (Google AI Education) الذكاء الإصطناعي - شهادة الماستر من جامعة كولومبيا (ColumbiaX's Artificial Intelligence MicroMasters) كورس الذكاء الاصطناعي للجميع (AI For Everyone) شهادة الذكاء الإصطناعي من جامعة ستانفورد (Machine Learning AI Certification) وأفضل كورس في القائمة هو الأخير (Machine Learning AI Certification). وستجد شرح مفصل أكثر هنا بخصوص الذكاء الاصطناعي ومصادر لتعلم الرياضيات:
  19. بالفعل، خوارزمية أقصر وقت متبقي أولاً هي الأفضل بسبب أنها تعطي الأولوية للمهام التي لديها أقل وقت متبقي، مما يؤدي إلى تقليل وقت الانتظار للمهام، أما خوارزمية الجولة روبن، فهي تعطي الأولوية للمهام بالتساوي، مما يؤدي إلى زيادة وقت الانتظار للمهام التي لديها وقت متبقي طويل، أما خوارزمية الأولوية الاستباقية، فهي تعطي الأولوية للمهام بناءًا على تقدير زمن الاستجابة، مما قد يؤدي إلى زيادة أو نقصان وقت الانتظار للمهام، اعتماداً على مدى دقة التقدير. وبالتالي: في حال كانت الأولوية الرئيسية هي تقليل وقت الانتظار، فإن "أقصر وقت متبقي أولاً" يبدو الخوارزمية الأفضل، حيث يكون متوسط وقت الانتظار أقل. عندما تكون الأولوية هي تقليل وقت الاستجابة، فإن "أقصر وقت متبقي أولاً" أيضًا هو الخوارزمية الأفضل، حيث يكون متوسط وقت الاستجابة أقل. الأولوية الاستباقية تأتي بمتوسط وقت انتظار (TAT) ووقت استجابة (بالوزن) أعلى بقليل من "أقصر وقت متبقي أولاً"، ولكن تلك الخوارزمية مناسبة عندما تكون الأولوية هي ضمان استجابة سريعة للمهام، حتى لو كان ذلك على حساب بعض زيادة في وقت الانتظار.
  20. في حال استمرت المشكلة على الهاتف وعلى متصفح آخر، فذلك يعني وجود مشكلة في إتصال الإنترنت لديك، حاول إعادة تشغيل الراوتر وتركه لمدة 10 دقائق من أجل تغيير الـ IP الخاص بك، ثم أعد تشغيله، وفي حال استمرت المشكلة حاول تغيير إعدادات الـ DNS في نظام الويندوز لتصبح كالتالي: 1.1.1.1 1.0.0.1
  21. تستطيع تحميل ملف المشروع إلى حاسوبك من خلال الضغط على File (ملف) ثم اختر حفظ إلى حاسوبك (save to your computer) كالتالي:
  22. هل المقصود هو دورة علوم الحاسوب، في حال كان كذلك، قم بوضع المشاريع الخاصة بكل مسار في مجلد منفصل ثم ضع تلك المجلدات في مجلد واحد باسم الدورة وليكن hsoub cs، ثم قم برفعه على GitHub، وبالطبع عليك وضع ملفات المشاريع الخاصة بسكراتش في مجلد المسار الخاص بها.
  23. المقصود هو جميع المشاريع العملية التي تم بها كتابة كود، وستجد شرح لذلك في التعليق السابق لي.
  24. لا عليك، شعور طبيعي يراود الجميع، لكن يجب معرفة الطريقة المناسبة لدراسة الدورة، أولاً وقبل أي شيء عند تعلم مجال البرمجة يجب كتابة الكود والتطبيق بمفردك وعدم الإكتفاء بالكتابة مع المدرب فقط أي يجب إعادة ما قمت به أو المشاهدة ثم إيقاف الفيديو ثم التطبيق بمفردك من البداية ومحاولة التغيير في الكود وليس تنفيذ نفس الأمر إن أمكن لفهم آلية عمل الكود وعدم الخوف من التجربة والخطأ فهما جزء من عملية التعلم، بدون تلك الخطوة أنت لم تتعلم البرمجة للأسف. مثلاً في حال كان الدروس قصيرة تستطيع مشاهدة 4 دروس مثلاً ثم التوقف والتطبيق بمفردك، والمحاولة والتفكير في حال واجهت مشكلة ثم العودة للدروس لمشاهدة الأمر والمراجعة ولا مشكلة في ذلك فأنت ما زلت تتعلم لكن بعد المحاولة، وبخصوص الحفظ فمن المهم الحفظ والاستيعاب في البداية والتركيز ولا مشكلة إن نسيت بعض الأمور بعد ذلك المهم انك مستوعب لها وتستطيع استخدامها في حال قمت بالبحث عنها وعن طريقة كتابة جزء معين من الكود فالجميع كذلك. وبخصوص كتابة ملخصات أو ما شابه، فيمكنك فعل ما تريد وما تراه مناسبًا لك ويساعدك على التعلم، فالبعض يفضل ذلك والبعض يفضل التطبيق العملي والتكرار والاستيعاب. ولا تستعجل أبدًا وعليك التركيز على الأساسيات فهى الأهم، ويجب التطبيق عليها، ولا تكتفي بما يتم شرحه باي دورة بل قم بالبحث عن مشاريع للمبتدئين على اليوتيوب وحاول التطبيق بما تعلمته في الأساسيات ويمكنك رؤية الشرح والمتابعة معه ولا مشكلة في حال واجهت أمر جديد لم يتم شرحه فذلك هو المطلوب. وستجد تفصيل أكثر هنا: بخصوص رفع المشاريع فأنت بحاجة إلى تعلم Git وGitHub وستجد شرح جيد هنا: بعد ذلك ستجد توضيح لعلمية رفع المشاريع هنا:
  25. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر ويمكن مساعدتك في حال تم توفير كود، وإليك خطوات الحل: عليك تحديد ارتفاع وعرض الحرف ليكونوا height = 5 و width = 5، وتستطيعي تعديل تلك القيم حسب رغبتك. استخدام حلقتي for متداخلتين للتحكم في الصفوف والأعمدة، بحيث تعتمد الأولى على الطول height والداخلية تعتمد على width، استخدام مجموعة من الجمل الشرطية (if statements) داخل الحلقة الداخلية لتحديد متى يجب وضع النجمة ومتى يجب وضع المسافة في كل خلية من الصفوف والأعمدة، ولمساعدتك ستحتاجين جمل شرطية للتالي: إذا كان الصف الأول، إذا كان الصف الوسط والعمود يساوي 0 أو 4، إذا كان الصف الأخير، إذا كان العمود يساوي 0 في الصفان الوسطيان، إذا كان العمود يساوي width - 1 في الصفان الوسطيان، وبالطبع حالة else يتم بطباعة مسافة. استخدام std::cout لطباعة النجوم أو المسافات اعتمادًا على الشروط المحددة. استخدم std::endl للانتقال إلى السطر التالي بعد اكتمال كل صف وذلك في الحلقة الخارجية. يجب تحديد الشروط بدقة للتأكد من أن النجوم والمسافات يتم وضعها في الأماكن الصحيحة. ستحتاجين إلى تجربة البرنامج وتعديل الشروط إذا لزم الأمر للحصول على النتيجة المرجوة.
×
×
  • أضف...