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

ياسر مسكين

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

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

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

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

    1

أجوبة بواسطة ياسر مسكين

  1. لحل مشكلة الربط بين Unity و Flutter المذكورة نقوم بالتحقق من ملف settings.gradle ونتأكد من أن settings.gradle في جذر المشروع يحتوي على الإدخال الصحيح لمشروع unityLibrary هكذا:

    include ':app', ':unityLibrary'
    project(':unityLibrary').projectDir = file('../UnityExport/unityLibrary')

    ثم نقوم بتحديث build.gradle الخاص بمشروع Unity من خلال فتح ملف build.gradle الخاص بمشروع unityLibrary والتأكد من أن التكوينات متوافقة مع مشروع Flutter:

    configurations.maybeCreate("default")
    configurations.default.setExtendsFrom(configurations.implementation)
    
    // Ensure these dependencies are set correctly
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.tools.build:gradle:7.3.0'
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    }

    ولا تنس أيضا تحديث gradle.properties من خلال التأكد من أن ملف gradle.properties يحتوي على الإعدادات اللازمة التالية:

    android.useAndroidX=true
    android.enableJetifier=true

     ولتنفيذ أوامر Gradle التالية، في سطر الأوامر داخل مجلد مشروع Flutter، ننفذ الأوامر التالية لتنظيف وإعادة بناء المشروع:

    flutter pub get
    cd android
    ./gradlew clean
    ./gradlew build

    ويجب التحقق من إصدار Android Gradle Plugin (AGP) في ملفات build.gradle متوافق مع الإصدار المستخدم في Unity فإذا كنت تستخدم AGP 7.3.0، تأكد من أن التكوينات الأخرى متوافقة مع هذا الإصدار.

  2. لتثبيت VMware Workstation 17.5.2 وبرنامج UNetbootin على نظام Linux Mint، يمكنك اتباع الخطوات التالية:

    أولا وقبل تثبيت VMware Workstation، نتأكد من تثبيت بعض الحزم الأساسية نقوم بفتح الطرفية (Terminal) ونكتب الأوامر التالية:

    sudo apt update
    sudo apt install build-essential
    sudo apt install linux-headers-$(uname -r)

    بعدها يجب إعطاء الأذونات لملف التثبيت:

    cd /path/to/your/file
    chmod +x VMware-Workstation-Full-17.5.2-23775571.x86_64.bundle

    ثم نقوم بتشغيل ملف التثبيت باستخدام الطرفية:

     sudo ./VMware-Workstation-Full-17.5.2-23775571.x86_64.bundle

    ثم نتبع التعليمات التي تظهر على الشاشة لإكمال التثبيت.

    لتثبيت UNetbootin كذلك نتأكد من أن لدينا جميع الحزم المطلوبة:

    sudo apt update
    sudo apt install p7zip-full

    ثم نقوم بتنزيل UNetbootin من المصدر أو نستخدم الأمر التالي:

    sudo apt install unetbootin
  3. يمكننا حل المشكلة الأولى، فالشيفرة كما ترين تحتوي على عدة أخطأء، لنعدّل أولا اسم الدالة greeting إلى Greeting في السطر 25 ثم نضيف self كأول بارامتر للدالة greet داخل الكلاس بعد ذلك نتأكد من أن الدالة greeting تُطبع بشكل صحيح.

    يمكنك استخدام هذه الشيفرة المعدلة:

    # Write functions
    def greeting():
        return 'Hello'
    
    # Call functions
    print(greeting())
    
    # Import from Standard Library
    import datetime
    now = datetime.datetime.now()
    print(now)
    
    # Create and work with classes
    class Greeting:
        def greet(self, huda):
            return 'Hello ' + huda
    
    print(Greeting().greet('Amber'))
    
    # تصحيح الأخطاء في الطباعة
    print("Hello 'name'")
    print("Hello 'Huda'")

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

    • شكرًا 1
  4. يمكنك استخدام Express.js لإنشاء خادم ويب يعرض جميع الصور الموجودة في المجلد، أولا تأكد من أنك قمت تثبيت مكتبة express باستخدام npm:

    npm install express

    ثم أنشئ ملف server.js في الجذر مشروع وضع فيه هذه الشيفرة:

    const express = require('express');
    const fs = require('fs');
    const path = require('path');
    
    const app = express();
    const port = 3000; // يمكنك تغيير هذا المنفذ كما تشاء
    
    // المسار إلى مجلد الصور
    const imagesFolder = path.join(__dirname, 'images');
    
    // استخدم ميدلوير `express.static` لجعل مجلد الصور متاحًا للوصول العام
    app.use('/images', express.static(imagesFolder));
    
    // قم بإنشاء نقطة نهاية لإرجاع قائمة بجميع الصور في المجلد
    app.get('/images-list', (req, res) => {
        fs.readdir(imagesFolder, (err, files) => {
            if (err) {
                return res.status(500).json({ error: 'Failed to read images directory' });
            }
    
            // قم بتصفية الملفات للحصول على الصور فقط
            const images = files.filter(file => /\.(jpg|jpeg|png|gif)$/i.test(file));
    
            // أرسل قائمة الصور كاستجابة JSON
            res.json(images);
        });
    });
    
    app.listen(port, () => {
        console.log(`Server is running on http://localhost:${port}`);
    });

    لقد قمت بوضع تعليقات في الكود لكي يكون كل شيء واضحا بالنسبة لك.

    بعدها قم بإنشاء مجلد يسمى images في جذر المشروع وضع بعض الصور فيه لاختبار التطبيق، ثم شغل السيرفر:

    node server.js

    وافتح المتصفح وانتقل إلى الرابط التالي للحصول على قائمة بجميع الصور:

    http://localhost:3000/images-list

    ستظهر قائمة بالصور الموجودة في المجلد images في شكل JSON أين يمكنك استخدامها لعرض الصور في واجهة المستخدم الخاصة بك.

    وللوصول إلى صورة معينة بحد ذاتها، يمكنك استخدام الرابط التالي:

    http://localhost:3000/images/اسم_الصورة

    بهذه الطريقة، يمكن للمستخدمين رؤية جميع الصور المتاحة واختيار الصورة التي يريدونها.

  5. عند استخدام Redux لإدارة الحالة في تطبيقات الويب، فإنه يقوم بتخزين البيانات في الذاكرة العابرة (RAM)، وبالتالي فإن البيانات تفقد عند تحديث الصفحة. للحفاظ على البيانات حتى بعد تحديث الصفحة، يمكنك استخدام التخزين المحلي (Local Storage) أو التخزين الجلسي (Session Storage) للمتصفح، بداية قم بإضافة كود لحفظ البيانات في local storage كلما قمت بتحديث الحالة في Redux  واستخدم:

    localStorage.setItem('key', value)

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

    store.subscribe(() => { localStorage.setItem('formData', JSON.stringify(store.getState().formData)); });

    وعند بدء تشغيل التطبيق، يمكنك قراءة البيانات من local storage واستخدامها لتهيئة حالة Redux.

    const savedFormData = localStorage.getItem('formData'); const initialState = saved formData ? JSON.parse(savedFormData) : {}; const store = createStore(rootReducer, { formData: initialState });

    ثم بعدها يمكنك استخدام البيانات المحفوظة في الحالة العامة للتطبيق، ويمكنك استخدام موصلات Redux (مثل connect في react-redux أو useSelector في الخطافات) لقراءة البيانات.

    • شكرًا 1
  6. بتاريخ 4 دقائق مضت قال NAIF:

    يااخى انا اوريد عمل خيار في لوحة التحكم ليحدد شكل الروابط 

    إذا كان www.example.com/category/c-رقم التصنيف.html

    او www.example.com/c-رقم التصنيف.html

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

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

    RewriteEngine On
    
    # تحويل الروابط إلى شكل /category/c-رقم التصنيف.html
    RewriteRule ^category/c-([0-9]+)\.html$ cat.php?c=$1 [L,QSA]
    
    # أو تحويل الروابط إلى شكل /c-رقم التصنيف.html
    RewriteRule ^c-([0-9]+)\.html$ cat.php?c=$1 [L,QSA]

    ثم احفظ التغييرات في ملف .htaccess واختبر الروابط في المتصفح للتأكد من أن التحويل يعمل بشكل صحيح.

    • أعجبني 1
  8. بتاريخ 8 دقائق مضت قال Mohamed Mohamed44:

    سلام عليكم 
    ازاى اعمل request عن طريق axios 
    للرابط دة 
    https://alsouq.anevex.com/app/shop-api/advertisements
    لكن مع اضافة المصفوفة اللى ظاهرة فى الصورة تحت عنوان Body => Raw 
    لان بدون اضافة المصفوفة بترجعلى data فاضية 

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

    // 1. استيراد مكتبة Axios
    import axios from 'axios';
    
    // 2. تعريف الكائن JavaScript مع نفس بنية الكائن JSON في "Body => Raw"
    const jsonObject = {
      "home_page_position": "Headers",
      "show_in": "home"
    };
    
    // 3. استخدام طريقة axios.post() لإرسال طلب POST
    axios.post('https://alsouq.anevex.com/app/shop-api/advertisements', jsonObject)
      // 4. في حالة نجاح الطلب
      .then(response => {
        // طباعة البيانات الواردة في الاستجابة على الكونسول
        console.log(response.data);
      })
      // 5. في حالة وجود خطأ
      .catch(error => {
        // طباعة الخطأ على الكونسول
        console.error(error);
      });

    ففي البداية نقوم باستيراد مكتبة Axios باستخدام:

    import axios from 'axios';.

    بعد ذلك، نعرّف كائنا JavaScript jsonObject بنفس بنية الكائن JSON الموجود في جزء "Body => Raw" من الصورة.

    ثم نستخدم طريقة axios.post() لإرسال طلب POST إلى الرابط الذي تريد وفي حالتنا

     https://alsouq.anevex.com/app/shop-api/advertisements.

    أول Argument للطريقة post() هو الرابط، وأما الثاني هو البيانات التي نريد إرسالها في جسم الطلب، وفي هذه الحالة هو الكائن jsonObject. 

    إذا نجح الطلب، سيتم استدعاء دالة then مع استجابة الخادم ك Argument. داخل هذه الدالة، نقوم بطباعة البيانات الواردة في الاستجابة على الكونسول باستخدام console.log(response.data).

    إذا حدث خطأ أثناء الطلب، سيتم استدعاء دالة catch مع الخطأ ك Argument. داخل هذه الدالة، نقوم بطباعة الخطأ على الكونسول باستخدام console.error(error).

    عند استخدام طريقة axios.post() وتمرير الكائن jsonObject ك Argument ثانية، ستقوم Axios تلقائيا بتعيين رؤوس الطلب المناسبة (Content-Type: application/json) وترميز الكائن jsonObject كجسم الطلب.

    • أعجبني 1
  9. ليس كذلك، ف Google Scholar هو محرك بحث أكاديمي مجاني من Google يتيح البحث عن المقالات العلمية والأبحاث الأكاديمية والكتب والتقارير الفنية من مجموعة واسعة من المجالات العلمية بالطبع يمكن لمبرمجي الذكاء الاصطناعي استخدامه للوصول إلى أحدث الأبحاث، استكشاف الحلول لمشاكل محددة، متابعة التطورات الجديدة، والاستشهاد بالأبحاث في مشاريعهم وتقاريرهم.

    فمثلا يمكنك كتابة كلمات مفتاحية دقيقة تتعلق بموضوع بحثك، مثل "deep learning"، "natural language processing"، أو "AI in healthcare" وستجد مصادر مفيدة وقيمة.

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

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

    بالنسبة للتمارين فالدروس نفسها فيها كمية من المسائل والتمارين والمشاريع الصغيرة والكبيرة التي ستساعد كثيرا في ترسيخ المفاهيم.

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

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

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

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

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

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

    • أعجبني 1
  12. المشكلة التي تواجهينها تتعلق بعدم توافق أو فقدان مرجع مكتبة nunit.framework في مشروع Unity، حيث تظهر رسالة الخطأ أن المكتبة المشار إليها بواسطة Unity.InputSystem.TestFramework غير موجودة أو غير مسموح بإدراجها.

    عليك بالتأكد من أن المكتبة nunit.framework متوفرة ومشار إليها بشكل صحيح في إعدادات المشروع لعمل ذلك قومي ب:

    • فتح ملف Packages/manifest.json في محرر النصوص.
    • تأكدي من أن الإدخال الخاص بـ nunit.framework موجود وأنه يشير إلى الإصدار الصحيح. يجب أن يكون الإدخال بهذا الشكل:
    {
      "dependencies": {
        "nunit.framework": "3.12.0",
        "com.unity.inputsystem": "1.0.2"
      }
    }

    فإذا لم يكن الإدخال موجودا، نضيفه إلى ملف manifest.json ثم نحفظه، مع حذف مجلد Library من دليل المشروع وهذا ما سيجبر Unity على إعادة بناء جميع الملفات الضرورية بعدها قومي بإعادة فتح المشروع في Unity وانتظري حتى ينتهي من إعادة بناء الملفات.

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

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

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

    • أعجبني 1
  14. بتاريخ 2 دقائق مضت قال Sara Mohammed9:

    Exception: C:\Program Files\Unity\Hub\Editor\2019.4.40f1\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe did not run properly!

    ماهو حل هذة المشكلة

    لحل المشكلة وتحرّي مصدرها، أولا قومي بتحديث Unity Hub والمحرر إلى أحدث إصدار، وأعيدي تثبيت IL2CPP module عبر Unity Hub من خلال الذهاب إلى قسم "Installs"، واختاري الإصدار  التالي:

    2019.4.40f1

    بعد ذلك انقري على النقاط الثلاث بجانبه، ثم اختاري "Add Modules"، وتأكدي من أن IL2CPP module مثبت، وإذا لم يكن، فقومي بتثبيته.، وتأكدي من أن لديك أحدث إصدار من .NET Framework وحزمة Visual C++ Redistributable مثبتة على جهازك، ثم حاولي تشغيل Unity كمسؤول.

    بعض الأخطاء قد تكون السبب لهذا الأمر مثل الأحرف وأسماء المشاريع لهذا فإذا كان اسم المشروع يحتوي على أحرف غريبة مثل الأقواس أو الشرطات فقومي بإزالتها واستخدمي الأحرف الأبجدية فقط في اسم المشروع. على سبيل المثال، إذا كان اسم المشروع "My-Project (1)"، قم بتغييره إلى "MyProject" وحتى التأكد من أن مسار الدليل الذي تم تثبيت Unity فيه لا يحتوي على أي أحرف غريبة لأنه يفضل أن يكون المسار بسيطا وواضحا.

  15. لا يمكنك نسخ الأكواد من الفيديو مباشرة باستخدام "Ctrl + C" في حين يمكنك استخدام برامج التعرف الضوئي على الحروف (OCR) لاستخراج النص من لقطة شاشة للفيديو لكن بشكل عام لا أنصحك بذلك في حالة ما كنت في بداية مسارك التعلمي في البرمجة، فأفضل حلّ هنا هو كتابة الأكواد البرمجية بيديك لترسيخ المفاهيم وطريقة الكتابة فتلك الشيفرات ماهي إلا قواعد كتابة هي الأخرى نستخدمها في البرمجة.

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

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

    Capturedcran2024-03-20151500.thumb.png.a73b32fc4c033da7e66a7ca20693fd52.png

  17. يمكنك تثبيت PyTorch عن طريق استخدام أحد مديري الحزم مثل pip أو conda، باستخدام الأمر التالي:

    باستخدام pip:

    pip install torch torchvision

    باستخدام conda:

    conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge

    والآن بالنسبة للفرق بين torch و PyTorch، فهما في الأساس نفس الشيء. PyTorch هو الاسم الذي يستخدمه المشروع لتسويق نفسه وللتأكيد على أنها واحدة من مكتبات Python الرائدة للتعلم العميق والحوسبة العلمية. ومع ذلك، قد تجد أحيانًا أن الناس يشيرون إلى المكتبة فقط بـ "torch" دون "Py". هذا يعود جزئياً إلى أن PyTorch كانت في الأصل جزءًا من مشروع Torch، وهو مشروع آخر للتعلم العميق ولكن باستخدام Lua بدلا من Python.

    • أعجبني 1
  18. بتاريخ 17 دقائق مضت قال Aimen Zeffanine:

    مدى عن البرتفيليو الخاص بي ؟

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

    • أعجبني 1
  19.  Freelancer Plus يعتمد أكثر على احتياجاتك وميزانيتك، فمن مميزاتها أنها تزيد في فرص الحصول على المشاريع و تساعدك عبر توفير أدوات و تطبيقات ذكية لتحسين كفاءتك في الموقع، وكمبتدئ لا أنصحك به حاليا.

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

    و بالتأكيد لا يجب أن تنسى أن تتفاعل مع العملاء بشكل جيد و منظم مع احترام الاوقات و المواعيد كي تكسب العملاء وتستمرّ في تقديم خدماتك لهم.

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

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

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

    يمكنك الاطلاع على هاته المقالة للمزيد من المعلومات:

     

    • أعجبني 1
  21. أنت تواجه خطأ في السطر 19، والذي يشير إلى "Unterminated regular expression literal."

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

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

    <script src="index.js"></script>

     

    • أعجبني 1
  22. لكي يعمل التأثير بشكل جيد يجب أن تتأكد من صحة المسارات التي في ملف html الخاص بك وبالضبط في جزء ال header فقد وضعت التنسيقات في ملف style.css في نفس المجلد، بينما تقوم باستيراده على أساس أنه في مجلد آخر تحت اسم css لهذا يجب أن تعدله بهذا الشكل:

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    ...
      <link rel="stylesheet" href="style.css">
      <title>الشركة</title>
    </head>

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

    <img src="images/logo.png" alt="logo">

     

  23. بتاريخ 3 دقائق مضت قال Aimen Zeffanine:

    السلام عليكم

    1. انوي اولا ان اناقش متطلبات المشروع مع العميل
    2. بعدها مرحلة التصميم هل اتعاون مع مصمم مثلا ؟ (ان كان نعم كيف احول التصميم لكود فfigma لم يعد مجاني) 
    3. اعمل على front-end + backend
    4. مرحلة الtesting ساستخدم postman بالنسبة للAPI و اختبر الواجهة الاماميه يدويا 
    5. بالنسبة لdeployment هل علي رفع كل جزء وحده (server, frontend, database) ام مذا و اي استضافة جيدة عندنا في المنطقة؟

    ارجو ااتوضيح في كل نقطة بارك الله فيكم .

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

    بالنسبة لنقطة التصميم، ففي هذه المرحلة يمكنك التعاون مع مصمم لتصميم واجهة المستخدم ويكون مختص في ال UI/UX إذا كانت هنالك حاجة لذلك، توجد عدة أدوات يمكنك استخدامها لتحويل التصاميم إلى كود، ك Zeplin و Avocode فهي تمكّنك من استخراج التنسيقات ومراجع الصور والأبعاد بسهولة من التصاميم.

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

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

    بالنسبة للسؤال الأخير، فإذا كان المشروع صغيرا وغير معقد، فقد تكون الاستضافة المشتركة مع استضافة المواقع الشائعة كافية أما إذا كان المشروع كبيرا ويتطلب موارد كبيرة، فإن استخدام خدمات السحابة مثل AWS أو Azure قد يكون الخيار الأفضل لضمان الأداء والقدرة على التوسع.

    يمكنك مراجعة هذه المصادر للتعمق أكثر:

     

  24. اختيار الافضل بين Flask و Django و Object-Oriented Programming (OOP) في Python يعتمد على الاحتياجات الخاصة بنا كمبرمجين، فلا توجد لغة أفضل من الأخرى فلكلّ لغة ونقاط القوة خاصتها في مجال استعمالها ونفس الأمر بالنسبة لأطر العمل، بالنسبة لمسارات التعلم:

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

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

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

    أقترح عليك هذه المقالات والمصادر التي ستوفر عليك السؤال والاستفسار لما لها من معلومات قيمة تمت مشاركتها في الأكاديمية:

  25. أرجو إرفاق سؤالك تحت خانة الدرس في قسم التعليقات أسفل فيديو كل دورة أين واجهت المشكلة.

    بالنسبة للمشروع الخاص بك والأخطاء التي واجهتك فأول خطأ كان بعد تشغيل المشروع هو:

    Uncaught SyntaxError: Unexpected token '<'

    في ملف index.js  في مجلد public وكان السبب وراء المشكلة هو أن عنصر النص الذي تم وضعه في العلامة <script>:

    <script crossorigin src="../src/index.js"></script>

    لهذا يجب أن يتم تضمين ملف JavaScript المجمع (مثل bundle.js) في ملف HTML بدلا من محاولة تضمين ملف index.js مباشرة. يمكن أن نستخدم عنصر script لتضمين الملف المجمع بدلا من ذلك، والتأكد من توجيه المسار بشكل صحيح إلى الملف المجمّع.

    بالنسبة للخطأ الثاني المشكلة تكمن في استخدام الخاصية class بدلا من className في العنصر <span> الذي يحمل العدد الموجود في العربة:

    <span class="position-absolute top-10 start-0 translate-middle badge rounded-pill bg-danger">
        {itemsNum || 0}
    </span>

    يجب أن يكون بهذا الشكل:

    <span className="position-absolute top-10 start-0 translate-middle badge rounded-pill bg-danger">
        {itemsNum || 0}
    </span>

    حيث يتم استخدام className بدلا من class لتجنب الأخطاء المحتملة وتحقيق التوافق مع قواعد React.

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

×
×
  • أضف...