لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 10/02/23 in أجوبة
-
2 نقاط
-
السلام عليكم كام من الوقت احتاج لتعلم رياضيات الدكاء الاصطناعي ؟ وهل رياضيات الai هي نفسها التي تستخدم فيه مجال تحليل البيانات ؟1 نقطة
-
السلام عليكم.. ارى على منصة بعيد فرص عمل عديدة في الباك ايند... لكن تكون php laravel>> هل جانغو سوقها قليل ام معدوم في تلك الدول العربية او ب اسيا بشكل عام .. ولا كيف؟؟1 نقطة
-
1 نقطة
-
مع احترامي للمجهود لكن المعلم لم استطيع الفهم منه احتااج مكالمه فديو لشرح لي java script واتوقع هذا من ابسط حقوقي فا انا اشتركت لي اتعلم1 نقطة
-
يمكنك حساب عدد مرات الضغط على زر ما بنفس طريقة التعليق السابق عبر انشاء عداد بقيمة 0 وزيادة قيمة العداد بمقدار 1 عند الضغط على الزر، ولكن عبر تعريف متحول count كمتحول عام باستخدام global لكي نستطيع الوصول إليه من أي مكان في الكود import tkinter as tk def counter(): global count count += 1 label.config(text="عدد مرات الضغط الحالية: " + str(count)) count = 0 root = tk.Tk() button = tk.Button(root, text="اضغط هنا", command=counter) button.pack() label = tk.Label(root, text="عدد مرات الضغط الحالية: 0") label.pack() root.mainloop() فقط الاختلاف عن الكود السابق هو في تعريف التابع counter الذي تتم فيه عملية تحديث count حيث تم تعريفه ك global وبالتالي في اول ضغطه سوف تصبح قيمة count=1 وبعد ثاني ضغطه يصبح count=1+1=2 مع عرض عدد مرات الضغط الحالية في كل مرة لو لم يتم وضع global سوف يعطي ذلك خطأ لأنه لن نستطيع الوصول إلى المتحول count وتحديثه باعتباره متحول محلي إي لا يمكن الوصول إلى من اي مكان في الكود.1 نقطة
-
مثل هذا السؤال لا يمكن حسم إجابته بشكل قاطعي، فالأمر ذاتي وقد يتغير من شخص لآخر بحسب قدرته على الاستيعاب ومعارفه القبلية وما الى ذلك. فإذا كنت لديك خلفية رياضية قوية بالفعل وتملك مفهومًا جيدًا عن الرياضيات الأساسية مثل الجبر والاحتمالات والإحصاء، فقد تحتاج إلى وقت أقل لتعلم رياضيات الذكاء الاصطناعي. ومع ذلك، إذا كنت تبدأ من الصفر، قد تستغرق مدة أطول. رياضيات الذكاء الاصطناعي تشمل مجموعة متنوعة من المفاهيم والمواضيع، مثل الجبر الخطي، والاحتمالات والإحصاء، والتفاضل والتكامل وغيرها. بالنسبة لسؤالك الثاني، نعم، هناك تداخل كبير بين رياضيات الذكاء الاصطناعي ومجال تحليل البيانات. العديد من المفاهيم والأساليب الرياضية التي تستخدم في الذكاء الاصطناعي، مثل الإحصاء والاحتمالات والجبر الخطي، تستخدم أيضًا بشكل واسع في تحليل البيانات. لذا، إذا كنت تمتلك قاعدة قوية في رياضيات الذكاء الاصطناعي، ستكون لديك أساس قوي لفهم وتطبيق تقنيات تحليل البيانات بطبيعة الحال.1 نقطة
-
1 نقطة
-
ما تقصدينه هو حساب عدد مرات الضغط في tkinter والطريقة المباشرة هي استخدام عداد، وتستطيعي إنشاء عداد جديد باستخدام وظيفة IntVar(). from tkinter import * root = Tk() # إنشاء عداد counter = IntVar() counter.set(0) # تحديث العداد عند الضغط على الزر def count(): counter.set(counter.get() + 1) label.config(text=f"عدد مرات الضغط: {counter.get()}") # إنشاء زر button = Button(root, text="ضغط", command=count) button.pack() # إنشاء علامة لعرض عدد مرات الضغط label = Label(root, text="عدد مرات الضغط: 0") label.pack() root.mainloop() حيث يتم إنشاء عداد جديد يسمى counter، ثم تعيين العداد على 0 في البداية، وإنشاء زر جديد يسمى button، بعد ذلك عند الضغط على الزر، يتم تحديث العداد بمقدار 1 وعرض عدد مرات الضغط الحالي على علامة تسمى label.1 نقطة
-
السلام عليكم عندي مشكله في VSCode المفروض اننا نزلت الجهاز الافتراضي على android studio وكل حاجه تمام بس مش بيظخر على vscode وبتتكرر كثير ولو حتى عملت uninstall لكل البرامج سواء vscode او android studio1 نقطة
-
لا يوجد احصائية دقيقة تقدمها منصة بعيد حول متطلبات عروض العمل فيها، وقد يوجد بطبيعة الحال تلك التي تتطلب بايثون جانقو. ولكن سيمكنك عمل استقصاء بسيط على عروض المشاريع المنشورة على منصة مستقل، اشهر خدمات الويب في خمسات، عروض العمل في منصة بعيد وستجد أنها من ضمن الأكثر طلبا في الساحة. وقد تتفوق PHP Laravel في بعض الأحيان، ولكن هذا لا يمنع من وجودها بطبيعة الحال. يمكنك ايضا استعراض بعض الاستفتاءات والاحصائيات الرسمية من مثل تلك التي تقوم بها منصة stackoverflow أو Linkedin بهذا الخصوص، سوف يمكنك التوصل إلى معلومات أكثر دقة.1 نقطة
-
السلام عليكم. أريد تغيير كلمة المرور بالمستخدم الحالي. قمت بالكود التالي في طرف الخادم // Change Password const changePassword = async(req,res) => { const errors = validationResult(req) if (!errors.isEmpty()) { return res.status(400).json({errors: errors.array()}) } try { const { password, newPassword } = req.body; const id = new mongoose.Types.ObjectId(req.user); const current_user = await User.findOne({ _id: id }); // Check if password is wrong then create error. const matchPassword = await bcrypt.compare( password, current_user.password ); if (!matchPassword) { return res.status(401).send({msg: "كلمة المرور خاطئة"}) } // Update password. const salt = await bcrypt.genSalt(10); const hashNewPassword = await bcrypt.hash(newPassword, salt) current_user.password = hashNewPassword; await current_user.save() res.send(res.json({ success: true, data: current_user })) } catch (error) { res.status(500).send({msg: error.message}); } } في طرف العميل const navigate = useNavigate() const [error, setError] = useState('') const [changePassward, setChangePassward] = useState({ password: '', newPassword: '' }) const { password, newPassword } = changePassward const onChange = (e) => { setChangePassward({...changePassward, [e.target.name]: e.target.value}) } const onSubmit = (e) => { e.preventDefault(); const user = JSON.parse(localStorage.getItem("user")); // console.log(user?.data?.token); axios .post("/api/auth/change_password", changePassward, { headers: { "Content-Type": "application/json", "x-auth-token": user?.data?.token, }, }) .then((res) => { setChangePassward(res.data) navigate("/", { replace: true }) }) .catch((err) => setError(err.response.data.message)); }; الوسائط (middleware) const protect = (req, res, next) => { // Get token from header const token = req.header('x-auth-token') // Check if no token if (!token) { return res.status(401).json({msg: 'No token, authorization denied!'}) } // Verify token try { const decoded = jwt.verify(token, process.env.JWT_SECRET) req.user = decoded.user next() } catch (err) { res.status(401).json({msg: 'Token is not valid'}) } } المتصفح يخبرني برسالة الخطأ التالية POST http://localhost:3000/api/auth/change_password 401 (Unauthorized) عند إستخدام postman لم ألاحظ أي مشاكل1 نقطة
-
رسالة "401 Unauthorized" تعني أن الطلب لم يتم تصديقه بنجاح عند إرساله إلى الخادم، أي أن الـ JWT (JSON Web Token) الذي تم إرساله مع الطلب غير صالح أو غير موجود. عليك بالتالي: تأكد من أنك قمت بتسجيل الدخول بنجاح وحصلت على JWT الصحيح عند تسجيل الدخول. التأكد من أنك تقوم بإرسال الـ JWT الصحيح مع الطلب، وأنت تقوم بذلك بالفعل في كود العميل باستخدام: "x-auth-token": user?.data?.token وتحقق من أن خادمك يستخدم نفس (JWT_SECRET) الذي تم استخدامه عند إنشاء الـ JWT ويجب أن يكون متطابقًا على الجانبين (الخادم والعميل) حتى يمكن التحقق من الـ JWT بنجاح. وقم بتضمين وسيط الحماية (protect) في مسار الطلب /api/auth/change_password للتحقق من الـ JWT قبل تنفيذ العملية وتأكد من أن الوسيط موجود في سلسلة وسائط التوجيه التي تتعامل مع هذا المسار. أيضًا تحقق من الجزء التالي في الكود: await current_user.save() res.send(res.json({ success: true, data: current_user })) عليك أيضًا إزالة res.json() حيث أن res.send() بالفعل يقوم بإرسال الجواب بصيغة JSON.1 نقطة
-
السلام عليكم. بشكل مبدأي نعم لكن خليني أشرحلك الموضوع بشكل مفصل أكثر. المقصود بـ "IDE" هو "بيئة تطوير متكاملة"، وهي البرامج التي تستخدم لكتابة وتطوير الأكواد البرمجية وتصميم المواقع. توفر الـ IDE أدوات وميزات متقدمة للمبرمجين ومطوري المواقع لزيادة إنتاجيتهم وتسهيل عمليات البرمجة. فيمكنك استخدامها لكتابة وتحرير الأكواد بلغات مختلفة مثل C++ و HTML و CSS وغيرها. بشكل عام، تحتوي معظم الـ IDE على ميزات مثل: 1. محرر نصي متقدم: لكتابة وتحرير الأكواد البرمجية بسهولة مع توفير تنسيق وتلوين الكود لزيادة الوضوح. 2. مدير المشروعات: لإنشاء وإدارة ملفات المشروع والمجلدات. 3. تصحيح الأخطاء: يتيح لك اكتشاف وتصحيح الأخطاء في الشفرة بسرعة. 4. تنفيذ واختبار البرامج: تشغيل واختبار البرامج المكتوبة بسهولة من داخل الـ IDE. 5. دعم للمكتبات والإضافات: يمكنك إضافة مكتبات إضافية وامتدادات لتعزيز إمكانيات الـ IDE. باختصار، الـ IDE تساعدك على تسهيل وتسريع عملية البرمجة وتوفير بيئة مريحة لتطوير التطبيقات والمواقع. ما الفرق بين الIDE ومحرر الأكواد العادي ؟ يكون محرر الأكواد العادي أبسط بكثير ويقتصر أساسًا على تحرير النصوص بدون ميزات متقدمة. قد تحتاج إلى الاعتماد على تطبيقات أخرى لوظائف مثل تصحيح الأخطاء أو تشغيل البرامج. -IDE: مصمم للاستخدام الشامل لمطوري البرامج، حيث يوفر بيئة متكاملة لكتابة واختبار وتصحيح البرمجيات بشكل كامل. - محرر الأكواد العادي: غالبًا ما يُستخدم لأغراض بسيطة مثل تحرير ملفات النص العادية دون الحاجة إلى وظائف مطورة.1 نقطة
-
من النادر جداً ان اواجه المشكلة التي ذكرتها ولذلك قد تكون المشكلة من المتصفح الخاص بك وللتأكد من ذلك جرب استخدام متصفح آخر أو قد تكون من حاسوبك نفسه وللتأكد من ذلك قم بالإشارة إلى الموقع الذي تقصده وسنقوم بالتأكد منه أو قم بتجريبه على جهاز آخر. قد تكون المشكلة احياناً من وجود عمليات معقدة يتم تنفيذها عند كل عملية scroll يقوم المستخدم بنفيذها بهدف عرض رسوم متحركة معينة أو إظهار عناصر معين أو اخفائها.1 نقطة
-
السبب قد يعود إلى أنك تستخدم إصدارات مخلفة من بايثون لديك مثل بايثون 3.10 و بايثون 3.11 وبالتالي في منفذ الأوامر لديك الإصدار الأساسي هو 3.11 مثلاً ويتم تثبيت المكتبات به. لكن في محرر الأكواد PyCharm قد يكون الإصدار الخاص بمترجم بايثون Python Interpreter هو 3.10 وبالتالي لا يتم العثور على المكتبات التي تم تثبيتها في الإصدار 3.11. لذلك عليك بتحديد إصدار مترجم بايثون الصحيح وذلك بفتح مشروع ثم بالأسفل ستجد الإصدار الذي تم إختياره وبالضغط عليه تستطيع تغييره: لكن لا أنصحك بذلك، من الأفضل استخدام بيئة إفتراضية لكل مشروع وتثبيت المكتبات الخاصة بالمشروع في تلك البيئة الإفتراضية حتى لا يحديث تعارض بين إصدارات المكتبات عند تثبيتها بشكل عالمي أو تحدث مثل تلك المشكلة وعدم العثور على المكتبات. وبالطبع يتم إنشاء البيئة الإفتراضية من خلال pipenv أو وحدة venv وتستطيع معرفة ذلك هنا:1 نقطة
-
قد يكون هناك بعض المشاكل في إعدادات PyCharm الخاصة بمشروعك. لحل هذه المشكلة، يمكنك اتباع الخطوات التالية: تأكد من أنك تستخدم نفس بيئة Python في PyCharm التي قمت بتثبيت المكتبات فيها باستخدام pip. يمكنك التحقق من ذلك عن طريق التأكد من إعدادات المشروع في PyCharm والتأكد من أن Python Interpreter المحدد هو نفسه الذي تستخدمه في سطر الأوامر. قم بتحديث مسارات البيئة في PyCharm. في PyCharm، انتقل إلى File -> Settings -> Project: [اسم المشروع] -> Python Interpreter. انقر على العلامة "+" في الزاوية اليسرى السفلى لإضافة مسار جديد. ابحث عن المجلد الذي تم تثبيت المكتبات فيه باستخدام pip واختره. قم بإعادة تشغيل PyCharm وحاول تشغيل الملف الذي يحتوي على الاستيرادات للمكتبات. قد يكون الخطأ "ModuleNotFoundError: No module named ''" يشير إلى أن PyCharm لا يستطيع العثور على المكتبات المثبتة. تأكد من أنك تستخدم الاستيرادات الصحيحة في ملفك. تأكد من أنك تستخدم نفس الاسم الصحيح للمكتبة في ملفك كما هو مستخدم في سطر الأوامر. على سبيل المثال، إذا كنت قمت بتثبيت المكتبة باستخدام pip install pandas، يجب أن يكون لديك استيراد في ملفك يبدأ بـ "import pandas". إذا قمت باتباع هذه الخطوات واستمرت المشكلة، فقد يكون هناك مشكلة أخرى في إعدادات PyCharm أو في تثبيت المكتبات نفسها.1 نقطة
-
افتح PyCharm. انتقل إلى File (الملف) ثم Settings (الإعدادات) (أو Preferences على نظام macOS). في القائمة الجانبية اليسرى، انتقل إلى Project (اسم مشروعك]) ثم Python Interpreter (مترجم Python). تحقق من أن Python Interpreter المستخدم هو الإصدار الصحيح وأنه يشمل المكتبات التي قمت بتثبيتها بواسطة pip. أو إذا كنت قد قمت بتثبيت المكتبات بنجاح باستخدام pip في البيئة الافتراضية لنظامك، يجب أن يكون من السهل استدعاء تلك المكتبات في ملفاتك في PyCharm. لذلك، تأكد من أنك تستخدم الاستيرادات الصحيحة في ملفات البرنامج الخاصة بك. على سبيل المثال: import my_library # حيث أن my_library هو اسم المكتبة التي قمت بتثبيتها باستخدام pip1 نقطة
-
الطريقة سهلة ولم تأخذ منك سوا دقيقة واحدة وربما اقل. هل فكرت ماذا يحدث بمجرد أن اكتب localhost في شريط العنوان بالمتصفح؟! اُبسِط لك ما يحدُث في كلمات بسيطة وهي أن localhost هي عبارة عن اختصاره لعنوان IP مثل 127.0.0.1 وهذا ما كان يعتمد عليه أوائل مستخدمي اﻷنترنت كانوا يستخدمون تلك اﻷرقام لتصفح المواقع فوجدوا أن هذه الطريقة مُرهِقة جداً وصعبة الحِفظ وزاد اﻷمرُ صعوبة مع كثرة العناوين IPs ثم ظهرت بعد ذلك طريقة اختصار العناوين إلى أسماء Name Server او Host Name تستطيع القيام بذلك على نظام التشغيل لينُكس من خلال التعديل أو الإضافة على هذا الملف hosts وهو موجود في المجلد etc داخل ملفات النظام. /etc/hosts من خلال الطرفية – Terminal في نظام التشغيل لينُكس – Linux قم بالدخول كمدير للنظام هكذا: sudo su sudo أختصاره إلى super user do أي القيام بالتنفيذ كمدير للنظام ودائماً يليه اﻷمر الذي تريد تنفيذه على سبيل المثال su أي super user تقوم بتغيير هوية المستخدم إلى مدير النظام وستُلاحظ بعد إدخال كلمة المرور الخاصة بك كمستخدم عادي أن علامة الدولار ( $ ) تحولت إلى علامة التصنيف ( # ) وهذا يعني انك أصبحت مدير النظام اﻵن لذلك كن حذراً في إصدار أوامرك لأن النظام لن يُطالبك بكلمة مرور كما كان يحدث معك من قبل ﻷنك اﻵن أصبحت المدير. قم اﻵن بالانتقال إلى المجلد etc بكتابة هذا اﻷمر: cd /etc ثم اكتب اﻷمر التالي لتحرير ملف hosts عن طريق المحرر الجميل nano: nano ./hosts * إذا كنت تجد أن هذه الطريقة مُرهقة إلى حد ما فيُمكنك اختصار كل ما سبق في سطر واحد هكذا: sudo nano /etc/hosts ولا تنسى الضغط على مفتاح Enter للتنفيذ وهذا على كل ما سبق واعتقد انك متفهم هذا جيداً. سيتم عرض محتوى الملف وانت جاهز اﻵن ﻹضافة أسم جديد يقوم بنفس عمل localhost وستجد الملف بداخله عناوين بجانب كل عنوان أسم وافتراضياً ستجد هذا السطر إن لم تجد اكثر 127.0.0.1 localhost قم بإضافة اسم جديد بجانب localhost بعد أخذ مسافة أو اكثر وكُن دقيقاً حتى لا يتلاصقان ببعضهم: 127.0.0.1 localhost hsoub.com أو قم بالنزول سطر جديد واكتب ألاختِصاره هكذا: 127.0.0.1 hsoub.com ليُصبِح الترتيب هكذا: 127.0.0.1 localhost 127.0.0.1 hsoub.com اعتقد اﻵن انك تتساءل عن وجود سطور أُخرى ربما بالأسفل أو أعلى الملف, لا عليك بها ولا تقوم بتغيير أي شيء بها. وجب التنويه. بعد الانتهاء من إضافة اسم الخادم أو المُستضاف إن صح التعبير قم بالضغط على: CTRL+O ثم Enter لتأكيد الحفظ ثم CTRL+X للخروج. اﻵن قم بكتابة http://hsoub.com في شريط العنوان الخاص بالمتصفح. ستجد خادمك المحلي هو الذي يعمل بدلاً من موقع حسوب. تظُن انه سِحر ولكن ببساطه هذا كل ما في الأمر. لمُستخدمي نظام التشغيل Windows هذا هو مسار ملف hosts: C:\WINDOWS\system32\drivers\etcتستطيع التعديل عليه أو الإضافة إليه بكل سهولة كما تم في الشرح السابق بالأعلى. أسف على الإطالة وتمنياتي للجميع بالتوفيق.1 نقطة