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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. هل يظهر أي رسائل خطأ تساعد في حل المشكلة؟ هل تأكدت من محتوى ملف env وفيه الإعدادت بشكل صحيح كما هو حسابك في خدمة twilio أي الحقلين ACCOUNT_SID_SECRET=123 AUTH_TOKEN_SECRET=312546 مثلاً، تأكد من عدم وجود فراغات و من إصدار المكتبة
  2. حاولي عمل clean and rebuild للمشروع تنفيذ الأمر لحذف الكاش من غرادل gradle clean --refresh-dependencies وحذف محتوى ~/.gradle/caches تحديث الاعتماديات التي يقترحها أندرويد استديو في build.gradle dependencies
  3. يتوجب عمل اشتعلام من قاعدة البيانات، نمرر لشيفرة PHP معرف التصنيف category id ثم نعمل select HTML: شيفرة بسيطة تفرترض وجود قائمة من الروابط لكل منها رقم خاص <a href="http://localhost/getProducts?category_id=1"/> <a href="http://localhost/getProducts?category_id=2"/> <a href="http://localhost/getProducts?category_id=3"/> ضمن PHP: سوف نستقبل رقم التصنيف و نعمل استعلام SQL حسب قاعدة البيانات لديك <?php // قراءة رقم التنصيف الممرر للخادم if(isset($_POST['category_id'])) $category_id = $_GET['category_id']; // 1 - 2 - 3 حسب أي رابط else die('no category_id'); /* اتصال بالمخدم الخاص بقواعد البيانات */ $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // جملة الاستعلام $sql = "SELECT * From Products where category_id = $category_id"; ثم تنفيذ الاستعلام و عرض النتائج <?php $result = $conn->query($sql); if ($result->num_rows > 0) { // طباعة النتائج while($row = $result->fetch_assoc()) { echo "id: " . $row["product_id"]. " - Name: " . $row["product_name"]. " , price: " . $row["product_price"]. "<br>"; } } else { echo "0 results"; } $conn->close(); ?>
  4. نعم بالطبع، كما شاهدت في الدورة، يمكنك استخلاص الأبعاد والألوان و الخطوط وتقريباً كل شيئ من التصميم وتسهيل بناء صفحات الويب
  5. يمكنك تحميل برامج التصميم مثل أدوبي فوتوشوب من موقع الشركة الرسمي adobe products photoshop والاستفادة من الفترة التجريبية قبل الشراء. ويوجد بدائل مجانية مثل: Darktable. Gimp. Pixlr x. Paint.NET. Krita. Photopea. Photo Pos Pro. Sumopaint.
  6. إن البرنامج السابق لا يعدل على قيمة j بعد أن يقوم بقرائتها من سطر الأوامر. أي من المفترض أن تبقى 10 قيمة كل من i و k سوف يتم تعديلهم 10 مرات (مجال تغير n) لأن الشرط if (j>5) محقق دوماً أي k-- و i++ يتم عليهم زيادة و نقصان بقيمة 10 بالمحصلة
  7. جرب استخدام أحد برامج VPN قد يكون الموقع أو الخدمة محظورة في بلدك
  8. أرجو في المرة القادمة طرح السؤال بدون إظهار رقم تفعيل ويندوز أو رقم الجهاز نعم مواصفات جهازك جيدة جداً المواصفات الجيدة للعمل: في مجال الويب: ذاكرة RAM بحجم 8 غيغا بايت في مجال تطوير التطبيقات يفضل زيادة الذاكرة لتشغيل المحاكي 16 غيغا بايت مع وجود معالج حديث نسبياً 4 مسالك threads. يفضل تركيب ذاكرة SSD لسرعة العمل بالتوفيق
  9. تأكدي من تضمين المكتبة كما الرابط المرفق، وإن التضمين يتم قبل استخدام المكتبة لنضمن أنه تم تحميلها
  10. إن PDF أفضل من الصور بالدقة، يمكنك الاعتماد على مكتبة jsPDF وطريقة عملها: جزء HTML المراد تحويله له id فريد <div id="content"> <h3>مرحبا، رسالة ترحيبية</h3> <p>هذا النص سوف نقوم بتحويله إلى ملف PDF</p> </div> <div id="editor"></div> <button id="cmd">إنشاء PDF</button> شيفرة جافا سكربت: إنشاء غرض من المكتبة var doc = new jsPDF(); // عند أمر النقر على الزر // fromHTML // هي الدالة التي تحول المضمون $('#go').click(function () { doc.fromHTML($('#content').html(), 15, 15, { 'width': 170, }); doc.save('myFile.pdf'); }); تضمين المكتبة <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script> 15 - 15 هي أبعاد الورق و width عرض المحتوى توثيق المكتبة jsPDF حل آخر هو مكتبة printThis. يمكنها تطبيق دالة على محدد للعنصر المطلوب بالطريقة: $('selector').printThis();
  11. يمكنك تطبيق عرض للعناصر من خلال معادلة حسابية، مثلا كل عنصر يأخذ ربع العرض مطروحاً منه بعض البكسلات والتي هي مساحات جانبية له، حاولت تطبيق التنسيق التالي وقد نجح بشكل جيد استخدام حاوية flex وتوزيع المساحة بين العناصر ولكل عنصر ربع المساحة إلا 3 بكسل inputs .price { display: flex; flex-wrap: wrap; justify-content: space-between; } .price input { width: calc(100% * (1/4) + -3px); box-sizing: border-box; } كما يمكن زيادة عرض الحاوية قليلاً فتتمدد العناصر داخلها .price{ display: flex; width: 101%; justify-content: space-between; }
  12. إن الرمز السريع يقوم بقراءة سلسلة نصية من الصورة، أي يمكنك تخزينه على شكل نص text وتتعامل معه ك string وعندما تريد عرضه تقوم بتوليد صورة QR code للنص الذي تريد عرضه. والعكس صحيح، تقرأ الرمز ثم تقوم بفك الشيفرة الخاصة به وتحولها إلى نص. يمكنك إضافة أي مكتبة لتطبيقك، مثلاً react-native-qrcode-scanner تضمين ريأكت import React, { Component } from 'react'; تضمين المكونات المطلوبة import { AppRegistry, StyleSheet, Text, TouchableOpacity, Linking } from 'react-native'; // تضمين القارئ import QRCodeScanner from 'react-native-qrcode-scanner'; // الكاميرا import { RNCamera } from 'react-native-camera'; // صنف مسح الكود class ScanScreen extends Component { // عند النجاح في التقاط الرمز onSuccess = e => { console.log(e.data); // طباعة البيانات // Linking.openURL(e.data).catch(err => // console.error('An error occured', err) ); }; render() { return ( <QRCodeScanner onRead={this.onSuccess} flashMode={RNCamera.Constants.FlashMode.torch} topContent={ <Text style={styles.centerText}> Go to{' '} <Text style={styles.textBold}>wikipedia.org/wiki/QR_code</Text> on your computer and scan the QR code. </Text> } bottomContent={ <TouchableOpacity style={styles.buttonTouchable}> <Text style={styles.buttonText}>OK. Got it!</Text> </TouchableOpacity> } /> ); } } تقوم بإسناد دالة لمستمع الأحداث onRead حيث يمرر حدث e مثلاً فيه الخاصية data تحمل النص المنقول عبر الرمز وإن كان لديك عدة خواص أفضل تشكيلهم على هيئة JSON بعد عمل Stringify له ليصبح نص
  13. كما هو مذكور في صفحة اكتب معنا فإن الأكاديمية تنشر مشاريعها على موقع مستقل حيث عليك متابعتها وتقديم العروض عليها. يمكنك الإطلاع على المقالة لمزيد من التفاصيل.
  14. ملاحظة عامة، جميع برامج التصميم و المونتاج لاتقوم بتحميل موارد المشروع ( صور - فيديو - صوت) بأعلى دقة خلال عمل الشخص على هذه البرامج لتكون التعديلات سريعة و خفيفة و لا تسبب بطئ و استهلاك موارد الحاسوب، إنما في النتيجة النهائية عند التصدير سيتم عمل render بأعلى قدة ممكنة (وحسب إعداد المستخدم). مثلا مشروع فيه عدة صور، لو كانت كل صورة 5 ميغا بايت، إن عمل عليها البرنامج بدل صورة من حجم 1 ميغا بايت سيكون عليه القيام بعمليات حسابية إضافية لا داع لها، لذلك العرض أثناء العمل على المشروع لا يكون بأعلى دقة، بل بشكل مخفف ليكون العمل على عناصر التصميم سلس و سريع.
  15. يمكنك التواصل مع مركز مساعدة أكاديمية حسوب وهم يخبروك بالطريقة الأمثل للدفع والاشتراك. إن كان لديك أحد الأقارب في الخارج يمكنه مساعدتك في الدفع (معلومات الشهادة غير مرتبطة بالحساب الذي يدفع قيمتها / يشتريها)
  16. بعد تعديل القيم في Local Storage يمكنك إعادة تحميلهم للصفحة وبذلك تضمن تحديث الجدول. إعادة تطبيق showData()
  17. لديك المصفوفة delete_skil1 فيها عدة عناصر قائمة و كل عنصر منها فيه بيانات + عنصر span إن كانت القائمتين فيها نفس البنية يمكن عمل التعديل التالي: let delete_skill_1 = document.querySelectorAll('#list_1 span'); // الرئيسية let delete_skill_2 = document.querySelectorAll('#list_2 span'); // الثانية ثم لكل عنصر من الأولى نقوم بإسناد مستعم نقر يخفي العنصر المقابل له من الثانية for(let i=0; i<delete_skill_1.length;i++){ delete_skill_1[i].addEventListener('click', ()=>{ delete_skill_1[i].parentElement.style.display ="none"; delete_skill_2[i].parentElement.style.display ="none"; }) } طالما نفس الهرمية ضمن القائمة نستطيع عمل نفس التعديل لنفس هرمية العناصر. تأكدي من وضع id مناسب لكل منهم و الاهتمام بالتسمية وإضافة span لأنه صلة الوصل. من الأفضل فصل عملية إضافة العقد عن الحذف
  18. ما هو نمط البيانات الذي تستخدمه؟
  19. في يوتيوب يمكن أن تتابع القنوات: Arabic Competitive Programming Solver to be يمكنك طرح سؤال خاص بحل مشكلة برمجية محددة، مع وضع الشيفرة البرمجية التي حاولت القيام بها لحل المشكلة وسوف يساعدك أحد المدربين في شرح و إكمال الشيفرة.. مجال problem solving صعب و يحتاج لتركيز و صبر و الكثير من الدراسة.
  20. حاول تضمين مكتبة ال string وتحويل MinStudentLevel لسلسلة نصية ثم ندمجها مع name لتشكيل سلسلة نصية ل code #include <string> std::string s = std::to_string(MinStudentLevel); // ^ code=name+s; // ^^
  21. يتوجب عليك التجريب وحل مسائل بسيطة وحتى لو ساعدك المدربين و ثم مع الوقت تتطور و تزيد خبرتك. بالنسبة لمجال problem solving يمكنك اعتباره فرع خاص ضمن علوم الحاسب يهتم بحل المسائل البرمجية الرياضية أو التعامل مع بنى المعطيات، والعمليات على السلاسل النصية و تطبيق خوارزيمات وغيرها.. يوجد دروس ومقالات خاصة بهذا الفرع يمكنك البحث عن أي قناة تعليم problem solving في يوتيوب و متابعة الدروس.. تقدم أكاديمية حسوب سلسلة مقالات عن الخوارزميات: توثيق موسوعة حسوب للخوارزميات: wiki.hsoub.com/Algorithms
  22. يمكنك تفريغ الجدول ثم إعادة عرضه ب show Table لأنه من الصعب حذف سطر محدد منه، وعملية إعادة عرضه بسيطة و سريعة.
  23. مشكلة creat: لديك استدعاء للدالة بعد الشرط الخاص بالتحقق من mode وهو dataPro.push(newPro) وهذا يتم تنفيذه دوماً، حاول حذفه و إعادة التجريب. مشكلة update: أعتقد أن حل المشكلة السابقة يحل هذه المشكلة، إن بقي أي مشاكل أرجو التوضيح و الشرح عن مثال.
  24. إن API في الويب هو عبارة عن واجهة برمجية لخدمة ويب تسمح لنا بالتخاطب مع موارد محددة والتأكد من الصلاحيات قبل عمل إضافة أو تعديل أو إستعلام عنها. يتم التعريف عنها من خلال عدد من المسارات الخاصة بمورد محدد Endpoint و يرتبط مع كل مسار نوع الطلبية وهي عادة HTTP method المراد القيام بها مع تمرير وسطاء برمجية تحدد المورد عن طريقة رقمه مثلاً لنستطيع عمل تعديل عليه. في حال المورد عبارة عن صورة سيكون له مثلا API التالي: جلب صور GET إضافة صورة POST تعديل PUT حذف DELETE ثم الدالة ضمن المتحكم للاستجابة لها المسار الخاص بها نوع الطلبية GET /photos index photos.index GET /photos/create create photos.create POST /photos store photos.store GET /photos/{photo} show photos.show GET /photos/{photo}/edit edit photos.edit PUT/PATCH /photos/{photo} update photos.update DELETE /photos/{photo} destroy photos.destroy يوجد شرج نظري من هنا: يمكنك مشاهدة الدرس: بالنسبة ل FLASK هو إطار ويب خاص بلغة python يمكننا من إنشاء API. مثلا نعرف دالة للاستجابة لكل مسار يطلبه المستخدم من المتصفح: @app.route("/") # طلب المسار الجذر def home(): page = 'Home Page' return page # نعيد له الصفحة الافتراضية # طلب صفحة ما - نعيد له محتوى معين @app.route("/hello") def hello(): return "Hello World!" @app.route("/PHOTOS/{id}") def hello(): filename = 'PHOTOS/id.png' return send_file(filename, mimetype='image/png') يمكنك دراسة سلسلة دروس عمل API من خلال Flask من أكاديمية حسوب:
×
×
  • أضف...