-
المساهمات
4894 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
11
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبدالباسط ابراهيم
-
هذه المشكلة تحدث عندما لا يكون لمستخدم الـ MySQL الذي تستخدمه حقوق الوصول إلى قاعدة البيانات. لحل هذه المشكلة يمكنك: إعطاء مستخدم الـ MySQL حقوق الوصول إلى قاعدة البيانات. يمكنك القيام بذلك من خلال MySQL shell: GRANT ALL ON database_name.* TO 'username'@'localhost'; حيث `database_name` هو اسم قاعدة البيانات و `username` هو مستخدم MySQL الذي تستخدمه. 2. إنشاء مستخدم جديد في MySQL مع حقوق الوصول إلى قاعدة البيانات، ثم استخدام هذا المستخدم في مشروع Laravel. يمكنك إنشاء المستخدم باستخدام: CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON database_name.* TO 'newuser'@'localhost'; ثم في مشروع Laravel، تحرير ملف `.env` وتغيير `DB_USERNAME` و `DB_PASSWORD` إلى اسم المستخدم الجديد وكلمة المرور. في بعض الإصدارات الأحدث من MySQL، يتم تقييد حقوق مستخدم الجذر (`root`) من أجل الأمان. تأكد من أن لمستخدم الجذر حقوق الوصول إلى قاعدة البيانات هذه. يمكنك منحها باستخدام الأمر نفسه في الخيار 1 أعلاه، مع استبدال `username` بـ `root`.
-
يحدث هذا الخطأ على سبيل المثال عند تشغيل الأمر `php artisan migrate` الذي يقوم بتنفيذ عمليات التهجير (migrations) في Laravel وإنشاء جداول قاعدة البيانات المحددة في الملفات الموجودة في المجلد `database/migrations`. بالنسبة لحل هذا الخطأ، يمكن مراجعة اسم الجدول المحدد في الملفات migration والتأكد مما إذا كان هناك جدول بنفس الاسم موجود في قاعدة البيانات بالفعل. وفيحدث هذا الخطأ، يمكن حذف الجدول الحالي إذا كان غير مهم أو إعادة تسمية الملف migration لتغيير اسم الجدول المحدد فيه. وبالطبع يجب تأكيد الأمر عند إنشاء جدول جديد في قاعدة البيانات للتأكد من عدم وجود جدول بنفس الاسم موجود بالفعل. ويمكن أيضاً استخدام الأمر php artisan migrate:fresh بدلاً من php artisan migrate لحذف جميع الجداول الحالية في قاعدة البيانات وإنشاء جداول جديدة من جديد، ولكن يجب الانتباه إلى أن هذا الأمر سيؤدي إلى فقد جميع البيانات الموجودة في الجداول الحالية. ويمكن أيضاً استخدام أمر php artisan migrate:refresh الذي يقوم بحذف جميع الجداول الحالية في قاعدة البيانات وإعادة إنشائها من جديد، وذلك بدلاً من استخدام `php artisan migrate:fresh` الذي يقوم بإسقاط جميع الجداول وإعادة إنشائها من جديد، مما يؤدي بالضرورة إلى فقد جميع البيانات الموجودة في الجداول الحالية. ويمكن استخدام الأمر `php artisan migrate:refresh` على سبيل المثال في حالة تعديلات على بنية الجداول أو إضافة حقول جديدة، ويمكن أن يساعد على تحديث الجداول بشكل أكثر فعالية. ويجب الانتباه إلى أن استخدام هذا الأمر سيؤدي إلى فقد جميع البيانات الموجودة في الجداول الحالية كذلك.
- 3 اجابة
-
- 1
-
يعتبر مواصفات الحاسوب جيدة لمعظم مجالات البرمجة كما يمكنك تطوير أداء الحاسوب من خلال إضافة ssd ويمكنك الإطلاع على المصادر التالية للمزيد من المعلومات
-
دالة الـ xxxValue() هي دالة متوفرة في العديد من الكائنات في لغة جافا، وتستخدم لتحويل قيمة الكائن إلى نوع بدائي معين. وهي مفيدة عندما تريد تحويل قيمة كائن إلى نوع بدائي محدد، مثل تحويل قيمة Integer إلى int أو Long إلى long. في الكود الذي قدمته، تم استخدام دالة longValue() لتحويل قيمة Integer إلى long. ولكن يمكن استخدام المطابقة الضمنية (implicit casting) بحيث يتم تحويل القيمة تلقائياً من Integer إلى long عند الحاجة، كما هو موضح في الكود الثاني. ومع ذلك، يجب الانتباه إلى أن استخدام المطابقة الضمنية ليس دائمًا ممكنًا، فبعض الأنواع البدائية لا يمكن تحويلها تلقائيًا إلى بعضها الآخر. على سبيل المثال، لا يمكن تحويل قيمة Double إلى int تلقائيًا، ويجب استخدام الدالة intValue() لتحويلها. بالنسبة للأداء، فإن استخدام المطابقة الضمنية أسرع بشكل عام من استخدام الدالة xxxValue()، حيث يعتبر تحويل القيمة تلقائيًا أسرع من استدعاء الدالة وتنفيذها. ومع ذلك، يمكن أن تكون الفرق في الأداء ضئيلًا بشكل كبير وغير ملحوظ في حالة تحويل قيمة واحدة فقط
- 3 اجابة
-
- 1
-
في المصادر الموجودة في التنعليق الأول يوجد شرح كامل للفرق بين ال بين let و var و const بشكل مفصل ولكن عند استخدام "var" في JavaScript ، يتم تعيين قيمة افتراضية للمتغير.قيمة الافتراضية التي تتم تعيينها للمتغير عند استخدام "var" هي undefined. وهذا يعني أنه إذا قمت بتعريف متغير باستخدام "var" ولم تقم بتعيين قيمة له ، فسيتم تعيين قيمة undefined له تلقائيًا. على سبيل المثال: var x; console.log(x); // سيتم طباعة undefined
-
كلا الأساليب تحقق نفس النتائج، وهي تحميل نموذج ذي صلة على النموذج الأول. في الواقع، كلاهما يقومان بتشغيل نفس الاستعلامين. الفرق الرئيسي هو أن with() يحمل النموذج ذي الصلة مسبقًا، فوريًا بعد الاستعلام الأول (all ()، first ()، أو find (x)، على سبيل المثال)؛ عند استخدام load()، تقوم بتشغيل الاستعلام الأول أولاً، ثم تحميل النموذج ذي الصلة في وقت لاحق. "التحميل الفوري" هنا يعني أننا نربط جميع النماذج ذات الصلة لمجموعة نتائج معينة باستخدام استعلامة واحدة فقط، بدلاً من الحاجة إلى تشغيل n استعلامات، حيث n هو عدد العناصر في المجموعة الأولية. يمكن استخدام with() للتحميل الفوري على سبيل المثال، إذا استخدمنا with() للتحميل الفوري: $users = User::with('comments')->get(); ... إذا كان لدينا 5 مستخدمين، يتم تشغيل الاستعلامين التاليين على الفور: select * from `users` select * from `comments` where `comments`.`user_id` in (1، 2، 3، 4، 5) ... وننتهي بمجموعة من النماذج التي تحتوي على التعليقات المرتبطة بنموذج المستخدم، لذلك يمكننا القيام بشيء مثل $users->comments->first()->body. يمكن استخداما باستخدام load()، يمكننا فصل الاستعلامين، أولاً عن طريق الحصول على النتيجة الأولية: $users = User::all(); الذي يشغل: select * from `users` وفي وقت لاحق، إذا قررنا أننا بحاجة إلى التعليقات ذات الصلة لجميع هؤلاء المستخدمين، يمكننا تحميلها في وقت لاحق: $users = $users->load('comments'); الذي يشغل الاستعلام الثاني: select * from `comments` where `comments`.`user_id` in (1، 2، 3، 4، 5) ونحن ننتهي بنفس النتيجة، مقسمة إلى خطوتين. مرة أخرى، يمكننا استدعاء $users->comments->first()->body للوصول إلى النموذج ذي الصلة لأي عنصر. لماذا استخدام load() مقابل with()؟ يمنحك load() خيار تحديد ذلك لاحقًا، بناءً على بعض الشروط الديناميكية، سواء كنت تحتاج إلى تشغيل الاستعلام الثاني أم لا. إذا كان لا شك في أنك ستحتاج إلى الوصول إلى جميع العناصر ذات الصلة، استخدم with(). البديل لكل من with() و load() هو التكرار عبر مجموعة النتائج الأولية والاستعلام عن العلاقة hasMany() لكل عنصر. هذا سيؤدي إلى تشغيل n+1 استعلامات، أو 6 في هذا المثال. التحميل الفوري، بغض النظر عما إذا تم تنفيذه مباشرة باستخدام with() أو في وقت لاحقًا باستخدام load()، يشغل 2 استعلامات فقط.
-
كما أخبرك عمر أنه يمكنك توظيف مبرمج على مصنات العمل العمل لتنفيذ ذلك أو يمكنك بناء الصفحة بنفسك بالإستعانة بالمصادر في التعليق السابق أو يمكنك استخدام المنصات التالية لتنفيذ ذلك الموقع من خلال قالب مجاني توجد خدمات ومصادر جاهزة يمكنك استخدامها لبناء صفحة شراء متطورة بدون الحاجة للكود الخاص بك. بعض الخيارات: WooCommerce: هو إضافة WordPress شعبية لبناء متجر تجاري إلكتروني. يمكنك بناء صفحات شراء وفواتير ومنتجات بسهولة. Shopify: منصة بناء المواقع التجارية الإلكترونية الشاملة. تقدم خدمة بناء صفحة شراء وتوصيل بسيطة ومتكاملة. Snipcart: خدمة بناء صفحات شراء بسيطة ومتكاملة. تقوم بإضافة المنتجات وحساب التوصيل بشكل تلقائي. BigCommerce: منصة تجارة إلكترونية تقدم إمكانية بناء صفحة شراء متكاملة ومتقدمة. تدعم خيارات عديدة للتوصيل وحساب التكاليف. هذه بعض الخيارات، تركز على اختيار المنصة الأكثر انسجامًا مع احتياجاتك وميزانيتك، ثم قم ببناء صفحة الشراء عليها.
-
بالإضافة لمكتبات الموجودة في التعليقات السابقة هناك عدة طرق بديلة لإضافة محرر نصوص في تطبيق Flutter: استخدام التبعية flitter_quill بدلا من rich_text_editor. flitter_quill هي مكتبة مبنية على قلم Quill الشهير وتوفر مزيدا من الميزات. وشرحها موجود في التعليق السابق استخدام حلول جاهزة كاملة مثل Text Editor SDK من Aample. هذه الحلول توفر الكثير من الميزات وتسهل التطبيق. استخدام الـWebView لعرض محرر النصوص المبني على الويب. هذا يسمح باستخدام محررات نصوص واسعة الانتشار مثل TinyMCE أو CKEditor. استخدام مكتبات جاهزة لمؤشرات النص. مثلما flutter_text_input_highlight و flutter_editable_text. على العموم، إذا كنت تريد فقط ميزة بسيطة مع بعض أدوات التنسيق، فإن rich_text_editor جيدة. ولكن إذا كنت تريد محرر نصوص متطور مع الكثير من الميزات، فإن من الأفضل الاستعانة بحلول جاهزة.
-
سأحاول توضيح السؤالين بشكل مبسط ويجب ملاحظة أنه هذه الأسئلة خاصة بال backend حيث أنك مبرمج واجهات مستخدم عادةً ما يتم استخدام نموذج الإرسال (form submission) لجمع المعلومات المطلوبة من المستخدمين في صفحة إضافة المنتج أو العنصر أو الخدمة. يتم عرض نموذج الإرسال في هذه الصفحة، ويحتوي على الحقول التي يجب على المستخدم ملئها، مثل العنوان والسعر والوصف وصورة المنتج أو العنصر. بعد ملء المستخدم لجميع الحقول المطلوبة، ينقر على زر "إضافة" لإرسال المعلومات إلى الخادم. يتم إرسال المعلومات باستخدام البروتوكول HTTP POST، ويتم إرسالها إلى مسار (route) معين في الخادم، الذي يتعامل معهاويقوم بمعالجة البيانات المستلمة. يتم تحليل البيانات المستلمة في الخادم باستخدام لغة البرمجة المستخدمة في تطوير الموقع، ويتم حفظ البيانات في قاعدة البيانات المستخدمة لتخزين المنتجات أو العناصر أو الخدمات، ويتم عرض النتيجة للمستخدم عن طريق صفحة العرض أو القائمة الرئيسية في الموقع. يمكن استخدام تقنيات الجافاسكريبت لتحسين تجربة المستخدم، مثل إضافة تأثيرات انتقالية أو تحميل صور المنتج أو العنصر بشكل ديناميكي دون إعادة تحميل الصفحة بالكامل. كما يمكن استخدام تقنيات التحقق من صحة البيانات (validation) للتأكد من صحة المعلومات التي تم إدخالها من قبل المستخدم، وذلك لتجنب وجود أخطاء أو بيانات غير صحيحة في قاعدة البيانات. ويمكن أيضًا استخدام تقنيات التحميل الجزئي (AJAX) لتحميل البيانات بشكل ديناميكي دون إعادة تحميل الصفحة بالكامل، مما يجعل تجربة المستخدم أكثر سلاسة وسهولة. لتطبيق هذا السيناريو برمجياً، يمكن اتباع الخطوات التالية: عند إضافة منتج إلى السلة، احفظ معلومات المستخدم في جلسة (session) أو ملف تعريف ارتباط (cookie). عند الانتقال إلى خطوة الدفع، قم بالتحقق مما إذا كان المستخدم مسجلاً أم لا. إذا لم يكن المستخدم مسجلاً، اظهر له رسالة تطلب منه التسجيل أو تسجيل الدخول لإكمال عملية الشراء. بعد تسجيل الدخول، استرجع معلومات السلة التي حفظتها سابقاً لهذا المستخدم. اطلب من المستخدم إدخال معلومات الدفع وأكمل عملية الشراء.
- 3 اجابة
-
- 1
-
بالتأكيد. هذا شرح مفصل حول الفرق بين C ++ و Python للتعلم الآلي: C++ : هي لغة برمجة عامة موجهة للأجهزة بمعنى أنها تدعم البرمجة الفعالة والتحكم المباشر في الذاكرة والأجهزة. توفر أداءً أسرع بكثير مقارنة بـ Python بسبب التشغيل المباشر والتحكم المباشر في الذاكرة. تستخدم لبرمجة الروبوتات والتطبيقات التي تتطلب أداءً عاليًا. تدعم الوراثة والتجريد والبرمجة القائمة على الكائنات. توفر كتبا مكتبات مختصة خاصة بالتعلم الآلي وعلوم البيانات مثل OpenCV و TensorFlow. برمجتها أكثر تعقيدًا وتتطلب معرفة أكبر بالذاكرة والأجهزة. Python: لغة برمجة مفسرية سهلة القراءة والكتابة والتعلم. يعتبر أبطأ من C ++ بسبب التشغيل التفسيري بدلاً من التشغيل المباشر. تستخدم عمومًا لتطوير التطبيقات التي لا تتطلب أداءً عاليًا مثل التعلم الآلي وتحليل البيانات. تدعم الوراثة والتجريد والبرمجة القائمة على الكائنات. لديها مكتبات مخصصة للتعلم الآلي مثل NumPy، SciPy، TensorFlow و Keras. برمجتها أسهل ويتطلب تعلم أقل حول تفاصيل الأجهزة والذاكرة. هناك العديد من الدورات التدريبية لتعلم الذكاء الاصطناعي، بعضها باللغة العربية وبعضها باللغة الإنجليزية عليك فقط البحث Machine Learning Nanodegree أكبر كورس عربي لتعليم الألة والذكاء الأصطناعي لتأهيل مليون عالم بيانات عربي
-
نعم، هناك العديد من منصات إدارة المحتوى التعليمي (CMS) التي توفر المتطلبات التي ذكرتها. ومن بين هذه المنصات: Moodle: هو نظام إدارة التعلم المفتوح المصدر الذي يتيح إنشاء صفحات تعليمية ومواد تعليمية متنوعة، بما في ذلك الصور والفيديو والصوت والأكواد الملونة والمزيد. كما يتضمن Moodle أدوات لإدارة الدورات والمناقشات والتعليقات والمهام والتقييمات. Blackboard: هو نظام إدارة التعلم المستخدم على نطاق واسع في المؤسسات التعليمية، ويتيح إنشاء صفحات تعليمية ومواد تعليمية متنوعة، بما في ذلك الصور والفيديو والصوت والأكواد الملونة والمزيد. كما يتضمن Blackboard أدوات لإدارة الدورات والمناقشات والتعليقات والمهام والتقييمات والاختبارات. Schoology: هي منصة إدارة التعلم السحابية التي تتيح إنشاء صفحات تعليمية ومواد تعليمية متنوعة، بالإضافة إلى إدارة الدورات والمناقشات والتعليقات والمهام والتقييمات والاختبارات. وتتميز Schoology بتصميمها البسيط والمستخدم الودي، بالإضافة إلى توفير أدوات للتعاون بين الطلاب والمعلمين وأولياء الأمور. Edmodo: هي منصة إدارة التعلم السحابية التي تتيح إنشاء صفحات تعليمية ومواد تعليمية متنوعة، بالإضافة إلى إدارة الدورات والمناقشات والتعليقات والمهام والتقييمات.وتتميز Edmodo بتوفير مجموعات دراسية وتبادل المواد التعليمية والتفاعل بين الطلاب والمعلمين، وتوفير ميزات للتعاون والتواصل بين الأعضاء. يجب الإشارة إلى أن هذه المنصات تختلف في التصميم والوظائف والتكنولوجيا المستخدمة، وينبغي اختيار المنصة التي تناسب الاحتياجات التعليمية الخاصة بك والتي تتوافق مع المتطلبات التقنية. كما يجب النظر في التكاليف والتوافق مع أنظمة التعلم الإلكتروني المستخدمة في المؤسسة التعليمية.
-
بالإضافة للشرح السابق ها هو مثال عملي على توضيح دالة WINDOW: نفترض أن لدينا جدول employees مع الأعمدة التالية: id, name, department, salary بحيث يوجد عدة موظفين في كل قسم لحساب ترتيب الموظفين حسب الراتب داخل كل قسم، يمكننا استخدام الاستعلام التالي: SELECT id, name, department, salary , DENSE_RANK() OVER (PARTITION BY department ORDER BY salary DESC) dr FROM employees الناتج سيكون مثل هذا: id - name - department - salary - dr 1 - John - Marketing - 5000 - 1 2 - Jane - Marketing - 4000 - 2 3 - Tom - Marketing - 3000 - 3 4 - Sue - IT - 6000 - 1 5 - Kent - IT - 5000 - 2 6 - Ben - HR - 7000 - 1 7 - Amy - HR - 6000 - 2 حيث تم ترتيب الموظفين حسب الراتب داخل كل قسم (Marketing, IT, HR) فـJohn لديه أعلى راتب في قسمه Marketing فحصل على الترتيب 1 والخ.. كما يفضل الإطلاع على المصادر التالية
- 5 اجابة
-
- 1
-
بشكل أوضح في هذا المثال، يتم استخدام حلقتين داخل بعضهما البعض لإنشاء مربع مكون من 8 صفوف و8 أعمدة. الحلقة الخارجية تتكرر 8 مرات، وتحتوي الحلقة الداخلية أيضًا على 8 تكرارات. في كل مرة يتم تكرار الحلقة الداخلية، يتم طباعة رقم الصف الحالي. وبما أن الحلقة الخارجية تتكرر 8 مرات، فسيتم طباعة الأرقام من 0 إلى 7 في كل صف. وهذا يعني أنه في كل صف، سيتم طباعة الأرقام من 0 إلى 7. يمكن تصور هذا المثال بأنه يبدأ في الزاوية العلوية اليسرى من المربع، ويتم طباعة الأرقام في كل صف من اليسار إلى اليمين، ثم يتم الانتقال إلى الصف التالي وتكرار العملية حتى النهاية. مثلا، في الصف الأول، سيتم طباعة الأعداد من 0 إلى 7، وفي الصف الثاني، سيتم طباعة الأعداد من 0 إلى 7 مرة أخرى، وهكذا حتى الصف الثامن. وبالتالي، سيتم طباعة مربع مكون من 8 صفوف و8 أعمدة، وكل صف يحتوي على الأرقام من 0 إلى 7.
- 6 اجابة
-
- 1
-
ليس بالضرورة ان تحفظ كل التفاصيل التي يتضمنها الفيديوهات والدروس للحصول على شهادة من اكاديمية حسوب. فالأكاديمية لا تمنح الشهادات اعتمادا على الحفظ والتذكر لكل التفاصيل، بل يتم التركيز على فهم المفاهيم الأساسية والقدرة على تطبيقها. ما تحتاجه فقط للحصول على الشهادة هو: فهم المحتوى العام للدورة ومعرفة المفاهيم والأفكار الرئيسية. معرفة كيفية تطبيق هذه المفاهيم وتوظيفها في الممارسة العملية. القدرة على حل أسئلة الاختبار النهائي للدورة التي تشمل على أسئلة حول المفاهيم وأسئلة تطبيقية وفي بعض الأحيان أسئلة حول حل مشكلة معينة. مثال عملي على عدم حاجة الحفظ الدقيق للتفاصيل: مثلا في درس عن نظام التشغيل ويندوز. قد يتضمن الدرس تفاصيل عن الإصدارات المختلفة من ويندوز ومميزات كل إصدار. ولكن ليس من الضروري حفظ اسم كل إصدار وتاريخ إصداره وكل التفاصيل، المطلوب فقط: معرفة أن هناك إصدارات مختلفة لويندوز. الفهم العام للفرق بين الإصدارات الرئيسية. معرفة بعض المميزات الجديدة في الإصدارات الأحدث.
- 4 اجابة
-
- 1
-
بشكل عام فإن الدورة تغطي المحتوى الأساسي لـ CSS والذي يعتبر ضروريا لمن يبدأ في تعلمه. تشمل مفاهيم أساسية مثل الأختصارات والألوان والخلفيات والهياكل والفهارس وغيرها. لكن طبعا هناك الكثير من المعلومات المتقدمة تطبيقات CSS المتقدمة، ونمط Floats وFlexbox وGrid، وأشكال CSS ، وCSS Animations و Transitions وغيرها لم تجدها في المسار أساسيات css ولكن يتم شرح المفاهيم المتقدمة السابقة في صورة تطبيقات عملية مما يجعل التعلم من هذه الدورة بالطريقة الأفضل هو نهلم الأساسيات ثم تعلم المفاهيم المتقدمة من خلال التطبيق العملي في هذه المسارات بناء واجهة مستخدم تشبه موقع YouTube صفحة قريبًا الانطلاق صفحة منتج صفحة شركة صفحة تطبيق جوال صفحة شخصية تطوير متجر إلكتروني تطوير موقع شركة تطوير لوحة تحكم بناء مواقع ثابتة باستخدم Hugo تطوير موقع أخباري
-
xampp يخزن المشاريع في مسار محدد على القرص الصلب لجهازك. عادةً ما يكون المسار إما: C:\xampp\htdocs إذا تم حذف جميع الملفات الموجودة داخل هذا المسار عند حذف xampp .لحسن الحظ ، إذا لم تقم بتفريغ سلة المهملات ، فمن الممكن استعادة ملفاتك إذا كنت تحتفظ بنسخ احتياطية منها. كل ما عليك فعله هو: فتح سلة المهملات وتحديد الملفات الخاصة بـ xampp أو المشاريع. ضغط الزر الأيمن على الملف واختر استعادة. إذا لم يعد بإمكانك استعادة الملفات ، فمن المهم في المستقبل إنشاء نسخ احتياطية من المشاريع على أماكن خارجية مثل: - سحابة شخصية (Dropbox، Google Drive، إلخ) - نظام تحكم في النسخ الاحتياطية (Github، Gitlab) - قرص خارجي و يمكنك استخدام برامج استعادة الملفات المحذوفة لاسترداد المشاريع الخاصة بك من جهازك. من الأدوات الشائعة التي يمكنك استخدامها: Recuva : هو برنامج مجاني وفعال لاسترداد الملفات المحذوفة. فهو يقوم بتحليل القرص عن بعد للبحث عن جميع الملفات التي لم يتم إعادة تخصيص المساحات الخالية بعد. DriveScanner: يستعيد الملفات بمجرد حذفها من سلة المهملات وحتى استبدالها. لكنه قد يكون أقل فعالية بعد أسبوع من الحذف. تأكد فقط من عدم تثبيت أي برامج جديدة أو تحديث النظام قبل البدء في عملية استرداد البيانات. قم بتثبيت أحد برامج استعادة البيانات على وحدة تخزين محمولة وقم بتشغيله مباشرةً لزيادة فرص العثور على الملفات.
-
قبل التحويل إلى Vite يجب أن تعرف أن Vite يركز على توفير تجربة أسرع وأكثر إنتاجية عند بناء تطبيقات JavaScript غنية. إذا كنت تطور تطبيقًا من نوع صفحة واحدة (SPA)، بما في ذلك تلك المطورة باستخدام أدوات مثل Inertia ، فإن Vite سيكون الخيار الأمثل. يعمل Vite بشكل جيد أيضًا مع تطبيقات تقليدية تم تجميعها من جانب الخادم مع JavaScript ، بما في ذلك تلك التي تستخدم Livewire. ومع ذلك ، فإنه يفتقد بعض الميزات التي يدعمها Laravel Mix ، مثل القدرة على نسخ الأصول العشوائية إلى البناء التي لا ترتبط مباشرة في تطبيق JavaScript الخاص بك. وبالإضافة للمصادر السابقة يفضل الإطلاع على المصادر التالية توثيق laravel الرسمي توثيق vite الرسمي
-
موقع مكالمات فيديو أمثلة: Zoom و Skype و Microsoft Teams التقنيات المستخدمة في الواجهة الأمامية والخلفية: الجهة الأمامية: React / NextJs Redux / Redux Toolkits Apollo-Client / REST API - تنفيذ طلبات باستخدام GraphQL أو REST react motion / spring للرسوم المتحركة WebRTC - للاتصال في الوقت الفعلي socket.io-client - للبيانات في الوقت الفعلي اختياري: اختبارات وحدة ، اختبارات النهاية إلى النهاية ، اختبارات التكامل مع مكتبة اختبار React ، Cypress الجهة الخلفية: مصادقة مع Passportjs تفويض باستخدام JWT MongoDB مع Mongoose ، Postgres مع Prisma أو MySQL Apollo-Server / REST API - تنفيذ طلبات باستخدام GraphQL أو REST API socket.io - للبيانات في الوقت الفعلي اختياري: اختبار الوحدة باستخدام Jest تطبيق الدردشة realtime أمثلة: Slack و Whatsapp و Telegram و Discord الجهة الأمامية: React / NextJs Redux / Redux Toolkits Apollo-Client / REST API socket.io-client emoji-mart الجهة الخلفية: مصادقة باستخدام Passport js تفويض باستخدام JWT MongoDB مع Mongoose ، Postgres مع Prisma أو MySQL Apollo-Server/REST API socket.io وبالطبع يفضل بناء متجر إلكتروني حيث يتم استخدام مهارات وتقنيات عديدة مثل الجهة الأمامية: D3.js stripe مع use-shopping-cart للدفع socket.io-client الجهة الخلفية: MongoDB مع Mongoose ، Postgres مع Prisma أو MySQL Cloudinary API - لتحميل الصور stripe socket.io
- 3 اجابة
-
- 1
-
بعد تعلم Machine Learning، يمكنك العمل في العديد من المجالات التي تستخدم هذه التقنية، مثل: تحليل البيانات و تطوير البرمجيات و التعلم الآلي و مجالات أخرى مثل التعرف على الصوت والصورة والتحكم على المحتوى والترجمة الآلية والكشف عن الاحتيال والأمن السيبراني والطب الحيوي وغيرها. بالنسبة للعمل على موقع العمل الحر أو عن بعد، فإن العديد من الشركات والمؤسسات والمواقع تبحث عن خبراء في مجال Machine Learning للعمل عن بعد أو على أساس عقود مؤقتة أو دائمة. ومن خلال الإنترنت يمكنك العثور على العديد من الفرص الوظيفية والمشاريع المستقلة. هناك العديد من المواقع التي تعرض فرص عمل في مجال Machine Learning، ومن بينها: LinkedIn: يمكنك استخدام LinkedIn للبحث عن فرص عمل في مجال Machine Learning، ويمكنك أيضًا إنشاء ملف شخصي قوي لنفسك وتوسيع شبكتك المهنية. Indeed: يوفر موقع Indeed فرص عمل في مجال Machine Learning وتحليل البيانات والذكاء الاصطناعي والمزيد. Glassdoor: يعرض موقع Glassdoor الوظائف في مجال Machine Learning ويتيح لك قراءة تقييمات الشركات وتجارب الموظفين السابقين. Kaggle Jobs: يعرض موقع Kaggle Jobs الوظائف في مجال التعلم الآلي والبيانات ويوفرأيضًا فرصًا للمشاركة في مسابقات وتحديات Machine Learning. وبالطبع يوجد الكثير من مواقع العمل الحر مثل lsjrg أما بالنسبة للمسابقات التي تقدمها الشركات في مجال Machine Learning، هناك العديد من مسابقات Machine Learning التي تقدمها الشركات والمنظمات: Kaggle: أكبر منصة لمسابقات المعرفة الآلية والتعلم الآلي. يتم تنظيم العديد من المسابقات على مدار السنة حول مشاكل مختلفة. KDD Cup: مسابقة كبيرة تنظمها مؤتمر KDD للمعرفة الاستكشافية والتعلم الآلي. Analytics Vidhya: شركة تنظم العديد من مسابقات التعلم الآلي المجانية وذات الجوائز. DrivenData: منصة تقدم العديد من التحديات لحل مشاكل العالم الحقيقي. Microsoft: تقدم مسابقة للطلاب في مجالات الذكاء الاصطناعي والتعلم الآلي. Anthropic: شركة تنظم العديد من مسابقات التعلم العميق على مدار السنة. AI For Good: مسابقة تركز على استخدام الذكاء الاصطناعي لخدمة الإنسانية. هذه بعض المسابقات الرئيسية في مجال التعلم الآلي والتي تقدمها الشركات، وهناك الكثير أيضًا حسب اهتمامك وتخصصك.
- 7 اجابة
-
- 1
-
من المصادر الممكنة للحصول على مجموعات بيانات لتدريب الشبكات العصبونية بالإضافة للمصادر في التعليق السابق: Kaggle: يعد Kaggle واحدًا من أشهر المواقع المتخصصة في تنظيم المسابقات الخاصة بالتعلم الآلي وعلوم البيانات. يقدم الموقع أيضًا مجموعات البيانات المختلفة للتنزيل. UCI Machine Learning Repository: يوفر مستودع UCI العديد من مجموعات البيانات المتاحة للتنزيل مجانًا. تم جمع معظم هذه المجموعات من مختلف المواقع على الويب وهي مناسبة للتدريب والاختبار للعديدة من النماذج العصبونية. Google Dataset Search: يوفر محرك بحث Google Dataset Search مجموعات البيانات المتاحة على الويب من مصادر مختلفة. يمكن استخدامه للعثور على مجموعات البيانات المناسبة لتدريب الشبكات العصبونية. OpenML: يعد OpenML منصة علم البيانات المفتوحة المصدر. يتضمن الموقع مجموعات بيانات واسعة النطاق متاحة للتنزيل والتدريب. GitHub: يمكن العثور على مجموعات البيانات المتاحة للتدريب على الشبكات العصبونية على GitHub، والتي يتم تحميلها ومشاركتها من قبل المجتمع العلمي. ImageNet: يعد ImageNet أحد أكبر مجموعات البيانات المتاحة للتدريب على شبكات العصبونات العميقة. يحتوي على أكثر من 14 مليون صورة في مجموعات فئات مختلفة. CIFAR-10 و CIFAR-100: تعد CIFAR-10 و CIFAR-100 مجموعات بيانات مشهورة لتدريب شبكات العصبونات العميقة في مجال الرؤية الحاسوبية. تحتوي CIFAR-10 على 60،000 صورة ملونة مقسمة إلى 10 فئات، في حين تحتوي CIFAR-100 على 100 فئة. MNIST: تعد MNIST واحدة من أشهر مجموعات البيانات المستخدمة لتدريب شبكات العصبونات العميقة في مجال التعرف على الأرقام المكتوبة باليد. تتكون من 60،000 صورة للتدريب و 10،000 صورة للاختبار. COCO: تعد COCO منصة للكشف عن الصور وتتضمن مجموعة واسعة من مجموعات الصور المتاحة للتدريب على شبكات العصبونات العميقة في مجال الكشف عن الصور. TensorFlow Datasets: توفر TensorFlow Datasets مجموعات بيانات جاهزة للاستخدام مع TensorFlow. تحتوي المجموعات على مجموعة واسعة من المجالات، بما في ذلك الرؤية الحاسوبية والتعلم الآلي. هذه بعض المصادر التي يمكن استخدامها للحصول على مجموعات بيانات لتدريب شبكات العصبونات العمينية، ومن المهم الاختيار المناسب لمجموعة البيانات بناءً على الهدف المطلوب ونوع النموذج الذي يتم تدريبه.
- 2 اجابة
-
- 1
-
اللغة البرمجية المستخدمة ليست العامل الوحيد الذي يحدد سرعة البرنامج. بالإضافة إلى لغة البرمجة، يتأثر أداء البرنامج بعدة عوامل مثل بالطبع، يمكننا التعمق أكثر في المعلومات المتعلقة بسرعة البرامج وكيفية تحسينها. عندما يتعلق الأمر بسرعة البرامج، يمكن تقسيم العوامل المؤثرة على الأداء إلى عدة فئات، من بينها: لغة البرمجة: تختلف لغات البرمجة في كفاءتها في تنفيذ البرامج، وذلك يعود إلى العديد من العوامل، مثل طريقة تحويل الشفرة إلى لغة آلة (compiling)، وكفاءة إدارة الذاكرة، والتعامل مع المعالج والنظام المضيف. ومن بين اللغات البرمجية التي تعتبر سريعة في التنفيذ: C++, C، Rust، و Assembly. هياكل البيانات: يتأثر أداء البرنامج بشكل كبير بالهياكل البيانية المستخدمة لتخزين البيانات. يجب استخدام هياكل بيانات فعالة ومناسبة للغرض المطلوب، مثل القوائم المتسلسلة، الأشجار، الجداول الهاش، وأيضًا قواعد البيانات ذات الأداء العالي. تنفيذ الخوارزميات: يجب استخدام الخوارزميات المناسبة للغرض المطلوب والتأكد من تحسينها بشكل صحيح. يجب أن تكون الخوارزميات فعالة ومناسبة للبيانات المعالجة وتحقيق النتائج المطلوبة. كتابة الشفرة المصدرية: يجب كتابة شفرة مصدرية جيدة ومنظمة وبدون أخطاء. يجب تجنب استخدام الحلول المؤقتة والتكرارات والأخطاء الشائعة في البرمجة والتأكد من استخدام المتغيرات والدوال بشكل صحيح. يجب أيضًا تجنب استخدام المكتبات والإضافات غير الضرورية. الأجهزة المستخدمة: تؤثر الأجهزة المستخدمة في سرعة البرنامج. يجب تحسين أداء الأجهزة والتأكد من تحديثها وإصلاح الأخطاء وإزالة البرامج الضارة. العمليات المتزامنة: تؤثر العمليات المتزامنة في سرعة البرامج. يجب تجنب تشغيلعمليات متزامنة غير ضرورية وتنظيمها بشكل صحيح، وكذلك تحسين طريقة تخزين البيانات على القرص الصلب. تقليل الخطأ: يجب تجنب الأخطاء في البرنامج، وتحسين جودة الشفرة المصدرية، واستخدام أدوات التحليل والاختبار لتحديد الأخطاء وتصحيحها. وبشكل عام، يمكن تحسين سرعة البرنامج من خلال تحديد العوامل التي تؤثر على الأداء وتحسينها بشكل صحيح. يجب النظر في جميع العوامل المذكورة أعلاه وتحسينها بشكل مناسب لتحقيق أداء أفضل للبرنامج.
- 5 اجابة
-
- 1
-
يمكن استخدام عدة طرق لرفع تطبيق ويب على سيرفر داخلي للشركة، وفيما يلي سأشرح أبرز الطرق بالتفصيل: البريد الإلكتروني: يمكن للمبرمج إرسال ملفات التطبيق عبر البريد الإلكتروني إلى شخص مسؤول داخل الشركة. يتم تضمين جميع الملفات والمستندات اللازمة لتشغيل التطبيق في رسالة البريد الإلكتروني. يجب إرسال رسالة بريد إلكتروني توضح الخطوات اللازمة لتثبيت التطبيق على السيرفر الداخلي للشركة. خدمات السحابة: يمكن استخدام خدمات السحابة المشهورة مثل Dropbox أو Google Drive لرفع ملفات التطبيق. يتم تحميل جميع الملفات والمستندات اللازمة لتشغيل التطبيق على حساب اشتراك المبرمج في الخدمة. يتم مشاركة رابط التنزيل مع شخص مسؤول داخل الشركة لتنزيل جميع الملفات والمستندات المطلوبة لتثبيت التطبيق على السيرفر الداخلي للشركة. File Transfer Protocol (FTP): يمكن استخدام برامج إدارة الملفات عن بعد مثل FTP لرفع الملفات على السيرفر الداخلي للشركة. يتم توفير بيانات اعتماد (credentials) للمبرمج للوصول إلى السيرفر ورفع الملفات. يجب التأكد من استخدام بروتوكول أمني مثل SFTP (Secure File Transfer Protocol) لتشفير الاتصال وحماية البيانات من الاختراق. Remote Desktop Connection: يمكن استخدام Remote Desktop Connection للاتصال بجهاز الكمبيوتر الداخلي للشركة من جهاز الكمبيوتر الخاص بالمبرمج. يتم توفير بيانات اعتماد (credentials) للمبرمج للوصول إلى جهاز الكمبيوتر الداخلي للشركة وتثبيت التطبيق مباشرة على السيرفر. Virtual Private Network (VPN): يمكن تثبيت VPN داخلي للشركة للسماح للمبرمج بالوصول إلى السيرفر الداخلي للشركة من مكان بعيد. يتم توفير بيانات اعتماد (credentials) للمبرمج للوصل إلى الشبكة الداخلية للشركة عبر VPN وتثبيت التطبيق مباشرة على السيرفر. يجب التأكد من تطبيق بروتوكول أمني مثل SSL (Secure Sockets Layer) أو TLS (Transport Layer Security) لتشفير الاتصال وحماية البيانات من الاختراق.
-
بجانب الطريقة الموجودة في التعليق السابق هذه هي الخطوات لتصدير عدة مقاطع في نفس الوقت في برنامج Wondershare Filmora X: افتح مشروعك في برنامج Filmora X. تأكد من أن جميع المقاطع التي تريد تصديرها مضافة إلى شريط الوقت. اضغط على زر "Export" في الأعلى. سيفتح نافذة التصدير. تحت "وضع التصدير"، اختر "Multiple" من القائمة المنسدلة. اختر تنسيق الملف الناتج (مثل MP4 أو WEBM أو MOV)، وأدخل اسم سابق لتصدير الملف. سيضيف البرنامج أرقامًا تلقائيًا بعد السابق لكل مقطع تصدره. حدد مكان تخزين الملفات التي سيتم حفظ المقاطع فيها. تحت "المقاطع للتصدير"، اختر "Selected" إذا أردت تصدير مقاطع محددة فقط. ثم اضغط على Ctrl وانقر فوق المقاطع التي تريد تصديرها في شريط الوقت. إذا أردت تصدير جميع المقاطع في شريط الوقت، اختر "All" تحت "المقاطع للتصدير". ضبط أي إعدادات تصدير أخرى كحجم الفيديو/ الدقة، معدل البت، الخ. اضغط على زر "Export" في الأسفل. سيقوم Filmora X بتصدير كل مقطع بشكل فردي إلى المكان الذي حددته، مع إضافة رقم تسلسلي إلى اسم السابق الذي حددته. هذه هي الخطوات لتصدير عدة مقاطع في وقت واحد من مشروع في برنامج Filmora X.
-
Web Storage (local storage/session storage): عادةً، يتم وضع JWT في local storage للمتصفح وهذا يعمل بشكل جيد لمعظم الحالات. عند تسجيل دخول المستخدم باستخدام اسم المستخدم وكلمة المرور، يتضمن جسم الاستجابة access_token JWT. بعد ذلك، تحتاج إلى التعامل مع هذا الاستجابة في كود الجانب العميل. يمكن حفظ هذا التوكن في localStorage أو sessionStorage. كلاًّ من localStorage وsessionStorage يمتدان من Storage. الفرق الوحيد بينهما هو احتفاظ البيانات: localStorage - تحتفظ البيانات حتى يتم حذفها بشكل صريح. يتم حفظ التغييرات التي تم إجراؤها وتتوفر لجميع الزيارات الحالية والمستقبلية للموقع. sessionStorage - يتم حفظ التغييرات التي تم إجراؤها وتتوفر للصفحة الحالية، بالإضافة إلى الزيارات المستقبلية للموقع على نفس النافذة. بمجرد إغلاق النافذة، يتم حذف التخزين. عيوب Web Storage: على عكس الكوكيز، يكون الlocal storage محصورًا في نطاق محدد ولا يمكن الوصول إلى بياناته من أي نطاق آخر بما في ذلك النطاقات الفرعية. يمكن الوصول إلىWeb Storage عبر JavaScript في نفس النطاق، لذلك قد يكون عرضة لهجمات cross-site scripting (XSS). يجب على المطور التأكد من إرسال التوكن دائمًا عبر HTTPS وليس HTTP. استخدام الكوكيز: يمكن أيضًا استخدام الكوكيز لتخزين التوكن. يختلف الطريقة الدقيقة لضبط الكوكيز اعتمادًا على لغة الجانب العميل التي تستخدمها. هناك خيارات مختلفة للتحكم في مدة حياة الكوكيز: يمكن تدمير الكوكيز بعد إغلاق المتصفح (كوكيز الجلسة). يمكن تنفيذ فحص على الجانب الخادم (وعادة ما يتم ذلك من قبل إطار العمل الذي يتم استخدامه)، ويمكن تنفيذ انتهاء الصلاحية أو انتهاء الصلاحية المتزايدة. يمكن أن يكون هناك صلاحية انتهاء للكوكيز (لا تتم تدميرها بعد إغلاق المتصفح) يمكن قراءة الكوكيز من قبل كود JavaScript والكود الخادم أو فقط الكود الخادم إذا تم تعيين العلم httpOnly. عيوب الكوكيز: يبلغ الحد الأقصى لحجم الكوكيز 4 كيلو بايت فقط، لذلك قد يكون هذا مشكلة إذا كان هناك العديد من المطالبات المرفقة بالتوكن. قد يكون الكوكيز عرضة للهجمات عبر الطلبات المزيدة (CSRF أو XSRF). يحدث هذا النوع من الهجمات عندما يتسبب موقع ويب خبيث في إجراء عمل غير مرغوب فيه على موقع موثوق به حيث يكون المستخدم مسجل الدخول حاليًا. وهذا يستغل كيفية تعامل المتصفح مع الكوكيز. يجعل استخدام حماية CSRF لإطار تطبيق الويب الخاص بك الكوكيز خيارًا آمنًا لتخزين التوكن. يمكن أيضًا الحد من CSRF بشكل جزئي من خلال فحص رأس HTTP Referer و Origin. يمكن أن يكون استخدام الكوكيز صعبًا في حالة تطبيق يتطلب الوصول عبر النطاقات المختلفة. تتضمن خصائص الكوكيز (Domain/Path) التي يمكن تعديلها للسماح لك بتحديد مكان يسمح باستخدام الكوكيز.
-
هذا هو مثال للتحقق من اسم المستخدم وكلمة المرور في PHP وعرض الأخطاء بلون أحمر: if ($_SERVER['REQUEST_METHOD'] == 'POST') { $username = $_POST['username']; $password = $_POST['password']; $conn = new mysqli('host', 'user', 'password', 'database'); $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = $conn->query($sql); if ($result->num_rows == 1) { // Login success header('Location: /home.php'); } else { // Login failed echo '<p style="color:red">Invalid username or password!</p>'; } } هذا الكود يقوم بما يلي: يتحقق من طريقة الإرسال POST يأخذ قيم اسم المستخدم وكلمة المرور المرسلة من النموذج يقوم بإجراء استعلام SQL للتحقق من وجود سجل مطابق في قاعدة البيانات إذا وجد سجل واحد مطابق، يتم توجيه المستخدم إلى صفحة المنزل إذا لم يعثر على سجلات مطابقة، يعرض رسالة خطأ باللون الأحمر هذا سيضمن عرض رسالة الخطأ بلون أحمر إذا كان اسم المستخدم أو كلمة المرور غير صحيحة. يمكنك تطبيق هذا الكود على صفحتك تسجيل الدخول للتحقق من بيانات المستخدم وإظهار الأخطاء بهذه الطريقة.
- 2 اجابة
-
- 1