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

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

  1. Kais Hasan

    Kais Hasan

    الأعضاء


    • نقاط

      4

    • المساهمات

      2365


  2. Ahmed Sadek Elamine Touahria

    • نقاط

      3

    • المساهمات

      510


  3. Ayoub Souad

    Ayoub Souad

    الأعضاء


    • نقاط

      1

    • المساهمات

      33


  4. Klodea Abu Sbah

    Klodea Abu Sbah

    الأعضاء


    • نقاط

      1

    • المساهمات

      20


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

المحتوى الأعلى تقييمًا في 08/29/22 في كل الموقع

  1. عند تعلم الجافا سكريبت من الضرورة التطرق إلى الBOM و لكن عند البدء باستخدام react هل يقع الاستغناء عن BOM أم أن hooks ستكون بديلا عنها. شكرا.
    1 نقطة
  2. عندي مشكلة غريبة جدا قمت باستدعاء لكن يظهر خطأ وهذذا الايرور يظهر: Fatal error: Uncaught mysqli_sql_exception: Unknown column 'Admin_Name' in 'where clause' in C:\xampp\htdocs\مدربي\admin.php:38 Stack trace: #0 C:\xampp\htdocs\مدربي\admin.php(38): mysqli_query(Object(mysqli), 'SELECT * FROM `...') #1 {main} thrown in C:\xampp\htdocs\مدربي\admin.php on line 38 <div class="login-page"> <form method="POST" class="form-signin mt-5"> <h1 class="h3 mb-3 font-weight-normal">تسجيل الدخول</h1> <label for="inputUser" class="sr-only">اسم المستخدم</label> <input type="username" name="AdminName" class="form-control" placeholder="اسم المستخدم" > <label for="inputPassword" class="sr-only">كلمة المرور</label> <input type="password" name="AdminPassword" class="form-control" placeholder="كلمة المرور" > <button class="btn btn-lg btn-info btn-block" type="submit" name="Signin">تسجيل الدخول</button> </form> </div> <?php if(isset($_POST['Signin'])) { $query = "SELECT * FROM `admin-login` WHERE `Admin_Name`='$_POST[AdminName]' AND `Admin_Password`='$_POST[AdminPassword]' " ; $result=mysqli_query($con,$query); if(mysqli_num_rows($result)==1) { echo"correct"; } else { echo"incorrect"; } } ?> admin.php
    1 نقطة
  3. حياكم الله احبائنا عاوز اعدل بعض مسميات بداخل المكتبة و لقيت المسميات بالفعل لكن الكود شكله ينزفز هل فيه طريقة لتنسيقه
    1 نقطة
  4. لاحظ اللاحقة min.js في نهاية الملف، وهي تدل أن الشيفرة داخل هذا الملف هي نتيجة عملية تقليص وتعمية لشيفرة جافاسكربت أخرى أصلية، يمكنك تجميل تنسيق الشيفرة مجددًا أي إلغاء مفعول التقليص عبر أدوات مخصصة لذلك مثل موقع beautifier.io فقط انسخ تلك الشيفرة إلى الحقل المخصص لها ضمن الموقع ونفذ عملية التجميل، وانسخ النتيجة مجددًا إلى الملف الخاص بك وعدل ما تريد، لكن ستلاحظ أن أسماء المتغيرات والتوابع لا معنى لها ويصعب فهم الشيفرة، هذا بسبب عملية التعمية التي مرت بها تلك الشيفرة لتقليصها إلى أكبر درجة ممكنة، وللأسف لا يمكن تعديل ذلك سوى يدويًا عبر إعادة تسمية المتغيرات التي تحتاجها وقد تقع في خطأ بذلك وينصح بتجنب تلك العملية، يمكنك الاستفادة من قراءة المقال التالي للتعرف على فائدة عملية التصغير:
    1 نقطة
  5. كمقارنة بين النوعين: SVG أفضل من ناحية التوسع حيث أنه يمكن طباعته بجودة عالية مهما كانت دقة الشاشة، بينما canvas لا يملك هذه الخاصية و له جودة منخفضة في حال كانت دقة الشاشة عالية. SVG يعطي أداء أفضل من أجل عدد قليل من الأشكال أو في حال كانت مساحة الشكل كبيرة، بينما canvas له أداء أفضل في حال كان هناك عدد كبير من الأشكال و في حال كانت مساحة الشكل صغيرة. يمكن تعديل ال SVG عن طريق js, CSS بينما يمكن تعديل ال canvas فقط باستعمال ال js.
    1 نقطة
  6. يتم استخدام SVG في حال كان عدد العناصر قليل ضمن الصفحة مثل بعض الرسومات والتي لا تتطلب التفاعل معها من قبل المستخدم. لأن SVG هو عقد سيتم وضعها في شجرة DOM وبالتالي ستكون مكلفة من ناحية الأداء وستكون بطيئة في حال وجود تفاصيل كبيرة أو كمية كائنات كبيرة ضمن الصفحة. أما Canvas فيعتبر خيار أفضل في حال كان عدد الكائنات كبير ويحتاج معالجة أكثر لأنه يعطي أداء أفضل وسرعة كبيرة ولا يزيد من الضغط على المتصفح في حال كانت المشاهد تحوي تفاصيل كبيرة يلزم تحريكها.
    1 نقطة
  7. سبب عدم عمل الاله حاسبة هذه
    1 نقطة
  8. جزاك الله الف خير اخي الكريم نعم لقد فهمت عليك
    1 نقطة
  9. بخصوص السؤال الأول : الفكرة التي يستعملها المبرمجين لطباعة تذكرة او وصفة على شكل pdf تختلف من لغة الى أخرى أو بالأحرى من إطار عمل لأخر لأنه ليس بالأمر السهل إنشاء صفحة pdf من الصفر لذلك نستعمل أحد المكتبات لعمل هذه المهمة , هذا في ما يخص تطبيقات الويب . أما تطبيقات الهاتف وبعض التقنيات الأخرى يستعملون أحد APIs التي تقدم هذه الخدمة من بينها browserless . أما بخوص السؤال الثاني : كما أشرت في الإجابة السابقة الفكرة تختلف من تقنية لأخرى ولكن عموما هذه المكتبات او الخدمات تعتمد على نفس المبدأ
    1 نقطة
  10. 1 - تحميل PDF.js : في مجلد ROOT لمشروعك ، قم بإنشاء مجلد يسمى public. هذا هو المكان الذي سنضع فيه ملفات PDF.js الخاصة بنا. قم بتنزيل ملفات PDF.js من هنا واستخراجها في المجلد العام. لسهولة الاستخدام ، أعد تسمية المجلد الذي يمنحك إلى pdfjs فقط. ستحتاج أيضًا إلى إخبار Electron بمكان الملفات الثابتة. يمكنك القيام بذلك عن طريق إضافة الكود التالي إلى package.json "build": { "extraResources": ["./public/**"] } 2- 4. قم بإنشاء viewer في Electron لفتح ملف PDF : استبدل محتويات src / index.html بما يلي: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Hello World!</title> <link rel='stylesheet' href='./index.css'> </head> <body> <div class='picker'> <button id='myButton'>Select PDF to view</button> </div> <div class='viewer' id='viewer'> </div> <script> require('./renderer.js'); </script> </body> </html> ستكون هذه هي واجهة المستخدم لتطبيقنا. نقوم بإنشاء زر لإظهار منتقي الملفات الأصلي ، وقمنا بإنشاء div ليحمل عارض PDF.js الخاص بنا. نربط أيضًا أنماط css الخاصة بنا. قم بتحديث src / index.css إلى ما يلي: html, body { margin: 0; padding: 0; width: 100%; height: 100%; } div.picker { width: 100%; height: 40px; background-color: #222222; display: flex; justify-content: center; align-items: center; } div.viewer { width: 100%; height: calc(100% - 40px); } div.viewer iframe { width: 100%; height: 100%; } يضيف هذا بعض التخطيط الأساسي لمشروعنا ، ويخبر العارض بملء أكبر قدر ممكن من النافذة. حان الوقت الآن لإضافة منطق JS الخاص بنا. قم بتحديث src / renderer.js إلى ما يلي: const { dialog } = require('electron').remote; const path = require('path'); // Add an event listener to our button. document.getElementById('myButton').addEventListener('click', () => { // When the button is clicked, open the native file picker to select a PDF. dialog.showOpenDialog({ properties: ['openFile'], // set to use openFileDialog filters: [ { name: "PDFs", extensions: ['pdf'] } ] // limit the picker to just pdfs }, (filepaths) => { // Since we only allow one file, just use the first one const filePath = filepaths[0]; const viewerEle = document.getElementById('viewer'); viewerEle.innerHTML = ''; // destroy the old instance of PDF.js (if it exists) // Create an iframe that points to our PDF.js viewer, and tell PDF.js to open the file that was selected from the file picker. const iframe = document.createElement('iframe'); iframe.src = path.resolve(__dirname, `../public/pdfjs/web/viewer.html?file=${filePath}`); // Add the iframe to our UI. viewerEle.appendChild(iframe); }) }) عند النقر فوق الزر ، سيظهر منتقي الملفات الأصلي ويسمح لك بتحديد ملف PDF. بمجرد تحديده ، سيظهر عارض PDF.js مع فتح ملف PDF الذي حددته.
    1 نقطة
  11. الطلب يحتوي على مهلة اتصال و مهلة قراءة. سيتم تطبيق قيمة المهلة(timeout) على كل من مهلة الاتصال connect والقراءة read. حدد إذا كنت ترغب في تعيين قيمة المهلة لكل على حدى(أي قيمة مهلة تنطبق على الاتصال و قيمة مهلة مغايرة تنطبق على القراءة) عبر الأمر التالي : أو تعيين القيم بشكل جماعي(أي المهلة تنطبق على الاتصال و القراءة معا) عبر الأمر التالي:
    1 نقطة
  12. عند تنفيذ برنامج في Python ، يتم تنفيذ الكود على التوالي حتى النهاية. ومع ذلك ، قد تكون هناك مناسبات نطلب فيها إنهاء البرنامج في وقت أقرب مما كان متوقعًا. هذا هو المكان الذي تظهر فيه أوامر الخروج المختلفة في الصورة. على الرغم من أن لغة Python هي لغة برمجة بسيطة ، إلا أنها قد تكون معقدة بعض الشيء في بعض الأحيان. إحدى هذه الحالات هي استخدام أنواع مختلفة من أوامر الخروج في بايثون لن يتم تنفيذ الكود الذي يتبع بعد الأمر exit (). ملاحظات : يمكنك التفكير في exit () كاسم مستعار لـ quit () (أو العكس) في Python. هم ببساطة يتعايشون لجعل بايثون أكثر سهولة في الاستخدام. ومع ذلك ، فإنه ليس من الممارسات الجيدة استخدام quit () و exit () في كود الإنتاج ويجب حجزها فقط للاستخدام في المترجم الفوري. يُنشئ الأمر exit () الرسالة التالية عند طباعته: "Use exit() or Ctrl-D (i.e. EOF) to exit" مثال for no in range(15, 30): if no > 25: print("\n", exit) #طباعة رسالة الخروج # عندما تصبح قيمة 10 ، يضطر البرنامج للخروج exit() print(no, end=" ") النتيجة 15 16 17 18 19 20 21 22 23 24 25 Use exit() or Ctrl-Z plus Return to exit يمكنك استدعاء sys.exit () للخروج من كود Python بحالة الخروج مثل arg. يمكن أن تكون arg أي شيء مثل عدد صحيح أو كائن آخر - يتم تعيين arg الافتراضية على الصفر ، مما يشير إلى إنهاء ناجح. يمكنك تعيين الوسيطة إلى قيمة غير صفرية للإشارة إلى إنهاء غير طبيعي للكود. ملاحظات : عندما نستخدم الأمر () sys.exit ، فإنه يرفع استثناء SystemExit . على طول هذه الخطوط ، يمكنك الإمساك به =لإغلاق المخارج المبكرة والقيام بأنشطة التنظيف عندم الحاجة يمكن اعتبار sys.exit مجرد اختصار لزيادة SystemExit (s) import sys try: sys.exit() print("لن يتم تنفيذ هذا السطر!") except SystemExit: print("أنهى SystemExit Exception البرنامج!") finally: print("أداء أنشطة التنظيف!") output SystemExit Exception terminated the program! Perform Cleanup Activities!
    1 نقطة
  13. بداية، قم بتثبيت tailwindcss وملحقاتها: npm install -D tailwindcss postcss autoprefixer قم بتكوين ملف اعداد tailwindcss: npx tailwindcss init -p قم بتوصيف امتدادات الملفات المراد التعامل معها في ملف tailwind.config.js: module.exports = { content: [ "./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}", ], theme: { extend: {}, }, plugins: [], } اضف موجهات tailwindcss الى ملف التنسيقات الرئيسي لديك: @tailwind base; @tailwind components; @tailwind utilities; قم بتضمين ملف التنسيقات بملف الجافاسكربت الرئيسي لديك: import './css/style.css'; قد تحتاج كخطوة اضافية تضمين tailwindcss و autoprefixer ضمن اضافات postcss في ملف اعداد postcss.config.js: module.exports = { plugins: [ // ... require('tailwindcss'), require('autoprefixer'), // ... ] } وأخيرا تشغيل الامر npm run dev والبدء في استعمال tailwindcss ضمن مشروعك.
    1 نقطة
  14. في البداية عليك انشاء مشروع vite بمكنك استعمال المكتبة create-vite بالشكل التالي: $ npm create vite@latest من ثم نقوم بتهيئة المشروع و الانتقال إلى المجلد الخاص به بالشكل التالي: npm init vite my-project cd my-project و من ثم يمكنك القيام بتنزيل tailwind و تهيئة ملفات الضبط الخاصة به بالشكل التالي: npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p
    1 نقطة
  15. لا فرق جوهري بين الطريقتين، و لكن exit تم انشاءها ليتم استعمالها من أجل interactive shell أي مثلاً عندما تستعمل البايثون من سطر الأوامر، بينما sys.exit نستعملها عند كتابة برنامج كامل. كما هو مذكور في التوثيقات الرسمية للبايثون فلا ينصح باستعمال exit عند كتابة البرامج العادية.
    1 نقطة
  16. يمكنك وضعه ك parameter في الطلب كالتالي : r = requests.get('https://github.com', timeout=5) يمكنك الاطلاع على الـ documentation الخاصة بالمكتبة للاستفادة اكثر. أو يمكنك استخدام eventlet : import requests import eventlet eventlet.monkey_patch() with eventlet.Timeout(10): requests.get("http://ipv4.download.thinkbroadband.com/1GB.zip", verify=False)
    1 نقطة
  17. التنبيه يساعدك على معرفة أنك وصلت للحد الذي قمت بتحديده، و عندها يمكنك الذهاب بشكل يدوي و إيقاف الخدمة أو تقليل الموارد لتقليل التكاليف، مثلاً أنت قلت أنك تريد التوقف عند الوصول إلى الحد 100، يمكنك وضع الحد 100 و الدخول و ايقاف الخدمة في حال وصلك الاشعار، أو أفضل من ذلك يمكنك وضع حد أقل من ذلك، مثلا 70 و في حال وصلت إليه خلال فترة قصيرة تقوم بتقليل الموارد حتى لا تستهلك الكثير خلال الشهر. أعتقد أن الخطة المتبعة تحتاج دراسةـ و لكن كما ذكرت الفائدة هو أنه يمكنك الدخول و تعديل الإعدادات أو إيقاف الاستهلاك كلياً. إضافة ميزانية جديدة هو الذي سيسمح لك بمراقبة المصاريف و وضع حد لكي يتم تنبيهك عند الوصول إليه. يمكنك القيام بذلك عن طريق الذهاب إلى google cloud console و من ثم التوجه إلى القسم Billing و من ثم متابعة الخطوات التي ذكرتها مسبقاً و باقي الخطوات مجرد إدخال معلومات مطلوبة لا أكثر.
    1 نقطة
  18. أرجو حذف الفراغات من سلسلة الاتصال بقاعدة البيانات string sql = "datasource= localhost; port=3306;username=root;password=;database=employeedb"; لتصبح: string sql = "datasource=localhost;port=3306;username=root;password=;database=employeedb"; ^^^^ وانتبه لفصل الكلمات المفتاحية DbEmployee.DisplayAndSearch("SELECT* From employee_table", dataGridView); => DbEmployee.DisplayAndSearch("SELECT * From employee_table", dataGridView); ^^^^^^ كما تأكد من الشروط على بنية الجدول، هل تقبل NULL ؟؟ string sql = "INSERT INTO employee_table VALUES(NULL,@EmpName,@RegNo,@Job_Tile,@Position,@Hiring_Date,@Country,@Birthdate,@Gender,@Phone,@Address,@Photo,@Dept ^^^^^^^ Id,NULL)"; ^^^^^^^^^ في حال غير ذلك قم بتحديد أسماء الأعمدة التي تريد إضافة بيانات لها لكل منهم ثم نمرر VALUES
    1 نقطة
  19. مرحباً أيهما الأفضل !؟ على حسب المحتوى المقدم في الدورة هناك دورات على اليوتيوب بها محتوى مفيد جدا كما يوجد دورات على يوديمي بها محتوى ضعيف نوعا ما هذا لا يعني أنه لا يوجد دورات قوية على يوديمي بالعكس فهناك دورات قوية و تقدم محتوى مفيد جداً الشيء الواجب ذكره هو أن الإنسان لمّا يصرف من جيبه مبلغ من المال فإنه سيقدر قيمة الشيء الذي صرف عليه ماله و سينضبط أظن على حسب رأيي أن منصة يوديمي لم تعد كما كانت في السابق
    1 نقطة
×
×
  • أضف...