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

Hikmat Jaafer

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

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

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

كل منشورات العضو Hikmat Jaafer

  1. لايوجد دورة مجانية تعطيك شهادة معتمدة لكن يمكنك الأن التعلم من الدورات المجانية و مستقبلا عندما تتحسن أوضاعك تستطيع الحصول على شهادة معتمدة . يوجد العديد من الدورات على اليوتيوب يمكنك التعلم منها و لكن في البداية عليك أن تحدد المجال الذي تريد تعلمه لكي تستطيع تحديد الدورة المناسبة لك , و عليك الانتباه للدورة التي تختارها فهناك الكثير من الدورات على اليوتيوب منها الجيد و منها غير الجيد عليك أن تعرف من هو الشخص الذي يقدم الدورة و هل هو محترف و متخصص في مجال الدورة التي يقدمها أم لا. و أنصحك بتنفيذ مشاريع عملية و احترافية في المجال الذي تختاره و الاحتفاظ بها لتكون بمثابة شهادة خبرة لك. وهذا الرابط لمقالة توضح لك بداية الطريق في تعلم البرمجة , يمكنك قرائتها لتستطيع تحديد المجال الذي يناسبك
  2. بالتأكيد سيقومون بمساعدتك بخصوص هذا الأمر لكن عليك الصبر قليلا، هذا رابط صفحة التواصل مع مركز المساعدة هل أنت متأكد من أنك تواصلت معهم من خلال هذه الصفحة؟ و بالمناسبة في حال تريد الاشتراك في دورة أخرى تستطيع مشاهدة المسار الأول من كل دورة و من خلاله يمكنك إختيار الدورة الصحيحة التي تناسبك. و في البداية عندما تريد تعلم البرمجة يجب عليك أن تحدد هدفك و غايتك من تعلمها و ماهو المجال الذي تريد أن تعمل به لكي تستطيع تحديد مايناسبك , فمجالات البرمجة كثيرة و متعددة منها: تطوير تطبيقات الجوال تطوير مواقع الويب تطوير الألعاب حليل البيانات الذكاء الاصطناعي و غيرها الكثير , و يمكنك الاطلاع على هذا المقال الذي يعطيك رأس الخيط لتعلم البرمجة و تحديد المجال الذي تريده
  3. بالإضافة لما ذكر في الأجوبة السابقة يمكنك استخدام إحدى الطرق التالية لحماية الملف: استخدام منصات توفر عرضاً فقط دون تنزيل: يوجد منصات تتيح للمشتري الوصول إلى المحتوى الرقمي عبر متصفح دون تنزيل الملف، مثل Notion أو Google Drive عبر الروابط المحمية. استخدام تقنيات التشفير المخصص للملف: يمكنك تشفير المحتوى بحيث يتطلب الملف مفتاح تشفير خاص لفتحه لايفتح الملف إلا بمفتاح تشفير خاص ويكون المفتاح مرتبط بجهاز المشتري. هناك أدوات تقوم بتشفير كل نسخة مباعة بشكل مختلف وتمنع عرض الملف إلا على الأجهزة المسموح بها منها: Adobe Acrobat Pro مع إعدادات الأمان المتقدمة . Locklizard DRM Security Vitrium Security Microsoft Azure Information Protection (AIP) FileOpen DRM PDF Unshare إذا كنت تحتاجين فقط إلى تشفير الملفات ومنع الطباعة والنسخ، يمكن أن يكون Adobe Acrobat Pro كافيا. أما إذا كنت تحتاجين إلى حماية متقدمة مع التحكم في الأجهزة المصرح بها وإدارة حقوق رقمية دقيقة، فاختاري أدوات مثل Locklizard أو Vitrium.
  4. مرحباً ، انت تبحث عن شيء يتيح لك تنفيذ أمر بعد حدوث أمر أخر ( سلسلة عمليات متتابعة ) ، اذا كان هذا ما تقصده من ( ثم ) ، فنعم يوجد عدة طرق: في JavaScript ، يمكنك تنفيذ سلسلة من الأوامر المتتابعة باستخدام الوعود (Promises) مع الدالة .then() ، مما يتيح لك التحكم في ترتيب تنفيذ العمليات بالتتابع. إليك كيف يمكن أن يبدو الكود في حالة تريد للكائن أن: يتحرك إلى مكان معين. يتوقف. يسأل سؤالاً (أو يقوم بعملية). ينتظر استجابة. function moveToLocation() { return new Promise((resolve) => { console.log("moving..."); setTimeout(() => resolve("Done"), 1000); // هنا تأخير 1 ثانية كمثال }); } function stop() { return new Promise((resolve) => { console.log("Stop."); setTimeout(resolve, 500); // توقف لمدة 0.5 ثانية }); } function askQuestion() { return new Promise((resolve) => { console.log("Ask Question..."); setTimeout(() => resolve("Done"), 1000); }); } function waitForResponse() { return new Promise((resolve) => { console.log("Wating..."); setTimeout(() => resolve("Done"), 2000); }); } // السلسلة الكاملة moveToLocation() .then(stop) .then(askQuestion) .then(waitForResponse) .then((response) => { console.log(response); }) .catch((error) => { console.error("error :", error); }); .then() يُستخدم لتحقيق التتابع بين العمليات. Promise تتيح لك التحكم الكامل في توقيت كل عملية وانتظار العمليات السابقة قبل الانتقال إلى التي تليها. بالإضافة إلى ذلك، يمكنك أيضاً استخدام async/await كما وضح المدرب شهاب ، لجعل الكود يبدو أقرب للغة العادية بدون الحاجة إلى .then: async function performActions() { await moveToLocation(); await stop(); await askQuestion(); const response = await waitForResponse(); console.log(response); } performActions().catch((error) => console.error("error:", error));
  5. مميزات Custom Hooks: إعادة الاستخدام: إذا كنت تحتاج أن تكتب كود ما في أكثر من مكان في مشروعك فإن استخدام ال custom hook سيوفر عليك , ستكتبه مرة واحدة و تستدعيه أين ماتريد. جعل المكونات أكثر نظافة:تقسيم المنطق في Custom Hooks يجعل المكون الرئيسي بسيطًا ومركّزًا على الواجهة، ويسهّل قراءته وصيانته. تحقيق استجابة أسرع للتغييرات:Custom Hooks تجعل تطبيق التغييرات والتحديثات أسهل، حيث يمكن تعديل منطق معين في مكان واحد بدلاً من تعديله في أماكن متعددة. متى نستعملها: نريد تكرار منطق معين: مثل تفاعل مع API أو معالجة بيانات المدخلات، دون تكرار الكود في عدة مكونات. نحتاج إلى فصل المنطق المعقد عن واجهة المكون، مما يجعل المكون أكثر تنظيماً. إذا كان هناك منطق يعتمد على تحديثات الحالة أو يحتاج إلى التعامل مع دورة حياة المكون. هل يمكن تعويضها عبر إستعمال برامج لإدارة الحالة؟ custom hooks شيء مختلف عن إدارة الحالة , فهي تستخدم لتنظيم الكود أكثر و منع التكرار, أما redux تستخدم لتخزين البيانات العامة التي نحتاج للتعامل معها و إدارتها في أكثر من مكان . و بالنسبة لاستخدامها فهذا يعود لطبيعة المشروع و المنطق الخاص به , و لكنها لاتزال مفيدة و مستخدمة في ظل التحديثات حسب نوع المشروع.
  6. أهلاً أنس، الدورة ستفيدك كثيراً في طلبك من تحليل الشكاوي وتصينفها وغيره من الطلبات ، يجب عليك التركيز على الأقسام التالية: تحليل البيانات Data Analysis : يركز هذا القسم على أساسيات تحليل البيانات. ستساعدك هذه الوحدة على فهم كيفية قراءة بيانات الشكاوى، واستخراج معلومات أساسية منها مثل تواتر الشكاوى حسب الفئات. التعلم الآلي (Machine Learning): تركز الدورة على تصنيف البيانات باستخدام تقنيات مثل Naive Bayes وLogistic Regression وSVM وDecision Tree. هذه الخوارزميات مفيدة جدا لتصنيف الشكاوى بشكل تلقائي إلى فئات (مثل تصنيفات الشكاوى الموجودة لديك). يمكنك أيضا استخدام تقنيات التجميع (Clustering) لاكتشاف الأنماط المتكررة أو القضايا الناشئة بدون الحاجة إلى تصنيف مسبق. معالجة اللغة الطبيعية (Natural Language Processing): نظراً لأن الشكاوى تحتوي على نصوص غير منظمة، ستحتاج إلى معالجة اللغة الطبيعية لتحليلها. تقنيات مثل تحويل النص إلى متجهات (Embedding) واستخراج العبارات الرئيسية (Keyphrase Extraction) ستساعدك على استخراج المعلومات الأساسية من الشكاوى، مثل موضوع الشكوى، وتكرارها. التعلم العميق (Deep Learning): يحتوي هذا القسم على شبكات RNN و LSTM، وهي مفيدة لتحليل الشكاوى النصية مع مراعاة تسلسل الكلمات، مما يساعد على فهم سياق الشكوى واكتشاف الأنماط المتكررة. التعلم الزمني وتحليل السلاسل الزمنية: لاحتياجاتك المتعلقة بالأنماط الزمنية، سيساعدك هذا القسم في تحليل تواتر الشكاوى بمرور الوقت. هذه التقنيات ستكون مفيدة في التعرف على فترات تزايد الشكاوى المتعلقة بموضوع معين.
  7. يوجد العديد من لغات البرمجة و أطر العمل المستخدمة لإنشاء البرامج و التطبيقات, و يوجد أنواع مختلفة للبرامج , و هذه الأنواع: تطبيقات الجوال: هي التطبيقات التي نقوم بتنزيلها على أجهزة الموبايل الخاصة بنا و أشهر أطر العمل المستخدمة في برمجة هذا النوع من التطبيقات هي : Flutter React native تطبيقات سطح المكتب: هي التطبيقات التي تعمل على جهزة الحاسوب مثل الفوتوشوب و غيره و لبرمجته يوجد العديد من أطر العمل و لغات البرمجة المستخدمة : c# java electron تطبيقات الويب: هي المواقع التي نفتحها باستخدام المتصفح (chrom, firefox, ..) مثل موقع يوتيوب و فيسبوك مثلا, و هذا النوع يقسم لقسمين هما : front end و هذا القسم مسؤول عن الواجهات التي ستعرض البيانات و التي سيراها من خلالها و لبرمجته تحتاج لهذه التقنيات: html javascript css يمكنك تعلم إحدى أطر العمل لسهولة التطوير مثل (ٌReact js, Vue js, Angular) و القسم الثاني هو back end و هذا القسم مسؤول عن معالجة البيانات و إدارتها و تخزينها و لبرمجته نستخدم إحدى أطر العمل التالية : spring boot .net node js بالإضافة لذلك نحتاج محرك لتخزين البيانات و إدارتها و يوجد العديد لذلك منها MySql, Sql Server الأنظمة المدمجة: و هي الأنظمة التي تستخدم لبرمجة الألات مثل الغسالات و البرادات و غيرها و هنا نحتاج للغات منخفضة المستوى مثل : C C++ كما رأيت يوجد العديد من المجالات لذلك عليك تحديد ماتريد بناء على سوق العمل لديك
  8. وعليكم السلام، أولا : قم بإضافة ql-editor للعنصر الذي تعرض فيه البيانات هكذا : <p className="mb-6 text-gray-700 dark:text-gray-300 text-justify ql-editor" dangerouslySetInnerHTML={{ __html: task.description }} /> ثانيا : تأكد من أن task.description يحتوي على HTML صالح وكامل , قم بطباعته في الكونسول و تحقق من النتيجة, هل يوجد أخطاء في وسوم ال html, إذا وجدتأخطاء فالمشكلة تكون ليست بالعرض و إنما بالحفظ ثالثا :إذا استمرت يمكنك أن ضيف تنسيقات بنفسك لتعرض المحتوى كما تريد , قم بإنشاء ملف css و ضع فيه التنسيقات التالية وعدلها كيف تشاء : .ql-editor { line-height: 1.6; font-size: 1rem; } .ql-editor h1 { font-size: 2em; font-weight: bold; } .ql-editor h2 { font-size: 1.75em; font-weight: bold; } .ql-editor h3 { font-size: 1.5em; font-weight: bold; } .ql-editor ol, .ql-editor ul { padding-left: 1.5rem; list-style-position: inside; } .ql-editor li { margin-bottom: 0.5rem; } .ql-editor blockquote { border-left: 4px solid #ccc; margin: 1.5em 0; padding-left: 1em; color: #555; font-style: italic; } .ql-editor a { color: #3490dc; text-decoration: underline; } .ql-editor .ql-align-center { text-align: center; } .ql-editor .ql-align-right { text-align: right; }
  9. التعلم الصحيح يكون بالتطبيق مع المدرب, عليك أن تقوم بتطبيق جميع المشاريع مع المدرب و تفهم جميع الأوامر البرمجية التي تكتبها و لماذا تكتبها و في البداية قد تجد نفسك غير قادر على التطبيق وحدك و هذا أمر طبيعي يمكنك المتابعة مع المدرب خطوة بخطوة, ثم تحاول مرة أخرى أن تطبق وحدك, و تستمر هكذا حتى تصبح قادر على التطبيق وحدك. النسيان أمر طبيعي في البداية و جميع الطلاب غالبا يواجهونه لكن مع الاستمرار في التعلم و التدرب ستصبح خبيرا و ستزول هذه المشكلة, أنصحك بطريقة أخرى للتدرب و هي أن تقوم بإنشاء مواقع مشابهة لأكاديمية حسوب أو ليوتيوب أو فيسبوك دون أن تعتمد على الفيديوهات , افتح أحد هذه المواقع و حاول أن تقوم بتصميم موقع مشابه لتصميم هذه المواقع , و قم بهذا التدرب بعد أن تمتلك الخبرة في css و html
  10. بالنسبة لإكمال الدورة و عدم الانقطاع فأنصحك أن تحب الشيء الذي تتعلمه لكي تستمر فيه و تبدع فيه , أما إذا لم تكن تحب البرمجة و تتعلمها فقط للحصول على فرصة عمل فسيكون الأمر صعب بعض الشيء و هنا الأمر يعتمد عليك و على الإرادة التي تمتلكها. لذلك أنصحك بتحديد هدف من تعلمك للبرمجة فالهدف هو الذي يجعلك تستمر. أما بالنسبة للتعلم و الخبرة فلن تستطيع تعلم كل شيء دفعة واحدة , و إنما ستتدرج بالتعلم حتى تصبح خبيرا , لذلك أنصحك في هذه المرحلة التي أنت فيها بالمتابعة مع الدورة التي اخترتها و ستأخذ فيها كل ماتحتاجه بالنسبة للموضوع الذي تتحدث عنه الدورة, و مستقبلا عندما تتقدم و تكون قد فهمت الحاسوب و البرمجة و تعمقت فيها يمكنك التوسع أكثر . بالنسبة لوقت التعلم فهذا يعتمد عليك إذا كنت ترى أنك تستطيع بساعتين أو ثلاثة التعلم فهذا مناسب أما إذا كنت تريد التعلم بسرعة أكبر فعليك أن تزيد عدد الساعات. لكي تكسب الفهم العميق و الخبرة عليك أن تطبق كل ماتتعلمه و تفهم كل أمر في البرمجة لكي تستخدمه بالطريقة الصحيحة. حاليا أنت مازلت في البداية لذا لا تشتت نفسك فقط تابع مع المدرب و إذا واجهت أي مشكلة أو أمر لم تفهمه يمكنك السؤال أسفل الدرس و ستجد مجموعة من المدربين يجيبوك على استفسارك.
  11. و عليكم السلام , لعمل ذلك أنت ستحتاج إلى تطوير نظام كامل يحتوي على : واجهة المستخدم الأمامية (front end) واجهة المستخدم الخلفية (back end) قاعدة بيانات و للانطلاق في المشروع يجب عليك تحديد المتطلبات الأساسية للمشروع: الألعاب أو التطبيقات المستهدفة: تحديد الألعاب أو التطبيقات التي تريد شحن النقاط أو العملات لها (مثل Free Fire، PUBG، أو غيرها). واجهة برمجة تطبيقات (API) للألعاب: تأكد من أن اللعبة أو التطبيق الذي تتعامل معه يوفر API يسمح بتنفيذ عمليات الشحن عبر Player ID. وسائل الدفع: اختيار وسيلة دفع تدعم الدفع الإلكتروني مثل PayPal، Stripe، أو بوابات دفع محلية. بناء الواجهة الأمامية للموقع: قم بتصميم صفحة تحتوي على حقول إدخال مثل: Player ID مبلغ الشحن أو الرصيد اختيار اللعبة/التطبيق و هنا تحتاج إلى التقنيات التالية : html, css, javascript يمكنك أيضا استخدام أطر عمل مثل React.js أو Vue.js إذا كنت ترغب في بناء واجهة ديناميكية وسريعة. بناء الواجهة الخلفية (Back-end): هنا تكمن البرمجة الأوتوماتيكية لشحن الرصيد عبر Player ID. وعليك انشاء التالي: إعداد API خاص بموقعك لاستقبال البيانات من الواجهة الأمامية. التكامل مع واجهة اللعبة (Game API): بعد تلقي الطلب، يجب إرسال طلب إلى واجهة برمجة تطبيقات اللعبة التي تتعامل معها (مثلاً API PUBG أو Free Fire) باستخدام Player ID لتنفيذ عملية الشحن. إدارة قاعدة البيانات: استخدم قاعدة بيانات مثل MySQL أو MongoDB لتخزين معلومات عن الطلبات، مثل: Player ID حالة الشحن (مكتمل، معلق، فاشل) تفاصيل الطلبات والدفع. و ذلك للتمكن من مراجعة الطلبات لاحقا في حال أردت ذلك أو في حصول مشاكل التكامل مع بوابات الدفع: يجب إعداد تكامل مع بوابات الدفع للسماح للمستخدمين بالدفع قبل تنفيذ عملية الشحن.ثم بعد إتمام الدفع، تقوم بتأكيد المعاملة ثم تشغيل وظيفة الشحن عبر Player ID تلقائيًا.
  12. مرحباً ، إنه من الممكن تضمين ميزات مثل chat bot ولوحة تحكم لتحليل البيانات على موقع ويب. لكن فيما يتعلق بميزة تصوير الشاشة وتعقب الوقت، فإن المطور الذي تواصلت معه محق إلى حد كبير، حيث أن هذه الميزة تتطلب عادة صلاحيات نظام التشغيل التي لا تتوفر لتطبيقات الويب. عادة مثل هذه الوظائف تتطلب تطبيق سطح مكتب مستقل باستخدام تقنيات مثل Electron أو JavaFX لأنها تحتاج إلى الوصول المباشر إلى الجهاز (الشاشة والوقت). أفضل حل ممكن لتنفيذ هذه الميزات بأقل تكلفة وحماية للمعلومات: اولاً تقوم ببناء موقع ويب رئيسي للمكتب: يتضمن معلومات عن المكتب والخدمات. يحتوي على لوحة تحكم لتحليل البيانات (مثل عدد الزوار، الجلسات، نشاط المستخدم). يتضمن نظام chat bot باستخدام تقنيات مثل Dialogflow من Google أو Botpress. تشفير SSL لتأمين الموقع وضمان حماية البيانات الشخصية. ثانياً قم ببناء تطبيق سطح مكتب مستقل: استخدام Electron.js لتطوير تطبيق يمكنه الوصول إلى ميزات النظام مثل تصوير الشاشة وتعقب الوقت. هذا التطبيق يمكنه العمل جنباً إلى جنب مع الموقع، وإرسال البيانات إلى قاعدة بيانات آمنة عبر واجهة برمجية (API). ثالثاً ، يجب تحقيق التكامل بين الموقع والتطبيق: يمكن للتطبيق إرسال البيانات (مثل وقت العمل واللقطات) إلى الخادم الذي يدير الموقع، بحيث تكون لوحة التحكم على الموقع قادرة على تحليل وعرض هذه البيانات. يمكن أيضاً تخزين البيانات المتعلقة بالأداء والإنتاجية وتحليلها وعرضها على الويب بشكل آمن.
  13. قد تكون الاشعارات ديناميكية كما تقول أنت أي يستطيع مدير النظام تحديد النصوص التي سيتم إرسالها للمستخدمين عند حدوث حدث معين , و بهذه الطريقة نحتاج: واجهة يستطيع المسؤول من خلالها من إدخال نصوص الاشعارات الخاصة بالأحداث و تغييرها جدول في قاعدة البيانات لتخزين النصوص الخاصة بالاشعارات و ربطها بالأحداث و قد تكون الاشعارات ثابتة أي نصوص يتم تحديدها ضمن الكود و ربطها بالأحداث و بذلك لن نحتاج لجدول في قاعدة البيانات و لا لواجهة مستخدم لإدخال الإشعارات. و هذا الأمر يعتمد على النظام المطور و مايريده العميل. في حالة الإشعارات الفورية (realtime)، يمكن استخدام تقنيات مثل WebSocket لإرسال الإشعارات بشكل لحظي لواجهة المستخدم دون الحاجة إلى تحديث الصفحة
  14. إن أفضل طريقة للتعلم و الفهم العميق هي بالتطبيق , أي تطبيق كل شيء تتعلمه , لا تكتفي بالمشاهدة فقط فبالمشاهدة وحدها لن تتعلم شيء و ستنسى الدرس بعد ساعات من مشاهدته, و أنصحك في البداية أن تقوم بتلخيص الدرس بعد المشاهدة و التطبيق, و في حال وجود نقاط لن تفهمها ستجد أسفل كل درس مربع للكتابة كما هنا يمكنك إضافة السؤال هناك عن الشيء الذي لم تفهمه أو أي مشكلة تواجهها أثناء التطبيق. و في دورة الذكاء الصنعي ستقوم بتطبيق ما تتعلمه على مشاريع حقيقية تستخدم في سوق العمل؛ مما يؤهلك للمنافسة بقوة في هذا المجال. و لاتنسى الاحتفاظ بالأعمال التي تقوم بتطبيقها لتضعها في معرض أعمالك لاحقا, فمعرض الأعمال مهم للحصول على فرصة عمل.
  15. بالنسبة للوصول للكود البرمجي لأي برنامج فهذا الأمر يعتمد على نوع البرنامج هل و مفتوح المصدر أم مغلق المصدر , أغلب البرامج هي مغلقة المصدر أي لايمكنك الوصول للكود الخاص بها , أما إذاا كان البرنامج مفتوح المصدر فسيكون الكودالخاص به متوفر في مكان ما خاص بالمطور أو الشركة التي قامت بتطويره (على github, أو موقع الشركة , ... الخ) عليك البحث عنه لتجده أما بالنسبة لمعرفة لغة البرمجة التي تمت برمجته بها فيوجد أدوات يمكن أن تستخدمها: برامج سطح المكتب:هذه أداوات تقوم بتحليل الملفات التنفيذية يمكنك استخدامها لمعرفة اللغة. PEiD IDA Pro Ghidra الويب:يمكنك النقر بزر الماوس الأيمن في أي مكان على صفحة الويب واختيار "Inspect" أو "View Source" لرؤية الكود المصدر للصفحة. ستتمكن من رؤية لغات البرمجة التي تستخدم في الجهة الأمامية. بالنسبة للجهة الخلفية (Back-end) : يمكنك النقر بزر الماوس الأيمن في أي مكان على صفحة الويب واختيار "Inspect" ثم الانتقال إلى تبويبة "Network" لمراقبة الشبكة قد يعرض معلومات عن ملفات ومكونات الخادم. تحليل الطلبات (Requests): من خلال مراقبة الطلبات HTTP والردود يمكن اكتشاف تقنيات مثل Node.js أو Django إذا كانت موجودة في رؤوس الاستجابة (HTTP Headers).
  16. مرحباً ، هذه المشكلة تحدث ربما لعدة أسباب ، جرب الحلول التالية : قم بفتح ملف التنصيب ك Administrator وحاول تنصيبه . جرب حذف الإصدارات القديمة ل python في نظامك إن كانت موجودة. قم بتحديث .Net Framework. قم بتنفيذ Windows Update لنظامك. ربما أيضاً تتعلق ب Antivirus في نظامك ، جرب إيقافه وحاول التنصيب مرة أخرة . ربما تكون المشكلة من نسخة تنصيب python لديك ، جرب تحميلها مجدداً من الموقع الرسمي.
  17. مرحباً ، كما قال المدرب مصطفى محمود ، وأيضاً في بعض الأحيان تحتاج إلى اضافة http:// ليتم تنفيذ API ، في بعض الأحيان لا يتم تنفيذ URL مالم يتم وضع http او https ، جرب تعديل url ليكون بالشكل التالي : http://localhost:3000/testingDelete او كالتالي في حال قمت بضبته ليكون secure : https://localhost:3000/testingDelete بالتوفيق
  18. وعليكم السلام ، أهلاً محمود, المشكلة التي تواجهها تحدث بسبب أنك بعد أول مرة تظهر فيها رسالة الخطأ وتقوم بتحديث الحالة (setAlert)، عند محاولة عرض رسالة خطأ أخرى، لن يتم عرض الرسالة لأنها قد تكون نفس الرسالة السابقة، وبالتالي React قد لا يعيد عرض المكون بناءً على نفس القيم. لتجاوز هذه المشكلة يمكنك إضافة مفتاح (key) أو تغيير الهيكل قليلًا حتى تضمن أن الحالة تحدث بشكل صحيح. يمكنك تحديث الـ setAlert بحيث تعيد تعيين الرسالة عند كل محاولة تحقق من الإدخال، أو يمكنك استخدام آلية إضافية مثل ضبط مؤقت زمني لإخفاء التنبيه بعد فترة قصيرة. قم بتغيير submitFormHandler إلى التالي ، أيضاً قمت بإضافة مؤقت زمني لإخفاء التنبيه لتحسين تجربة المستخدم : const submitFormHandler = (e: FormEvent) => { e.preventDefault(); setLoading(true); setAlert({ alertText: "", type: "" }); if (first_name === "") { setAlert({ alertText: "First Name is required", type: "error" }); setLoading(false); setTimeout(() => setAlert({ alertText: "", type: "" }), 3000); return; } else if (last_name === "") { setAlert({ alertText: "Last Name is required", type: "error" }); setLoading(false); setTimeout(() => setAlert({ alertText: "", type: "" }), 3000); return; } else if (email === "") { setAlert({ alertText: "Email is required", type: "error" }); setLoading(false); setTimeout(() => setAlert({ alertText: "", type: "" }), 3000); return; } else if (password === "") { setAlert({ alertText: "Password is required", type: "error" }); setLoading(false); setTimeout(() => setAlert({ alertText: "", type: "" }), 3000); return; } setLoading(false); }; بالتوفيق
  19. و عليكم السلام مستقل يريد طريقة للتأكد من أنك أنت من قام بتطوير الأعمال التي تريد عرضها في معرض أعمالك, لذا اقترحوا عليك طريقتين و هما: إما أن تقوم برفع الملفات المصدرية لأعمالك , أي الملفات التي قمت بالعمل عليها حتى أنجزت المشروع مثل: ملفات Adobe Illustrator (.ai): إذا كنت تستخدم Illustrator . ملفات Adobe Photoshop (.psd): إذا كنت تستخدم Photoshop. أو أن تقوم بتقديم لقطات شاشة تبين فيها المشروع و أنت تعمل على تطويره على جهازك , مثلا يمكنك فتح كل مشروع على حدى في البيئة التي تعمل عليها و من ثم أخذ لقطة شاشة له . و هذه الأمور لزيادة الموثوقية بينك و بين العملاء
  20. {/* eslint-disable-next-line */} هذا السطر يجب أن لاتستخدمه إلا في حالات محددة مثل إذا كان لديك سطر من الكود فيه تحذير ولكنك تعلم أنه آمن أو ضروري، يمكنك استخدام هذه التعليمة لتعطيل التحذير للسطر المحدد. أو إذا كنت تستخدم مكتبات أو كود خارجي وتظهر تحذيرات تتعلق به. و قبل أن تستخدمه يجب أن تعرف ماهي التحذيرات التي تظهر و ماهو تأثيرها , فإن كان بالإمكان حلها فهذا أفضل من تعطيل التحذيرات. في حالتك تستطيع إنشاء واجهة تحدد فيها نوع المتغير article ثم بدلا من استخدام any استخدم النوع الذي أنشأته interface ArticleType { url: string; title: string; urlToImage: string; source: { name:string }; }
  21. في البداية يجب عليك فهم الاختلافات بين .net و .net core , وهي: NET Core إطار عمل مفتوح المصدر (Open Source) وقابل للتشغيل على أنظمة متعددة مثل Windows وLinux وmacOS. NET Framework مخصص فقط لنظام Windows ولا يمكن تشغيله على أنظمة أخرى. أداء: .NET Core أسرع من .NET Framework في كثير من الأحيان إدارة الحزم: .NET Core يعتمد بشكل أكبر على NuGet بينما .NET Framework يعتمد على ملفات المشروع الأكثر تعقيدًا.. في .NET Framework، نستخدم web.config أو app.config لملفات التكوين. في .NET Core، يتم استبدال هذه الملفات بـ appsettings.json لتكوين التطبيقات. من ناحية التعليمات البرمجية فستجد أن هناك اختلافات واضحة و سأعطيك مثال عليها: public class HomeController : Controller { public ActionResult Index() { return View(); } } البنية الأساسية للمتحكم في .net mvc public class HomeController : Controller { public IActionResult Index() { return View(); } } البنية الأساسية للمتحكم في .net core mvc لاحظ كيف أصبحنا نستخدم IActionResult بدلا من ActionResult أيضا ستجد أن هناك اختلاف في التعامل مع الاعتماديات, و التوجيه (routing) أيضا من المفضل أن تقوم بالبحث عن هيكلية مشروع net core والاطلاع عليها, أيضا في net core ستجد أن هناك مكتبات كنت تستخدمها في net framework لم تعد مدعومة. إذا كنت قد قمت بتطوير أي مشروع بسيط في net framework , فمن الأفضل أن تقوم بإنشاء مشروع .net core جديد و من ثم تقوم بتحويل أجزاء المشروع واحدا تلو الأخر للمشروع الجديد و بذلك ستظهر معك الفروقات. يمكنك استخدام visual stdio أيضا عندما تعمل على مشاريع .net core و بذلك لن تتغير عليك بيئة العمل
  22. مرحباً عمر ، يمكنك استخدام المراجع (References) أو الحقول (Fields). باستخدام المراجع (References) ، قم بإتباع الخطوات التالية : إدراج مرجع: انتقل إلى الموضع الذي تريد إدراج العبارة فيه. اذهب إلى التبويب "إدراج" (Insert) في شريط الأدوات. اضغط على "نص مرجعي" (Quick Parts) ثم اختر "حقول" (Field). اختر "عنوان" (Title) أو أي نوع آخر حسب الحاجة وأدخل العبارة (مثل: "الله أكبر"). إدراج مرجع آخر: اذهب إلى الموضع الآخر الذي تريد إدراج العبارة فيه. اذهب مرة أخرى إلى "نص مرجعي" (Quick Parts) واختر "حقل". اختر "عنوان" (Title) أو نوع الحقل نفسه الذي استخدمته في الخطوة السابقة. تحديث المراجع: عند تعديل العبارة في الموضع الأول، يمكنك تحديث كافة المراجع من خلال تحديد النص بالكامل (Ctrl + A) ثم الضغط على (F9) لتحديث جميع الحقول. وبالطريقة الاخرى ، يمكنك استخدام الحقول (Fields) كالتالي : إدراج حقل: اذهب إلى الموضع الأول الذي تريد إدراج العبارة فيه. اضغط على (Ctrl + F9) لإدراج حقل. اكتب النص بين القوسين، مثل: `{ MERGEFIELD myField }`. تكرار الحقل: اذهب إلى الموضع الثاني وأعد الخطوة السابقة. استخدم نفس الاسم في { MERGEFIELD myField }. تحديث الحقول: مثل السابق، عند تعديل النص في الموضع الأول، اضغط (Ctrl + A) ثم (F9) لتحديث جميع الحقول.
  23. يرجى تأكد من الحساب لديك وكلمة السر ، انا قمت بالتسجيل من أكثر من جهاز ولأكثر من موقع من مواقع حسوب ويعمل بشكل جيد .
  24. وعليكم السلام ، نعم يمكنك ذلك ، لا مشكلة لديك . ايضاً يمكنك التسجيل باستخدام حساب google ، ومن ثم بكل سهولة يمكنك التسجيل الدخول من أي جهاز Windows او متصفح في Mac او هاتف.
  25. أهلاً كمال , يوجد عدة مواقع ذكاء اصطناعي ، لكن أفضل ما وجدته بالفعل هو المواقع التالية : ChatGPT : يوفر لك GPT-3.5 مجاني ، كما يوفر الوصول الى 4 بشكل محدود وارفاق صور وتحليلها. Geminial Gemini Google هذه من أفضل مواقع الذكاء الاصطناعي يمكنك استخدامها
×
×
  • أضف...