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

لوحة المتصدرين

  1. Ali Haidar Ahmad

    Ali Haidar Ahmad

    الأعضاء


    • نقاط

      10

    • المساهمات

      1068


  2. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      9

    • المساهمات

      6975


  3. محمد المصري12

    محمد المصري12

    الأعضاء


    • نقاط

      4

    • المساهمات

      276


  4. حسن ابو صالح

    حسن ابو صالح

    الأعضاء


    • نقاط

      2

    • المساهمات

      1


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 07/12/21 في كل الموقع

  1. لما يتم شطب كلمة name عند إسناد قيمة لها في vsCode ؟
    2 نقاط
  2. السلام عليكم @Asd Fgh أتوقع هذا شيء طبيعي يحدث عند تعلم شيء جديد لأول مرة خاصة البرمجة بشكل عام لأنه شيء مختلف إن لم تكن واجهتها سابقاً ,تماماً كما يحدث عند الحصول على وظيفة جديدة لم يسبق لك العمل بها , ستجد أنك تائه ولا تعلم كيف وأين تبدأ , حل الأمر بسيط برأيي الشخصي ,هو من خلال عمل تعديلات على المشروع الذي تدربت عليه في المسار ومحاولة تعديل وإضافة أشياء كإضافة أخرى للمشروع بعد ذلك تطوير تلك التعديلات وبناء شيء فوقها متقدم أكثر عن السابق ويمكنك البحث على الويب في حال واجهت صعوبة في عمل أو تعديل شيء ما في الكود أو لعمل ميزة معينة أو تعديل ترغب , بعد تطبيق السابق إن لاحظت بأنك طبقته بشكل ناجح , هذه نقطة البداية إبحث عن مشاريع PHP مفتوحة المصدر (PHP Open Source Projects) على الويب ستجد العديد , قم بتنزيلها على جهازك وكرر العملية السابقة مرة وأخرى , إلى حين الوصول إلى مرحلة يمكنك فيها بناء موقع ترغب به من خلال PHP وستصل مع التكرار والمحاولة بالطريقة ما ذكرته مسبقاً إن شاء الله , وأيضاً هذه الطريقة لا تقتصر على PHP فقط بل يمكنك إستخدامها لتعلم أي لغة برمجة جديدة وصدقني ستجدني نفعاً.
    2 نقاط
  3. كيف يمكنني كتابة محتوى إحترافي لموقع ويب يقدم خدمات تسويق و خدمات اخرى
    1 نقطة
  4. سلام عليكم السايد بار ما بيعملش سكرول معايا بالماوس عشان اظهر البنود اللي تحت خالص مثال في الصور لو فتحت خانة الاوردرات مقدرش اشوف اللي تحتها غير لو صغرت حجم الشاشة -ctrl لو فتحت مصلا قسم التصميم اللي تحته بيختفي معرفش ارول بالماوس اجيب اللي تحته زي ما حضراتكم شايفين كده ده كود ال css الخاص بال sidebar .app-sidebar { width: 250px; display: flex; z-index: 11; overflow: hidden; min-width: 250px; position: relative; flex: 0 0 280px; margin-top: -10px; padding-top: 60px; margin-bottom:80px; transition: all .2s; height: 85%; overflow-y: scroll } .app-sidebar .app-sidebar__inner { padding: 2px 1.5rem 1.5rem } .app-sidebar .scrollbar-sidebar { z-index: 15; width: 100%; overflow: auto; } /* width */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar { width: 5px; } /* Track */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar-track { background: #f1f1f1; } /* Handle */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar-thumb { background: #888; } /* Handle on hover */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar-thumb:hover { background: #555; } انتظر استلام نصائحكم
    1 نقطة
  5. كيف يمكنني معرفة عدد المعاملات parameters في النموذج في Keras؟
    1 نقطة
  6. في المتصفح , الإسم name لو تم تعريفه كمتغير بشكل عام globally يكون ذا معنى و قيمة خاصة , و مثلما أشار المدرب @عبدالباسط ابراهيم ينتهي الأمر بأي تعريف له إلى إكتشافه على أنه المتغير name الخاص بالكائن window . و كما هو شائع في توابع و متغيرات الكائن window , لا يجب إستدعاءها أو إستعمالها دوما عن طريق الكائن على هذا النحو : window.document.getElementById('#someID') بل يكفي قراءتها مباشرة . و ليكن في العلم أن المتغير window.name يحتوي على غرض خاص ، ويفترض أن يكون سلسلة نصية , لذلك فإن أية تعريفات على هذا النحو : var name = {}؛ ينتهي الأمر بها فعليًا بإعطاء اسم المتغير العام (أي window.name) قيمة . و هنا يحاول المدقق الخاص ببرنامج VsCode توضيح هذا الشأن عن طريق شطب أي إسناد قيمة للمتغير name بشكل عام global . و كما يمكنك رؤية أن الشطب يختفي إذا وضعت نفس الشيفرة داخل دالة و هذا دليل على أن هذا الأمر يقتصر على تعريف المتغير name بشكل عام فقط . و لذلك للتخلص من المشكل بشكل نهائي يمكن الإستعانة بأحد الحلين : تعريف المتغير و إسناد قيمة له داخل دالة , أي بشكل محلي locally . إختيار إسم اخر للمتغير عوضا عن name , و ليكن customerName مثلا .
    1 نقطة
  7. أنا الان أسير في مسار تطوير تطبيقات الويب باستخدام لغة PHP ولكن أريد التطبيق على ماتعلمته ولا أعلم كيف ذلك
    1 نقطة
  8. إلى أين وصلت في دورة مسار تطوير تطبيقات الويب باستخدام لغة PHP ؟ أعتقد أنك ما تزال في أساسيات ال php أو laravel وكما وضح محمد في التعليق السابق طريقة جيدة للتطبيق على ما تعلمت ولكن إذا كنت تبحث عن تطبيقات فإنك ستجد بعد أساسيات ال php و laravel ما يقرب من الخمس تطبيقات وهذه التطبيقات كبيرة حيث ستتطبق على كل ما تعلمته وإكتساب خبرات جديدة وتعلم الممارسات والطرق السليمة لحل مشكلة ما في تطبيق بعض وظائف الموقع لذلك قم بدراسة أساسيات ال php و laravel بالتطبيق عليهما من خلال بعض التمارين التي يشرحها المدرب ثم بعد ذلك قم ببناء التطبيقات الموجودة في الدورة
    1 نقطة
  9. إن كانت لغة البرمجة ++C يمكنك استخدام cin لقراءة دخل المستخدم. ولتكرار العملية لكل العناصر نضع cin ضمن حلقتي for للمرور على عناصر المصفوفة الثنائية و نطبق cin لكل عنصر منها، هي مشابهة امثال لغة جافا في التعليق السابق.. حاولي تطبيق الشرح و البحث في الانترنت و إن احتجت لمساعدة أرجو إرفاق الشيفرة الاي قمت بكتابتها لنساعدك.
    1 نقطة
  10. نفس الشئ اخي الكريم
    1 نقطة
  11. على الرحب و السعة <?php if(!isset($_SESSION)) { session_start(); } ?> <div class="app-sidebar sidebar-shadow" style="overflow: auto;"> <div class="app-header__logo"> <div class="logo-src"></div> <div class="header__pane ml-auto"> <div> <button type="button" class="hamburger close-sidebar-btn hamburger--elastic" data-class="closed-sidebar"> <span class="hamburger-box"> <span class="hamburger-inner"></span> </span> </button> </div> </div> </div> <div class="app-header__mobile-menu"> <div> <button type="button" class="hamburger hamburger--elastic mobile-toggle-nav"> <span class="hamburger-box"> <span class="hamburger-inner"></span> </span> </button> </div> </div> <div class="app-header__menu"> <span> <button type="button" class="btn-icon btn-icon-only btn btn-primary btn-sm mobile-toggle-header-nav"> <span class="btn-icon-wrapper"> <i class="fa fa-ellipsis-v fa-w-6"></i> </span> </button> </span> </div> <div class="scrollbar-sidebar"> <div class="app-sidebar__inner"> <ul class="vertical-nav-menu"> <li class="app-sidebar__heading">الوصول السريع</li> <li> <a href="index.php"> <i class="metismenu-icon pe-7s-home"></i> الرئيسية </a> </li> <?php $permission = $_SESSION['permission']; // إعدادات النظام if ($permission == 1){ //قسم للادمن فقط echo '<li class="app-sidebar__heading dropdown-btn"> <a class="text-dark" aria-expanded="true"> <img src="img/sidebaricons/settings.png" style="width:40px;height:40px;">&nbsp;&nbsp; إعدادات النظام <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> </li> <div class="dropdown-container"> <li> <a href="design.php"> <i class="metismenu-icon pe-7s-user"></i> الأعدادات الرئيسية </a> </li> <li> <a href="addfabric.php"> <i class="metismenu-icon pe-7s-user text-success"></i> إضافة أقمشة </a> </li> <li> <a href="addfiber.php"> <i class="metismenu-icon pe-7s-user"></i> إضافة ألياف </a> </li> <li> <a href="addstitch.php"> <i class="metismenu-icon pe-7s-user"></i> اضافة و تعديل الغرز </a> </li> <li> <a href="addconnections.php"> <i class="metismenu-icon pe-7s-user"></i> اضافة و تعديل الوصلات </a> </li> </div> '; } // الموظفين if ($permission == 1){ //قسم للادمن فقط echo ' <li class="app-sidebar__heading dropdown-btn"> <a class="text-dark" aria-expanded="true"> <img src="img/sidebaricons/employee.png" alt="الموظفين" style="width:30px;height:30px;">&nbsp;&nbsp; &nbsp; الموظفين <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> </li> <div class="dropdown-container"> <li> <a href="addworker.php"> <i class="metismenu-icon pe-7s-settings"></i> إضافة موظف جديد </a> </li> <li> <a href="workers.php"> <i class="metismenu-icon pe-7s-user"></i> استعراض الموظفين </a> </li> </div>'; } // العملاء echo ' <li class="app-sidebar__heading dropdown-btn text-dark"> <div aria-expanded="true" class="text-black"> <img src="img/sidebaricons/customers.png" alt="العملاء" style="width:40px;height:40px;">&nbsp;&nbsp; العملاء <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </div> </li><div class="dropdown-container"><li> <a href="createuser.php"> <i class="metismenu-icon pe-7s-settings"></i> إضافة عميل جديد </a> </li> <li> <a href="users.php"> <i class="metismenu-icon pe-7s-users"></i> إستعراض العملاء </a> </li></div>'; //الموردين echo ' <li class="app-sidebar__heading dropdown-btn"> <a class="text-dark" aria-expanded="true"> <img src="img/sidebaricons/supplier.png" alt="الموردين" style="width:30px;height:30px;">&nbsp;&nbsp; الموردين <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> </li> <div class="dropdown-container"> <li> <a href="suppliers_add.php"> <i class="metismenu-icon pe-7s-add-user"></i> إضافة مورد </a> </li> <li> <a href="supplier_view.php"> <i class="metismenu-icon pe-7s-user"></i> إستعراض الموردين </a> </li> <li> <a href="add_supplier_item.php"> <i class="metismenu-icon pe-7s-user"></i> التحكم في بنود التوريد </a> </li> </div>'; //تركيبات الاقمشة echo ' <li class="app-sidebar__heading dropdown-btn"> <a class="text-dark" aria-expanded="true"> <img src="img/sidebaricons/fabric.png" alt="تركيبات القماش" style="width:30px;height:40px;">&nbsp;&nbsp; تركيبات القماش <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> </li> <div class="dropdown-container"> <li> <a href="commonfabrics.php"> <i class="metismenu-icon pe-7s-network"></i> إضافة تركيبة قماش </a> </li> <li> <a href="commonfabricview.php"> <i class="metismenu-icon pe-7s-menu"></i> إستعراض تركيبات القماش </a> </li> </div>'; echo '<li class="app-sidebar__heading dropdown-btn"> <a class="text-dark" aria-expanded="true" > <img src="img/sidebaricons/design.png" alt="التصميم" style="width:40px;height:40px;">&nbsp;&nbsp; التصميم <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> </li>'; echo '<div class="dropdown-container">'; //echo '<li><a href="consumption.php"><i class="metismenu-icon pe-7s-network"></i>معدل إستهلاك خيط الحياكة</a></li>'; echo ' <li> <a class="text-dark"> <i class="metismenu-icon pe-7s-paperclip"></i> الاكسسوارات <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> <ul> <li> <a href="thread.php"> <img src="img/sidebaricons/sewing.png" alt="الخيوط" style="width:15px;height:25px;">&nbsp;&nbsp; خيط الحياكة </a> </li> <li> <a href="button.php"> <img src="img/sidebaricons/zorar.png" alt="ازرار" style="width:25px;height:25px;">&nbsp;&nbsp; الأزرار </a> </li> <li> <a href="zippers.php"> <img src="img/sidebaricons/zipper.png" alt="السوستة" style="width:15px;height:25px;">&nbsp;&nbsp; السحاب (السوسته) </a> </li> <li> <a href="capson.php"> <img src="img/sidebaricons/press.png" alt="كبسونة" style="width:25px;height:25px;">&nbsp;&nbsp; الكباسين (الطقطق) </a> </li> <li> <a href="rubber.php"> <img src="img/sidebaricons/elastic.png" alt="الاستك" style="width:25px;height:25px;">&nbsp;&nbsp; المطاط (الاستيك) </a> </li> <li> <a href="rope.php"> <img src="img/sidebaricons/rope.png" alt="الحبل" style="width:30px;height:35px;">&nbsp;&nbsp; الحبل (شريط تدكيك) </a> </li> <li> <a href="tape.php"> <img src="img/sidebaricons/tape.png" alt="شريط لاصق" style="width:30px;height:35px;">&nbsp;&nbsp; الشريط اللاصق-سكوتش </a> </li> <li> <a href="hook.php"> <img src="img/sidebaricons/hook.png" alt="أخرى" style="width:30px;height:35px;">&nbsp;&nbsp; أخرى </a> </li> </ul> </li>'; echo ' <li> <a class="text-dark"> <i class="metismenu-icon pe-7s-plugin"></i> الياقة والاساور <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> <ul> <li> <a href="collar.php"> <img src="img/sidebaricons/collar.png" alt="ياقة" style="width:30px;height:30px;">&nbsp;&nbsp; الياقات </a> </li> <li> <a href="bracelet.php"> <img src="img/sidebaricons/bracelet.png" alt="اسورة" style="width:30px;height:30px;">&nbsp;&nbsp; الاسورة </a> </li> <li> <a href="sleeve.php"> <img src="img/sidebaricons/kamar.jpg" alt="كمر" style="width:30px;height:25px;">&nbsp;&nbsp; الكمر </a> </li> </ul> </li>'; echo ' <li> <a class="text-dark"> <i class="metismenu-icon pe-7s-print"></i> التطريز والطباعة <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> <ul> <li> <a href="embroidery.php"> <img src="img/sidebaricons/embroidery.png" alt="تطريز" style="width:30px;height:30px;">&nbsp;&nbsp; التطريز </a> </li> <li> <a href="print.php"> <img src="img/sidebaricons/print.png" alt="طباعة" style="width:30px;height:30px;">&nbsp;&nbsp; الطباعة </a> </li> </ul> </li>'; echo ' <li> <a class="text-dark"> <i class="metismenu-icon pe-7s-box2"></i> مستلزمات التعبئة والتغليف <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> <ul> <li> <a href="mainticket.php"> <img src="img/sidebaricons/tickets.png" alt="تيكيت" style="width:40px; height:30px;">&nbsp;&nbsp; التيكت الرئيسى </a> </li> <li> <a href="infocard.php"> <img src="img/sidebaricons/tickets.png" alt="تيكيت" style="width:40px; height:30px;">&nbsp;&nbsp; البطاقة الإرشادية </a> </li> <li> <a href="itemcard.php"> <img src="img/sidebaricons/tickets.png" alt="تيكيت" style="width:40px; height:30px;">&nbsp;&nbsp; كارت الصنف </a> </li> <li> <a href="sizeticket.php"> <img src="img/sidebaricons/tickets.png" alt="تيكيت" style="width:40px; height:30px;">&nbsp;&nbsp; تيكيت المقاسات </a> </li> <li> <a href="packing_method.php"> <img src="img/sidebaricons/tickets.png" alt="تيكيت" style="width:40px; height:30px;">&nbsp;&nbsp; طريقة التعبئة والتغليف </a> </li> </ul> </li>'; echo '</div>'; echo ' <li class="app-sidebar__heading dropdown-btn"> <a href="view-all-acc.php" class="text-dark" aria-expanded="true"> <img src="img/sidebaricons/orders.png" alt="الاكسسوارات" style="width:30px;height:40px;">&nbsp;&nbsp; استعراض الاكسسوارات <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> </li> '; echo ' <li class="app-sidebar__heading dropdown-btn"> <a class="text-dark" aria-expanded="true"> <img src="img/sidebaricons/orders.png" alt="الاوردرات" style="width:30px;height:40px;">&nbsp;&nbsp; الأوردرات <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i> </a> </li> <div class="dropdown-container"> <li> <a href="browse_orders.php"> <i class="metismenu-icon pe-7s-box2"></i> إستعراض الأوردرات </a> </li> </div> <div class="dropdown-container"> </div> '; ?> </ul> </div> </div> </div>
    1 نقطة
  12. شكرا لك عدلت الكود كالتالي لكن نفس المشكلة .app-sidebar { width: 250px; display: flex; z-index: 11; min-width: 250px; position: relative; flex: 0 0 280px; margin-top: -10px; padding-top: 60px; margin-bottom:80px; transition: all .2s; height: 85%; overflow-y: scroll } .app-sidebar .app-sidebar__inner { padding: 2px 1.5rem 1.5rem } .app-sidebar .scrollbar-sidebar { z-index: 15; width: 100%; overflow-y: scroll } /* width */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar { width: 5px; } /* Track */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar-track { background: #f1f1f1; } /* Handle */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar-thumb { background: #888; } /* Handle on hover */ .app-sidebar .scrollbar-sidebar::-webkit-scrollbar-thumb:hover { background: #555; }
    1 نقطة
  13. يحدث ذلك لأنك تضع خاصية over flow للصنف app-sidebar, حاول ازالتها أو يمكنك تغييرها لتكون كذلك overflow-y: scroll; أي أنه سوف يكون هناك scroll باتجاه الاعلى وأسفل فقط
    1 نقطة
  14. يعتبر الثلاث تقنيات cross platform أي متعددة المنصات وتختلف كل منصة على حسب اللغة المستخدمة لذلك بما أنك مطور ويب فربما تعلمت React لذلك أنصحك بتعلم React native بدلاً من تعلم لغة أخرى مثل Dart للعمل ب Flutter ومن ناحية إنتشار التقنية في منصات العمل الحر والدعم الموجود لكل منصة فستجد أن React native الأكثر إنتشاراً ولكن Flutter تكتسب دعماً وإنتشاراً بسرعة ويزداد الطلب عليها سريعاً وبالنسبة للتطبيقات التي يمكنك بنائها من خلال هذه التقنيات فهي تطبيقات كبيرة حيث تم بناء تطبيق ال facebook بواسطة react native لذلك قم بإختيار تقنية منهم وقم بإتقانها جيداً فليس هناك فرق كبير بينهما
    1 نقطة
  15. الرابط الذي قمت بإرفاقه هو أحد ملفات ال JavaScript الخاصة بإحدى مكتبات ال animations. أرجو منك إرفاق الرابط الخاص بالتوثيق الرسمي للمكتبة أو الموقع الخاص بالمكتبة حتى نتمكن من مساعدتك
    1 نقطة
  16. لربط قاعدة البيات مع التطبيق عليك دراسة مفهوم ال API هي application programming interface أو واجهة برمجية يمكن استخدامها بدون معرفة التفاصيل الفعلية التي تقوم بها، وضمن الويب web تعتبر على شكل خدمة ويب web service وهي تتيح جلب/عرض بيانات من موقع ما (قاعدة البيانات الخاصة به) عتن طريق الاتصال مع المخدم عبر هذه الخدمة، وهي تكون على شكل روابط فريدة، بعد استدعائها عن طريق HTTP method تعيد بيانات خام على هئية json والتي هي بنية معطيات خاصة بتناقل المعطيات وتخزينها. كما تسمح API بإضافة و تعديل البيانات في القاعدة، عادة تستخدم من مكون خارج النظام الفعلي أو تطبيق هاتف جوال أو موقع آخرـ وهي تختلف عن رابط صفحة ويب أنها لا تعيد شيفرات html إنما بيانات خام JSON . JOSN مكون من مفتاح (اسم خاصية و قيمتها) اسم الخاصية سلسلة نصية حصرا، أما القيمة ممكن أن تكون integer - bool - array أو حتى كائنات JSON فرعية أخرى: { "key1" : "value1", // نص "key2" : 2, // رقم "key3" : ["value3.1","value3.2"], // مصفوفة "key4" : { // غرض JSON "key4.1" : "value4.1", // نص }, } مثال بسيط: { "name":"John", "age":30, "car":null } افترض أن رابط الخدمة هو: الرابط مثال لموقع له خدمة API http://website/api/students/10 لاحظ أننا نطلب مسار خاص بطالب معين رقمة 10، حيث تأتينا البيانات بالشكل السابق.. هي تختلف بين موقع و آخر بالطبع حسب المطور ومتطلبات المشروع. يمكن بالمثل الاتصال مع المخدم و إرسال بيانات له وهو سيضيفها في القاعدة لديه. أرجو دراسة http methods فهي أساسية للتعامل مع API GET PUT POST DELETE مقالات من أكاديمية حسوب: كيف تنشر تطبيق Asp.net Core مع خادم MySQL باستخدام Nginx على أوبنتو 18.04 شرح فلسفلة RESTful - تعلم كيف تبني واجهات REST برمجية أساسيات بناء تطبيقات الويب
    1 نقطة
  17. بدون استخدام مكتبات خارجية يمكنك تحويل القائمة الى set وتبقى العناصر كما هي مرتبة كالآتي def unique(sequence): # إنشاء سيت فارغة seen = set() # إضافة العناصر بالترتيب بدون تكرار return [x for x in sequence if not (x in seen or seen.add(x))] أو كالآتي def dedupe(items): # إنشاء سيت فارغة seen = set() # حلقة لإضافة العناصر بالترتيب وبدون تكرار for item in items: if item not in seen: yield item seen.add(item)
    1 نقطة
  18. يوجد مكتبة تدعى ordered-set يمكن تثبيتها: pip install ordered-set ثم استخدامها بالشكل التالي.. سوف تقوم ببناء مجموعة مرتبة: #تضمين المكتبة from ordered_set import OrderedSet # بناء غرض x = [0,1,2,4,8,16,32,64,128,512,1024] my_numbers = OrderedSet(x) # عرض العناصر print(my_numbers) # OrderedSet([0, 1, 2, 4, 8, 16, 32, 64, 128, 512, 1024]) # فحص وجود عنصر print(128 in my_numbers) # true print(333 in my_numbers) # false
    1 نقطة
  19. الفرق الآخر هو في حالة اختيار مخدم بشكل https الخاص بالاتصال الآمن حيث أن express يعيد http.Server object أما في الطريقة الثانية يمكننا بناء المخدم من https: var https = require('https'); var server = https.createServer(app).listen(config.port, function() { console.log('Https App started'); }); الشكل الافتراضي لكليهما: http.createServer(app).listen(80); https.createServer(options, app).listen(443); وإن أردت جعل express يشغل كلاً من http - https يمكن استعمال المنطق التالي: // تضمين مكتبات var fs = require('fs'); var http = require('http'); var https = require('https'); var privateKey = fs.readFileSync('sslcert/server.key', 'utf8'); var certificate = fs.readFileSync('sslcert/server.crt', 'utf8'); // إعادادات https var credentials = {key: privateKey, cert: certificate}; var express = require('express'); var app = express(); // تجهيز المخدم var httpServer = http.createServer(app); var httpsServer = https.createServer(credentials, app); // تشغيل المخدمين httpServer.listen(8080); httpsServer.listen(8443);
    1 نقطة
  20. حاولي عمل تحديث للنظام سيقوم بتنصيب البرامج الناقصة Driver (السواقات للقطع المختلفة في Hardware) كما يمكن الدخول ل device manager والبحث عن السواقات الناقصة التي سيظهر بجانبها مثلث أصفر كالتالي: وإن ظهر مثلث أبيض وأسود تأكدي من تفعيل wifi adapter. إن لم تعرفي الحل، يفضل أخذ الحاسوب لاختصاصي.
    1 نقطة
  21. يسعد اوقاتك بكل خير... انت بحاجة الى كتابة مقالات تتحدث عن التسويق ومختلف الخدمات في موقعك بشكل معلوماتي ومتوافق مع ال SEO بحيث تستطيع من خلال المقالات جلب زوار يبحثون عن الفائدة في موقعك وبالتالي تبني علاقة بينك وبين الزوار على الأمد البعيد. المحتوى ستقسمه الى عدة تصنيفات حسب تصنيفات الخدمات التي ستقدمها، فإذا كنت ستقدم خدمات SEO مثلا، فسيكون في موقعك مقالات تتحدث عن ال SEO .... وهكذا. هناك نصيحة سأقدمها لك في هذا الأمر، يجب عليك أن تستخدم الأدوات التي تساعدك في تصدر مقالتك في محرك البحث كإضافة SEO Yoast مثلا. في الوقت الحالي أنا أستخدم اداة Guinrank وهي رائعة وتساعدك على كتابة مقالات وفحص المنافسين واختيارىالكلمة المفتاحية المناسبة للمقال ... إلخ.
    1 نقطة
  22. بالاعتماد على Numpy يمكن استخدام الدالة linspace كالتالي: # تضمين import numpy as np # بناء مصفوفة مع القفزة العشرية # بداية - قفزة - نهاية # يتم اعتبار القفزة بمقلوب القيمة الصحيحية الممررة np.linspace(0,1,11) # الناتج array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ]) في حال لم ترد وجود نقطة النهائبة نضع endpoint = false : مثل (0,1,10,endpoint=False) كما يمكن استعمال arange بقيم عشرية: np.arange(0.0, 1.0, 0.1) array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) وبطريقة عادية نستخدم حلقة و نعيد كل عنصر منها مضروبا بنسبة تصغير معينة: #1 [x * 0.1 for x in range(0, 10)] #2 for i in range(0, 11, 1): print i / 10.0 #3 for i * 100 in range(0, 100, 10): print i / 100.0 يمكن الإطلاع على مرجع أكاديمية حسوب لتعلم بايثون :
    1 نقطة
  23. عادةً يمكن حذف المكتبات التي يمكن إعادة تحميلها من الطرف الآخر للمشروع، مثلا: إن اعتمد المشروع على node أو npm يمكن ضغط المشروع بدون المجلد node_module نثبت المكتبات ب (npm install) إن اعتمد المشروع على Laravel يمكن حذف المجلد vendor منه نثبت المكتبات ب (composer install) وهكذا بالنسبة لأي مشروع برمجي، كما يمكن اعتماد github + gitlab وغيرها من التقنيات التي تعتمد على git وهي source version controle تسمح بتحديث المشاريع بين المبرمجين و تتبع التغييرات فيها ويفضل تعلمها. يمكن مراجعة أساسيات git من مقالات أكاديمية حسوب:
    1 نقطة
  24. يمكن عدم السماح للوثيقة document أن تحمل قيم فارغة null باستخدام مايشبه الشرط التالي: $match: { myFieldArray: { $elemMatch: { $exists: true } ^^^^^^^^^^^^^ ضمان وجود قيمة للكائن } } ولتمرير قيمة خاصية عليك استخدام معامل المرجعية '$' كالتالي: $project: { "department": 1, "employees":1, "Count employees" : {$size : "$employees" } }
    1 نقطة
  25. ليس على أي شخص متابعة جميع هذه الدورات فإن كل منها في مجال مختلف وتعتمد على تقنيات مختلفة، ولأنه ولكي يتميز المبرمج يجب أن يتخصص في مجال معين ويقوم بعمل مشاريع جيدة ضمنه. أعتقد أن من المفيد البدء بدورة علوم الحاسب، والتعرف على المجال من أوسع أبوابة من الخوارزميات للبرمجة و قواعد البيانات وغيرها من الأساسيات الفيدة، ثم بعدها يمكنك التفكير بالتخصص بتسجيل دورة أخرى والآن بعد أن أصبح لك أساس قوي. مثلا: دورة واجهات المستخدم تكفي ليصبح الشخص ماهرا في تصميم المواقع وجعلها جميلة و متناسقة مع تطبيقات الجوال. دورة برمجة الواجهات الخلفية PHP / Laravel تكفي لفهم شامل للارافيل و عمل مشاريع بها و التعرف على التفاصيل. دورة جافاسكربت تمكن من عمل تصميم للمواقع React و الواجهات الخلفية Node و تطبيقات الهواتف React Native بسبب وجود إطارات عمل تعمل كلها بنفس اللغة (جافاسكربت) و تسمح بتشغيل المشاريع على أكثر من منصة وهذه الدورة عي الأكثر تكاملاً..
    1 نقطة
  26. import re # regex استيراد المكتبة txt = input() # إدخال النص # $إيجاد كل مايبدأ بالرمز # وبعده رقم واحد على الأقل result = re.findall("\$\d+", txt) # عرض النتائج if result: for word in result: print(word) else: print("No dollars!")
    1 نقطة
  27. model.save('our_model.hdf5') # 'my_model.hdf5' هنا قمنا بحفظ النموذج في ملف # المسار المطلوب تخزينه فيه save أي نمرر للدالة from keras.models import load_model # لتحميل المودل بعد أن قمنا بتخزينه model = load_model('our_model.hdf5') طبعاً يمكنك حفظ نموذجك بصيغ أخرى مثل h5 أو Json.. لكن شخصياً أنصح ب hdf5.
    1 نقطة
  28. (object)append تضيف كائن في نهاية ال list كما هو: li = ['adam', 'messi',44] li.append([5,5]) # الخرج : ['adam', 'messi', 44, [5, 5]] (iterable)extend تقوم بإضافة عناصر إلى ال list من iterable (أي list أخرى أو tuble أو set أو dict): li2 = ['adam', 'messi',44] li2.extend([5,5]) # الخرج : ['adam', 'messi', 44, 5, 5] # لاحظ كيف اختلفت عملية الإضافة (index,value)insert: تستخدم لإضافة عنصر جديد في مكان محدد في الـlist الذي قام باستدعائها. li3 = ['adam', 'messi',44] li3.insert(0,[5,5]) # الخرج : [[5, 5], 'adam', 'messi', 44]
    1 نقطة
  29. يمكن تحقيقه باستخدام المصفوفات (سافترض أن لديك معرفة نظرية بسيطة حوله): المكدس عبارة عن نموذج خاص لتخزین البیانات واستخراجها بآلیة الداخل أولاً الخارج أخراً أو الداخل أخيراً يخرج أولاً LIFO (LAST INPUT FIRST OUTPUT) نستخدم مع المكدس مؤشر واحد فقط نسميه top. عند إدخال أول قیمة فإننا نزید من قيمته فيصبح صفراً وكل ما أدخلنا قیمة جديدة فإن المؤشر یزید بمقدار واحد إلى أن یمتلئ المكدس. عندما یكون المكدس فارغاُ يكون top=-1 وعند القيام بعملیة إخراج لقيمة من المكدس فإننا ننقص المؤشر بمقدار واحد إلى أن تصل قیمة المؤشر إلى -1. import java.io.*; class javaapplication1 { static final int CAPACITY=5; // يمكنك تعديلها static int[] Stack=new int[CAPACITY]; static int top=-1; // ویسمى ذیل المكدس وھو متغیر عام تستطیع الدوال الوصول إليهTop تعریف static boolean isEmpty(){ // اختبار المكدس فيما إذا كان فارغاً return (top < 0); } static boolean isFull(){ // اختبار المكدس فيما إذا كان ممتلئ return (top+1== CAPACITY); } /* حجم المصفوفة -1 = top نعلم أن المكدس ممتلئ عندما یكون مؤشر الذیل أي top وإلا سنزید من المؤشر بواحد وسنضع القیمة بداخل المصفوفة بداخل الموقع الذي تكون قیمته أي اقل من الصفر top=-1 نعلم أن المكدس يصبح فارغاً عندما تكون قیمة المؤشر وسنطرح قیمة المؤشر top وإلا سنخرج القیمة من داخل المصفوفة التي تحمل عنوان قیمة بواحد. */ static void push(int element){ // دالة لإدخال البیانات إلى المكدس if (isFull()) // إذا كان ممتلئ لايمكن الإضافة عليه System.out.println("Stack is full."); else // نضيف العنصر الجديد إلى المكدس فيما عدا ذلك Stack[top++] = element; } static int pop(){ // دالة أخراج البیانات من المكدس if (isEmpty()){ System.out.println("Stack is empty."); System.exit( 0 ); } return Stack[top--]; } // اختبار التوابع public static void main(String args[])throws IOException{ String num; BufferedReader br = new BufferedReader(new InputStreamReader (System.in)); System.out.println( "Enter first integer" ); while(!isFull()){ num=br.readLine(); push(Integer.parseInt(num)); } while(!isEmpty())System.out.println(pop()+" "); } } // أدخلي القيم التي تريدينها وستلاحظين أن الخرج سيحقق مفهوم المكدس طبعاً يمكنك تعديل الكود السابق وتغليفه مثلاً ضمن class تسميه Stack ويمكنك أن تضيف له العديد من الدوال الأخرى. ويمكنك أيضاً استخدام الكلاس stack الذي تقدمه جافا وهو كلاس يرث الصف vector وبالتالي يرث كل الدوال الموجودة فيها. import java.util.Stack; // stack استيراد الصف public class Main { public static void main(String[] args) { // تعريف غرض من الصف Stack ourstack = new Stack(); // s هنا قمنا بإضافة 4 عناصر في الكائن ourstack.push("Ali"); ourstack.push("Ahmad") // إخراج البيانات من المكدس while( !s.empty() ) { System.out.println(ourstack.pop()); } } } ويوجد العديد من الدوال الأخرى ضمن الكلاس Stack في جافا.
    1 نقطة
  30. # iterrows باستخدام الدالة for i, row in df.iterrows(): for j, column in row.iteritems(): print(column) # أو بالشكل التالي for index, row in df.iterrows(): print(row['column1'], row['column2']) # iloc أو باستخدام التابع for i in range(0, len(data)): print df.iloc[i]['column1'], df.iloc[i]['ccolumn2'] حيث أن الدالة iterrows هو مولد ينتج كلاً من الفهرس والسطر (كسلسلة).
    1 نقطة
  31. ملف CSV (Comma Separated Values قيم مفصولة بفاصلة) هو عبارة عن نوع خاص من الملفات التي يمكنك إنشاؤها أو تحريرها في Excel. بدلاً من تخزين المعلومات في أعمدة، تُخزّن ملفات CSV المعلومات مفصولة بفواصل. لقراءة ملف من هذا النوع نستخدم التابع csv.reader()‎‎: تعيد هذه الدالة كائن قراءة Object Reader مهمته هي المرور على جميع الأسطر في ملف csv. # مثال import csv path1='E:\file.csv' # كتابة المسار الذي يوجد به الملف file=open(path1,'r') # فتح الملف الموجود في المسار الممر reader=csv.reader(file) # csv الموجود في الصف reader قراءة الملف باستخدام التابع # reader موجودة في الغرض csv الآن أصبحت كل الأسطر في ملف # لعرض الملف يمكننا القيام بمايلي for row in reader: print(row)
    1 نقطة
  32. سأقوم بإنشاء صف ابن Child Class وأقوم بوراثته من صف أب Super Class ثم سأستدعي جميع الدول: طبعاً لاتختلف عملية الاستدعاء أو كتابة البرنامج في باي تشارم عن بقية البرامج مثل سبايدر وجوبيتر فكلها IDE للبايثون. #----------------------------------------# # تعريف الصف الأب class info: def gender(self,gen): if gen=='male': return "Male" else: return "Female" def isteenager(self,age): if age<=21: return True else: return False #----------------------------------------# # تعريف الصف الابن الذي يمثل طالب class Student(info): def __init__(self,name,age,degree1,degree2,degree3): self.degree1=degree1 self.degree2=degree2 self.degree3=degree3 self.name=name self.age=age def calc_Gpa(self): return (self.degree1+self.degree2+self.degree3)/3 # حساب معدل الطالب في المواد الثلاثة def get_info(self): print("Name : "+str(self.name)+'\n'+"Age :"+str(self.age)) #----------------------------------------# Leen = Student('Leen',20,100,90,85) # إنشاء غرض من الصف الابن #----------------------------------------# # استدعاء الطرق الموجودة في الصف الابن print(Leen.calc_Gpa()) print(Leen.get_info()) #----------------------------------------# # استدعاء الطرق الموجودة في الصف الأب من خلال الصف الابن، وهذا ممكن لأننا قمنا بوراثته print(Leen.isteenager(Leen.age)) print(Leen.gender("female")) #----------------------------------------# # (أي هنا لن نستخدم الصف الابن) استدعاء الطرق الموجودة في الصف الأب عن طريق إنشاء كائن من الصف الأب p=info() # إنشاء غرض من الصف الأب print(p.isteenager(20)) print(p.gender("male"))
    1 نقطة
  33. هناك طرق كثيرة ويمكنك استخدام المكتبة Sikit-Learn لتنفيذها مباشرة: 1.Standardization: وهي العملية الأكثر شهرة , وفيها يتم طرح القيمة ناقص ال mean مقسومة علي الانحراف المعياري std. # StandardScaler استيراد الصف from sklearn.preprocessing import StandardScaler # القيام بعملية التقييس StandardSca = StandardScaler(copy=True) #StandardScaler تعريف غرض من الصف # copy=True لكي لايعدل على البيانات الأساسية أي سينشئ نسخة عن البيانات ويطبق عليها التقييس data = StandardSca.fit_transform(data) # StandardScaler استدعاء التابع الذي ينفذ عملية التقييس من الصف 2.MinMaxScaler: يتم فيه طرح القيمة من المتوسط وتقسم على المدى (الفرق بين أكبر وأصغر قيمة) وتكون القيم الجديدة بين 0 و 1. #MinMaxScaler استيراد الصف from sklearn.preprocessing import MinMaxScaler MinMaxSc = MinMaxScaler(copy=True, feature_range=(0, 1)) # يمكننا تغيير المجال data = MinMaxSc.fit_transform(data) 3.Binarizer: تقوم بتحويل القيم إلى 0 أو ، بناءان على قيمة العتبة threshold الممرة from sklearn.preprocessing import Binarizer Binarize = Binarizer(threshold = value) data = Binarize.fit_transform(data) 4.Normalizer: مخصصة لتناول كل صف علي حدة في المصفوفات ثنائية الأبعاد. from sklearn.preprocessing import Normalizer Normalize = Normalizer(copy=True, norm='l2') # max يمكنك تغيير النورم الى 11 أو data = Normalize.fit_transform(data) 5.FunctionTransformer: للقيام بالتقييس باستحدام دالة نعرفها بأنفسنا. from sklearn.preprocessing import FunctionTransformer ''' FunctionTransformer(func=None, inverse_func=None, validate= None, accept_sparse=False,pass_y='deprecated', check_inverse=True, kw_args=None,inv_kw_args=None) ''' scaler = FunctionTransformer(func = lambda x: x**2,validate = True) data = scaler.fit_transform(data)
    1 نقطة
  34. تعيد الدالة super()‎ كائنا وسيطا يفوض استدعاءات التوابع إلى صنف أب أو صنف شقيق للصنف الذي استدعيت منه الدالة. هذا مفيد للوصول إلى التوابع الموروثة التي أعيدت كتابتها في صنف معيّن. ترتيب البحث يكون هو نفسه التّرتيب المستخدم من طرف الدالة getattr()‎ لكن النوع type‎ المعطى يتجاهل. المعاملات: type: النوع الذي ستقوم الدّالة super()‎ بتفويض استدعاءات التّوابع إلى صنف أب أو صنف شقيق له. تعرض الخاصية __mro__ الخاصة بالصّنف type ترتيب البحث عن التوابع (method resolution search order) الذي يستعمل من طرف كلّ من الدّالة getattr‎()‎ والدّالة super()‎ . وتكون الخاصيّة ديناميكيّةً يُمكن لها أن تتغيّر كلّمَا حُدّثت شجرة الوراثة (inheritance hierarchy). object-or-type:إن لم تُمرّر قيمة للمُعامل، فالكائن super‎ المُعاد لا يكون مربوطًا (unbound). إن كانت قيمة المُعامل كائنًا، فيجب على الاستدعاء ‎isinstance‎(‎obj‎,‎ type‎)‎‎ أن يُعيد القيمة True‎. إن كانت قيمة المُعامل نوعًا (type)، فيجب على الاستدعاء ‎issubclass‎(‎type2‎,‎ type‎)‎‎ أن يُعيد القيمة True‎ (وهذا مُفيد لتوابع الأصناف). القيمة المعادة: كائن وسيط يُفوّض استدعاءات التّوابع إلى صنف أبٍ أو صنف شقيق للصّنف الذي استُدعيَت منه الدّالة. أمثلة: هناك حالتان تستعمل فيهما الدّالة super()‎ عادة: تستعمل للوصول إلى الصّنف الأب في شجرة أصناف ذات وراثة وحيدة (class hierarchy with single inheritance) دون الحاجة إلى تسمية الصنف مباشرة، ما يسمح للشيفرة بأن تكون قابلة للتّطوير والصيانة بشكل أفضل، وحالة الاستخدام هذه تشابه طريقة استخدام super()‎ في لغات البرمجة الأخرى. المثال التّالي يُوضّح حالة الاستخدام هذه: class A: def add(self, x, y): # دالّة تُعيد مجموع عددين return x+y class B(A): # وراثة من الصّنف الأب def add_print(self, x, y): # دالّة تُضيف العددين وتطبع العمليّة result = super().add(x, y) # استدعاء تابع يتواجد في الصّنف الأب دون تسميّة الصّنف الأب صراحةً print(f'{x}+{y}={result}') # طباعة العمليّة الحسابيّة adder = B() # إنشاء كائن من الصّنف الوارث adder.add_print(1, 2) # استدعاء دالّة الإضافة والطّباعة #1+2=3 adder.add_print(1, 5) #1+5=6 الحالة الثانيّة التي تستخدم فيها هي عند الرغبة في استعمال وراثة متعددة متعاونة (cooperative multiple inheritance) في بيئة تنفيذ ديناميكية (أي أن الصنف يمكن له أن يرث من أكثر من صنف واحد). هذه الميزة موجودة فقط في لغة بايثون ولا توجد في لغات البرمجة المجمعة (statically compiled languages) أو في لغات البرمجة التي لا تدعم سوى الوراثة الأحادية (أي أن الصنف لا يُمكن أن يرث إلا من صنف واحد فقط). ما يمكن من تطبيق "تخطيطات الماسة (diamond diagrams)" عندما تحتوي أصناف آباء عدة على نفس التابع. يجب على هذا التابع أن يمتلك نفس توقيع الاستدعاء (calling signature) في جميع الحالات (لأنّ ترتيب الاستدعاءات يحدد في وقت التّنفيذ runtime، ولأن الترتيب يتغير حسب تغيّر شجرة الأصناف، ولأن الترتيب يمكن له أن يشمل أصنافا شقيقة غير معلومة قبل بدء وقت التنفيذ). class C(B): def method(self, arg): super().method(arg) # هذا الاستدعاء مُكافئ للاستدعاء أدناه # super(C, self).method(arg) ملاحظات: الدالة super()‎ مطبقَة كجزء من عملية الرّبط للبحث عن الخاصيات بوضوح (explicit) باستخدام النّقطة .‎ مثل ‎super‎(‎)‎.‎_‎_‎getitem‎_‎_‎(‎name‎)‎. وتقوم بذلك عبر تطبيق تابع ‎_‎_‎getattribute‎_‎_‎(‎)‎ خاص بها للبحث عن الأصناف بترتيب يمكن توقّعه يَدعم الوراثة المتعددة المتعاونة. وبالتّالي، فالدالة super‎()‎ غير معرفَة للبحث الضمني (implicit) باستخدام الجمل أو العوامل مثل super‎()‎‎[‎name‎]‎. استخدام super‎()‎ ليس محصورا داخل التّوابع فقط، المعاملان اللذان تقبلهما الدالة يحددان المراجع المناسبة التي ستنشأ. استدعاء الدالة دون عوامل يعمل داخل الأصناف فقط، لأن المجمع يملأ الفراغات المطلوبة للحصول على الصنف المناسب، إضافة للوصول إلى النسخة الحالية للتوابع العادية. # تم تعديله
    1 نقطة
  35. تشير الأقواس المتعرجة {} إلى وجود Block أي نطاق محلي أو كتلة من التعليمات المترابطة. فعندما نعرف حلقة تقوم بعمل تكرار لتعليمات معينة، نقوم بوضع هذه التعليمات ضمن Block أي ضمن {} ,والغاية من ذلك هو تحديد التعليمات التي ستتكرر، أي لكي يفهم الكومبايلر أين تبدأ التعليمات التي تريدها أن تتكرر وأين تنتهي. for (int i = 0; i < 5; i++) { // هنا أنت تخبر الكومبايلر أن التعليمات التي تريد أن تكررها تبدأ من هنا System.out.println(i); // خمس مرات System.out.println(i) أي سيتم تنفيذ التعليمة } // وتنتهي هنا // for التعليمات التالية ليست ضمن القوسين المتعرجين لحلقة // أي طالما ليسوا ضمن القوسين فهما منفصلين عن الحلقة int x=5; System.out.println(x); أو عندما نعرف تابع فيجب أن نضع التعليمات التي يقوم بها هذا التابع ضمن Block أيضاُ، لكي يفهم الكومبايلر أين يبدأ التابع الخاص بك وأين ينتهي. public void bar(int num1, int num2) { // أي هنا تبدأ التعليمات التي ينفذها التابع // تعليمة 1 // تعليمة 2 // تعليمة 3 } // وهنا تنتهي أما بالنسبة للأقواس من الشكل () فهذه الأقواس نستخدمها لكي نضع ضمنها الوسطاء التي يحتاجها تابع للقيام بمهمة ما، أو مثلاً المعلومات التي تحتاجها الحلقة لتقوم بعملية التكرار. public sum bar(int num1, int num2) // () هنا وضعنا المعلومات التي يحتاجها التابع لكي يقوم بعمله ضمن { // تعليمة 1 // تعليمة 2 // تعليمة 3 } for (int i = 0; i < 5; i++) // وضعنا ضمن القوسين () المعلومات التي تحتاجها الحلقة { System.out.println(i); } الأقواس المربعة [] تستخدم لتعريف المصفوفات int [] numbers; // أي قمنا بتعريف مصفوفة
    1 نقطة
  36. ماشاءالله، بارك الله فيك على هذا الشرح الجميل وجزاك الله خيراً.
    1 نقطة
  37. ما شاء الله شرح رائع بإنتظار مزيد من المقالات عن ال R
    1 نقطة
×
×
  • أضف...