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

Khaled Osama3

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

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

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

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

    1

آخر يوم ربح فيه Khaled Osama3 هو فبراير 8 2024

Khaled Osama3 حاصل على أكثر محتوى إعجابًا!

المعلومات الشخصية

آخر الزوار

3208 زيارة للملف الشخصي

إنجازات Khaled Osama3

عضو نشيط

عضو نشيط (3/3)

970

السمعة بالموقع

12

إجابات الأسئلة

  1. هذا صحيح لان العنصر اللي واخد position: absolute يتحرك بالنسبة للأب، لازم الأب يكون عنده position: relative (أو أي قيمة غير static مثل relative, او absolute, أو fixed). و اذا كان الأب ليس position: relative أو أي قيمة غير static → العنصر الـ absolute هيتعامل مع أقرب عنصر أب لديه position غير static، و اذا لم يجد اي اب سوف يتحرك بالنسبة للـ صفحة نفسها (body/html). و لنأخذ مثال: <div class="parent"> <div class="child">أنا مطلق - absolute</div> </div> // CSS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. .parent { width: 200px; height: 200px; background: lightblue; position: relative; /* 👈 مهم */ } .child { position: absolute; top: 20px; left: 20px; background: coral; } هنا الـ .child هيتحدد مكانه 20px من فوق و 20px من اليسار بالنسبة للأب .parent.
  2. تم الرد علي السؤال اسفل الدرس من فضلك اطرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  3. ال position :يغير مكان العنصر داخل الصفحة. اما ال translate :يغير شكل ومكان العرض من غير ما يأثر على مكانه المنطقي. ولكن من فضلك ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  4. من الافضل لك ان ترفع علي ال GitHub الكود بعد ما تكتب مع المدرب لكي يبقى المستودع Repo فيه مجهودك وتعليمك. و من الممكن ان تقوم بعمل الكود مع المدرب و المراجعة من المرفقات للتأكيد. بالتوفيق
  5. مرحبا طارق عادة ما تكون هذة المشكلة بسبب إن النظام مش لاقي فولدر اسمه desktop في المسار اللي إنت واقف فيه حاليًا. تأكد إنك على مسار المستخدم الصحيح وستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. تحياتي لك
  6. لا، ليس شرطا أن تتعلم React أو تتعمق في تقنيات الواجهة الأمامية (Frontend) إذا كان هدفك الأساسي هو العمل كمطور Backend باستخدام JavaScript (مثل Node.js). لكن يبقي تعلم الـ Frontend مفيد فمعرفة أساسيات الواجهة الأمامية مفيدة جدًا حتى لمطور الباك إند، وذلك للأسباب التالية: لفهم كيف يتواصل الـ Frontend مع السيرفر (API Request/Response) لتسهيل التعاون مع فريق الواجهة الأمامية في المشاريع المشتركة لتتمكن من اختبار ما تبنيه بسهولة أو إنشاء واجهات بسيطة لتجربة الـ API نصيحتي لك بما أنك ذكرت أن الوقت ليس مشكلة بالنسبة لك، ركز أولًا على تعلم الباك إند باستخدام Node.js (هذا هو الأساس في مسارك). ثم تعلم فقط أساسيات الواجهة الأمامية، مثل: HTML (بنية الصفحات) CSS (تصميم مبسط) JavaScript الأساسي (فهم كيفية التعامل مع الـ API) لا تحتاج لتعلم React بشكل عميق، إلا إذا كنت ترغب في التوسع مستقبلا أو العمل كمطور Full Stack.
  7. استخدام GPU أو TPU لا يعني بالضرورة إن النموذج هيتدرب في ثواني , لان المدة الفعلية للتدريب بتعتمد على عوامل كتيرة, مثل: حجم البيانات. حجم وتعقيد النموذج نفسه (مثل عدد ال parameters). نوع الـ optimizer و الـ learning rate. و غيرها من العوامل. و دعنا نري مثال توضيحي: لو عندك نموذج بسيط بيتدرب على بيانات صغيرة، فلن يأخذ الكثير من الوقت. اما لو بتدرب Transformer ضخم (زي BERT مثلاً) على ملايين البيانات، التدريب ممكن ياخد ساعات أو أيام. بالتوفيق.
  8. DDoS هي اختصار لـ Distributed Denial of Service، وهي يعني الهجوم الموزع لقطع الخدمة او بمعني اخر ان يقوم بارسال عدد ضخم(غير طبيعي او غير متوقع) من الطلبات الي الموقع (Request) وبالتالي الموقع غير مهيئ انه يتعامل مع هذا العدد من الطلبات وهذا يوثر علي الموقع ويجعله بطئ جدا او يتوقف عن العمل تماما وفيها يستخدم المهاجم شبكة من الأجهزة المصابة بفيروس (تسمى Botnet)، والتي تعمل كـ جيش من الأجهزة المخترقة لإرسال الطلبات إلى الهدف. يمكن أن تستهدف مواقع ويب، سيرفرات ألعاب، تطبيقات، أو أي خدمة متصلة بالإنترنت. ولكن ملحوظه مهمه ان هجمات الDDOS لا تقوم بسرقه البيانات ولكنها توثر علي سرعه الموقع
  9. ليس بالضروره معرفه ال IP انك معرض للاختراق فال IP هو رقم فريد يستخدم لتحديد جهازك على الإنترنت أو الشبكة المحلية، مثل عنوان المنزل الذي يحدد موقعه. ولا يمكن اختراقك بسبب انه يوجد Firewall او حاجز امني في الراوتر وايضا بعض مزودي الخدمه يعطونك IP متغير مع كل اعاده تشغيل للراوتر ولكن لحمايه نفسك من الاختراق استخدم برنامج مكافحه الفيروسات ولا تضغط على روابط مشبوهة مثل http تاكد انه https لحمايه بياناتك
  10. أنت تتحدث عن عملية "Minification and Bundling"، وهي جزء من عملية التحسين التي تُستخدم لتقليل حجم ملفات الموقع وجعلها جاهزة للنشر على بيئة الإنتاج. الأدوات التي تقوم بهذه العملية تقوم بجمع كل الأكواد (CSS/JavaScript) معًا، ثم تضغطها (Minify) لجعلها أصغر حجمًا وأصعب قراءة (أكواد "معجوقة") وقد تكلمت عليها بالاعلي وهي Laravel Mix فهو أداة مبنية على Webpack، تستخدم مع Laravel لتسهيل عملية تجميع وضغط الملفات. بعد إعداد الملفات في مشروع Laravel، يمكنك تشغيل الأمر: npm run prod يدمج كل ملفات CSS/JavaScript في ملفات واحدة ويجري تصغير (Minification) للأكواد، مما يجعلها مضغوطة جدا وغير قابلة للتعديل يدويا وينتج الملفات الجاهزة داخل مجلد public/js و public/css.
  11. بطء الموقع يمكن أن يكون نتيجة عدة أسباب رئيسية، مثل حجم الصور الكبيرة، أو كثرة ملفات CSS وJavaScript، أو استعلامات قاعدة البيانات غير المحسنة او امكانيات الاستضافه وهذه اهم الحلول لتحسين سرعة الموقع 1. تقليل حجم الصور وتحسينها الصور الكبيرة هي من أكبر أسباب بطء الموقع، لأنها تستهلك وقتًا أطول للتحميل. وحلها هو ضغط الصور قبل رفعها: استخدم مواقع مثل TinyPNG لضغط الصور مع الحفاظ على جودتها واستبدل صيغ الصور التقليدية (مثل PNG وJPEG) بصيغة WebP التي توفر جودة عالية مع حجم أقل. 2. دمج وتقليل ملفات CSS و JavaScript كل ملف CSS أو JavaScript يتم تحميله في طلب منفصل (HTTP Request)، ما يزيد من وقت تحميل الصفحة. وحلها هو دمج الملفات: اجمع جميع ملفات CSS في ملف واحد، وجميع ملفات JavaScript في ملف واحد لتقليل عدد الطلبات. تصغير الملفات (Minify): استخدم Laravel Mix لتقليل حجم الملفات وضغطها.مثال: npm run prod يقوم هذا الأمر بتجميع وتصغير الملفات الجاهزة للإنتاج. 3. استخدام التحميل المؤجل للصور (Lazy Loading) التحميل المؤجل يعني عدم تحميل الصور غير المرئية على الشاشة حتى يحتاج المستخدم إليها. هذا يُسرّع تحميل الصفحة. وتطبيقه ان تضيف الخاصية loading="lazy" إلى الصور في HTML: <img src="image.jpg" alt="صورة" loading="lazy"> بهذا يتم تحميل الصور عند التمرير نحوها فقط. 4. تحسين الاستعلامات مع قاعدة البيانات الاستعلامات الكبيرة أو غير المحسنة تستهلك وقتا أطول، خاصة إذا كنت تجلب بيانات لا تحتاجها. لذلك يجب جلب البيانات المطلوبة فقط لذلك لا تستخدم $users = User::all(); بدلا من ذلك، استخدم: $users = User::select('name', 'email')->get(); ومن الممكن استخدام التخزين المؤقت (Cache) لتجنب إعادة تنفيذ الاستعلام في كل مرة، $users = Cache::remember('users', 60, function () { return User::all(); }); ومن المهم جدا استخدام Eager Loading:لتحسين جلب البيانات المرتبطة، $users = User::with('posts')->get(); تطبيق هذه الخطوات سيُحسّن أداء موقعك بشكل كبير، ويُوفّر تجربة أفضل للمستخدمين
  12. وعليكم السلام ورحمة الله وبركاته Regularization: أسلوب يُستخدم في (Machine Learning) لتحسين أداء النماذج وتقليل احتمال حدوث الـمشاكل مثل: Overfitting. الفكرة الأساسية: عندما تُدرِّب نموذجاً على بيانات تدريبية، قد يتعلم النموذج أنماطاً حتى في الضوضاء الموجودة في البيانات، مما يؤدي إلى أداء ضعيف على البيانات الجديدة (بيانات الاختبار). فنقوم باستخدام الـ Regularization، حيث يساعد على تبسيط النموذج وجعله أكثر عمومية. و تستخدم عن طريق إضافة عقوبة (Penalty) إلى دالة الخسارة (Loss Function) في التدريب. هذه العقوبة تُثبِّط معاملات النموذج (weights) وتمنعها من أن تصبح كبيرة جداً. هيا بنا ناخذ مثالا فى الحياة العملية: تخيل أن لديك نموذجًا بسيطًا لتوقع أسعار المنازل بناءً على عدة مميزات مثل مساحة المنزل و عدد الادوار ولون الجدران و غيرها. إذا استخدمت Regularization، سيحاول النموذج تجاهل المميزات غير المهمة (مثل لون الجدران) والتركيز على المميزات الأكثر تأثيرًا (مثل مساحة المنزل). و فائدتها: يقلل من التعقيد (complexity) الزائد للنموذج. يحسن التعميم (Generalization) على بيانات جديدة. يعزز الأداء في حالة وجود ضوضاء أو مميزات غير مهمة. بالتوفيق.
  13. وعليكم السلام السؤال، يعتمد الخيار بين التعلم العميق و الخوارزميات التقليدية على طبيعة البيانات وحجمها. إذا كانت البيانات تحتوي على 60 عمودًا فقط: الخوارزميات التقليدية مثل شجرة القرار، الانحدار اللوجستي، SVM، XGBoost قد تكون أكثر كفاءة في هذه الحالة، خاصة إذا كانت البيانات هي بيانات هيكلية (Structured Data) مع ميزات محددة وأبعاد قليلة. هذه الخوارزميات تعمل بشكل جيد مع حجم بيانات صغير إلى متوسط، وتكون أقل تطلبًا من حيث القدرة الحسابية مقارنة بالتعلم العميق. إذا كانت البيانات تحتوي على أعمدة كثيرة جدًا: التعلم العميق (Deep Learning) يتفوق في الحالات التي تحتوي على بيانات ضخمة جدًا وميزات معقدة، مثل النصوص أو الصور أو الصوت. يمكن أن يكون مفيدًا إذا كان لديك بيانات غير هيكلية أو معقدة للغاية، ولكن قد يحتاج إلى موارد حسابية ضخمة. عندما تختار بينهما: إذا كان لديك بيانات هيكلية وتحتاج إلى تفسير النتائج بسهولة، فالخوارزميات التقليدية تكون أكثر فاعلية. إذا كانت لديك بيانات معقدة أو نطاق واسع من العلاقات بين الأعمدة (مثل الصور أو النصوص)، فقد يكون التعلم العميق خيارًا أفضل. وبالتوفيق
  14. Label Encoding هو طريقة لتحويل القيم النصية (Text أو Categories) في البيانات إلى أرقام علشان الكمبيوتر يفهمها. مثلا: لو عندك عمود يحتوي على أسماء المدن: "القاهرة" "الإسكندرية" "الجيزة" بعد تطبيق Label Encoding: "القاهرة" = 0 "الإسكندرية" = 1 "الجيزة" = 2 فين ممكن نستخدم Label Encoding؟ 1. الأعمدة الثنائية (Outcome Column): لما يكون عندك عمود فيه قيمتين فقط (زي "نعم/لا" أو "1/0").مثال: Outcome ----- نعم لا نعم بعد التشفير: Outcome ----- 1 0 1 2. الأعمدة متعددة القيم (Multi-Class Columns): لما يكون عندك أكتر من متغير (زي الألوان: "أحمر"، "أخضر"، "أزرق").مثال: Color ----- أحمر أخضر أزرق بعد التشفير: Color ----- 0 1 2 إيه اللي لازم أخد بالي منه؟ Label Encoding بيحول النصوص إلى أرقام، لكن الأرقام دي الكمبيوتر ممكن يفهمها على إنها "ترتيب" أو "علاقة رياضية". 1. لو العمود فيه علاقة ترتيبية (Ordinal Data): Label Encoding مناسب. مثال: لو عندك مستويات تعليم (ابتدائي، إعدادي، ثانوي): Education --------- ابتدائي إعدادي ثانوي بعد التشفير: Education --------- 0 1 2 في الحالة دي، الأرقام دي لها معنى (ابتدائي أقل من إعدادي، وإعدادي أقل من ثانوي). 2. لو العمود ملوش علاقة ترتيبية (Nominal Data): زي الألوان أو أسماء المدن، الأرقام الناتجة ممكن تخدع النموذج وتخليه يعتقد إن "القاهرة" (0) أقل من "الإسكندرية" (1)، وده غلط. الحل في الحالة دي: بدل Label Encoding، ممكن تستخدم One-Hot Encoding، واللي بيحول كل فئة لعمود مستقل فيه 0 و1: مثال: City ----- القاهرة الإسكندرية الجيزة بعد One-Hot Encoding: القاهرة الإسكندرية الجيزة ------- ---------- ----- 1 0 0 0 1 0 0 0 1 إمتى تختار Label Encoding؟ لو البيانات فيها علاقة ترتيبية بين القيم. لو النموذج اللي بتستخدمه ما يتأثرش بفكرة "الترتيب" (زي Decision Trees أو Random Forest). إمتى تفضل One-Hot Encoding؟ لو البيانات ملهاش علاقة ترتيبية. لو عندك أعمدة فيها فئات متعددة ومفيش معنى إن فئة تكون أعلى أو أقل من التانية. مثال عملي: 1. عمود Outcome: لو عندك عمود "Outcome" يحتوي على "ناجح" و"راسب": Label Encoding: ناجح = 1 راسب = 0 2. عمود Multi-Class: لو عندك عمود "الفصول الدراسية" يحتوي على "فصل A"، "فصل B"، "فصل C": Label Encoding: A = 0 B = 1 C = 2 One-Hot Encoding: A B C 1 0 0 0 1 0 0 0 1
  15. الفرق بين Method و Function Function (الدالة): كود يتم تعريفه لتنفيذ مهمة معينة، ويمكن استدعاؤها في أي وقت خلال البرنامج. و يتم استخدامها بشكل عام خارج الكائنات (Objects)، ويمكن أن تكون مستقلة عن الكائنات. تكون مستقلة بذاتها وقد تأخذ مدخلات (Parameters) وتُرجع مخرجات. و لنأخذ مثال على Function في بايثون: def add_numbers(a, b): return a + b result = add_numbers(3, 5) # استدعاء الدالة Method: هي نوع خاص من الدوال تكون مرتبطة بكائن معين (Object). يتم تعريفها داخل الكلاس (Class)، وتعمل في سياق هذا الكائن. عند استدعائها، يتم تمرير الكائن نفسه تلقائيًا كأول وسيط باستخدام الكلمة المفتاحية و هى self (في بايثون) أو ما يعادلها في لغات برمجة أخرى. الاستخدام: تستخدم للتعامل مع البيانات أو الخصائص الخاصة بالكائن الذي تنتمي إليه. و لنأخذ مثال على Method في بايثون: class Calculator: def add(self, a, b): return a + b calc = Calculator() # إنشاء كائن من الكلاس result = calc.add(3, 5) # استدعاء الطريقة المرتبطة بالكائن بالتوفيق إن شاء الله
×
×
  • أضف...