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

Mustafa Suleiman

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

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

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

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

    297

أجوبة بواسطة Mustafa Suleiman

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

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

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

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

    وعليكي بتعلم الآتي:

    • HTML ثم CSS ثم جافاسكريبت
    • بعد ذلك يأتي دور تعلم إطار العمل الخاص بجافاسكريبت، وأنصحك بتعلم Angular فستجدي سهولة في الحصول على وظيفة في البداية مقارنًة بمكتبة أو إطار React.

    وأيضًا بإمكانك تعلم PHP وإطار لارافيل مع Vue.js بدلاً من Angular، والأمر يعتمد على سوق العمل الخاص بك والبلد التي أنتي بها، وهل تريدي العمل على مواقع العمل الحر أم لا؟ حيث يتم طلب PHP ولارافيل بكثرة بالإضافة إلى وورد بريس المبني على لغة PHP.

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

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

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

    ولا تشغلي بالك بكل ذلك حاليًا فقط حاولي تنفيذ خطوة خطوة وهكذا، حتى لا تتشتي.

    • أعجبني 1
  2. عليكي بوضع الصورة والأيقونة والنص في عنصر واحد، وقد قمتي بذلك بالفعل، ولذلك يمكنك استخدام عنصر div وتحديد display:flex لإظهار العناصر جنبًا إلى جنب.

    حاولي تعديل الشفرة الخاصة بك كالتالي:

    <div style="display: flex; align-items: center;">
      <img class="imgl@" v-if="item.logo I== ''" :src="require('../../assats/ing/$Eitam.Lago')"/>
      <p class="heder-box ps-3 mb-0">
        {{item.name}} |
        HEE :
        <i v-if="index != 3" class="fa fa-plus ms-3" aria-hidden="true"></i>
      </p>
    </div>

    وباستطاعتك تعديل أنماط CSS الخاصة بك وفقًا لما تريدينه.

    • شكرًا 1
  3. يوجد عدة أسباب محتملة لهذه المشكلة، أرجو منك التحقق من الآتي:

    • عدم وجود بيانات الاتصال الصحيحة لقاعدة البيانات، يجب التأكد من صحة اسم المضيف (hostname) واسم المستخدم (username) وكلمة المرور (password) واسم قاعدة البيانات (database name) ورقم المنفذ (port number).
    • عدم وجود برنامج خادم MySQL مثبتًا على الجهاز، يجب تثبيت خادم MySQL على الجهاز والتأكد من أنه يعمل بشكل صحيح.
    • تعذر الوصول إلى الخادم، يجب التأكد من توفر اتصال بالإنترنت وأن الخادم يعمل بشكل صحيح.
    • إذا كنت تستخدمي MySQL على الإنترنت، فقد يكون المشكلة في توجيه المنفذ على الخادم، وهذا يتطلب إعداد خادم MySQL بشكل صحيح للسماح بالاتصال عبر المنافذ المطلوبة.

    و يجب التأكد من أن جميع بيانات الاتصال الخاصة بقاعدة البيانات صحيحة، وتجربة الاتصال بقاعدة البيانات باستخدام أدوات إدارة القواعد الخاصة بقاعدة البيانات للتحقق من صحة الاتصال، كما يمكن استخدام وحدات التحكم والتصحيح المتاحة في Android Studio لمعرفة سبب الخطأ.

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

    ولمزيد من المعلومات، يمكنك الاطلاع على مستندات Apple Pay والتواصل مع دعم مزود الخدمة المدفوعات الذي استخدمته لمزيد من المعلومات حول الحصول على الأموال التي تم دفعها عن طريق Apple Pay.

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

    وإليك نبذة عامة حول بعض الإرشادات اللازمة لتكوين التطبيق بما يتوافق مع قوانين Apple Pay في بعض الأسواق.

    على سبيل المثال، يتطلب القانون الأوروبي (PSD2) تضمين بعض الخيارات في خصائص Apple Pay للمعاملات التي تجري في المملكة المتحدة ومنطقة الاتحاد الأوروبي. بالإضافة إلى ذلك، يجب على التجار إظهار مبلغ نهائي على ورقة الدفع.

    بالنسبة للسعودية، يتطلب استخدام شبكة دفع (Mada) لجميع معاملات الخصم المحلية، وعلى التجار المقيمين في السعودية والذين يدعمون بطاقات الخصم إضافة شبكة الدفع (Mada) إلى الشبكات المدعومة. كما يجب على التجار المستخدمين لمزود الخدمة الدفع التأكد من دعم شبكة (Mada). وإذا لم يتم تضمين Mada، قد لا يتمكن مستخدمو Apple Pay من استخدام بعض البطاقات المصدرة في المملكة العربية السعودية عندما يكون الكود الخاص بالدولة هو SA.

  5. أهلا بك في أي وقت مهيب، 

    شكرًا لإقتراحك وسيتم أخذه في الإعتبار لرؤية إمكانية إضافته للتحديثات القادمة لدورة PHP إن شاء الله.

    بخصوص ما تريده فهمه:

    بالنسبة للتعامل مع group by في قواعد البيانات، فهذا يستخدم عادةً لتجميع الصفوف في الجداول وتحليل البيانات المختلفة، ففي Laravel، يمكن استخدام الدالة groupBy في الاستعلامات الخاصة بقاعدة البيانات للقيام بعملية group by.

    أما بالنسبة لدمج هذا مع API RESTful في مشروع Laravel، فبإمكانك استخدام الـ Eloquent ORM الذي يمكنك من التعامل مع قاعدة البيانات بطريقة سهلة ومباشرة ويسهل عمليات الـ CRUD (الإنشاء والقراءة والتحديث والحذف)، وباستطاعتك إنشاء نموذج Model يمثل الجدول المراد القيام بـ group by عليه، ثم استخدام الدالة groupBy في الاستعلامات الخاصة بقاعدة البيانات.

    أما بالنسبة للدردشة، فيمكن تنفيذها باستخدام Laravel وتطبيق WebSocket، واستخدام مكتبات مثل Ratchet أو Pusher لإنشاء اتصال ثنائي الاتجاه بين المستخدمين والسيرفر، وإرسال واستقبال الرسائل في الوقت الحقيقي، بالإضافة إلى استخدام group by لتجميع رسائل معينة حسب العنوان أو الغرفة أو المستخدم.

    مثال بسيط:

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

    من الممكن استخدام مكتبات مثل Ratchet أو Pusher لتنفيذ هذا النوع من التطبيقات. لاحظ أن Ratchet يوفر خادم WebSocket لـ PHP ، في حين أن Pusher يوفر واجهة برمجة تطبيقات (API) لإنشاء تطبيقات الدردشة بسهولة. فيما يلي مثال بسيط يستخدم Pusher:

    // create a new chat room
    Route::post('/chat/room', function(Request $request) {
        $roomName = $request->input('roomName');
        $pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'));
        $pusher->trigger('chatroom', 'new-room', ['roomName' => $roomName]);
    });
    
    // join a chat room
    Route::post('/chat/room/join', function(Request $request) {
        $roomName = $request->input('roomName');
        $username = $request->input('username');
        $pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'));
        $pusher->trigger("chatroom-$roomName", 'new-user', ['username' => $username]);
    });
    
    // send a message to a chat room
    Route::post('/chat/message', function(Request $request) {
        $roomName = $request->input('roomName');
        $username = $request->input('username');
        $message = $request->input('message');
        $pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'));
        $pusher->trigger("chatroom-$roomName", 'new-message', ['username' => $username, 'message' => $message]);
    });

    في المثال، تستخدم Pusher لإنشاء غرف الدردشة وإضافة المستخدمين إلى تلك الغرف، وإرسال واستقبال الرسائل في الوقت الحقيقي،ويمكنك تغيير الرموز المميزة مثل 'chatroom' أو 'new-room' و 'chat-message' حسب احتياجات تطبيقك.

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

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

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

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

    وعامًة من الأفضل أن يتم التعامل مع المستهلكين بشكل متوازن والتفكير فيهم من كلا المنظورين لضمان تطوير استراتيجية إعلانية ناجحة ورضا العملاء.

  7. تثبيت TailwindCSS باستخدام npm عن طريق الأمر التالي:

    npm install tailwindcss

    بعد ذلك، إنشاء ملف tailwind.css واستيراد TailwindCSS فيه باستخدام @import كما يلي:

    @import 'tailwindcss/base';
    @import 'tailwindcss/components';
    @import 'tailwindcss/utilities';

    ثم تكوين ملف tailwind.config.js لتحديد الـ breakpoints المطلوبة، وتمكين الخصائص الإضافية التي ترغب في استخدامها. على سبيل المثال، يمكنك استخدام الكود التالي:

    // tailwind.config.js
    module.exports = {
      theme: {
        screens: {
          'sm': '640px',
          'md': '768px',
          'lg': '1024px',
          'xl': '1280px',
        },
        extend: {
          colors: {
            'primary': '#1a202c',
            'secondary': '#718096',
          },
        },
      },
      variants: {},
      plugins: [],
    }

    بعد ذلك، يمكنك استخدام الـ breakpoints المحددة في ملفات CSS الخاصة بك، ولتفعيل TailwindCSS في مشروع React، يجب تضمين ملف tailwind.css في ملف index.js الخاص بالمشروع كما يلي:

    // index.js
    import React from 'react';
    import ReactDOM from 'react-dom';
    import './tailwind.css';
    import App from './App';
    
    ReactDOM.render(
      <React.StrictMode>
        <App />
      </React.StrictMode>,
      document.getElementById('root')
    );
    • أعجبني 1
  8. قم بالتأكد من تضمين مكتبة TailwindCSS وإضافة الـ breakpoints الخاصة بها في ملف الـ CSS الخاص بك، باستخدام الـ breakpoints المرتبطة بعرض الشاشة، مثل sm, md, lg, و xl.

    بعد ذلك، يمكنك تحديد عرض العناصر بناءً على الشاشة المعنية باستخدام الـ breakpoints في CSS الخاص بالكارد، مثل:

    @media (min-width: 640px) {
      .card {
        width: 50%;
      }
    }
    
    @media (min-width: 768px) {
      .card {
        width: 33.33%;
      }
    }

    ومن خلال الكود السابق، عندما يكون عرض الشاشة أكبر من 640 بكسل، سيتم تعيين عرض الكارد على 50٪، وعندما يكون أكبر من 768 بكسل، سيتم تعيين عرض الكارد على 33.33٪.

    كما يمكنك استخدام الـ breakpoints المختلفة لتحديد الأحجام الأخرى التي تناسب شاشات مختلفة.

    • أعجبني 1
  9. بالإضافة إلى ما ذكره لك عدنان حاول التأكد من النقاط التالية:

    1- التأكد من أن المسار الذي تم استدعاء الملف من خلاله صحيح، أي E:\web-sit\formik\ps_academy\p2\pro2\src\components\FicheAxois.js هو المسار الصحيح.

    2- التأكد من تثبيت المكتبة اللازمة للمكون، ففي الكود الخاص بك يتم استخدام axios لإحضار البيانات من API.

    3- التأكد من عدم وجود أخطاء في الأكواد الأخرى في التطبيق، حيث أن الأخطاء في الأكواد الأخرى يمكن أن تؤثر على عرض المكون في الشاشة.

    4- قد يكون المشكلة مرتبطة بطريقة عرض المكون في الكود، يجب التأكد من عدم وجود أي أخطاء في طريقة عرض المكون داخل ملف الكود.

    5- يمكن أن يكون المشكلة مرتبطة بخطأ في ملف الـ CSS الخاص بالمكون، حيث أنه إذا كانت الصفحة تعمل بشكل صحيح ولكن المكون لا يظهر بشكل صحيح، فقد يكون السبب في ذلك هو خطأ في ملف الـ CSS.

    • شكرًا 1
  10. المعلومات التي بحاجة إلى توفيرها هي كالتالي:

    توضيح متطلبات النظام:  تحديد المتطلبات اللازمة لتشغيل المشروع على النظام، مثل نسخة معينة من نظام التشغيل أو البرامج المطلوبة للتشغيل، على سبيل المثال: "يحتاج المشروع إلى نظام تشغيل Windows 10 ومتصفح Chrome".

    طريقة تحميل المشروع: تحديد كيفية تحميل المشروع، سواء عن طريق الحصول على الرمز المصدري أو تنزيل حزمة التثبيت، على سبيل المثال: "يمكن تحميل المشروع من مستودع GitHub أو من خلال تنزيل حزمة التثبيت".

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

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

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

    شرح وظائف المشروع: يمكنك شرح وظائف المشروع وكيفية استخدامها بشكل أفضل.

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

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

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

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

    وهناك أداة بسيطة ستمكنك من فعل ذلك بكل سهولة:

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

    اللغة التي يتم بها كتابة ملفREADME

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

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

    أي يمكنك الجمع بين Markdown و HTML.

     

    • شكرًا 1
  11.  أنت تحاول تمرير سلسلة نصية تحتوي على رمز الأيقونة كـ "Icon" للمكون "Card"، وما يجب هو تمرير الأيقونة نفسها كعنصر منفصل داخل المكون.

    import { AiFillFacebook, AiFillTwitterSquare, AiFillInstagram, AiFillYoutube } from 'react-icons/ai';
    
    function Card(props) {
      return (
        <div>
          {props.Icon}
        </div>
      );
    }
    
    function App() {
      return (
        <div>
          <Card Icon={<AiFillFacebook size={22} />} />
          <Card Icon={<AiFillTwitterSquare size={22} />} />
          <Card Icon={<AiFillInstagram size={22} />} />
          <Card Icon={<AiFillYoutube size={22} />} />
        </div>
      );
    }
    

     يتم استيراد الأيقونات من مكتبة "react-icons" ويتم تمريرها كـ argument منفصل داخل المكون "Card" باستخدام الأقواس الزوجية، ثم عرض الأيقونة داخل المكون "Card" باستخدام "props.Icon".

    • أعجبني 1
  12. ربما هناك خطأ في عمود file_srno في الجدول الفرعي "details" الذي تم إنشاؤه في MySQL،  حاول تجربة تعريف عمود السيريال "file_srno" على أنه مفتاح أساسي (primary key)، والذي يتم توليد قيمه تلقائياً بواسطة خاصية AUTO_INCREMENT.

    CREATE TABLE table_sub (
    file_type INT NOT NULL,
    file_no INT NOT NULL,
    file_srno INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    descr NVARCHAR(100),
    FOREIGN KEY (file_type, file_no) REFERENCES table_main(file_type, file_no)
    ON UPDATE CASCADE
    ON DELETE CASCADE
    );

    تم إضافة PRIMARY KEY في عمود file_srno لجعله المفتاح الأساسي، والاحتفاظ بخاصية AUTO_INCREMENT.

    • أعجبني 1
  13. باستطاعتك رؤية القسم الأول من كل دورة وقراءة تفاصيل الدورة أيضًا، لتتخذ قرارك بشكل جيد.

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

    بعد ذلك عليك بإلقاء نظرة على الوظائف في السوق المحلي لديك ورؤية ماهي المهارات المطلوبة بالنسبة لمستوى Junior أو Entry Level فأنت لا تريد أن تتعلم مهارات غير مطلوبة ولا تحصل على وظيفة، وأيضًا ألقي نظرة على مواقع العمل الحر لتفقد المهارات المطلوبة.

    ولا تنسى تفقد عرض رمضان.

  14. لإنشاء جدولين في قاعدة البيانات MySQL، اتبع الآتي:

    لإنشاء الجدول الرئيسي "master"، يمكن استخدام الأمر التالي:

    CREATE TABLE table_main (
      file_type INT NOT NULL,
      file_no INT NOT NULL,
      file_date DATE,
      descr NVARCHAR(50),
      PRIMARY KEY (file_type, file_no)
    );

    لإنشاء الجدول الفرعي "details"، استخدم الأمر التالي:

    CREATE TABLE table_sub (
      file_type INT NOT NULL,
      file_no INT NOT NULL,
      file_srno INT NOT NULL AUTO_INCREMENT,
      descr NVARCHAR(100),
      PRIMARY KEY (file_type, file_no, file_srno),
      FOREIGN KEY (file_type, file_no) REFERENCES table_main(file_type, file_no)
        ON UPDATE CASCADE
        ON DELETE CASCADE
    );

    ملاحظة: تم استخدام نوع البيانات INT للأعمدة file_type، file_no، و file_srno،  استخدام نوع البيانات DATE للعمود file_date في الجدول الرئيسي، و استخدام NVARCHAR للأعمدة descr في الجدولين.

    كما تم استخدام AUTO_INCREMENT في الجدول الفرعي لتوليد قيم فريدة للعمود file_srno.

    • أعجبني 1
  15. مرحبًا @محمد الملاك

    في الوقت الحالي العرض متاح خلال شهر رمضان الكريم، وقد يتم زيادة المدة أو تنتهي بنهاية شهر رمضان.

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

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

    بالتوفيق.

  16. الخطأ يخبرك أنك تحاول استخراج ملف بصيغة غير صالحة، حيث يقبل نظام Android ملفات الصور والخلفيات والأيقونات بامتدادات .png و .jpg و .gif و .xml كمصادر drawable.

    فإذا كان لديك ملف بامتداد .db فعليك وضع هذا الملف في مجلد "assets".

    أيضًا إذا كان لديك ملف باسم .ico فعليك بتغيير إمتداد الملف إلى .png

    وربما أنت قمت بتحويل أيقونات .png إلى تنسيق .webp، وتم إنشاء الملف في مجلد xxhdpi ولم يتم استخدامه. 

    فقم بنقل ملف photothumb.db من مجلد drawable إلى مجلد assets.

    وإذا لم يكن مجلد الأصول موجودًا ، فانقر بزر الماوس الأيمن على المشروع واختر "New" ثم "Directory" ثم "assets" وقم بإنشاء مجلد assets. ثم ضع ملف الـ db الخاص بك في المجلد الجديد وسيتم حل المشكلة.

    وربما المشكلة بسبب ملف بإمتداد غير صحيح  في مجلد drawable.

  17. بتاريخ 1 ساعة قال al buraiki:

    هل يمكن توضيح طريقة الحل اكثر

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

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

    • أعجبني 1
  18.  يجب توفير محتوى عالي الجودة وموثوق به والتأكد من أنه يتوافق مع معايير Google News Publisher. 

    مع القيام بالخطوات التالية:

    1. إنشاء موقع ويب يحتوي على محتوى غني وموثوق به وبشكل منتظم.
    2. توفير محتوى فريد ومتنوع يتناول موضوعات مختلفة ولا يختصر على موضوع واحد فقط.
    3. الحصول على الكثير من المراجعات والزيارات من مستخدمي الإنترنت المختلفين والمنافسين في مجال نفس مدونتك.
    4. التأكد من توافر عنوان RSS لمدونتك الذي يتم إدراجه في محتوى Google News.
    5. التسجيل في Google News Publisher Center وتعبئة جميع المعلومات المطلوبة بشكل كامل.

    بالنسبة لمشكلتك في Reader Revenue Manager، باستطاعتك التحقق من صفحة المساعدة الخاصة بهذه الأداة على Google News ، حيث يتم شرح كيفية إعداد واستخدام الأداة بشكل كامل.

    إذا كانت المشكلة لا تزال قائمة، فيمكنك التواصل مع فريق دعم Google News للحصول على مزيد من المساعدة والدعم، أو يمكنك طرح سبب المشكلة هنا لمساعدتك.

    • أعجبني 1
  19. ليست كل مكتبات جافا مفتوحة المصدر متوافقة مع GPL ولا يمكن القول بأنها جميعًا مفتوحة المصدر دون استثناء. بالإضافة إلى ذلك، فإن بعض المكتبات المفتوحة المصدر لجافا يتم ترخيصها بتراخيص أخرى غير GPL، مثل MIT License أو Apache License أو BSD License أو CDDL License وغيرها.

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

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

  20. لغة جافا (Java) لغة برمجة شائعة واسعة الانتشار، وهي مفتوحة المصدر Open Source ومرخصة تحت ترخيص GPL (General Public License) و LGPL (Lesser General Public License) لأغراض تطوير البرمجيات المجانية والمفتوحة المصدر.

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

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

    بالإضافة إلى ذلك ، هناك مكتبات أخرى مشهورة لتطوير تطبيقات الجافا مثل Spring Framework و Hibernate ومكتبات التصور مثل JavaFX والتي تتبع تراخيص مفتوحة المصدر مثل Apache License و MIT License وغيرها.

    ويتم ترخيص البرمجيات تحت الرخصة لحماية حقوق الملكية الفكرية للمؤلفين وتحديد الشروط اللازمة لاستخدام وتوزيع البرمجيات. 

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

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

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

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

    وأنصحك بألا تشغل بالك كثيرًا بالرخص وحاول التركيز على بناء مشروعك أولاً.

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

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

    • أعجبني 1
×
×
  • أضف...