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

Hikmat Jaafer

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

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

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

كل منشورات العضو Hikmat Jaafer

  1. يوجد الكثير من المواقع التي يمكنك رفع الفيديوهات عليها و منها: YouTube. Vimeo. DailyMotion. PeerTube. و لكن يبقى اليوتيوب هو الأشهر بينها , يمكنك أن ترفع الفيديوهات على حسابك الشخصي و تجعلها خاصة. ثم بعد أن تقوم برفع الفيديوهات عليك أن تقوم بحفظ روابط الفيديوهات في التطبيق الخاص بك ضمن مصفوفة كالتالي: public class Lesson { private String name; private String videoUrl; public Lesson(String name, String videoUrl) { this.name = name; this.videoUrl = videoUrl; } public String getName() { return name; } public String getVideoUrl() { return videoUrl; } } List<Lesson> lessons = new ArrayList<>(); lessons.add(new Lesson("اسم_الدرس_1", "رابط_مقطع_الفيديو_1")); lessons.add(new Lesson("اسم_الدرس_2", "رابط_مقطع_الفيديو_2")); // أضف المزيد من الدروس حسب الحاجة هنا قمنا بإنشاء صف جديد اسمه Lesson و لهذا الصف خاصيتين هما اسم الدرس و رابط الدرس و تابعين يعيدان الاسم و الرابط, ثم أنشأنا قائمة لنخزن فيها الدروس. و الأن عليك أن تعرض الفيديوهات للمستخدم , هناك عدة طرق لعرض الفيديوهات و هذا الأمر يعتمد على ماذا تريد أنت, ومن هذه الطرق مثلا أن تقوم بعرض لائحة بأسماء الدروس للمستخدم و عندما يقوم المستخدم بالضغط على الدرس تقوم بعرض الفيديو.
  2. مرحباً عبد السلام , اختيار أفضل نسخة لينكس يعتمد على احتياجاتك وتفضيلاتك الشخصية، ولكن هناك بعض التوزيعات الشهيرة والمحبوبة التي تتميز بتوفر عدد كبير من المستودعات ودعم واسع من المجتمع: Ubuntu واحدة من أكثر التوزيعات شهرة وسهولة في الاستخدام. مستودعات كبيرة مع دعم واسع للتطبيقات. تحديثات منتظمة ودعم طويل الأجل للإصدارات LTS. Debian: الأساس للعديد من التوزيعات الأخرى، بما في ذلك Ubuntu. مستودعات ضخمة تحتوي على آلاف الحزم. معروفة باستقرارها وموثوقيتها. Fedora: تقدم أحدث التقنيات والابتكارات في عالم لينكس. مستودعات جيدة ودعم متقدم للتطبيقات الحديثة. مدعومة من Red Hat، مما يجعلها خيارا قويًا لمطوري البرمجيات. Arch Linux: مثالية للمستخدمين المتقدمين الذين يريدون تخصيص نظامهم من الألف إلى الياء. مستودعات AUR (Arch User Repository) تحتوي على آلاف الحزم التي يتم صيانتها بواسطة المجتمع. توفر تحديثات مستمرة (rolling release). أيضاً كل من هذه التوزيعات تتمتع بدعم مجتمعي قوي، وتوفر مستودعاتها كمية كبيرة من البرمجيات والتطبيقات المختلفة.
  3. يمكنك القيام بذلك من خلال استخدام Unity as a Library في تطبيق Flutter. ستحتاجين لهذه الأدوات للقيام بذلك Unity 2019 Flutter SDK Android Studio (مع إعداد Android SDK) Xcode (لنظام iOS) و اليك هذه الخطوات لربط مشروع اليونتي مع الفلاتر: إنشاء مشروع Unity: يمكنك انشاء المشروع و تطوير اللعبة , ثم انتقلي إلى File > Build Settings، وحددي Android كمنصة إذا كنتي تستهدفين Android (أو iOS إذا كنتي تستهدفين iOS). اضغطي على Player Settings وأعيدي ضبط الإعدادات اللازمة مثل اسم الحزمة. تصدير Unity كـ Unity as a Library: انتقلي إلى File > Build Settings. اختاري Android أو iOS، ثم اضغطي على Export. اختاري Export as a Library بدلاً من APK. اختاري مكان حفظ المجلد واضغطي على Export. دمج Unity مع Flutter: افتحي Android Studio وأنشأي مشروع Flutter جديد. انتقلي إلى مجلد المشروع في Flutter وافتحي ملف pubspec.yaml. أضيفي الحزمة التالية في القسم dependencies: flutter_unity_widget: ^4.2.0+1 ثم نفذي هذه التعليمة flutter pub get لتنزيل الحزمة. إعدادات Android: انسخي محتويات مجلد Unity الذي قمتي بتصديره كـ Library إلى مجلد android في مشروع Flutter. افتحي ملف android/settings.gradle وأضيفي ما يلي: include ':unityLibrary' project(':unityLibrary').projectDir = new File('../path_to_your_unity_library') افتحي ملف android/app/build.gradle وأضيفي ما يلي في قسم dependencies: implementation project(':unityLibrary') و الأن يمكنك انشاء الواجهات ووضع عناصر يونتي بداخلها
  4. كما أوضح لك الزملاء في التعليقات السابقة فإن الذكاء الاصطناعي هو مساعد للمبرمج و لا يمكن أن يحل مكانه و ذلك لعدة أسباب منها : لا يستطيع الذكاء الاصطناعي فهم المتطلبات العميقة للمشاريع أو التفاعل مع العملاء كما يفعل المبرمجون البشر. البرمجة تتطلب إبداعاً وفهماً عميقاً لحل المشكلات وتطوير الحلول الجديدة. هذه القدرات لا تزال تفوق قدرات الذكاء الاصطناعي الحالي. كثيرا من الأحيان نحتاج للتفاعل مع الزملاء في العمل سواء المصممين أو مطوري الواجهات الخلفات أو مطوري الواجهات الأمامية ليتم تنجاز العمل على الوجه الصحيح و كما هو مطلوب, و الذكاء الاصطناعي لايمكنه القيام بذلك. الذكاء الاصطناعي قد يصبح أكثر قدرة بمرور الوقت. ومع ذلك، سيتطلب الأمر وقتًا طويلاً حتى يصل إلى مستوى يمكنه فيه استبدال المبرمجين البشر بالكامل.
  5. مرحباً , هناك العديد من المواقع التي يمكنك من خلالها ممارسة لغة بايثون، خاصة فيما يتعلق بالدوال: PyBites يقدم PyBites تمارين برمجية متنوعة تركز على تحسين مهاراتك في بايثون من خلال مجموعة من التحديات اليومية. Codewars يقدم تحديات برمجية (kata) في بايثون والعديد من اللغات الأخرى. يمكنك البحث عن تحديات تتعلق بالدوال. Real Python CheckiO موقع تعليمي يعتمد على الألعاب، يقدم تحديات برمجية في بايثون. يتضمن العديد من التحديات التي تتعلق بالدوال. Project Euler يوفر Project Euler تحديات برمجية رياضية يمكن حلها باستخدام بايثون، مما يتيح لك ممارسة الدوال في سياقات مختلفة. PracticePython
  6. مرحباً محمد , يمكنك نتفيذ هذا الكود سيعمل كما في الصورة المرفقة , أيضاً قمت بتوضيح خطوة خطوة من خلال التعليقات : const url = 'https://alsouq.anevex.com/app/shop-api/advertisements'; const params = { home_page_position: 'Header', show_in: 'home' }; // Send the GET request axios.get(url, { params }) .then(response => { // Handle the response console.log('Data:', response.data); }) .catch(error => { // Handle any errors console.error('Error fetching data:', error); }); ايضاً لاحظ عند ارسال سيكون عنوان url بالشكل التالي لان نوع method الخاصة ب api هي GET : https://alsouq.anevex.com/app/shop-api/advertisements?home_page_position=Header&show_in=home
  7. مجالات العمل كثيرة, و أغلبها مطلوبة في سوق العمل لكن مع وجود بعض التفاوت, ففرص مطوري ال flutter و مطوري الواجهات الأمامية تكون أكبر من فرص مطوري الواجهات الخلفية. و لكن سواء أردت العمل ضمن شركة أو بشكل مستقل فأنت تحتاج إلى الخبرة, فلا يوجد أحد ممكن أن يسلمك عمل من دون أن يتأكد من أنك قادر على إنجازه, لذا عليك أن تقوم بالتدريب اليومي المنظم و المستمر لكي تكسب الخبرة والمهارات التي تؤهلك للدخول في سوق العمل. عليك أن تقوم ببناء مشاريع جذابة وهادفة و تضعها في معرض الأعمال الخاص بك , و عليك أن تقوم ببنائها بطريقة منظمة كما تفعل الشركات لكي تمتلك المهارات التي تؤهلك للعمل مستقبلا, يمكنك الدخول لموقع مستقل و رؤية الأعمال التي يتم طلبها و اختر منها أحد المشاريع و أنجزه , وأنصحك بأن تقوم بتطويير مشاريع مثل ال e-commerce و لوحات التحكم dashboards. الدخول في سوق العمل أمر صعب في البداية لعدم امتلاك خبرة سابقة, لكن إن قمت بالتعلم جيدا و طورت عدة مشاريع في المجال الذي تعلمته فسيصبح الأمر سهلا ان شاء الله.
  8. إذا كنت لاترغب بال cdn يمكنك تنزيل المكتبة باستخدام npm , انتقل الى مجلد المشروع الخا بك و قم بتنفييذ التعليمة التالية في ال terminal npm install filepond filepond-plugin-file-validate-size filepond-plugin-file-validate-type هذه التعليمة ستقوم بتحميل المكتبة لديك بالاضافة الى 2 plugin اضافية هي file size and file type validation و الأن لديك طريقتتين لتضمين المكتبة في مشروعك : Include in a Blade View :: قم بفتح ملف ال blade view و قم باضافة السطرين التاليين في أعلى الملف <link href="{{ asset('css/filepond.min.css') }}" rel="stylesheet"> <script src="{{ asset('js/filepond.min.js') }}"></script> Include in Laravel Mix : اذا كنت تستخدم Laravel Mix قم باضافة الأسطر التالية لملف webpack.mix.js mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') .copy('node_modules/filepond/dist/filepond.min.js', 'public/js') .copy('node_modules/filepond/dist/filepond.min.css', 'public/css'); ثم قم بتنفيذ التعليمة التالية في ال terminal npm run dev واذا كنت ترغب بال cdn فقط قم باضافة السطرين التاليين لملف ال blade <link href="https://unpkg.com/filepond@7.1.1/dist/filepond.min.css" rel="stylesheet"> <script src="https://unpkg.com/filepond@7.1.1/dist/filepond.min.js"></script> و يمكنك الرجوع للتوثيق الخاص بالمكتبة لرؤية طريقة استخدام المكتبة و امثلة عنها و هذا رابط التوثيق
  9. يوجد العديد من الاستضافات المجانية و لكن عليك تحديد اللغة و اطار العمل الذي ستستخدمه في مشروعك لتعرف ماهي الاستضافة التي تناسب مشروعك . هذه بعض المواقع التي تقدم استضافات مجانية : Netlify: و هذا الموقع يدعم اطر العمل التالية React, Angular, Vue.js, Next.js, و غيرها من اطر العمل لكن هذه اشهرها Vercel: يدعم نفس أطر العمل التي يدعمها Netlify تقريبا و يوجد استضافات اخرى لكن نرجو منك تزويدنا بمعلومات عن مشروعك لنقول لك ماهي الاستضافة المناسبة.
  10. مرحباً احمد, هناك عدة خطوات للتنبؤ بالمبيعات باستخدام تحليل السلاسل الزمنية , بدايةً من جمع البيانات وتفكيك السلاسل الزمنية وتحليلها ومن ثم تنبؤ بالمبيعات وأخيراً تحليل المبيعات . سوف أقوم بشرح كل خطوة على حدا : جمع البيانات : نحتاج في هذه الخطوة إلى جمع البيانات بطريقة ما ( مثلاً من خلال المبيعات التاريخية , او اليومية , او الشهرية ... الخ ) . تفكيك السلاسل الزمنية : السلاسل الزمنية تتكون عادة من ثلاثة مكونات رئيسية: الاتجاه (Trend) : التغيرات طويلة الأجل في السلسلة الزمنية. الموسمية (Seasonality): الأنماط المتكررة التي تحدث بانتظام خلال فترة زمنية معينة (مثل الفصول). الانتظام الدوري (Cyclic/Regularity): التقلبات التي تحدث على مدى فترة زمنية أطول من الموسم ولكنها ليست ثابتة. يمكنك تفكيك السلسلة الزمنية باستخدام طرق مختلفة، مثل: نموذج الإضافي أو المضاعف (Additive or Multiplicative Model) : يعتمد الاختيار بينهما على طبيعة السلسلة الزمنية. تحليل المكونات الأساسية (Decomposition): يمكن استخدام مكتبات في بايثون مثل statsmodels و seasonal_decompose. تحليل السلاسل الزمنية : يمكن استخدام مكتبة statsmodels لتفكيك السلاسل الزمنية. مثال: import pandas as pd import statsmodels.api as sm import matplotlib.pyplot as plt # قراءة بيانات السلسلة الزمنية data = pd.read_csv('sales_data.csv', index_col='date', parse_dates=True) data = data.asfreq('M') # تحويل البيانات إلى سلسلة شهرية # تفكيك السلسلة الزمنية decomposition = sm.tsa.seasonal_decompose(data, model='multiplicative') # رسم المكونات decomposition.plot() plt.show() التنبؤ بالمبيعات يمكنك استخدام نماذج مثل: نموذج الانحدار الذاتي والمتوسط المتحرك (ARIMA): نموذج شهير للتنبؤ بالسلاسل الزمنية. نماذج التعلم الآلي: مثل الشبكات العصبية والـ XGBoost. باستخدام ARIMA: from statsmodels.tsa.arima.model import ARIMA # إعداد النموذج model = ARIMA(data, order=(5,1,0)) model_fit = model.fit() # التنبؤ forecast = model_fit.forecast(steps=12) # التنبؤ للأشهر الـ 12 القادمة print(forecast) تحليل المبيعات تحليل المبيعات يمكن أن يكون على مستوى المنتجات الفردية أو على مستوى التحصيلات الكلية. الخيار يعتمد على الهدف من التحليل: منتجات فردية: إذا كنت مهتماً بفهم أداء منتج معين أو مجموعة منتجات. تحصيلات كلية: إذا كنت مهتماً بالأداء الكلي للشركة.
  11. مرحباً عبد المهيمن , نعم , في دورة تطوير التطبيقات باستخدام بايثون يوجد أقسام مختلفة , أخر ما سوف تتعلمه في هذه الدورة هو تحليل البيانات , وتعلم الآلة . بالنسبة لتحليل البيانات سوف تتعلم الأقسام التالية من الدورة : التعامل مع البيانات. التحليل الإحصائي. التصوير البياني. مشاريع عملية تنمي مهاراتك. أما بالنسبة لقسم تعلم الآلة : مدخل إلى تعلم الآلة. الانحدار Regression. التصنيف Classification. التجميع Clustering. التعلم المعزز Reinforcement Learning. وسوف يكون عدة أقسام غيرها مفيدة جداً , منها في تعلم تطوير مواقع الويب باستخدام Flask او Django و تطبيقات Odoo ودمج تقنيات الذكاء الاصطناعي مع تطبيقات أخرى ومشاريع عملية , ودعم دائم من قبل فريق مدربين . عندما تنتهي من الدورة سوف تكون Python Developer , يمكنك العمل كمحلل بيانات أو مطور ويب أو Odoo أو مطور تطبيقات ذكاء اصطناعي وغيرها من المهارات . يمكنك الإطلاع على كافة الأقسام من خلال الرابط التالي : تفاصيل دورة " تطوير تطبيقات باستخدام Python "
  12. مرحباً , هذه الدالة تقوم بعمل تخفيض وفق نسبة معينة , فلاحظ أنه يقوم بطرح من price الكلي القيمة التالية : self.price * ratio والتي تعني " حاصل جداء السعر بنسبة التخفيض " , أي كمثال اذا قمنا بتمرير السعر 100 , ونسبة التخفيض 0.20 , فسوف يكون التعبير كالتالي : 100 - 100 * 0.20 وسوف تقوم الدالة بإرجاع النتيجة = 80
  13. مرحباً احمد , كمطور JavaScript يمكنك استخدام منصة Render , هي منصة توفر إمكانية رفع server باستخدام node js , وfrontend , ويمكنك أيضاً رفع قاعدة بيانات Postgres مباشرةً عليها , وهي مجانية . اذا كنت تريد رفع قاعدة بيانات MongoDb , فيمكنك رفعها من خلال MongoDB Atlas , يوفر إدارة كاملة لقاعدة بيانات mongodb مع امكانية ترقيتها لعضوية مدفوعة , ويمكنك الاتصال معها من خلال السيرفر الذي قمت برفعه على منصة Render او Netlify او Vercal.
  14. مرحباً عمرو , يوجد كتاب اسمه Software Testing: An ISTQB-BCS Certified Tester Foundation Guide بقلم : Brian Hambling، Peter Morgan، Angelina Samaroo، Geoff Thompson يغطي هذه الكتب الأساسيات والمفاهيم الأساسية لاختبارات البرمجيات ويمكن أن توفر لك فهماً جيدا للعمليات اليدوية. أيضاً يوجد مواقع مثل : Ministry of Testing و الذي يوفر مجتمعا كبيرا من محترفي اختبار البرمجيات ويقدم مقالات وموارد مفيدة للمبتدئين والمتقدمين. Software Testing Help : يقدم مقالات ودروسا حول مختلف جوانب اختبار البرمجيات، بما في ذلك الاختبار اليدوي. موقع أكاديمية حسوب , وحسوب IO , والذي يقدمان مقالات متنوعة في البرمجة, ويوجد فريق من المدربين سوف يقوم بالاجابة عليك على أي سؤال كان .
  15. هذا يتطلب استخدام تقنيات متقدمة مثل تخزين البيانات المؤقتة على الخادم أو استخدام قاعدة بيانات للحفاظ على البيانات وتحديثها. يمكن تحقيق هذا باستخدام تقنيات مثل AJAX لتحميل الملف وتواصل البيانات مع الخادم، واستخدام تقنيات الواجهة الأمامية مثل React أو Angular لتمثيل البيانات وتفاعل المستخدم معها. سأقوم بتوضيح الأمر في المثال التالي , والذي سوف يقوم بتحميل ملف Excel مرة واحدة عند تحميل الصفحة، ثم عرض المحتوى والسماح بالتعديل عليه عبر الواجهة وحفظ التغييرات مباشرة في ملف Excel دون الحاجة لإعادة تحميل الملف و سأستخدم React لبناء واجهة المستخدم و Node.js كخادم. سأستخدم مكتبة xlsx لقراءة وكتابة ملفات Excel. وبفرض أنك قد قمت بتثبيت Node.js ومكتبة xlsx بالفعل : بعد إنشاء مشروع react , سوف أقوم بتعديل محتوى ملف App.js كالتالي : import React, { useState, useEffect } from 'react'; function ExcelEditor() { const [data, setData] = useState([]); useEffect(() => { fetch('/api/loadExcel') .then(response => response.json()) .then(data => { setData(data); }); }, []); const handleChange = (rowIndex, colIndex, value) => { const newData = [...data]; newData[rowIndex][colIndex] = value; setData(newData); fetch('/api/updateExcel', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ data: newData }) }); }; return ( <table> <tbody> {data.map((row, rowIndex) => ( <tr key={rowIndex}> {row.map((cell, colIndex) => ( <td key={colIndex}> <input type="text" value={cell} onChange={e => handleChange(rowIndex, colIndex, e.target.value)} /> </td> ))} </tr> ))} </tbody> </table> ); } export default ExcelEditor; ثانياً , نقوم بإنشاء الخادم باستخدام Node.js وتوفير api التعديل على ملف Excel الذي قمت باستخدامه في تطبيق React , سوف بعد إنشاء مشروع Nodejs سوف أقوم بتعديل محتوى ملف server.js كالتالي : const express = require('express'); const app = express(); const xlsx = require('xlsx'); const bodyParser = require('body-parser'); const workbook = xlsx.readFile('data.xlsx'); const worksheet = workbook.Sheets[workbook.SheetNames[0]]; const jsonData = xlsx.utils.sheet_to_json(worksheet); app.use(express.static('public')); app.use(bodyParser.json()); app.get('/api/loadExcel', (req, res) => { res.json(jsonData); }); app.post('/api/updateExcel', (req, res) => { const newData = req.body.data; const newWorkbook = xlsx.utils.book_new(); const newWorksheet = xlsx.utils.aoa_to_sheet(newData); xlsx.utils.book_append_sheet(newWorkbook, newWorksheet, 'Sheet1'); xlsx.writeFile(newWorkbook, 'data.xlsx'); res.send('Updated successfully'); }); app.listen(3000, () => { console.log('Server is running on port 3000'); }); بعدها نقوم بتشغيل الخادم من خلال تنفيذ التعليمة التالية في terminal : node server.js بعدها نقوم بتشغيل مشروع react وسنشاهد إمكانية تعديل ملف excel من خلال التطبيق : npm start
  16. وعليكم السلام , أهلاً أُبي, لكل لغة من اللغات لها مميزاتها عن الأخرى , بشكل عام يمكن تقسيم المشاريع إلى ثلاثة مستويات ( صغيرة , متوسطة , وكبيرة ) , وعندها يمكنك اختيار اللغة الأنسب لمشروعك ( إضافة لاحتياجاتك مثل قابلية التوسع , المرونة وغيرها ) . بالنسبة للمشاريع الكبيرة , فأفضل اللغات لها تعتبر C# و Java , فهما الأنسب لهذه المشاريع , سوف أقوم بتوضيح ميزات كل لغة من لغات الشهرة المستخدمة في Backend. JavaScript (و Express.js/Node.js): ميزة JavaScript هي أنها لغة البرمجة الأساسية للويب، وبالتالي فهي تستخدم في كل من الباك إند والفرونت إند. يمكنك استخدام Node.js لبناء تطبيقات الويب الحديثة والمتفاعلة بسهولة باستخدام نفس اللغة في الجزء الأمامي والخلفي. Python (و Django/Flask): Python تتميز بسهولة القراءة والكتابة والتعلم، مما يجعلها خيارا جيدا للمبتدئين. Django و Flask هما إطاري عمل قويين يستخدمان Python لبناء تطبيقات الويب بسرعة وبشكل موثوق. Java :بالنسبة ل Java تتميز بالقوة والموثوقية، وهي مثالية لبناء تطبيقات الويب الكبيرة والمعقدة. يتم استخدام إطارات مثل Spring و Hibernate لتسهيل عملية تطوير التطبيقات باستخدام Java. C#: و C# تُستخدم على نطاق واسع في تطوير تطبيقات الويب باستخدام إطارات مثل ASP.NET و .NET Core. تتميز C# بالأداء الجيد وسهولة الاستخدام، وتعتبر خيارا شائعًا لتطوير التطبيقات المؤسسية. Ruby: تتميز Ruby بسهولة الاستخدام والتطوير السريع، وهي مثالية لبناء تطبيقات الويب الصغيرة والمتوسطة الحجم. يُستخدم إطار Ruby on Rails لتسهيل عملية تطوير التطبيقات باستخدام Ruby.
  17. وعليكم السلام ورحمة الله وبركاته , أهلاً صالح , بالنسبة لطريقة بيع مواقع أنت برمجتها وهي جاهزة , يمكنك البيع من خلال مواقع بيع مثل بيكاليكا , يمكنك نشر منتج هناك وفي حال أحد أصحاب العمل أراد شراءه فسوف يقوم بالتواصل معك , او يمكنك انشاء متجر إلكتروني خاص بك , ونشر مواقعك فيه . بالنسبة لانشاء استضافة خاصة بالعميل , يمكنك التواصل مع العميل وتقديم له خطوات انشاء حساب والدفع والمبلغ اللازم لنشر الموقع . وهذا ما أفعله أنا بالفعل عند تواصلي مع عملائي. وأيضاً هذا ما هو متعارف عليه في سوق العمل . بالنسبة لوجود دورة خاصة بإدارة الخوادم , حالياً لا يوجد , لكن سوف أقوم بإيصال اقتراحك للإدارة لدراسته وإمكانية تنفيذه في المستقبل القريب. كخطة عمل , سوف أقوم بإعطائك ما أفعله انا بالضبط : أولاُ قم ببناء معرض أعمال يوضح جميع إمكانياتك , يمكنك ذلك من خلال موقع مستقل او بناء موقع معرض أعمال خاص بك يوضح إمكانياتك . ثانياً , قم برفع هذه المواقع على استضافات بسعر قليل أو مجانية , ويوجد عدة مواقع تقدم استضافات مجانية مثل Render و Netlify. ثالثاً , عند التعامل مع العميل , ما أقوم به في البداية وقبل البدء بتنفيذ المشروع , أقوم بتوضيح للعميل عن الاستضافة والرفع , وغالباً أقوم بإخباره أنه سوف يحتاج إلى خبير hosting ليقوم بإدارة الموقع ( حسب حجم الموقع أو التطبيق ). رابعاً , أقوم بتنفيذ البرنامج والمتابعة مع صاحب العمل بشكل اسبوعي ليتم كل شيء كما يريد . بالنسبة لحلول DevOps , يمكنك الاستفادة من أدوات DevOps مثل Docker وKubernetes لتسريع عملية تطوير البرمجيات ونشرها. كمبرمج، يمكنك أيضا النظر في استخدام خدمات الـ Continuous Integration/Continuous Deployment (CI/CD) مثل Jenkins أو GitLab CI لتسهيل عملية تطوير ونشر التطبيقات.
  18. مرحباً ماجد, يمكنك فعل ذلك باستخدام JQuery ومكتبة ExcelJs للتعامل مع ملفات Excel , سوف أقوم بتوضيح الأمر من خلال المثال التالي : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Excel Web Integration</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/exceljs/4.3.0/exceljs.min.js"></script> </head> <body> <h1>Excel Web Integration</h1> <input type="file" id="fileInput"> <button id="loadExcel">Load Excel</button> <table id="excelTable" border="1"> <!-- Excel data will be populated here --> </table> <script> $(document).ready(function() { $("#loadExcel").click(function() { var file = document.getElementById('fileInput').files[0]; var reader = new FileReader(); reader.onload = function(e) { var data = new Uint8Array(e.target.result); var workbook = new ExcelJS.Workbook(); workbook.xlsx.load(data).then(function() { var sheet = workbook.getWorksheet(1); var table = $('#excelTable'); sheet.eachRow(function(row, rowNumber) { var rowData = '<tr>'; row.eachCell(function(cell, colNumber) { rowData += '<td>' + (cell.value ? cell.value : '') + '</td>'; }); rowData += '</tr>'; table.append(rowData); }); }); }; reader.readAsArrayBuffer(file); }); }); </script> </body> </html> لاحظ أنني قمت بتنفيذ الخطوات التالية : أولاً قمت باستخراج الملف ثم قمت بقراءته بعدها قمت بتحميله ثم قمت بتحليل محتواه واخيراً قمت بعرضه في صفحة الويب.
  19. نعم هناك الكثير من المشاريع التي يطلب انجازها باستخدام php و laravel , و لكن أيضا هناك الكثير من المشاريع التي يتم استخدام javascript فيها, و لكن عليك أن لاتقف عند هذا الحد من التعلم و يجب عليك أن تتعلم أطر العمل التي تستخدم مع javascript مثل react js, vue ,angular فجافا سكربت لوحدها من الصعب أن تجد فرص لها , و هناك الكثير من المشاريع و فرص العمل في مجال تطوير الواجهات الأمامية , ماعليك سوى أن تختار إطار العمل الأكثر طلبا في مجتمعك و على مواقع العمل الحر و تبدأ بتعلمه. و من المهم جدا أن تقوم ببناء معرض أعمال تعرض فيه أهم المشاريع التي أنجزتها و أكثرها احترافية و أعلاها جمالية, لكي تستطيع إقناع الزبائن, و من المهم جدا أن تمتلك مهارات الاقناع , و تقدم عرضك للزبون بالطريقة المناسبة و تجعله يثق بك , وهذه الخبرات تكتسبها مع الممارسة و الاستمرار فعليك أن تتحلى بالصبر و لا تيأس.
  20. اليوم أصبحت أغلب تطبيقات الويب تبنى باستخدام أطر العمل , و قليلون الذين يطلبون مستقلين بالخبرات الأساسية فقط , و لكن لاتقلقي فبما أنك أتممتي دورة تطوير واجهات المستخدم فيكون من السهل جدا عليكي أن تتعلمي أي اطار عمل و لن يستغرق منك ذلك وقتا طويلا, و أنصحك بأن تقومي بتطوير أكثر من مشروع قبل أن تستلمي أي مشروع من العملاء , يمكنك أن تقومي بالاطلاع على المشاريع الموجودة في مواقع العمل الحر و تختاري منها مايناسب خبراتك و مهاراتك و تقومي بتطويرها لكي تكسبي الخبرة و تحتفظي بها لديك لتضعيها في معرض أعمالك . أما بالنسبة لتطبيقات الواجهة الخلفية فلاأنصحك أن تبدأي بها الأن , أتم مجال الواجهات الأمامية و تعمقي فيه و اكسبي الخبرة فيه ثم انتقلي لتتعلمي الواجهات الخلفية. يمكنك الإطلاع على هذه التعليقات في أسئلة مشابهة لسؤالك , سوف تستفيد منها الكثير .
  21. إن كنت تريد أن تتعلم تحليل البيانات فيمكنك الاشتراك في دورة الذكاء الاصطناعي, ستتعلم فيها كل ما تحتاج إليه من الصفر دون حاجة إلى معرفة مسبقة،هذا رابط الدورة يمكنك الدخول اليه والقراءة عن الدورة أكثر. في هذا المسار ستتعلم الأساسيات و التي هي: لغة البرمجة بايثون. أدوات التحليل:مثل مكتبات pandas, و numpy و غيرها. بالإضافة إلى ذلك ستتعلم بعض المهارات المتقدمة مثل تعلم الألة و الخوارزميات الشهيرة في تعلم الألة . و بعدها عليك أن تستمر في البحث و التعلم و أهم شيء هو التطبيق العملي فالخبرة لاتأتي من مشاهدة الدروس فقط و إنما عليك أن تطبق كل شيء تتعلمه لكي تفهمه جيدا و تصبح خبيرا , و الاستمرار والمتابعة هو أهم عامل للنجاح. و هذا مقال يشرح علم تحليل البيانات بشكل مفصل https://academy.hsoub.com/programming/general/تحليل-البيانات/
  22. مرحباً محمد , هنا يوجد بعض النقاط ستحتاج إلى فهمها وتطبيقها : الأولى , وهي أن في كثير من الأحيان يظن البعض أنه يجب عليه حفظ الدورة وكل ما تعلمه بكافة التفاصيل , هذه الفكرة تعتبر غير صحيحة , فالهدف من الدورة هو كسب الخبرة لإنجاز محتوى الدورة بشكل فعلي , مثلاً في دورات برمجة مواقع الويب , ستحتاج إلى تعلم CSS , في البداية لن تحتاج إلى animation وفهمه بكامل تفاصيله , وتطبيق animation إبداعي , كل ما تريده في البداية هو كيف تنسيق صفحة تظهر بشكل لائق , ومع تقدم الوقت يمكنك تطوير نفسك خطوة خطوة عند تفرغك. النقطة الثانية , وهي عدم الاكتفاء بالتعلم النظري , وتطبيق كل ما تتعلمه وتريده عملياً , فالتطبيق العملي يرسخ المفاهيم النظرية التي تعلمتها خلال بضعة أيام . في حال لم تتطبق ما تتعلمه خلال أيام قليلة , فسوف تنساه بكل تأكيد. قمت بإرفاق لك روابط بعض الأسئلة التي طرحها أخرون بخصوص هذا الموضوع , يمكنك الإطلاع عليه ورؤية التعليقات والاستفادة منها .
  23. مرحباً احمد , يمكنك تخزين الصور ومقاطع الفيديو في MongoDB باستخدام تقنية تسمى GridFS , وهي نظام لتخزين ملفات كبيرة في MongoDB دون الحاجة إلى تقسيمها إلى أجزاء أصغر. في Schema الخاص بك، يمكنك تغيير حقل الصورة (image) إلى نوع بيانات Buffer وتخزين البيانات المرتبطة بالصورة كـ Buffer، ثم تحويلها إلى بيانات قابلة للتخزين في GridFS. الخطوات : أولاً قم بتثبيت حزمة GridFSStream . npm i gridfs-stream ثانياً قم بتعديل schema الخاصة بك لاستخدام GirdFS: const mongoose = require('mongoose'); const { Schema } = mongoose; const Grid = require('gridfs-stream'); const conn = mongoose.createConnection('mongodb://localhost/your_database_name'); let gfs; conn.once('open', () => { gfs = Grid(conn.db, mongoose.mongo); gfs.collection('uploads'); }); const ModelSchema = new Schema( { name: { type: String, required: true, unique: true, }, pathname:{ type: String, required: true, unique: true, }, title: { type: String, unique: true, }, desc: { type: Array, required: true, default:[""] }, image: { data: Buffer, contentType: String }, }, { timestamps: true, } ); const Model = mongoose.model('Model', ModelSchema); module.exports = Model; هنا يتم تخزين البيانات الخاصة بالصورة في data ك Buffer ونوع المحتوى contentType يحتوي على نوع الصورة. عند رفع الصورة، يجب عليك استخدام GridFS لتخزين البيانات في MongoDB.
  24. مرحباً منصور , ما رأيته في الموقع هو أنك تريد عرض مجموعة صور بشكل بطاقات , وعندما نضغط على أحد الصور , تظهر الصورة بكامل الصفحة ويمكننا التنقل بين الصور مثل Gallery . يوجد مكتبة تسمى react-image-gallery يمكنك استخدامها في مشروعك NextJs لإنشاء معرض صور , سأوضح في المثال التالي كيف يمكن تنزيلها واستخدامها : أولاً قم بتثبيت المكتبة في مشروعك : npm install react-image-gallery لجعل الكود قابل لإعادة الاستخدام وببنية صحيحة , قم بإنشاء component خاص لعرض الصور كالتالي( وليكن ImageGallery.js ) : import React from 'react'; import Gallery from 'react-image-gallery'; import 'react-image-gallery/styles/css/image-gallery.css'; const images = [ { original: 'path/to/image1.jpg', thumbnail: 'path/to/image1_thumbnail.jpg', description: 'Description 1' }, { original: 'path/to/image2.jpg', thumbnail: 'path/to/image2_thumbnail.jpg', description: 'Description 2' }, ]; const ImageGallery = () => { return ( <Gallery items={images} /> ); }; export default ImageGallery; ويمكنك جعل مصفوفة الصور أن تكون ك props بعدها يمكنك استخدام component في صفحة Next js كالتالي : import React from 'react'; import ImageGallery from '../components/ImageGallery'; const GalleryPage = () => { return ( <div> <h1>Gallery</h1> <ImageGallery /> </div> ); }; export default GalleryPage;
  25. هل تقصد فتح البرنامج بكامل الشاشة ( وكأنك ضغطت على أيقونة التكبير ) عندما يفتح البرنامج في البداية ( أي الوضع الافتراضي يكون تكبير للشاشة ) ؟ إذا كان هذا قصدك , فيمكنك فعل ذلك كالتالي ( باستخدام windowManager.screenSize.width و windowManager.screenSize.height ) : import 'package:flutter/material.dart'; import 'package:window_manager/window_manager.dart'; void main() { runApp(MyApp()); makeWindowFullScreen(); } void makeWindowFullScreen() async { WidgetsFlutterBinding.ensureInitialized(); await windowManager.ensureInitialized(); await windowManager.setTitleBarStyle('hidden'); await windowManager.setFullScreen(false); await windowManager.setWindowSize(windowManager.screenSize.width, windowManager.screenSize.height); await windowManager.center(); await windowManager.show(); await windowManager.setSkipTaskbar(false); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text('Flutter Desktop App'), ), body: Center( child: Text( 'مرحبا بك في تطبيق فلاتر ديسكتوب', style: TextStyle(fontSize: 24), ), ), ), ); } }
×
×
  • أضف...