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

محمد عاطف17

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

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

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

  • عدد الأيام التي تصدر بها

    61

كل منشورات العضو محمد عاطف17

  1. وعليكم السلام ورحمة الله وبركاته. لا يمكنك ربط ملفين HTML ببعضهم البعض حيث HTML لا توفر تلك الميزة حاليا حيث لا يمكنك إستخدام include كما تفعل اللغات الأخرى والتي تقوم بتضمين ملفات اخري في الملف الحالي . ولكن يمكنك توفير ذلك من خلال كود جافاسكريبت : <html> <head> <script src="jquery.js"></script> <script> $(function(){ $("#includedContent").load("mobile.html"); }); </script> </head> <body> <div id="includedContent"></div> </body> </html> لاحظ أننا هنا إستعملنا مكتبة JQuery لتنفيذ ذلك . حيث لاحظ أننا أنشأنا عنصر div وله id معين وبهذا ال id نستطيع تحميل الملف ووضع محتويات الملف به . ولكن لاحظ أن تلك الطريقة ليست جيدة أبدا حيث هكذا الموقع الخاص بك لن يكون متوافق مع قواعد التصميم المتجاوب Responsive design حيث يجب أن تقوم بتحقيق ذلك من خلال التنسيقات CSS حيث يمكنك CSS من التلاعب بالعنصر في الشاشات المختلفة حيث يمكنك جعل العنصر صغيرا مثلا في الشاشات الصغيرة وفي الشاشات الكبيرة تستطيع تكبير حجمه كما تريد ويمكنك تحقيق ذلك من خلال العديد من الطرق وأهمها طرق Media Query . ويمكنك قراءة الدروس والمقالات التالية لتستطيع تحقيق ذلك وتعرف كيف تقوم بتطبيقها لديك في الكود :
  2. االمشكلة ليست في الأكواد لديك . غالبا المشكلة لديك في قاعدة البيانات يبدوا أنك قد قمت بتنفيذ أمر البزر seed مرة أخرى ولذلك قام بوضع البيانات مرتين في قاعدة البيانات . تأكد أولا من أن قاعدة البيانات لديك المنتجات ليست مكررة لديك وإذا أردت يمكنك حذف قاعدة البيانات وإعادة إنشاءها مرة أخرى من خلال الأمر : php artisan migrate:fresh --seed ولكن هذا الأمر سيحذف جميع البيانات الحالية في قاعدة البيانات لذلك تأكد من أنك لا تحتاجها قبل تنفيذ الأمر السابق. وقد لاحظت أنك تستعمل distinct لمحاولة عدم تكرار المنتجات . ولكن لاحظ أن المنتجات ال id الخاص بها لا يتكرر بل الذي يتكرر هو الوصف وأسماء المنتجات ولكن ال ids مختلفة لهذا يتم إعتبارها منتجات مختلفة عن بعضها البعض.
  3. وعليكم السلام ورحمة الله وبركاته. يجب عليكي أولا معرفة الفرق بين مطور الواجهة الأمامية Front-End ومطور الواجهة الخلفية Back-end . حيث الواجهة الأمامية هو الجزء من موقع الويب أو التطبيق الذي يراه المستخدم، ويتضمن HTML وCSS وJavaScript، والتي يتم استخدامها لإنشاء الواجهة الرسومية للموقع أو التطبيق. أى شكل التطبيق الخارجي . أما الواجهة الخلفية أو Back-End تعني الجزء من موقع الويب أو التطبيق الذي لا يراه المستخدم، ويشمل ذلك الخوادم والبيانات والبرامج التي تعالج الطلبات وترسل ردودًا للمستخدمين. وإليكي الإجابات التالية لتتعرفي أكثر على الفرق بينهما : وبما أنكي تريدين دمج نماذج الذكاء الإصطناعي مع المواقع فهنا أنتي يجب عليكي أن تتخصي أكثر في الواجهات الخلفية والخوادم وليس الأمامية . وحيث أن دورة "تطوير واجهات المستخدم" هي مخصصة للأشخاص الذين يريدون أن يصبحوا مطورين واجهات أمامية لمواقع ثابته . فهنا لن تفيدكِ كثيرا لأنكِ فقط ستتعلمين كيفية إنشاء مواقع ثابته أى فقط هيكل الموقع وتنسيقاته ولن تستطيعين دمج تقنيات الذكاء الإصطناعي فيها. والأفضل لكي هو "دورة تطوير التطبيقات باستخدام لغة Python" حيث ستتعلمين بايثون والذي يتم إستخدامها في الذكاء الإصطناعي وهي دورة تعتبر back-end ويوجد بها مسار لكيفية دمج تقنيات الذكاء الإصطناعي مع تطبيقات ومواقع بايثون التي أنشاتيها . وستتعلمين كيفية إنشاء Chat bot وغيرها . لهذا أنصحكي بالبحث عن دورة back end وليس front end . وإذا لم تريدي تعلم بايثون لتطوير الواجهات الخلفية توجد عدة دورات أخرى هنا في الأكاديمية تؤهلكِ لذلك بعدة لغات ويمكنكِ قراءة الإجابة التالية لشرح تفاصيل الدورات هنا في الأكاديمية :
  4. وعليكم السلام ورحمة الله وبركاته. إن ال MinMaxScaler يستخدم لتغيير نطاق البيانات بحيث تكون ضمن نطاق محدد غالبا ما يكون بين 0 و 1. حيث يقوم بتحويل البيانات بحيث تكون القيمة الدنيا 0 والقيمة العليا 1. يتم ذلك باستخدام القانون التالي: Xscaled = (X − Xmin) / (Xmax − Xmin) وهو جيد عندما تكون البيانات في نطاقات مختلفة وتحتاج إلى تطبيع البيانات وتريد أن تكون جميع الميزات (features) على نفس النطاق خصوصا في خوارزميات التعلم الآلي و التي تعتمد على المسافات مثل K-Nearest Neighbors (KNN) أو الشبكات العصبية. أما ال StandardScaler فهو يستخدم لتوحيد البيانات بحيث يكون لها متوسط (mean) يساوي 0 وانحراف معياري (standard deviation) يساوي 1. ويتم ذلك باستخدام القانون التالي: Xscaled = (X − μ) / σ حيث μ هو المتوسط وσ هو الانحراف المعياري. وهو جيد عندما عندما تكون البيانات لا تتبع توزيع معين (مثل توزيع Gaussian) و تريد أن تكون البيانات موزعة بشكل طبيعي بمتوسط 0 وانحراف معياري 1 وهو مناسبة لمعظم خوارزميات التعلم الآلي مثل الانحدار الخطي (Linear Regression) و (SVM). أما ال RandomOverSampler فهو يستخدم لمعالجة مشكلة عدم التوازن في الفئات (Imbalanced Classes) في بيانات التصنيف حيث يقوم بإنشاء نسخ عشوائية من العينات في الفئة الأقل تمثيلا في البيانات و يزيد حجمها حتى تصبح متوازنة مع الفئات الأخرى. وهو جيد عندما تكون إحدى الفئات لديك في مجموعة البيانات قليلة مقارنة بالفئات الأخرى مما قد يسبب في تحيز النموذج نحو الفئة الأكثر. تلخيصا لما سبق فإن MinMaxScaler و StandardScaler نستخدمهما لتغيير نطاق أو توزيع البيانات لكنها تختلف في الطريقة التي تقوم بذلك بها وRandomOverSampler يستخدم لمعالجة مشكلة عدم التوازن في الفئات وليس لتغيير نطاق البيانات.
  5. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  6. وعليكم السلام ورحمة الله وبركاته. كل عام وأنت بخير وتقبل الله منا ومنكم صالح الأعمال. إن هي Python scripts ملفات نصية تحتوي على كود بايثون يتم تنفيذها بشكل مرتب من البداية إلى النهاية وتكون بإمتداد py. و يتم تشغيلها عن طريق مترجم بايثون (Python Interpreter) وهي تستخدم لكتابة وتطوير تطبيقات كاملة أو تنفيذ مهام أو أتمتة المهام . وهي ليست تفاعلية حيث يتم تنفيذ الكود ككل ولا يمكنك تعديله أثناء التشغيل. و يمكنك كتابة أو تعديل تلك الملفات باستخدام أي محرر نصوص أو IDE . أما Python notebooks فهي ملف أو وثيقة تفاعلية تحتوي على أجزاء من أكواد بايثون أو نصوص توضيحية (Markdown) وهي تكون بإمتداد ipynb. ويتم تشغيلها في بيئة تفاعلية مثل Jupyter Notebook أو Google Colab. يمكن تنفيذ الخلايا بشكل منفصل.و يتم إستخدمها غالبا وبكثيرة في تحليل البيانات أو الوثائق أو إذا أردت عرض كل جزء من الكود بشكل منفصل. وهي بيئة تفاعلية تمكنك بسهولة من تعديل وتنفيذ الخلايا بشكل منفصل وعدم الإلتزام بترتيب معين للكود حيث يمكنك تنفيذ خلايا وخلايا أخرى لا تقوم بتنفيذها مما يسهل عليك تنفيذ الأمور أو إنشاء وثيقة (docs) مع عرض نتائج تنفيذ الأكواد بشكل منفصل. إذا إذا أردت كتابة script ما أو تنفيذ تطبيق كبير يعمل ككل فيمكنك إستخدا Python scripts . أما إذا كنت تعمل على مهام مثل تحليل البيانات آو أردت بناء ملف عرض توضيحي أو وثيقة والكود لا يعتمد على تشغيله مرة واحد ككل فيمكنك إستخدام Python notebooks
  7. يرجى إتباع الخطوات في الصورة السابقة وحذف symlink من ال disabled functions ومن ثم حفظ التعديلات . وبعد ذلك قم بالمحاولة مرة أخرى. وأيضا يرجى محاولة الطريقة السابقة التي وضحتها لك من خلال الكود الموضوع بداخل ملف web.php أو يمكنك محاولة تنفيذ الأمر يدويا بعد تعديل التالي : ln -s /home/u778939481/domains/slategray-magpie-936259.hostingersite.com/public_html/storage/app/public /home/u778939481/domains/slategray-magpie-936259.hostingersite.com/public_html/public
  8. لاحظ في سطر رقم 3 لم تضع الفاصلة في نهاية السطر ولهذا يحدث هذا الخطأ لأن الملف أصبح لا يمثل كود JSON صحيح. لذلك يجب وضع علامة , في نهاية سطر 3 كما في جميع الأسطر الأخرى.
  9. المشكلة غير واضحة . هل قمت بتنفيذ أمر php artisan storage:link من خلال ال SSH وتم بنجاح أم لا ؟ وأيضا حينما قمت بتنفيذ الأمر يدويا هل تقصد بأن مجلد public ظهر بداخل storage أم العكس وهو storage ظهر بداخل public ؟ إذا كان مجلد public هو ما ظهر بداخل storage فيبدوا أنك قد قمت بعكس الأمر فيمكنك محاولة تبديل المسارين ومن المفترض أن يعمل معك. ولكن الافضل لك هو إستعمال SSH وتنفيذ أمر php artisan storage:link مباشرة من خلاله. ولكن إذا لم يكن لديك وصول إليه يمكنك إنشاء مسار يقوم بتنفيذ الأمر في ملف web ومن ثم حذف هذا المسار : use Illuminate\Support\Facades\Artisan; Route::get('/storage-link',function(){ Artisan::call('storage:link'); }); الآن يمكنك الذهاب إلى عنوان /storage-link بعد الدومين الخاص بك وسيتم تنفيذ الأمر تلقائيا وعمل link لل storage لديك . بعد ذلك يرجى حذف الكود السابق حتى لا تحدث مشاكل مستقبلا ولأنك لم تعد بحاجة له.
  10. هذا الأمر يعتمد على عدة أمور بما فيها احتياجاتك التي تريدها في التطبيق و خبرتك البرمجية واللغة التي تعمل عليها . أولا Electron: يتم إستخدام لغات مثل JavaScript و HTML و CSS. حيث يُستخدم لبناء تطبيقات سطح المكتب باستخدام تقنيات الويب. مميزاته : إذا كنت على علم بالفعل ب JavaScript و HTML وCSS فإن Electron سيكون سهل بالنسبة لك في تعلمه سريعا. يمكنك إستخدام الكثير من المكتبات المتاحة حيث يعمل على بيئة تطوير node مما يعطيك الكثير من الخيارات للمكاتب التي تساعدك. يمكنك بناء تطبيقات تعمل على Windows و macOS و Linux بنفس الكود. عيوبه : Electron معروف باستهلاك الذاكرة والموارد بشكل كبير لأنه يعمل بشكل رئيسي على محرك Chromium ومكتبات Node.js والعديد من الأسباب الأخرى التطبيقات يكون حجمها كبير إلى حد ما. ثانيا PyQt5: يعمل على لغة بايثون Python حيث هي مكتبة تستخدم لبناء تطبيقات سطح المكتب باستخدام واجهات المستخدم الرسومية GUI. مميزاته : إذا كنت تعرف Python فإنه يمكنك التعامل مع PyQt5 بسهولة. التطبيقات تكون أخف وزنا وحجما وأسرع في الأداء مقارنة بـ Electron. يوفر لك تحكم كبير في واجهة المستخدم والعناصر والتطبيق بشكل عام. يمكنك بناء تطبيقات تعمل على Windows و macOS و Linux أيضا. عيوبه : من الممكن أن تجدصعوبة إذا لم تكن لديك معرفة أو تعاملت مع واجهات المستخدم الرسومية قبل ذلك. لا يحتوي على الموارد والمكتبات بكثيرة كما في Electron. ولهذا الخيار يعتمد على اللغة التي لديك حاليا أو التي تفضل العمل بها . فإذا كان لديك خبرة جيدة في JavaScript و HTML و CSS و تريد بناء تطبيق يعتمد على تقنيات الويب ويشبهها وأيضا تحتاج إلى إستخدام مكتبات لمساعدتك ولا توجد لديك مشكلة في استهلاك الموارد وحجم التطبيق فحينها Electron أفضل لك بكثير. أما إذا كان لديك خبرة في Python و تريد بناء تطبيق خفيف و سريع و أيضا تحتاج إلى تحكم أكبر في واجهة المستخدم دون الحاجة لمعرفة مسبقة بالتصميم أو التنسيق و تفضل استخدام لغة برمجة واحدة وهي بايثون Python في التطبيق كاملا فحينها الأفضل لك هو PyQt5 . ويمكنك قراءة الإجابات التالية أيضا :
  11. مرحبا . نعتذر عن ذلك . من الممكن ان يتأخر ظهور قسم دوراتي قليلا بعد الدفع لهذا لا يجب القلق . يرجي التحدث مع مركز المساعدة من خلال الرابط التالي وسيتم مساعدتك وحل المشكلة ان شاء الله : https://support.academy.hsoub.com/conversations من الممكن ان يتاخر مركز المساعدة في الرد قليلا حيث يوجد حاليا ضغط عليه لهذا يرجي الانتظار قليلا لحين الرد عليك.
  12. لاحظ أن البرنامج لا يغلق من تلقاء نفسه ويقوم بإكمال الكود دائما ما لم يحدث خطأ أو يتم إيقافه من خلال دالة exit . لاحظ أنه ستواجهك مشكلة في سطر 19 لأنك تحاول إستخدام المتغير computer_result ولكن هذا المتغير تم تعريفه في جزء جملة if أى أنه إذا لم يتحقق الشرط وتم تنفيذ else فهنا ستحدث مشكلة لأن المتغير لم يتم تعريفه. ولهذا يجب إغلاق الكود في جزء else من خلال exit() هكذا : import random choose = input( "welcome to the coin guessing game!\nchoose a method to toss the coin\n1.using random.random()\n2.using random.randint()\nenter your choice (1 or 2):\n" ) if choose == "1": if random.random() >= 0.5: computer_result = "heads" else: computer_result = "tails" elif choose == "2": if random.randint(0, 1) == 0: computer_result = "heads" else: computer_result = "tails" else: print("invalid choice. Please select either 1 or 2") exit() user_choice = input("enter your guess (heads or tails):\n") if user_choice.lower() == computer_result.lower(): print("congratulations! you won") print(f"the computer's coin toss result was: {computer_result}") else: print("sorry, you lost") print(f"the computer's coin toss result was: {computer_result}")
  13. لا مشكلة يمكنك إتباع الخطوات التي ذكرها المدرب مصطفي للإتصال من الجهاز الأخر وكتابة إسم المستخدم وكلمة المرور التي أنشأتها . أما إذا أردت البدء من جديد فيمكنك إستخدام الأمر التالي لحذف المستخدم الذي أنشأته من خلال الجهاز الخاص به : sudo smbpasswd -x kemo ويمكنك تغير kemo إلى إسم المستخدم على الجهاز الأخر.
  14. وعليكم السلام ورحمة الله وبركاته. إن ال GridSearch هو أسلوب في تعلم الآلة يتم إستخدامه للبحث عن أفضل مجموعة من المعاملات (hyperparameters) لنموذج معين. فبدلا من تجربة القيم يدويا يقوم GridSearch بالبحث بشكل تلقائي عن جميع التركيبات الممكنة للمعاملات من خلال تحديد نطاقات متعددة لكل معلمة. حيث يتم تحديد مجموعة من القيم الممكنة لكل هايبربارامتر. وم ثم إنشاء شبكة من التركيبات الممكنة للهايبربارامترات المحددة. وبعد ذلك يتم تدريب النموذج لكل تركيبة من التركيبات وتقييم أدائه باستخدام تقييم معين (مثل دقة التصنيف أو خطأ التوقع). وأخيرا يتم اختيار التركيبة التي تعطي أفضل أداء للنموذج. تلخيصا لما سبق فإن بحث مصفوفة المعاملات GridSearch يستخدم لاختبار عدد من المعاملات أو إعدادات النماذج المختلفة دفعة واحدة والعثور على أفضل مجموعة معاملات تحقق أفضل أداء . ولكن تستهلك هذه الطريقة وقتا وموارد حاسوبية كبيرة خاصة إذا كانت المعاملات كثيرة جدا
  15. هذه المشكلة غالبا بسبب أنه لا يوجد مستخدم koko لديك على النظام بالفعل . حيث تتطلب smbpasswd أن يكون المستخدم موجودا لديك قبل ذلك. لهذا يجب عليك أولا التحقق من وجود المستخدم من خلال الأمر التالي : id koko إذا لم يكن المستخدم موجود يرجى تنفيذ الأمر التالي لإنشاءه : sudo useradd koko بعد ذلك إضافة باسورد لهذا المستخدم : sudo passwd koko الآن يمكنك إستخدام smbpasswd : sudo smbpasswd -a koko وكتابة كلمة مرور جديدة وتكرارها مرة أخرى . ومن ثم تنفيذ الأمر التالي : sudo systemctl restart smbd
  16. نعم بالطبع يوجد فرق بين حقوق المستأجر و الشخص المستفيد من العقار وهذا يعتمد على طبيعة العلاقة القانونية بين كل منهما وبين مالك العقار وهذا يختلف من دولة إلى أخرى حسب القانون. المستأجر : هو الشخص الذي يحصل على حق استخدام العقار لفترة محددة بموجب عقد إيجار مع المالك المباشر للعقار.وحقوقه هي : حق الاستخدام: يحق للمستأجر استخدام العقار وفق الشروط المتفق عليها في عقد الإيجار. حق الحماية من الإخلاء: لا يمكن للمالك إخلاء المستأجر قبل إنتهاء المدرة في العقد وذلك وفقا للشروط القانونية أو التي تم الإتفاق عليها في العقد. حق الصيانة: للمستأجر الحق في طلب صيانة العقار من المالك إذا كانت هناك مشاكل تؤثر على استخدامه وليس للمستأجر سبب أو دخل بها. حق التجديد: من الممكن وفي بعض الحالات يكون للمستأجر الحق في تجديد عقد الإيجار بعد انتهاء المدة المذكورة في العقد مع زيادة نسبة الإيجار المتفق عليها سنويا سواء في القانون أو في العقد. المستفيد : هو الشخص الذي يحصل على منفعة من العقار دون أن يكون بالضرورة طرف مباشر في عقد إيجار. فقد يكون المستفيد مستخدم للعقار بموجب ترتيب خاص، مثل الإعارة أو الحقوق العرفية مثل سكن الزوجة والأولاد بدلا من الزوج أو أى شخص أخر من طرف المستأجر مثل الميراث وغيرها وحقوقه هي: حق الاستخدام: للمستفيد حق استخدام العقار ولكن هذا الحق غالبا ما يكون محدود ولا يتمتع بنفس القوانين التي يتمتع بها المستأجر. لا يوجد عقد إيجار رسمي بين المستفيد ومالك العقار مما يعني أن حقوق المستفيد ليست واضحة لأنه لم يقم بالإيجار أو عقد إيجار ملزم مع المالك ولهذا باقي الحقوق تعتمد على العلاقة بين المستفيد والشخص المؤجر.
  17. دورة علوم الحاسوب توفر لك معلومات مكثفة حول مختلف مفاهيم لغات وتقنيات البرمجةو هي أساسية لزيادة معلوماتك حول مجال التقنية بشكل عام. و بانتهائك منها سيكون لديك خبرة جيّدة بدءً من الأساسيات والأفكار والمناهج النظرية مثل هندسة البرمجيات والبرمجة كائنية التوجه إلى التعامل مع أنظمة التشغيل ولغات البرمجة التي تم التطرق لها من خلال الأمثلة العملية في الدروس، وأيضاً سيكون لديك معرفة شاملة حول قواعد البيانات وطرق التعامل مع النوعين العلائقي وغير العلائقي. وفيها أيضاً مسار مخصص للدخول إلى عالم الويب والتعرّف على آلية عمل مطوري الويب في حال أحببت الانتقال إلى مجالات تطوير الويب لاحقاً لهذا إذا أردت التخصص في الواجهة الخلفية أو الأمامية فهذا المسار مهم جدا. ولذلك فتلك الدورة مهمة للتأسيس عليها وفهم أساسيات الحسوب و التعامل مع الخوادم والأنظمة وتعلم الخوارزميات وهياكل البيانات. أما بخصوص العمل فيمكنك التحدث بشكل أحسن مع مركز المساعدة سيساعدونك بخصوص هذا الامر. ويمكنك قراءة الإجابات التالية لمزيد من التفاصيل حول الدورة :
  18. يرجى مستقبلا حين رفع المشروع أن يتم رفع مجلد المشروع فقط المراد الإستفسار عنه وعدم رفع مجلدات أخرى معه وذلك حتى لا يكون حجم الملف كبيرا وأيضا حتى نستطيع مساعدتك بشكل أفضل. أولا يوجد لديك الكثير من الأخطاء في المشروع وخصوصا في التعامل مع livewire لذلك أنصحك بمذاكرة livewire أولا قبل التعامل معه حتى تستطيع بناء المشروع بشكل وهيكل جيد . حيث حاليا لا يفيدك livewire بأى شئ لأنك تستعمله بشكل خاطئ وغير صحيح. ثانيا يجب عليك حذف جميع التي تستخدم فيها @livewireScripts ويجب أن تتركها فقط في ال layout الرئيسي لأن ذلك يسبب تعارضات كثيرة لديك. أما بخصوص المشكلة فهي بسبب أنك تستخدم ملفات blade عادية وتقوم بإستدعائها من خلال @include وتريد أن تستدعي بها خصائص livewire مثل wire:click وغيرها وهذا لن يعمل حيث تعمل تلك الخصائص فقط في مكونات livewire . لذلك يجب عليك إستخدام مكون product-filter لأنه هو المكون livewire الوحيد لديك والذي توجد به الدالة setCategory . وأيضا يجب نقل ال filter و ال catergoy و ال product بداخل هذا المكون. لذلك يرجى في الملفات التالية resources\views\gallery.blade.php و resources\views\livewire\product-filter.blade.php تعديلهم ليتناسبوا مع livewire وإستدعاء المكونات بشكل صحيح. لقد قمت بإرفاق الملف لك بعد تعديلهم وإستخدام المكونات الصحيحة والآن كل شئ سيعمل معك. gallery.blade.php product-filter.blade.php
  19. وعليكم السلام ورحمة الله وبركاته. ينبغي عليك أن يكون لديك معرفة في طريقة التعامل وكيفية إستخدام إستعلامات SQL المسؤولة عن التعامل مع البيانات وإستخراجها وأيضا كيفية البحث والترشيح في تلك البيانات . وأرشح لك المقالين التاليين لتتعلم كيف تتعامل مع البيانات و إرجاعها بالطريقة التي تريدها وأيضا كيف تقوم بالبحث بداخل تلك البيانات : ولنفرض مثلا أن الجدول لديك يحتوي التالي : student_id: معرّف الطالب student_name: اسم الطالب department: التخصص فمثلا لو أردت معرفة عدد الطلاب في كل تخصص أو قسم يمكنك إستعمال الإستعلام التالي : SELECT department, COUNT(*) AS total_students FROM students GROUP BY department ORDER BY total_students DESC; لو أردت مثلا إحضار الطلاب في قسم أو تخصص معين يمكنك إستخدام الإستعلام التالي : SELECT student_name FROM students WHERE department = 'Computer'; وهكذا يمكنك بناء أى إستعلام تريده بناء على هيكل الجدول لديك وما هي التقارير التي تريد إنشاءها . أما إذا كنت تقصد عرضها أيضا في صفحة الموقع كرسومات بيانية فأنت ستحتاج مكتبة java script خاصة بعرض التقارير ويمكنك قراءة المقال التالي لأشهر المكتبات الخاصة بذلك وأنصحك بمكتبة charts.js فهي ممتازة في هذا الجزء :
  20. يفضل دائما إتباع ترتيب المسارات الموجود في الدورة حيث تم تصميم الدورات جميعها بترتيب مدروس ووضع هذا الترتيب لتوفير مسار تعليمي متدرج ومناسب للمبتدئين . وأيضا تهدف الأكاديمية إلى الشرح بشكل تصاعدي لضمان فهم الأساسيات قبل التعمق في المواضيع المتقدمة. وما تقوله صحيح فيفضل دراسة تحليل البيانات (Data Analysis) قبل البدء في مسارات تعلم الآلة (Machine Learning). حيث تحليل البيانات يشمل العديد من الأساسيات التي تعتبر ضرورية لفهم كيفية التعامل مع البيانات بشكل صحيح وهي خطوة أساسية في تعلم الآلة حيث سيجب عليك تنظيف البيانات وتجهيزها لتستطيع العمل عليها. وستلاحظ بالفعل أن المسارات الخاصة بتحليل البيانات قبل مسارات تعلم الآلة . ولكن في مسار "النماذج النصية الكبيرة LLMs" هنا لن يتم التطرق بشكل كبير في أدوات تحليل البيانات حيث سيتم توفير البيانات التي ستحتاجها في المرفقات الخاصة بالدرس ولن تتعامل معها بشكل كبير وأيضا ستتعامل مع نماذج موجودة مسبقا ولكنك ستقوم بتخصيصها بناء على الوظيفية التي تريدها منها لهذا لا مشكلة إن تم وضعها قبل مسارات تحليل البيانات. ولكن بالطبع تستطيع لك فيمكنك أولا مذاكرة المسارين "التعامل مع البيانات" و "تحليل البيانات Data Analysis" قبل البدء في مسار " "النماذج النصية الكبيرة LLMs""
  21. نعم بالفعل سيتم حفظها على الاستضافة بجوار ملف php الذي به هذا الكود . يمكنك بعد انشاء النسخة اعادة التوجيه الى اسم الملف مع المسار الموجود به وسيتم تحميل الملف على جهازك
  22. يرجى محاولة إستبدال الدالة system بالدالة exec هكذا : exec($command, $output) // بدلا من system($command, $output) إذا ظهرت مشكلة لديك يرجى إرفاقها هنا . إذا لم تظهر يرجى قراءة الإجابة التي أرفقتها لك سابقا جيدا وإتباع ما تم ذكره فيها فمن الممكن المشكلة لديك في متغيرات البيئة . وهذه هي الإجابة يرجى مراجعتها جيدا :
  23. وعليكم السلام ورحمة الله وبركاته. في جافاسكريبت الكائنات (Objects) هي عبارة عن مجموعات من الأزواج تتكون من مفتاح (key) و قيمة (value). وإن الكائنات في جافاسكريبت لا تحتفظ بترتيب محدد للخصائص ا(لمفاتيح) الخاصة بها. أى أن البيانات لا يتم تخزينها دائما بنفس الترتيب الذي تمت إضافتها به مثل المصفوفات ولا يمكن الاعتماد على ترتيب البيانات عند التكرار عبر الكائن. في المواصفات الرسمية لجافاسكريبت (ECMAScript)، لا يتم ضمان ترتيب الخصائص في الكائنات. قبل الإصدار ES6 كانت معظم المتصفحات تعرض الخصائص بنفس الترتيب الذي تمت إضافتها به لكن هذا لم يعد السلوك الحالي منذ ES6 حيث تم تحديد بعض القواعد لترتيب الخصائص لكنها لا تنطبق على جميع الحالات. حيث القواعد الحالية لترتيب الخصائص: المفاتيح الرقمية (أرقام): يتم ترتيبها تصاعديا. المفاتيح النصية (strings): يتم ترتيبها حسب الترتيب الذي تمت إضافتها به. المفاتيح من نوع Symbol: يتم ترتيبها حسب الترتيب الذي تمت إضافتها به. ولكن كما وضحت لك هذا الترتيب ليس مضمونا. لنرى المثال التالي : let obj = { "b": 2, "a": 1, 3: "three", 1: "one" }; console.log(obj); // { '1': 'one', '3': 'three', b: 2, a: 1 } console.log(Object.keys(obj)); // قد يعطي ["1", "3", "b", "a"] أو ["1", "3", "a", "b"] لاحظ كيف في الكائن السابق تم ترتيب المفاتيح التي هي أرقام أولا ترتيب تصاعدي حيث تم وضع 1 أولا و من ثم 3 . وبعد ذلك المفاتيح النصية تم ترتيبها بناء على الترتيب التي تم وضعها به . حيث تم وضع b أولا قبل a حين أنشأنا الكائن لهذا ظهرت b قبل 2 . ولكن كما وضحت لك هذا الترتيب ليس مضمون الحصول عليه. المشكلة الرئيسية لديك في دالة reduce حيث أنت تقوم بإنشاء كائن وتقوم بوضع الخصائص به وتجعل المفاتيح له هي أرقام لهذا يتم ترتيبها تصاعديا .حيث كما وضحت لك أن javascript تقوم بترتيب الكائن بالقواعد السابقة التي وضحتها وليس كما قمت أنت بوضعها . لهذا يتم ترتيب العنصر بشكل مختلف عن الذي أنشأته . والحل الأفضل لك هو إستخدام Map بدلا من ال obj في دالة reduce هكذا : function orderWeight(strng) { // "103 123 4444 99 2000" => "2000 103 123 4444 99" let arr = strng.split(" "); let weightsObject = {}; arr.map((number)=>{ let total = 0; let chars = number.split("") chars.map((char)=>{ total += +char; }) return weightsObject[number] = total; }) let sortedValues = Object.entries(weightsObject) .sort(([, a], [, b]) => a - b) .reduce((acc, [key, val]) => (acc.set(key, val)), new Map()); console.log(sortedValues); console.log(weightsObject); } orderWeight("100 180 90 56 65 74 68 86 99") وستجد أنه تم التريتب بناء على ترتيب وضع الخصائص وليس كما تفعل الكائنات.
  24. وعليكم السلام ورحمة الله وبركاته. ال Deep Learning ليس دائما أفضل من ال Machine Learning بشكل عام بل يعتمد ذلك على المشكلة التي تعمل عليها وحجم البيانات والميزات المتاحة لديك. حجم البيانات (Data Size): Deep Learning: إن التعليم العميق يتطلب كميات ضخمة وكبيرة جدا من البيانات لتدريب النماذج بفعالية. فإذا كانت لديك بيانات ضخمة ومعقدة مثل الصور أو الصوت أو حتى النصوص فإن الشبكات العصبية العميقة مثل CNN أو RNN ستكون جيدة لك. Machine Learning: إن تعلم الآلة يمكن أن يعمل بشكل جيد مع مجموعات بيانات أصغر من التعلم العميق . تعقيد المشكلة (Problem Complexity): Deep Learning: إن التعليم العميق مناسب للمشاكل المعقدة التي تحتوي على علاقات غير خطية أو أنماط معقدة مثل التعرف على الصور و معالجة اللغة الطبيعية والتعرف على الصوت و الشبكات العصبية قادرة على تعلم العلاقات المعقدة من البيانات. Machine Learning: إن تعلم الآلة يعمل بشكل جيد مع المشاكل الأبسط أو عندما تكون العلاقات بين الميزات وواضحة قليلا و إذا كانت المشكلة يمكن حلها باستخدام خوارزميات أبسط إذا فليس هناك أى حاجة لإستخدام التعلم العميق . عدد الميزات (Number of Features): Deep Learning: إن التعليم العميق يمكنه التعامل مع عدد كبير جدا من الميزات بشكل تلقائي حيث يستطيع النموذج أن يتعلم الفرق بين المميزات وأي المميزات هي الأكثر أهمية. Machine Learning : إن تعلم الآلة قد يحتاج إلى اختيار الميزات يدويا أو إستخدام هندسة المميزات ال (Feature Engineering) لتحسين الأداء خاصة إذا كان عدد الميمزات كبير لديك. الوقت والحسابات (Computation and Time): Deep Learning: إن التعليم العميق يتطلب قوة حسابية كبيرة بإستخدام ال GPUs أو ال TPU ووقت التدريب كبير وبخاصة مع البيانات الكبيرة. Machine Learning: إن تعلم الآلة عادة ما يكون أسرع في التدريب ويتطلب موارد حسابية أقل من التعلم العميق. تلخيصا لما سبق يمكنك إستخدام التعلم العميق عندما يكون لديك كمية كبيرة جدا من البيانات و عندما تكون المشكلة معقدة بشكل كبير وتتطلب تعلم أنماط غير خطية ومعقدة وأيضا إذا كانت الموارد لديك تسمح بذلك . أما عندما تكون البيانات محدودة لديك وتكون المشكلة أبسط ويمكن حلها بخوارزميات أبسط والموارد التي لديك ليست كافية فالأفضل إستخدام تعلم الآلة. ويمكنك قراءة الإجابة التالية للتوضيح أكثر :
  25. وعليكم السلام ورحمة الله وبركاته. هل يظهر البطئ وإستهلاك البطارية الكثير دائما أم في بعض الأحيان . إذا لم يكن دائما هل يمكنك توضيح متى يتم ذلك ؟ هل عندما تستخدم برنامج ما ؟ أو تقوم بتنفيذ أمر معين في ال power shell أو ال cmd ؟ يمكنك دائما فتح مدير المهام task manager لرؤية السبب الذي يؤدي إلى هذا . يمكنك فتح ال task manager من خلال الضغط بالزر الأيمن على شريط المهام : يرجى الضغط على ال CPU لرؤية البرامج التي تستهلك موارد كثيرة ويمكنك رؤية النسب لكل برنامج : يمكنك محاولة تنزيل antivirus لفصح الجهاز لديك حيث مضاد الفايروسات الخاص بالويندوز ليس جيدا في إكتشاف جميع الفيروسات. وأنصح بتنزيل برنامج malwarebytes وسيعطيك فترة مجانية يمكنك منه فحص جهازك وهو جيد في إكتشاف الفايروسات وال malware التي تسرق بياناتك أو تعمل في الخلفية.
×
×
  • أضف...