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

Mustafa Suleiman

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

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

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

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

    365

كل منشورات العضو Mustafa Suleiman

  1. أولاً أنت لا تقصد بالطبع القيام بإنشاء مؤسسة استضافة بالمعنى الحرفي، فذلك يتطلب بنية تحتية مكونة من سيرفرات وشبكات وفريق دعم فني وخلافه أي Data Center، وهو أمر مكلف في البداية وبحاجة إلى رأس مال. ولكن في البداية تستطيع الاستفادة نموذج الـ Reseller (البائع الموزع) بدلاً من بناء شركة استضافة من الصفر، وفي نموذج الـ Reseller، تقوم بشراء خدمات استضافة من شركة استضافة كبيرة ومعتمدة، ثم تعيد بيع هذه الخدمات للعملاء الخاصين بك بسعر محدد. فيما يلي بعض المزايا والاعتبارات لنموذج الـ Reseller: إنشاء شركة استضافة مستقلة يتطلب استثمارات كبيرة في البنية التحتية والتسويق وفريق الدعم والتطوير، أما في نموذج الـ Reseller، فإنك تستفيد من البنية التحتية الموجودة للشركة الأم ولا تحتاج إلى الاستثمار بشكل كبير في هذه الجوانب. بدلاً من التركيز على بناء البنية التحتية وتشغيل الشركة، يمكنك التركيز بشكل أكبر على جلب العملاء وزيادة قاعدة العملاء والتسويق لخدمات الاستضافة. في بعض الحالات، يمكن أن تقدم الشركة الأم دعمًا فنيًا لعملائك، مما يخفف العبء عنك في تقديم الدعم الفني. إذا اخترت شركة استضافة معروفة وموثوقة كشركة أم لك، فقد تستفيد من سمعتها ويسهل عليك بناء ثقة العملاء في خدماتك. عندما تشعر بأن شركتك قد نمت بشكل كبير وأصبح لديك قاعدة عملاء مستدامة، تستطيع التفكير في الانتقال إلى نموذج الشركة المستقلة بما في ذلك الاستثمار في البنية التحتية الخاصة بك. وبخصوص تصميم المواقع، فتستطيع تعيين مصمم مواقع متخصص في الـ UI/UX من أجل تصميم المواقع الخاصة بالعملاء. ولكن نصحتي إليك هي، لا تقم بإنشاء مشروع في مجال لا تفهم خباياه أو ليس على دراية به، فأنت بحاجة على الأقل لتعلم مجال البرمجة لكي تتمكن من إنشاء مشروعك وذلك من الإلمام بجوانبه، أو مشاركة شخص ذو ثقة لديه دراية.
  2. حقًا أحييكي على ذلك الفضول، فهو مطلوب في مجال تعلم البرمجة من أجل تطوير مهاراتك الوصول بعيدًا، ولكن في البداية لا داعي لذلك، فالأمر قد يصيبك بالإحباط بدون داعي وأيضًا ليس مطلوب منك ذلك. لكن المطلوب هو تنفيذ المشاريع أي Get things done، لذلك بعد إنهاء مسارك البرمجي بالكامل أنصحك بالإطلاع على الكود المصدري الخاص بالمكتبات وتعلم كيف تم تطوير تلك المكتبة وكيف تم الربط بين أجزاءها وكيفية كتابة التعليقات على الكود وتنظيمه وأمور أخرى. والبداية من الأفضل أن تكون من خلال مكتبات صغيرة الحجم وليست كبيرة ثم الإنتقال لمكتبة بكود مصدري بحجم أكبر وهكذا. وإليك بعض المكتبات على GitHub: https://github.com/python-pillow/Pillow https://github.com/psf/requests https://github.com/carpedm20/emoji https://github.com/termcolor/termcolor أي أنه يمكنك الوصول للكود المصدري في حال كانت المكتبة مفتوحة المصدر، وستجدي رابط GitHub في الموقع الرسمي للمكتبة أو من خلال صفحة المكتبة على https://pypi.org حيث ستجدي رابط باسم Homepage أو Source.
  3. ستحتاج إلى استخدام حزمة (package) تسمى webview_flutter، وتتيح لك عرض صفحات الويب داخل تطبيقك بشكل مدمج كالتالي: أولاً عليك بتثبيت الحزمة بفتح ملف pubspec.yaml في مشروع Flutter وأضف الحزمة التالية تحت قسم dependencies: dependencies: flutter: sdk: flutter webview_flutter: ^4.0.0 ضمن ملف الكود الخاص بالشاشة التي ترغب في استخدام الـ WebView بها، عليك بإضافة استيراد للحزمة: import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; الآن استخدام ويدجت (Widget) WebView لعرض الصفحة من الموقع الخارجي: class ExternalLoginPage extends StatelessWidget { final String externalLoginUrl = "https://example.com/login"; // رابط صفحة الدخول الخارجية @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('External Login Page'), ), body: WebView( initialUrl: externalLoginUrl, javascriptMode: JavascriptMode.unrestricted, onPageFinished: (String url) { // هذا الدالة ستتم استدعائها عندما يتم تحميل الصفحة بالكامل }, ), ); } } بعد لذلك نأتي للعودة من الصفحة الخارجية بعد الانتهاء من عملية تسجيل الدخول، ونستخدم الملاحظات (pop) بواسطة Navigator للعودة إلى الشاشة السابقة، وعند العودة إلى الشاشة السابقة، تستطيع حفظ بيانات الدخول في حالة الحاجة لاستخدامها في التطبيق. ولحفظ بيانات الدخول في التطبيق بحيث لا يتطلب منك تسجيل الدخول في كل مرة، اعتمد على الحزمة المحلية (local storage) مثل shared_preferences لتخزين بيانات صغيرة مثل الاسم والحالة المسجلة. وقم بتثبيت حزمة shared_preferences عبر ملف pubspec.yaml: dependencies: flutter: sdk: flutter webview_flutter: ^4.0.0 shared_preferences: ^2.0.0 ثم استخدمها لحفظ بيانات الدخول في التطبيق. عندما تعود من صفحة الدخول الخارجية وتقرر الاحتفاظ بالمعلومات المسجلة، بحفظها في الـ shared_preferences: import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; class ExternalLoginPage extends StatelessWidget { final String externalLoginUrl = "https://example.com/login"; // رابط صفحة الدخول الخارجية @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('External Login Page'), ), body: WebView( initialUrl: externalLoginUrl, javascriptMode: JavascriptMode.unrestricted, onPageFinished: (String url) { // هذا الدالة ستتم استدعائها عندما يتم تحميل الصفحة بالكامل // هنا يمكنك التحقق من الصفحة التي تم تحميلها واستخدامها لحفظ البيانات المطلوبة if (url == externalLoginUrl) { // هنا يمكنك استخدام الـ SharedPreferences لحفظ بيانات الدخول saveLoginData("John Doe"); // افترضنا أن الاسم هو "John Doe" // بعد حفظ البيانات، قم بالعودة إلى الشاشة السابقة Navigator.pop(context); } }, ), ); } void saveLoginData(String username) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString('username', username); // يمكنك هنا حفظ المزيد من البيانات مثل كلمة المرور إن لزم الأمر } } وعند الحاجة إلى بيانات الدخول مرة أخرى، بإمكانك استرجاعها من shared_preferences بدون الحاجة لتسجيل الدخول كل مرة: void getLoginData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); String username = prefs.getString('username'); // يمكنك استخدام الاسم المحفوظ هنا بشكل طبيعي في التطبيق }
  4. ما الفائدة من الشرط التالي: if (button.className === 'crash-btn crash-betbtn crash-betbtn--stop') }); حيث لا يوجد أي كود بعد لتنفيذه أو حتى return من أجل إنهاء الكود في حال تحقق الشرط. وأيضًا بخصوص الشرط في الكود التالي: if (button.className === 'crash-gamemountains.crash-gamemountains--game' && button.className !== 'crash-game__mountains') يحتوي على اختبارين، أولاً يتحقق من اسم الفئة الأولى، ثم يتحقق مرة أخرى من الفئة الأولى دون الفئة الثانية، فهل المراد هو التحقق من عدم تكرار الفئة الثانية في الفئة الأولى؟ حيث أن الكود الحالي غير مناسب لذلك. وربما تحدث مشكلة بسبب تتعيين قيمة textContent لزر الرهان (Bet)، فإذا كانت الفئة المستهدفة غير موجودة على الصفحة فسيؤدي ذلك إلى خطأ.
  5. لا مشكلة لو قمت بتنفيذ تصميم من نفسك، المطلوب هو تنفيذ المشروع المطلوب بتصميم مقبول، ومن المفترض أنك خلال الدورة تعلمت كيف يكون شكل الموقع والتصميم الخاص به وأشكال الأقسام. ولمساعدتك أنصحك بالإطلاع على المقالات التالية: ثم نأتي لخطوة استلهام التصميم، والتي تتطلب تغذية بصرية لإختيار أشكال الأقسام في موقعك من عدة تصاميم مختلفة أي تجميع التصميم من خلال عدة تصاميمـ، وقد تصادف تصميم مناسب للفكرة التي تريد تنفيذها ولا مشكلة في ذلك لكن حاول التعديل عليه قليلاً أو ذكر أنك لم تقم بتصميم الجزء الخاص بالـ UI/UX بل كتبت الكود فقط لحفظ الحقوق، وستجد مواقع كثيرة لاستلهام التصميم هنا: وبخصوص الألوان أنصحك بالإعتماد على الموقع التالي في البداية فهو يوفر لك قوالب للألوان لتختار من بينها: https://www.happyhues.co/ والموقع التالي أيضًا: https://coolors.co/palettes/trending ومع الوقت ستتحسن لديك مهارة التصميم من خلال التغذية البصرية والتطبيق، ولكن أنصحك بتعلم أساسيات تصميم واجهة المستخدم فيما بعد فهو أمر ضروري لمطور الواجهات الأمامية، وذلك من خلال القنوات التالية: Ahmad Sekmani Anas Rafaat | أنس رأفت وستجد معلومات مفيدة هنا أيضًا: وإذا كان لديك أي استفسار بخصوص مشروع التخرج وتريد التواصل مع المدرب المسؤول عن مشروعك، فتستطيع التحدث مع مركز المساعدة في أكاديمية حسوب.
  6. الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر ولكن يمكن توضيح الخطوات العامة لتنفيذ المشروع، وفي حال وفرت الكود يمكن مساعدتك في حل المشكلة التي تواجهك. أولاً أنت بحاجة إلى حل المشروع في لغة C++ واستخدام طريقة التكرار (iteration) لتنفيذ خوارزميات الترتيب المختلفة (Insertion sort، Merge sort، Quick sort، Counting Sort) على المجموعات المختلفة من البيانات، وسنقوم بالتالي: 1- عليك بتعريف خوارزميات الترتيب المختلفة المطلوب استخدامها (Insertion sort، Merge sort، Quick sort، Counting Sort)، فقم بتنفيذ كل خوارزمية بطريقة التكرار (iteration) بحيث تقوم بفرز المجموعات العشوائية. 2- إنشاء دوال لتوليد البيانات العشوائية (random data)، البيانات المرتبة (sorted data) والبيانات المرتبة بالترتيب العكسي (reverse-sorted data) بناءً على الحجم الذي يدخله المستخدم. 3- اسأل المستخدم لكل مجموعة عن حجمها (عدد العناصر التي يرغب في توليدها). 4- لكل مجموعة من البيانات (random data، sorted data، reverse-sorted data)، قم بتنفيذ كل خوارزمية وقياس الوقت الذي استغرقه الفرز باستخدام دالة قياس الوقت مثل clock(). 5- تسجيل نتائج قياس الوقت لكل مجموعة بيانات ولكل خوارزمية في ملف إكسل (Excel sheet). يمكنك استخدام مكتبة خارجية مثل "libxl" لكتابة البيانات في ملف Excel. 6- استخدم Excel tools لرسم النتائج المسجلة على شكل رسوم بيانية، برسم ثلاثة مخططات بيانية منفصلة لكل مجموعة من البيانات (random data، sorted data، reverse-sorted data) تُظهِر أداء كل خوارزمية بحسب حجم المجموعة. وبالطبع تستطيع مكتبات خارجية لتسهيل بعض الأمور مثل الرسم البياني وكتابة البيانات في ملف Excel (مثل matplotlib لـ C++ أو gnuplot) لتجسيد النتائج بدلاً من استخدام Excel إذا كان الأمر ممكنًا، ولكن المطلوب الأساسي هو تنفيذ خوارزميات الترتيب بطريقة التكرار وقياس الوقت الذي تستغرقه هذه الخوارزميات على المجموعات المختلفة من البيانات.
  7. أفضل بيئة ولغة هي بيئة العمل واللغة التي لديك خبرة بها، فأنت مثلاً مطور MERN بالتالي أنت على دراية ببيئة Node.js. ,بيئة Node.js ممتازة من أجل ذلك الغرض مع واستخدام مكتبات خارجية متخصصة للتعامل مع الصور والفيديوهات، مثل sharp لمعالجة الصور و ffmpeg لمعالجة مقاطع الفيديو، وتستطيع العثور على العديد من المكتبات الأخرى المتاحة حسب احتياجات مشروعك. وإذا أردت ترشيحات أخرى فهناك Python مع مكتبات مثل Django أو Flask واستخدام مكتبات مثل Pillow لمعالجة الصور و MoviePy لمعالجة الفيديوهات. يوجد أيضًا PHP مع Laravel Framework مع الإعتماد على مكتبات مثل Intervention Image لمعالجة الصور و FFMpeg للتعامل مع ملفات الفيديو وتلك المكتبة تسمح لك بقص، دمج، تحويل الصيغ، وتطبيق تأثيرات وفلاتر على مقاطع الفيديو. ولمعلوماتك تستخدم كل من يوتيوب وانستجرام بنية أساسية معقدة لمعالجة الصور والفيديوهات، وتشمل تلك البنية الأساسية مجموعة متنوعة من المكونات ، بما في ذلك الخوادم والشبكات والأجهزة. وتستخدم يوتيوب مجموعة متنوعة من الأنظمة الأساسية لمعالجة الصور والفيديوهات ، تشمل kubernetes و tensorflow، بينما تستخدم انستجرام أيضًا مجموعة متنوعة من الأنظمة الأساسية ، بما في ذلك kafka و elasticsearch. وتعتمد كل من يوتيوب وانستجرام أيضًا مجموعة متنوعة من الإطارات لمعالجة الصور والفيديوهات، بما في ذلك OpenCV و FFmpeg. ومن المهم أن نفهم أنه عند التعامل مع الصور والفيديوهات، لا تكون اللغة أو البيئة وحدها المسؤولة عن الأداء، بل تعتمد على المكتبات المستخدمة والحالة الخاصة للمشروع.
  8. إذا أردت نصيحتي، فيكفيك المعرفة فقط بهياكل البيانات الأساسية في بداية تعلمك للبرمجة والأمر نفسه بالنسبة للخوارزميات، حيث أنك لن تحقق استفادة من هياكل البيانات والخورازميات المتقدمة في البداية وستنساها، ومن الأفضل العودة إليها بعد إنهاء مسارك البرمجة بالكامل وتنفيذ أكثر من مشروع كبير الحجم نسبيًا، وعند العودة لدراستها ستفهم ما الفائدة منها. وبالنسبة للدوال والـ methods المختلفة، فعليك بفهمها ثم حفظها في البداية ثم التطبيق، وبعد ذلك تستطيع البحث في حال نسيت أمرًا ما. وفي البداية عليك بفهم هياكل البيانات الأساسية وهي: القوائم (Lists) الصفوف (Tuples) القواميس (Dictionaries) المجموعات (Sets) الفئات (Classes) وبالنسبة للخوارزميات فهى: الحلقات (Loops) الدوال (Functions) التعبيرات النمطية (Regular Expressions) وغيرها من الخوارزميات الأساسية في بايثون. أما بعد ذلك كما أخبرتك، ستحتاج إلى تعلم الخوارزميات المتقدمة لتطوير مهاراتك البرمجية كالتالي: البحث الثنائي (Binary Search): خوارزمية فعالة تستخدم للبحث عن عنصر معين في قائمة مرتبة بسرعة. فرز القائمة (Sorting Algorithms): مجموعة من الخوارزميات التي تستخدم لترتيب البيانات في قوائم بترتيب محدد، مثل فرز الدمج (Merge Sort) وفرز السريع (Quick Sort). البحث الخطي (Linear Search): بحث بسيط يتم فيه فحص كل عنصر في القائمة للعثور على القيمة المطلوبة. القوائم المرتبة (Linked Lists): هيكل بيانات يتيح لك تخزين عناصر بطريقة مرتبة وربطها ببعضها البعض. المكدس (Stack): هيكل بيانات يعمل بنظام "الLast-In-First-Out" ويستخدم عادة في تتبع التاريخ المحدود وتنفيذ الدوال التابعة. الطابور (Queue): هيكل بيانات يعمل بنظام "First-In-First-Out" ويستخدم عادة في تنفيذ العمليات بترتيب الوقت. القوائم المرتبة ذات الاتجاهين (Doubly Linked Lists): نوع من القوائم المرتبة يحتوي على روابط في الاتجاهين، مما يسمح بالوصول إلى العناصر بسهولة من البداية والنهاية. خوارزمية البحث العميق (Depth-First Search): تستخدم للتنقل عبر الأشجار والرسم البياني بطريقة عميقة قبل التحرك إلى المستوى التالي. خوارزمية البحث العرضي (Breadth-First Search): تستخدم للتنقل عبر الأشجار والرسم البياني بطريقة أفقية بدءًا من الجذر. وأيضًا يوجد كتب جيدة أنصحك بقراءتها تم ذكرها هنا:
  9. تأكد من أن الحزمة Law. status موجودة بشكل صحيح في ملف google-services.json حيث يجب كتابة اسم الحزمة بنفس الاسم في applicationId في gradle ، وكمثال: "client_info": { "mobilesdk_app_id": "1:23978655351:android:2b2fece6b961cc70", "android_client_info": { "package_name": "in.ac.geu.debug" } }, هنا يجب أن تطابق اسم الحزمة مع applicationId في gradle كالتالي: defaultConfig { applicationId "in.ac.geu.debug" //اكتب اسم الحزمة الصحيح هنا minSdkVersion 23 targetSdkVersion 26 versionCode 7 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
  10. الموقع جيد، لكن عليك بتحسين جزء الـ Hero (أول قسم في الموقع) بحيث يتم جذب إنتباه من يستعرض موقعك الشخصي لأول مرة، وأيضًا لعرض معلومات كافية عنك، فالإنطباع الأول هام جدًا وكل ما يتم رؤيته عند زيارة الموقع هو اسمك وتخصصك لكن لا وجود لأي إشارة إلى أن هناك أجزاء أخرى من الموقع، لذلك حاول تحسين ذلك الجزء. وإليك بعض الأمثلة: أيضًأ حاول وضع روابط GitHub وLinkedIn أي الروابط الخاصة بالبرمجو تجنب وضع شهادات أو روابط في غير مجالك. وبخصوص طريقة عرض الأعمال، من الأفضل وضع المزيد من الصورة وليس صورة واحدة فقط، ويا حبذا لو قمت بتخصيص صفحة للتحدث عن كل عمل أو رابط لتصفح المشروع بشكل حي.
  11. تكلفة إنشاء متجر إلكتروني أو موقع ويب ووردبريس تختلف حسب مجموعة متنوعة من العوامل، بما في ذلك: نوع القالب الذي تختاره عدد الميزات التي تريد إضافتها إلى موقعك مستوى الدعم الذي تحتاجه وعامًة إنشاء متجر إلكتروني أو موقع ويب ووردبريس يتطلب تكلفة تتراوح من 500 دولار إلى 5000 دولار، وإذا كنت ترغب في إنشاء متجر إلكتروني بسيط، فقد تتمكن من القيام بذلك بتكلفة أقل، ولكن إذا كنت ترغب في إنشاء متجر إلكتروني معقد مع العديد من الميزات، فستحتاج إلى إنفاق المزيد من المال. وفيما يلي بعض العوامل التي تؤثر على تكلفة إنشاء متجر إلكتروني أو موقع ويب ووردبريس: هناك العديد من القوالب المختلفة المتاحة لـ ووردبريس، وبعضها مجاني والبعض الآخر مدفوع، وتختلف تكلفة القوالب المدفوعة من 50 دولارًا إلى 1000 دولار أو أكثر. بإمكانك إضافة العديد من الميزات إلى موقع ووردبريس الخاص بك، مثل ميزات التجارة الإلكترونية وميزات التسويق عبر البريد الإلكتروني وميزات الأمان، وتختلف تكلفة تلك الميزات من مزود لآخر. في حال أنك غير خبير في ووردبريس، فستحتاج إلى الحصول على دعم من مطور ويب، وتختلف تكلفة الدعم من مطور لآخر. وفي البداية أنت تريد طريقة لإنشاء متجر إلكتروني أو موقع ويب ووردبريس بتكلفة منخفضة، وهناك بعض الأشياء التي يمكنك القيام بها: قم بإضافة الميزات التي تحتاجها فقط، فأنت لا تحتاج إلى إضافة جميع الميزات المتاحة إلى موقع ووردبريس في باديء الأمر، فقط بإضافة الميزات التي تحتاجها بالفعل. البدء في تعلم مجال البرمجة من خلال تعلم PHP ولارافيل ووردبريس ثم إنشاء مشروعك الخاص وفي أكاديمية حسوب يوجد دورة تطوير تطبيقات الويب باستخدام لغة PHP.
  12. بالفعل هي مشكلة قائمة حاليًا في webdriver_manager حاول تمرير إصدار المتصفح كالتالي في حال أنك تستخدم selenium 4 : from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager(version="115.0.5790").install())) وفي حال استمرت المشكلة، فالسبب هو Selenium Manager تم تضمينه في selenium الإصدار 4.10.0 وكل ما أنت بحاجة إليه الآن هو كتابة الكود كالتالي: from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service() options = webdriver.ChromeOptions() driver = webdriver.Chrome(service=service, options=options) وفي حال لم يتم العثور على الـ driver في الـ PATH فسيقوم Selenium Manager بتحميله تلقائيًا.
  13. أولاً ما قمت بتنفيذه هو جانب الواجهة الأمامية Front-End وهو الجانب الخاص بعرض البيانات الواردة من الخادم أو من أي API خارجي والذي بدوره يعمل على واجهة خلفية Back-End، ولتفعيل خواص الموقع أنت بحاجة إلى برمجة واجهة خلفية أو استخدام واجهة API من طرف ثالث مثل بوابة دفع معتمدة وآمنة تسمح للعملاء بإجراء عمليات الشراء عبر الإنترنت، وبوابات الدفع تتيح التحقق من بطاقات الائتمان أو الحسابات المصرفية وتنفيذ العمليات المالية بشكل آمن. بعض أمثلة على بوابات الدفع هي PayPal وStripe و2Checkout. وأنت في دورة تطوير واجهات المستخدم ستتعلم فقط تطوير الواجهة الأمامية وليس الخلفية، وليس عليك تعلم الواجهة الخلفية لتفعيل ميزة الشراء فكما أخبرتك هناك منصات جاهزة توفر لك API لذلك، لكن في حال أردت إضافة ميزات أخرى فقد تحتاج إلى تطوير الواجهة الخلفية من خلال node.js أو PHP وغيرهم مما يعني أنك ستصبح Full-stack developer.
  14. في حال أنك من مصر وتستخدم cdn من jsdelivr ووجدت أخطاء في الكونسول بخصوص المكتبات، فعليك بتعديل روابط المكتبات من cdn.jsdelivr إلى fastly.jsdelivr وفي حال استمرت المشكلة فعليك بتفقد الأخطاء التي تظهر لك في الكونسول. وأيضًا حاول حذف الملفات والإعدادات المؤقتة من خلال الأمر التالي: php artisan optimize:clear ثم تحزيم المشروع من خلال تشغيل الأمر: npm run dev وتأكد من أن عملية التحزيم تتم بشكل سليم.
  15. العرض متاح من أجل الإشتراكات الجديدة وتستطيع الإشتراك في أي دورتين تريد، أما بخصوص الإشتراكات القديمة فلا ينطبق العرض عليها. وتستطيع التحدث لمركز المساعدة في أكاديمية حسوب وتسجيل الدخول بالحساب الذي قمت بالإشتراك به في الدورة، وشرح الموقف لهم وسيتم الرد عليك في خلال 24 إلى 48 ساعة في حال وجود ضغط لا تقلق، وفي حال وجود إمكانية لذلك سيتم مساعدتك.
  16. أنا بحاجة لتفقد وإختبار الموقع من خلال أدوات المطور أو يمكنك القيام أنت بذلك، قم بتحديد حالة hover من خلال أدوات المطور لعناصر القائمة ثم تفقد الجزء الذي يظهر أسفل الـ navbar من أين يأتي. وأيضًا لاحظت أنه عند التمرير للأسفل يتم تغطية الـ navbar بخلفية زرقاء، هل تقصد ذلك؟ من الأفضل إعطائه قيمة z-index أعلى لتجنب ذلك.
  17. تلك الخاصية متاحة في الإصدار الأخير من excel عليك بتحديث البرنامج لديك في حال قمت بتفعيله بشكل رسمي. وفي حال لم يتوفر لديك التحديث، فهناك حل لتلك المشكلة، وهي بتثبيت إضافة List Search Add-in من الرابط التالي: https://www.excelcampus.com/wp-content/uploads/2022/02/The_List_Search_Add-in_for_Excel.zip وبعد تحميل الملف قم بفك الضغط عنه في مجلد في مكان آمن. ولتثبيت الإضافة ستضغط على file ثم options وستظهر لك نافذة اختر منها Go كالتالي: ثم ستظهر لك قائمة اختر منها Browse كالتالي: والآن ابحث عن الإضافة في المجلد الذي قمت بفك الضغط به واخترها كالتالي: ثم اضغط على ok ليتم الحفظ. والآن قم بإختيار على القائمة الخاصة بك ثم ستجد أن هناك تبويب جديد ظهر لك باسم XL Campus وعند الضغط عليه ستجد خيار باسم List Search اضغط عليه وستجد صندوق بحث قد ظهر لك ابحث بداخله عما تريد وستجد النتائج مباشرًة من القائمة الخاصة بك. وبعد إختيار النتيجة اضغط على Enter أو اضغط على السهم المشار إليه.
  18. أنت تريد استخراج اسم النظام من نتيجة Nmap، صحيح؟ عليك بالبحث عن حقل "OS" في الإخراج وستجد اسم النظام، وإليك مثال لنتيجة لـ Nmap: Nmap scan report for 127.0.0.1 Host is up (0.00012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http Host: 127.0.0.1 (localhost) OS: Microsoft Windows 10 (10.0 Build 19041) Aggressive OS guesses: Microsoft Windows 10 (10.0 Build 19041) اسم النظام هو "Microsoft Windows 10 (10.0 Build 19041)". ولاستخراج تلك القيمة، استخدم الأمر التالي: nmap 127.0.0.1 | grep OS تستطيع أيضًا استخدام الأمر التالي لاستخراج اسم النظام والمعلومات الأخرى حول المضيف المستهدف: nmap -O 127.0.0.1 والنتيجة هي إخراج المعلومات التالية: Host: 127.0.0.1 (localhost) OS: Microsoft Windows 10 (10.0 Build 19041) Aggressive OS guesses: Microsoft Windows 10 (10.0 Build 19041) أيضًا هناك توفر لك المعلومات TTL مؤشرًا على نظام التشغيل المستهدف، حيث أن هناك العديد من العروض المختلفة مع بروتوكولات مختلفة تعطي لنا نظرة عامة على الأنظمة التي تعمل بقيم TTL محددة. وTTL هي قيمة يتم تعيينها من قبل مرسل الحزمة وتُستخدم لتحديد عدد أجهزة التوجيه التي يمكن للحزمة المرور عبرها قبل رفضها، والقيمة الافتراضية لـ TTL لأنظمة Linux و Unix هي 64، بينما القيمة الافتراضية لـ TTL لأنظمة Windows هي 128. وإليك القيم: Linux/Unix - 64 Windows - 128 AIX - 255 BSD - 255 Solaris - 255
  19. عليك بتفقد ما هو التنسيق الذي يتم تنفيذه عند عمل hover على عناصر قائمة التنقل، ومن الأفضل إرفاق مجلد المشروع لمعاينة المشكلة.
  20. كما أخبرتك يجب أن تكون 18 عام حيث تم ذكر ذلك في شروط الاستخدام على منصة مستقل، وأظن أن الشرط موضوع من أجل أن تمتلك بطاقة هوية، وطالما أنك تمتلكها فلا مشكلة، وذلك غير مؤكد ولتأكيد ذلك تحدث لمركز المساعدة في مستقل.
  21. أنت بحاجة إلى تعلم لغة برمجة أولاً تؤهلك لتطوير تطبيقات الأندرويد، وحاليًا يوجد لغتي جافا وكوتلن لتطوير تطبيقات Native. أما إذا أردت تعلم إطار عمل من أجل تطوير تطبيق يعمل على الأندرويد و iOS، فأمامك إطار Flutter ولغة البرمجة الخاصة به هي Dart وأيضًا يوجد React Native ولغة البرمجة الخاصة به هي جافاسكريبت. لذلك عليك بتحديد ما تريده، ثم البدء في التعلم وأنصحك قبل ذلك بقراءة التالي: ويوجد في أكاديمية حسوب دورة تطوير تطبيقات باستخدام جافاسكريبت وبها مسار كامل لتطوير تطبيقات الهاتف باستخدام React Native.
  22. بالطبع فدورة بايثون شاملة، فلو بحثت عن متطلبات وظيفة python developer أو back-end بلغة بايثون على LinkedIn مثلاً ستجد أن الدورة تغطي تلك المتطلبات. وخلال الدورة ستقوم بإنشاء مشاريع حقيقية لوضعها بمعرض أعمالك وليست مجرد نماذج. والأسهل في البداية هو العمل في شركة من أجل أن يتم توجيهك وإعطائك مهام مناسبة لمستواك، فالبعض يصاب بالإحباط عند العمل في البداية على مواقع العمل الحر، وأنصحك بقراءة التالي فقد أجبت على سؤال مشابه بشكل مفصل:
  23. المشكلة هي أنك تحاول تحميل صورة لمستخدم جديد باستخدام اسم المستخدم كاسم الملف في Firebase Storage وتحميل الصورة قبل أن يتم إنشاء المستخدم في Firebase Authentication. أي أن السطر التالي في ملف Register.jsx هو السبب في حدوث الخطأ: const storageRef = ref(storage, displayName); وعند تشغيل ذلك السطر، يتم البحث عن مجلد أو ملف باسم المستخدم (displayName) في Firebase Storage، ولكن بما أن المستخدم لم يتم إنشاؤه بعد (إذ لم يتم إنجاز عملية createUserWithEmailAndPassword بنجاح)، فإن Firebase يقوم بإرجاع خطأ بسبب عدم وجود المستخدم. لذلك حاول تأجيل عملية تحميل الصورة حتى يتم إنشاء المستخدم بنجاح، عن طريق تحويل جزء من الكود داخل المحاولة (try) إلى جزء من التأكيد (then) في Promise الذي يتم إرجاعه من createUserWithEmailAndPassword. قم بتحديث الكود في ملف Register.jsx كما يلي: const handleSubmit = async (e) => { e.preventDefault(); const displayName = e.target[0].value; const email = e.target[1].value; const password = e.target[2].value; const file = e.target[3].files[0]; try { const res = await createUserWithEmailAndPassword(auth, email, password); // تم إنشاء المستخدم بنجاح، يمكن الآن متابعة عملية تحميل الصورة const storageRef = ref(storage, displayName); const uploadTask = uploadBytesResumable(storageRef, file); // باقي الكود لتحميل الصورة وتحديث بيانات المستخدم يبقى كما هو // ... } catch (err) { // يمكنك معالجة الخطأ هنا إذا لزم الأمر } };
  24. من ضمن شروط الاستخدام المذكورة في منصة مستقل أن تكون 18 عام كحد أدنى، ولكن طالما أنك تمتلك إثبات هوية فلا مشكة في ذلك على ما أظن، ولتأكيد ذلك من الأفضل التحدث لمركز المساعدة في مستقل.
  25. من المفترض أن يتم طلب توثيق الهوية بعد أول مشروع لك على الموقع، وشروط الواجب توافر في الوثائق هي: أن تكون صور الوثائق ملونة، لا يسمح بإضافة الهوية بالأبيض والأسود إضافة صور واضحة عالية الجودة. لا يتم قبول الصور منخفضة الجودة يجب أن تتطابق معلومات الهوية مع كافة بياناتك في حسوب: الاسم الأول والثاني، البلد، العنوان وتاريخ الميلاد أن تظهر المعلومات بشكل واضح في صورة الهوية، كالصورة الشخصية، الاسم الكامل، العنوان، تاريخ الإصدار وتاريخ الصلاحية، والإمضاء أو الختم الإداري تاريخ صلاحية الهوية غير منتهي بعد التقاط صورة الهوية مباشرة عبر الجوال بدون أي تعديلات أن يكون محتوى الهوية باللغة العربية أو الإنجليزية وتستطيع قراءة المزيد من هنا: توثيق الهوية الشخصية على مستقل وإذا كان لديك أي استفسار تستطيع التحدث لمركز المساعدة على مستقل.
×
×
  • أضف...