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

عبدالباسط ابراهيم

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

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

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

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

    11

أجوبة بواسطة عبدالباسط ابراهيم

  1. بتاريخ 23 ساعة قال كارلا لاركس:

    لقد تأكد من كل هذا الحزم وكلها متواجده ولكن الخطأ مازال  

    بدلاً من ذلك ، يمكنك اتباع التوثيق الرسمي المحدث واستخدام سطر الأوامر Firebase CLI لإنشاء ملف firebase_options.dart تلقائيًا في مجلد lib الخاص بك ، والذي سيحدد خيارات Firebase الصحيحة لك. الخطوات هي:

    تثبيت Flutterfire CLI: 

    dart pub global activate flutterfire_cli

    تكوين Flutterfire (قم بتشغيله في أصل مشروعك وامر بالارشاد من خلال اختيار مشروع Firebase الصحيح ومنصات الهدف):

    flutterfire configure  

    استيراد ملف firebase_options.dart المولد تلقائيًا في ملف main.dart الخاص بك وتهيئة Firebase على النحو التالي:

    void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp(  
    options: DefaultFirebaseOptions.currentPlatform,  
    );
    runApp(MyApp()); 
    }

    وبهذه الطريقة ، لا تحتاج إلى تعريف options يدويًا. وسيقوم Flutterfire CLI بتوليد ملف Dart لدعم منصتك (Android و iOS وتجريبي Web) وسيعرّف خيارات Firebase المناسبة تلقائيًا.

  2. نعم، توجد مكتبات في React Native تسمح باستخدام التاريخ الهجري. من أشهرها:

    - react-native-hijri-date-picker: تتيح اختيار تواريخ هجرية بواسطة DatePicker.

    - hijri-date: تسمح بالتعامل مع التواريخ الهجرية بسهولة، مثل إضافة أيام/شهور، تحويل إلى ميلادي، إلخ.

    يمكن استخدام المكتبة hijri-date على النحو التالي:

    import HijriDate from 'hijri-date';
    
    // أخذ تاريخ هجري حالي 
    const hijri = HijriDate.now();
    
    // طباعة التاريخ في شكل كامل (مثلاً: ١٤٤١/٣/٢٥ هـ)
    console.log(hijri.format('iYYYY/iMM/iDD'));
    
    // إضافة شهر واحد
    const nextMonth = hijri.addMonths(1); 
    
    // تحويل إلى ميلادي 
    const miladi = hijri.toGregorian(); 

    هذه المكتبة تسهل التعامل مع التواريخ الهجرية في تطبيقات React Native. رجاء استخدم وثائقها لمعرفة كافة الإمكانيات التي تقدمها.

    وهناك مكتبات أخرى تعمل مع التواريخ الهجرية في React Native:

    • react-native-hijri: توفر عدة أدوات للتعامل مع التاريخ الهجري مثل تحويل التواريخ بين الميلادي والهجري، إضافة أشهر/أيام، الحصول على اليوم/الشهر الحالي، إلخ.
    • hijri-converter: بسيطة وتسمح فقط بتحويل التواريخ بين الميلادي والهجري.
    • react-native-calendars: مكتبة توفر تقويماً شاملاً في React Native، وتدعم عرض التقويم الميلادي والهجري.
    • react-hijri: أخرى بسيطة توفر تحويل التواريخ وعرض تقويم هجري.

    يمكن استخدام هذه المكتبات بنفس طريقة hijri-date تقريباً. من الأفضل اختبار عدة مكتبات واختيار الأنسب لاحتياجاتك.

  3. سأشرح لك الاختلافات بين الوظيفتين بالتفصيل:

    الوظيفة الأولى:

    تأخذ هذه الوظيفة واحدًا من المعاملات (`num`) وتزيد قيمته بواحد باستخدام المشغل `++`. ثم تسجل القيمة المضافة إلى `num` في وحدة التحكم باستخدام `console.log()`.

    عند استدعاء الوظيفة `increase(1)`، ستزيد الوظيفة قيمة `num` إلى `2` وتقوم بطباعتها في وحدة التحكم.

    الوظيفة الثانية

    تأخذ هذه الوظيفة واحدًا من المعاملات (`number`) وتستخدم المشغل `++` لزيادة قيمة `number` بواحد، لكنها تعيد القيمة الأصلية لـ `number` قبل زيادتها باستخدام المشغل `++`.

     

    عند استدعاء الوظيفة `increase1(1)`، ستعيد الوظيفة القيمة `1`، وليس القيمة المضافة `2`، لأن `return` يعيد القيمة الأصلية لـ `number` قبل زيادتها باستخدام `++`.

    بالإضافة إلى ذلك، يمكن ملاحظة أن الوظيفة الأولى تستخدم `console.log()` لإظهار القيمة في وحدة التحكم، بينما تستخدم الوظيفة الثانية `return` لإرجاع القيمة من الوظيفة.

    بشكل عام، يمكن القول أن الفرق بين الوظيفتين هوأن الوظيفة الأولى تزيد القيمة الممرة إليها وتعرض القيمة المضافة في وحدة التحكم، في حين تعيد الوظيفة الثانية القيمة الأصلية الممرة إليها وتزيد القيمة بعد ذلك.

    • شكرًا 1
  4. هذه مقارنة  بين MERN و PHP/Laravel مع أحصائيات حديثة:

    • وفقا لموقع Indeed، فإن الوظائف التي تطلب MERN زادت من 223,000 وظيفة في عام 2018 إلى 430,000 في 2022، بينما الوظائف التي تطلب PHP زادت من 294,0000 إلى 510,000 في نفس الفترة.
    • من المتوقع أن يكون هناك طلب متزايد على مطوري MongoDB مقارنة بـ MySQL حيث أن قواعد بيانات NoSQL تحظى بشعبية متزايدة .
    • من المتوقع أن يزداد طلب React.js خلال السنوات القليلة المقبلة مع زيادة اعتماد تطبيقات الجيل التالي على واجهات مستخدم فعالة و مرنة.
    • من المتوقع أن يستمر نمو Node.js بوتيرة أسرع من PHP كمحرك خلفي للويب نظرا لسرعته العالية ومنصة JavaScript المشتركة.

    بشكل عام، ما زال MERN Stack أكثر طلبا ونموا في سوق العمل بسبب استخدامه لتقنيات حديثة ومستويات عالية من الأداء والمرونة، في حين أن PHP/Laravel لا تزال قوية ولكن مع معدلات نمو أقل.

    من وجهة نظري الشخصية، أفضل MERN stack 

    •  تستخدم التكنولوجيات الحديثة -  فهي تستخدم تكنولوجيات جديدة نسبياً مثل MongoDB و React.js 
    • تطوير سريع - يمكن تطوير تطبيقات ويب مع MERN بشكل أسرع على العموم.
    • مطلوبة من قبل الشركات الكبرى - تبحث العديد من الشركات الكبرى حاليا عن مطورين يمتلكون خبرة في تقنية MERN لتطوير تطبيقاتهم.

    بينما PHP و Laravel لا زالت تستخدم على نطاق واسع، إلا أن MERN تعتبر الخيار الأول لدى العديد من الشركات حالياً بسبب مزاياها التي ذكرتها.

  5. بالإضافة للشرح السابق يمكن التعمق أكثر في الفروقات بين برمجة الروبوتات وتعلم الآلة من خلال النقاط التالية:

    • الغرض: تركز برمجة الروبوتات على تطوير برامج التحكم في الروبوتات لتنفيذ مهام محددة، بينما يركز تعلم الآلة على تطوير نماذج تنبؤية وأنظمة قادرة على التعلم والتكيف مع البيئة المحيطة بها.
    • المنهجية: تستخدم برمجة الروبوتات منهجية البرمجة التقليدية، والتي تعتمد على تطوير الكود وتحديد القواعد والمنطق المحددة مسبقًا، بينما يستخدم تعلم الآلة منهجية البيانات، والتي تعتمد على تحليل البيانات واستخراج الأنماط والمعلومات منها لتطوير نماذج تنبؤية ونظم قادرة على التعلم والتكيف.
    • البيانات: تحتاج برمجة الروبوتات إلى البيانات المحددة مسبقًا لتنفيذ المهام المطلوبة، بينما يعتمد تعلم الآلة على البيانات الحقيقية والمتغيرة لتحليلها واستخراج المعلومات منها.
    • التكامل: تتطلب برمجة الروبوتات التكامل بين الأجهزة الآلية والبرمجيات والمستخدمين، بينما يتطلب تعلم الآلة التكامل بين البيانات والخوارزميات والخوارزميات والتطبيقات.
    • الاستخدامات: يستخدم برمجة الروبوتات بشكل رئيسي في الصناعة والتصنيع والروبوتات الجوية والتنقيب عن النفط والغاز، بينما يمكن استخدام تعلم الآلة في مجالات أخرى مثل التصنيع والتجارة الإلكترونية والطب والتمويل والتسويق.
    • الأداء: يمكن لبرمجة الروبوتات تنفيذ المهام المحددة بشكل فعال ودقيق، بينما يمكن لتعلم الآلة تحسين الأداء والتكيف مع التغييرات في البيئة المحيطة بها.
    • التدريب: يحتاج تعلم الآلة إلى التدريب باستخدام مجموعة من البيانات الحقيقية لتحسين أدائه، بينما يتطلب تدريب برمجة الروبوتات على مهمة محددة بالاعتماد على البرمجة التقليدية.
    • القدرة على التعلم: يمكن لتعلم الآلة التعلم من البيانات وتحسين أدائها مع تغيير الظروف، بينما لا يمكن لبرمجة الروبوتات التعلم بنفس الطريقة وتحتاج إلى إعادة برمجة لكل مهمة جديدة.
    • البرمجة: يتطلب برمجة الروبوتات مهارات برمجة محددة، بينما يتطلب تعلم الآلة مهارات تحليل البيانات والرياضافةً إلى النقاط السابقة، يمكن التعمق أيضًا في الأساليب والتقنيات المستخدمة في كل من برمجة الروبوتات وتعلم الآلة. فعلى سبيل المثال، في برمجة الروبوتات يتم استخدام لغات برمجة مثل C++ وJava وPython، وتستخدم تقنيات مثل الذراع الروبوتية والحساسات ونظم الملاحة، في حين يتم استخدام في تعلم الآلة تقنيات مثل التعلم العميق وشبكات العصب الاصطناعي والتحليل الإحصائي، ويتم استخدام لغات برمجة مثل Python وR وMATLAB.

    وبالإضافة إلى ذلك، تختلف الأدوار والمسؤوليات في كل من برمجة الروبوتات وتعلم الآلة. فعلى سبيل المثال، يتطلب تطوير برامج التحكم في الروبوتات العمل مع مهندسي الروبوتات والميكانيكيين والكهربائيين لتصميم وتطوير الأجزاء الميكانيكية والكهربائية والبرمجيات. ويتطلب تعلم الآلة العمل مع فريق متعدد التخصصات من علماء البيانات وخبراء تحليل البيانات ومطوري البرمجيات والمهندسين الإحصائيين.

    وبشكل عام، يمكن القول إن برمجة الروبوتات وتعلم الآلة هما مجالان مختلفان ولكنهما يمكن أن يتعاونا سويًا لتطوير أنظمة ذكية وروبوتات قادرة على التعلم والتكيف مع البيئة المحيطة بها. ومن المهم فهم الفروقات بين الاثنين لتحديد النهج المناسب لتطوير النظم الذكية الحديثة وتحسين أدائها وفعاليتها في تنفيذ المهام المختلفة. ويمكن القول إن برمجة الروبوتات تركز على تنفيذ المهام المحددة والمبرمجة مسبقًا بشكل فعال ودقيق، بينما يركز تعلم الآلة على تحليل البيانات والاستفادة منها ل

    • أعجبني 1
  6. حسب وصفك، يبدو أنه تم إنشاء تطبيقين داخل مشروع واحد في Firebase، ولكن عند إرسال الإشعارات، يتم إرسالها لكل التطبيقين في المشروع بدلاً من تطبيق واحد فقط.

    يجب عليك تعيين معرّف التطبيق (application ID) المخصص لكل تطبيق في Firebase. يمكنك القيام بذلك من خلال إضافة حزمة تطبيق جديدة في Firebase ونسخ معرّف التطبيق المخصص الخاص بكل تطبيق في الإعدادات.

    من ثم، يجب عليك تحديد معرّف التطبيق (application ID) المناسب عند إرسال الإشعارات، مثل استخدام معرّف التطبيق الصحيح في خيار "target" في Firebase Cloud Messaging API عند إرسال الإشعارات.

    تأكد من أن ملفات google-services.json الخاصة بكل تطبيق تم وضعها في المسار الصحيح في كل تطبيق وتحتوي على معرّف التطبيق المخصص الصحيح.

    بعد ذلك، يمكنك إرسال الإشعارات إلى التطبيق المناسب باستخدام معرّف التطبيق الصحيح. يجب عليك أيضًا التأكد من أن تحديد "new campaign" يعمل بشكل صحيح ويتم تحديد التطبيق الصحيح في كل حملة.

    إذا قمت بتحديد كل هذه الخطوات بشكل صحيح وما زالت المشكلة قائمة، فمن المشكلة قد تكون في إعدادات Firebase Cloud Messaging API الخاصة بك، ويجب عليك التحقق من الإعدادات والتأكد من أنها صحيحة. كما يمكنك التحقق من سجلات Firebase Cloud Messaging API للعثور على أي أخطاء تظهر هناك.

    إذا لم تتمكن من حل المشكلة بنفسك، يمكنك الاستعانة بدعم Firebase للحصول على مساعدة إضافية في حل المشكلة.

  7. لا يحق لمطوري تطبيقات تسجيل المكالمات الوصول إلى محتوى المكالمات بكامل تفاصيلها، بما في ذلك أرقام الهواتف، إلا بعد الحصول على إذن من المستخدم وفقًا للقوانين المحلية والدولية المتعلقة بالخصوصية. 

    وبالتالي كما أخبرك مصطفى أن من المفترض ألا يقوم مطور البرنامج بتسجيل أي بيانات لك ولكن ربما تكون هناك بعض البرامج التي ربما تقوم بذلك وذلك بالتأكيد عدم احترام لخصوصية المستخدمين والالتزام بالقوانين واللوائح المتعلقة بحماية البيانات الشخصية.

    أما بالنسبة للسؤال الثاني فإنه لا يمكنك استرجاع المكالمات المسجلة وذلك في حالة أن هناك برنامج يقوم بتسجيل المكالمات وحفظها لدى المطور ولكن يعتمد على سياسة التطبيق والإجراءات التي يتبعها المطور في هذا الصدد. ومن المهم الاتصال بفريق دعم التطبيق أو الاستعانة بالموارد الداخلية للتطبيق لمعرفة ما إذا كان بإمكانهم استرداد المكالمة المحذوفة أو لا

    أما بشأن استعادة مكالمة محذوفة، فإذا كان الملف المسجل مخزنًا في جهاز الهاتف، يمكن استخدام تطبيقات استعادة البيانات لمحاولة استرداد الملف. ومع ذلك، لا يمكن ضمان النجاح الكامل لهذه العملية، ويجب الحرص على استخدام تطبيقات موثوقة لتجنب فقدان المزيد من البيانات أو التعرض للاختراق.

  8. هذا الخطأ يحدث عندما يتم تشغيل أمر `venv` دون تمرير مسار لإنشاء البيئة الافتراضية، أو عندما يتم تمرير مسار خاطئ.

    لإنشاء بيئة العمل الافتراضية باستخدام `venv`، يمكن استخدام الأمر التالي في سطر الأوامر:

    python -m venv ENV_DIR
    

    حيث `ENV_DIR` هو المسار الذي تريد إنشاء بيئة العمل الافتراضية به.

    لتفادي هذا الخطأ، تأكد من تمرير المسار الصحيح لإنشاء بيئة العمل الافتراضية، وتأكد من أن الأمر يتم تشغيله بالطريقة الصحيحة. يمكنك تحديد مسار لإنشاء البيئةالافتراضية باستخدام `venv` بالأمر التالي:

    python -m venv path/to/venv

    ويجب تعويض `path/to/venv` بالمسار الذي تريد إنشاء بيئة العمل الافتراضية به.

    على سبيل المثال، لإنشاء بيئة العمل الافتراضية في مجلد venv داخل مجلد العمل الحالي، يمكن استخدام الأمر التالي:

    python -m venv venv
    

    وسيتم إنشاء بيئة العمل الافتراضية في مجلد venv داخل المجلد الحالي.

  9. يمكن استخدام مكتبات خارجية لتسهيل عملية إضافة الإشعارات في تطبيق Android Studio. واحدة من هذه المكتبات هي Firebase Cloud Messaging (FCM) التي تسمح بإرسال الإشعارات إلى التطبيق من الخادم.

    لإضافة دعم FCM في تطبيق Android Studio، يجب إضافة مكتبة Firebase Messaging إلى مشروع التطبيق. بعد ذلك، يمكن إنشاء خادم FCM وتضمينه في التطبيق لإرسال الإشعارات إلى التطبيق.

    فيما يلي مثال عن إرسال الإشعارات باستخدام FCM في تطبيق Android Studio:

    •  إضافة مكتبة Firebase Messaging إلى مشروع التطبيق عن طريق تعديل ملف `build.gradle` في المستوى التطبيق:
    dependencies {
        implementation 'com.google.firebase:firebase-messaging:20.2.4'
    }
    • إنشاء خادم FCM باستخدام Firebase Console وحفظ مفتاح المشروع الذي تم إنشاؤه.
    • إضافة مستلم (Receiver) للاستماع إلى الإشعارات الواردة من FCM وتنفيذ الإجراءات المناسبة لعرض الإشعارات في التطبيق. يمكن القيام بذلك بإنشاء فئة تنفيذ BroadcastReceiver وتحديد الدوال التي تنفذ عند استلام الإشعارات، كما يلي:
    public class MyFirebaseMessagingService extends FirebaseMessagingService {
     
        @Override
        public void onMessageReceived(RemoteMessage remoteMessage) {
            super.onMessageReceived(remoteMessage);
     
            // إنشاء كائن من الـ NotificationCompat.Builder
            NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
                    .setSmallIcon(R.drawable.notification_icon)
                    .setContentTitle(remoteMessage.getNotification().getTitle())
                    .setContentText(remoteMessage.getNotification().getBody())
                    .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    
            // تحديد الفعل الذي يتم تنفيذه عند النقر على الإشعار
            Intent intent = new Intent(this, MainActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
            builder.setContentIntent(pendingIntent);
    
            // عرض الإشعار
            NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
            notificationManager.notify(notificationId, builder.build());
        }
    }
    • تحديد خصائص الإشعارات المراد إرسالها من الخادم FCM وإرسالها إلى التطبيق باستخدام مفتاح المشروع. يمكن القيام بذلك باستخدام Firebase Console أو استخدام REST API.

    يمكنك تخصيص تطبيقك باستخدام هذه المكتبات الخارجية لتسهيل إضافة الإشعارات، وتوفير الوقت والجهد في تطوير التطبيق.

    كما يفضل الإطلاع على التوثيق الرسمي من google من هذا الرابط

  10. بتاريخ 1 دقيقة مضت قال نجم الدين عاد:

    المهارات المطلوبة في اللغة الانجليزية هي الكتابة والقراءة أم السماع والتحدث أو كلهم مجتمعين  يعني المهارات اللتي احتاجها بالضبط كي اركز عنها أكثر

     

    بالطبع المهارات جميعاً مطلوبة ولكن ليس من المفترض أن تكون ذو مستوى عال إنما ما يكفيك من العلم لتستطيع التعامل في مجال البرمجة 

    ومن المصادر التي يمكنها تطوير مستواك بشكل رائع هي قناة ال zamerican english 

    • أعجبني 1
  11. بالفعل الشركات السعودية خصوصا الكبرى تطلب اللغة الانجليزية كشرط اساسي للتوظيف في معظم الوظائف. وهذا يرجع الى عدة اسباب:

    • التعامل مع الزبائن والشركاء الدوليين: حيث تتعامل الشركات السعودية مع العديد من الشركاء والزبائن الدوليين، ويكون التواصل باللغة الانجليزية.
    • استخدام نظم وتطبيقات عالمية: حيث تستخدم الشركات السعودية نظم وتطبيقات عالمية المصدر، والواجهات باللغة الانجليزية.
    • إذا كان في مجال البرمجة فإنه يعتبر لا غنى عن تعلم اللغة الإنجليزية سواء لتعلم البرمجة أو للعمل بها 

    اذا كنت لا تجيد الانجليزية، فسوف يكون من الصعب للغاية الحصول على وظيفة في اي شركة كبرى سعودية. ولكن هناك وظائف بعض الشركات الصغيرة قد تتقبل هذا، لكنها فرص عمل محدودة.

  12. المشكلة تكمن في تعريف المسار (Route) في تطبيق Laravel الخاص بك.

    في طريقة `Route::get()` ، تستخدم `show/{$id}` كمسار URI. ومع ذلك ، في الرابط في ملف الفهرس الخاص بك ، تستخدم `/show/<?php echo($post->id) ?>`. 

    يجب أن يكون URI الصحيح هو `show/{id}` (دون علامة الدولار) ، والذي يتطابق مع المعلمة في وظيفة استدعاء المسار. 

    هنا هو الكود المحدث لتعريف المسار الخاص بك:

    Route::get('show/{id}', function($id) {
        $post = DB::table('posts')->find($id);
        return view('posts.show', compact('post'));
    });

    وهنا هو الرابط المحدث في ملف الفهرس الخاص بك:

    <a class="btn btn-outline-danger" href="/show/<?php echo $post->id ?>">
        {{$post->title}}
    </a>

    تأكد من تفريغ الذاكرة المؤقتة عن طريق تشغيل `php artisan route:cache` بعد تحديث تعريف المسار.

  13. كما أخبرك مصطفى في التعليق السابق فإن المشكلة أن يستخدم التطبيق يستخدم التضمين القديم لأندرويد (قبل Flutter 1.12). للترقية ، ستحتاج إلى اتباع الخطوات في دليل الهجرة المرتبط. الخطوات الرئيسية هي:

    • تحديث حزمة Flutter SDK
    • تحديث ملحق Flutter في تطبيق Android الخاص بك
    • هجرة تطبيقك لاستخدام التضمين الجديد
    • تحديث AndroidManifest.xml و MainActivity.java الخاصة بك
    • إزالة الاعتمادات القديمة للتضمين

    و يبدو أن هناك مشكلة مع CMake وملف CMakeCache.txt. يبدو أن CMake ينظر إلى المسار الخطأ لهذا الملف ، لذلك لا يمكنه العثور على الذاكرة التخبئية ويحتاج إلى إعادة توليدها.

    لإصلاح هذا ، لديك خياران:

    • احذف ملف CMakeCache.txt في C:/food/build/windows/CMakeCache.txt وأعد تشغيل البناء. سيقوم CMake بإعادة إنشاء الذاكرة التخبئية من الصفر.
    • تعيين متغير البيئة CMAKE_CACHEFILE_DIR للإشارة إلى المسار الصحيح ، d:/oL.3 <./food/build/windows ، ثم أعد تشغيل البناء.

    قد تحصل على خطأ تصاريح عند محاولة إطلاق تطبيقك. تأكد من أن لديك التصاريح المناسبة للوصول إلى الملفات في d:/oL.3 <./food.

    إصلاح هذه المشاكل يجب أن يحل مشاكل البناء التي تواجهها والسماح لتطبيق Flutter الخاص بك بإعادة البناء والتشغيل مرة أخرى. أخبرني إذا كان لديك أي أسئلة أخرى!

    • شكرًا 1
  14. كما في التعليقات السابقة فإن المشكلة  أن الجدول الذي تحاول إنشاؤه بإسم 'posts' موجود مسبقاً لذلك لحل المشكلة 

    • في نافذة الأوامر قم بتنفيذ php artisan tinker
    • ثم Schema::drop('posts')
    • في النهاية php artisan migrate يجب أن يعمل

    يمكنك أيضاً تخطي ترحيل الجدول إذا كان الجدول موجودًا في قاعدة البيانات عن طريق إضافة هذا الرمز:

    if(Schema::hasTable('posts')) return;

     

    • أعجبني 1
  15. بالإضافة للشرح في التعليقات السابقة . يتميز MongoDB بتعامله مع كميات كبيرة من البيانات وتوسعه الأفقي بشكل سهل. يجعل ذلك وقت التطوير أسهل بكثير. عند العمل مع لغة javascript، أو عند العمل مع كائنات JSON ومجموعات، يجعل MongoDB اتصال الخدمات للاستعلامات أخف ويحسن أداء التطبيقات. بالإضافة إلى ذلك، يمكن للمستخدمين العمل بشكل رسومي مع مسؤول قاعدة بيانات سطح المكتب في حالة عدم معرفة أوامر الوحدة النمطية.

    الإيجابيات:

    • يحسن استخدام لغة JSON وقت الاستجابة للاستعلامات، حيث يمكن بناء منطق الاستعلام مباشرة من نفس الخدمة.
    • يمكن تثبيت بيئة محلية لقاعدة البيانات بدلاً من قواعد البيانات غير العلائقية الحقيقية في الوقت الحقيقي مثل Firebase، حيث يعد البيئة المحلية أساسية حيث يمكن العمل بدون الاعتماد على الإنترنت.
    • تكوين المجموعات في Mango نسبيًا بسيط، حيث لا يلزمك معرفة الاستعلامات للعمل معها، حيث يتيح لك البيئة الرسومية البسيطة إدارة قواعد البيانات بشكل سهل لأولئك الذين ليسوا خبراء في إدارة الوحدة النمطية.

    السلبيات:

    يبدو أن MongoDB هي واحدة من أكثر الأدوات الكاملة في مجالها، وأعتقد أنها تحتوي على جميع الميزات التي يجب أن تكون متوفرة في قاعدة بيانات غير علائقية.

    ربما بسبب أنها أداة نسبيًا جديدة، يوجد عدد قليل جدًا من الخبراء في مجال MongoDB.

    للخلاصة: توضع MongoDB في المشاريع الكبيرة، مع توفير قدر كبير من التوسع. كما أنه يسمح لك بالعمل بشكل مريح جدًا مع المشاريع التي تعتمد على لغات البرمجة مثل javascript angular typescript C #. أعتقد أن أدائه أفضل بكثير مع نوع التقنيات التي تتعامل بمصطلحات برمجية منطقية ومماثلة. إذا استخدمنا لغات مثل java php، على سبيل المثال، فمن الأفضل العمل مع قواعد بيانات علائقية مثل postgres أو mySql.

    MongoDB Atlas: 

    الإيجابيات:

    الإدارة بالكامل من قبل MongoDB Inc والتي تتيح للمستخدمين إنشاء وإدارة قواعد بيانات MongoDB في السحابة بدون الحاجة إلى إعداد خوادم محلية .

    سهولة التوسع بشكل سريع.

    تحتوي على ميزات موثوقة للمصادقة والتشفير تضمن عدم ترك المطورين للبيانات مفتوحة عن طريق ترك خوادمهم غير محمية.

    السلبيات:

    أحد العيوب في MongoDB Atlas هو التكلفة. آمل أن يقلل المزيد من المنافسة من التكلفة مع مرور الوقت.

    للخلاصة: MongoDB Atlas لكل شخص / شركة لديهم حاجة كبيرة في قاعدة البيانات غير العلائقية ولا يرغبون في إدارة بنيتهم التحتية. يمكن أن يقلل استخدام MongoDB Atlas بشكل كبير من وقت الإدارة والتكلفة، مما يوفر موارد قيمة لمهام أخرى. كما أنه يناسب شركة أصغر حجمًا حيث يتوسع MongoDB Atlas بشكل سريع.

  16. دالة exit() في لغة Python تستخدم لإنهاء تشغيل برنامج Python بشكل فوري. وفيما يلي بعض الفوائد والاستخدامات الأساسية لدالة exit() في Python مع بعض الأمثلة:

    •  إنهاء البرنامج: تستخدم exit() لإنهاء تشغيل البرنامج عند الانتهاء من تنفيذ جميع الأوامر اللازمة واستكمال المهمة المطلوبة. على سبيل المثال:
    print("المهمة اكتملت بنجاح")
    exit()
    •  الإشارة إلى حالة الخروج: يمكن استخدام exit() لإعلام نظام التشغيل بحالة الخروج من البرنامج، مثل عدم وجود أي خطأ في التشغيل أو حدوث خطأ ما. على سبيل المثال:
    if not success:
        print("حدث خطأ أثناء تنفيذ المهمة")
        exit(1)
    else:
        print("المهمة تم تنفيذها بنجاح")
        exit(0)
    •  الأمان: يمكن استخدام exit() للحفاظ على أمان النظام الذي يعمل عليه البرنامج، عندما يكون هناك خطأ خطير لا يمكن المتابعة من خلاله. على سبيل المثال:
    if critical_error:
        print("حدث خطأ يجب إنهاء البرنامج فوراً")
        exit(1)
    • إنهاء البرنامج عند وقوع استثناء: يمكن استخدام exit() لإنهاء البرنامج في حالة وقوع استثناء غير متوقع، حيث يمكن استدعاء الدالة في جزء الاستثناء لإيقاف تشغيل البرنامج. على سبيل المثال:
    try:
        # الكود هنا
    except Exception as e:
        print("حدث استثناء، البرنامج سيتم إغلاقه")
        exit()
    • إغلاق تطبيق الواجهة الرسومية: يمكن استخدام exit() في تطبيقات الواجهة الرسومية لإغلاق التطبيق عند النقر على زر الخروج أو تنفيذ إجراء معين. على سبيل المثال:
    def close_application():
        # الكود هنا
        exit()
    
    # تعريف زر الخروج
    close_button = Button(root, text="إغلاق", command=close_application)
  17. هل تفكر في ترك مجال تطوير المواقع والإتجاه لتعلم "تعليم الألة" ؟

    بما أنك قد قطعت شوطاً كبيراً في مجال تطوير الموقع كما قلت فلما تتركه فيجب عليك العمل به حيث يمكنك الاستمرار في تطوير المواقع وتعلم تعلم الآلة في نفس الوقت، حيث يمكن استخدام تقنيات تعلم الآلة في تحسين وتحليل أداء المواقع وتحسين تجربة المستخدم. ويمكنك أيضًا توجيه اهتماماتك ومهاراتك في تعلم الآلة إلى مجالات محددة، مثل تعلم الآلة في مجال التسويق الرقمي أو تعلم الآلة في مجال الصحة والطب.

    بشكل عام، يجب عليك اختيار المجال الذي يتوافق مع اهتماماتك وأهدافك المهنية والذي يوفر لك فرصًا أفضل للنجاح والمستقبل المهني.

    على أي حال فيما يلي بعض النصائح التي يمكن أن تساعدك في البدء في تعلم هذا المجال:

    • دراسة الأساسيات: يجب عليك أولاً دراسة الأساسيات اللازمة لفهم مفاهيم تعلم الآلة، مثل الاحتمالات والإحصاءات والجبر الخطي. يمكنك العثور على دورات ومواد تعليمية عبر الإنترنت التي تغطي هذه الموضوعات.
    • دراسة تعلم الآلة: بمجرد أن تكون على دراية بالمفاهيم الأساسية، يمكنك البدء في دراسة تعلم الآلة بشكل أعمق. يمكنك البحث عن دورات تعليمية ومواد تعليمية عبر الإنترنت، حيث يمكنك تعلم الخوارزميات المختلفة وكيفية تطبيقها في حل مشكلات تعلم الآلة.
    • التطبيق العملي: بمجرد أن تكون على دراية بالنظريات الأساسية والخوارزميات، يمكنك البدء في تطبيقها على مجموعة متنوعة من المشاريع. يمكنك البحث عن مشاريع تعلم الآلة الصغيرة عبر الإنترنت ومحاولة تطبيق ما تعلمته.
    • المشاركة في المجتمع: يمكنك الانضمام إلى مجتمعات تعلم الآلة عبر الإنترنت والمشاركة في المناقشات والمشاريع. يمكن أن يكون هذا مفيدًا للحصول على المساعدة والنصائح من المحترفين في هذا المجال.
    • التطوير المستمر: يجب عليك التطوير المستمر لمهاراتك ومعرفتك في مجال تعلم الآلة، حيث يتطور هذا المجال بشكل سريع. يمكنك الاطلاع على الأبحاث والمقالات الجديدة والمشاركة في دورات تطوير مهارات تعلم الآلة المتقدمة.

    يفضل الإطلاع على المصادر التالية للمزيد من المعلومات

     

     

     

    • أعجبني 1
  18. بتاريخ 23 دقائق مضت قال Ali Ahmed39:

    شكرا جدا

    سوال كمان لوسمحت

    هل أنا بحاجة إليها لتعلم مجال الدكاء الاصطناعي وتعلم الاله وعلم البيانات

    أنا أريد استخدام بيئة عمل أخرى مثل VSCode و Visual Studio ؟

    لا، لست مضطراً لاستخدام بيئة عمل Jupyter كمتطلب أساسي لتعلم مجال الذكاء الاصطناعي وتعلم الآلة وعلم البيانات. يمكنك استخدام أي بيئة تناسبك للبرمجة مثل VSCode و Visual Studio وغيرها. 

    في الواقع، بيئات التطوير المختلفة تأتي بميزات وإمكانيات متعددة تجعلها ملائمة لأغراض مختلفة. على سبيل المثال، يمكن استخدام VSCode لتطوير تطبيقات الويب وتحليل البيانات والبرمجة العامة، بينما يمكن استخدام Visual Studio لتطوير برامج الويندوز وتطبيقات الأعمال والألعاب.

    ولكن، فمن المفيد أيضاً أن تتعلم كيفية استخدام بيئة عمل Jupyter لأنها تتيح لك إجراء التحليلات البيانية واستخدام العديد من المكتبات المتاحة في Python وتسهل عليك عرض النتائج بصورة واضحة ومفهومة. لذلك، يمكن أن تكون Jupyter إضافة قيمة لمهاراتك في الذكاء الاصطناعي وتعلم الآلة وعلم البيانات.

    • أعجبني 1
  19. الإجابة على هذا السؤال يعتمد على العديد من العوامل المختلفة، بما في ذلك الأهداف الشخصية والمهنية والموارد المتاحة لديك.

    إذا كنت ترغب في الحصول على شهادة جامعية معتمدة، فإن الدراسة في كلية علوم الحاسوب يمكن أن تكون الخيار الأفضل لك. ومن الممكن أن يوفر لك هذا الخيار المزيد من التخصص والتميز في المجال الذي ترغب في العمل به. ومن الجيد أيضًا توفر الفرصة للتعرف على زملاء الدراسة والاستفادة من تجاربهم وشبكاتهم.

    من ناحية أخرى، إذا كنت ترغب في الحصول على تدريب عملي وتعلم مهارات عملية في مجال تطوير البرمجيات، فقد يكون الالتحاق بأكاديمية حسوب خيارًا أفضل لك. حيث تتميز أكاديمية حسوب بتوفير برامج تدريبية عالية الجودة وتكييفها مع متطلبات سوق العمل، وكذلك توفير فرص للعمل على مشاريع عملية والتعامل مع العملاء.

    يجب أن تتخذ القرار الذي يناسب احتياجاتك وأهدافك ومواردك، ومن المهم أن تقوم بإجراء البحوث اللازمة والتحدث مع المتخصصين في هذا المجال للحصول على مزيد من المعلومات قبل اتخاذ القرار النهائي.

    كما أن هناك عدة عيوب محتملة لعدم إكمال الدراسة الجامعية، وتشمل بعضها:

    • القدرة المحدودة على الوصول إلى بعض الوظائف: يتطلب العديد من الوظائف الحالية والمستقبلية الحصول على درجة جامعية، وعدم الحصول على هذه الدرجة قد يمنعك من الوصول إلى بعض الوظائف المرغوبة.
    • فرص الترقية المحدودة: يمكن أن تؤثر عدم الحصول على درجة جامعية على فرص الترقية في الوظيفة، حيث يمكن أن يتطلب الانتقال إلى مستوى أعلى في الوظيفة الحصول على درجة جامعية أو ما يعادلها.
    • الحصول على فرصة التعليم المستمر: يعتبر الحصول على شهادة جامعية نقطة بداية في مسيرتك المهنية، حيث يمكن استخدامها كأساس لتعلم المزيد من المهارات والمعرفة في مجالك المهني.
    • تأثيرها على الثقة بالنفس: يمكن أن يؤثر عدم الحصول على شهادة جامعية على الثقة بالنفس والشعور بعدم الاستقرار في مسار الحياة المهني والشخصي.

    يجب ملاحظة أن هذه العيوب ليست بالضرورة مطبقة على جميع الأشخاص، ويمكن للأفراد الناجحين في حياتهم المهنية والشخصية عدم حصولهم على درجة جامعية. ومع ذلك، فإن الحصول على درجة جامعية يمكن أن يساعد في تحقيق النجاح في الحياة المهنية والشخصية.

    لذلك الإختيار الأفضل هو تكملة الدراسة مع التعليم الذاتي ولكن إذا كان يجب الإختيار بينهما فذلك الإختيار يرجع لك 

  20. بتاريخ 4 ساعة قال بندر أبوسعده:

    الدوره هي لغه javascript

    يعتمد الوقت الذي يحتاجه المرء لتعلم دورة تطوير التطبيقات باستخدام لغة JavaScript على عدة عوامل، بما في ذلك:

    • خبرتك السابقة في مجال تطوير الويب ولغات البرمجة الأخرى.
    •  الوقت الذي تستثمره في التدريب وتعلم المهارات المطلوبة.
    •  مدى الالتزام والتفاني في ممارسة تطوير التطبيقات باستخدام JavaScript . والعديد من العوامل الأخرى

    على الرغم من أنه من الصعب تحديد الوقت الدقيق الذي يحتاجه المرء لتعلم دورة تطوير التطبيقات باستخدام لغة JavaScript، إلا أنه يمكن القول بشكل عام أنه يحتاج من 3 أشهر من التدريب المكثف والتعلم المستمر لتطوير مهارات قوية في stack MERN. ومن المهم أن تستثمر الوقت في دراسة المفاهيم الأساسية لكل من MongoDB وExpress وReact وNode.js، والتعرف على كيفية استخدامها بشكل متكامل لتطوير تطبيقات الويب الحديثة.

    يجب أيضًا العمل على مشاريع تطبيقية مختلفة ومشاريع مفتوحة المصدر لتعزيز المهارات التي تم اكتسابها، والاستمرار في التعلم والتطوير باستمرار، حيث أن تقنيات تطوير الويب تتغير باستمرار ويجب الاستمرار في تحديث المعرفة ومواكبة التطورات.

    ولكن، يجب أن تتذكر أن التعلم المستمر والتدريب المنتظم يجب أن يستمر طوال حياتك المهنية، حيث أن تقنيات تطوير الويب تتطور باستمرار ويجب الاستمرار في تحديث المعرفة ومواكبة التطورات.

    دورة تطوير التطبيقات باستخدام لغة JavaScript تعتبر من أفضل الدورات في أكاديمية حسوب في رأي حيث بها محتوى علمي مكثف كما توفر العديد من التقنيات لتعلمها مع المشاريع العملية لذلك لا تفكر في الوقت المطلوب لتعلمها 

  21. إذا كنت ترغب في التواصل مع العميل خارج منصة مستقل، فيمكنك استخدام وسائل الاتصال الأخرى مثل البريد الإلكتروني أو تطبيقات المراسلة الفورية مثل Skype أو WhatsApp أو Telegram. لكن يجب التأكد من الالتزام بشروط موقع مستقل وعدم الاتصال بالعميل لأي أغراض خارجية مثل التعامل معه من دون استخدام منصة مستقل، حيث يمكن أن يؤدي ذلك إلى حظر حسابك.

    لذلك يمكنك التحدث مع العميل خارج المنصة ولكن أثناء تنفيذ المشروع ولا تحاول التعامل خارج المنصة لتجنب حظر الحساب 

    بالنسبة للرسالة التي تلقيتها فهي طبيعية نتيجة عدم وجود نقاش حول تطورات المشروع داخل المنصة لذلك يجب عليك محاولة توضيح خطوات سير العمل عبر المنصة وتسليم الملفات عبر المنصة

    كما أن يجب عليك ملاحظة أن 

    اقتباس

    موقع مستقل يقوم بضمان حقوق الطرفين في حال التزامهما بالشروط وفي حال كان الاتفاق بينهما واضحا تماما من البداية

    وذلك يكون عن طريق المحادثات بينكما في المنصة فقط

  22. هناك العديد من الخطوات التي يمكن اتباعها لتحسين محتوى الموقع وجذب المزيد من الزوار بالإضافة للنصائح السابقة، وتشمل هذه الخطوات:

    • تحليل الكلمات المفتاحية المستخدمة في موقعك والعمل على تحسينها لزيادة فرص الظهور في نتائج محركات البحث.
    •  توفير محتوى متعدد الوسائط مثل الصور والفيديوهات والرسوم البيانية لجعل المحتوى أكثر جاذبية وتفاعلية.
    • توفير محتوى خاص بالمناسبات والأحداث المهمة لجذب المزيد من الزوار.
    • تحسين سرعة التحميل لصفحات الموقع والتأكد من أنها تعمل بشكل صحيح على جميع الأجهزة والمتصفحات.
    • تحسين تصميم وتجربة المستخدم العامة للموقع وجعلها سهلة الاستخدام وجاذبة للزوار.
    • تحسين تجربة المستخدم على الهواتف المحمولة، حيث يزداد عدد الناس الذين يستخدمون الهواتف المحمولة
    • التسويق عبر وسائل التواصل الاجتماعي: يمكن استخدام منصات التواصل الاجتماعي مثل فيسبوك وتويتر وإنستجرام للترويج لموقعك وجذب المزيد من الزوار.
    • الإعلانات المدفوعة: يمكن استخدام خدمات الإعلان المدفوعة مثل Google Ads وFacebook Ads لعرض إعلانات مستهدفة لجذب المزيد من الزوار.

    كما أن يمكن أن يكون التخصص في نيتش معين قد يواجه بعض التحديات مثل العثور على مواضيع مناسبة وتنافسية. ولكن هذا لا يعني أنه من المستحيل النجاح في هذا المجال. فالتخصص في نيتش معين يمكن أن يساعد في جذب شريحة محددة من الجمهور التي تبحث عن المعلومات أو الخدمات المحددة التي تقدمها موقعك.

    بالنسبة للتحديات التي تواجهها في العثور على المواضيع المناسبة، يمكن البحث عن الكلمات المفتاحية المناسبة التي يبحث عنها الجمهور وتطوير محتوى مفيد وشامل بشأن هذه الكلمات المفتاحية. وبالطبع، يمكن استخدام أدوات البحث عن الكلمات المفتاحية لمساعدتك على اختيار الكلمات المهمة والمناسبة.

    بالنسبة للسيو والربط الداخلي، فهي نقاط مهمة جداً في تحسين ترتيب موقعك في محركات البحث وجذب المزيد من الزوار. يمكن الاستفادة من العديد من الدورات التعليمية والفيديوهات التعليمية عبر الإنترنت لتعلم كيفية تحسين سيو موقعك وتطبيق الربط الداخلي بشكل صحيح.

    • أعجبني 1
  23. جهاز HP Core i3 مع نظام ويندوز 7 يمكن استخدامه بشكل جيد لتعلم البرمجة. في الواقع، ليس هناك شرط محدد للإصدار أو النوع من الحاسوب لتعلم البرمجة. ولكن يفضل أن يكون الجيل للمعالج حديثاً نوعاً ما أمابالنسبة لل ram و ال hard فيمكنك تطويرهما بسهولة

    ما يهم بالأساس هو:

    • معالج قوي بما فيه الكفاية وذاكرة كافية. Core i3 مع 4 جيجابايت من الذاكرة الRAM أو أكثر يعتبر جيداً لمعظم احتياجات تعلم البرمجة.
    • في بعض الحالات قد تحتاج مساحة تخزين كافية لتثبيت برامج وأدوات التطوير. لكن لتعلم الأساسيات لا تحتاج الكثير من المساحة.

    هناك بعض مجالات البرمجة التي تتطلب إمكانيات حاسوبية عالية:

    • برمجة الألعاب: تطوير ألعاب الكمبيوتر والفيديو يتطلب عادة معالجات قوية وبطاقات رسومات متقدمة لمعالجة الرسوميات المتحركة والثلاثية الأبعاد.
    • معالجة الصور والفيديو: تطبيقات مثل تحرير الصور والفيديو والرسم والتصميم تتطلب موارد كثيفة للحوسبة لمعالجة الوسائط المتعددة.
    • الذكاء الاصطناعي وتعلم الآلة: تدريب نماذج الذكاء الاصطناعي والتعلم العميق يمكن أن يستغرق وقتًا طويلاً ويتطلب معالجات رياضية عالية الأداء مثل GPU.
    • تطوير البرامج المعقدة: كتابة برامج مثل محركات البحث وقواعد البيانات ونظم إدارة المحتوى تتطلب عادةً ذاكرة كبيرة ومعالجات سريعة للتعامل مع كميات كبيرة من البيانات.
    • الحوسبة العلمية والمحاكاة: إجراء المحاكاة والحسابات العلمية المعقدة مثل تنبؤات الطقس ومحاكاة الطيران تتطلب أجهزة حاسوب فائقة القوة.

    ويمكنك الإطلاع على المصادر الموجودة بالتعليق السابق للمزيد من المعلومات

  24. يمكنك الإجابة على هذا السؤال بنفسك من خلال معرفة الفائدة التي يقدمها تعلم scratch حيث يمكن تلخيص أهمية تعلم سكراتش بنقاط أساسية:

    • يعلم التفكير المنطقي وتطوير الخوارزميات: عندما نتعلم كتابة برنامج سكراتش، يجبرنا ذلك على التفكير بطريقة منطقية محددة، ووضع خطوات وتعليمات بشكل متسلسل. وهذا يطور قدرتنا على حل المشكلات وتصميم الخوارزميات.
    • يعلم مفاهيم البرمجة الأساسية:رغم أن سكراتش ليس لغة برمجة "حقيقية" إلا أنه يشرح مفاهيم برمجية أساسية مثل: المتغيرات، الهياكل المتكررة، الشروط والأوامر.. الخ. وهي مفاهيم تنطبق على جميع لغات البرمجة.
    • مساعدتك في تنمية مهارات برمجية:كلما زدت خبرتك في كتابة برامج سكراتش، تزداد قدرتك على حل المشاكل والتفكير التجريدي والتوثيق وقراءة تعليمات برمجية وغيرها من المهارات القيمة.
    • إنشاء مشاريع قوية لمحفظتك المهنية: يمكنك عرض الألعاب والبرامج التي تنشئها باستخدام سكراتش كأمثلة على إنجازاتك وخبرتك في مقابلات العمل أوالتقديم للجامعات.
    • تطوير قدرة الملاحظة: عندما تقوم بإنشاء ألعاب أو برامج في سكراتش ، فإنك تقوم بالتفكير بعمق في كيفية عمل الأشياء والآليات. وهذا يساعد في تطوير قدرتك على الملاحظة والتفكير التحليلي.
    • بناء الثقة بالنفس: عندما تصل إلى مرحلة تصميم برامج وألعاب متقدمة في سكراتش، فسوف تشعر بالانجاز والثقة بقدراتك البرمجية.
  25. بتاريخ 15 ساعة قال مهند سليمان:

    https://3alam-alintarnet.blogspot.com/ 

    هل الموقع دا في شعار ؟

    أنا عامل شعار في أول الصفحة لكن في علامة التبويب فوق محطوط شعار بلوجر 

     

    بالضبط ال favicon غير مخصص إنما هي شعار بلوجر لذلك لتغييرها يجب عليك إتباع اي طريقة من الطرق الموجودة في التعليقات السابقة مثال على ذلك

    •  اختر "تخطيط المدونة" من لوحة التحكم الخاصة بمدونتك.
    • اختر "تحرير HTML" من القائمة الجانبية.
    • ابحث عن العنصر "head" في HTML وسوف تجده بعد علامة <body>.
    • انسخ الشفرة التالية والصقها داخل العنصر "head":
       <link href='[رابط الصورة]' rel='icon' type='image/x-icon'/>

       يجب استبدال [رابط الصورة] بعنوان URL الخاص بالصورة التي تريد استخدامها كـ favicon.

    •  احفظ التغييرات التي قمت بها على HTML.

    بمجرد تحديد الخطوات السابقة، يجب أن يتم تغيير Favicon في مدونتك على Blogger. يجب أن يتم تحديث الصفحة في المتصفح الخاص بك للتحقق من تغييرات Favicon الجديدة.

×
×
  • أضف...