-
المساهمات
6701 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
12
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبدالباسط ابراهيم
-
موقع مكالمات فيديو أمثلة: Zoom و Skype و Microsoft Teams التقنيات المستخدمة في الواجهة الأمامية والخلفية: الجهة الأمامية: React / NextJs Redux / Redux Toolkits Apollo-Client / REST API - تنفيذ طلبات باستخدام GraphQL أو REST react motion / spring للرسوم المتحركة WebRTC - للاتصال في الوقت الفعلي socket.io-client - للبيانات في الوقت الفعلي اختياري: اختبارات وحدة ، اختبارات النهاية إلى النهاية ، اختبارات التكامل مع مكتبة اختبار React ، Cypress الجهة الخلفية: مصادقة مع Passportjs تفويض باستخدام JWT MongoDB مع Mongoose ، Postgres مع Prisma أو MySQL Apollo-Server / REST API - تنفيذ طلبات باستخدام GraphQL أو REST API socket.io - للبيانات في الوقت الفعلي اختياري: اختبار الوحدة باستخدام Jest تطبيق الدردشة realtime أمثلة: Slack و Whatsapp و Telegram و Discord الجهة الأمامية: React / NextJs Redux / Redux Toolkits Apollo-Client / REST API socket.io-client emoji-mart الجهة الخلفية: مصادقة باستخدام Passport js تفويض باستخدام JWT MongoDB مع Mongoose ، Postgres مع Prisma أو MySQL Apollo-Server/REST API socket.io وبالطبع يفضل بناء متجر إلكتروني حيث يتم استخدام مهارات وتقنيات عديدة مثل الجهة الأمامية: D3.js stripe مع use-shopping-cart للدفع socket.io-client الجهة الخلفية: MongoDB مع Mongoose ، Postgres مع Prisma أو MySQL Cloudinary API - لتحميل الصور stripe socket.io
- 3 اجابة
-
- 1
-
-
بعد تعلم Machine Learning، يمكنك العمل في العديد من المجالات التي تستخدم هذه التقنية، مثل: تحليل البيانات و تطوير البرمجيات و التعلم الآلي و مجالات أخرى مثل التعرف على الصوت والصورة والتحكم على المحتوى والترجمة الآلية والكشف عن الاحتيال والأمن السيبراني والطب الحيوي وغيرها. بالنسبة للعمل على موقع العمل الحر أو عن بعد، فإن العديد من الشركات والمؤسسات والمواقع تبحث عن خبراء في مجال Machine Learning للعمل عن بعد أو على أساس عقود مؤقتة أو دائمة. ومن خلال الإنترنت يمكنك العثور على العديد من الفرص الوظيفية والمشاريع المستقلة. هناك العديد من المواقع التي تعرض فرص عمل في مجال Machine Learning، ومن بينها: LinkedIn: يمكنك استخدام LinkedIn للبحث عن فرص عمل في مجال Machine Learning، ويمكنك أيضًا إنشاء ملف شخصي قوي لنفسك وتوسيع شبكتك المهنية. Indeed: يوفر موقع Indeed فرص عمل في مجال Machine Learning وتحليل البيانات والذكاء الاصطناعي والمزيد. Glassdoor: يعرض موقع Glassdoor الوظائف في مجال Machine Learning ويتيح لك قراءة تقييمات الشركات وتجارب الموظفين السابقين. Kaggle Jobs: يعرض موقع Kaggle Jobs الوظائف في مجال التعلم الآلي والبيانات ويوفرأيضًا فرصًا للمشاركة في مسابقات وتحديات Machine Learning. وبالطبع يوجد الكثير من مواقع العمل الحر مثل lsjrg أما بالنسبة للمسابقات التي تقدمها الشركات في مجال Machine Learning، هناك العديد من مسابقات Machine Learning التي تقدمها الشركات والمنظمات: Kaggle: أكبر منصة لمسابقات المعرفة الآلية والتعلم الآلي. يتم تنظيم العديد من المسابقات على مدار السنة حول مشاكل مختلفة. KDD Cup: مسابقة كبيرة تنظمها مؤتمر KDD للمعرفة الاستكشافية والتعلم الآلي. Analytics Vidhya: شركة تنظم العديد من مسابقات التعلم الآلي المجانية وذات الجوائز. DrivenData: منصة تقدم العديد من التحديات لحل مشاكل العالم الحقيقي. Microsoft: تقدم مسابقة للطلاب في مجالات الذكاء الاصطناعي والتعلم الآلي. Anthropic: شركة تنظم العديد من مسابقات التعلم العميق على مدار السنة. AI For Good: مسابقة تركز على استخدام الذكاء الاصطناعي لخدمة الإنسانية. هذه بعض المسابقات الرئيسية في مجال التعلم الآلي والتي تقدمها الشركات، وهناك الكثير أيضًا حسب اهتمامك وتخصصك.
- 7 اجابة
-
- 2
-
-
من المصادر الممكنة للحصول على مجموعات بيانات لتدريب الشبكات العصبونية بالإضافة للمصادر في التعليق السابق: Kaggle: يعد Kaggle واحدًا من أشهر المواقع المتخصصة في تنظيم المسابقات الخاصة بالتعلم الآلي وعلوم البيانات. يقدم الموقع أيضًا مجموعات البيانات المختلفة للتنزيل. UCI Machine Learning Repository: يوفر مستودع UCI العديد من مجموعات البيانات المتاحة للتنزيل مجانًا. تم جمع معظم هذه المجموعات من مختلف المواقع على الويب وهي مناسبة للتدريب والاختبار للعديدة من النماذج العصبونية. Google Dataset Search: يوفر محرك بحث Google Dataset Search مجموعات البيانات المتاحة على الويب من مصادر مختلفة. يمكن استخدامه للعثور على مجموعات البيانات المناسبة لتدريب الشبكات العصبونية. OpenML: يعد OpenML منصة علم البيانات المفتوحة المصدر. يتضمن الموقع مجموعات بيانات واسعة النطاق متاحة للتنزيل والتدريب. GitHub: يمكن العثور على مجموعات البيانات المتاحة للتدريب على الشبكات العصبونية على GitHub، والتي يتم تحميلها ومشاركتها من قبل المجتمع العلمي. ImageNet: يعد ImageNet أحد أكبر مجموعات البيانات المتاحة للتدريب على شبكات العصبونات العميقة. يحتوي على أكثر من 14 مليون صورة في مجموعات فئات مختلفة. CIFAR-10 و CIFAR-100: تعد CIFAR-10 و CIFAR-100 مجموعات بيانات مشهورة لتدريب شبكات العصبونات العميقة في مجال الرؤية الحاسوبية. تحتوي CIFAR-10 على 60،000 صورة ملونة مقسمة إلى 10 فئات، في حين تحتوي CIFAR-100 على 100 فئة. MNIST: تعد MNIST واحدة من أشهر مجموعات البيانات المستخدمة لتدريب شبكات العصبونات العميقة في مجال التعرف على الأرقام المكتوبة باليد. تتكون من 60،000 صورة للتدريب و 10،000 صورة للاختبار. COCO: تعد COCO منصة للكشف عن الصور وتتضمن مجموعة واسعة من مجموعات الصور المتاحة للتدريب على شبكات العصبونات العميقة في مجال الكشف عن الصور. TensorFlow Datasets: توفر TensorFlow Datasets مجموعات بيانات جاهزة للاستخدام مع TensorFlow. تحتوي المجموعات على مجموعة واسعة من المجالات، بما في ذلك الرؤية الحاسوبية والتعلم الآلي. هذه بعض المصادر التي يمكن استخدامها للحصول على مجموعات بيانات لتدريب شبكات العصبونات العمينية، ومن المهم الاختيار المناسب لمجموعة البيانات بناءً على الهدف المطلوب ونوع النموذج الذي يتم تدريبه.
- 2 اجابة
-
- 1
-
-
اللغة البرمجية المستخدمة ليست العامل الوحيد الذي يحدد سرعة البرنامج. بالإضافة إلى لغة البرمجة، يتأثر أداء البرنامج بعدة عوامل مثل بالطبع، يمكننا التعمق أكثر في المعلومات المتعلقة بسرعة البرامج وكيفية تحسينها. عندما يتعلق الأمر بسرعة البرامج، يمكن تقسيم العوامل المؤثرة على الأداء إلى عدة فئات، من بينها: لغة البرمجة: تختلف لغات البرمجة في كفاءتها في تنفيذ البرامج، وذلك يعود إلى العديد من العوامل، مثل طريقة تحويل الشفرة إلى لغة آلة (compiling)، وكفاءة إدارة الذاكرة، والتعامل مع المعالج والنظام المضيف. ومن بين اللغات البرمجية التي تعتبر سريعة في التنفيذ: C++, C، Rust، و Assembly. هياكل البيانات: يتأثر أداء البرنامج بشكل كبير بالهياكل البيانية المستخدمة لتخزين البيانات. يجب استخدام هياكل بيانات فعالة ومناسبة للغرض المطلوب، مثل القوائم المتسلسلة، الأشجار، الجداول الهاش، وأيضًا قواعد البيانات ذات الأداء العالي. تنفيذ الخوارزميات: يجب استخدام الخوارزميات المناسبة للغرض المطلوب والتأكد من تحسينها بشكل صحيح. يجب أن تكون الخوارزميات فعالة ومناسبة للبيانات المعالجة وتحقيق النتائج المطلوبة. كتابة الشفرة المصدرية: يجب كتابة شفرة مصدرية جيدة ومنظمة وبدون أخطاء. يجب تجنب استخدام الحلول المؤقتة والتكرارات والأخطاء الشائعة في البرمجة والتأكد من استخدام المتغيرات والدوال بشكل صحيح. يجب أيضًا تجنب استخدام المكتبات والإضافات غير الضرورية. الأجهزة المستخدمة: تؤثر الأجهزة المستخدمة في سرعة البرنامج. يجب تحسين أداء الأجهزة والتأكد من تحديثها وإصلاح الأخطاء وإزالة البرامج الضارة. العمليات المتزامنة: تؤثر العمليات المتزامنة في سرعة البرامج. يجب تجنب تشغيلعمليات متزامنة غير ضرورية وتنظيمها بشكل صحيح، وكذلك تحسين طريقة تخزين البيانات على القرص الصلب. تقليل الخطأ: يجب تجنب الأخطاء في البرنامج، وتحسين جودة الشفرة المصدرية، واستخدام أدوات التحليل والاختبار لتحديد الأخطاء وتصحيحها. وبشكل عام، يمكن تحسين سرعة البرنامج من خلال تحديد العوامل التي تؤثر على الأداء وتحسينها بشكل صحيح. يجب النظر في جميع العوامل المذكورة أعلاه وتحسينها بشكل مناسب لتحقيق أداء أفضل للبرنامج.
- 5 اجابة
-
- 1
-
-
يمكن استخدام عدة طرق لرفع تطبيق ويب على سيرفر داخلي للشركة، وفيما يلي سأشرح أبرز الطرق بالتفصيل: البريد الإلكتروني: يمكن للمبرمج إرسال ملفات التطبيق عبر البريد الإلكتروني إلى شخص مسؤول داخل الشركة. يتم تضمين جميع الملفات والمستندات اللازمة لتشغيل التطبيق في رسالة البريد الإلكتروني. يجب إرسال رسالة بريد إلكتروني توضح الخطوات اللازمة لتثبيت التطبيق على السيرفر الداخلي للشركة. خدمات السحابة: يمكن استخدام خدمات السحابة المشهورة مثل Dropbox أو Google Drive لرفع ملفات التطبيق. يتم تحميل جميع الملفات والمستندات اللازمة لتشغيل التطبيق على حساب اشتراك المبرمج في الخدمة. يتم مشاركة رابط التنزيل مع شخص مسؤول داخل الشركة لتنزيل جميع الملفات والمستندات المطلوبة لتثبيت التطبيق على السيرفر الداخلي للشركة. File Transfer Protocol (FTP): يمكن استخدام برامج إدارة الملفات عن بعد مثل FTP لرفع الملفات على السيرفر الداخلي للشركة. يتم توفير بيانات اعتماد (credentials) للمبرمج للوصول إلى السيرفر ورفع الملفات. يجب التأكد من استخدام بروتوكول أمني مثل SFTP (Secure File Transfer Protocol) لتشفير الاتصال وحماية البيانات من الاختراق. Remote Desktop Connection: يمكن استخدام Remote Desktop Connection للاتصال بجهاز الكمبيوتر الداخلي للشركة من جهاز الكمبيوتر الخاص بالمبرمج. يتم توفير بيانات اعتماد (credentials) للمبرمج للوصول إلى جهاز الكمبيوتر الداخلي للشركة وتثبيت التطبيق مباشرة على السيرفر. Virtual Private Network (VPN): يمكن تثبيت VPN داخلي للشركة للسماح للمبرمج بالوصول إلى السيرفر الداخلي للشركة من مكان بعيد. يتم توفير بيانات اعتماد (credentials) للمبرمج للوصل إلى الشبكة الداخلية للشركة عبر VPN وتثبيت التطبيق مباشرة على السيرفر. يجب التأكد من تطبيق بروتوكول أمني مثل SSL (Secure Sockets Layer) أو TLS (Transport Layer Security) لتشفير الاتصال وحماية البيانات من الاختراق.
-
بجانب الطريقة الموجودة في التعليق السابق هذه هي الخطوات لتصدير عدة مقاطع في نفس الوقت في برنامج Wondershare Filmora X: افتح مشروعك في برنامج Filmora X. تأكد من أن جميع المقاطع التي تريد تصديرها مضافة إلى شريط الوقت. اضغط على زر "Export" في الأعلى. سيفتح نافذة التصدير. تحت "وضع التصدير"، اختر "Multiple" من القائمة المنسدلة. اختر تنسيق الملف الناتج (مثل MP4 أو WEBM أو MOV)، وأدخل اسم سابق لتصدير الملف. سيضيف البرنامج أرقامًا تلقائيًا بعد السابق لكل مقطع تصدره. حدد مكان تخزين الملفات التي سيتم حفظ المقاطع فيها. تحت "المقاطع للتصدير"، اختر "Selected" إذا أردت تصدير مقاطع محددة فقط. ثم اضغط على Ctrl وانقر فوق المقاطع التي تريد تصديرها في شريط الوقت. إذا أردت تصدير جميع المقاطع في شريط الوقت، اختر "All" تحت "المقاطع للتصدير". ضبط أي إعدادات تصدير أخرى كحجم الفيديو/ الدقة، معدل البت، الخ. اضغط على زر "Export" في الأسفل. سيقوم Filmora X بتصدير كل مقطع بشكل فردي إلى المكان الذي حددته، مع إضافة رقم تسلسلي إلى اسم السابق الذي حددته. هذه هي الخطوات لتصدير عدة مقاطع في وقت واحد من مشروع في برنامج Filmora X.
-
Web Storage (local storage/session storage): عادةً، يتم وضع JWT في local storage للمتصفح وهذا يعمل بشكل جيد لمعظم الحالات. عند تسجيل دخول المستخدم باستخدام اسم المستخدم وكلمة المرور، يتضمن جسم الاستجابة access_token JWT. بعد ذلك، تحتاج إلى التعامل مع هذا الاستجابة في كود الجانب العميل. يمكن حفظ هذا التوكن في localStorage أو sessionStorage. كلاًّ من localStorage وsessionStorage يمتدان من Storage. الفرق الوحيد بينهما هو احتفاظ البيانات: localStorage - تحتفظ البيانات حتى يتم حذفها بشكل صريح. يتم حفظ التغييرات التي تم إجراؤها وتتوفر لجميع الزيارات الحالية والمستقبلية للموقع. sessionStorage - يتم حفظ التغييرات التي تم إجراؤها وتتوفر للصفحة الحالية، بالإضافة إلى الزيارات المستقبلية للموقع على نفس النافذة. بمجرد إغلاق النافذة، يتم حذف التخزين. عيوب Web Storage: على عكس الكوكيز، يكون الlocal storage محصورًا في نطاق محدد ولا يمكن الوصول إلى بياناته من أي نطاق آخر بما في ذلك النطاقات الفرعية. يمكن الوصول إلىWeb Storage عبر JavaScript في نفس النطاق، لذلك قد يكون عرضة لهجمات cross-site scripting (XSS). يجب على المطور التأكد من إرسال التوكن دائمًا عبر HTTPS وليس HTTP. استخدام الكوكيز: يمكن أيضًا استخدام الكوكيز لتخزين التوكن. يختلف الطريقة الدقيقة لضبط الكوكيز اعتمادًا على لغة الجانب العميل التي تستخدمها. هناك خيارات مختلفة للتحكم في مدة حياة الكوكيز: يمكن تدمير الكوكيز بعد إغلاق المتصفح (كوكيز الجلسة). يمكن تنفيذ فحص على الجانب الخادم (وعادة ما يتم ذلك من قبل إطار العمل الذي يتم استخدامه)، ويمكن تنفيذ انتهاء الصلاحية أو انتهاء الصلاحية المتزايدة. يمكن أن يكون هناك صلاحية انتهاء للكوكيز (لا تتم تدميرها بعد إغلاق المتصفح) يمكن قراءة الكوكيز من قبل كود JavaScript والكود الخادم أو فقط الكود الخادم إذا تم تعيين العلم httpOnly. عيوب الكوكيز: يبلغ الحد الأقصى لحجم الكوكيز 4 كيلو بايت فقط، لذلك قد يكون هذا مشكلة إذا كان هناك العديد من المطالبات المرفقة بالتوكن. قد يكون الكوكيز عرضة للهجمات عبر الطلبات المزيدة (CSRF أو XSRF). يحدث هذا النوع من الهجمات عندما يتسبب موقع ويب خبيث في إجراء عمل غير مرغوب فيه على موقع موثوق به حيث يكون المستخدم مسجل الدخول حاليًا. وهذا يستغل كيفية تعامل المتصفح مع الكوكيز. يجعل استخدام حماية CSRF لإطار تطبيق الويب الخاص بك الكوكيز خيارًا آمنًا لتخزين التوكن. يمكن أيضًا الحد من CSRF بشكل جزئي من خلال فحص رأس HTTP Referer و Origin. يمكن أن يكون استخدام الكوكيز صعبًا في حالة تطبيق يتطلب الوصول عبر النطاقات المختلفة. تتضمن خصائص الكوكيز (Domain/Path) التي يمكن تعديلها للسماح لك بتحديد مكان يسمح باستخدام الكوكيز.
-
هذا هو مثال للتحقق من اسم المستخدم وكلمة المرور في PHP وعرض الأخطاء بلون أحمر: if ($_SERVER['REQUEST_METHOD'] == 'POST') { $username = $_POST['username']; $password = $_POST['password']; $conn = new mysqli('host', 'user', 'password', 'database'); $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = $conn->query($sql); if ($result->num_rows == 1) { // Login success header('Location: /home.php'); } else { // Login failed echo '<p style="color:red">Invalid username or password!</p>'; } } هذا الكود يقوم بما يلي: يتحقق من طريقة الإرسال POST يأخذ قيم اسم المستخدم وكلمة المرور المرسلة من النموذج يقوم بإجراء استعلام SQL للتحقق من وجود سجل مطابق في قاعدة البيانات إذا وجد سجل واحد مطابق، يتم توجيه المستخدم إلى صفحة المنزل إذا لم يعثر على سجلات مطابقة، يعرض رسالة خطأ باللون الأحمر هذا سيضمن عرض رسالة الخطأ بلون أحمر إذا كان اسم المستخدم أو كلمة المرور غير صحيحة. يمكنك تطبيق هذا الكود على صفحتك تسجيل الدخول للتحقق من بيانات المستخدم وإظهار الأخطاء بهذه الطريقة.
- 2 اجابة
-
- 1
-
-
"guest@" ليس دالة ولا متغير في البرمجة بشكل عام، ولا يمكن الإجابة على السؤال بدقة دون معرفة السياق الذي تم استخدام هذا المصطلح فيه. ولكن يبدو أنه خاص بإطار العمل laravel لذلك كجزء من إصدار Laravel 5.5، قدمت Laravel توجيهات جديدة في Blade تسمى @auth و @guest. كما يوحي الاسم، كل منهما يمكن أن يكون مفيدًا لتحديد ما إذا كان المستخدم الحالي مصادقًا أم زائرًا. في الإصدارات السابقة من Laravel، كنا نستخدم التوجيهة @if مع Auth()->check() للتحقق من حالة المصادقة للمستخدم. ولكن التوجيهات الجديدة تجعل الكود أكثر نظافة، لنرى كيف يمكننا استخدامها. الآن يمكننا التحقق بسرعة مما إذا كان المستخدم الحالي مصادقًا أو زائرًا: // باستخدام @guest @guest guest stuff here @else logged user stuff here @endauth // باستخدام @auth @auth logged user stuff here @else guest stuff here @endauth الطريقة القديمة للتحقق من حالة المصادقة: @if (auth()->check()) @endif
-
تستطيع تحديد عدد معين من السجلات الجديدة في Django باستخدام: - Model Manager - Limiting queryset في حالتك، يمكنك عمل التالي: أنشئ Manager خاص بـ Flashcard from django.db import models class FlashcardManager(models.Manager): def create_flashcards(self, num): for i in range(num): Flashcard.objects.create() class Flashcard(models.Model): objects = FlashcardManager() # use the custom manager استدعي `.create_flashcards(10)` كل يوم لإنشاء 10 فلاش كارد فقط. from .models import Flashcard Flashcard.objects.create_flashcards(10) يمكن أيضًا استخدام `.bulk_create()` وتحديد عدد السجلات: Flashcard.objects.bulk_create([Flashcard() for i in range(10)]) أو استخدام `queryset.limit()`: for i in range(10): Flashcard.objects.create() هذه الطرق ستضمن إنشاء 10 فلاش كارد فقط كل يوم. تستطيع اختيار الطريقة المناسبة لك.
-
تطوير الويب مستمر لسنوات لعدة أسباب: يستمر الطلب على مهارات تطوير الويب في النمو كلما تحولت المزيد من الشركات إلى الإنترنت وزادت من وجودها على الإنترنت. يدفع نمو التجارة الإلكترونية ووسائل التواصل الاجتماعي وتطبيقات الويب المتنقل هذا الطلب. الويب يتطور باستمرار مع تقنيات وإطارات ولغات جديدة. هذا يعني أن مطوري الويب لديهم العديد من الفرص للتعلم المستمر والنمو وتطوير مهاراتهم. يحافظ على العمل مثير للاهتمام ومشوق. هناك تخصصات متعددة ضمن تطوير الويب، بدءاً من التطوير الأمامي إلى الخلفي، إلى تطوير الجزء الكامل. هذا يتيح لمطوري الويب إيجاد تخصصات ضيقة تتوافق مع اهتماماتهم وقدراتهم. رواتب تطوير الويب نسبيا عالية مقارنة بمهن أخرى، وفرص العمل عن بعد والعمل الحر توفر مرونة. ولكن يؤثر الذكاء الاصطناعي (AI) على تطوير الويب وتخلق فرص عمل جديدة في هذا المجال. ويعتبر أحد المجالات التي يؤثر فيها الذكاء الاصطناعي بشكل كبير يمكنك قراءة المزيد من المقالات في التعليق السابق بدلاً من التكرار
- 6 اجابة
-
- 1
-
-
كما في التعليقات السابقة فهذا الأمر يرجع إليك من خلال معرفة مميزات وعيوب كل مجال كما يلي تطوير الويب: مجال واسع ومتنوع يشمل تطوير مواقع الويب والتطبيقات المستندة إلى الويب. مطلوب للغاية بسبب انتشار الإنترنت واعتماد العديد من الشركات على الحضور على الإنترنت. تحتاج إلى مهارات في لغات مثل HTML & CSS & JavaScript. فرص العمل واسعة وتشمل وكالات الإعلانات وشركات التسويق ووسائل الإعلام وكبرى الشركات. العيب الرئيسي هو المنافسة العالية وسرعة تغير التقنيات. تطوير التطبيقات: يشمل جميع أنواع التطبيقات سواء كانت موجهة لأجهزة أندرويد أو آي أو إس. هناك عدد كبير ومتزايد من التطبيقات، لذلك فرص العمل واسعة. يتطلب فهما عميقا لأنظمة التشغيل وأدوات البرمجة التي تدعم كل منصة. المنافسة عالية بسبب شعبية تطبيقات الهاتف. هندسة البرمجيات: مجال مستقر ومهني يهتم بعملية تصميم البرمجيات وضمان جودتها. المهندسون يطورون وينفذون اللوائح والممارسات الجيدة لتطوير البرمجيات بكفاءة. أساليب العمل منهجية ومنظمة تستخدم أدوات مثل UML. فرص العمل متاحة في جميع القطاعات الصناعية والدخل جيد. تكون عملية تطوير البرمجيات أكثر كفاءة وفعالية. الذكاء الاصطناعي: مجال في طور النمو بسرعة مع تزايد الحاجة إلى تقنيات الذكاء الاصطناعي. تحديات برمجية مثيرة للاهتمام كالروبوتات والتعلم الآلي. فرص العمل كبيرة في القطاعات الصناعية الرئيسية. المهارات الرياضية والإحصائية ضرورية. جديد نسبيا، ولكن لديه مستقبل واعد.
- 10 اجابة
-
- 1
-
-
تستخدم قوالب Django علامات {% if %} و {% endif %} لإنشاء عبارات if. يتمثل بناء الجملة الأساسي لعبارة if في الشكل التالي: {% if variable %} <!-- الكود الذي يتم تنفيذه إذا كانت القيمة المحددة للمتغير صحيحة --> {% endif %} يمكن استخدام أي متغير صالح للقالب داخل عبارة if، مثل المتغيرات المرسلة من العرض أو المتغيرات التي تم حسابها في القالب. مثال بسيط على عبارة if في قالب Django أحد الأمثلة البسيطة والشائعة في استخدام عبارة if في قالب Django هو عندما ترغب في التحقق مما إذا كان المستخدم المتصل حاليًا بالموقعد أم لا، ومن ثم توفير الخطوات اللازمة بناءً على حالة المصادقة. هكذا يتم تنفيذه: <h1>مرحبًا بك في موقعي</h1> {% if user.is_authenticated %} <p>مرحبًا، {{ user.username }}</p> <p><a href="{% url 'logout' %}">تسجيل الخروج</a></p> {% else %} <p>أنت غير مسجل الدخول.</p> <p><a href="{% url 'login' %}">تسجيل الدخول</a></p> {% endif %} في هذا المثال، تقوم عبارة if بفحص خاصية user.is_authenticated لتحديد ما إذا كان المستخدم قد سجل الدخول أم لا. اعتمادًا على النتيجة، سيتم عرض محتوى مختلف في القالب. إذا كان المستخدم قد سجل الدخول، سيتم عرض "مرحبًا [اسم المستخدم]" ورابط تسجيل الخروج، وإلا فسيتم عرض "أنت غير مسجل الدخول" ورابط تسجيل الدخول. {% else %} و {% elif %} بالإضافة إلى الجملة if الأساسية، تدعم قوالب Django أيضًا استخدام علامات {% else %} و {% elif %}. يمكن استخدام علامة {% else %} لتحديد كود يتم تنفيذه إذا لم يتم تلبية الشرط في عبارة if، كما فعلنا في المثال السابق، بينما يمكن استخدام علامة {% elif %} لتحديد شروط إضافية يتم فحصها. ولكن إذا كنت تريد ربط عدة عبارات if معًا باستخدام علامة {% elif %} للتحقق من شروط إضافية، فيمكنك استخدام الشكل التالي: {% if variable == 5 %} <p>المتغير يساوي 5.</p> {% elif variable == 10 %} <p>المتغير يساوي 10.</p> {% else %} <p>المتغير لا يساوي 5 أو 10.</p> {% endif %}
-
يمكن أن تواجه مشكلة في عدم ظهور النتيجة في المتصفح بسبب استخدام أسلوبين مختلفين لتحميل نفس الملف `home.glb`. يتم استخدام `model-viewer` element في HTML و `GLTFLoader` في Three.js لتحميل الملف وعرضه. يجب استخدام الأسلوب الواحد لتحميل الملف، وإما استخدام `model-viewer` أو `GLTFLoader`. إذا كنت تريد استخدام `model-viewer`، يمكنك إزالة كود `GLTFLoader` في Script.js واستخدام العنصر `model-viewer` في HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>3D</title> </head> <body> <div class="container"> <model-viewer src="./home.glb" auto-rotate camera-controls alt="cube"></model-viewer> </div> </body> </html> بينما إذا كنت تريد استخدام GLTFLoader، فيمكنك إزالة العنصر model-viewer من HTML وتغيير كود Script.js إلى الشكل التالي: import * as THREE from 'three'; import {OrbitControls} from 'three/examples/jsm/controls/OrbitControls' import {GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader'; import {DRACOLoader} from 'three/examples/jsm/loaders/DRACOLoader'; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); const controls = new OrbitControls(camera, renderer.domElement); camera.position.set(0, 0, 5); controls.update(); const loader = new GLTFLoader(); const draco = new DRACOLoader(); draco.setDecoderPath('/examples/jsm/libs/draco/'); loader.setDRACOLoader(draco); // Load a glTF resource loader.load( '/home.glb', gltf => { gltf.scene.scale.set(.1,.1,.1); scene.add(gltf.scene); }, xhr => { let percent = xhr.loaded / xhr.total * 100; console.log(`${percent}% of home model loaded.`); }, error => { console.error(error); } ); function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } animate(); ويجب أن يتم تضمين الملفات اللازمة لـ OrbitControls و GLTFLoader و DRACOLoader لضمان عمل الكود بشكل صحيح.
-
السبب في جعل الصنف الأول "abstract" هو أنه يعمل كصنف أساسي أو واجهة للصنف الآخر الذي يمتد منه. في هذه الحالة، يهدف "NewestBooksState" إلى كونها واجهة مشتركة لجميع الحالات الممكنة التي يمكن أن يكون عليها "NewestBooksCubit". بجعل "NewestBooksState" مجرد صنف أساسي، فلا يمكن إنشاؤه مباشرة، ولكن يمكن تمديده من خلال صنف آخر لتعريف حالات أكثر تحديداً. هذا هو نمط شائع في إدارة الحالة بنمط Cubit أو BLoC، حيث يكون الحالة الأساسية مجردة، وتمتد الحالات الفعلية منها لتمثيل حالحالات المختلفة للتطبيق. بالإضافة إلى ذلك، بتنفيذ صنف "Equatable" والتعديل على الطريقة "props"، يمكّن ذلك من مقارنة الحالات المختلفة بسهولة عن طريق مقارنة خصائصها. وهذا مهم عندما يصدر Cubit حالة جديدة ونريد التحقق من ما إذا كانت مختلفة عن الحالة السابقة وتحريك التحديثات وفقًا لذلك. كما أن استخدام الفئة المجردة abstract class في بلوك (BLoC) له عدة فوائد: تنظم الحالات (states) في هيكل تراثي. يمكن للفئة المجردة ان تكون اب لجميع الحالات، وبالتالي تربط بينها. تجبر على تطبيق الوظائف التي يحتويها الفئة الأب abstract class في الفئات المشتقة منها. مثلا يمكن تعريف وظيفة abstract في الفئة الأب، ثم تطبيقها في الفئات البنات. تسهل اضافة فئات جديدة مشتقة لأن التركيبة والقواعد الأساسية يتم وضعها في الفئة الأب. تساعد في اعادة الإستخدام لأن الفئة الأب تحتوي على المنطق المشترك بين الحالات، ويمكن استخدام نفس المنطق في سياقات مختلفة. في المثال الذي أعطيته، تم استخدام abstract class لتنظيم حالات الكيوبت (cubit) في هيكل تراثي. وهذا يسهل الحفاظ على الكود وتطويره فيما بعد.
-
الفرق بين الParameters والArguments: في هذا المثال، لدينا دالة تسمى "addNumbers" تقوم بإضافة رقمين وإرجاع النتيجة: function addNumbers(num1, num2) { return num1 + num2; } يتم تعريف المتغيرات num1 و num2 كـ parameters في تعريف الدالة. وعند استدعاء الدالة، يتم تمرير الـ arguments وهي القيم الفعلية التي يتم إدخالها إلى الدالة، كما هو موضح في المثال التالي: var result = addNumbers(5, 10); console.log(result); // النتيجة هي 15 في هذا المثال، يتم تعريفالـ parameters num1 و num2 في تعريف الدالة "addNumbers". وعند استدعاء الدالة باستخدام الـ arguments 5 و 10، تتم إسناد القيم 5 و 10 إلى المتغيرات num1 و num2 على التوالي، وتقوم الدالة بإضافة المتغيرين وإرجاع النتيجة 15. الفرق بين الDeclaration والInitialization: في هذا المثال، لدينا متغير يسمى "name" يتم تعريفه في الكود وإسناد قيمة له في وقت لاحق: var name; name = "John"; console.log(name); // النتيجة هي "John" في هذا المثال، يتم استخدام الـ Declaration لتعريف المتغير "name" دون تحديد قيمة محددة له. ويتم استخدام الـ Initialization لإسناد القيمة "John" إلى المتغير "name" في الوقت الذي يتم فيه تعريفه، ويتم ذلك باستخدام علامة الـ "=" لإسناد قيمة "John" إلى المتغير "name". وبعد ذلك، يتم طباعة قيمة المتغير باستخدام console.log()، وتكون النتيجة "John". الـ Execution Context: في هذا المثال، لدينا دالة تسمى "greet" تقوم بطباعة رسالة ترحيب باستخدام المتغير "name": function greet(name) { console.log("Hello, " + name + "!"); } var message = "Welcome to my website!"; greet("John"); عند استدعاء الدالة "greet" باستخدام الـ argument "John"، يتم إنشاء Execution Context جديد يحتوي على المتغيرات التالية: المتغير "name" الذي تم تعريفه كـ parameter في دالة "greet". المتغير "message" الذي تم تعريفه في المستوى العلوي من الكود. يتم إنشاء Lexical Environment جديد لكل Execution Context، والذي يحتوي على الـ Identifier bindings التي تم تعريفها في هذا النطاق. في هذا المثال، يتم الوصول إلى المتغير "name" من خلال Lexical Environment الخاص بـ Execution Context الذي تم إنشاؤه لدالة "greet"، بينما يتم الوصول إلى المتغير "message" من خلال Lexical Environment العلوي للكود. الـ Lexical Environment: في هذا المثال، لدينا دالة تسمى "calculateArea" تقوم بحساب مساحة المستطيل باستخدام المتغيرات "width" و "height": ini function calculateArea(width, height) { var area = width * height; return area; } var width = 5; var height = 10; var result = calculateArea(width,height); console.log(result); // النتيجة هي 50 في هذا المثال، يتم تعريف المتغيرات "width" و "height" في المستوى العلوي من الكود، وتتم إسناد القيم 5 و 10 إلى المتغيرات على التوالي. وعند استدعاء الدالة "calculateArea" باستخدام الـ arguments "width" و "height"، يتم إنشاء Execution Context جديد يحتوي على المتغيرات التالية: المتغير "width" الذي تم تعريفه في المستوى العلوي من الكود. المتغير "height" الذي تم تعريفه في المستوى العلوي من الكود. المتغير "area" الذي يتم تعريفه داخل الدالة "calculateArea". يتم إنشاء Lexical Environment جديد لكل Execution Context، والذي يحتوي على الـ Identifier bindings التي تم تعريفها في هذا النطاق. في هذا المثال، يتم الوصول إلى المتغيرات "width" و "height" من خلال Lexical Environment العلوي للكود، بينما يتم الوصول إلى المتغير "area" من خلال Lexical Environment الخاص بـ Execution Context الذي تم إنشاؤه لدالة "calculateArea". وتتم إدارة المتغيرات في هذه الـ Lexical Environment، ويتم الوصول إليها من خلال الـ Execution Context الخاص بها. يمكنك الإطلاع على المزيد من المعلومات من خلال المقالة التالية
- 5 اجابة
-
- 1
-
-
يمكنك استخدام الحل التالي RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^egypt/(.*)$ egypt.php/$1 [L] في هذا المثال، يتم استخدام الشرط %{REQUEST_FILENAME} !-f لتحويل الروابط التي لا تشير إلى ملفات في الموقع، والشرط %{REQUEST_FILENAME} !-d لتحويل الروابط التي لا تشير إلى مجلدات في الموقع، وذلك لتجنب تحويل الروابط الثابتة في الموقع. يتم استخدام النمط ^egypt/(.*)$ لتحويل جميع الروابط التي تحتوي على متغيرات إلى صفحة واحدة egypt.php.يتم استخدام خاصية RewriteCond لفحص الشرط %{REQUEST_FILENAME} !-f و%{REQUEST_FILENAME} !-d للتأكد من عدم وجود ملف أو مجلد بالاسم المطلوب في الطلب، وهذا يضمن تحويل الروابط فقط إذا لم يتم العثور على ملف أو مجلد بهذا الاسم في الموقع. يتم استخدام الشرط [L] في نهاية القاعدة RewriteRule لإيقاف تطبيق أي قواعد أخرى إذا تم تحويل الرابط بنجاح. يجب أن يتم وضع هذه القاعدة في ملف .htaccess ووضع الملف في المجلد الرئيسي لموقع الويب. يجب التأكد من تفعيل إعادة الكتابة RewriteEngine في ملف htaccess وأن يكون الملف قابل للقراءة والكتابة من قبل المستخدم المسؤول عن الخادم.
-
يتم استخدام خاصية before في CSS لعرض محتوى معين قبل العنصر الذي تتم معالجته. ومع ذلك، فإنه لا يمكن استخدام خاصية before مع عنصر input كما تم الشرح في التعليقات السابقة علاوة على ذلك، فإن استخدام الخاصية before مع عنصر input من نوع search قد يؤدي إلى تغيير مظهر العنصر بشكل غير مرغوب فيه، وذلك بسبب كيفية تنسيق المتصفحات لهذا النوع من العنصر. بدلاً من ذلك، يمكن استخدام الصورة كخلفية لعنصر input والتحكم في مظهرها باستخدام CSS. ومن الممكن أيضافة الصورة باستخدام خاصية background-image في CSS، ويمكن تعديل مظهر الصورة باستخدام خصائص مثل background-position و background-size وغيرها. على سبيل المثال، يمكن استخدام الكود التالي لإضافة ايقونة البحث كخلفية لعنصر input من نوع search: input[type="search"] { background-image: url("path/to/search-icon.png"); background-position: right center; background-repeat: no-repeat; padding-right: 20px; /* تعديل هذه القيمة حسب حجم الصورة */ } يتم وضع الصورة كخلفية للعنصر input باستخدام خاصية background-image. كما يتم تحديد موضع الصورة باستخدام خاصية background-position، وتحديد عدم تكرار الصورة باستخدام خاصية background-repeat. وأخيرًا، يتم إضافة بعض التباع باستخدام خصائص الحشو (padding) لضمان عدم تغطية النص بالصورة. ومثال على ذلك يمكنك الإطلاع على ال pen التالية https://codepen.io/tippingpointdev/pen/WNZbWGe
- 4 اجابة
-
- 1
-
-
تعتبر كل من بيئات العمل على الحاسوب المحلية (مثل Jupyter) والبيئات السحابية (مثل Google Colab) خيارات جيدة لتعلم الآلة وتحليل البيانات. ولكل منهما مزايا وعيوب: بيئات العمل على الحاسوب المحلية: مزايا: لديك السيطرة الكاملة على البيئة وإمكانية تثبيت أي برامج أو مكتبات تحتاجها. عادة ما تكون أسرع في التنفيذ لأن الحوسبة تتم محليًا. عيوب: تحتاج إلى موارد حاسوب قوية محلية لتشغيل التعلم الآلي. يمكن أن يكون الإعداد والصيانة معقدًا. البيئات السحابية مثل Google Colab: مزايا: لا تحتاج إلى موارد حاسوب قوية محلية. تستضيف Google البيئة وتوفر معالجة GPU. سهل الإعداد والاستخدام. لا تحتاج إلى تثبيت أي برامج. عيوب: ليس لديك السيطرة الكاملة على البيئة. محدودة بما توفره Google. عادة ما تكون أبطأ في التنفيذ بسبب الوقت اللازم لنقل البيانات إلى السحابة ومنها. لذا أنصح باستخدام كليهما واختيار الأنسب حسب المهمة. يمكنك استخدام بيئة محلية عند الحاجة إلى سرعة عالية أو مرونة كاملة، واستخدام Colab عند الحاجة إلى موارد GPU دون التزام بشراء حاسوب قوي. نعم، بشكل عام تعتبر بيئات العمل المحلية أكثر متعة في الاستخدام لأنها توفر لك حرية أكبر في التحكم وتخصيص البيئة. وبالنسبة لمعالجات M1 و M2 الجديدة في أجهزة ماك، فهي ممتازة لتعلم الآلة وتحليل البيانات. وذلك لأسباب عدة: تقدم M1 و M2 أداءً عاليًا مع كفاءة عالية في استهلاك الطاقة، مما يجعلها مثالية لأعمال الحوسبة الدقيقة مثل التعلم الآلي. تأتي M1 و M2 بوحدات معالجة الرسوميات (GPU) عالية الأداء مدمجة، والتي تفيد كثيرًا في تسريع التدريب على الشبكات العصبية. تدعم M1 و M2 معمارية ARM التي تميل إلى أن تكون أكثر كفاءة في الطاقة من معماريات x86 التقليدية. وهذا يفيد في تشغيل النماذج الحسابية المعقدة لفترة أطول. يوجد العديد من إطارات العمل الشهيرة في مجال التعلم الآلي مثل TensorFlow و PyTorch و Keras مدعومة جيدًا على المعالجات M1 و M2. لذلك، إذا كان بمقدورك شراء جهاز ماك الجديد بمعالج M1 أو M2، فسيكون خيارًا رائعًا لتعلم الآلة والحوسبة على الحاسوب الشخصي.
- 6 اجابة
-
- 1
-
-
كما أخبرك مصطفى في التعليق السابق أن أي مشروع يحتاج إلى الوقت الذي قد يطول في بعض الأحيان لذلك يجب عليك الصبر والأستمرار في تحسن الموقع هناك بعض النقاط التي يمكن تحسينها لزيادة فرص النجاح، وهي كالتالي: تحسين محتوى الموقع: يجب أن يحتوي الموقع على محتوى جذاب ومفيد لللزوار، ويجب أن يكون المحتوى متخصصًا ومفصلًا للمنتجات والخدمات التي تقدمها. يمكنك استخدام أدوات البحث عن الكلمات الرئيسية للمساعدة في تحديد موضوعات المحتوى الأكثر بحثًا وشعبية. تحسين تصميم الموقع: يجب أن يكون تصميم الموقع جذابًا وسهل الاستخدام ويجب أن يكون متوافقًا مع الأجهزة المختلفة والشاشات المختلفة. الإعلان عن الموقع: يجب أن تستثمر في الإعلان عن الموقع باستخدام الشبكات الاجتماعية والإعلانات المدفوعة على محركات البحث والشبكات الاجتماعية لجذب المزيد من الزوار والمستخدمين. تحسين ترتيب الموقع في محركات البحث: يمكنك تحسين ترتيب الموقع في محركات البحث من خلال تحسين محتوى الموقع وتحسين الكلمات الرئيسية والروابط الداخلية والخارجية. الابتكار: يجب أن تكون مبتكرًا في تقديم العروض والخصومات والصفقات لجذب المزيد من الزوار والعملاء. نصيحتي الأخيرة هي أن تبحث عن المزيد من المعلومات والموارد حول كيفية تطوير وتسويق موقع الكوبونات، وتحاول الاستفادة من الأفكار والتقنيات الجديدة لتحقيق المزيد من النجاح. وأتمنى لك التوفيق في مشروعك.
-
هذه الأخطاء في التصميم نتيجة تحديد height معين فإذا كان ال height أكبر ستظهر مشكلة كما في الموقع الخاص بك لذلك لحل مشكلة تداخل الأقسام comment و contact يجب عليك حذف السطر التالي .section_comments { height: 100vh; } أما بالنسبة لل footer فقم بحذف السطر التالي .section_Contact { height: 90vh; } وبدلاً من الحذف يمكنك استخدام min-height بدلاً من height
- 1 جواب
-
- 1
-
-
يبدو أن هناك عدة أخطاء في الرمز المعروض. إليك بعض التوصيات لتصحيح هذه الأخطاء: في السطر الأول، استخدم "className" بدلاً من "ClassName" إذا كنت تريد تعيين صفات الفئة. في السطر الثاني، يجب أن تكون قائمة المستخدمين داخل العلامات القوسية "[]" بدلاً من "{}". في السطر الثالث، يجب أن تكون الأقواس الدائرية بين الأقواس الزوجية "()" بدلاً من "}". في السطر الرابع، تحتاج إلى تحديد اسم العنصر "key" لكل عنصر في قائمة المستخدمين أو سيتم إصدار تحذير في وحدة المعالجة المركزالتعديل المقترح للرمز هو كالتالي: <div className='container'> <div className='row'> {this.state.users.map((ele) => <Users key={ele.id} userinfo={ele} delete={this.state.delete} /> )} </div> </div> const users = [ { name: 'angular', id: 1, examresult: true }, { name: 'html', id: 2, examresult: false, }, { name: 'php', id: 3, examresult: false, }, { name: 'laravel', id: 4, examresult: true, } ]; class Users extends React.Component { render() { return ( <div> <p>{this.props.userinfo.name}</p> <p>{this.props.userinfo.id}</p> <p>{this.props.userinfo.examresult}</p> <button onClick={() => this.props.delete(this.props.userinfo.id)}>Delete</button> </div> ); } } تم تغيير اسم العنصر "ClassName" إلى "className" في السطر الأول. تم تحديد العنصر "key" لكل عنصر في قائمة المستخدمين لتجنب إصدار تحذيرات في وحدة المعالجة المركزية. تم إنشاء عنصر فرعي يسمى "Users" لعرض معلومات المستخدم وزر الحذف. تم تمرير "ele.id" كمعرف للمستخدم لدالة الحذف. يمكنك استخدام هذا الرمز كأساس لتصحيح أخطاء الرمز الخاص بك.
-
تخزين البيانات بشكل مباشر كنص عربي وإنجليزي يمكن أن يسهّل العملية ويجعلها تبدو أكثر بساطة، ولكن يمكن أن يؤدي إلى مشاكل في حالة الترجمة أو البحث عن النصوص، لأن الكلمات العربية والإنجليزية تتباينفي نحوها وتهجئتها وقد تكون قد تم تخزينها بطريقة غير متوافقة مع بعض قواعد البيانات. من ناحية أخرى، تخزين البيانات كمعرفات فريدة يمكن أن يسهل البحث عن البيانات وتحديثها، ولكن يمكن أن يؤدي إلى زيادة حجم القواعد والتعقيد في التعامل معها. بالنسبة لتفضيل أي طريقة، فذلك يعتمد على الحاجة والغرض من التطبيق. إذا كان التطبيق يتضمن ترجمة نصوص أو البحث عن النصوص بشكل متكرر، فقد يكون من المفضل تخزين البيانات بشكل مباشر كنص عربي وإنجليزي. وإذا كان التطبيق يحتاج إلى تحديثات متعددة للبيانات أو تحديثات متعددة لقواعد البيانات، فقد يكون من المفضل تخزين البيانات كمعرفات فريدة. بشكل عام، يفضل استخدام معرفات فريدة لتخزين البيانات في قواعد البيانات بسبب المزايا العديدة التي توفرها، مثل البحث السريع والتحديثات السريعة. ومع ذلك، في بعض الحالات، قد يكون من المناسب استخدام تخزين المعلومات كنص عربي وإنجليزي، مثل في حالات البيانات الثابتة التي لا يتم تحديثها كثيرًا. بشكل عام، يعتمد الاختيار بين تخزين البيانات بشكل مباشر كنص عربي وإنجليزي أو تخزينها كمعرفات فريدة على احتياجات التطبيق ومتطلباته.
- 2 اجابة
-
- 1
-
-
لا يتم حل الأسئلة الإختبارية إنما يمكنني تقديم بعض التعليمات للمساعدة من خلال التعليمات التالية طباعة الأعداد الصحيحة: استخدم حلقة تكرارية لطباعة الأعداد من 1 إلى 100، أو استخدم حلقة تكرارية لطباعة الأعداد من 100 إلى 1 للحصول على الترتيب التنازلي. إيجاد قيمة المتسلسلة: استخدم حلقة تكرارية لحساب قيمة المتسلسلة s باستخدام المعادلة s=x/3+x2/5+x3/7+..........x5/11. طباعة المتسلسلة: استخدم حلقة تكرارية لحساب وطباعة المتسلسلة باستخدام المعادلة i/(i+1)!. طباعة المتسلسلة: استخدم حلقةتكرارية لحساب وطباعة المتسلسلة باستخدام المعادلة i/(2i+1). إيجاد قيمة w: استخدم شرطًا لفحص قيمة x، وعيّن قيمة w بناءً على قيمة x باستخدام الشروط التالية: - إذا كانت x>0، فعين قيمة w على x+1. - إذا كانت x=0، فعين قيمة w على sin(x)+5. - إذا كانت x<0، فعين قيمة w على 2x-1.
-
بدلاً من ذلك ، يمكنك اتباع التوثيق الرسمي المحدث واستخدام سطر الأوامر Firebase CLI لإنشاء ملف firebase_options.dart تلقائيًا في مجلد lib الخاص بك ، والذي سيحدد خيارات Firebase الصحيحة لك. الخطوات هي: تثبيت Flutterfire CLI: dart pub global activate flutterfire_cli تكوين Flutterfire (قم بتشغيله في أصل مشروعك وامر بالارشاد من خلال اختيار مشروع Firebase الصحيح ومنصات الهدف): flutterfire configure استيراد ملف firebase_options.dart المولد تلقائيًا في ملف main.dart الخاص بك وتهيئة Firebase على النحو التالي: void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(MyApp()); } وبهذه الطريقة ، لا تحتاج إلى تعريف options يدويًا. وسيقوم Flutterfire CLI بتوليد ملف Dart لدعم منصتك (Android و iOS وتجريبي Web) وسيعرّف خيارات Firebase المناسبة تلقائيًا.