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

Adnane Kadri

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

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

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

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

    51

كل منشورات العضو Adnane Kadri

  1. التوثيقات بشكل عام مهمة وضرورية لفهم آلية عمل وسير أي لغة وأي إطار عمل بحيث توضح كيفية التعامل معها أو الاستفادة منها، وذلك بشكل أشمل. وكذلك: توضيح الوظائف والميزات احتواءها على أمثلة واقعية. احتواءها على توجيهات وتفضيلات الاستخدام. تحتوي شرحا للتوافق والاعتماديات ومتطلبات التشغيل. فيما يتعلق بمكتبة مثل NumPy، ليس من الضروري أن تعرف كل شيء عنها. ومع ذلك، من المفيد أن تكون قادرا على فهم الأساسيات وكيفية استخدام الوظائف الرئيسية التي تحتاجها في مشروعك. سيساعدك الاطلاع على التوثيق في فهم كيفية استخدام NumPy بشكل أكبر وأكثر فعالية، ولكن لا تحتاج إلى معرفة كل جزء من التفاصيل بطبيعة الحال، فالتوثيق رغم ذلك يبقى مرجعا يسهل العودة إليه للاستفادة منه ومما يشرحه.
  2. يمكنك الاستماع للحدث beforeunload للقيام بأي أكشن قبل مغادرة المستخدم الصفحة، قبل ذلك ستحتاج تعطيل السلوك الافتراضي لهذا الحدث، ثم القيام بذلك بشكل مخصص. إليك مثالا: window.addEventListener('beforeunload', function (e) { e.preventDefault(); e.returnValue = ''; return ''; }); function confirmExit() { return confirm("اذا غادرت الصفحة لن يتم حفظ البيانات. هل ترغب في المغادرة؟"); } أو نحوه: <body onbeforeunload="return confirmExit()"> الأحداث المتعلقة بدورة حياة صفحة HTML وكيفية التحكم بها عبر جافاسكربت
  3. لا، على الرغم من أن Python مدعومة بشكل طبيعي في macOS ويمكن تشغيل البرامج التي تستخدم Python على أجهزة Mac، إلا أن لغة Python لا تستخدم على نطاق واسع في تطوير تطبيقات iOS لأجهزة iPhone وiPad أو تطبيقات macOS لأجهزة Mac وغيرها من منتجات Apple. هنالك لغات برمجة أخرى مثل Swift و Objective-C تستخدم على نطاق أوسع لتطوير تطبيقات iOS و macOS. في حين أن بايثون غالبًا ما يستخدم في تطبيقات الخادم وتطوير الويب وتطبيقات الذكاء الصناعي، ولكنه يمكن استخدامه في بعض التطبيقات المحمولة باستخدام إطار عمل مثل Kivy أو PyObjC.
  4. يمكنك استعمال المحددات الزائفة الأخرى أيضا، ونذكر: ::selection ::first-letter ::first-line ::marker بجانب أنه يمكنك القيام بالعملية بشكل قياسي، ضف العنصر ضمن هيكلة HTML وليكن div آخر أو غيره، ثم قم بتنسيقه باستخدام CSS بشكل عادي. سوف يعطيك ذاك تحكما أكبر في الهيكلة وفي الكود.
  5. لا يبدوا بالشيفرة أي مشكلة. يرجح أن تكون المشكلة بسبب إعدادات الأمان في المتصفح أو في الخادم. فهذا السلوك يحدث عندما يتم فتح موقع عبر HTTPS وتتم محاولة الوصول إلى API الحافظة (navigator.clipboard.writeText) عبر HTTP. جرب الوصول إلى الموقع باستخدام HTTPS وانظر ما ان حلت المشكلة.
  6. قم بفحص مدخلات المستخدم عن طريق الاستمارة ثم قم بتنفيذ استعلام قاعدة بيانات لجلب ذلك العدد ثم قم بتنفيذ عملية الطرح ببساطة. اليك مثالا: <form action="{{ route('form.submit') }}" method="POST"> @csrf @method('POST') <input type="number" name="number" /> <button type="submit">submit</button> </form> ثم قم بتعريف المسار المعني: Route::post('/form/submit', function(Request $request){ $number = $request->number; $storedNumber = MyModel::first()->my_number; $result = (int) $number - $storedNumber; // بقية الكود })->name('form.submit'); قد تحتاج كخطوة اضافية فحص ادخال العدد والتأكد من أنه عدد بالفعل. Route::post('/form/submit', function(Request $request){ $request->validate(['number' => 'integer']); $number = $request->number; $storedNumber = MyModel::first()->my_number; $result = (int) $number - $storedNumber; // بقية الكود })->name('form.submit');
  7. بجانب ما اقترح مصطفى يمكنك أيضا التعديل على قيمة متغير الحالة notes - خصوصا وأنها قيم اختبارية: const [notes, setNotes] = useState([ { id: 1, text: "test", date: (new Date()).toLocaleString(), }, { id: 2, text: "test", date: (new Date()).toLocaleString(), }, { id: 3, text: "test", date: (new Date()).toLocaleString(), }, ])
  8. انتبه إلى أن هنالك خطأ في التعرف على عنصر Modal المرافق، إذ يتم تصريحه كـ: <div class="card modal fade" id="Model" في حين يتم ارفاقه للخاصية data-bs-modal كـ: <div class="text" data-bs-toggle="modal" data-bs-target="#Modal"> تأكد من جعلهما مماثلين حتى يمكن التعرف عليها. أيضا لا تنسى مراجعة هيكل عنصر model في نفسه، لا يبدوا أنه يتم توصيفه بشكل صحيح. ان كانت المشكلة تتعلق بدورة ما، يقترح نشر السؤال في قسم تعليقات الطلبة المرافق للدرس وسيتم المتابعة معك هنالك.
  9. مراحل هندسة البرمجيات والتي يختصر لها بـ SDLC اختصارا عن Software Development Life Cycle غالبا ما تتبع منهجا موحدا وهو كالتالي: البحث والتخطيط Planning & Analaysis: ويتم فيه هاته المرحلة تحليل متطلبات العميل وفهمها وتحديد مختلف احتياجات المشروع من تجهيزات بشرية ومادية وكذلك بناء مخططات حالات الاستخدام وقصص المستخدمين وما الى ذلك .. التصميم Design: في هاته المرحلة يتم بناء مختلف واجهات الاستخدام وتخريجها كتصميم UI/UX .. التطوير Development: يتم تسليم مختلف التصاميم والمخططات لفرق التطوير للعمل على التطبيق وبناءه ويشمل ذاك تطوير الواجهات الأمامية والخلفية. الاختبار Testing: يتم تقديم ناتج المرحلة السابقة لفرق الاختبار لاختبار مختلف حالات الاستخدام التي تم تحديدها في المرحلة الأولى، ويتم التأكد من استيفاءها للغرض إما بشكل مؤتمت Automated أو بشكل يدوي من وجهة نظر المستخدم النهائي end user perspective .. النشر والتكامل Deployment & Integegration: يتم هاهنا نشر التطبيق والتأكد من تكامله مع مختلف البيئات المستهدفة التي سينشط فيها. الصيانة والمتابعة Maintenance: بعد نشر التطبيق يتم متابعته بشكل دائم لصيانة أي أعطال أو التخلص من أي مشاكل .. وقد يتم تقديم بعض هاته المراحل أو دمجها في بعض الأساليب البرمجية من مثل أسلوب TDD أين يتم دمج مرحلة الاختبار مع التطوير أو BDD أو غيرها .. وكل ذاك بحسب مرونة المشروع أو بحسب النهج المستخدم مثل نهج Agile..
  10. تأكد من أن الصفحة التي تعرض الملف تقوم بعرضه لكي تعمل خاصية download بصورة صحيحة. إليك مثالا: download.php: <?php $file = "http://example.com/". $_GET['file']; header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"". basename($file) ."\""); readfile ($file); exit(); ?> فيكون الرابط: echo '<p><a href="http://example.com/download.php?file='.$filename.'" target="_blank" download>اضغط هنا للتحميل ملف النسخ الأحتياطي</a></p></h3>';
  11. أظن أن مثل هاته الفكرة موجودة بالفعل في مفاهيم مثل شجرة دوم الافتراضية Virtual DOM وما تقوم به مكتبات وأطر الجافاسكربت الحديثة بالفعل، فهي تقوم بتصيير محتوى HTML وهيكلته وضبط تنسيقاته من خلال تنفيذ أكواد جافاسكربت على المتصفح. ولذلك فهي ليست بالفكرة الجديدة. انتبه أيضا الى عيوب هاته الفكرة من حيث أن ناتج تصيير العناصر لن يتم أرشفته على محركات البحث، فمحركات البحث لن تستطيع الوصول لمحتوى جافاسكربت، فهو محتوى يتم عرضه بعد فتح الصفحة وليس عند طلب المورد من الخادم. أيضا انتبه إلى هدفك وما القيمة التي ستقدمها من خلال القيام بهاته الفكرة، ولما يجب عليك ذلك بدل كتابة شيفرة HTML و CSS قياسية. تأكد من أن أهدافك تتطلب هاته الفكرة.
  12. للنظر ما ان كنت جاهزا لامتحان الدورة وأخذ الشهادة أو لا تأكد من أنك تستوفي شروط الامتحان، والتي هي: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتج رفع المشاريع على حسابك على GitHub وفي حال ما كان ذلك، يمكنك التقدم الى الامتحان وطلب ذلك، يمكنك الإطلاع تفاصيل أكثر من هنا: الامتحان والحصول على الشهادة
  13. أغلبية مصطلحات البرمجة وهندسة الحاسوب تحمل مفاهيم دلالية تعبر عما تعنيه بالضبط، فكلمة Entity تترجم لكيان في حين أن كلمة Object تترجم لكائن، ولذلك فإن Entity في قواعد البيانات عادة ما يمثل شيئا محددا في العالم الحقيقي مثل شخص، مكان، حدث، أو شيء آخر قابل للتخزين في قاعدة البيانات. ويمكن أن يتكون هذا الكيان من عدة متغيرات أو أعمدة (Columns) تمثل السمات (Attributes) أو الخصائص التي تميز هذا الكيان عن غيره. أما بالنسبة لـ Object في لغات البرمجة فيُعرف عادةً كتجسيم لكيان يمثل شيئًا معينًا أو كائنًا في البرنامج. بحيث يتكون هذا الكائن من البيانات (الخصائص) والسلوك (الطرق أو الوظائف) التي تعبر عنه. وتتمثل وظيفته في تحقيق الوظائف المحددة التي يتوقعها المبرمج أو المستخدم من البرنامج. كما يمكن أن تتفاعل هاته الكائنات مع بعضها البعض أو مع مكونات النظام الأخرى لتحقيق أهداف محددة. هاته هي الفكرة باختصار.
  14. بما أنك قد تقدمت في المشروع فمن الصعب تطبيق ذلك وإلا سيكون ذلك بجهد كبير، ولكن مبدئيا، يمكنك العناية أكثر بالأكواد واستخدام short open tags وعزل خرج HTML كملفات عروض views في مجلد منفصل،
  15. لتسهيل عملية فصل الأكواد HTML عن الـ PHP في مشروعك، استخدم مفهوم الـ Templating. بحيث يتيح لك الـ Templating فصل أكواد HTML وPHP بشكل أكبر ويساعدك في تطبيق مبدأ فصل المهام seperating of concerns والذي هو مبدأ مهم من مبادئ علوم الحاسب، قد يمكنك أيضا توزيع المشروع ضمن معمارية مشهورة مثل MVC لفصل مهام التطبيق وجعل التطبيق يتواصل مع بعضه داخليا بشكل أكبر وأكثر فعالية، قد يمكنك ايضا الاستفادة مما تقدمه أطر عمل من مثل Laravel لاستخدام محركات القوالب الخاصة بها، مثل blade في Laravel. كما يمكنك استعمال محرك قوالب منفصل مثل Smarty لمشروع native PHP. اقرأ عنه أكثر من هنا.
  16. قم بإضافة قاعدتين واحدة لتجاهل كل ملفات gitignore. وأخرى لاستثناء الملف المستهدف، بهذه الطريقة سيمكن رفع هذا الملف وحده. إليك ذلك: node_modules/* !node_modules/specific-file.js
  17. مرحبا أيمن، هلا قمت بشرح المشكلة التي تواجهها بتفصيل أكثر؟
  18. يبدوا أن المنفذ الذي تستغله خدمة MySQL محجوز حاليا، جرب اغلاق البرنامج الذي يحجز المنفذ أو قم بتغيير منفذ MySQL. ولذلك قم بالتالي: افتح ملف my.ini من خلال الضغط على config من لوحة تحكم xampp ثم ابحث عن السطر التالي: port = 3306 وغيره لـ port = 3360 أعد تشغيل خدمة xampp وانظر ما ان حل ذاك المشكلة.
  19. خذ الأمر من هاته الناحية: هو ما يدل عليه لفظه، فالعبارة target تعني الهدف أو المستهدف، وفي الأحداث events في جافاسكربت هنالك عنصر مستهدف بهذا الحدث، سواءا كان ذلك ضغطة أو مرورا بمؤشر الفأرة ضغطة على زر من أزرار لوحة المفاتيح أو طباعة على حقل نصي أو ما إلى ذلك، وفي كل هاته الحالات المستهدف هاهنا هو العنصر ذاته، أي الزر وعنصر الحقل النصي وزر لوحة المفاتيح أو أيا كان ذاك. ولذلك يتفرع كخاصية عن الكائن event، بحيث يمكن مباشرة تطبيق خواص عليه أو التعامل معه.
  20. يمكنك استعمال مكتبة datepicker مخصصة أخرى، اذ لا يظهر أن المكتبة التي اعتمدت عليها تعمل بصورة صحيحة. تأكد من استخدامها بصورة صحيحة أو استبدلها بمكتبة أخرى، عادة ما استعمل مكتبة Datepicker الخاصة بـ jQueru UI. يمكنك الإطلاع على التوثيق الرسمي لها من هنا: هنا. فيما يلي شكل المحدد:
  21. السبب غالبا هو في الخطأ في طريقة تصفحك الموقع، تأكد من زيارة الرابط الصحيح. يبدوا أن موقعك متوفر بشكل عادي على: https://ahmed-alfadaly.github.io/ ان شئت نشر الموقع على رابط فرعي مثل: https://ahmed-alfadaly.github.io/Travel_Agency.github.io/ فتأكد من اعتماد الاعدادات اللازمة من صفحة اعدادات صفحة غيتهب الموافقة لموقعك.
  22. مرحبا أحمد، الأمر طبيعي وعادي جدا، والأكاديمية تتفهم ذلك ولذلك تقوم بتوفير فريق كامل من المدربين متوفرون على مدار الساعة والأسبوع للمتابعة مع الطلاب والإجابة على تساؤلاتهم واستفساراتهم. ويمكنك ذلك عن طريق اضافة تعليق أو سؤال أسفل الدررس الذي واجهت مشكلة بفهمه وسيهتم أحد المدربين بانشغالك على الفور. اعرف أكثر عن : كيف أتواصل مع المدرّبين.
  23. في الحقيقة، هذا هو المحتوى الموجود كله، لأن العناصر والمكونات التي تراها في المتصفح تم عرضها وتصييرها بعد تحميل موارد الصفحة وملفات الجافاسكربت المعروضة في خرج السكربت الذي كتبته. جرب القيام باستعراض الكود المصدري للصفحة عن طريق view source page وسترى أنه مماثل لما تم جلبه، فالهيكل المعروض في المتصفح في تبويبة Elements ليس إلا ناتج تصيير أي مكونات وأي عناصر ولو بعد تحميل الصفحة، ولكن الهيكل المعروض ككود مصدري للصفحة هو ما يتم جلبه من الخادم.
  24. تقريبا نعم، فماهيم البرمجة يتم التعامل معها بكثرة وبدورية، الأمر الذي يجعل من التعامل معها أسهل فأسهل كل مرة. كما أن الأمر طبيعي مع أي مفهوم جديد على أي شخص ولا يشمل ذلك البرمجة فقط، فأي شيء يتم التعود عليه يصبح أكثر وضوحا. يجب الإشارة أيضا إلى أنه لا يقصد بهذا أن لا تكون المفاهيم والأساسيات واضحة ومفهومة ولو بنسبة قليلة، إذ يجب استيعاب هاته المفاهيم ولو بشكل أولي ثم استيعابها بشكل أكبر مع التقدم في الأمر. قد تحتاج القراءة أكثر عن تعلم البرمجة هنا:
  25. الأمر بسيط، قم بتعديل الشيفرة الخاصة بك عن طريق تمرير كائن خصائص التنبيه المراد إظهاره: echo "<script> Swal.fire({ title: 'رسالة تأكيد', text: 'تم تعديل بيانات الطالب بنجاح!', icon: 'success', customClass: 'your-custom-class' }) </script>"; واستبدل your-custom-class بالكلاس المخصص المستهدف الذي تريد اضافته لعنصر التنبيه.
×
×
  • أضف...