-
المساهمات
13209 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
365
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
Apex منصة قوية لتطوير تطبيقات الويب القائمة على Salesforce ومثل أي منصة برمجية، فإنها عرضة للثغرات الأمنية التي يمكن أن تعرض البيانات والأنظمة للخطر، حتى GitHub بها ثغرة حاليًا تستخدم لنشر Malware ويتم العمل على حلها. وأنواع الثغرات الأمنية الشائعة في تطبيقات Apex، هي كالتالي: حقن SQL والتي تحدث عندما يتمكن المهاجم من إدخال تعليمات برمجية SQL ضارة في طلبات قاعدة البيانات مثل البيانات التي يتم إرسالها من خلال نموذج form، مما يسمح له بالوصول إلى البيانات الحساسة أو تعديلها أو حذفها. التنفيذ التعسفي للأوامرACE ويحدث من خلال تمكن المهاجم من إرسال تعليمات برمجية ضارة إلى التطبيق، مما يسمح له بتنفيذ تلك التعليمات على خادم Salesforce. التقاط Cross-Site Scripting (XSS) وسببها هو إدخال نصوص JavaScript ضارة في صفحات الويب، مما يسمح بسرقة بيانات المستخدم أو التحكم في متصفح المستخدم. التصريح غير المصرح به بالوصول إلى البيانات وتحدث الثغرة عندما يتمكن المستخدم من الوصول إلى البيانات التي ليس لديه حق الوصول إليها.
-
البداية تكون بمشاركات صغيرة في مشاريع مفتوحة المصدر حيث ستجد مشاكل Issues بها وسم tag باسم good first issue: ثم انتقل إلى مشروع أكبر إن واتتك الفرصة، وعامًة ستجد في المواقع التالية فرص جيدة للمشاركة بالمشاريع: https://goodfirstissue.dev/ https://forgoodfirstissue.github.com/ وعامًة لتطوير مستواك، قم بقراءة الكود الخاص بمكتبة صغيرة مثلاً وتفقد كيف تم تطويرها وطريقة كتابة الكود، ثم قم بقراءة كود أكبر وهكذا.
- 2 اجابة
-
- 1
-
لم يتم ذكر حجم المشروع وهل هو بحاجة إلى مكتبة إو إطار للواجهة الأمامية أم لا؟ حيث يمكن توليد الواجهة الأمامية من خلال لارافل وبوتستراب وبذلك يتم استخدام لغات وتقنيات أقل. ومثلاً للحصول على ميزة حديث واجهة المستخدم ديناميكيًا دون الحاجة إلى إعادة تحميل الصفحة، تستطيعي استخدام إطار Laravel Livewire.
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
ستعتمد على الخوارزميات الموجودة التي تم تطويرها واختبارها من قبل الآخرين. مثل خوارزميات التعلم العميق الشائعة مثل شبكات ResNet و Transformer، متاحة في مكتبات مثل TensorFlow و PyTorch. وستبقى كذلك، وفي مراحل متقدمة من مسيرتك قد تتمكن من التطوير على خوارزمية موجودة، أو العمل على تطوير خوارزمية جديدة مع فريق عمل لكن ذلك ليس بالهين لكون الأمر يتطلب فهم عميق للرياضيات وعلوم الحاسوب. وبخصوص الرياضيات ستجد تفصيل هنا: عامًة تصميم خوارزميات جديدة يعتمد على نماذج رياضية معقدة تُشتق من مجالات مثل الجبر والحساب التفاضلي والتكامل ونظرية الأعداد. حيث يتم ذلك باستخدام طرق رياضية صارمة مثل الإثباتات الرياضية وتحليل التعقيد ليضمن إثبات صحة الخوارزميات أنها تعمل بشكل صحيح وتُنتج النتائج المتوقعة. ولتحسين أداء الخوارزميات تُستخدم تقنيات رياضية مثل التحسين والتقريب، وتهدف إلى زيادة كفاءة الخوارزميات وتقليل وقت تشغيلها.
- 4 اجابة
-
- 1
-
بالطبع ذلك حقك بلا شك، أرجو إذن الإنتظار لبعض الوقت وسيتم الرد عليك لا تقلق بخصوص الرد.
-
عذرًا على أي مشكلة واجهتها خلال تواجدك بالأكاديمية، أتفهم شعورك وما مررت به، لكن من أجل مصلحتك أنت عليك تحديد المجال الذي تريد التخصص به والمطلوب في سوق العمل لديك أو الذي تريد العمل به أيًا كان هو، فلا يتم تحديد المجال بناءًا على شغفك أو حبك للمجال، فذلك أمرًا آخر، وبعض المجالات تحتاج إلى وقت أطول لكي تصبح مؤهل لسوق العمل مقارنًة بمجال آخر. لذا عليك تحديد الوقت المتاح لك بشكل واقعي وتحديد ما الذي تريده بعد إجراء بحث لبعض الوقت. وعامًة القرار راجع لك، وما تريده تستطيع إخباره لمركز المساعدة وسيتم مساعدتك به ولا تقلق بخصوص الرد، فذلك يكون بسبب بعض الضغط، أرجو الإنتظار.
- 3 اجابة
-
- 1
-
في حال كنت ستستخدم المكتبة في مشروع جافاسكريبت والمكتبة تدعم مشاريع جافاسكريبت النقية وليس Node.js فقط، إذن تستطيع تحميل ملفات المكتبة مباشرًة واستخدامها في مشروع دونّ الحاجة إلى استخدام npm. وبخصوص الخطوط، نستخدم CSS لأن الأمر متعلق بالتنسيق وبالتالي لغة CSS هي المسؤولة عن ذلك في المتصفح، وحتى إن استخدمت مكتبة فسيتم تحويل الكود الخاص بها إلى أكواد CSS، إذن ما الداعي إلى ذلك؟ عليك الإعتماد على خصائص CSS مثل font-family و font-size و font-weight و font-style لتحديد الخط وحجمه ووزنه وأسلوبه. p { font-family: Arial, sans-serif; /* تحدد عائلة الخطوط */ font-size: 16px; /* تحدد حجم الخط */ font-weight: bold; /* تحدد وزن الخط */ font-style: italic; /* تحدد أسلوب الخط */ } وفي React عليك تحميل الخط من google fonts مثلاً ووضعه في مجلد fonts في مجلد assests ، ثم استيراده كالتالي في المكون الرئيسي: import './fonts/Goldman/Goldman-Bold.ttf'; ثم في ملف CSS الرئيسي، استخدم الخط كالتالي: @font-face { font-family: "GoldmanBold"; src: local("GoldmanBold"), url("./fonts/Goldman/Goldman-Bold.ttf") format("truetype"); font-weight: bold; } وبعد ذلك في باقي تطبيقك تستطيع استخدام الخط من خلال خاصية font-family ثم كتابة اسم الخط كالتالي: .main { font-family: "GoldmanBold"; }
- 2 اجابة
-
- 1
-
مجال الدورة مجال متقدم بحاجة إلى سابق معرفة بالبرمجة أي شخص لديه إلمام بأساسيات البرمجة وعلوم الحاسوب، ولذلك دورة علوم الحاسوب في الأكاديمية هي الدورة المناسبة كبداية، فهي ليست خاصة بمجال معين بل للتأهيل لدخول مجال البرمجة. لكن في دورة الذكاء الاصطناعي تم مراعاة ذلك، حيث يتم الإفتراض أنه لا يوجد أي خبرة برمجية مسبقًا ويتم البدء من الصفر. ولا مشكلة في الإشتراك بدورة الذكاء الاصطناعي، لكن ستحتاج إلى فترة لكي تستوعب بعض الأمور بها، وفي البداية يتم شرح أساسيات لغة بايثون ثم شرح قواعد البيانات، لذا هي بها شرح جيد للأساسيات، لكن ستحتاج إلى البحث ودراسة بعض الأمور الأخرى خارج الدورة لكي تستوعب ما يتم شرحه.
-
في الواجهة الخلفية للتطبيق لديك، عليك تثبيت حزمة CORS: npm install cors ثم تضيف الكود التالي في ملف الخادم الخاص بك app.js const express = require('express'); const cors = require('cors'); var app = express(); app.use(cors()); لاحظ استخدام app.use(cors()) بعد app = express(). ولا تنسى تشغيل الخادم server عن طريق الأمر npm start. وعامًة مشكلة الـ CORS، هي ببساطة ناتجة عن سياسة الأمان "Cross-Origin Resource Sharing" والتي تمنع التطبيقات التي تعمل على نطاق معين من الوصول إلى الموارد من نطاق آخر. للتوضيح فرضًا، يحاول تطبيق الويب الذي يعمل على http://localhost:3000 الوصول إلى البيانات من https://example.com/api/data. نظرًا لأن هذه النطاقات مختلفة، فإن سياسة CORS تمنع هذا الطلب. والحل السابق في حال أنك تستخدم Node.js، لكنك ذكرت أنك تستخدم nuxtjs الإصدار 3، فعليك استخدام useFetch لجلب البيانات من API وكمثال: <script setup lang="ts"> const { data: count } = await useFetch('/api/count') </script> <template> <p>Page visits: {{ count }}</p> </template> بحيث يتم إرسال الطلب عن طريق الخادم. https://nuxt.com/docs/getting-started/data-fetching#usefetch
-
حاليًا تبرز الشبكات العصبية السائلة (LNNs) كنموذج جديد وواعد للتعلم الآلي، وتهدف هذه الشبكات إلى محاكاة بنية الدماغ البشري بشكل أكثر دقة، مما يمنحها قدرات فريدة تميزها عن الشبكات العصبية التقليدية. وهي نوعًا من الشبكات العصبية المتكررة (RNNs)، قادرة على معالجة البيانات بشكل تسلسلي وتتميز الشبكات بخصائص أساسية: تُعالج LNNs البيانات في الوقت الفعلي، بالتالي هي مناسبة للتطبيقات التي تتطلب استجابة فورية للتغيرات الديناميكية. ذاكرة داخلية تسمح لها بتخزين المعلومات من المدخلات السابقة، ونتيجةً لذلك يُمكّنها التعلم من التجارب والتكيف مع المواقف الجديدة. تتكيف باستمرار مع المدخلات الجديدة، مما يسمح لها بتعديل سلوكها وتحسين أدائها بمرور الوقت. تعالج بفعالية المدخلات ذات الطول المتغير، مما يجعلها مناسبة للمهام التي تتضمن بيانات غير متسقة. بالنسبة للفرق بين الشبكات العصبية السائلة والشبكات العصبية التقليدية، فتتميز LNNs عن الشبكات العصبية التقليدية (NNs) بعدة خصائص رئيسية تم ذكرها منذ قليل، أي العكس صحيح: تُعالج LNNs البيانات بشكل تسلسلي، بينما تُعالج NNs البيانات بشكل غير تسلسلي. تمتلك LNNs ذاكرة داخلية، بينما تفتقر NNs إلى هذه الخاصية. تتكيف LNNs باستمرار مع المدخلات الجديدة، بينما تكون NNs أقل قدرة على التكيف. تُعالج LNNs بفعالية المدخلات ذات الطول المتغير، بينما تواجه NNs صعوبات مع هذه البيانات. وتُظهر LNNs إمكانيات هائلة في مختلف مجالات الذكاء الاصطناعي، تشمل تمكين الروبوتات من التعلم من بيئتها والتكيف مع التغيرات الديناميكية، مما يُحسّن أدائها في المهام المعقدة. بجانب المساعدة في فهم اللغة الطبيعية بشكل أفضل، وتحسين ترجمة النصوص، وإنشاء محتوى إبداعي، أو في التنبؤ باتجاهات السوق وتحليل البيانات المالية المعقدة، أو في تشخيص الأمراض وتطوير علاجات جديدة وتحليل البيانات الطبية.
- 3 اجابة
-
- 1
-
هل قمت بالتالي؟ أضف التالي أيضًا لنفس الملف لإضافة ID فريد عشوائي لكل Build: distDir: "_next", generateBuildId: async () => { if (process.env.BUILD_ID) { return process.env.BUILD_ID; } else { return `${new Date().getTime()}`; } }, إن استمرت المشكلة حاول حذف مجلد .next ثم node_modules ثم تنفيذ أمر البناء npm run build مجددًا. @Ahmed Zehry في حال تستخدم pm2 أرجو إعادة تشغيله من خلال: pm2 restart app حيث app هو اسم التطبيق لديك أرجو تغييره بما لديك.
-
حاول حذف assetPrefix: "." من ملف next.config.js، وذلك لكي يتم استخدام مسار للـ assets بناءًا على الصفحة الحالية التي أنت بها. أضف التالي أيضًا لنفس الملف لإضافة ID فريد عشوائي لكل Build: distDir: "_next", generateBuildId: async () => { if (process.env.BUILD_ID) { return process.env.BUILD_ID; } else { return `${new Date().getTime()}`; } }, إن استمرت المشكلة حاول حذف مجلد .next ثم node_modules ثم تنفيذ أمر البناء npm run build مجددًا.
- 6 اجابة
-
- 1
-
لا يمكن العثور على الكائن "categories" لأنه غير موجودK أولاً، تأكد من وجود جدول باسم "categories" في قاعدة البيانات باستخدام الأمر التالي: SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'categories'; وإن لم تعثر عليه فستحتاج إلى إنشائه باستخدام الأمر التالي: CREATE TABLE categories ( category_id INT PRIMARY KEY ); أيضًا يجب توفر الأذونات اللازمة للوصول إلى الجدول "categories"، وتستطيع الحصول على ذلك باستخدام: GRANT SELECT, INSERT ON categories TO [username]; استبدل "[username]" باسم المستخدم الخاص بك. وأحيانًا تحتاج إلى تفعيل IDENTITY_INSERT قبل إدخال البيانات في جدول يحتوي على عمود IDENTITY: SET IDENTITY_INSERT categories ON; بعد إدخال البيانات، عليك تعطيل IDENTITY_INSERT باستخدام الأمر التالي: SET IDENTITY_INSERT categories OFF;
-
في حال تم تنفيذ ذلك من خلال كوتلن، فعليك إضافة إذن الوصول إلى وحدة التخزين الخارجية: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ثم إنشاء زر لبدء عملية رفع الملفات: ويجب استخدام مكتبة Intent الصحيحة لبدء نشاط اختيار الصورة، وهي Intent.ACTION_GET_CONTENT بدلاً من Intent.ACTION_PICK. Button uploadButton = findViewById(R.id.upload_button); uploadButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, PICK_IMAGE_REQUEST_CODE); } }); وستجد تفصيل هنا حول WebView على موقع المطورين في Android: https://developer.android.com/develop/ui/views/layout/webapps/webview
-
لأنك تستخدم GetMaterialApp كجهاز توجيه في تطبيقك، ويتسبب ذلك في إخفاء زر الرجوع الخلفي الافتراضي في شريط العنوان. عليك استخدام WillPopScope لمنع التطبيق من الخروج عندما يتم الضغط على زر الرجوع الخلفي، أي تنفيذ إجراء مخصص، مثل الرجوع إلى الصفحة السابقة، كالتالي: WillPopScope( onWillPop: () async { // قم بإجراء مخصص هنا، مثل الرجوع إلى الصفحة السابقة Navigator.pop(context); return false; }, child: Scaffold( // ... ), ) وهناك طريقة أخرى وهي باستخدام BackButton لعرض زر الرجوع الخلفي مخصص في شريط العنوان، كالتالي: AppBar( title: Text('My App'), leading: BackButton( onPressed: () { Navigator.pop(context); }, ), ) وعليك استيراد WillPopScope و BackButton من حزمة flutter، واستخدام Navigator.pop() للرجوع إلى الصفحة السابقة.
-
غالبًا المشكلة لديكِ هي أنك لم تقومي بفتح مجلد المشروع في vscode، حيث فتح المجلد بالكامل وليس ملف index.html فقط، وذلك لكي تعمل إضافة live server. يمكنك فتح المجلد بسحبه وإلقاءه في واجهة vscode وسيتم فتح المجلد، أو من خلال الضغط على file بالأعلى في vscode ثم إختيار open folder ثم اختاري مجلد المشروع. الآن اضغطي على go live لتشغيل السيرفر.
-
هي من ضمن المشاريع العملية بالطبع، وأية مشاريع عملية حتى لو بسيطة من الأفضل تسليمها، وذلك بإنشاء مجلد للدورة وتقسيمه إلى مجلدات بداخله بحيث يصبح لكل مسار مجلد باسمه، ونضع في ذلك المجلد التطبيقات العملية للمسار. ثم نرفع مجلد الدورة بالكامل إلى مستودع GitHub. لكن المشاريع العملية الكبيرة نضعها في مجلد خاص بها ثم نرفعها على مستودع GitHub خاص بها، أي مشروع مثل تطوير موقع أو تطبيق مثلاً.
-
حسب الكود الذي نكتبه، فمثلاً صيغة ملف أكواد جافاسكريبت هي .js أي مثلاً: app.js بينما صيغة ملف به أكواد HTML هي .html كالتالي: index.html وصيغة ملف به أكواد css هي .css كالتالي: style.css وبالنسبة لملفات بايثون فالصيغة هي .py كالتالي: main.py عند إنشاء الملف نقوم بكتابة اسم الملف ثم نقطة . ثم صيغة الملف الصحيحة حسب الكود الذي نكتبه به. ستجدي أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس.
-
من الأفضل حفظ جميع التطبيقات العملية من البداية، وذلك بإنشاء مجلد للدورة ووضع تلك التطبيقات به، تجنبًا للتكرار ستجدي تفصيل هنا: وستجدي أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس.
- 1 جواب
-
- 1
-
هل قمتي بمحاولة ما تم ذكره هنا؟ وتم الإجابة بخصوص التلخيصات أيضًا
- 1 جواب
-
- 1
-
ليس المقصود إلتقاط صورة للشاشة وحفظ الكود بتلك الطريقة، بل المقصود هو التطبيق مع الشرح مرة مع المدرب ومرة بمفردك ثم الإحتفاظ بالملف الذي به الكود في مجلد خاص بالدورة. وذلك للتطبيقات العملية البسيطة التي تتكون من ملف واحد أو ملفين مثلاً، أي نقوم بإنشاء مجلد للدورة ثم بداخل المجلد نقوم بتقسيمه إلى مجلدات فرعية بحيث يصبح لكل مسار مجلد ثم نضع داخل مجلد التطبيقات العملية الخاصة بالمسار، ثم نرفع مجلد الدورة بالكامل بالمجلدات التي بداخله على مستودع GitHub. لكن المشاريع الكبيرة الكاملة نقوم بإنشاء مجلد منفصل لها ونرفعها على مستودع GitHub خاص بها بشكل مستقل.
- 2 اجابة
-
- 1