-
المساهمات
5401 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
11
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبدالباسط ابراهيم
-
لا يمكن لأي مصدر تعليمي وحده أن يكفي لتعلم مجال كامل، ولكن يمكن أن يكون دليلاً جيداً للبدء وتعلم المفاهيم الأساسية وتطبيقها عمليًا. أكاديمية حسوب توفر مجموعة كبيرة من المسارات التعليمية التي تغطي العديد من المهارات والمجالات التقنية. وهي توفر دروسًا عملية وتطبيقية وتمارين ومشاريع عملية تعمل على تحسين مستوى المتعلم وتطوير مهاراته. للاستفادة القصوى من أكاديمية حسوب، يمكنك اتباع بعض النصائح التالية: التركيز على الممارسة: يمكنك تعزيز المفاهيم التي تعلمتها عن طريق القيام بالتمارين عملياً. وبهذه الطريقة ستتمكن من تحسين مستواك وتطوير مهاراتك. العمل على المشاريع العملية: يمكنك تطبيق المفاهيم التي تعلمتها عن طريق العمل على المشاريع العملية التي تقدمها أكاديمية حسوب. وبهذه الطريقة ستتعلم كيفية تطبيق المفاهيم بشكل عملي وتحسين مهاراتك. المشاركة في المنتديات والمجتمعات: يمكنك الاستفادة من تجارب الآخرين والحصول على المساعدة من خلال المشاركة في المنتديات والمجتمعات التي تقدمها أكاديمية حسوب. الاستمرار في التعلم: يجب عليك الاستمرار في التعلم والتدريب على المهارات التي تعلمتها ومواكبة التكنولوجيا الجديدة والتحديثات. بشكل عام، يمكن أن تكون أكاديمية حسوب مصدرًا ممتازًا لتعلم العديد من المهارات والمجالات التقنية. وللحصول على أفضل النتائج والاستفادة القصوى، يجب العمل على تطبيق المفاهيم المتعلمة عمليًا والاستمرار في التعلم والتطوير.
-
يمكن استخدام مكتبة Flask-Login لإنشاء زر إعادة تعيين كلمة المرور بسهولة أكبر. يتيح لك Flask-Login إضافة وظائف تسجيل الدخول والخروج وإدارة جلسات المستخدمين بشكل سلس في تطبيق Flask الخاص بك. لإضافة زر إعادة تعيين كلمة المرور باستخدام Flask-Login، يمكنك اتباع الخطوات التالية: تثبيت Flask-Login باستخدام pip: pip install flask-login إضافة مكونات Flask-Login إلى تطبيق Flask الخاص بك: from flask_login import LoginManager, current_user, login_user, logout_user, login_required login_manager = LoginManager() login_manager.init_app(app) إضافة دالة العودة المفقودة لتطبيق Flask الخاص بك لتحديد المستخدم الحالي: @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) إضافة مسار جديد إلى تطبيق Flask الخاص بك لإعادة تعيين كلمة المرور. يمكنك استخدام الرمز التالي: @app.route('/reset_password', methods=['GET', 'POST']) def reset_password(): if current_user.is_authenticated: return redirect(url_for('index')) form = ResetPasswordForm() if form.validate_on_submit(): # تنفيذ إعادة تعيين كلمة المرور هنا flash('تم إعادة تعيين كلمة المرور الخاصة بك بنجاح.', 'success') return redirect(url_for('login')) return render_template('reset_password.html', title='إعادة تعيين كلمة المرور', form=form) في قالب HTML لصفحة تسجيل الدخول، يمكنك إضافة زر إعادة تعيين كلمة المرور باستخدام الرمز التالي: {% if not current_user.is_authenticated %} <a href="{{ url_for('reset_password') }}">إعادة تعيين كلمة المرور</a> {% endif %} بعد إتمام هذه الخطوات، يمكن للمستخدمين الآن استخدام زر إعادة تعيين كلمة المرور داخل صفحة تسجيل الدخول للوصول إلى صفحة إعادة تعيين كلمة المرور وإعادة تعيين كلمة المرور الخاصة بهم.
- 2 اجابة
-
- 1
-
-
حزمة phpdotenv هي حزمة برمجية مفيدة جداً في مشاريع PHP، وتستخدم عادةً في تطبيقات ويب ومشاريع PHP الأخرى التي تحتاج إلى العديد من المتغيرات المحيطة بالتطبيق، مثل معلومات قاعدة البيانات ومفاتيح التوثيق وإعدادات البريد الإلكتروني وغيرها. تعمل حزمة phpdotenv على تحميل ملفات .env التي تحتوي على المتغيرات البيئية الخاصة بالتطبيق، وإعدادها كمتغيرات بيئية في PHP. وبهذه الطريقة، يمكن للتطبيق استخدام هذه المتغيرات بسهولة دون الحاجة إلى تعيينها يدويًا في كود التطبيق. يكون من الأفضل استخدام حزمة phpdotenv في حالات عديدة، من بينها: عندما تحتوي تطبيقات PHP على العديد من المتغيرات البيئية والإعدادات المختلفة التي يجب تعيينها بشكل متكرر. عندما تحتاج إلى تشغيل التطبيق على عدة بيئات مختلفة، مثل الإنتاج والتطوير والاختبار، وتحتاج إلى تعيين متغيرات بيئية مختلفة لكل بيئة. عندما تحتاج إلى تشغيل التطبيق على عدة أجهزة مختلفة وتحتاج إلى تعيين متغيرات بيئية مختلفة لكل جهاز. عندما تحتاج إلى توفير متغيرات بيئية آمنة ومحمية من الوصول غير المصرح به، حيث يمكن حفظ ملف .env خارج نطاق الوصول العام والوصول إليه فقط بواسطة الأشخاص المصرح لهم. بشكل عام، يكون من الأفضل استخدام حزمة phpdotenv في حالات الحاجة إلى تعيين متغيرات بيئية متعددة لتطبيق PHP، وخاصةً إذا كانت هذه المتغيرات تحتوي على معلومات حساسة أو يتم تشغيل التطبيق في بيئات مختلفة.
-
لتوضيح الشرح السابق أكثر يمكنني تقديم مثال على مهام الهاكر الأخلاقي في الجانب العملي، ويمكن تلخيصها في النقاط التالية: تحليل الثغرات: يعمل الهاكر الأخلاقي على تحليل الثغرات في الأنظمة والشبكات والتطبيقات، وتحديد مدى تأثيرها وخطورتها، ومن ثم تبليغ الجهة المعنية بالثغرة وتقديم الإجراءات اللازمة لإصلاحها. اختبار الاختراق: يستخدم الهاكر الأخلاقي أساليب الاختبار الاختراق لتحديد الثغرات والنقاط الضعيفة في الأنظمة والشبكات والتطبيقات، ويوصي بالإجراءات اللازمة لتحسين الأمن والحماية. تأمين الأنظمة: يعمل الهاكر الأخلاقي على تأمين الأنظمة والشبكات والتطبيقات من الهجمات السيبرانية والتعرف على مدى قابليتها للاختراق، ويوصي بالإجراءات اللازمة لتحسين الأمن والحماية. التدريب والتوعية: يعمل الهاكر الأخلاقي على تدريب وتوعية المستخدمين والعاملين في الشركات والمؤسسات على أساليب الأمن السيبراني وكيفية الحفاظ على البيانات الحساسة والمعلومات الشخصية، ويوصي بالإجراءات اللازمة لتحسين التوعية والحماية. الاستشارة الأمنية: يمكن للهاكر الأخلاقي أن يعمل كاستشاري أمني للشركات والمؤسسات لتحسين الأمن السيبراني وتقييم وتحليل النظم والشبكات وتوصي بالإجراءات اللازمة لتحسين الأمن والحماية. بشكل عام، يعمل الهاكر الأخلاقي على تحسين الأمن السيبراني وحماية الأنظمة والشبكات والتطبيقات من الهجمات السيبرانية، ويوصي بالإجراءات اللازمة لتحسين الأمن والحماية وتقييم النظم والتطبيقات وتحديد الثغرات والنقاط الضعيفة وترشيح الحلول المناسبة. الهاكر الأخلاقي يستخدم أدوات وتقنيات مختلفة لتحليل الأنظمة والتطبيقات وتحديد الثغرات والنقاط الضعيفة فيها. وهذه الأدوات والتقنيات تشمل عادة البرمجيات المخصصة للأمن السيبراني والاختبار الاختراق. يمكن للهاكر الأخلاقي استخدام الأكواد البرمجية المخصصة لتحليل الأنظمة والتطبيقات، والتي تتطلب منه كتابة أكواد برمجية خاصة به لتحليل النظام أو التطبيق. كما يمكنه استخدام البرمجيات المخصصة للأمن السيبراني والتي تحتوي على أدوات جاهزة لتحليل الأنظمة والتطبيقات وتحديد الثغرات والنقاط الضعيفة فيها.
- 6 اجابة
-
- 1
-
-
إذا اخترت دورة تطوير مواقع فإنها ستوفر لك المعرفة والمهارات الأساسية في تطوير المواقع، وستمكنك من فهم مفاهيم البرمجة والتعامل مع الأدوات والتقنيات المستخدمة في هذا المجال. ومن ثم، يعتمد تحويلك إلى محترف في هذا المجال على العديد من العوامل الأخرى، مثل: 1- التدريب العملي: بعد الانتهاء من الدورة التدريبية، يجب أن تقوم بالتدريب العملي والعمل على مشاريع حقيقية لتطبيق ما تعلمته. 2- التعلم المستمر: يجب عليك الاستمرار في تعلم المزيد من المفاهيم والأدوات والتقنيات المستخدمة في تطوير المواقع، وذلك من خلال الدورات التدريبية الأخرى والقراءة والتجارب العملية. 3- العمل الجاد: يجب أن تكون ملتزمًا بالعمل الجاد والمثابرة على تحقيق أهدافك، وتحسين مهاراتك وخبراتك في هذا المجال. 4- التواصل مع المجتمع المحترف: يمكن أن يساعد التواصل مع مجتمع المطورين المحترفين في تطوير شبكة من العلاقات المهنية والتعرف على المزيد من الفرص والإمكانيات لتحسين مستواك الاحترافي. بشكل عام، يجب عليك العمل بجد والتحلي بالصبر والمثابرة لتحقيق هدفك في أن تصبح محترفًا في تطوير المواقع. التعلم المستمر والعمل الجاد هي المفاتيح الأساسية للوصول إلى هذا الهدف. ولكن للإجابة على سؤالك بشكل صريح فكيف يتم توجيهك إلى الإحتراف من خلال هذه الدورة؟ يتم ذلك من خلال تعليمك أساسيات التقنيات المختلفة التي تحتاجها في هذا المجال ثم التطبيق عليها مما يجعلك قادر على تعلم تقنيات أخرى بكل سهولة وتعلم التحديثات في هذه التقنيات بدون مشكلة كما أن يتم تعليمك الممارسات الجيدة في البرمجة مما تجعلك متميز عن بعض الأشخاص الأخرى
-
تعلم أساسيات علوم الحاسوب قبل الدخول في البرمجة له العديد من المميزات، ومن أهمها: فهم أفضل للتقنيات الحاسوبية: يساعد تعلم أساسيات علوم الحاسوب على فهم أفضل للتقنيات الحاسوبية وكيفية عملها، وذلك يؤدي إلى تحسين القدرة على البرمجة بشكل أفضل. فهم المفاهيم الأساسية: يعتبر تعلم أساسيات علوم الحاسوب مهمًا لفهم المفاهيم الأساسية للبرمجة، مثل الخوارزميات والبيانات والترميز والتصميم الشيئي. تطوير المهارات الحاسوبية: يساعد تعلم أساسيات علوم الحاسوب على تطوير المهارات الحاسوبية الأساسية، مثل استخدام البرامج والأدوات والأنظمة الحاسوبية. فهم الأسس النظرية: يساعد تعلم أساسيات علوم الحاسوب على فهم الأسس النظرية والمفاهيم الرياضية والإحصائية والتي تستخدم في البرمجة. تحسين الإنتاجية: يمكن لتعلم أساسيات علوم الحاسوب أن يحسن الإنتاجية في العمل، حيث يتيح للمستخدمين فهم كيفية استخدام البرامج والأدوات بشكل أفضل وتحسين عمليات العمل. وهذا هو ما تجعلك تتميز به هذه الدورة التعليمية بحيث أن دراسة الأساسيات دائماً يسهل عليك التعلم بعد ذلك
- 3 اجابة
-
- 1
-
-
يمكن إضافة progress bar إلى كود الرفع باستخدام مكتبة Volley في تطبيق Android باستخدام الـ RequestQueue الخاصة بـ Volley وباستخدام الـ ProgressListener لمراقبة التقدم في الرفع. فيما يلي خطوات إضافة progress bar إلى كود الرفع باستخدام مكتبة Volley في تطبيق Android: تحديد الـ RequestQueue الخاصة بـ Volley وإضافة الإرسال إليها: RequestQueue queue = Volley.newRequestQueue(this); String url = "http://example.com/upload.php"; // إنشاء الـ StringRequest StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // تنفيذ الشيفرة عند الانتهاء } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // تنفيذ الشيفرة عند حدوث خطأ } }) { @Override protected Map<String, String> getParams() { // إضافة المعلومات المطلوبة للرفع هنا Map<String, String> params = new HashMap<>(); params.put("key", "value"); return params; } }; // إضافة الـ StringRequest إلى الـ RequestQueue queue.add(stringRequest); إضافة ProgressListener لرصد التقدم في الرفع: final ProgressBar progressBar = findViewById(R.id.progress_bar); // تعريف الـ ProgressBar // إضافة الـ ProgressListener للـ StringRequest stringRequest.setRetryPolicy(new DefaultRetryPolicy( 0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)) { @Override public void deliverError(VolleyError error) { super.deliverError(error); // إخفاء ProgressBar عند حدوث خطأ progressBar.setVisibility(View.GONE); } @Override protected void deliverResponse(String response) { super.deliverResponse(response); // إخفاء ProgressBar عند الانتهاء progressBar.setVisibility(View.GONE); } @Override public void deliverProgress(long downloaded, long total) { super.deliverProgress(downloaded, total); // تعديل قيمة ProgressBar بناءً على التقدم في الرفع progressBar.setProgress((int) ((downloaded / (float) total) * 100)); } }; إظهار ProgressBar قبل البدء في الرفع، وإخفائه بعد الانتهاء: // إظهار ProgressBar قبل البدء في الرفع progressBar.setVisibility(View.VISIBLE); // إضافة الـ StringRequest إلى الـ RequestQueue queue.add(stringRequest);
-
قام Django ببناء خادم لذلك. يمكنك تشغيله python manage.py runserver على عكس php لذلك التعليق السابق يوضح الخطوات بالتفصيل و هناك العديد من الخيارات البرمجية التي يمكن استخدامها كحل مشابه لـ XAMPP لتطوير تطبيقات Django. وفيما يلي بعض الخيارات: Bitnami Django Stack: هذا هو مجموعة أدوات برمجية معدة مسبقًا تتضمن Django و Apache و MySQL وأدوات أخرى مطلوبة للتطوير. يمكن تنزيلها وتثبيتها على أنظمة التشغيل Windows و macOS و Linux. PyCharm: PyCharm هو بيئة تطوير متكاملة (IDE) لتطوير البرامج باستخدام Python و Django. يتضمن خادم الويب المدمج لتشغيل تطبيقات Django أثناء التطوير. يوفر PyCharm أيضًا أدوات للتصحيح والاختبار والنشر. Anaconda: Anaconda هي توزيعة من Python وأدوات العلوم البيانية الأخرى. يتضمن إطار عمل Django ويمكن استخدامه للتطوير والنشر لتطبيقات Django. يوفر Anaconda أيضًا أدوات لإدارة البيئات والتبعيات. Docker: Docker هو منصة تحتوي على حاويات تطبيقات، يمكن استخدامها لإنشاء بيئة تطوير لـ Django. يسمح للمطورين بتغليف تطبيقاتهم وتبعياتها في حاوية يمكن تشغيلها على أي جهاز يحتوي على Docker. بشكل عام، توفر هذه الخيارات مجموعة مماثلة من الأدوات لـ XAMPP لتطوير PHP، ولكن مصممة خصيصًا لتطوير تطبيقات Django.
- 4 اجابة
-
- 1
-
-
الكودين المذكورين يحتويان على نفس النهج العام للحصول على بيانات من Firestore، ولكن الثاني يستخدم Batched Writes، بينما الأول لا يستخدمها. الفرق الرئيسي بين الكودين هو في استخدام Batched Writes لتحسين أداء قاعدة البيانات وتقليل عدد العمليات التي تتم على قاعدة البيانات. في الكود الثاني ، يتم تعريف دفعة batch، وبعد ذلك يتم تنفيذ عمليات القراءة والكتابة وإضافتها إلى الدفعة باستخدام دالة set(). وفي النهاية، يتم تنفيذ الدفعة باستخدام دالة commit(). أما في الكود الأول ، فإنه لا يستخدم Batched Writes، بل يقوم بتنفيذ عمليات القراءة والكتابة بشكل فردي، ويستخدم دالة Future.wait() لإنشاء مستقبلات لكل عملية قراءة، ثم يتم الانتظار حتى يتم الانتهاء من كل المستقبلات قبل معالجة النتائج. يمكن استخدام Batched Writes في الحالات التي يتم فيها تنفيذ عدة عمليات كتابة على قاعدة البيانات في نفس الوقت، مما يساعد على تحسين أداء العمليات وتخفيض عدد الطلبات التي تتم إلى الخادم. ومع ذلك، يجب الحرص على استخدام Batched Writes بشكل معتدل وفقًا لحجم وتعقيد العمليات المتنفذة، حتى لا يؤدي ذلك إلى تباطؤ الأداء أو زيادة الوقت اللازم للعمليات الأخرى التي تعتمد على القاعدة.
- 4 اجابة
-
- 1
-
-
لحذف الرسومات في Plotly.js، يمكنك استخدام دالة Plotly.deleteTraces التي تقوم بحذف إحدى الرسومات أو عدة رسومات محددة بواسطة مؤشراتها. على سبيل المثال، إذا كنت تريد حذف كل الرسومات الموجودة، يمكنك استخدام الأمر التالي: Plotly.deleteTraces('myDiv', [0, 1, 2, 3]); حيث أن 'myDiv' هو معرف العنصر النائب الذي تريد حذف الرسومات منه، و [0, 1, 2, 3] هي مؤشرات الرسومات التي تريد حذفها. يمكنك تغيير هذه المؤشرات لحذف مجموعة مختلفة من الرسومات. أما بالنسبة للخطأ Plotly is not defined الذي يظهر عند تطبيق الخطوات كما في التعليق الأول فحاول نقل ال <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> في قسم ال head
-
يمكن القول بأن MacBook Air يمكن أن يكون خيارًا جيدًا للمطورين في العديد من المجالات البرمجية المختلفة، وذلك يعتمد على احتياجات المستخدم ومتطلبات المشروع. وفيما يلي بعض المجالات البرمجية التي يمكن أن يكون MacBook Air خيارًا قويًا فيها: تطوير تطبيقات iOS وmacOS: يمكن استخدام Xcode، الأداة الرسمية لتطوير تطبيقات iOS وmacOS، على MacBook Air بسهولة. ويمكن استخدام لغات البرمجة المختلفة مثل Swift وObjective-C لتطوير تطبيقات iOS وmacOS بشكل كامل. تطوير تطبيقات الويب: يمكن استخدام MacBook Air لتطوير تطبيقات الويب باستخدام أدوات التطوير المختلفة مثل Visual Studio Code و Sublime Text وغيرها. وبفضل نظام التشغيل macOS والأداء الجيد، يمكن تطوير تطبيقات الويب بشكل كامل على MacBook Air. تطوير الألعاب: يمكن استخدام MacBook Air لتطوير ألعاب الكمبيوتر باستخدام لغات البرمجة المختلفة مثل C++ وJava وغيرها. ويمكن استخدام أدوات التطوير المختلفة مثل Unity وUnreal Engine وGameMaker Studio على MacBook Air لتطوير الألعاب بشكل كامل. تطوير تطبيقات Android: يمكن استخدام MacBook Air لتطوير تطبيقات Android باستخدام Android Studio، الأداة الرسمية لتطوير تطبيقات Android. ويمكن استخدام لغات البرمجة المختلفة مثل Kotlin وJava لتطوير تطبيقات Android بشكل كامل. تطوير الذكاء الاصطناعي والتعلم الآلي: يمكن استخدام لغات البرمجة المختلفة مثل Python وR وغيرها لتطوير الذكاء الاصطناعي والتعلم الآلي على MacBook Air. وتتوفر العديد من المكتبات والأدوات المفيدة لتطوير الذكاء الاصطناعي على macOS. وبشكل عام، يمكن القول بأن MacBook Air يمكن أن يكون خيارًا قويًا للمطورين في العديد من المجالات البرمجية المختلفة
-
توضيحاً للشرح السابق من خلال مثال عملي لنفترض أن لدينا تطبيق ويب يتضمن صفحة لإظهار قائمة بعض المستخدمين من قاعدة البيانات. يمكن تنفيذ هذا التطبيق بتشغيل منسق حيث تقوم جميع العمليات بالاتصال بقاعدة البيانات بشكل مركزي وتتم إدارة المعاملات بطريقة متناغمة. أما إذا قمنا بتنفيذ هذا التطبيق بتشغيل غير منسق، فقد يتم تنفيذ العمليات بشكل مستقل على عدة أجهزة مختلفة. على سبيل المثال، يمكن لكل مستخدم في الموقع تنفيذ عملية استعلام مختلفة عن قاعدة البيانات لاستخراج قائمة المستخدمين، بحيث يتم الحصول على قائمة متنوعة من النتائج وعدم تناسقها. هذا يعني أنه يجب علينا إدارة تنسيق عمليات الاستعلام والتي يمكن تحقيقها باستخدام تقنيات التشغيل غير المنسق. على سبيل آخر، يمكن استخدام التشغيل غير المنسق في تطبيقات الألعاب المتعددة اللاعبين، حيث يتم تنفيذ الأجزاء المختلفة من اللعبة بشكل مستقل على أجهزة مختلفة. على سبيل المثال، قد تتم إدارة حركة اللاعبين على جهاز واحد بينما يتم تنفيذ العمليات الأخرى، مثل الرسومات والأصوات، على أجهزة أخرى. هذا يتطلب تقنيات التشغيل غير المنسق لتحقيق التنسيق بين العمليات المختلفة وتجنب حدوث صراعات بين اللاعبين.
-
كما ذكر المدربون في التعليقات السابقة دورة علوم الحاسب هي الدورة الأفضل في أكاديمية حسوب للبداية في مجال البرمجة عموماً . وهي دورة مدفوعة ولكن إذا كنت تريد دورة مجانية فيعتبر من أفضل الكورسات هو CS50 CS50 هو مقرر تعليمي مفتوح المصدر يعرّف الطلاب على علوم الكمبيوتر. يهدف المقرّر إلى تعليم الطلاب كيفية تطوير البرامج باستخدام لغات البرمجة C و Python و SQL و JavaScript إلخ. يتضمن المقرر المواضيع الأساسية في الحوسبة مثل: الخوارزميات والبيانات. الهياكل والقوائم المرتبطة. البحث الثنائي. التراكب. المؤشرات. الإدارة الذاتية للذاكرة. وغيرها الكثير. يدرس المقرر بواسطة أساتذة من جامعة هارفرد. ويتم تدريس المقرر مجانا على موقع EDX حيث يمكن للطلاب التسجيل والانضمام والحصول على شهادة في نهاية المقرر. CS50 مقرر رائع للمبتدئين للتعرف على علوم الكمبيوتر بشكل عملي. أنصح بمتابعته لأي شخص يرغب في البرمجة وتطوير المهارات التقنية. لمزيد من المعلومات حول CS50 يمكنك زيارة الرابط التالي
-
إذا كنت تريد استخدام Netlify يمكنك استخدام الـ Netlify Functions لتنفيذ المطلوب ومثال على كيفية رفع مشروع json-server على Netlify، يجب عليك اتخاذ الخطوات التالية: أضف ملف netlify.toml الذي يحتوي على الإعدادات التالية: [build] command = "npm run build" publish = "build" [dev] command = "npm run start" # سيتم تشغيله عند تشغيل موقعك [[redirects]] from = "/*" to = "/index.html" status = 200 [functions] directory = "functions" # يحتوي على ملف lambda لتشغيل json-server أضف ملف functions/lambda.js يحتوي على: const jsonServer = require('json-server') const server = jsonServer.create() const router = jsonServer.router('db.json') const middlewares = jsonServer.defaults() server.use(middlewares) server.use(jsonServer.rewriter({ '/api/*': '/$1' })) server.use(router) server.listen(5000, () => { console.log('JSON Server is running') }) قم بتغيير المنفذ في "start" script إلى منفذ آخر مثل 5000 قم بنشر المشروع على Netlify سيقوم Netlify بتشغيل الوظيفة lambda.js التي بدورها ستقوم بتشغيل json-server على المنفذ 5000. ستتمكن من الوصول إلى البيانات من خلال https://your-site.netlify.app/api/posts هذا ما يجب عليك فعله لرفع مشروع json-server على Netlify. يمكنك الإطلاع على المصادر التي تم ذكرها في أول تعليق للمزيد من المعلومات
-
توجد بعض الاختلافات بين MySQL و Firebase (كما أخبرك مصطفى)في آلية الربط بين الجداول (Joins) . بالنسبة لـ Firebase فالتوصيل بين الجداول يتم بطريقة مختلفة. يمكنك القيام بذلك عن طريق: تخزين الروابط في حقل من نوع كائن (Object) أو سلسلة (String) تحتوي رقم المفتاح الأساسي في الجدول الآخر. مثلاً حقل "related_table_id". عند طلب البيانات من إحدى الجداول، تقوم بالإشارة إلى الجدول الآخر والبحث فيه بناءً على رقم المفتاح "related_table_id". تجميع النتائج من الجدولين في مصفوفة واحدة وإرجاعها للمستخدم. ولتسهيل التعامل مع ال FIREBASE قم بتعلم قاعدة البيانات NoSQL حيث تختلف عن ال sql بشكل كبير
- 4 اجابة
-
- 1
-
-
نعم، محرك الألعاب Godot 4 يدعم استخدام لغة البرمجة Python بشكل رسمي ويمكن استخدامها لتطوير الألعاب في المنصة. يمكن استخدام Python في Godot 4 باستخدام إضافة "GDScript Python" التي تأتي مع المحرك كإضافة قياسية، والتي تسمح للمطورين باستخدام Python في إضافة إلى GDScript و C# و Visual Scripting كلغات برمجة لتطوير الألعاب. لإستخدام لغة Python في محرك الألعاب Godot 4، يجب اتباع الخطوات التالية: تحميل إضافة "GDScript Python": يمكن تحميل الإضافة من موقع Godot الرسمي أو من مستودعات الإضافات الخاصة بـ Godot 4. تثبيت الإضافة: يجب فتح محرك Godot 4 والانتقال إلى مجلد "addons" الخاص بمشروعك، ومن ثم يتم نسخ الإضافة المحملة في المجلد. تفعيل الإضافة: بعد نسخ الإضافة، يجب فتح مشروع Godot الخاص بك والانتقال إلى قائمة "Project Settings"، ومن ثم اختيار "Plugins" وتفعيل إضافة "GDScript Python". إنشاء ملف Python جديد: يجب إنشاء ملف Python جديد داخل مشروع Godot الخاص بك وإضافة الأوامر الخاصة بـ Godot. تحديد مسار Python الصحيح: يجب تحديد مسار Python الصحيح في إعدادات المشروع. وذلك يتطلب تحديد مسار CPython المثبت على جهاز الكمبيوتر الخاص بك. استخدام Python في Godot 4: يمكنك الآن استخدام Python في Godot 4 لتحريك الكائنات وإدارة الصوت والرسوميات والتفاعل مع اللاعبين والمزيد.
-
سأوضح لك بعض الأسئلة بشكل مفصل كما يلي هناك عدة طرق للحفاظ على تنسيق الصفحة عند تغيير حجم الصور، منها: استخدام العلامات التجارية والأبعاد النسبية: يمكن استخدام العلامات التجارية مثل "width" و "height" و "max-width" و "max-height" و "min-width" و "min-height" لتعيين الأبعاد الصحيحة للصور والحدود الأقصى والأدنى لحجمها، وذلك يساعد على الحفاظ على تنسيق الصفحة عند تغيير حجم الصور. استخدام الصور المتجاوبة: يمكن استخدام الصور المتجاوبة (Responsive Images) والتي تتكيف مع حجم الشاشة وتقلل من اختلاف التنسيق عند تغيير حجم الصور، وذلك يمكن تحقيقه عن طريق استخدام وسائط الصور المختلفة مثل srcset و sizes. استخدام أدوات التحكم في حجم الصور: يمكن استخدام برامج تحرير الصور مثل Photoshop و GIMP وأدوات الضغط مثل TinyPNG و JPEGmini للحفاظ على جودة الصور وتحديد الأبعاد الصحيحة لتجنب اختلافات التنسيق. التأكد من توافق الأبعاد: يجب التأكد من توافق أبعاد الصور مع تنسيق الصفحة وعدم تجاوز حجم الصور الحدود المحددة في التصميم، وذلك يمكن تحقيقه عن طريق قياس الأبعاد بدقة ومراجعتها مع متطلبات التصميم. بشكل عام، يجب الاهتمام بتصميم الموقع من البداية بحيث يكون متجاوباً ومتناسباً مع جميع الأحجام الممكنة للشاشات والأجهزة المختلفة، ويمكن استخدام الأدوات المتاحة واعتماد أفضل الممارسات لضمان الحفاظ على تنسيق الصفحة عند تغيير حجم الصور أو أي عنصر آخر في التصميم. إضافة دعم للغات المتعددة للموقع يتطلب جهودًا من كل من مطور الواجهة الأمامية والخلفية للموقع. على المطور الأمامي تحديد العناصر التي يجب ترجمتها وجعلها قابلة للتغيير بسهولة، مثل النصوص المستخدمة في القوائم والأزرار والعناصر الأخرى التي يتفاعل معها المستخدم. يمكن استخدام ملفات الترجمة (مثل JSON، YAML، أو PO) لتخزين النصوص المترجمة وتحميلها بشكل ديناميكي. من ناحية المطور الخلفي، يتعين عليه تحديد الطريقة المناسبة لتحديد اللغة المستخدمة من قبل المستخدم، وتخزينها بشكل دائم في قاعدة البيانات أو تخزينها في ملفات تعريف الجلسة. ويمكن أيضًا استخدام رموز اللغة المختلفة (مثل "en" للإنجليزية، "ar" للعربية، و "fr" للفرنسية) لتحديد اللغة المستخدمة. هناك العديد من الأدوات التي يمكن استخدامها لتسهيل إضافة دعم للغات المتعددة، ومنها: gettext: هي أداة لترجمة النصوص المستخدمة في تطبيقات ومواقع الويب، وتعتمد على ملفات الترجمة المختلفة لتحقيق ذلك. i18next: هي أداة لإدارة اللغات المتعددة وترجمة المحتوى في تطبيقات الويب والمواقع، وتوفر واجهة سهلة الاستخدام لإضافة وتحرير الترجمات. Polyglot.js: هي مكتبة JavaScript تساعد على تحويل النصوص المعروضة في تطبيقات الويب إلى لغات مختلفة، وتتيح إمكانية تخزين الترجمات في ملفات JSON. WPML: هي إضافة لنظام إدارة المحتوى ووردبريس تسهل إدارة اللغات المتعددة وترجمة المحتوى، وتوفر واجهة سهلة الاستخدام لإضافة وتحرير الترجمات. Laravel Localization: هي إضافة لإطار عمل لارافيل تساعد على تحويل التطبيقات إلى لغات مختلفة، وتوفر واجهة سهلة الاستخدام لإدارة الترجمات. تستخدم هذه الأدوات وغيرها من الأدوات لتسهيل وتبسيط إضافة دعم للغات المتعددة في تطبيقات الويب والمواقع، وتساعد على توفير وقت وجهد المطورين في هذه العملية.
- 5 اجابة
-
- 1
-
-
يمكنك استخدام المكتبة react-native-deep-linking لإنشاء بروتوكول خاص بتطبيقك وتحويل الروابط إلى روابط داخل التطبيق. يجب تثبيت المكتبة كما في التعليق السابق ثم يجب تعريف البروتوكول والـ intent-filter في ملف AndroidManifest.xml وفقًا للتعليمات الموجودة في الدليل الرسمي: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myapp"> <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:exported="true"> <!-- Add the following intent filters --> <intent-filter android:label="@string/app_name"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Add your custom scheme here --> <data android:scheme="myapp" /> </intent-filter> <!-- Handle deep links --> <intent-filter android:label="@string/app_name"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Add your custom host and path here --> <data android:scheme="myapp" android:host="example.com" android:pathPrefix="/path" /> </intent-filter> </activity> </application> </manifest> ثم يمكنك استخدام المكتبة في تطبيقك كالتالي: import DeepLinking from 'react-native-deep-linking'; // ... // Define your deep link handlers const handleDeepLink = (link) => { // Handle the deep link here console.log('Deep link:', link); }; // ... // Initialize the deep linking library DeepLinking.addScheme('myapp://'); DeepLinking.addRoute('/path/:id', handleDeepLink); // Handle incoming deep links DeepLinking.evaluateUrl(); الآن، عند النقر على رابط myapp://example.com/path/123، سيتم فتح التطبيق بدلاً من المتصفح وتشغيل الدالة handleDeepLink() للتعامل مع الرابط المحدد.
-
قم بتعلم الاساسيات الموجودة في التعليقات السابقة ويجب عليك الإهتمام ببعض أساسيات الرياضيات وفرع الإحتمالات بالأخص وتعلم البرمجة ثم بعد ذلك قم بتحديد مجال معين حيث أن مجال الذكاء الاصطناعي هو مجال واسع ومتنوع يشمل العديد من التخصصات والمجالات الفرعية. ومن بين المجالات الرئيسية للذكاء الاصطناعي نجد: تعلم الآلة: يتمحور هذا المجال حول تدريب الأنظمة الحاسوبية على التعرف على الأنماط واتخاذ القرارات بشكل ذاتي، بناءً على البيانات والتجارب الماضية. ويستخدم في العديد من التطبيقات مثل تطبيقات التوصيات والتحليل البياني والروبوتات والتعرف على الكلام وغيرها. التعلم العميق: يمثل هذا المجال تطوير نماذج حاسوبية تعتمد على الشبكات العصبية الاصطناعية للتعرف على الأنماط المعقدة والتنبؤ بالبيانات. ويستخدم في العديد من التطبيقات مثل التعرف على الصور والكلام والترجمة الآلية والتحليل البياني وغيرها. معالجة اللغوية الطبيعية: يعمل هذا المجال على تطوير النظم الحاسوبية التي تستطيع فهم وتحليل اللغة الطبيعية بمختلف أشكالها وترجمتها وإنتاجها وتحليلها واستخلاص المعلومات منها. ويستخدم في العديد من التطبيقات مثل الترجمة الآلية والتحليل النصي والمحادثة الآلية وغيرها. الروبوتات: يعمل هذا المجال على تطوير الروبوتات الذكية التي تستطيع التفاعل مع البيئة المحيطة بها بشكل ذكي واتخاذ القرارات المناسبة بناءً على البيانات المتاحة. ويستخدم في العديد من التطبيقات مثل الصناعة والخدمات الصحية والتعليم وغيرها. يوجد فقط دورة تغطي الكثير من الأساسيات المطلوبة في هذا المجال وهي ما ذكرها مصطفى في التعليق دورة " دورة علوم الحاسوب "
-
الطريقة الأكثر شيوعًا لحساب دقة النموذج في حالة وجود Feature و Labels بها 0 أو 1 هي استخدام مقياس الدقة البسيط (Simple accuracy) الذي تم شرحه في الإجابة الأولى على سؤالك. هذا المقياس يحسب الدقة ببساطة كنسبة الحالات التي تم تصنيفها بشكل صحيح إلى الحالات الإجمالية. يعتبر هذا المقياس الأكثر شيوعًا لأنه سهل الفهم والتطبيق ولا يتطلب معرفة مسبقة بأساسيات الإحصاء أو الرياضيات. بالإضافة إلى ذلك، يمكن استخدام هذا المقياس مع جميع أنواع البيانات التي تحتوي على Labels بها 0 أو 1. ولكن هناك أيضاً مقاييس المختلفة لحساب دقة النموذج في حالة وجود Feature و Labels بها 0 أو 1: مقياس الدقة المتعددة الأصفار والواحد (Multiclass accuracy): يستخدم هذا المقياس في حالة وجود Labels متعددة بدلاً من قيم 0 أو 1. يتم حساب دقة النموذج عن طريق مقارنة التصنيف الصحيح لكل فئة بالتصنيف الفعلي للفئة المقابلة، ويتم حساب متوسط الأداء عبر جميع الفئات. مقياس الدقة الموزون (Weighted accuracy): يستخدم هذا المقياس في حالة وجود فئات غير متوازنة في البيانات، حيث يعطي وزنًا أكبر للفئات الأكثر شيوعًا. يتم حساب دقة النموذج عن طريق ضرب نسبة الحالات التي تم تصنيفها بشكل صحيح في كل فئة بالوزن النسبي لهذه الفئة، ويتم حساب المتوسط عبر جميع الفئات. مقياس الدقة الزمنية (Time-based accuracy): يتم استخدام هذا المقياس في حالة وجود بيانات ذات تسلسل زمني، مثل البيانات الطبية أو البيانات المالية، حيث يتم حساب دقة النموذج عن طريق تصنيف الحالات في فترة زمنية معينة، ومن ثم حساب عدد الحالات التي تم تصنيفها بشكل صحيح خلال هذه الفترة. مقياسات دقة المصنف (Classifier accuracy): تستخدم هذه المقاييس في حالة وجود Feature و Labels بها 0 أو 1، ولكن يتم تصنيف البيانات إما كـ"صحيح" أو "خاطئ". يمكن حساب دقة النموذج عن طريق حساب مقدار "صحيح إيجابي" (True positive)، و"صحيح سلبي" (True negative)، و"خاطئ إيجابي" (False positive)، و"خاطئ سلبي" (False negative)، ويمكن استخدام هذه المعلومات لحساب مقاييس مثل مقياس الحساسية (Sensitivity) ومقياس الدقة الخاصة (Specificity).
-
بالتأكيد ، يمكنك الانتقال مباشرة إلى تطوير ووردبريس بعد اتقان لغة PHP. فالووردبريس يستخدم PHP كلغة برمجة رئيسية، ومعرفة PHP بشكل جيد ستساعدك في فهم كيفية بناء وتطوير المواقع باستخدام ووردبريس. على الرغم من ذلك ، فإن حضور دورة تدريبية في Laravel يمكن أن يعزز مهاراتك في بناء تطبيقات الويب بشكل عام وتطوير ووردبريس بشكل خاص. لارافيل هو إطار عمل PHP شائع ومتقدم للغاية ويمكن أن يساعدك في فهم أفضل لأفكار التصميم والتنفيذ الأكثر تعقيدًا في تطوير الويب. على أي حال ، يعتمد الأمر على أهدافك وأولوياتك في التطوير. إذا كنت ترغب في تحسين مهاراتك في تطوير ووردبريس بشكل أسرع ، فمن المستحسن البدء في تطوير ووردبريس مباشرة بعد استكمال دورة PHP. وإذا كنت ترغب في تحسين مهاراتك في تطوير الويب عمومًا ، فمن المستحسن حضور دورة تدريبية في Laravel قبل الانتقال إلى تطوير ووردبريس. أهمية تعلم laravel ؟ السرعة والكفاءة: يساعد Laravel على تسريع عملية تطوير الويب، حيث يوفر الإطار العديد من الميزات والأدوات الجاهزة للاستخدام، مما يساعد على تقليل الوقت والجهد المبذولين في بناء تطبيقات الويب. سهولة الاستخدام: يتيح Laravel للمطورين بدء العمل على تطوير تطبيقات الويب بسهولة، حيث يتميز بتوفير واجهة سهلة الاستخدام وموجهة للمطورين. كما يوفر الإطار العديد من الميزات الجاهزة للاستخدام، مما يساعد على تقليل الجهد المبذول في بناء تطبيقات الويب. التوثيق الوافي: يوفر Laravel توثيقاً وافياً لكل الميزات والأدوات المتاحة في الإطار، مما يسهل على المطورين فهم كيفية استخدام الإطار ونقطة البدء في تطوير تطبيقات الويب. المرونة: يسمح Laravel للمطورين بتطوير تطبيقات الويب بشكل مرون وقابل للتوسع، حيث يتضمن الإطار العديد من الميزات والنماذج الجاهزة للاستخدام، ويمكن للمطورين إضافة وتخصيص الميزات والنماذج حسب حاجاتهم. المجتمع النشط: يتمتع Laravel بمجتمع نشط ومتواصل، حيث يتم تحديث الإطار بشكل مستمر ويتم تطويره بواسطة مجتمع متعدد من المطورين، وبالتالي، يمكن الاستفادة من تجارب وخبرات المطورين الآخرين في تطوير تطبيقات الويب بشكل أفضل.
-
لمحاذاة الأعمدة في طباعة Python ، يمكنك استخدام طريقة format () كما يلي # print the table rows for item in data: print("{:<15} {:<10} ${:<10,.2f}".format(item["Name"], item["Age"], item["Salary"])) يجب أن الناتج كما يلي John Doe 25 $50,000.00 Jane Smith 30 $60,000.00 Bob Johnson 40 $70,000.00 في هذا المثال، يتم استخدام طريقة format() لتنسيق رأس الجدول، الصفوف، والتذييل مع أعمدة مُحاذاة. يتم استخدام المحدد :<15 لمحاذاة العمود إلى اليسار بعرض 15 حرفًا، ويتم استخدام المحدد :<10 لمحاذاة عمود العمر إلى اليسار بعرض 10 حرفًا. يتم استخدام المحدد :${:<10,.2f} لتنسيق عمود الراتب كرقم عائم بـ 2 أرقام عشرية وإضافة فواصل لفصل الآلاف. يمكنك تعديل عرض ومحددي التنسيق حسب الحاجة الخاصة بك. يمكنك استخدام الدالة format بما يناسب البرنامج لديك
-
من الصورة المرفقة يمكن ملاحظة أن الكود المستخدم يستخدم دالة find للعثور على حدث واحد فقط من نموذج Event بناءً على معرف الحدث. للحصول على جميع الكليات التي تنتمي إلى حدث معين ، يمكن استخدام دالة where للعثور على الأحداث الخاصة بالحدث المطلوب ، ثم استخدام حلقة foreach للحصول على جميع الكليات المرتبطة بهذه الأحداث. على سبيل المثال ، يمكن استخدام الكود التالي للحصول على جميع الكليات المرتبطة بحدث معين بناءً على معرف الحدث: $event_id = 8; // قم بتعيين هذا المتغير بالقيمة المطلوبة $events = Event::where('id', $event_id)->get(); foreach ($events as $event) { $faculties = $event->FaNa; foreach ($faculties as $faculty) { $faculty_name = $faculty->Faculty_Name; // استخدم $faculty_name كما تحتاج } } يتم استخدام دالة where للعثور على الحدث الذي يتطابق مع معرف الحدث المطلوب ، ثم يتم استخدام دالة get لاسترداد جميع الأحداث التي تتطابق مع هذا الشرط. بعد ذلك ، يتم استخدام حلقة foreach للحصول على جميع الكليات المرتبطة بكل حدث ، وتخزين اسم كل كلية في متغير faculty_name للاستخدام فيما بعد.
- 4 اجابة
-
- 1
-
-
تشمل الاستخدامات الشائعة لـ Double Precision في البرمجة: الحسابات العلمية والهندسية: يتم استخدام Double Precision بشكل شائع في التطبيقات العلمية والهندسية التي تتطلب دقة عالية في الحسابات العددية. ويشمل ذلك مجالات مثل الفيزياء والفلك والكيمياء والهندسة. الحسابات المالية: يتم استخدام Double Precision أيضًا في التطبيقات المالية التي تتطلب حسابات دقيقة لنماذج مالية معقدة والمحاكاة. نظم المعلومات الجغرافية (GIS): تستخدم تطبيقات GIS Double Precision لتخزين وتلاعب بالإحداثيات الجغرافية، التي تتطلب دقة عالية لضمان تحليل مكاني دقيق. الألعاب والرسومات: يتم استخدام Double Precision في تطبيقات الألعاب والرسومات لتمثيل وتلاعب بالإحداثيات ثلاثية الأبعاد والمتجهات بدقة عالية. بشكل عام، تعتبر Double Precision بيانات مهمة في البرمجة تسمح بإجراء حسابات عددية دقيقة في مجموعة واسعة من التطبيقات. بالنسبة لـ "syntactic sugar"، فإليك بعض الأمثلة التي توضح الشرح السابق: في لغة البرمجة Python، يمكن استخدام تقنية List Comprehension كـ "syntactic sugar" لتبسيط إنشاء قوائم. على سبيل المثال، بدلاً من كتابة الكود التالي: numbers = [1, 2, 3, 4, 5] squares = [] for num in numbers: squares.append(num ** 2) يمكن استخدام List Comprehension لتبسيط الكود إلى الشكل التالي: numbers = [1, 2, 3, 4, 5] squares = [num ** 2 for num in numbers] في لغة البرمجة JavaScript، يمكن استخدام Arrow Function كـ "syntactic sugar" لتبسيط كتابة الدوال. على سبيل المثال، بدلاً من كتابة الكود التالي: function multiply(a, b) { return a * b; } يمكن استخدام Arrow Function لتبسيط الكود إلى الشكل التالي: const multiply = (a, b) => a * b; هذه هي بعض الأمثلة البسيطة للـ "syntactic sugar" في بعض لغات البرمجة، والتي تسهل عملية الكتابة وتحسينها بشكل جمالي دون التأثير على سلوك البرنامج.
- 4 اجابة
-
- 1
-
-
بالإضافة إلى الدوال `except()` و `only()`، يمكن استخدام الدالة `intersect()` للحصول على الحقول المتوفرة في الطلب فقط وتجاهل أي حقل آخر غير موجود في الطلب. يمكن استخدام هذه الدالة لضمان عدم تواجد أي حقل غير مرغوب في الطلب. على سبيل المثال، إذا كان لديك طلب (request) يحتوي على حقول مختلفة وتريد استخدام الحقول الموجودة في الطلب فقط، يمكن استخدام الدالة `intersect()` في الطلب وتمرير الحقول المطلوبة كمصفوفة: public function store(Request $request) { $data = $request->intersect(['name', 'email']); // $data الآن يحتوي على الحقول الموجودة في الطلب فقط وهي "name" و "email" } تمامًا مثل الدالتين `except()` و `only()`، يمكن استخدام الدالة `intersect()` في أي عملية (method) في Laravel تستخدم الطلب (request). ومن المهم الإشارة إلى أن هذه الدالة لا تعمل مع طلبات ملفات (multipart/form-data)، حيث يجب استخدام `except()` أو `only()` في هذه الحالة.
- 5 اجابة
-
- 1
-