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

Adnane Kadri

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

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

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

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

    51

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

  1. توفر google maps مجموعة من واجهات التطبيق البرمجية والمكتبات للتعامل مع خرائط قوقل. بداية سيجب عليك استدعاء الملف المصدري للمكتبة: <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_KEY&callback=myMap"></script> قومي باستبدال YOUR_KEY بمفتاح الواجهة الذي تم تقديمه لك. ثم تعريف ال callback المعنية: function initMap() { } نقوم بتعريف مختلف خواص كائن التهيئة: var mapOptions = { zoom: 8, center: new google.maps.LatLng(44, -110), mapTypeId: 'satellite' }; وأخيرا تهيئة الكائن باستعمال هاته الخواص: var map = new google.maps.Map(document.getElementById('map'), mapOptions); يمكنك الوصول الى باقي الخواص من هنا.
  2. يمكن العمل بها على الويب أيضا، استعمالها لا يُحتكر في تطبيقات الموبايل. يمكن استعمال الكثير من اللغات في مجال الويب على غرار جافاسكربت، PHP أو C# مثلا. ولكن طريقة تصيير الصفحات وعرضها والتلاعب بمحتواها يختلف عن طريقة جافاسكربت التي تضمن تفاعلية بشكل حي ودعم واسع من قبل متصفحات الويب. يوجد مثلا CoffeScript التي تستعمل نفس طريقة جافاسكربت في ذلك.
  3. أظن أن هذا بسبب تخصصيتها في الويب بدرجة أولى وبسبب تاريخها بدرجة ثانية، فجافاسكربت صممت أول مرة كلغة برمجة نصية لمتصفحات Netscape وهي أولى متصفحات الويب، ومن ثم تم اعتمادها من قبل Microsoft وهيمنتها على المجال بدعم متصفحات Internet Explorer لها في بداية الألفية الجديدة. اطلاق النسخة السادسة من ECMAScript في 2015 أيضا زادها هيمنة.
  4. هذا لأن التابع appendChild يفترض أن يمرر عبره كمعامل أول مرجع العقدة التي نحاول حقنها في الوثيقة وليس سلسلة نصية. لا يجب عليك وضع overly بين علامتي تنصيص: // show my favorite products const favorites = document.querySelector(".favorite-products") favorites.addEventListener('click', ()=>{ // create a popup overly = document.createElement('div') overly.setAttribute("class", "popup-overly") let body = document.getElementsByTagName('body') document.body.appendChild(overly) }) ،body أيضا لا يبدوا هنالك أي حاجة من تعريف المتغير :يمكنك التخلص من هذا السطر: let body = document.getElementsByTagName('body') Document.body
  5. يمكنك المرور على كل محرف من هاته السلسلة النصية وطباعة كل على حدة. نستعمل في ذلك التابع length لتحديد عدد حلقات for التي نمر بها على المتغير: #include <iostream> using namespace std; int main() { string q = "12345"; for (int i = 0; i < q.length(); i++) { cout << q.at(i) << " " ; } } والتابع at لتحديد المحرف الموافق لفهرس كل تكرارة من الحلقة. النتيجة: 1 2 3 4 5
  6. تختص الخاصية flex-wrap بعملية كسر السطر في حالة تجاوز العناصر المحور الافقي. بمعنى أنها الخاصية التي تحدد ما ان كانت العناصر داخل الحاوي المرن ستبقى ضمن سطر واحد أو أنها ستلتف الى عدة أسطر. في الحالة التي لدينا لاحظ أننا نضبطها على القيمة wrap: #feature { .. flex-wrap: wrap; .. } وبالتالي ولجبر وضعها على سطر واحد نسند القيمة nowrap: #feature { .. flex-wrap: nowrap; .. } يفترض أن يحل ذلك المشكل لديك.
  7. ما الذي تريده بالضبط؟ هل تريد جعل كامل البطاقات في سطر واحد؟
  8. بالطبع لا تنسى استئناف الجلسة بحقن السطر التالي في اعلى الملف المستهدف session_start();
  9. يحدث هذا لأنك تسند القيمة space-between الى الخاصية justify-content الخاصة بالصندوق المرن حاوي البطاقات. سيحافظ هذا على توزيع العناصر ضمن المستوى الافقي، لن تلاحظ هذا في حال ما كان عدد البطاقات الاجمالي هو 4 مثلا. للتخلص من هاته المشكلة أسند القيمة center لهاته الخاصية فيكون: #feature { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; } أيضا للحفاظ على توزيع المسافات بين البطاقات قد تحتاج اسناد قيمة مناسبة للخاصية gap كـ: #feature { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 20px; } قم ايضا بضبط عرض مناسب للبطاقات fe-box، اقترح بدل ضبط عرض ثابت كـ: #feature .fe-box { width: 180px; استعمال عرض نسبي كـ: #feature .fe-box { width: 30%; تصنيف:CSS Flexbox - موسوعة حسوب الخاصية justify-content - موسوعة حسوب
  10. جرب الاحتفاظ بالصفحة التي طلبها المستخدم في الجلسة. فان كانت صفحة تعديل مستخدم تشترط أن يكون المستخدم مسجلا للدخول فسيجب عليك حقن اسم او مسار هاته الصفحة ضمن متغير ما في الجلسة مثلا قبل اعادة التوجيه الى صفحة تسجيل الدخول من عليها: if(/* شرط عدم توثيق المستخدم */){ $_SESSION['requested_page'] = $_SERVER['REQUEST_URI']; // توجيه لصفحة تسجيل الدخول } من اعادة التوجيه اليها ومحوها من صفحة تسجيل الدخول بعد نجاح التسجيل: if(/* نجاح تسجيل الدخول */){ header('Location :' . $SESSION['requested_page']); }
  11. يحدث هذا لأن تقوم بالتوجيه بالفعل الى ذات الصفحة. فالفهرس REQUEST_URI يحمل قيمة URI الخاص بالصفحة الحالية، فإذا كان المسار الكامل لصفحة تسجيل الدخول هو كـ: https://www.domain.com/auth/login.php فسيحتوي $ _SERVER ['REQUEST_URI'] على: /auth/login.php فان تم تنفيذه في صفحة login.php بالفعل فتحصل في الغالب على السلوك الذي شهدته. ان كنت تستعمل روابط نسبية قم مباشرة بحقن اسم الملف المستهدف: header("Location: index.php") وسيتم التوجيه بشكل عادي.
  12. ستضل تسمع مثل هاته الأشياء حتى بعد قطع شوط طويل في مجال العمل الفعلي. لا يزال الطلب كبيرا على PHP و Laravel خصوصا مع التطورات التي تحدث عليهما في السنين الأخيرة. ولا يزال الكثيرون يتوجهون الى العمل بهما. يمكنك تصفح المشاريع المفتوحة على موقع مستقل أو موقع بعيد وأخذ فكرة عن الموضوع. أما عن المفاضلة بين PHP و NodeJS فالأمر غير ممكن الى حد بعيد، وكل منهما له سياقه وانواع تطبيقاته التي يبدع فيها عن الآخر. ركز على تطوير معارفك وخبرتك في المجال الذي بدأت فيه بالفعل، فكل ما زادت معرفتك وخبرتك بالشيء كلما كنت قادرا على زيادة انتاجيتك بإنشاء تطبيقات احترافية تستوفي معايير جودة البرمجيات، ولن تلتفت لها إلا بالممارسة الكثيرة للشيء الذي تتقنه بالفعل، فأنت ستجد نفسك منقادا الى التحسين من شيفرتك في كل مرة. هذا الأمر الذي سيقودك الى النظر في معايير أخرى غير اللغة أو اطار العمل الذي تستعمله. هذا بجانب أن قدرتك على التعلم والتبديل بين تقنية وأخرى ستتحسن وتتطور هي الأخرى، أين سيكون من السهل الانتقال الى stack أخرى حسب حاجة المشروع أو رؤية صاحب العمل. لأنه ولحد ما، تبقى الأدوات وأطر العمل واللغات شيئا عارضيا مقابل هاته الأشياء التي تحدد جودة العمل ومدى احترافيته.
  13. ما الذي تود تجربته بالضبط؟ أكاديمية حسوب توفر مجموعة من الضمانات بجانب امكانية التنسيق مع فريق الدعم لطلب استرجاع المبلغ المدفوع في الدورة لسبب من الأسباب. من بين هاته الضمانات أن الأكاديمية ستضمن لك استرداد استثمارك خلال ستة أشهر من الدورة، بمعنى إن لم تحصل على وظيفة أو عمل حر خلال 6 أشهر من موعد اجتيازك للامتحان يغطي قيمة الدورة التي دفعتها، فسيعاد لك ما دفعت. يمكنك الوصول الى مميزات ومقتطفات عن الدورات عن طريق صفحات الهبوط الخاصة بكل دورة من الصفحة الرئيسية. أيضا، قم بمراسلة مركز المساعدة لربما يمكن منحك مهلة تجريبية.
  14. لتوسيط العنصر ضمن المحور الأفقي x يمكنك ضبط الهوامش الجانبية بشكل تلقائي. .slider-container{ margin: auto; } سيعطي هذا ذات المقاربة. تأكد ايضا من ان هذا العنصر لا يأخذ كامل عرض الحاوية التي هي موضوع فيها، وإلا فكيف سيمتلك هوامشا جانبية. الخاصية margin في CSS
  15. قد أشرت الى أنك مشترك بالفعل في أحد دورات الأكاديمية. قم بأخذ عينة من الطلبة الموجودة تعليقاتهم أسفل كل فيديو وحاول استفسارهم بشأن تجربتهم خلال الدورة.
  16. من المثير للاهتمام حسب hacker Rank وفق احصائيات Analytics insights أن 27.5 بالمئة من المطورين هم متعلمون ذاتيا. و 37.7 قد تلقوا دروسا وشهادات بشكل أونلاين خولتهم لدخول مجال العمل. أيضا بحسب الدراسة الاستقصائية ل stackoverflow لسنة 2022 فإن نسبة 71 بالمئة من المطورون قد أشاروا الى أنهم تلقوا دروسا أونلاين. هذا العدد الهائل من الأشخاص يعبر عن طبيعة المجال التي تعتمد بشكل اكبر على الجهد الذاتي من التعليم او طبيعة المصدر الذي تأخذ منه المعلومة، رغم أنه من المهم اختيار المصدر المناسب. نفس الشيء بالنسبة للعمل، فأغلب المطورين يعملون ضمن بيئات عمل تركز على انتاجية الفرد وعطاءه ومدى جودة البرمجيات التي ينشأها. ولا تركز على ما ان كان الشخص متخرجا من هارفرد أو لا. لا يعني هذا بالطبع أن الشهادات لا تعني شيئا، وإنما هي قد تسهل عليك الوصول الى صاحب العمل او تعطي نظرة اسبقية عنك لفريق التوظيف. بالنسبة لشهادة حسوب، فهي الأخرى من بين أهم الشهادات في المجال في العالم العربي ككل كونها رائد المجال فيه. ركز على تطوير مهاراتك وأتقن عملك وستكون الشهادة تسهيلا لك ليس إلا.
  17. اضافة الى فكرة المدرب أحمد يمكنك تقييد عملية تزويد عدد المشاهدات بشرط أن يكون ذلك ضمن جلسة واحدة. بمعنى: ان قام المستخدم A بالدخول الى الصفحة B فإن عدد المشاهدات سيكون 1 ان قام المستخدم A بتحديث الصفحة B فان عدد المشاهدات سيكون 2 وان قام المستخدم A بزيارة صفحة أخرى في ذات الموقع فإن عدد المشاهدات سيتم تزويده هو الآخر، في حين أن العدد الفعلي هو زائر واحد. فالزيارات تحسب في الغالب ضمن الجلسة الواحدة. يمكنك مثلا انشاء متغير جلسة باسم isNew تخزن قيمة بعد أول زيارة للموقع. if(!isset($_SESSION['isNew'])){ $_SESSION['isNew'] = 'yes'; $visitors ++; } يتم تدمير الجلسة بعد انتهاءها.
  18. أي ملف يجب ان تختص به هاته القواعد. ان كنت تريد تعميم هاته القواعد على كامل صفحات التطبيق فسيكون وضعها في ملف layout مناسبا جدا. ملف app.blade.php مثلا.
  19. يرجى التواصل مع الدعم لتوضيح كل النقاط بتفصيل.
  20. الحصول على الشهادة يتطلب التقدم والنجاح في امتحان الدورة. وهو الآخر يتطلب شروطا هي: اتمام اربعة مسارات تعليمية على الاقل ارسال المشاريع العملية المطبقة خلال المسارات رفع هاته المشاريع على حسابك في github ثم ان كانت هاته الشروط مستوفية فيك، يمكنك التقدم والمرور بمختلف مراحل الامتحان والحصول على الشهادة وهي: التواصل مع مركز الدعم القيام بمحادثة صوتية يتم تحديد موعدها لك القيام بمشروع تخرج يتم تحديده لك مراجعة المشروع والتخرج الحصول على الشهادة أخيرا.
  21. يمكنك تقييد تصريح لقواعد CSS بشرط أن تكون اللغة الحالية هي العربية. يوجد متغير القالب if@ لهذا الغرض. @if ( Config::get('app.locale') == 'ar') <style> /* اي قواعد تخصيص تختص بالعربية */ </style> @endif
  22. يتم ذلك بالفعل بشكل دائم ودوري بما يواكب التغييرات والتطورات الحاصلة في المجال، فعلى سبيل المثال. في هذا الشهر فقط قد تم: اضافة مسار يشرح تطوير تطبيقات Odoo في دورة بايثون اضافة مسار اساسيات هندسة البرمجيات في دورة علوم الحاسب تحديثات بممسارات متعددة في دورة PHP أما بالنسبة لدورة تطوير واجهات المستخدم، فقد شهدت هي الأخرى جملة تحديثات كان آخرها قبل حوالي الثلاث أشهر فقط باضافة وحدة الى مسار بناء واجهة مستخدم تشبه يوتيوب ليتم فيه شرح الاصدار الخامس من بوتستراب. (وهو تقريبا التحديث الجوهري الذي طرأ على المجال في خلال هاته المدة). يتم بشكل دائم مراقبة محتوى الدورة وتحديث أي جزئيات يرى أنه من المهم الاشارة اليها.
×
×
  • أضف...