-
المساهمات
4118 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
40
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عمر قره محمد
-
ذلك يحدث لأن الكود يعض الـ end الخاص بالـ print للقيمة " "، بدلاً من القيمة الافتراضية "سطر جديد" والتي تعني سطر جديد. جرب الكود التالي : print("Hello", end = ' ') print("World") ستكون النتيجة : Hello World وعند تنفيذ الأمر print() عند نهاية كل حلقة صغيرة for j in، فإننا نقوم بطباعة القيمة الافتراضية "سطر جديد"، حتى يتم طباعة ارقام الحلقة التالية في السطر التالي. لتعميق الفهم، جرب المثال التالي : print("Hello", end = ' ') print("World") print() print("my name is", end = ' ') print("omar") وحاول التعديل عليه.
-
لا لن ننشئ صفحة لكل اعلان، بل نقوم بإنشاء صفحة ديناميكية dynamic للإعلان، والية انشاء هذه الصفحات ليست بتلك الصعوبة و تختلف باختلاف بيئة العمل التي تستخدمها ( ... , react , next)، بينما سيكون صعبة جداً باستخدام css و html و js العاديين. لإنشاء صفحات ديناميكية في React مثلاً، يمكنك استخدام المكتبة React Router2. حيث يمكنك تعريف مسارات ديناميكية باستخدام المعاملات في عنوان الـ URL. على سبيل المثال، يمكنك تعريف مسار مثل example.com/ads/:adId حيث adId هو معامل يمكن استخدامه لاسترداد البيانات لمستخدم محدد (عبر إرسال طلب إلى السيرفر يحتوي على هذا المعامل). وبعد الحصول على معلومات الاعلان نقوم بعرض هذه المعلومات في الصفحة. بعد قول هذا فقد ننشئ صفحة لكل اعلان إذا كان عدد الاعلانات قليل، وإذا كانت تختلف عن بعضها البعض، قد اتمكن من مساعدتك بشكل اكبر إذا قمت بمشاركة بيئة العمل التي تستخدمها.
- 6 اجابة
-
- 1
-
-
ليس تماماً، ولكن سيكون لديك فكرة جيدة عن كل من HTML و CSS و JavaScript، وقد تتمكن من بناء واجهة بسيطة جداً و بناء موقع شخصي بسيط
- 6 اجابة
-
- 1
-
-
حتى تقوم باستخدام font-awesome بشكل صحيح يجب عليك اتباع الخطوات التالية : قم باستيراد المكتبة الخاصة بـ font-awesome بإضافة الكود التالي إلى الـ header في ملف الـ html الخاص بك: <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> ثم قم بكتابة الكود الخاص بعرض الأيقونة كالتالي : <i class="fa-solid fa-heart"></i> تأكد من انك تقوم بكتابة الكلاس بالشكل الصحيح، وأنك تستخدم ايقونة مجانية، وأن اصدار الايقونة يطابق اصدار ال font-awesome الذي تستخدمه.
-
لا يوجد قائمة مشاريع محددة يجب تنفيذها للحصول على الشهادة، فيمكنك دراسة اي 4 مسارات من الدورة وهذا سيؤهلك للتقدم للامتحان وبعد اجتيازه الحصول على الشهادة، ولكن بشرط ان تقوم بالتطبيق خلف المدرب ورفع مشاريعك على GitHub. و أربعة مسارات هو الحد الادنى للمطلوب، ولا انصحك بالاكتفاء بأربع مسارات فقط، بل قم بالاطلاع على كل المسارات حتى تستفيد بالشكل الامثل من الدورة. وقد يفيدك الاطلاع على النقاشات السابقة حول هذا الموضوع : وهذا نقاش حول الاستفادة من الدورة بالشكل الأمثل : وهذا نقاش حول كيفية رفع المشاريع على GitHub: وهذا نقاش حول الامتحان الخاص بالدورة وكيفية التقدم له واليته :
-
يمكنك فعل ذلك باستخدام كل من react و nodejs و مكتبة multer و الطرف الثالث لحفظ الصور Cloudinary، وهذه هي الاكواد اللازمة لذلك : كود الخاص بـ react وهو يقوم بإرسال بيانات الصورة إلى السيرفر باستخدام axios ثم يتلقى رابط الصورة ويقوم بعرضها بعد ان يتم التحميل : import axios from 'axios'; import React, { useState } from 'react'; const ImageUpload = () => { // الحالة الخاصة بالصورة const [imageUrl, setImageUrl] = useState(''); // الوظيفة الخاصة بإرسال الطلب وتلقي رابط الصورة بعد الرفع const handleFileUpload = async (event: React.ChangeEvent<HTMLInputElement>) => { // event نحضر الصورة من الـ const file = event.target.files[0]; // نرسلها إلى الوظيفة التي انشأناها (في الاسفل) const imageUrl = await uploadImage(file); // نقوم بحفظ الرابط في الحالة بعد تلقي رابط الصورة بعد الرفع setImageUrl(imageUrl); }; return ( <div> <input type="file" onChange={handleFileUpload} /> {imageUrl && <img src={imageUrl} alt="Uploaded image" />} </div> ); }; const uploadImage = async (file: File) => { const formData = new FormData(); formData.append('image', file); try { const res = await axios.post('/api/upload-image', formData, { headers: { 'Content-Type': 'multipart/form-data', }, }); return res.data.url; } catch (err) { console.error(err); } }; ويجب تحميل الحزمة axios كالتالي : npm install axios كود الـ multer مع Cloudinary يصبح بالشكل : import cloudinary from 'cloudinary'; import multer from 'multer'; import { CloudinaryStorage } from 'multer-storage-cloudinary'; // Cloudinary اعدادات cloudinary.v2.config({ cloud_name: process.env.CLOUDINARY_CLOUD_NAME, api_key: process.env.CLOUDINARY_API_KEY, api_secret: process.env.CLOUDINARY_API_SECRET, }); // Cloudinary وربطها مع multer اعدادات const storage = new CloudinaryStorage({ cloudinary: cloudinary.v2, params: { folder: 'images', allowed_formats: ['jpg', 'png'], }, }); const upload = multer({ storage }); حيث انك يجب ان تضع المعلومات الخاصة بحساب Cloudinary في ملف الـ env بالأسماء التالي : CLOUDINARY_CLOUD_NAME CLOUDINARY_API_KEY CLOUDINARY_API_SECRET وكذلك يجب تحميل كل من الحزم multer و multer-storage-cloudinary و cloudinary كالتالي : npm install multer multer-storage-cloudinary cloudinary ونقوم بإعداد الـ route الخاص بتلقي الصورة كالتالي : app.post('/api/upload-image', upload.single('image'), (req, res) => { res.json({ url: req.file.path }); }); حيث نستخدم المتغير upload الذي اعددناه في الكود السابق، ثم نعيد المسار الذي سيقوم Cloudinary بتقديمه ليتم إرساله إلى العميل. بعد تنفيذ الخطوات السابقة سيكون لديك رابط src خاص بالصورة يمكنك حفظه في قاعدة البيانات مع باقي بيانات الـ post.
- 3 اجابة
-
- 1
-
-
نعم يلزم اجتياز الامتحان النهائي، الدروس مشروحة بشكل مبسط جداً ويتم تحديثها باستمرار، وإذا قمت بالدراسة بالشكل الصحيح فستجتاز الامتحان بكل سهولة، وكذلك يمكنك الانسحاب من الدورة في أي وقت ولكن بشروط. وقد يفيدك الاطلاع على النقاش التالي :
-
نعم ما يزال العرض قائماً، ولكن العرض يشترط أن: تنهي الدورة تقوم باتباع ارشادات المدربين تجتاز الامتحان النهائي لا اعرف بهذا الخصوص، فلم يتم الاشارة لهذا سابقاً في عروض الاكادمية. وإذا اردت المعرفة اكثر عن عرض الـ 6 اشهر أو تقديم شكوى بهذا الخصوص فيمكنك التحدث للدعم من هنا ،
-
one to many هي عندما يكون لعنصر من الجدور الاول ارتباط مع عنصر واحد او اكثر من الجدول الثاني، بينما many to many عندما يكون لعنصر واحد او اكثر من الجدول الاول ارتباط مع عنصر واحد او اكثر من الجدول الثاني. وبحسب المخطط الذي قمت بمشاركته فإني أرى ان العلاقة يجب ان تكون من النوع one to many لأن العنصر من الجدول الخاص بالمفضلة يرتبط بعنصر واحد من العقارات، بينما العنصر الخاص بالعقارات ليس له اي اعتماد على المفضلة. ولكن هذه العلاقة قد تختلف بحسب طبيعة المشروع الذي تعمل عليه.
- 7 اجابة
-
- 1
-
-
هنالك العديد من المقالات والفيديوهات تجيب عن هذا السؤال، ولكن الاجابة الابسط هي ابدأ من الاساسيات والتي هي بداية اي مجال من مجالات البرمجة، مثل الخوارزميات و التفكير المنطقي ولغة برمجة مثل بايثون أو جافاسكريبت. قد يفيدك الاطلاع على النقاش التالي : وهذا فيديو مقدم من الاكادمية عن الموضوع :
-
الـ Cross-platform لا يعني نهاية الـ Native، بل يعتبر بديلًا له، حيث يمكن استخدام الـ Cross-platform لتطوير تطبيق واحد يعمل على أكثر من نظام تشغيل، بينما يتم تطوير التطبيقات الـ Native لكل نظام تشغيل على حدة. ومن الممكن أن يكون الـ Cross-platform أسرع في التطوير وأرخص في التكاليف، ولكن قد يفتقر إلى بعض المزايا التي تأتي مع التطبيقات الـ Native. لا يوجد خيار أفضل للتعلم في الوقت الحالي، فكل منهما له اهميته وإذا كنت تحب ان تتعلم الNative فأنصحك بان تبدأ بتعلمه، ومن ثم يمكنك تعلم الـ Cross-platform في وقت لاحق.
- 8 اجابة
-
- 1
-
-
لديك خطأ في اسم الخاصية height حيث يبدو انك كتبتها بالشكل haight جرب اصلاح الخطأ والمحاولة مرة ثانية.
-
نعم ستستفيد من ناحية معرفة اساسات البرمجة والية عمل مواقع الويب والتطبيقات والية عمل الخوادم وتقنيات الاستيثاق والمصادقة، كما ستستفيد من ناحية تعلم لينوكس والية التعامل مع سطر الاوامر وكذلك الامر تعلم الخوارزميات واساسيات البرمجة. وكذلك فإن دورة علوم الحاسوب اساسية لكافة الاختصاصات البرمجية. بعد قول ذلك فإنه لا يمكن القول بأن الدورات تشرح الـ Cyber security and ethical hacking بل هي تتطرق لأليات الحماية من الاختراق في سياق بناء التطبيقات نفسها وتشرح الاساسيات التي تؤهلك للبدء في الـ Cyber security.
-
هنالك الكثير من المسارات في طريق البرمجة ولكن كلها يمر من بعض الاساسيات التي يمكنك البدئ منها مثل أساسيات الحاسوب وعلومه والتفكير المنطقي و الخوارزميات، ولكن رغم ذلك فقد يفيدك الاطلاع على المراجع التالية : يمكنك الاطلاع على الفيديو التالي كبداية : ثم يمكنك مشاهدة الفيديو التالي : وإن كنت ممن يحبون القراءة ففي هذه المقالة شرح مفصل لمجالات البرمجة المختلفة وكيفية الاختيار بينها (اختياري) : وإذا كنت من المهتمين بتطوير تطبيقات الويب سواءً كان frontend أو backend فهذا المقال سيكون مفيداً جداً فهو يحتوي على خريطة تعلم شاملة لمجال تطوير الويب : وهنالك العديد من هذه الاسئلة المشابهة قد طرحت سابقاً ، وقد يفيدك الاطلاع عليها مثل :
-
لا يوجد اولوية في ترتيب الدورات التي تستطيع التسجيل فيها بعد الانتهاء من دروة علوم الحاسوب، فأنت مؤهل للتسجيل في اي واحد منها وتملك الخبرات الكافية للبدء في تعلم اي منها. أما الاختيار بين هذه الدورات فيعتمد على التخصص التي تريده، والشركات التي تود العمل معها في المستقبل، وكذلك يعتمد على اللغة التي تحب ان تتعلمها. فإذا كنت تريد تعلم الـ frontend فسيكون من المناسب تعلم دورة تطوير واجهات المستخدم. وإذا كنت تريد تعلم JavaScript بشكل افضل وان تصبح full stack فيمكنك الاطلاع على دورة تطوير التطبيقات باستخدام JavaScript. ويمكنك الاطلاع على تفاصيل الدورات حتى تعرف ماهي المعلومات التي تقدمها كل دورة قبل اتخاذ قرارك.
-
المشكلة من ترتيب الملفات الخاصة بك، حيث ان الصور لديك توجد داخل مجلد يسمى IMG موجود داخل الملف المسمى image والموجود داخل المجلد src. ولكن الروابط الخاصة بالصور في كامل المشروع تشير إلى الصور الموجود داخل المجلد IMG الموجود داخل المجلد src. أي انه تم تجاهل المجلد image في الروابط وهذا ما يسبب المشكلة. والحل هو ان تقوم بإخراج المجلد IMG ليصبح ابن مباشر للمجلد src. أو ان تعدل روابط كل الصور في المشروع إلى الشكل الصحيح. @Omar Abdelfattah
-
نعم، يمكن بيع تطبيق تحت رخصة GPL إذا لم تستخدم مكتبات GPL فيه. وإذا كانت المكتبات المستخدمة في التطبيق تحت رخصة GPL، فإنه يجب أن يتم توزيع البرنامج الناتج تحت نفس رخصة GPL نعم يجب ان تبيعه تحت رخصة GPL. إذا قمت بإنشاء تطبيق في نظام ذو رخصة GPL ولم تستخدم أية مكتبات GPL في تطبيقك، يمكنك بيع التطبيق الخاص بك بأي ترخيص تريده.
- 6 اجابة
-
- 1
-
-
قد تكون المشكلة انك لم تقم بربط js مع صفحة الـ htm. هل يمكنك مشاركة ملفات المشروع حتى استطيع الاطلاع عل المشكلة؟
-
رسالة الخطأ تخبرك بوجود مشكلة في الـ loader الخاص بمعالجة css في wepbakc. وتخبرك بأنه يجب ان تقوم بإعداد الـ loader بشكل صحيح
-
لا يوجد طريقة لاستخدام قاعدة البيانات locally وستحتاج إلى خادم backend حتى تستطيع التحدث مع قاعدة البيانات. ولكن بعد قول هذا فيمكنك استخدام بعض شركات الطرف الثالث مثل firebase والتي توفر لك كل من الـ backend و الـ database ويمكنك الوصول إليها من الـ client مباشرةً.
- 4 اجابة
-
- 1
-