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

Mustafa Suleiman

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

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

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

  • عدد الأيام التي تصدر بها

    365

كل منشورات العضو Mustafa Suleiman

  1. سبب المشكلة غير واضح، فربما المشكلة راجعة إلى وجود عطل ما في منفذ الشحن أي في الدائرة الكهربية الخاصة به في اللوحة الأم، أو مشكلة في البطارية جرب إزالة البطارية ثم تفقد هل المشكلة اختفت أم لا. وأحد الأسباب أيضًا هو أن الشاحن غير مناسب للاب توب لديك، أي الجهد الكهربائي (الفولت) الخاص به غير مناسب للاب توب لديك، يجب شراء شاحن بمواصفات مناسبة أي له نفس الجهد ولكن تيار أعلى (أمبير)، حاول تجربة شاحن آخر.
  2. هناك مشكلة في إتصال الإنترنت لديك، حاول استخدام أي برنامج vpn مجاني مثل tomvpn ثم حاول التثبيت، إن تم التثبيت إذن يوجد مشكلة في الإنترنت لديك تمنع تثبيت الحزم من خلال مستودع registry.npmjs.org
  3. حاول أولاً حذف ملفات التخزين المؤقت، من خلال الأمر: npm cache clean --force إن استمرت المشكلة حاول إعادة تشغيل الحاسوب، إن استمرت عليك بحذف إصدار Node.js الذي لديك بالتوجه إلى Control Panel ثم اختر Programs ثم Programs and Features. ابحث عن Node.js ثم اضغط بزر الفأرة الأيمن واختر uninstall، بعد الإنتهاء أرجو تحميل الإصدار 18.17 فهو إصدار مستقر من خلال الرابط التالي: https://nodejs.org/dist/v18.17.0/node-v18.17.0-x64.msi
  4. أنت لم تضيع وقتك في تعلم ما ذكرته وهو جافاسكريبت و React Native، بل على العكس هناك طلب على مطوري React Native الجيدين. ودائمًا أصعب لغة هي لغة البرمجة الأولى، وأنت الآن قمت بدخول مجال البرمجة وأصبح لديك أساسيات تستند إليها لتعلم ما تريد في المجالات المختلفة، فبالطبع الفرق كبير بينك وبين من يريد تعلم مجال مثل (تعلم الآلة) وهو بعيد تمامًا عن مجال البرمجة. لكن قبل إختيار المجال، عليك تحديد الوقت المتاح لك للحصول على وظيفة ويجب تحديد وقت واقعي وليس أمنيات، في حال كان الوقت المتاح لك سنة أو أقل، إذن مجال تعلم الآلة ليس لك. ابحث في سوق العمل لديك عن المجالات المطلوبة والتي تطلب خبرة سنة أو أقل ثم قم بتعلم المهارات المطلوبة، تلك هي الطريقة الصحيحة لدخول سوق العمل، والبحث يتم على مواقع التوظيف مثل LinkedIn و indeed و Bayt.
  5. عليك أولاً إنشاء ملف Dart جديد في مشروعك وذلك الملف لعرض مجموعتي Firebase في جدول بيانات. ثم استيراد الحزم التالية في الملف: import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:data_table_2/data_table_2.dart'; الآن أنشيء نموذج بيانات لتمثيل البيانات في مجموعتي Firebase، فلو لديك مجموعتان "المستخدمون" و "المنتجات" ، فستحتاج إلى إنشاء نموذج بيانات لكل منهما. class User { String id; String name; String email; User({this.id, this.name, this.email}); factory User.fromFirestore(DocumentSnapshot snapshot) { return User( id: snapshot.id, name: snapshot['name'], email: snapshot['email'], ); } } class Product { String id; String name; double price; Product({this.id, this.name, this.price}); factory Product.fromFirestore(DocumentSnapshot snapshot) { return Product( id: snapshot.id, name: snapshot['name'], price: snapshot['price'], ); } } ثم استخدم FirebaseFirestore لجلب البيانات من مجموعتي "المستخدمون" و "المنتجات". final FirebaseFirestore firestore = FirebaseFirestore.instance; Stream<List<User>> getUsers() { return firestore .collection('users') .snapshots() .map((snapshot) => snapshot.docs.map((doc) => User.fromFirestore(doc))); } Stream<List<Product>> getProducts() { return firestore .collection('products') .snapshots() .map((snapshot) => snapshot.docs.map((doc) => Product.fromFirestore(doc))); } بعد ذلك استخدم DataTable2 لعرض البيانات في جدول بيانات. class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { List<User> users = []; List<Product> products = []; @override void initState() { super.initState(); getUsers().listen((event) { setState(() { users = event; }); }); getProducts().listen((event) { setState(() { products = event; }); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('عرض مجموعات Firebase في جدول بيانات'), ), body: SingleChildScrollView( child: Column( children: [ DataTable2( columns: [ DataColumn(label: Text('اسم المستخدم')), DataColumn(label: Text('البريد الإلكتروني')), ], rows: users .map((user) => DataRow(cells: [ DataCell(Text(user.name)), DataCell(Text(user.email)), ])) .toList(), ), DataTable2( columns: [ DataColumn(label: Text('اسم المنتج')), DataColumn(label: Text('السعر')), ], rows: products .map((product) => DataRow(cells: [ DataCell(Text(product.name)), DataCell(Text(product.price.toString())), ])) .toList(), ), ], ), ), ); } } وبإمكانك الإعتماد على فلاتر لتصفية البيانات في جدول البيانات، كإضافة فلتر لعرض المستخدمين من بلد معين. class MyHomePage extends StatefulWidget {
  6. ما تقصده هو تخطي الـ captcha، وذلك ممكن من خلال سكريبت بايثون أو جافاسكريبت للتعرف على الكابتشا ثم محاولة حلها لكن ذلك ليس أكيد 100%. ابحث على جيت هب عن captcha bypass أو captcha resolver وستجد مستودعات كثيرة، قم بتجربة البعض منها.
  7. هناك أمر هام وجب التنويه إليه وهو أنه يجب تشغيل موجه الأوامر كمسؤول (Administrator) لكي يعمل الأمر المذكور في النقاش هنا. وبإمكانك إلغاء عملية الإغلاق قبل انتهاء الوقت المحدد باستخدام الأمر: shutdown /a وهناك خيارات أخرى لأمر shutdown: shutdown /r: إعادة تشغيل الجهاز. shutdown /h: إيقاف تشغيل الجهاز. shutdown /l: تسجيل الخروج من حساب المستخدم الحالي. لكن الأفضل استخدام الأمر shutdown /s لإغلاق الجهاز، حيث أنه يُغلق جميع البرامج والخدمات بشكل آمن.
  8. خدمات تسجيل الدخول من خلال، signInWithGoogle، signInWithApple وحسابات جوجل جيميل وابل كلاود، مجانية بدون حدود أو قيود ولا يوجد عدد محدد لعدد المستخدمين خلال الشهر الواحد. وباستطاعتك الإعتماد على الخدمات مجانًا دون الحاجة إلى الانتقال إلى الباقة المدفوعة. بينما "Other Authentication services" تشير إلى خدمات تسجيل دخول أخرى غير مدعومة بشكل مباشر من Firebase، ومنها: تويتر فيسبوك GitHub https://firebase.google.com/docs/auth https://firebase.google.com/docs/auth/flutter/start
  9. أظن المقصود هو الجافاسكريبت؟ لفعل ما تريد عليك باستخدام كائن التاريخ في اللغة وهو Date: // الحصول على تاريخ الأمس const yesterday = new Date(Date.now() - 86400000); // 86400000 = 24 ساعة * 60 دقيقة * 60 ثانية * 1000 مللي ثانية // الحصول على التاريخ في شكل يوم شهر سنة console.log(yesterday.toLocaleDateString()); والفكرة كلها تتمحور في حذف يوم من التاريخ الحالي، ونقوم بتحذف قيمة يوم لكن بالثواني: 86400000 = 24 ساعة * 60 دقيقة * 60 ثانية * 1000 مللي ثانية
  10. الأمر راجع لإحتمالات مختلفة، فربما يكون اسم التطبيق طويلًا جدًا أو يحتوي على رموز خاصة أو كلمات غير متداولة، فمن الأفضل أن يكون اسم التطبيق قصير ووصفًا وسهل الفهم. أو وصف التطبيق غير كافي أو ليس ذا صلة بكلمات البحث التي يستخدمها المستخدمون، قم بوضع وصف التطبيق بشكل يحتوي بالكلمات الرئيسية ويوضح وظائف التطبيق وفوائده. وقد يكون تصنيف التطبيق مناسبًا لفئة التطبيق، فاختر تصنيف دقيق يعكس محتوى التطبيق ووظائفه. أو عدد تحميلات التطبيق كافيًا لجعله يظهر في نتائج البحث، لذلك حاول الترويج لتطبيقك من خلال قنوات مختلفة لجذب المزيد من المستخدمين. بالإضافة إلى أنّ فهرسة التطبيق بواسطة Google Play يستغرق بعض الوقت بعد نشره، فانتظر بعض الوقت.
  11. لا علاقة لـ Next.js بإطار Electrone.js، فالأخير منفصل بذاته ومتخصص في أمر مختلف وهو تطبيقات سطح المكتب. وتستطيع استخدام electrone.js و express.js معًا بدون مشكلة. أما Next.js فهو لتطبيقات الويب ويتضمن بداخله الأدوات اللازمة لإنشاء الواجهة الأمامية والخلفية في نفس مجلد المشروع. لكن في المشاريع المعقدة نستخدم واجهة خلفية منفصلة بجانب Next.js.
  12. هل قمت بإختيار نوع المشروع مثل React، فعند تنفيذ أمر الإنشاء npm create vite@latest سيطلب منك إختيار نوع المشروع عامًة قمت بإنشاء مشروع react لك وهو يعمل بشكل سليم. إن استمرت المشكلة، من الأفضل استخدام إصدار 18.17 من node.js من خلال الرابط التالي: https://nodejs.org/dist/v18.17.0/node-v18.17.0-x64.msi vite-project.rar
  13. أنت حاليًا تعلمت الأساسيات وهي HTML, CSS, JS مع مكتبة بوتستراب و jQuery، وهي كافية للعمل على مشاريع تتطلب صفحات ثابتة static وليس مشاريع معقدة نسبيًا، أي مشاريع بسيطة. فمثلاً لا يتم بناء متجر إلكتروني من خلال HTML, CSS بل يتم الإعتماد على مكتبة للواجهة الأمامية مثل React أو إطار مثل Vue.js و Angular. وستجد تفصيل ذكرته هنا من قبل:
  14. بما أن التطبيق يركز على عملية التوصيل فقط دون عرض السلع، فسأقوم بتركيز المخططات على الوظائف المتعلقة بعملية التوصيل. 1. مخطط حالة الاستخدام: يوضح الجهات الفاعلة الرئيسية في التطبيق ووظائفها. الجهات الفاعلة: العميل: يطلب خدمة التوصيل ويتتبع الطلب. السائق: يتسلم الطلبات ويقوم بتوصيلها. المطعم: يُعد الطلبات ويُسلمها للسائق. نظام التوصيل: يُدير الطلبات ويُرسل الإشعارات. وظائف: طلب التوصيل: يقوم العميل بطلب خدمة التوصيل من المطعم. تأكيد الطلب: يُرسل نظام التوصيل تأكيدًا للطلب للعميل والمطعم. تجهيز الطلب: يُعد المطعم الطلب ويُسلمه للسائق. تتبع الطلب: يُمكن للعميل تتبع حالة الطلب. تسليم الطلب: يُوصل السائق الطلب للعميل. إتمام الطلب: يُغلق نظام التوصيل الطلب. [مخطط حالة استخدام تطبيق التوصيل] 2. مخطط تسلسل التفاعلات: يوضح تسلسل الخطوات في عملية التوصيل. الخطوات: يُرسل العميل طلبًا لخدمة التوصيل. يُرسل نظام التوصيل تأكيدًا للطلب للعميل والمطعم. يُعد المطعم الطلب ويُسلمه للسائق. يُرسل نظام التوصيل إشعارًا للعميل ببدء توصيل الطلب. يُوصل السائق الطلب للعميل. يُؤكد العميل استلام الطلب. يُغلق نظام التوصيل الطلب. [مخطط تسلسل تفاعلات تطبيق التوصيل] 3. مخطط الفئات: يوضح الفئات الرئيسية في التطبيق وخصائصها وعلاقاتها. الفئات: العميل: اسم، عنوان، رقم هاتف، ... السائق: اسم، رقم هاتف، موقع، ... المطعم: اسم، عنوان، نوع الطعام، ... الطلب: رقم الطلب، تاريخ الطلب، حالة الطلب، ... نظام التوصيل: ... ولاحظ أن تلك مجرد أمثلة لمخططات UML لتطبيق التوصيل، وتسطيع تعديل المخططات لتُناسب ما تحتاجه. وهناك أدوات لإنشاء مخططات UML مثل Miro و app.diagrams.net وMicrosoft Visio.
  15. أبسط وأسهل شيء يمكنك فعله هو تقليل الضوء الأزرق في أوقات الليل بدءًا من الساعة 7 مساءًا وحتى الساعة 7 صباحًا. ويوجد في الويندوز تلك الميزة ستجدها باسم night light هنا: ومن المفترض أيضًا إراحة العينين كل ساعة بالإبتعاد عن الحاسوب والتمشية قليلاً في أرجاء الغرفة مثلاً لخمس دقائق والنظر لأبعد نقط في أرجاء الغرفة لإراحة عضلة العين. لكن لنتحدث بواقعة الأمر صعب على الكثير، لذا أقل الإيمان وضع تنبيه على هاتفك أو الحاسوب بالنظر بعيدًا عن الشاشة لمدة بسيطة كما ذكرت. أيضًا الجفاف أمر شائع وخطير، من الأفضل وضع قطرة للعينين لترطيب العينين إن كنت تجلس أكثر من 8 ساعات يوميًا. والأهم من ذلك كله، هو طريقة جلوسك على الكرسي، فصحة عمودك الفقري ورقبتك أمر لا يجب التهاون به، فنتيجة التهاون صعبة جدًا ومكلفة صحيًا. وفي رأي لا غنى عن ممارسة الرياضة لأي شخص يجلس على الكمبيوتر لأداء عمله، لكن أقل الإيمان يمكن التمشية يوميًا لمدة ربع ساعة مثلاً.
  16. ليس نفس الأمر في 0 و 1 فقط، بل يتمثل في 256 قيمة مختلفة، حيث يتكون البايت من 8 بت، ولكل بت قيمتان: 0 أو 1. أي نستطيع تمثيل تلك القيم الثماني على شكل ثنائي: 00000000 00000001 00000010 11111111 أو تحويل القيم الثنائية إلى أرقام عشرية من 0 إلى 255. 00000000 = 0 (عشري) 00000001 = 1 (عشري) 00000010 = 2 (عشري) 11111111 = 255 (عشري) بالتالي، بإمكان البايت تمثيل مجموعة واسعة من البيانات، مثل الحروف، الأرقام، الرموز، الصور ومقاطع الفيديو. فالحرف "A" يتم تمثيله بالرمز الثنائي 01000001، أي 65 (عشري) في نظام ASCII.
  17. بعد دراسة الأساسيات، من المفترض أن تكون قد استوعبتها بشكل جيد ومتفهم لما تم شرحه وليس مجرد أنك شاهدته فقط، وفي البرمجة المشاهدة بدون التطبيق العلمي يعني أن لم تتعلم شيء للأسف، فعند التطبيق العملي ستجد أنك لست قادر على ذلك، لذا هل تشعر بأريحية عند التطبيق بمفردك؟ أيضًا هل تشعر بأنك مستوعب لكيفية استخدام ما قمت بتعلمه في المكان المناسب، أي وظيفة كل دالة مثلاً ولماذا نستخدمها وهكذا، أو ما الفائدة من مفهوم برمجي معين. هل قمت بتنفيذ نماذج بسيطة ثم تنفيذ مشاريع كاملة؟ بعد الشعور بأريحية فيما سبق تستطيع الإنتقال للمستوى التالي.
  18. التسعير صعب في البداية بالفعل على الجميع، وهناك آراء كثيرة مختلفة حوله ولكل شخص ظروفه والمستويات مختلفة، والموضوع يتوقف على معرض الأعمال لديك ومستوى جودته والخبرة التي تمتلكها وهل ستقوم أنت بالتصميم والبرمجة أم البرمجة فقط، أيضًا بلد العميل وقوة العملة لديه. بشكل بسيط، في المتوسط يمكنك تحديد سعر تطوير صفحة واحدة بالموقع بسعر 50 دولار لكن في حال كانت صفحة كانت ليست معقدة وبها الكثير من المكونات فالسعر يرتفع بالطبع إن كانت كذلك. وهناك طريقة أفضل وهي تحديد سعر ساعة العمل الخاصة بك، ثم ضرب عدد ساعات العمل المتوقعة للمشروع في سعر الخاصة بك ولتكن مثلاً 10 دولار كمثال ليس أكثر فساعات العمل تتراوح ما بين 10 إلى 50 دولار حسب الخبرة ومستوى الجودة. لكن مشكلة سعر الساعة هو أنه في البداية لن يكون لديك دراية بالمدة المناسبة للمشروع حيث ستتمكن من معرفة ذلك لاحقًا بعد تنفيذ مشاريع واكتساب خبرة، لذا تفقد الأسعار للمبرمجين الذي يعملون بنفس التقنيات الخاصة بك على مواقع العمل الحر من حيث سعر الساعة، ثم ضع احسب متوسط السعر وضع سعر ساعة منخفض قليلاً عن المتوسط في البداية وقدم جودة عمل جيدة أعلى من المطلوب في حال كان ذلك أول مشروع لك. وستجد تفصيل أكثر بخصوص التسعير هنا طرحته من قبل: https://io.hsoub.com/programming/103606-أيها-المبرمج-كيف-تسعر-أعمالك
  19. أرجو توضيح السؤال، ما المقصود بالمستوى التالي؟
  20. بالطبع، فهي تُستخدم في العديد من مجالات الذكاء الاصطناعي، وكأمثلة: معالجة اللغة الطبيعية (NLP)، مثل تحديد المكونات المترابطة في النص، مثل الجمل والعبارات، والكيانات المسمّاة في النص، مثل الأشخاص والأماكن والمنظمات. أيضًا الرؤية الحاسوبية كتقسيم الصورة إلى مناطق مترابطة وتحديد الكائنات في الصورة، ومعالجة البيانات لاستخراج البيانات من مصادر مختلفة وتنظيفها من الأخطاء والتناقضات. وغيرهم من المجالات.
  21. اضغطي على Ctrl + Shift + P ولكن اضغطي على زر CTRL الأيمن وليس الأيسر، ثم ابحثي عن Terminal:Clear واضغطي علي ذلك الخيار ثم أعيدي تشغيل vscode. إن استمرت المشكلة، من الأفضل تحميل تطبيق الـ terminal التالي في الويندوز: https://apps.microsoft.com/detail/9n0dx20hk701?rtc=1&hl=en-eg&gl=EG ثم أعيدي تشغيل vscode وحاولي تشغيل التيرمنال، إن استمرت المشكلة اضغطي على Ctrl + Shift + P ثم ابحثي عن select default terminal واضغي عليه ثم اختاري powershell. إن استمرت المشكلة من الأفضل حذف vscode ثم تثبيته من خلال الرابط التالي: https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user
  22. الأمر بسيط من خلال CSS عليك عمل inspect للعنصر ثم تفقد ما هو اسم الـ class أو الـ id الخاص به ثم استهدافه في css وتطبيق التنسيقات التي تريدها، ولا تنسى استخدام !important من أجل فرض تطبيق التنسيق وإعطاء أولوية لتنسيقاتك وليس تنسيقات المكتبة.
  23. الأمر بسيط لا تقلق، انت بحاجة فقط إلى دراسة أساسيات HTML و CSS و جافاسكريبت، وذلك متاح في المسار الأول من دورة تطوير واجهات المستخدم، فالمسار الأول من جميع الدورات متاح لك بشكل مجاني، وأهم نقطة هو عنصر النموذج form فمن خلاله نقوم بتضمين الحقول لملء البيانات من قبل المستخدم ثم إرسالها ومعالجتها من قبل جافاسكريبت. وفي دورة علوم الحاسوب تم شرح التعامل مع قواعد البيانات بواسطة Node.js في مسار قواعد البيانات حيث استخدمنا SQLite. ويمكنك تعلم أساسيات بايثون في المسار الأول لدورة بايثون ونفس الأمر بالنسبة لدورة جافاسكريبت. ما هي قاعدة البيانات التي ستستخدمها لمساعدتك، في حال كان المشروع بسيط استخدم SQLite كما تم التوضيح بالدورة.
  24. عبارة مجموعة من الخوارزميات المستخدمة في نظرية الرسم البياني لحلّ مشكلتين رئيسيتين. الأولى هي إيجاد المكونات المتصلة بقوة (SCC)، وذلك لتحديد جميع المجموعات الفرعية من العقد في الرسم البياني الموجه بحيث يكون هناك مسار من أي عقدة إلى أي عقدة أخرى داخل المجموعة، وتُعرف تلك المجموعات باسم "المكونات المتصلة بقوة". الثانية إيجاد أدنى مسار موجه (DAG) من أي عقدة إلى أي عقدة أخرى في الرسم البياني الموجه. وتُستخدم خوارزميات Tarjans في العديد من التطبيقات العملية، بما في ذلك: تحديد المجموعات الفرعية من الأشخاص الذين يتفاعلون مع بعضهم البعض بشكل متكرر في شبكة اجتماعية. التحقق من صحة تصميمات الدوائر الإلكترونية. تحديد المكونات المترابطة في الكود البرمجي. تحديد مجموعات البيانات المترابطة في مجموعة بيانات كبيرة. أي نستخدمها لحلّ العديد من المشكلات المختلفة في نظرية الرسم البياني، لكنها غير مستقرة في بعض الحالات، مما يعني أن نتائجها قد تتغير اعتمادًا على ترتيب معالجة العقد، أيضًا صعبة الفهم، خاصة للمبتدئين.
  25. تستطيع تعديل حجم صندوق الرسالة من خلال إضافة السطر التالي داخل دالة confirmDelete: Swal.fire({ ... width: 600, height: 200, ... }); وتعديل القيم كما تريد.. أو من خلال CSS كالتالي: .swal2-modal { width: 600px !important; height: 200px !important; } أيضًا هناك عض الخيارات الإضافية لتعديل شكل صندوق الرسالة: padding: للتحكم في المسافة بين محتوى صندوق الرسالة وحدوده. margin: للتحكم في المسافة بين صندوق الرسالة وباقي العناصر على الصفحة. background-color: لتغيير لون خلفية صندوق الرسالة. border-radius: لتغيير شكل زوايا صندوق الرسالة.
×
×
  • أضف...