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

محمد عاطف17

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

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

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

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

    61

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

  1. التوثيق الرسمي يكفي . يمكنك كتابة إسم المكتبة أو إطار العمل في جوجل وبعدها كلمة docs وسيظهر لك الموقع الرسمي للتوثيق. فمثلا إذا أردت توثيق nextjs الرسمي يمكنك كتابة : nextjs docs وأول نتيجة ستظهر لك ستكون التوثيق الرسمي .
  2. وعليكم السلام ورحمة الله وبركاته. إسمح لي أن أصحح لك بعض الأمور . أولا لا يوجد ما يسمي تغير المفاهيم أو إختلافها في الإصدارات الجديدة سواء من المكتبات أو أطر العمل. إن المفاهيم واحدة ولا يتم الإختلاف فيها . بل الإختلاف يكون في خصائص المكتبات وأطر العمل حيث يتم إضافة خصائص جديدة أو حذف خصائص قديمة لم تعد مهمة . أو تعديل خصائص كانت موجودة وطريقة إستخدامها إختلفت قليلا . لهذا إذا كنت قد فهمت الأساسيات والمفاهيم الرئيسية فسيكفي فقط الإطلاع على الوثائق الرسمية لتعرف كيف تتعامل مع التحديثات. ثانيا لا يوجد مبرمج جيد حينما يتم إصدار تحديث جديد لمكتبة أو إطار عمل أن يذهب ليشترك في دورة ليعرف كيف يتعامل معها . بل ينبغي عليه معرفة كيفية تعلمها أو قراءة التغيرات التي حدثت من خلال الوثائق الرسمية أو غيرها . ولكن الإشتراك في دورة جديدة لتبدا من البداية فهذا ليس بالأمر الجيد. ثالثا عند نزول إصدار حديث لا يتم إهماله أو عدم العمل به . بل توجد مشاريع كثيرة تعمل على إصدارات قديمة جدا منذ أكثر من 5 سنوات . وستجد وظائف في شركات كبيرة أو حتي مواقع عمل حر تعمل على مشاريع بإصدارات قديمة . لهذا فإن ما تعلمته تستطيع العمل به . أما بخصوص الدورات هنا فهي أولا يتم تحديثها بإستمرار ولكن مع التطور السريع للإصدارات والمكتبات من الصعب دائما مواكبة تلك التطورات ولكن دائما ما يتم تحديث الدروس إذا كانت الإصدارات الأحدثت قد إختلفت تماما عن مثيلتها السابقة في الدورة . ويمكنك متابعة التحديثات التي تمت وستجد أنه بالفعل قد تم تحديث عدة مسارات بأحدث الإصدار في شهر 12 السابق : https://academy.hsoub.com/release-notes/ وأيضا لن تحتاج إلى شراء أى دورة أخرى فهنا من مميزات الأكاديمية أنه سيكون لك وصول مدى الحياة للدورة وأى تحديث عليها تستطيع مشاهدة دون دفع أى رسوم إضافة أو الإشتراك من جديد. وأخيرا ينبغي عليك التركيز على فهم الأساسيات و التطبيق مع المدرب بالإصدارات الموجودة في الدروس وبعد الإنتهاء من المسار يمكنك المحاولة مع نفسك في كيفية تحديث أو إنشاء المشروع من البداية بالإصدارات الأحدث وحينها ستحقق أقصي إستفادة وتزداد خبرتك في التعامل مع المكتبات ومع الإصدارات بعد تحديثها.
  3. وعليكم السلام ورحمة الله وبركاته. LabelEncoder: نقوم بإستخدامه لتحويل القيم الفئوية (Categorical) إلى قيم رقمية. فلو لدينا فئات غير مرتبة مثل "أحمر" و "أخضر" و "أزرق" ونحتاج إلى تحويلها إلى قيم عددية لنستيطع تحليلها يساعدنا الLabelEncoder في ذلك. مثال : from sklearn.preprocessing import LabelEncoder labels = ["أحمر"، "أخضر"، "أزرق","أحمر] le = LabelEncoder() encoded_labels = le.fit_transform(labels) print(encoded_labels) # Output: [0, 1, 2, 0] وإليك التوثيق الرسمي : https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html OrdinalEncoder: أيضا نستخدمه لتحويل الفئات النصية إلى أرقام، ولكن الفئات هنا تكون مرتبة أى لها ترتيب معين عكس الLabelEncoder. حيث يجب هنا تحديد الترتيب يدويا . مثال from sklearn.preprocessing import OrdinalEncoder encoder = OrdinalEncoder() encoder.fit([['heigh',3], ['medium',2], ['low',1]]) encoder.transform([['medium'],['heigh'],['low']) وإليك التوثيق الرسمي له : https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OrdinalEncoder.html
  4. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. ويرجى رفع الملف الصحيح حيث هذا الملف خاطئ وليس هو الذي يحوي ملفات المشروع.
  5. وعليكم السلام ورحمة الله وبركاته. يرجى فتح قائمة ويندوز وكتابة Photos . عندما يظهر برنامج Photos يرجى الضغط بالزر الأيمن عليه وإختيار App settings : بعد ذلك يرجى الذهاب إلى أسفل والبحث عن Reset . يرجى الضغط على Reset : ويمكنك محاولة فتح الصور مرة أخرى الآن
  6. أولا توجد ثلاثة وظائف رئيسية في البرمجة : تطوير الواجهات الأمامية (Front end) تطوير الواجهات الخلفية (back end) تطوير الويب (Full Stack) لذلك هل تريد إنشاء موقع ويب للواجهات الأمامية أم إنشاءه بأكمله كواجهة أمامية وخلفية ؟ يمكنك قراءة الإجابة التالية للتوضيح الفرق بين تطوير الواجهات الأمامية و تطوير الواجهات الخلفية : نأتي الآن لسؤالك حول أفضل لغة : لا يوجد في البرمجة ما يسمى الأفضل في البرمجة، بل لكل تقنية استخدامها الأمثل لها ويمكنك قراءة الإجابة التالية للتوضيح بين الفرق بين اللغات : وإليك الإجابة التالية لتوضيح الدورات المتاحة في الأكاديمية و ما الذي ستوفره لك بعد الإنتهاء منها :
  7. لا توجد صلاحية للدورة وتنتهي . بل من مميزات أكاديمية حسوب أن بمجرد شراءك للدورة سيكون لك الوصول إليها مدى الحياة وذلك يشمل أى تحديثات مستقبلية تتم عليها ويمكنك الوصول ومتابعتها في أى وقت. يمكنك متابعة الدروس بالترتيب حيث تم تقسيم الدورة إلى مسارات وكل مسار يوجد به عدة وحدات و الوحدة تتكون من مجموعة من الدروس .
  8. المشكلة لديك في المكون Header وذلك لأن المكون Header لا يتم تحديثه تلقائيا بعد تسجيل الدخول وذلك لأن التغييرات في localStorage لا تؤدي إلى إعادة تصيير (render) تلقائية للمكونات في. ولحل هذه المشكلة من الممكن إستخدام الأحداث. لقد لاحظت أنك في مكون login أطلقت حدث userUpdated . لهذا يجب علينا تعديل المكون Header ليستمع إلى هذا الحدث : وإليك المكون Header بعد تعديله والإستماع إلى الحدث : "use client" import Image from "next/image"; import Link from "next/link" import {useState,useEffect} from "react" export default function Header() { const [user, setUser] = useState({}); useEffect(() => { const handleUserUpdate = () => { setUser(JSON.parse(localStorage.getItem("user_data"))); }; setUser(JSON.parse(localStorage.getItem("user_data"))); window.addEventListener("userUpdated", handleUserUpdate); // الاستماع للحدث return () => { window.removeEventListener("userUpdated", handleUserUpdate); // تنظيف الحدث }; }, []); const handleLogout = ()=>{ localStorage.removeItem("user_data"); setUser({}); } return ( <> <div className="bg-white shadow-md sticky top-0 z-10"> <div className="max-w-7xl mx-auto px-6 py-4 flex items-center justify-between"> {/* Logo Section */} <div className="flex items-center space-x-3"> <Link href="/"> <Image src="/next.svg" width={100} height={100} alt="Logo" className="h-8 w-auto" /> </Link> </div> {/* Navigation Links */} <div className="hidden md:flex space-x-8"> <Link href="/" className="text-gray-700 hover:text-blue-600 transition duration-300">Home</Link> <Link href="/movies" className="text-gray-700 hover:text-blue-600 transition duration-300">Movies</Link> <Link href="/movies/create" className="text-gray-700 hover:text-blue-600 transition duration-300">Create Movie</Link> <Link href="/" className="text-gray-700 hover:text-blue-600 transition duration-300">About</Link> </div> {/* Login and Submit Buttons */} <div className="flex space-x-4"> {user?.name ? ( <div className="flex items-center justify-between gap-4"> <Link href="/user" className="text-sm font-medium text-gray-700" > {user.name} </Link> <button className="px-6 py-2 text-sm font-semibold text-white bg-red-600 rounded-lg hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 transition duration-300" onClick={handleLogout} > Logout </button> </div> ) : ( <> <Link href="/login"> <button className="px-6 py-2 text-sm font-semibold text-gray-700 border border-gray-300 rounded-lg hover:bg-gray-100 transition duration-300"> Login </button> </Link> <Link href="/register"> <button className="px-6 py-2 text-sm font-semibold text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition duration-300"> Sign Up </button> </Link> </> )} </div> </div> </div> </> ); }
  9. وعليكم السلام ورحمة الله وبركاته. لنشرح أولا الدالتين : select_dtypes(): نستخدم تلك الدالة لإختيار الأعمدة بناء على نوع البيانات سواء كانت object أو float أو int أو غيرها. المثال التالي سيقوم بتحديد الأعمدة التي من نوع object فقط: data_train.select_dtypes(include=['object']) apply(): نستخدمها لتطبيق دالة معينة على كل عمود أو صف في DataFrame . المثال التالي سيطبق fit_transform من label_encoder على كل عمود : data_train.apply(label_encoder.fit_transform) الآن لنفرق بين الكودين الذي أرفقتهم : الطريقة الأولى وهي استخدام for loop مع if : مميزاتها: الكود واضح ومن ينظر إليها يفهم سريعا ما هو المطلوب تنفيذه من هذا الكود. يمكنك إضافة أي شروط أو عمليات إضافية داخل الـ for loop بسهولة. عيوبها: استخدام for loop يعتبر أبطأ بالنسبة إلى الدوال المدمجة مثل apply() أو select_dtypes حيث تلك الدوال تم إنشاءها لتكون أسرع وأفضل من الأكواد المجردة . الطريقة الثانية وهي استخدام select_dtypes و apply : مميزاتها: كما وضحت لك أن الدوال select_dtypes و apply تم إنشاءها لتكوم أفضل وأسرع وهكذا نستطيع التعامل مع البيانات بشكل أسرع من الـ for loop. الكود أقصر من الكود الأول. عيوبها: تلك الطريقة ليست سهلة في القراءة وليست أوضح كما في الطريقة الأولى . إذا كنت بحاجة إلى إضافة شروط كثيرة فهذه الطريقة ليست الأفضل في ذلك. لهذا إذا كنت تبحث عن الأداء الأسرع والأفضل فالطريقة الثانية أفضل بكثير .
  10. وعليكم السلام روحمة الله وبركاته. النافذة التي تقوم بفتحها هي خاصة بقائمة البرامج الموجودة لديك على الويندوز وتريد حذفها . لذلك عند الضغط على أى من البرامج فيها فإنك تحاول حذفه ولذلك تظهر لك رسالة إما الحذف أو الإصلاح repair . لذلك يرجى إعادة تشغيل الجهاز من جديد و البحث على سطر المكتب عن برنام SQL Server Management Studio إذا لم يظهر يمكنك فتح قائمة الويندوز و البحث عن SQL Server Management Studio وسيظهر لك البرنامج يرجى الضغط عليه لفتحه.
  11. يفضل رفعها على github . حيث كلما إنتهيت من مسار يفضل رفع المشاريع الخاصة به وذلك حتي لا تضيع الأكواد أو يتم مسحها بالخطأ وحتي لا تتراكم لديك المشاريع. ولكن يتم مشاركتها عندما تقوم بالتقدم للإختبار . حيث حينما تقوم بمحادثة مركز المساعدة للتقدم للإختبار سيتم الطلب منك بتوفير تلك المشاريع وحينها ستقوم بإرسال روابط تلك المشاريع على github.
  12. وعليكم السلام ورحمة الله وبركاته. يرجي الضغط على الإعدادات settings في الشريط الجانبي . بعد ذلك قم بإغلاق الإنترنت : ثم قم بحفظ التعديلات.
  13. يرجى المتابعة أسفل الدرس حيث قمت بوضع سؤالك وسيتم مساعدتك إن شاء الله.
  14. هذا لأنك تحاول الذهاب إلى مسار خاطئ . حيث لاحظ أنك في مسار c:users/pc و الملف في مسار c:users/pc/desktop . لهذا يجب الذهاب إلى مسار desktop من خلال تنفيذ الأمر التالي : cd Desktop وبعد ذلك يمكنك تشغيل الملف . وإذا أردت معرفة المجلدات والملفات في المسار الحالي يمكنك كتابة أمر dir وإذا كان هذا السؤال متعلق بإحدي دروس الدورات يرجى وضع السؤال أسفل الدرس حيث ستجد أسفل الدرس صندوق للتعليقات كما هنا . حيث هنا هو قسم الأسئلة العامة ولا نجيب على أسئلة الدورات هنا.
  15. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  16. وعليكم السلام ورحمة الله وبركاته. ستجدين أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  17. نعم يستطيع النموذج التنبؤ بقيم العمود efs والعمود efs_time (الوقت حتى الحدث) في نفس الوقت، وذلك لأنه مصمم خصيصًا لتحليل البقاء (Survival Analysis) والتعامل مع البيانات التي تحتوي على معلومات عن الوقت وحتى حدوث حدث معين. حيث يتميز النموذج بالتنبؤ المتعدد (Multi-Task Learning) حيث يمكنه أن يتنبأ بمعدل البقاء ووقت الحدث في نفس الوقت.
  18. وعليكم السلام ورحمة الله وبركاته. إن نموذج DeepHit هو نموذج تعلم عميق حيث يستخدم في مجال التنبؤ بتوقيت الأحداث النجاة أو الفشل (Survival Analysis) في الحالات التي تعتمد على بيانات معقدة ومتغيرة بمرور الوقت وهذا بالنسبة للسياق الطبي . ويعتمد هذا النموذج بشكل أساسي على الشبكات العصبية العميقة ويُستخدم عادةً في تحليل البيانات الزمنية و تحليل بيانات النجاة مثل التنبؤ بمعدل النجاة للمرضى .
  19. وعليكم السلام ورحمة الله وبركاته. السبب هو في أن بعض الأعمدة تحتوي على قيم ناقصة (NaN) أو بيانات مفقودة . حيث أن الأعمدة التي تحتوي على عدد أقل من28800 هذا يعني أن تلك الأعمدة تحوي قيم فارغة. وإذا قمت بالذهاب إلى التوثيق الرسمي سيخبرك أن الدالة info تقوم بإرجاع القيم non-null : https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.info.html#:~:text=dtype and columns%2C-,non-null values,-and memory usage
  20. الحل الأفضل هو أخذ نسخة احتياطية من البيانات الفارغة أولا . ومن ثم تحويلها إلى قيمة ليست فارغة بعد ذلك يمكننا إستخدام LabelEncoder . وأخيرا نقوم بإعادة البيانات الفارغة من النسخة الإحتياطية ووضعها في البيانات التي لدينا : import pandas as pd import numpy as np from sklearn.preprocessing import LabelEncoder data = pd.DataFrame({ 'A': ['yes', 'yes', np.nan, 'no', 'no'], 'B': [np.nan, 'no', 'no', 'no', 'no'], 'C': ['no', 'yes', 'yes', np.nan, 'yes'] }) le = LabelEncoder() for column in data.columns: nan_values = data[column].isna() temp_data = data[column].fillna('data_temp') data[column] = le.fit_transform(temp_data) data[column][nan_values] = np.nan print(data)
  21. توجد حاليا إضافة Pylance وهي الأفضل حاليا و الأحدث من pylint لذلك يرجى تحميلها : بعد ذلك يرجى الضغط على CTRL + SHIFT + P وكتابة settings وإختيار التالي : بعد ذلك يرجى تفعيل pylance والخصائص التي توفرها من خلال كتابة الإعدادات التالية : "python.languageServer": "Pylance", "python.analysis.indexing": true, "python.analysis.autoImportCompletions": true, بعد ذلك قم بحفظ الملف وإعادة تشغيل vs code . ولكن من الممكن أن لا توفر جميع الخصائص التي تحتاجها ولذلك توجد إضافة أخرى تسمي Django و django-intellisense يرجى تحميلهم وسيوفران لك snippet وهي إختصارات فمثلا إذا أردت إستيراد path ستظهر لك هكذا : ولكن بالطبع من الصعب أن تجد إضافات قوية مثل TypeScript حيث تعتمد الإضافات على حجم المجتمع ولذلك تجد إضافات js و ts من أقوي الإضافات الموجودة .
  22. يوجد حاليا ضغط على مركز المساعدة لهذا من الممكن ان يتأخر الرد قليلا. لذلك يرجي الانتظار وسيتم الرد عليك في اقرب وقت ان شاء الله.
  23. نعم بالطبع يوجد وظائف لمدير المنتجات أو مدير المشاريع في العمل الحر . حيث هناك الكثير من الأشخاص الذين يريدون تعين مديرين أو مستشارين لإدارة المنتجات ليقوموا بالإستشاره منهم أو يعطوهم مهام تطوير المنتج وتعين المبرمجين ومتابعة سير عملية التطوير . وإذا كنت تسأل عن دورة إدارة تطوير المنتجات هنا في الأكاديمية يمكنك قراءة الإجابة التالية :
  24. نعمل لا مشكلة المهم هو أنك قد قمت بإنشاءها مع المدرب حتي لو من وقت مضي . ويجب رفعها على github وسيتوجب عليك إرسال المستودع الخاص بتلك المشاريع على github حينما تريد التقدم للإختبار . ويمكنك قراءة الإجابة التالية لكيفية رفع المشاريع على github :
  25. بخصوص ذلك الأمر يرجى التحدث إلى مركز المساعدة في الأكاديمية من خلال الرابط التالي : https://support.academy.hsoub.com/conversations حيث ألأمور المالية والمتعلقة بالدورات يتم من خلال مركز المساعدة
×
×
  • أضف...