لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 01/23/22 في كل الموقع
-
الاشعارات لاتعمل علىى ios مع انها تعمل على أندرويد بشكل صحيح وأيضا استطيع ان اجلب التوكن الخاص بجهاز ال ios .. هل أنا بحاجة الى permession ؟ react-native-check-notification-permission هذا هو الكود الخاص بى const getToken = async () => { try { const token = await messaging().getToken(); await saveItem(AsyncKeys.DEVICE_TOKEN, {device_token: token}); console.log('fire base token' + token); const {id} = await getItem(AsyncKeys.USER_DATA); console.log(id); const {data} = await axiosAPI.post(`tokens`, { token, user_id: id, }); console.log(data); } catch (error) { console.log(error); } }; const notficationListener = async () => { messaging().onNotificationOpenedApp(remoteMessage => { console.log( 'Notification caused app to open from background state:', remoteMessage.notification, ); }); messaging() .getInitialNotification() .then(remoteMessage => { if (remoteMessage) { console.log( 'Notification caused app to open from quit state:', remoteMessage.notification, ); } }); }; useEffect(() => { getToken(); notficationListener(); }, []);1 نقطة
-
هل في وقت معين لازم اخلص في الكورس ولا علي حسب ظروفي الشخصية علشان اقدر استلم الشهادة واعمل الامتحان1 نقطة
-
السلام عليكم , يظهر لي هذا الخطأ عندما أريد أن أرفع مصفوفة من الصور كما أسلفتم لماذا ؟ router.post('/add-image',uploadArray.array('avatar', 12), async (req, res, next) => { const image = new Home({ avatar: req.files }) await image.save(); res.status(201).json({ message: "add new just image", imageId: image._id })}) --------------------------------------------------------------------------------------- Model : const homeSchema = new Schema({ avatar: [{ type: String}], created_at: { type: Date, default: Date.now},}) --------------------------------------------------------------------------------------- uploadArray : const multer = require('multer'); const path = require('path') /** * Handel multipart/form-data. الوصول للتخزين */ const storage = multer.diskStorage({ destination: 'uploads', filename: function (req, file, cb) { cb(null, Date.now() + path.extname(file.originalname)) } }); /** * User profile middleware. رفع الصورة */ const uploadArray = multer({ limits: { fileSize: 1024 * 1024 }, storage: storage , fileFilter: (req, file, cb) => { let fileTypes = /jpeg|jpg|png/; let mimeType = fileTypes.test(file.mimetype); let extname = fileTypes.test(path.extname(file.originalname).toLowerCase()); if (mimeType && extname) return cb(null, true); cb(new Error('غبر مسموح رفع هذا الملف')); }, }); module.exports = uploadArray1 نقطة
-
1 نقطة
-
الهدف منه أنه في كل مرة يتم فيها تنفيذ الكود نحصل على نفس النتائج، لأن تقسيم الداتاسيت يكون عشوائي وبذلك تكون قدد ضمنت أن تقسيم الداتاسيت سيكون نفسه، أي بمعنى آخر، ستحصل على نفس التقسيم للداتاسيت في كل مرة تقوم بها بتنفيذ الكود. هذا الأمر مهم جداً ولاسيما في الحالات التي تريد فيها مقارنة أداء عدة خوارزميات على نفس الداتاسيت أو حتى أثناء القيام بعملية ضبط المعاملات العليا للنموذج (Hyper-Parameters)، فعلى فرض تريد تجريب أداء خوارزمية SVM و LR على هذه البيانات فمن المفترض أن يتم القياس على أساس نفس الداتاسيت ونفس التقسيم، لأن اختلاف تقسيم البيانات يؤدي إلى نتائج مختلفة. نقول أن الهدف من ذلك هو Reliability أي الموثوقية. الموثوقية في الإحصاء والقياسات النفسية هي التطابق العام للقياس. يُقال إن المقياس يتمتع بموثوقية عالية في حال نتج عنه نتائج مماثلة في ظل ظروف ثابتة.1 نقطة
-
1 نقطة
-
لدي الكود البرمجي التالي: public int add(int a, int b) { int sum = a + b; return sum; } public double add(int a, int b) { double sum = a + b; return sum; } عند التنفيذ يظهر الخطأ التالي: error method add is already defined in class أحاول عمل overload لكنه لا يعمل..1 نقطة
-
هل يمكن توضيح الفرق بين استخدام <p> </p> <br> </br> <pre> </pre>1 نقطة
-
الوسط br يستخدم لعمل سطر جديد ولا يعتبر وسم للكتابة و لا يمكن احتوائه على نص، هو فقط يفصل بين سطرين عند العرض في HTML ويمكن استخدامه ضمن الوسم p br نستخدم وسم واحد فقط أي لا داعي لاستخدام وسم الفتح و وسم الإغلاق <!DOCTYPE html> <html> <body> <h1>P vs PRE vs br </h1> <p> 1 one <br> 2 tow <br> 3 three 4 four 5 five <br> </p> </body> </html> والنتيجة: سيقوم الوسم br بعمل سطر جديد للنص الذي سيأتي بعده الوسم P يحدد فقرة من النص وهي paragraph أي جزء مترابط من الكلام، وعند استخدام أكثر من وسم P سيتم افتراضيا وضع سطر جديد فاصل فبل هذه الفقرة و بعدها مثال: <!DOCTYPE html> <html> <body> <h1>P </h1> <p> text 1 </p> <p> text 2 </p> <p> text 3 </p> </body> </html> النتيجة: أما الوسم pre يحافظ على عدد الفراغات التي تنتمي للنص الذي يحويه بينما الوسم p لا يقوم بذلك و يتخلص من الفراغات المكررة.. مثال: <!DOCTYPE html> <html> <body> <h1> pre vs p</h1> <pre> نص فيه فراغات مكررة </pre> <p> نص فيه فراغات مكررة </p> </body> </html> النتيجة:1 نقطة
-
هل يمكن توضيح الفرق بين استخدام "مدير العرض" في GUI .FlowLayout .BorderLayout .GridLayout1 نقطة
-
JPanel - JFrame ,وغيرها جميع هذه العناصر عي من نوع Container أي حاوية لعناصر العرض الأخرى، وتمكننا من توزيع و عرض العناصر بطرق متنوعة و مختلفة حسب الحاجة حسب تحديد Layout Managers. FlowLayout تخطيط الدفق: يقوم بترتيب العناصر بنفس ترتيب كتابتهم في الشيفرة (إدراجهم في الحاوية) خلف بعضهم البعض وهو الافتراضي. مثال: BorderLayout تخطيط الحواف: يسمح بتوزيع العناصر على حواف الحاوية يمين - يسار - فوق - تحت (شمال - جنوب - شرق - غرب). مثال: GridLayout تخطيط الشبكة: يسمح بترتيب العناصر على شكل أسطر و أعمدة مثال: سؤال مرتبط:1 نقطة
-
مرحباً - سؤال الاول : ابغى طريقه التسجيل في برامج ?Github and Gitlab - وكيف طريقه استخدام الاكواد الجاهزة فيها؟ وهل استطيع التعديل و الاضافه على الكود ؟ ياليت توضحون لي الطريقه بشكل مفصل وشكراً1 نقطة
-
يبدو الكود مكتمل بنسبة جيدة ولكن تحتاج إلى استيراد مكتبات أخرى في head أعني تحديداً jquery <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> ولكن أيضا لماذا تريد ان يتم إعادة توجيهك إلى صفحة أخري هنا؟ return render_template('start_page.html') لدي اقتراح آخر وهو استخدام صفحة واحدة فقط وإذا كان المستخدم يبحث فسيتم الرد ب json يحوي بداخله list المقترحات ,ويتم عرضها في جدول بسيط قابل للتحديث عند محاولة الكتابة في كل مرة وليس من خلال زر او Button, إليكم المثال التالي:ونبدأ ب main.py : #main.py from flask import (Flask, render_template, request, jsonify) from bs4 import BeautifulSoup import requests app = Flask(__name__, template_folder='template') @app.route('/search', methods=['GET', 'POST']) #إستلام الطلبات من جيت وبوست def suggest_data(): if request.method == 'GET' and request.args.get('jsdata'): #إذا كان هناك داتا في الطلب نفذ ما بداخل الشرط query = request.args.get('jsdata') if query == None: suggestions_list = ['',] else: suggestions_list = [] r = requests.get('http://suggestqueries.google.com/complete/search?output=toolbar&hl=ru&q={}&gl=in'.format(query), 'lxml') soup = BeautifulSoup(r.content) suggestions = soup.find_all('suggestion') for suggestion in suggestions: suggestions_list.append(suggestion.attrs['data']) return jsonify(data=suggestions_list) #إعادة الداتا كجسون وليس صفحة ويب آخري else: #إن لم يتحقق الشرط سيتم إعادة صفحة ويب وهي صفحة البحث return render_template('start_page.html') if __name__ == "__main__": app.run(debug = True) في كل الأحوال عند الدخول إلي الصفحة من خلال المتصفح سوف يرسلنا إلى render_template('start_page.html') والسبب هو عدم وجود jsdata إلا في حال تم الارسال من ajax. نأتي إلى صفحة start_page.html <!DOCTYPE HTML> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <!-->مهم إضافته</--> <title>Google Suggest Tool Flask</title> </head> <body> <h1>Search: Google Suggest Tool Flask</h1> <form action=""> <!--> من المهم إضاقة فورم لمستطيل البحث</--> <input id="search_input" type="text" name="typeing" placeholder="Country"> </form> <h1>Result</h1> <table id="myTable"></table> <!-->إنشاء جدول لعرض البيانات أو المقترحات</--> <script> $("#search_input").keyup(function(){ var some_var = $(this).val(); $.ajax({ url: "/search", //رابط دالة البحث type: "get", data:{jsdata: some_var}, success: function(response) { var res = response["data"]; //سحب المقترحات من الرد القادم من دالة البحث var table = document.getElementById("myTable"); / تهيئةالجدول لعرض الداتا //قبل العرض نقوم بحذف محتوي الجدول من عملية البحث السابقة while(table.rows.length > 0) { table.deleteRow(0); } //لووب علي المقترحات for (var a=0; a < res.length; a++) { //يتم إنشاء صف داخل الجدول لكل مقترح table.innerHTML += "<tr>"+"<td>"+a+"</td>"+"<td>"+res[a]+"</td>"+"</tr>"; } } }); }); </script> </body> </html> تابع النتائج التالية: كما ترى لا نحتاج إلى صفحة جديدة أو إعادة تحميل الصفحة الحالية لعرض البيانات القادمة. يمكنك التفكير في المزيد كعرض المقترحات ضمن text box وقائمة منسدلة تسهل عليك البحث ,انظر المثال التالي ستحتاج إلى مراجعة المصدر التالى "text box autocomplete" لمعرفة كيف يتم إنجاز بعض المهام من خلال css وقليل من js. موفقين.1 نقطة
-
1 نقطة
-
أجل يمكنك إضافة صفحات لعناوين url المجهولة والغير متاحة في مشروعك ,أو أي خطأ. تابع التالي أولا في ملف settings.py يجب إلغاء وضع التصحيح أو التطوير {Debugging}, من خلال تمرير False إلى DEBUG بدلا من True DEBUG = False ALLOWED_HOSTS = ['*'] # Application definition ثانيا يجب إنشاء ملفين html للأخطاء 404 و 500 في مجلد templates سنفترض أن أسمائهما كما يلى: 404.html 500.html لك كامل الحرية في محتوى تلك الصفحات ولكن إليك مثال بسيط لصفحة 404: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CodePen - 404 Concept Page @property</title> </head> <body> <h1>404</h1> <div class="info"> <h1>Error: {{status}} </h1> <h2>We can't find that page</h2> <a href="/app" target="_blank">Go To Home</a> <!-->اذهب إلى الصفحة الرئيسية </--> </div> </body> </html> ثالثا إضافة دالتين إلي ملف views.py from django.shortcuts import render # Create your views here. def index(request): """دالة الصفحة الرئيسية """ return render(request, 'index.html') def error_404(request, exception): """دالة يتم تنفيذها في حال وجود خطأ404""" return render(request,'404.html', status=404) def error_500(request, *args, **argv): """نفس الدالة السابقة ولكن يتم تنفيذها في حال وجود خطأ يشير إلى الكود500""" return render(request, '500.html', status=500) #تأكد من كتابة اسم الملف أو القالب بشكل صحيح أخيرا ستقوم بإستدعاء هاتين الدالتين بداخل ملف urls.py الخاص بمشروعك ,أو تطبيقك ولكنه في كل الأحوال سيعمل. فيما يلي التعديل المطلوب في ملف urls.py from django.contrib import admin from django.urls import path from django.conf.urls import include, handler404 ,handler500 #إستدعاء لدوال مهم from myapp import views #استدعاء الفيو التي بداخلها الدوال التي أنشأنها urlpatterns = [ path('admin/', admin.site.urls), path('app/', include('myapp.urls')), ] #السطور المهمة handler404 = views.error_404 #يتم اسناد قيم الخطأ إلي الدالة 404 handler500 = views.error_500 #نفس الأمر ولكن لدالة 500 يمكن تجربة تخصيص صفحتي 404 و 500 بطرق مختلفة لكن هذه ربما الأقل تعقيداً, ومن المهم جداً أن تتذكر بأن صفحاتك المخصصة لن تظهر ومشروعك في وضع DEBUG يجب عليك تعطيله هكذا DEBUG = False من ملف الإعدادات كما وضحنا في البداية, وقد يطلب منك إعداد العناوين المسموح لها بزيارة موقعك ALLOWED_HOSTS , على أي حال قم بضبطها إلى ALLOWED_HOSTS = ['*'] النتائج ستكون كما يلي, بالتوفيق.1 نقطة
-
أعتقد الخطأ في هذا السطر، حيث أن avatar تقبل مصفوفة من السلاسل النصية، و أنت تمرر لها مصفوفة من أغراض الملفات، حاول استخدام دالة JSON.stringify لتحويل مصفوفة الملفات لسلسلة نصية.1 نقطة
-
@سامح أشرفإزاي أقدر استدعي مقالات بطريقة عشوائية بنفس الأكواد الموجودة في الملف التالي حاولت استخدم دالة Math.random ودالة Math.floor لكن مش عارف استخدمها بطريقة صحيحة مع بلوجر1 نقطة
-
بوتستراب هو إطار عمل HTML, CSS, JS يساعد المصممين في بناء صفحات ويب متجاوبة مع مختلف قياسات الشاشات، و يحوي على مكونات و قوالب جاهزة يمكن استخدامها مباشرة في صفحتك. بالإضافة لأصناف CSS متنوعة تساهم في تسهيل التصميم و تسريعه. إقرأ عنها أكثر من مقالات أكاديمية حسوب: شرح بوتستراب و توثيق موسوعة حسوب: التوثيق أما TailwindCSS هي مكتبة css خفيفة تحوي على الكثير من التنسيقات، و تسهل عمل المطور. و بالنسبة ل ريأكت ReactJs هي مكتبة تطوير واجهات المستخدم front end تعتمد بشكل على جافاسكربت، حيث تقوم على بناء مكونات والتي تعبر عن أجزاء الصفحة، ويتم عمل render أي تحويلها ل HTML في المتصفح بعد تحميل ملفات جافاسكربت فيه. رياكت من موسوعة حسوب: ReactJS1 نقطة
-
أرجو إرفاق الشيفرة البرمجية التي تسبب المشكلة لنحاول فهمها بشكل أفضل.1 نقطة
-
يمكنك استخدام حزمة multer لرفع الملفات (منها الفيديو) حيث عليك تثبيت الحزمة npm install --save multer وتضمينها const multer = require('multer'); ثم تعريف الدوال التي تقوم بالرفع. أولاً تعريف مسار رفع الفيديو: router.post('/uploadVideo', videoUpload.single('video'), (req, res) => { // نحفظ الملف }, (error, req, res, next) => { // خطأ res.status(400).send({ error: error.message }) }) ثانياً تعريف دالة المتحكم لمعالجة الملف middleware const videoUpload = multer({ storage: videoStorage, limits: { fileSize: 10000000 // 10000000 Bytes = 10 MB }, fileFilter(req, file, cb) { // تحديد أنواع الملفات الممكنة mp4 and mkv format if (!file.originalname.match(/\.(mp4|MPEG-4|mkv)$/)) { return cb(new Error('الملف المرفق ليس ملف فيديو أو ليس مدعوم من المخدم')) } cb(undefined, true) } }) ثالثاً حفظ الملف على المخدم ضمن نظام الملفات const videoStorage = multer.diskStorage({ destination: 'videos', // مسار مجلد حفظ الفيديو filename: (req, file, cb) => { // اسم الملف cb(null, file.fieldname + '_' + Date.now() + path.extname(file.originalname)) } }); لاحظ أن ملف الفيديو يتم حفظه على القرص، و نضيف في نموذج قاعدة البيانات حقل سلسلة نصية يحفظ مسار الفيديو فقط و نقوم بالربط اللازم بينهم. أضف منطق حفظ الرابط في قاعدة بيانات mongo ضمن front end نستخدم multipart/form-data مع الطريقة POST , ونعطي اسم للحقل. <form method="post" action="/uploadVideo" enctype="multipart/form-data"> <input type="file" name="videoFile"><br> <input type="submit" value="Submit"> </form> يمكنك الاعتماد على الأفكار من رفع صورة من السؤال:1 نقطة
-
حاول استخدام التعليمة التالية في بداية ملف PHP ini_set('default_charset', 'utf-8'); أو قم بتعديل ملف php.ini في ملف السيرفر لجعل ترميز النصوص utf8 عدل السطر: default_charset = "utf-8" وأعد تشغيل المخدم لديك.1 نقطة
-
كلا ليس في البرمجية بل نفاذ مساحة القرص، فلم يتمكن من الكتابة على الملف Linux steps for reference. df -lh : تحقق نم مساحة التخزين cd xx : ادخل المجلد الذي لديك مساحة كبيرة du -sh * : نتحقق من الملفات فيه حسب الحجم rm xx : احذف المجلدات الغير ضرورية الأفضل هو ترقية مساحة التخزين في المخدم / الاستضافة1 نقطة
-
المشكلة بسبب عدم القدرة على حجز ذاكرة مؤقتة في النظام، هل يمكنك تفصيل ما كنت تقوم به؟ حاول تنفيذ apt-get clean1 نقطة
-
من الأفضل توظيف مستقل لديه خبرة كافية مقابل عمل مأجور لأن شرحها يطول، يمكنك البحث عن الشخص المناسب من موقع مستقل أو خمسات.1 نقطة
-
1 نقطة