-
المساهمات
9822 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
154
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد عاطف25
-
لا داعي للقلق هذا الأمر طبيعي بسبب إنشغالك في الدراسة والأمور الأخرى . ولكن أنصحك حتى إذا بدأت الدراسة بأن تقوم بتوفير ساعة واحدة أو إثنين في اليوم فقط للمراجعة وللتطبيق على ما تعلمته وذلك حتى لا تنسى ما قمت بمذاكرته سابقا وتقوم بالإعادة مجددا عند إنتهاء الدراسة وأيضا هكذا ستكون لديك الخبرة الجيدة بسبب كثرة التطبيق الذي ستكون قد قمت به في فترة الدراسة . ونعم يمكنك دراسة أول 4 مسارات ولو أردت تعلم flask فيمكنك دراسة المسار الخامس والسابع وهما "تطوير واجهة برمجية لتعديل الصور باستخدام فلاسك Flask" و "بناء مدونة باستخدام فلاسك Flask" ويمكنك تجاهل odoo فهذا المسار مخصص لمن يريد العمل كمطور odoo وهي وظيفة منفصلة لذلك إذا لم تكن تريد العمل كمطور odoo فميكنك تجاهله . أما باقي المسارات فهي متخصصة لم يريد دمج تقنيات الذكاء الإصطناعي في مشروعه ويمكنك تجاهلها حاليا ومن ثم العودة إليها لاحقا إذا أردت ذلك . أما لو أردت إستخدام Tailwind فهذا ممتاز ولكن أنصحك بتعلم أساسيات HTML و CSS و JS وهذه الأساسيات ستجدها في أول مسار في دورة تطوير واجهات المستخدم يمكنك دراسة أول مسار بشكل مجاني .
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. لا توجد وظائف تسمى بوظائف المبتدئين فجميع الوظائف في بدايتها تكون للمبتدئين والذي يكون من المتوقع على هذا المبتدأ تنفيذ أشياء معينة ومع تقدم مستواه ومهارته تزداد المهمام المطلوبة منه وبالتبعية يزداد راتبه. يمكنك بالطبع العمل في البداية كبمتدأ في مجال الحماية cyper security أو مجال تطوير الويب أو أى مجال غيره والأفضل لك هو الدخول في المجال الذي تجد في الشغف الخاص بك والذي تحبه وهذا الذي سيجعل متقدما ومتفوق في هذا المجال.
-
ستحتاج إلى إستخدام نماذج للذكاء الإصطناعي لتستطيع تحويل الصور إلى نصوص ومن ثم تحويل النصوص هذه إلى أى صيغة تريدها . وأيضا قد تجد مواقع تقوم بتوفير API لك لهذا الأمر حيث ليس عليك إنشاء النموذج من البداية بنفسك ولكن هذا الأمر سيكون مكلفا وستقوم بدفع الأموال مقابل إستخدام تلك ال APIS . أما إذا كان الملف هو عبارة عن PDF وليس صورة فيمكنك حينها إستخدام مكتبات لتحويل وإستخراج النصوص من ملف PDF والأفضل إستعمال لغة بايثون في هذا الأمر فهي تحوي مكتبات قوية ستفيدك كثيرا .
- 4 اجابة
-
- 1
-
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
- 1 جواب
-
- 1
-
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
- 2 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . لا تجعل كل هدفك هو فقط الحصول على الشهادة ولكن أن تحقق أقصى إستفادة من الدورة والتطبيق الجيد على ما تعلمته . أنصحك بإكمال الدورة بشكل كامل وأيضا أن تقوم بالتطبيق كثيرا قبل أن تتقدم للإختبار وحتى قبل أن تعمل في مواقع العمل الحر . ولكن لا بئس بالطبع يمكنك حاليا التقدم للإختبار بما أنك أنهيت 4 مسارات من الدورة ولكنك حاليا ليست لديك الخبرة الكافية أو التطبيقات العملية التي تؤهلك لإنجاز المشاريع بشكل جيد ومناسب . وأخيرا أنصحك أيضا بعدم التقدم للمشاريع على مواقع العمل الحر إذا لم تكن مؤهلا لذلك حيث هذا الأمر سيعطي لك تقيمات سلبية وسيجعل الحصول على عمل بعد ذلك بصعوبة . ولكن يمكنك الآن النظر إلى مواقع العمل الحر وانظر ما هي المشاريع المطلوبة ويمكنك العمل على مشروع بنفسك دون التقدم للوظيفة حاليا وانظر الوقت الذي ستأخذه لإتمامه وأيضا أنظر إلى دقة ومدى جودة المشروع وهكذا ستستطيع تقيم نفسك ومعرفة كيفية تنفيذ المشاريع والوقت الذي تستطيع إنجازه وفيه وأيضا تستطيع وضع تلك المشاريع في معرض أعمالك .
- 1 جواب
-
- 1
-
-
لاحظ أنك هنا أضفت حرف في منتصف الجملة ولم تقم بتغير حرف بحرف وما قمت به صحيح تماما أحسنت . الأفضل بدلا من كتابة النص بنفسك مثل "rmin" يمكنك إستخدام التالي وهو الأفضل : name[:-3] + "r" + name[-3:] وتوجد طريقة أفضل لو أردت تعديل أحرف ما وهي تحويل السلسلة النصية إلى قائمة فالسلاسل النصية في بايثون لا يمكن تعديلها وبعد تحويل السلسلة إلى قائمة يمكنك تغير الأحرف كما تريد ومن ثم تحويل القائمة إلى سلسلة مرة أخرى : name = "Mohamed Amin" name_list = list(name) # تعديل الحرف في الموقع المطلوب name_list[9] = "r" # دمج القائمة لتصبح نصاً مرة أخرى name = "".join(name_list) print(name) ولو أردت الإستبدال يمكنك إستخدام الدالة replace ولكن تلك الدالة ستقوم بإستبدال الأحرف جميعها في النص ولهذا هي ليست أفضل خيار لك.
- 5 اجابة
-
- 1
-
-
هل يمكنك توضيح سؤالك بشكل افضل لنستطيع مساعدتك اين تريد تغيره واى لغة تقصدها . إذا كان سؤالك بخصوص درس من دروس الدورات فستجد اسفل الدرس صندوق للتعليقات كما هنا يرجى وضع سؤالك أسفل الدرس وليس هنا حيث هنا هو قسم الأسئلة العامة ولا نقوم بالإجابة فيه على أسئلة الدورات .
- 5 اجابة
-
- 1
-
-
المشكلة لديك حيث الفيديوهات تعمل دون مشكلة . يرجى التأكد من انه ليس لديك قيود في الانترنت او لديك برنامج حماية يقوم بحظر الخادم الخاص بالدروس . يرجى اولا محاولة إستخدام شبكة انترنت أخرى فإذا تم حل المشكلة إذا المشكلة كانت في شبكة الانترنت لديك اما لو إستمرت المشكلة يرجى محاولة إستخدام VPN لحل مشكلة الانترنت لديك .
-
الأفضل دائما تنزيل نفس الإصدار المتبع في الشرح وذلك لتفادي حدوث تعارضات في المكتبات والإصدارات المستخدمة لذلك الأفضل حذف الإصدار الذي لديك وتنزيل الإصدار المتبع في الشرح . وأيضا الإصدار الذي قمت بتنزيله هو إحدث إصدار من بايثون لذلك من الممكن أن تواجهك مشاكل كثيرة جدا في عدم دعم المكتبات لهذا الإصدار ويمكنك تنزيل إصدار 3.13 بدلا من 3.14 . أما لإظهار القوائم فيمكنك تمرير مؤشر الفأرة للأعلى وستظهر لك القوائم أو قم بالخروج من وضع ملئ الشاشة من خلال الضغط على الزر الأخضر .
- 3 اجابة
-
- 1
-
-
انت لم تقم بإرفاق ملف الصورة وقد قمت بإستخدام صورة أخرى ولم تظهر بأى خلفية بيضاء . أعتقد أنك تقصد المسافة البيضاء في بداية الصفحة قبل ال nav : إذا كان كذلك فالمشكلة ليست في الصورة المشكلة في ملف webpage.css سطر 14 حيث لاحظ أنك إستخدمت margin ولكن ال nav هو أول عنصر لذلك عند وضع مسافة قبله تظهر الخلفية البيضاء . لذلك يجب حذف المسافة في الأعلى هكذا من خلال إستبدال سطر 14 : margin: 0px 10px 10px;
-
للتقدم للإختبار لابد من إتمام على الأقل أربع مسارات من الدورة وقبل التقدم للإختبار ستقوم بتوضيح المسارات التي قمت بإنهائها وسيتم إختبارك فقط في تلك المسارات التي أنهيتها وليس الدورة كاملة . ولو أنهيت جميع المسارات فسيتم سؤالك بها فقط ولن يتم السؤال بخصوص أى شئ خارج محتوى الدورة .
-
من مميزات أكاديمية حسوب أنك بمجرد شرائك للدورة فأنت تملك الوصول لها مدى الحياة وهذا يشمل أيضا أى تحديثات أو إضافات تتم على الدورة ولهذا لا تقلق ستتمكن من مشاهدة الدورة في أى وقت . بما أنك دفعت رسوم الدورتين إذا ستجد أن الحساب الذي قمت بالدفع من خلاله قد تم فتح الدورتين له لهذا لا يمكن إستخدام إلا حساب واحد فقط وهو الذي قمت بشراء الدورة فيه من خلال البريد الإلكتروني هذا فقط.
-
وعليكم السلام ورحمة الله وبركاته . أولا أنت لا تدفع سعر الدورة فقط للمحتوى الحالي بل أنت تحصل على مميزات كثيرة جدا توفرها الأكاديمية للملتحقين بالدورة . منها أنك لك وصول مدة الحياة للدورة وأيضا لجميع التحديثات التي تتم والمحتويات والمسارات التي يتم إضافتها بإستمرار . وستجد أن في هذه السنة تم إضافة أكثر من مسار جديد في عدة دورات هنا في الأكاديمة وهي مسارات مطلوبة جدا في سوق العمل وأى شخص مشترك في الدورة قبل تلك التحديثات له كامل الوصول إليها . وأيضا بعد الإنتهاء والحصول على الشهادة يتم توفير لك باقات في موقع بعيد بسعر 99$ مجانا وأيضا يتم إنشاء سيرة ذاتيه لك ويتم مساعدتك للحصول على وظيفة . أما بخصوص المحتوى فأيضا لا يمكنك المقارنة بالوقت بل على مدة طلب أو صعوبة الحصول أو تدريس منهج ما . فمثلا الذهب الجرام فيه بمبلغ كبير جدا ولكن مثلا الفضة بمبلغ أقل بكثير وهكذا الأسعار تتفاوت وليست ثابته أى انه ليس هناك مقارنة في المدة أو الحجم بل المقارنة في المحتوى . فمثلا دورة Ruby on Rails هي دورة تحوي 20 ساعة تدريبيه ولكن ستؤهلك بعد الإنتهاء منها على وظيفة في هذا المسار ولغة Ruby on Rails هي من أكثر اللغات في مرتبات الوظائف ولا يمكن مقارنتها باللغات الأخرى وأيضا ليس أغلب الأشخاص من يشتركون في تلك الدورة إلا المهتمون جدا بهذا المجال والذين يعرفون أهميته وقدره .
-
وعليكم السلام ورحمة الله وبركاته . نقاط السمعة في أكاديمية حسوب هي مؤشر لفعالية الشخص ومقدار نشاطه ومدى تفاعل المستخدمين الآخرين داخل الأكاديمية مع المحتوى الذي ينشره أو يكتبه ويشمل ذلك تفاعلات المستخدمين مع تعليقات وأسئلة وأجوبة ومقالات الشخص كما أنها نقاط لزيادة موثوقية الشخص ضمن الأكاديمية وهي كما تقول تماما. ومن حيث الفائدة العملية فلا يوجد لها فائدة ملموسة مجرد أيقونات وأرقام للدلالة على نشاطك ومدى تفاعلك بأقسام الأكاديمية وكذلك في التعليقات أسفل الدروس. أي مجرد تشجيع من أجل التفاعل والمشاركة، فهو أمر محبب للمستخدمين على أي منصة، وستجد أمر مشابه في مواقع التواصل الإجتماعي. لا توجد مخالفات إلا لو تم نشر أشياء غير لائقة على الأكاديمية هنا فقط ولا يتم إيقاف الحساب هنا في الأكاديمية إلا إذا تم نشر أشياء غير لائقة أكثر من مرة وإذا لم يكن العضو مشتركا في إحدى الدورات ولكن دون ذلك لا يتم تقيد أو إيقاف الحساب.
- 3 اجابة
-
- 1
-
-
نعم بالطبع حيث ملف env. هو الملف الخاص بمتغيرات البيئة الأساسية في مشروعك والتي تحوي بيانات حساسة جدا ومهمة مثل معلومات الإتصال بقواعد البيانات وبيانات البريد الخاص بك لإرسال الرسائل وغيرها من المعلومات الحساسة لمشروعك والتي يجب إخفائها وإذا حصل أحد ما على هذا الملف سيكون لديه الوصول إلى كل بيانات ومعلوماتك من قواعد البيانات إلى حساباتك وغيرها من البيانات المخزنة في الملف . ولهذا لا يجب وضعه أبدا بداخل المجلد public_html لأن أى ملف بداخله يتم الوصول إليه من خلال الرابط URL وهكذا سيستطيع أى أحد الوصول إلى ملف env. إن كان بداخله وسيتم إختراق بياناتك . أنت تستخدم laravel إذا يجب وضع فقط محتويات ملف public بداخل مجلد public_html وباقي الملفات الأخرى خارج المجلد ولكن بجواره .
-
المشكلة لديك في ملف frontend\src\Components\Navbar.tsx في سطر 93 . حيث useEffect يعمل أول مرة و setUser(JSON.parse(userData)) لا تغير user فورا وفي السطر التالي مباشرة: fetchNotifications() تجعل user ما يزال null. لذلك الحل هو هو حذف ال useEffect هذه وفصلها إلى إثنين هكذا : useEffect(() => { const userData = localStorage.getItem("user"); const token = localStorage.getItem("token"); if (userData && token) { try { setUser(JSON.parse(userData)); } catch { setUser(null); } } }, []); useEffect(() => { if (!user) return; fetchNotifications(); const interval = setInterval(fetchNotifications, 60 * 1000); return () => clearInterval(interval); }, [user]); ولقد قمت بإرفاق الملف لك بعد التعديل . ولكن لاحظ أن الإشعار يعتمد على المستخدم وهو يذهب إلى الطبيب لذلك يجب إلغاء جزء التحقق أنه Admin وإلا فإن الإشعارات لن تظهر إلا إلى الأدمن. Navbar.tsx
-
وعليكم السلام ورحمة الله وبركاته. ال portfolio جميل ووميز من ناحية التصميم والتفاعل . ولكن مشكلته الأساسية أنه يحتوي على محتوى محدود جدا حاليا وهذا الأمر سيدل على ضغف مهاراتك أو خبرتك فقد لاحظت أن الشهادة من سنة 2023 أى منذ سنتين وأكثر ولهذا فإن مشروعين فقط لديك في ال portfolio ليس جيدا بالمرة بل يجب أن يكون هناك أكثر من ذلك ولهذا فإن الأمر ليس جيدا لك ويجب أن تضيف أكثر من مشاريع . ولو لديك حساب على مواقع العمل الحر ولديك تقيمات ومشاريع كثيرة يفضل إضافة الرابط الخاص بتقيماتك في الموقع . ويفضل إقامة قسم للتقنيات التي تعمل عليها وتتقنها وأيضا جعل الموقع باللغتين العربية والإنجليزية وهذا أفضل كثيرا .
- 2 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . بمجرد الإشتراك في الدورة فأنت لك حق الوصول الكامل لها مدى الحياة مع جميع التحديثات التي تظهر لها فبمجرد الإشتراك لك جميع المميزات التي تقدمها لك الأكاديمية . أما بخصوص العمل فأغلب مواقع العمل الحر لا تقبل الأشخاص دون سن ال 18 . حيث سيتوجب حين تفعيل الحساب أن يتم رفع بطاقة الهوية الخاصة بك وإذا تم العثور على أنه لم يتم إكمال السن المطلوب لن يتم تفعيل الحساب ولن يكون متاحا له العمل . ولكن الأفضل بالطبع له البدأ من سن صغير وهكذا حينما يبدأ في العمل الحر سيكون لديه المهارات والخبرة الكافية التي تؤهله للحصول على عمل مباشرة . وأيضا يستطيع العمل بمفرده ولا حاجة لمواقع العمل الحر مثلا أن يأخذ مشاريع من أشخاص مقربين أو اصدقاء له أو إنشاء مشروع ما وبيعه على الإنترنت والكثير من الأمور الأخرى التي يستطيع الحصول على الأموال منها . نعم بالطبع يمكن ذلك فالدورة من مميزاتها أنها لا تحتاج أى خبرة مسبقة في البرمجة وتبدأ من الصفر ولكن الأفضل تعلم دورة علوم الحاسوب إذا كان متاحا له فهي ستعرفه على جميع المجالات المتاحة وتؤهله للدخول في مجال الحاسوب عموما وكيف يتعامل الحاسوب وكيف يعمل مما يعطيه أفضلية في التعلم بعد ذلك ولكنها ليست شرطا إلزاميا أو أساسيا . لا توجد أى متطلبات للتجهيز يمكنه الإشتراك مباشرة في الدورة دون مشكلة . نعم كل مناسبة تقوم الأكاديمية بتقديم دورتين بسعر دورة واحدة وفي رأس السنة تقوم بتوفير هذا العرض دائما ونأمل أن يتم توفيره هذه السنة .
-
وعليكم السلام ورحمة الله وبركاته . إليكِ رابط موقع ubuntu لتحميل الإصدار الذي تريدنه : https://ubuntu.com/download/desktop وإذا أردتي أحدث إصدار هذا هو الرابط : https://ubuntu.com/download/desktop/thank-you?version=24.04.3&architecture=amd64<s=true ولمعرفة كيفية تثبيته بجوار نسخة الويندوز لديكِ إليكِ المقال التالي : أما إذا قمتي بتفعيل wsl في الويندوز لديكِ فلا حاجة لتثبت نظام linux كاملا .
-
الفرق الجوهري يكمن في الهدف من المخطط فأحدهما يركز على البرمجة (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 حول العمليات التي تتكرر.
- 4 اجابة
-
- 1
-
-
المشكلة لديك في ملف 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"}
-
وعليكم السلام ورحمة الله وبركاته . هذا الكود يمثل تطبيق مخصص لتقنية مهمة جدا في تعلم الآلة تسمى الإيقاف المبكر (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 المجدولة.
- 7 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. لا يمكن إنشاء Emulator من الهاتف نفسه فالمحاكي يحتاج Android Studio أو أدوات Android SDK كاملة وهذه تعمل فقط على الكمبيوتر. ولكن يمكن تشغيل Flutter على الهاتف الحقيقي وستحتاجين إلى هاتف أندرويد و كابل USB وتفعيل ال USB Debugging في هاتفك . بعد تفعيل ال USB Debugging يجب توصيل الهاتف بالكمبيوتر من خلال الكابل وفتح ال cmd وكتابة التالي : flutter devices لو ظهر اسم هاتفك فهذا ممتاز يمكنكِ تشغيل المشروع مباشرة من خلال flutter run. وتوجد طريقة أخري وهي تشغيل التطبيق على الويب ولكن بعض ميزات الهاتف مثل الكاميرا وال GPS لن تعمل.
-
مرحبا أحمد . ما ستقوم به ممتاز أحسنت بالتوفيق لك إن شاء الله . ولكن 40 ساعة بالإسبوع هي مدة كبيرة هل أنت متأكد من أنك ستستطيع توفير كل هذا الوقت؟ أنصحك بعدم ضغط نفسك كثيرا حتى تعطي لعقلك الوقت الكافي للإستيعاب وأيضا حتى تستطيع تنفيذ المشاريع والتطبيقات بنفسك . إليك رابط تفاصيل محتوى الدورة التالي : https://academy.hsoub.com/learn/python-application-development/ ستجد أن المسار الأول يحوي 11 ساعة من الدروس و المسار الثاني يحوي 15 ساعة والمسار الثالث يحوي 7 ساعات والمسار الرابع يحوي 5 ساعات . إذا الأربع مسارات مجموعهم 38 ساعة من الدروس . ويجب عليك معرفة أنه لإنهاء ساعة واحدة من الدورة فهي تختلف من شخص إلى أخر في نطاق 3 إلى 5 ساعات . وذلك لأن الطلاب يقومون بإيقاف الدرس مثلا لكتابة كود والتطبيق أو لإستيعاب جزء ما أو البحث عن معلومة معينة أو إعادة جزء معين . إذا بهذا المعدل يمكننا حساب متوسط 38 * 4 ساعات أى أن الأربع مسارات ستأخذ منك من 114 ساعة إلى 152 ساعة مذاكرة وتطبيق وهي تختلف بناء على مدى قدرة إستيعابك وأيضا تطبيقك للدروس . وإذا قمت بدراسة الدورة بمعدل 40 ساعة في الإسبوع فسوف تقوم بإنهاء أول أربع مسارات في 3 إلى 4 أسابيع . ولكن أنصحك بعدم تخطي أى درس أو عدم التطبيق مع المدرب فالأهم من الشهادة وإنجاز الدورة هو تحقيق أقصى إستفاده منها والتطبيق في مشاريع حقيقية . بالتوفيق لك إن شاء الله.
- 4 اجابة
-
- 1
-
