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

كل الأنشطة

تحدث تلقائيًا

  1. الساعة الماضية
  2. عموماً لا يجب عليك حفظ الأكواد. البرمجة ليست مثل حفظ نص أو ما إلى ذلك . البرمجة هي مهارة تعتمد على الفهم والممارسة، وليس على الحفظ فبدلاً من الحفظ، ركز على الفهم لكل سطر تكتبه فعندما تكتب كوداً من الدرس، اسأل نفسك "لماذا كتبنا هذا السطر؟ ماذا يفعل بالضبط؟ ماذا سيحدث لو غيرته أو حذفته؟". هذه الأسئلة ستجعلك تفهم المنطق وليس فقط تنسخ الكود. وأيضاً جرب أن تغير في الأكواد مثل أسماء المتغيرات، أو حتى ترتيب بعض الأسطر لترى ماذا سيحدث. عندما يظهر خطأ، حاول أن تفهم لماذا حدث. هذه التجارب تعلمك أكثر من مئة مرة نسخ صحيح للكود. والأفضل بعد أن تفهم مفهوماً معيناً من الدرس، مثلاً الحلقات التكرارية، حاول أن تكتب كوداً مختلفاً تماماً باستخدام نفس المفهوم.
  3. اليوم
  4. لتفهم وظيفة هذا الكود لنحاول تفكيكه أولاً فالجزء <img src="x:x" ينشئ وسم صورة HTML مع مصدر غير صحيح أو غير موجود. لذلك سيفشل المتصفح في تحميل الصورة. والجزء onerror=alert('xss') هنا يكمن الخطر الحقيقي. عندما يفشل تحميل الصورة، يتم تشغيل حدث onerror الذي يحتوي على كود JavaScript (في هذه الحالة alert('xss')). هذا يعني أن كود JavaScript سينفذ في المتصفح . وفي هذا المثال البسيط، الكود يعرض فقط رسالة تنبيه. لكن في الهجمات الحقيقية، يمكن للمهاجم أن يستبدل alert('xss') بأكواد أكثر خطورة مثل سرقة ملفات تعريف الارتباط (cookies)، إعادة توجيه المستخدم لمواقع ضارة، أو سرقة بيانات حساسة. ولحماية تطبيقات الويب من مثل هذه الهجمات، يجب علىك تنظيف المدخلات أي يجب تحويل الرموز الخاصة مثل <, >, ", ' إلى HTML entities واستخدام Content Security Policy
  5. وعليكم السلام ورحمة الله وبركاته. كما تم التوضيح في التعليق السابق فإنه يمكنكي تشغيل برامج لينكس بواسطة WSLg بدون أي مشكلة ولكن أعتقد أن الواجهة الرسومية المهمة بالنسبة لكي هي فتح VS Code بواجهته الكاملة ، ومتصلاً بنظام اللينكس. code .
  6. وعليكم السلام ورحمة الله وبركاته. ربما تكون المشكلة في الإنترنت لديك ولذلك يمكنك محاولة إلغاء الأمر وإعادة المحاولة عن طريق الضغط على Ctrl + C في لوحة المفاتيح لإيقاف العملية ثم أعد كتابة الأمر wsl --install واضغط Enter. وإذا لم يتم حل المشكلة فيعتمد أمر WSL على خدمة "Windows Update" لتنزيل الملفات. إذا كانت هذه الخدمة متوقفة، سيبقى التحميل عند 0%. ولذلك يمكنك فتح services.msc ثم ابحث في القائمة عن Windows Update ثم حاول تشغيلها والتثبيت مرة أخرى.
  7. البارحة
  8. الف شكراا جدا لحضرتكم جزاكم الله كل خير
  9. كيفية جعل مقالات مدونة بلوجر متعددة اللغات: دليل SEO شامل 2025 المقدمة: لماذا تحتاج مدونة متعددة اللغات؟ في عالم الإنترنت المتوسع، أصبح الوصول إلى جمهور عالمي ضرورة وليس رفاهية. إن جعل مدونة بلوجر متعددة اللغات يفتح أمامك أبوابا واسعة للوصول إلى ملايين القراء من مختلف الدول والثقافات. وفقا لإحصائيات حديثة، فإن أكثر من 75% من مستخدمي الإنترنت يفضلون تصفح المحتوى بلغتهم الأم، مما يعني أن المحتوى أحادي اللغة يفقدك فرصا هائلة للنمو والانتشار. تعتبر منصة بلوجر من أشهر منصات التدوين المجانية التي توفرها جوجل، وتتميز بسهولة الاستخدام والتكامل المباشر مع خدمات جوجل الأخرى. ومع ذلك، فإن جعلها متعددة اللغات يتطلب فهما عميقا لإعدادات السيو والتقنيات المناسبة. SEO بالعربي
  10. شرح أداة تحويل الصور أونلاين إلى صيغة Webp - دليل شامل 2025 في عالم الويب الحديث، تعتبر سرعة تحميل الموقع من أهم عوامل تحسين محركات البحث وتجربة المستخدم. ومع تطور التقنيات، ظهرت صيغة Webp كحل مثالي لتقليل حجم الصور مع الحفاظ على جودتها العالية. في هذا المقال الشامل، سنشرح بالتفصيل أداة تحويل الصور أونلاين إلى صيغة Webp، وكيفية استخدامها لتحسين أداء موقعك الإلكتروني. ما هي صيغة Webp؟ صيغة Webp هي تنسيق صور حديث تم تطويره بواسطة شركة جوجل في عام 2010، وهي مصممة خصيصاً لاستخدامها على الويب. تعتمد هذه الصيغة على تقنيات ضغط متقدمة توفر تقليلاً كبيراً في حجم الملفات مع الحفاظ على جودة الصورة الأصلية أو مع فقدان بسيط غير ملحوظ للعين البشرية. تم بناء Webp على أساس تقنية ضغط الفيديو VP8، مما يتيح لها تحقيق معدلات ضغط أعلى بكثير من الصيغ التقليدية. وفقاً لدراسات جوجل الرسمية، تستطيع صيغة Webp تقليل حجم ملفات JPEG بنسبة تصل إلى 34% وملفات PNG بنسبة تصل إلى 26% مع الحفاظ على نفس مستوى الجودة البصرية. SEO بالعربي
  11. أكود تحسين المحتوى لنتائج Google SGE | دليل شامل 2025 ما هو Google SGE؟ Google SGE (Search Generative Experience) هو نظام البحث الجديد من جوجل الذي يعتمد على الذكاء الاصطناعي التوليدي لتقديم إجابات شاملة ومفصلة مباشرة في صفحة نتائج البحث. يُعد هذا التحول الأكبر في تاريخ محركات البحث منذ ظهورها. 💡 نقطة مهمة: Google SGE لا يحل محل نتائج البحث التقليدية، بل يُضاف فوقها كطبقة ذكية تُلخص المعلومات من مصادر متعددة. يعتمد SGE على نماذج الذكاء الاصطناعي التوليدي من جوجل لفهم سياق الاستفسارات وتقديم إجابات متكاملة تجمع بين عدة مصادر موثوقة. SEO بالعربي
  12. الفرق الجوهري يكمن في الهدف من المخطط فأحدهما يركز على البرمجة (Logic) والآخر يركز على البيانات (Data). أولا Class Diagram : يركز على البنية البرمجية للكود (OOP). يتكون من Classes (فئات) وMethods (دوال) وAttributes (متغيرات). يوضح السلوك (Behavior) عبر الدوال (Functions/Methods). نستخدمه نحن المبرمجين لبناء ال Classes والربط بينها. ثانيا ER Diagram (Entity Relationship) : يركز على بنية قاعدة البيانات وتخزين المعلومات. يتكون من Entities (كيانات) و Attributes (صفات) وRelationships (علاقات). لا يوضح سلوك بل هو مجرد هيكل ثابت للبيانات (Static Data Structure). يستخدمه مصمم قاعدة البيانات (DB Admin) لبناء الجداول (Tables). نعم بالفعل يجب إضافة Activities و Fragments و Services والسبب هو انه في برمجة الأندرويد ال Activity هي في النهاية Class مثلا MainActivity extends AppCompatActivity هي جزء لا يتجزأ من هيكلية الكود بل هي ال Entry Point والمسؤولة عن إدارة واجهة المستخدم. وبخصوص كيفية التمثيل: يتم تمثيل ال Activity ك Class عادي. يحتوي على الدوال الخاصة به مثل onCreate() و onStart(). يحتوي على علاقات (Associations) مع ال Classes الأخرى مثل ال Adapters أو ال ViewModels. نظرياً الإجابة نعم لتوضيح الفكرة ولكن تقنيا لا يفضل ذلك لأن المفهوم مختلف. وهذا بسبب أن : ال ER Diagram صمم لقواعد البيانات العلائقية (SQL) التي تعتمد على الجداول (Tables) والمفاتيح الأجنبية (Foreign Keys). ال Firebase سواء Realtime DB أو Firestore هي قواعد بيانات NoSQL تعتمد على المستندات (Documents) والمجموعات (Collections) أو شجرة JSON. والبديل الأفضل هو استخدام ما يسمى ب Schema Diagram أو Collection-Document Model. فبدلا من رسم جداول يمكن رسم مربعات تمثل ال Collections وداخلها مستندات توضح حقول البيانات (JSON Structure). وهذا يعكس الواقع الفعلي للبيانات في Firebase بدقة أكبر من ERD التقليدي. تحويل الكود إلى مخطط تتابع (Sequence Diagram) يهدف لفهم سيناريو محدد مثلا عملية تسجيل الدخول. والقواعد الأساسية للتحويل: ال Classes تصبح Lifelines: كل Object أو Class يتم استدعاؤه في السيناريو يوضع في الأعلى ك (Lifeline). استدعاء الدالة يصبح رسالة (Message): عندما يقوم Class A بمناداة دالة في Class B مثلا user.getName() نرسم سهما متصلا من A إلى B. اسم السهم هو اسم الدالة. القيمة المرجعة (Return Value): نتيجة الدالة تمثل بسهم متقطع (Dashed Arrow) يعود للخلف. الشروط (If/Else) تصبح Alt Fragment: يتم وضع إطار (Frame) يسمى Alt. الجزء العلوي يمثل if (condition) والجزء السفلي يمثل else. الحلقات التكرارية (Loop/For/While) تصبح Loop Fragment: يتم وضع إطار يسمى Loop حول العمليات التي تتكرر.
  13. وعليكم السلام ورحمة الله وبركاته ليس هناك مشكلة إطلاقاً في طلب بعض الأسئلة من ال AI كما تفعل وفي فهم ما تريده . ولكن يفضل حالياً عدم الإعتماد عليه في حل التمارين التي تريدها أو إنشاء المشاريع بمساعدته (لاحقاً يعتبر من المهم استخدامه ) حيث يجب أن تعتمد على حل المشكلات بنفسك في مرحلة التعلم . وعموماً بالنسبة لسؤالك فليس هناك مشكلة وبالنسبة لما لا تستوعبه من المحاضرات فيمكنك طرح سؤالك في أي وقت وسيتم الإجابة عليه من المدربين هنا
  14. وعليكم السلام ورحمة الله وبركاته. بما أن النموذج يتحسن تدريجياً مع كل دورة تدريبية epoch. في الوضع الطبيعي، يستمر النموذج في التدريب حتى يكمل العدد الكامل من الدورات التي حددتها له، حتى لو وصل إلى الأداء المطلوب في وقت مبكر. ولكن هذا الكود يطبق مفهوماً يسمى Early Stopping أو الإيقاف المبكر فيعمل على توفير الوقت والموارد الحاسوبية. عندما يصل نموذجك إلى الأداء المستهدف، فلا حاجة لمواصلة التدريب. هذا يوفر وقتاً حاسوبياً ثميناً، وخاصة عند العمل على مجموعات بيانات كبيرة أو نماذج معقدة قد تستغرق ساعات أو حتى أيام للتدريب الكامل. وأيضاً الوقاية من مشكلة تسمى Overfitting أو الإفراط في التلاؤم.
  15. المشكلة لديك في ملف app\images\[id]\page.tsx حيث لاحظ أنك تستخدم ال currentUser لعرض التعليقات مما يجعل أن التعليقات الصور وإسم المستخدم تظهر بالمستخدم الحالي وهذا هو سبب المشكلة . في ملف app\models\Comment.ts يجب أن نقوم بإضافة نموذج user ليتم إعادته مع كل تعليق والذي يحوي إسم الشخص الذي قام بالتعليق وصورة ملفه الشخص وهذا هو كود الملف بعد التعديل : import mongoose from "mongoose"; interface IComment { content: string; imageId: mongoose.Schema.Types.ObjectId; userId: mongoose.Schema.Types.ObjectId; } const commentSchema = new mongoose.Schema<IComment>( { content: { type: String, required: true, }, imageId: { type: mongoose.Schema.Types.ObjectId, required: true, ref: "Image", }, userId: { type: mongoose.Schema.Types.ObjectId, required: true, ref: "User", }, }, { timestamps: true ,toJSON: { virtuals: true }} ); commentSchema.virtual('user', { ref: 'User', localField: 'userId', // Field in the current schema foreignField: '_id', // Field in the referenced schema justOne: true // For a single document reference }); const Comment = mongoose.models.Comment || mongoose.model("Comment", commentSchema); export default Comment; الآن في ملف app\api\comments\route.ts سطر 14 يجب أن نعيد النموذج الذي قمنا بتعريفه مع الإستعلام ليكون لدينا المستخدم مع كل تعليق هكذا : const comments = await Comment.find().populate("user", "fullname avatar").sort({ createdAt: -1 }); الآن في ملف app\images\[id]\page.tsx سطر 182 و 183 و 190 يجب تغير currentUser إلى c.user هكذا : أولا سطر 182 : src={c.user?.avatar || "https://res.cloudinary.com/dgagbheuj/image/upload/v1763194734/avatar-default-image_yc4xy4.jpg"} ثانيا سطر 183 : alt={c.user?.fullname || "Anonymous"} ثالثا سطر190 : {c.user?.fullname || "Anonymous"}
  16. شريت استضافة و الموقع الذي شريت منه يقدم استضافة و دومين. اريد ان اجرب اذا موقعي امن, هل يصلح ان اجرب ادوات التهكير على موقعي لاجل اكتشف الثغارت الامنية؟ ام هذا يعتمد على مزود الاستضافة اذا املك هذه الصلاحيات؟؟
  17. آخر أسبوع
  18. سأجيبك بشكل منظّم ومباشر: أولًا: الفرق بين Class Diagram و ER Diagram 1. Class Diagram (UML) يُستخدم لتمثيل تصميم النظام البرمجي نفسه. يمثّل: الكلاسات الخصائص (Attributes) الدوال (Methods) العلاقات (Inheritance – Association – Aggregation – Composition) يجيب عن سؤال: كيف صُمّم الكود؟ وكيف تتفاعل الكائنات مع بعضها؟ يُستخدم غالبًا في: تصميم التطبيقات توثيق الكود شرح الـ Architecture 2. ER Diagram (Entity Relationship) يُستخدم لتمثيل قاعدة البيانات فقط. يمثّل: الجداول (Entities) الأعمدة (Attributes) العلاقات (1-1، 1-N، N-M) المفاتيح الأساسية والأجنبية يجيب عن سؤال: كيف تُخزَّن البيانات؟ وكيف ترتبط ببعضها؟ ثانيًا: عند رسم Class Diagram لتطبيق Android هل نضيف فقط Java Classes؟ لا. القاعدة الصحيحة: ترسم الكلاسات المنطقية المهمّة فقط. ماذا نضيف؟ Models (User, Product, Order…) Managers / Services Repositories ViewModels (في MVVM) هل نضيف Activities؟ نعم إذا كانت جزءًا من منطق التطبيق لا تضف كل Activity تلقائيًا الـ Activity: تمثل Controller / View تُضاف فقط إذا كان لها: منطق واضح تفاعل مهم مع الكلاسات الأخرى لا ترسم: Activities بسيطة لعرض UI فقط ثالثًا: هل يمكن استخدام ER Diagram مع Firebase؟ Firebase (Firestore / Realtime DB): ليست Relational Database لا توجد جداول ولا Foreign Keys هل نستخدم ER Diagram؟ ليس بشكل كلاسيكي لكن يمكن استخدام: Data Model Diagram أو ER مبسّط بدون علاقات صارمة تمثّل: Collections Documents العلاقات المنطقية (Reference أو Embedded) إذن: ER Diagram التقليدي ❌ Data Modeling Diagram ✔ رابعًا: تحويل الكود إلى Sequence Diagram (SD) (أعتقد أنك تقصد SD وليس SQD) القاعدة: Sequence Diagram لا يُرسم آليًا من الكود بل يُستخرج من سيناريو استخدام (Use Case) الخطوات: اختر سيناريو مثال: “تسجيل مستخدم” حدّد الأطراف: User → Activity → ViewModel → Repository → Database ارسم ترتيب الرسائل (method calls) لا ترسم كل التفاصيل، فقط التفاعل المهم خامسًا: مراجع موثوقة UML: UML Distilled – Martin Fowler Head First Object-Oriented Analysis & Design Class & ER: Database System Concepts – Silberschatz Lucidchart UML & ER Guides Android Architecture: Android Developers – Architecture Components MVVM Pattern for Android
  19. وعليكم السلام ورحمة الله وبركاته ما شاء الله، المشروع واضح أنه مكتمل ومنفّذ بعناية، والـ README مرتب ويعكس فهمًا جيدًا للـ Full-Stack. سأعطيك مراجعة عملية ومهنية كما لو كانت Code Review / تقييم مشروع. التقييم العام المشروع ناجح كـ تطبيق Full-Stack تعليمي/تطبيقي قوي، ويغطي دورة حياة كاملة: Auth CRUD رفع ملفات REST API Frontend حديث دعم RTL والعربية لو قُدّم هذا المشروع كمشروع تخرج أو اختبار توظيف Junior–Mid فسيُقيَّم بشكل إيجابي جدًا. نقاط القوة (Strengths) 1. اختيار التقنيات مناسب جدًا Express + SQLite: ممتاز للتعلّم والنماذج الأولية React + Vite: حديث وسريع REST واضح ومنفصل عن الواجهة استخدام Multer لرفع الصور بشكل صحيح هذا يدل على فهم حقيقي وليس مجرد “تركيب مكتبات”. 2. بنية المشروع واضحة تقسيم: server/ client/ مع README يشرح: التشغيل المنافذ المتطلبات API endpoints هذه نقطة مهمّة جدًا وغالبًا ما تُهمل من المبتدئين. 3. الميزات منطقية وقريبة من الواقع تسجيل كمستخدم أو طبيب ملف شخصي صور متعددة مع حد أقصى بحث صفحة تفاصيل مع خريطة هذا ليس CRUD سطحي، بل سيناريو استخدام حقيقي. 4. دعم العربية و RTL قلة من المشاريع التعليمية تهتم بهذا، ويحسب لك: اتجاه صحيح تجربة مستخدم مناسبة تصميم متجاوب ملاحظات تحسين (Important Improvements) 1. الأمان (مهم جدًا) بما أن التطبيق طبي: تأكد من: Hash كلمات المرور (bcrypt) عدم إعادة كلمة المرور في أي Response حماية رفع الصور (النوع والحجم) عدم كشف مسارات النظام إن لم يكن ذلك موجودًا، فهو أول شيء يجب إضافته. 2. الجلسات و Auth استخدام الجلسات جيد، لكن للتطوير المستقبلي: فكّر لاحقًا في: JWT Refresh Tokens فصل Auth middleware بوضوح حاليًا مقبول جدًا لمستوى المشروع. 3. قاعدة البيانات SQLite ممتاز للتعلّم، لكن: لو أردت نقل المشروع للإنتاج: PostgreSQL أو MySQL يفضّل وجود: migrations constraints أوضح (UNIQUE، NOT NULL) 4. فصل المنطق (Clean Code) إن كان كل شيء في index.js: يُفضّل فصل: routes controllers services database layer هذا يرفع المشروع مستوى كامل. 5. Frontend اقتراحات بسيطة: Handling أفضل للأخطاء (loading / empty states) Form validation أوضح إعادة استخدام المكوّنات (Cards / Inputs) واضح أنك واعٍ بهذا، فقط تحسين تدريجي. هل استخدام TRAE AI يقلل من قيمة المشروع؟ لا، بشرط واحد فقط: أنك تفهم كل سطر كود وتستطيع شرحه. وبناءً على وصفك للمشروع وREADME: واضح أنك تفهم ما بنيته، وهذا هو المهم. في المقابلات لا يسألون: هل كتبت كل سطر بيدك؟ بل: هل تفهم لماذا هذا الحل؟ وهل تستطيع تعديله؟ هل المشروع مناسب للعرض؟ نعم، وبقوة: GitHub Portfolio LinkedIn تقديم لوظائف Junior / Intern / Frontend / Full-Stack لو أضفت: Live demo Screenshots فيديو قصير سيصبح ممتازًا. الخلاصة مشروعك: متكامل مفهوم عملي منظم ويعكس فهمًا حقيقيًا للمسار لو طُلب مني تقييمه: 8.5 / 10 لمستوى تعليمي متقدم.
  20. عند إضافة تعليق على صورة معيّنة، كانت جميع التعليقات تظهر بنفس: الاسم (fullname) صورة الحساب (avatar) وذلك بغض النظر عن صاحب التعليق، أي أنّ كل التعليقات كانت تُعرض وكأنها كُتبت من قبل المستخدم الحالي (currentUser). سبب المشكلة المشكلة لم تكن في إضافة التعليق نفسها، بل في طريقة جلب وعرض التعليقات: في جهة الخادم (API) عند جلب التعليقات من قاعدة البيانات، كان يتم إرجاع بيانات التعليق فقط (مثل النص و userId)، بدون جلب بيانات المستخدم المرتبط بكل تعليق. في جهة الواجهة (page.tsx) عند عرض التعليقات، كان يتم استخدام: currentUser.fullname currentUser.avatar لكل تعليق، بدلًا من استخدام بيانات صاحب التعليق الحقيقي. وبالتالي، جميع التعليقات كانت تُعرض ببيانات المستخدم الحالي فقط. الحل 1. تعديل API لجلب بيانات المستخدم مع كل تعليق في ملف route.ts الخاص بالتعليقات، تم تعديل الاستعلام ليشمل بيانات المستخدم باستخدام populate: const comments = await Comment.find({ imageId }) .populate("userId", "fullname avatar") .sort({ createdAt: -1 }); بهذا الشكل، كل تعليق سيحتوي على: اسم صاحب التعليق صورة الحساب الخاصة به 2. تعديل واجهة العرض لاستخدام بيانات صاحب التعليق في ملف images/[id]/page.tsx، تم تعديل طريقة عرض التعليقات بحيث لا تعتمد على currentUser، وإنما على بيانات المستخدم المرتبطة بكل تعليق: بدلًا من: <img src={currentUser.avatar} /> <p>{currentUser.fullname}</p> تم استخدام: <img src={c.user?.avatar} /> <p>{c.user?.fullname}</p> حيث c هو كائن التعليق، و user هو المستخدم الذي تم جلبه عبر populate. النتيجة كل تعليق أصبح يُعرض باسم وصورة صاحب التعليق الحقيقي. لم تعد بيانات المستخدم الحالي تتكرر على جميع التعليقات. أصبح سلوك النظام مطابقًا للسلوك المتوقع في تطبيق مثل Pinterest. ملاحظة مهمة هذه المشكلة تُعد مثالًا واضحًا على أهمية: فهم العلاقة بين البيانات (Relations) عدم الخلط بين current user و comment owner جلب البيانات الصحيحة من الـ API بدل تعويضها في الواجهة حلّك يدل على فهم جيد للـ Back-end + Front-end data flow، وهو مستوى ممتاز لمشروع عملي. pinterest-clone_new.rar
  21. مرحبا بناءً على المعطيات التي ذكرتها (خلفية علوم حاسوب، معرفة سابقة بأساسيات بايثون، وتفرغ بمعدل 40 ساعة أسبوعيًا)، فإن المدة المتوقعة لإنهاء الأربعة مسارات الأساسية بشكل جاد والاستعداد لاجتياز الشهادة تكون كالتالي: المدة المتوقعة من 6 إلى 8 أسابيع كحد أقصى. التقسيم المنطقي: أساسيات بايثون: 1 – 1.5 أسبوع (بما أنك تملك خلفية سابقة، سيكون الهدف المراجعة والترسيخ مع التطبيق) البرمجة كائنية التوجه + التعامل مع الملفات: 1 أسبوع تطوير تطبيقات الويب باستخدام Django: 2 – 3 أسابيع مشروع المتجر الإلكتروني + الربط والتطبيق العملي: 2 أسابيع هذا التقسيم يفترض: دراسة يومية منتظمة تطبيق عملي مع كل درس عدم الاكتفاء بالمشاهدة فقط تنفيذ المشروع النهائي بنفسك دون نسخ جاهز هل هذا الجدول واقعي؟ نعم، واقعي جدًا في حال: التزمت بـ 6–8 ساعات يوميًا فعلية ركزت على المسارات المطلوبة فقط لم تتشتت بدورات أو مصادر خارجية تعاملت مع المشروع النهائي كاختبار حقيقي بخصوص الاستعداد للشهادة إذا أنهيت المسارات الأربعة خلال هذه المدة مع: فهم حقيقي للكود تنفيذ المشروع بنفسك مراجعة المفاهيم الأساسية (Django – ORM – Templates – Auth) فستكون جاهزًا للتقدم للشهادة مباشرة دون الحاجة لفترة إضافية طويلة. ملاحظة مهمة تطبيق قانون Parkinson’s Law فكرة ممتازة، لكن احرص أن يكون الضغط: على الالتزام والتنفيذ لا على تجاوز الفهم أو القفز على التطبيق الخلاصة مع خلفيتك الحالية و40 ساعة أسبوعيًا: 6 أسابيع: إنجاز قوي وسريع 8 أسابيع: إنجاز مريح ومتين جدًا وأي مدة أطول من ذلك في حالتك غالبًا تكون إطالة غير ضرورية.
  22. وعليكم السلام ورحمة الله وبركاته . هذا الكود يمثل تطبيق مخصص لتقنية مهمة جدا في تعلم الآلة تسمى الإيقاف المبكر (Early Stopping). وأهمية هذا الكود تكمن في التحكم في دورة حياة تدريب النموذج بناء على مقاييس محددة وتتلخص أهميته في النقاط التالية: توفير الوقت والموارد الحاسوبية (Efficiency) فبدلا من الاستمرار في تدريب النموذج لعدد محدد مسبقا من ال Epochs يقوم هذا الكود بإيقاف التدريب فورا بمجرد الوصول للهدف المطلوب مثلا دقة 98%. مثال: إذا وصل النموذج لدقة 98% في ال Epochs رقم 10 فلا داعي لإضاعة الوقت وموارد وحدة المعالجة الرسومية (GPU) في تدريبه لل 90 Epochs المتبقية. منع ال (Overfitting) إن ال Overfitting هي واحدة من أكبر مشاكل تدريب النماذج حيث يبدأ النموذج في حفظ البيانات بدلا من فهم الأنماط العامة إذا استمر التدريب لفترة طويلة جدا بعد الوصول لأفضل أداء ولهذا بإيقاف التدريب عند نقطة جيدة بما فيه الكفاية مثل 98% فإنك تحمي النموذج من أن يبدأ في تدهور أدائه على البيانات الجديدة (Validation Data). وإليك شرح الكود كل سطر على حدى : الوراثة (tf.keras.callbacks.Callback): الكود يرث من فئة Callback الخاصة ب Keras وهذا يسمح للكود بالتدخل في عملية التدريب في نقاط محددة مثل بداية التدريب ونهاية ال Epochs . الدالة on_epoch_end: هذه الدالة يتم استدعاؤها تلقائيا من قبل Keras في نهاية كل دورة تدريبية (Epoch) والمتغير logs يحتوي على نتائج التدريب الحالية مثل الدقة accuracy والخسارة loss. الشرط if logs.get('accuracy') >= 0.98: هنا يتم فحص القاموس logs للبحث عن قيمة الدقة وإذا تجاوزت أو ساوت 98% يتم تنفيذ أمر الإيقاف. أمر الإيقاف self.model.stop_training = True: هذا هو السطر الأهم وهو الذي يرسل إشارة لعملية التدريب (model.fit) بأن تتوقف فورا ولا تكمل باقي ال Epochs المجدولة.
  23. السلام عليكم ده الكود # Remember to inherit from the correct class class EarlyStoppingCallback(tf.keras.callbacks.Callback): # Define the correct function signature for on_epoch_end method def on_epoch_end(self,epoch,logs=None): # Check if the accuracy is greater or equal to 0.98 if logs['accuracy'] >= 0.98: # Stop training once the above condition is met self.model.stop_training = True print("\nReached 98% accuracy so cancelling training!")
  24. الف شكراا جدا لحضرتكم جزاكم الله كل خير
  25. وعليكم السلام ورحمة الله وبركاته. لا يمكن إنشاء Emulator من الهاتف نفسه فالمحاكي يحتاج Android Studio أو أدوات Android SDK كاملة وهذه تعمل فقط على الكمبيوتر. ولكن يمكن تشغيل Flutter على الهاتف الحقيقي وستحتاجين إلى هاتف أندرويد و كابل USB وتفعيل ال USB Debugging في هاتفك . بعد تفعيل ال USB Debugging يجب توصيل الهاتف بالكمبيوتر من خلال الكابل وفتح ال cmd وكتابة التالي : flutter devices لو ظهر اسم هاتفك فهذا ممتاز يمكنكِ تشغيل المشروع مباشرة من خلال flutter run. وتوجد طريقة أخري وهي تشغيل التطبيق على الويب ولكن بعض ميزات الهاتف مثل الكاميرا وال GPS لن تعمل.
  26. مرحبا أحمد . ما ستقوم به ممتاز أحسنت بالتوفيق لك إن شاء الله . ولكن 40 ساعة بالإسبوع هي مدة كبيرة هل أنت متأكد من أنك ستستطيع توفير كل هذا الوقت؟ أنصحك بعدم ضغط نفسك كثيرا حتى تعطي لعقلك الوقت الكافي للإستيعاب وأيضا حتى تستطيع تنفيذ المشاريع والتطبيقات بنفسك . إليك رابط تفاصيل محتوى الدورة التالي : https://academy.hsoub.com/learn/python-application-development/ ستجد أن المسار الأول يحوي 11 ساعة من الدروس و المسار الثاني يحوي 15 ساعة والمسار الثالث يحوي 7 ساعات والمسار الرابع يحوي 5 ساعات . إذا الأربع مسارات مجموعهم 38 ساعة من الدروس . ويجب عليك معرفة أنه لإنهاء ساعة واحدة من الدورة فهي تختلف من شخص إلى أخر في نطاق 3 إلى 5 ساعات . وذلك لأن الطلاب يقومون بإيقاف الدرس مثلا لكتابة كود والتطبيق أو لإستيعاب جزء ما أو البحث عن معلومة معينة أو إعادة جزء معين . إذا بهذا المعدل يمكننا حساب متوسط 38 * 4 ساعات أى أن الأربع مسارات ستأخذ منك من 114 ساعة إلى 152 ساعة مذاكرة وتطبيق وهي تختلف بناء على مدى قدرة إستيعابك وأيضا تطبيقك للدروس . وإذا قمت بدراسة الدورة بمعدل 40 ساعة في الإسبوع فسوف تقوم بإنهاء أول أربع مسارات في 3 إلى 4 أسابيع . ولكن أنصحك بعدم تخطي أى درس أو عدم التطبيق مع المدرب فالأهم من الشهادة وإنجاز الدورة هو تحقيق أقصى إستفاده منها والتطبيق في مشاريع حقيقية . بالتوفيق لك إن شاء الله.
  27. لدي مشروع Pinterest-Clone و واجهتني مشكلة لم استطع حلها والتي عند اضافة تعليق لصورة معينة التعليقات تذهب لجميع مستخدمين وليس لكل مستخدم له تعليق خاص وب تالي صورة avatar و fullname كلها واحد تحديداً في ملف images/[id]/page.tsx ارجو مساعدة اريد لكل شخص تعليق خاص له و صور و اسم لكل مستخدم pinterest-clone.zip
  28. وعليكم السلام ورحمة الله وبركاته. جيد الكود نظيف ومنظم بشكل جيد وأيضا هيكل الملفات والمجلدات جيد ومناسب . أنصحك بإنشاء أولا المشروع بنفسك إذا لم تقم بإنشاءه وبعد ذلك يمكنك مقارنة المشروع الذي تم إنشاءه من قبل الذكاء الإصطناعي وهذا الأمر سيعلمك كثيرا وسيعطيك خبرة جيدة وستعرف أى جزء من الأكواد لديك به مشكلة أو تم تحسينه في نسخة ال AI .
  29. وعليكم السلام ورحمة الله وبركاته. نعم، WSL ليس مثل CMD فقط بل أمامكِ أكثر من خيار للتعامل معه حسب ما تحتاجينه: فالوضع الافتراضي له هو (Terminal فقط) فعند فتح WSL مباشرة: تتعاملين معه عبر سطر الأوامر bash و zsh . وهو يشبه Linux الحقيقي تماما. وهذا الوضع هو الأكثر استخداما بين المبرمجين ثانيا الواجهة الرسومية الكاملة (GUI) فإذا كنتِ تستخدمين Windows 11 أو تحديثات أخيرة توجد خاصية اسمها WSLg وهي تسمح بتشغيل تطبيقات لينكس الرسومية مباشرة بدون إعدادات معقدة وتظهر البرامج كأنها برامج ويندوز عادية. ثالثا مدير الملفات الرسومي حتى بدون واجهة كاملة من داخل WSL : explorer.exe . سيتم فتح File Explorer على ملفات لينكس مباشرة داخل المسار wsl$ .
  1. عرض المزيد
×
×
  • أضف...