-
المساهمات
844 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
1
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Mahmoud7
-
فقط طريقة مبسط للكتابة في حالة عبارة مفردة بسيطة مثل function x(m, y, ...me) { let total = 0; for (let go of me) total += m + y + go; return total; } لكن فى حالة أكثر من عبارة ويوجد عمليات معقدة داخل جسم الحلقة لابد من وضعها ال{} لأنه لو تم وضع اكتر من جملة بدون {} لا تعتبر الا العبارة الأولى تبع جسم الحلقة function x(m, y, ...me) { let total = 0; for (let go of me) { total += m + y; total += go; } return total; }
- 5 اجابة
-
- 1
-
-
دي نصيحة الdocs بتاعت الredux تجنب وضع قيم غير قابلة للتسلسل مثل الوعود أو الرموز أو الخرائط/المجموعات أو الوظائف أو مثيلات الفئة في حالة متجر Redux أو الإجراءات المرسلة. وهذا يضمن أن الإمكانات مثل تصحيح الأخطاء عبر Redux DevTools ستعمل كما هو متوقع. كما يضمن أيضًا تحديث واجهة المستخدم كما هو متوقع بس في حالة إنك عايز تعملى تعطيل إن ويتم وضع قيم غير قابلة التسلسل بإمكان استخدام هذه البوابة configureStore({ middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: { // قم بتجاهل أنواع الإجراءات هنا ignoredActions: ['your/action/type'], // قم بتجاهل المسارات في جميع الإجراءات هنا ignoredActionPaths: ['meta.arg', 'payload.timestamp'], // قم بتجاهل هذه المسارات في الحالة ignoredPaths: ['items.dates'], }, }), })
-
بالاضافة لتعليقات الأصدقاء ال higher order function هى الfunction التى تأخذ function أخري أو أكثر كمعاملات لها أو ترجع function function greaterThan(n) { return m => m > n; } let greaterThan10 = greaterThan(10); console.log(greaterThan10(11)); // → true ويوجد functions في الجافسكربت هى higher order function جاهزة لحل مشكلات متكررة مثل ال 1 - ()map // جمع 10 على كل عنصر فى المصفوفة const arr = [1, 2, 3, 4, 5]; const output = arr.map((num) => num += 10) console.log(arr); // [1, 2, 3, 4, 5] console.log(output); // [11, 12, 13, 14, 15] 2 - ()filter const users = [ {firstName: 'John', lastName: 'Doe', age: 25}, {firstName: 'Jane', lastName: 'Doe', age: 30}, {firstName: 'Jack', lastName: 'Doe', age: 35}, {firstName: 'Jill', lastName: 'Doe', age: 40}, {firstName: 'Joe', lastName: 'Doe', age: 45}, ] // ايجاد المستخدمين أعمارهم فوق 30 const output = users.filter(({age}) => age > 30) console.log(output); // [{firstName: 'Jack', lastName: 'Doe', age: 35}, {firstName: 'Jill', lastName: 'Doe', age: 40}, {firstName: 'Joe', lastName: 'Doe', age: 45}]
- 4 اجابة
-
- 1
-
-
ربما يتم تشغيل في ios على نسخة قديمة من متصفح جوجل كروم لا تدعم خواص css الجديدة 1 - تحديث المتصفح فى الios 2 - اضافة الprefix لخواص css الجديدة تتم كالأتى display: flex; تصبح display: -webkit-flex; وهذا لكل الخواص الجديدة لcss وهذ أكواد الcss الخاصة بك بعد التعديل body { direction: rtl; } .upper-part { display: -webkit-box; /* iOS 6-, Safari 3.1-6 */ display: -moz-box; /* Firefox 19- (buggy but mostly works) */ display: -ms-flexbox; /* IE 10 */ display: -webkit-flex; /* Chrome */ display: flex; justify-content: space-between; } .logo-barcode { margin-top: 10px; } .logo-barcode a { background-color: white; text-decoration: none; } .logo-barcode img { width: 100px; height: 100px; } .driver-info { /* margin: 20px; */ } .trip-info { display: -webkit-box; /* iOS 6-, Safari 3.1-6 */ display: -moz-box; /* Firefox 19- (buggy but mostly works) */ display: -ms-flexbox; /* IE 10 */ display: -webkit-flex; /* Chrome */ display: flex; justify-content: space-between; } .trip-info div span { color: rgb(255, 165, 0); background-color: black; opacity: 0.8; border-radius: 5px; padding: 5px 4px; text-align: center; font-size: 17px; width: 95px; display: inline-block; } .passngers-span { padding: 15px 30px; } .trip-info div input { max-width: 110px; padding: 3px; font-size: 17px; border-radius: 5px; outline: none; margin: 0px 5px; text-align: center; } @media screen and (max-width: 767px) { .passngers { margin-top: 4px; } .passngers-span { padding: 10px; } .taken-value { max-width: 100px; } .allocate, .date { display: -webkit-box; /* iOS 6-, Safari 3.1-6 */ display: -moz-box; /* Firefox 19- (buggy but mostly works) */ display: -ms-flexbox; /* IE 10 */ display: -webkit-flex; /* Chrome */ display: flex; flex-direction: column; width: 30%; } .trip-info div span { margin-bottom: 3px; } }
- 1 جواب
-
- 1
-
-
عند إتمام عملية الشراء ودفع المبلغ سيتم إرسال تأكيد بالشراء إلى بريدك الإلكتروني المستخدم في أكاديمية حسوب. بعد مراجعة طلبك والتأكد من وسيلة الدفع المستخدمة، ستلاحظ إضافة أيقونة جديدة في الشريط العلوي للموقع باسم دوراتي، عند الضغط عليها ستصل إلى الدورات التي سجلت بها، وتبدأ الدروس. اذا لم تظهر معك الأيقون وواجهت أى مشكلة تحدث مع مركز المساعدة https://support.academy.hsoub.com
-
حاولي يكون السؤال واضح أكثر ما نوع المشروع ؟؟ ماذا تريدى ان تفعلي تريدي تشغيل البرنامج أم معرفة ال version للمشروع أما ماذا؟؟ في حالة أردتى معرفة اصدار ال Playwright استخدمى هذا ال command npx playwright --version في حالة أردتى اجراء الاختبار استخدمى هذا ال command npx playwright test
- 1 جواب
-
- 1
-
-
عليك فقط معرفة طريقة الكتابة للغة البرمجية التى تتعلمها وفهم كل شئ خاص بها من مبادئ واساسيات طريقة التصريح بمتغير جديد طريقة عمل دالة وفهم هذه الدالة وما هو الغرض منها طريقة عمل العبارات الشرطية وبداخل هذا الشرط يتم تنفيذ كود معين طريقة عمل الحلقات التكرارية loop ليس عليك بالطبع معرفة كل الكلمات المحجوزة ولكن في بادئ الامر يكفى معرفة أشهر الكلمات المجوزة الخاص باللغة التى تستخدمها فقط عليك التطبيق لكل شئ تفهمه وبالممارسة والبحث ستحفظ وتعرف الكثير من الكلمات المحجوز بدون ما تشعر لا تحاول حفظ جميع القواعد البرمجية الخاصة بلغة ما تعلم الأساسيات وافهمها جيدا لاتنسخ الكود وتلصقه بدون ما تفهم ماهو المكتوب فيه يجب عليك فهمه للمزيد أيضا اطلع على هذه الاجابات
-
المشكلة في مكتبة النودمون (nodemon) ليس عليك رفع ال node_modules علي github ولكن اترك سيرفر الريندر يعمل تثبيت لك المكتبات الذى يحتاجها التى بالفعل انت ثبتها اثناء عملية التطوير وأيضا .env لأن ألأكواد التى بداخله سرية افتح ملف ال .gitignore وضع هذه الأكود بداخله /node_modules .env ثم ابدأ برفع الملفات مرة أخرى على github سيتم رفع كل الملفات ما عدا ( node_modules و .env) ثم ابدأ بعمل نشر مرة أخري على render ستتم معك العملية بدون أى مشاكل
- 2 اجابة
-
- 1
-
-
المقصود بعملية الrouting بداخله انك لن تحتاج إلى مكتبات مثل React router dom لأنه يعمل بطريقة أخري file based system اى فقط تضع الصفحة في مجلد الصفحات وتتم عملية التوجيه ليس عليك أن تؤدي اعدادات مثل React router dom
-
اطار عمل nextjs هو أطار عمل مبني فعلا علي الرياكت يعمل على تحسين ال performance لأنه يوفر حلولًا لبناء المواقع وتطبيقات الويب بناءً على مكتبة React بسرعة وكفاءة أهمها التصيير من طرف الخادم server-side rendering والتوليد الساكن generating staticوذلك مهم للSeo يعطيك routing للصفحات بداخله بدون الحاجة إلي المكتبات خارجية ولكن تستطيع أيضا إنشاء باك اند بداخله فهو يعطيك مجلد api تستطيع الكتابة بداخله backend معتمد على ال nodejs https://academy.hsoub.com/questions/13636-ما-الفرق-بين-react-و-nextjs؟/#comment-38348
-
الدورات موجهة للناطقين باللغة العربية الفصحى ويمكن بالطبع تطبيق كل النصائح والمهارات في أي سوق عمل يتم التركيز على على حساب مستقل لأنه موجه للسوق العربي ويمكن تطبيق كل النصائح في أي سوق عمل للمزيد تحدث مع مركز المساعدة https://support.academy.hsoub.com
- 4 اجابة
-
- 1
-
-
يمكنك الدخول على الموسوعة هنا يوجد شرح جيد https://wiki.hsoub.com/الصفحة_الرئيسية
- 3 اجابة
-
- 1
-
-
ذلك لأى مفاهيم في أى لغة برمجة 1 - حاول شرح المفاهيم لأحد غيرك وأسئله هل فهم منك أم لا اذا فهم منك هذه المفاهيم اذن انت فهمتها واستوعبتها 2 - عليك بالممارسة والتطبيق المستمر على كل مفهوم لابد من التطبيق بنفسك 3 - عليك ادخال هذه المفاهيم في مشاريع وحل تحديات صغيرة بهذه المفاهيم 4 - شوف زملاء لك طبقوا على هذه المفاهيم واقرأ الكود الخاص بهم للتعرف طرق جديدة للحل والتطبيق على هذه المفاهيم 5 - شارك الكود الخاص بك مع الأخرين لترى هل هذه المشكلة التى حليتها عن طريق هذا المفهوم صحيحة أم يمكن حلها بشكل أفضل بطريقة أخري 6 - عليك بالممارسة والتطبيق انظر هذه الاجابات ايضا
-
الحل انك لاتضع الفانكشن على الزرار ولكن ضعها على الفورم ككل "onsubmit="getMessage(event) مع ارسال ال event للفانكشن وتغير نوع الزرار لsubmit <form onsubmit="getMessage(event)"> <h1 style="text-align: center; margin-bottom: 50px; margin-top: 30px; color: rgb(145, 125, 102);"> Pass the message </h1> <hr> <div class="cont"> <label for="message">Enter a Message :</label> <br> <button class="icon"><i class="fa-regular fa-message"></i></button> <input type="text" id="message-input" name="message"> <br> <button type="submit" class="submit"> Submit </button> <h4 id="the-message" style="text-align: center;"></h4> </div> </form> الفورم بعد الsubmit يحدث تحديث للصفحة بشكل كامل فتتحدث من جديد بسبب ذلك تختفي الرسالة فالحل نضع () e.preventDefault داخل الفانكشن وتكون كالتالي const writing = document.getElementById("message-input") function getMessage(e) { e.preventDefault() document.getElementById("the-message").innerHTML = writing.value writing.value = ""; }
- 3 اجابة
-
- 1
-
-
يوجد عدة حلول لهذه المشكلة الحل الأول - تشغيل البرنامج كمسؤول كليك يمينRun as administrator الحل الثانى استعادة مجلد النسخ الاحتياطي MySQL الخاص بك كالتالي تذهب الى مجلد ال xampp ثم مجلد mysql في هذا المجلد قم بعمل نسخة أخري لمجلد data وعدل اسمه ل data_old ثم الدخول لمجلد الداتا ونقوم بحذف كل الملفات المختارة في الصورة { mysql ,performance_shema , phpmyadmin , test } في نفس المجلد ونقوم بعمل delete للملفات (الملفات وليس المجلدات) ماعدا ibdata1 ثم نذهب لمجلد backup الموجود داخل mysql ثم نقوم بنسخ لكل ما بداخله ما عدا ibdata1 ثم نذهب لمجد الdata ونقوم بالصق داخله بالملفات التى نسخناها من مجلد ال backup ونقوم بالضغط على start ل mysql الحل الثالث قم بتغيير بورت الmysql واعد التشغيل وانظر لهذه الاجابات ايضا
- 12 اجابة
-
- 1
-
-
تأكد من اصدار الpython python --version أيضا لأنه يدعم Python 3.9–3.11 وتأكدمن تحديث أخر نسخة من نظام التشغيل
- 7 اجابة
-
- 1
-
-
أولا من المفترض جزء الapi على domain وجزء الفرونت على domain أخر نبدأ نجرب بالبوست هل الapi يعمل ومظبوط ويتصل بالداتا بيز لو كان يعمل اذن نضع هذه الأكواد فى .htaccess في domain الفرونت بالتأكيد من المفترض أن يعمل بدون اى مشاكل <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.html [L] </IfModule>
- 5 اجابة
-
- 1
-
-
طب ممكن تجرب على api بالبوست مان وتتأكد إن السيرفر شغال مظبوط لأن المشكلة اللى كانت مذكورة كان ليها علاقة بالreact.
-
جيد جدا أنك تبحث عن شهادة معتمدة ولكن في عالم البرمجة من المهم أيضا اكتساب الخبرات والمهارات لأنجاز المشاريع وحل المشكلات فأغلب المنصات التى تعطي شهادة ومعتمدة تثبت انك حضرت هذه الدورات واجتزت مهامها من حلها وانجاز مشاريع بداخلها فالأفضل لك التركيز على التعليم من مصادر جيدة والجميع يشهد لها بالكفاءة ثم الانتقال لمرحلة بناء المشاريع وبناء معرض أعمال قوى يدعمك ويثبت كفائتك عن البحث عن عمل وبالطبع أكاديمية حسوب رائدة فى تعليم البرمجة باللغة العربية دورات حسوب
- 1 جواب
-
- 1
-
-
هذه المشكلة تظهر في جميع الفيرموركس التى تعمل single page application مثل react أوangular وتظهر بعد عملية بناء الموقع ثم رفعه على أى استضافة سواء مجانية مثل netlify أو vercal تظهر عند عمل اعادة تحميل للصفحة غير أول صفحة يفتح عليها الموقع أو وضع url صفحة أخري بسبب أنه في SPA تتم إدارة التوجيه من جانب العميل، وقد لا يكون الخادم على علم بهذه المسارات من جانب العميل. يؤدي هذا التناقض إلى قيام الخادم بإرجاع خطأ "لم يتم العثور على الصفحة" للوصول المباشر إلى المسار، مما يتسبب في إحباط المستخدمين والارتباك للمطورين. لحل المشكلة فى netlify مثلا نحتاج الى عمل ملف netlify.toml ثم بداخله نضع هذا الكود [[redirects]] from = "/*" to = "/index.html" status = 200 force = false ونضع هذا الملف بجانب ملف الindex.html للموقع بعد عملية البناء builld للمزيد اقرأ هذ المقال https://medium.com/@emmanuelomemgboji/react-handling-404-errors-on-netlify-deployments-a-step-by-step-guide-with-react-vite-and-8ce618e07b0a
- 5 اجابة
-
- 1
-
-
1- أولا ضع فولدر الclient والسيرفر فى فولدر واحد 2- فى package.json التابع لل client سنستبدل أمر تشغيل الملف من "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, ليصبح "scripts": { "start": "vite", "build": "vite build", "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview" }, 3- بعد ذلك فى فولدر السيرفر نفتح ال terminal ونعمل install لمكتبة concurrently 4- ثم فى ملف ال package.json التابع للسيرفر "scripts": { "server": "server --ignore client", "client": "npm start --prefix ../client", "start": "concurrently --kill-others-on-fail \" npm run server\" \" npm run client\"" } 5- بعد ذلك فى فولدر السيرفر نفتح ال terminal ثم npm start سيتم تشغيل الخادم Node.js والـ Client بأمر واحد رابطة المكتبة https://www.npmjs.com/package/concurrently