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

عبد الوهاب بومعراف

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

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

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

كل منشورات العضو عبد الوهاب بومعراف

  1. ببساطة عندما تكتب for i in range(n): فهذا يعني أنك قد تستخدم المتغير i داخل الحلقة لكن عندما تكتب for _ in range(n): فهذا يعني أنك لا تحتاج المتغير وتستخدم الحلقة فقط لتكرار شيء معين عددا من المرات فهذا _ هو مجرد رمز للتوضيح بأنك لا تهتم بقيمة المتغير. وهذا مثال توضيحي: for i in range(5): print(i) هنا ستستخدم i لطباعة الأرقام بينما هنا: for _ in range(5): print("Hello") فأنت لا تحتاج إلى عداد، فقط تكرر طباعة Hello خمسة مرات.
  2. اتباع مسار وظيفي في تطوير الويب يعتبر خيارا جيدا لعدة أسباب وليس كلاما عبثيا فقط فالطلب على مطوري الويب مرتفع ومتزايد، مما يفتح العديد من الفرص للمحترفين في هذا المجال كما أن الرواتب عادة ما تكون جيدة خاصة مع إمكانية النمو والتقدم المهني ويتيح تطوير الويب مرونة في مكان العمل والجدول الزمني، حيث يمكن للعديد من المطورين العمل عن بعد فهذا المجال يوفر فرصا مستمرة للتعلم والنمو بفضل التقنيات الجديدة التي تظهر باستمرار. لكنه مجال فيه تنافسية كبيرة، الكثيرون يستسلمون في بداياتهم لأن أهدافهم مالية ومادية بحتة وهذا الأمر يجعل من التطوير الذاتي للمتعلمين صعبا لأن المجال يحتاج لتعلم مستمر وصبر واستمرارية وهو ما يفقده الكثيرون لأنّ العوائد لا تأتي من اليوم الأول. من بين التخصصات المطلوبة في السوق أذكر هاته: تحليل البيانات وعلوم البيانات. الذكاء الاصطناعي وتعلم الآلة. أمن المعلومات. تطوير التطبيقات المحمولة. تطوير البرمجيات السحابية.
  3. نمط ال Abstract Factory هو أحد أنماط التصميم المستخدمة في البرمجة الكائنية لتطبيقه يمكن أن نأخذ مثالا بيسيط وعمليا لكن قبل ذلك يجب أن نفهم أولا كيفية تطبيق النمط أولا نقوم بتحديد واجهتين (أو فئات مجردة) تمثل العائلات المختلفة من الكائنات ثم يجب إنشاء الفئات التي تنفذ هذه الواجهات بعدها يأتي الدور على إنشاء المصنع أين يجب أن تنشئ مصنعا Factory يمكنه إنشاء كائنات من الفئات المحددة وهذا مثال لنفترض أننا نريد إنشاء واجهات مستخدم مختلفة لنظامين وليكونا نظام Windows ونظام macOS: from abc import ABC, abstractmethod # واجهة للزر class Button(ABC): @abstractmethod def paint(self): pass # واجهة لواجهة المستخدم class GUIFactory(ABC): @abstractmethod def create_button(self) -> Button: pass # تنفيذ للزر في Windows class WindowsButton(Button): def paint(self): return "Windows Button" # تنفيذ للزر في macOS class MacOSButton(Button): def paint(self): return "MacOS Button" # مصنع Windows class WindowsFactory(GUIFactory): def create_button(self) -> Button: return WindowsButton() # مصنع macOS class MacOSFactory(GUIFactory): def create_button(self) -> Button: return MacOSButton() # استخدام المصنع def client_code(factory: GUIFactory): button = factory.create_button() print(button.paint()) # اختيار المصنع windows_factory = WindowsFactory() client_code(windows_factory) mac_factory = MacOSFactory() client_code(mac_factory) هذه الشيفرة ستستخدم نموذج المصنع المجرد (Abstract Factory) لإنشاء أزرار لواجهة المستخدم لنظامي التشغيل بحيث يحتوي على واجهات تحدد كيفية إنشاء الأزرار (Button و GUIFactory)، وفئات تقوم بتنفيذ هذه الواجهات (مثل WindowsButton و MacOSButton) ويقوم كل مصنع سواء WindowsFactory أو MacOSFactory بإنشاء نوع محدد من الأزرار في الأخير الدالة client_code تستخدم هذه المصانع لإنشاء الأزرار ثم طباعتها.
  4. في البداية، يبدأ المتغير i في الحلقة الخارجية بالقيمة 0 وبمجرد دخول الحلقة الخارجية، تبدأ الحلقة الداخلية بالعمل في حين المتغير n يأخذ القيم من 0 إلى 5 أي أن مجموع التكرارات هو 6 وبعد انتهاء الحلقة الداخلية لجميع القيم الممكنة للمتغير n أي من 0 إلى 5 تزداد قيمة i في الحلقة الخارجية لتصبح 1 مرة أخرى، يتم تشغيل الحلقة الداخلية كاملة بنفس الطريقة، والمتغير n يأخذ القيم من 0 إلى 5 ويستمر هذا النمط حتى تصل الحلقة الخارجية إلى قيمتها النهائية أي i تصل إلى 4.
  5. على الأغلب السبب في هذا الأمر عدم نجاح عملية التجميع أو compilation بشكل صحيح و الأسباب كثيرة، لذا تأكد من أنك قمت بتثبيت MinGW أو أي مفسر C++ آخر بشكل صحيح، و أيضا تأكد من أن المسار إلى مجلد bin في MinGW مضمن في متغيرات النظام.و أيضا لديك خطأ بسيط في الكود، حيث يجب أن تستخدم main بدلا من Main بهذا الشكل: #include <iostream> int main() { std::cout << "Line One\n"; std::cout << "Line Two\n"; std::cout << "Line Three\n"; return 0; } طبق هذه التغييرات و جرب مرة أخرى.
  6. بما أنك تمتلك فكرة عن البرمجة وأساسياتها نعم يمكنك تجاوز مرحلة سكراتش، لأنه بيئة برمجة موجهة بالأساس للمبتدئين لتعلم المفاهيم الأساسية بطريقة بصرية وسهلة، و بما أنك أتقنت هذه المفاهيم بالفعل، فلست بحاجة إلى العودة إليها، و كنصيحة يمكنك الإطلاع عليها مع تسريع الفيديو فقط حتى تأخذ أفكار جديدة ربما لم تسمع بها من قبل أو لم تدرسها
  7. هذا الملف إنشاؤه تلقائيا عند إعداد بيئة افتراضية في Python، و أهميته تكمن في كونه يحتوي على معلومات حول البيئة الافتراضية، مثل إصدار Python المستخدم والمسار الذي تم إنشاء البيئة الافتراضية فيه، و أيضا يحتوي على إعدادات معينة تؤثر على سلوك البيئة الافتراضية، حيث يمكن أن يتضمن معلومات حول ما إذا كانت البيئة تستخدم مكتبات Python من النظام أو مكتبات أخرى محددة، و يساهم في إدارة المكتبات والمكتبات الأخرى التي يتم تثبيتها داخل البيئة الافتراضية. و الملف نفسه لا يحتاج إلى تعديل يدوي، ويدار تلقائيا بواسطة Python عند إنشاء البيئة الافتراضية، لذا لا يجب أن تعدل عليه.
  8. صحيح في الطباعة الرقمية لا يوجد حبر ذهبي مباشر، لكن يمكنك محاكاة اللون الذهبي باستخدام خليط من الألوان CMYK، لكن النتيجة ستكون أقرب إلى اللون الأصفر البرتقالي، وليست ذهبية لامعة، أو يمكنك الإعتماد على بعض الطابعات و التي توفر أحبارا معدنية خاصة، مثل الحبر الذهبي أو الفضي، و هذه الأحبار تحتوي على جزيئات معدنية تخلق تأثيرا لامعا شبيها بالذهب الحقيقي. و أيضا عند إعداد التصميم للطباعة، يمكنك استخدام تدرجات اللون الأصفر مع بعض التفاصيل الصغيرة من الأبيض أو البرتقالي للحصول على تأثير يشبه الذهب، لكن يجب الانتباه أن هذا التأثير يكون مرئيا على الشاشة، وقد يختلف قليلا بعد الطباعة بسبب قيود الطباعة الرقمية.
  9. المشكلة التي تواجهها هي أنك تحاول استخدام أمر source الذي يتم استخدامه في بيئة Linux، بينما على Windows يستخدم أمر مختلف لتنشيط البيئة الافتراضية. لذا إذا كنت تستخدم cmd يجب أن تستخدم هذا الأمر: Heart-Disease\Scripts\activate أما إذا كنت تستخدم PowerShell وهو على الأرجح في حالتك على VS Code: .\Heart-Disease\Scripts\Activate.ps1 و إذا واجهت خطأ بسبب سياسة التنفيذ، يمكنك تغيير السياسة مؤقتا باستخدام هذا الأمر: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process ثم حاول تفعيل البيئة مرة أخرى.
  10. هو المعرّف الخاص بك على أداة AnyDesk قم بتحميله بعدها ستجد الرقم الذي بجانب Your Address انسخه والصقه كما قلت لك، ثم سيمكنني الدخول إلى جهازك لمعرفة المشكلة بالتحديد أين.
  11. أرسل إليّ معرّف ال id الخاص بك على AnyDesk لرؤية ما المشكلة. أرسله على الخاص.
  12. ما دامت جميع المكتبات مثبتة في البيئة الافتراضية فربّما نسيت تفعيل البيئة لهذا لا يتمّ التعرف عليها، قم بتفعيل البيئة الافتراضية من خلال الأمر: .\env\Scripts\activate إن كان اسم البيئة الافتراضية خاصتك مختلفا عن env قم باستبدالها بالاسم الصحيح. وبعد تفعيل البيئة نقوم بتثبيت المكتبات المطلوبة: pip install pandas numpy matplotlib seaborn scikit-learn tensorflow keras
  13. تحتاج إلى حفظ البيانات المعدلة في قاعدة البيانات باستخدام مكتبة sqlite3 أو SQLAlchemy حيث بعد التعديل تضيف هذا السطر: heart.to_sql('cholesterol', conn, if_exists='replace', index=False) و تأكد من استبدال cholesterol باسم الجدول الصحيح في قاعدة البيانات، و الوسيط if_exists='replace' ستستبدل الجدول القديم بالبيانات الجديدة، أما إذا كنت تريد إضافة البيانات بدون استبدال الجدول، يمكنك استخدام if_exists='append'.
  14. الخطأ الذي تواجهه ناتج عن محاولة الوصول إلى phpMyAdmin باستخدام بروتوكول HTTP على منفذ 443، وهو المنفذ المخصص لاتصالات HTTPS المشفرة، يعني يجب استخدام HTTPS بدلا من HTTP عندما تحاول الوصول إلى المنفذ 443. لإصلاح هذا الخطأ، قم بتغيير العنوان في المتصفح ليكون: https://localhost/phpmyadmin بالتوفيق إن شاء الله.
  15. المشكلة لديك في مسار الملف، حيث يجب إضافة حرف r قبل النص لتحويله إلى سلسلة نصية خام بحيث يتجاهل بايثون علامات الهروب بهذا الشكل: heart = pd.read_sql(r"Data-Heart-Disease\heart.db") print(heart.head()) و أيضا تأكد من أنك تستخدم مكتبة pandas بشكل صحيح وتأكد من وجود قاعدة البيانات heart.db في المسار المحدد.
  16. الشهادات التي تقدمها الأكاديمية تعتمد على إتمام المتعلم للدورات التدريبية بنجاح بالإضافة إلى إجتياز الإختبار و الذي يكون عبارة عن مشروع يتم فيه تطبيق ما تعلمته، و الشهادة تشمل اسم الدورة، واسم المتعلم، وتاريخ الإتمام، ويمكن استخدامها لإثبات المهارات والمعارف المكتسبة أثناء الدورة. لكن غالبا الشركات لاتنظر كثيرا إلى الشهادة ومن أين حصلت عليها فالأهم هو الخبرة التي تلمكها ومعرض الأعمال الذي لديك والذي يؤكد للشركة مدى تعلمك، ومن خلال دورات الأكاديمية فأنت سوف تملك معرض أعمال لابأس به ويمكنك تطويره بنفسك مع الوقت.
  17. إن كان سؤالك متعلقا بإحدى الدورات أو بإحدى الدروس فأرجو في المرة القادمة وضع تعليقك أسفل الدرس في صندوق التعليقات المخصص لذلك، كي يتسنى لنا معالجة المشكلة التي تواجهها بشكل سريع وفعال أما بالنسبة للخطأ الظاهر في الصورة فهو خطأ في المسافة البادئة (IndentationError) ولغة بايثون حساسة للمسافات ورسالة الخطأ هذه: unindent does not match any outer indentation level تعني أن هناك خطأ في ترتيب المسافات أو علامات الجدولة (tabs) في السطر المحدد، والذي يُظهره الخطأ على السطر 5 لذا تأكد من أن جميع الأسطر مصطفة بشكل صحيح في الشيفرة كالتالي: my_num = 6 user_guess = input("Enter your guess: ") if not user_guess: print("You did not enter a number!") exit() if int(user_guess) > 0: user_guess = int(user_guess) if my_num == user_guess + 1 or my_num == user_guess - 1: print("So close!!!") elif my_num == user_guess: print("You win!!!") else: print("You lose!!!") else: print("Enter a positive number.")
  18. مسار تطوير واجهات المستخدم لا يُعنى بتدريس رياكت بشكل مفصل، يمكنك الاطلاع على محتوى دورة تطوير واجهات المستخدم من خلال هذا الرابط: دورة تطوير واجهات المستخدم ويتم تدريس إطار العمل رياكت بشكل مفصل في دورة تطوير التطبيقات بلغة جافا سكريبت ويمكنك التعرف على مساراتها ومحتوياتها من خلال هذا الرابط:
  19. حسب الصورة فالصفحة التي تحاول الوصول إليها غير موجودة فقد تكون إعدادات النشر (Publish Directory) غير صحيحة لذا يجب التأكد من أن إعداد "مجلد النشر" في إعدادات Netlify يتوافق مع مجلد بناء المشروع الخاص بك يجب أن يكون "مجلد النشر" هو build لذا تحقق من الإعدادات وتأكد من تعيين المجلد بشكل صحيح. كما أنه من المحتمل عدم وجود ملف index.html في المجلد الصحيح لذا تأكد من أن هناك ملف index.html في مجلد النشر المحدد، لأنه إذا كان الملف الرئيسي للموقع غير موجود في المجلد الذي تم تحديده للنشر فلن يتم عرض الموقع وسيظهر خطأ 404.
  20. أنصحك باستخدام Pandas لتحويل البيانات لأنه سيوفر لك الكثير من الوقت والجهد في معالجة البيانات، لأنه يوفر واجهة سهلة للتعامل مع البيانات، مما يجعل من السهل قراءة ملفات CSV وتحويلها كما يمكنك إجراء معالجة مسبقة للبيانات (مثل التنظيف، التحويل، والتصفية) باستخدام وظائف pandas قبل تخزينها في قاعدة البيانات. كما أن المكتبة متكاملة مع SQL يمكن استخدامها مع مكتبات مثل SQLAlchemy أو SQLite لكتابة البيانات إلى قواعد البيانات بسهولة.
  21. إذا كنت تقصد ديسكورد خاص بالأكاديمية فهو غير متوفر حاليا، و لكن يوجد منصة حسوب IO التي تحتوي على العديد من المجتمعات سواء خاصة بالبرمجة أو مجالات أخرى، يمكنك طرح تساؤلاتك و المشاركة بالمساهمات هناك و ستجد مستخدمين مهتمين بنفس المجال الذي تريد، أما إذا كنت تريد سرفرات خاصة بديسكورد يمكنك فقط البحث في جوجل على نوع السرفر الذي تريد و ستجد الكثير، فيوجد العديد من المواقع التي توفر سرفرات في أغلب المجالات على ديسكورد.
  22. حاليا يوجد في دورة الجافاسكريبت مسار خاص تطوير تطبيقات الأندرويد باستخدام React Native، و لكن نقدر اقتراحك بشأن دورة تطوير تطبيقات الأندرويد بلغة كوتلن، وسنقوم بإيصال طلبك إلى الإدارة، فإذا كان الطلب عليها كبير ستراجع الإدارة هذه النقطة و ربما ستتوفر في القريب العاجل.
  23. هندسة الشبكات بالطبع هي مطلوبة في الوقت الحالي ولها مستقبل واعد خاصة مع تزايد التحول الرقمي والاعتماد المتزايد على الحلول السحابية فالشركات اليوم لا تزال بحاجة إلى مهندسي شبكات لإدارة البنية التحتية الرقمية الخاصة بها وضمان أمانها واستمراريتها خاصة مع تزايد التهديدات الأمنية أين أصبح دور مهندسي الشبكات وأمن الشبكات ضروريا لحماية البيانات الحساسة. من بين الوظائف المتاحة يمكن أن نعدّد التالي: مهندس شبكات (Network Engineer): ويكون مسؤولا عن تصميم وإعداد وصيانة شبكات الحاسوب للشركات والمؤسسات وقد يتخصص البعض في مجالات مثل الأمن أو الشبكات اللاسلكية. مدير شبكات (Network Administrator): وهو الذي يدير الشبكات الموجودة في المؤسسات والشركات، بما في ذلك مراقبة الأداء، استكشاف الأخطاء، وإصلاحها، والتأكد من أن الشبكة تعمل بكفاءة. محلل أمان الشبكة (Network Security Analyst): هنا يقوم بالتركيز على حماية الشبكة من التهديدات السيبرانية ويعمل على تأمين البنية التحتية للشبكة. مهندس مراكز البيانات (Data Center Engineer): يتعامل مع إعداد وصيانة الخوادم والأنظمة في مراكز البيانات، والتي تشكل البنية التحتية الأساسية للعديد من الشركات. مهندس السحابة (Cloud Network Engineer): يعمل مع بنية الشبكات السحابية، مثل AWS، Azure، وGoogle Cloud، لضمان الربط والأداء والأمن في السحابة. بالنسبة للعلاقة، فلا توجد علاقة مباشرة بين علوم الحاسب وتطوير واجهة المستخدم من جهة وهندسة الشبكات من جهة أخرى فكل مجال يركز على جوانب مختلفة فعلوم الحاسب تتناول دراسة الخوارزميات، البرمجة، بنية الحوسبة، والذكاء الاصطناعي يمكن أن تعطيك فهما أساسيا لأنظمة التشغيل والبنية التحتية التي قد تفيدك في هندسة الشبكات، ولكنها ليست شرطا أساسيا لها، لهذا يمكنك دراسة كل مجال على حدة بناء على اهتماماتك وأهدافك لكن هذا لا يعني أن هذه المجالات ليست لديها بعض التداخلات في بعض المفاهيم الأساسية.
  24. لتحقيق هذا النوع من التحكم في الوصول عادة نقوم باستخدام كلا من نظام التوثيق (Auth) وMiddleware يمكن استخدام نظام التوثيق لتحديد من هو المستخدم (مدير أو طالب) وعادة ما يتم ذلك عند تسجيل الدخول بعد ذلك يمكنك تخزين نوع المستخدم في الجلسة أو في التوكن. كما يمكن استخدام Middleware للتحقق من نوع المستخدم قبل الوصول إلى أجزاء معينة من التطبيق فيقوم ال Middleware بفحص إذا كان المستخدم يمتلك الصلاحيات اللازمة للوصول إلى صفحة معينة أو تنفيذ إجراء معين. سأسترسل في الطريقة عبر مثال توضيحي، أولا تقوم بإنشاء Middleware للتحقق من نوع المستخدم: php artisan make:middleware CheckRole ثم داخله نضع التالي، وفي الأخير نعيد المستخدم الذي لا يمتلك أي صلاحيات إلى الصفحة الرئيسية: public function handle($request, Closure $next, $role) { if (auth()->check() && auth()->user()->role == $role) { return $next($request); } return redirect('/home'); } الخطوة التالية هي التسجيل في Kernel من خلال تسجيل Middleware في app/Http/Kernel.php هكذا: protected $routeMiddleware = [ 'role' => \App\Http\Middleware\CheckRole::class, ]; وهذا نموذج لاسخداماته في الRoutes: Route::group(['middleware' => ['role:admin']], function () { // المسارات الخاصة بالمدير }); Route::group(['middleware' => ['role:student']], function () { // المسارات الخاصة بالطالب });
×
×
  • أضف...