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

Mustafa Suleiman

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

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

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

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

    365

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

  1. ستحتاج إلى دراسة دورة تطوير التطبيقات باستخدام JavaScript لأنك ستتمكن من تعلم لغة جافاسكريبت ومن خلالها تستطيع تطوير الواجهة الأمامية والخلفية وبناء تطبيق لسطح المكتب، وبناء تطبيقات للهواتف أيضًا تعمل على منصتي أندرويد و iOS وذلك من خلال إطار React Native. وستتعلم بها ما يلي: الأسس البرمجية السليمة للغة JavaScript الإضافات الحديثة في نسخة ES6 من اللغة تطوير تطبيقات الخادم باستخدام بيئة Node.js أساسيات مكتبة React.js وبناء تطبيق ملاحظات باستخدامها أساسيات مكتبة React Native و Expo تطوير تطبيق جوال للوصل بين الأطباء والمرضى بالاعتماد على React Native التعرف على التطبيقات التي تتطلب اتصالًا مستمرًا بين المتصفح والخادم بناء تطبيق محادثة يشبه تطبيق WhatsApp إنشاء تطبيق أسئلة وأجوبة ونقاشات مع تصيير من جهة الخادم Server-side Rendering عبر إطار العمل Next.js بناء واجهات أمامية باستخدام React.js مع مكتبة Material-UI إنشاء تطبيقات سطح مكتب باستخدام JavaScript باستخدام إطار العمل Electron.js بناء تطبيق جوال لشبكة تواصل اجتماعي باستخدام إطار العمل Ionic ومكتبة React.js لذا تستطيع دراسة جافاسكريبت ثم دراسة مسار React Native فقط إذا كنت تريد تطوير التطبيقات للهواتف فقط.
  2. في الوقت الحالي أصبح لا يمكن تخطي الأساسيات، وعليك التركيز عليها بشدة، لذا يجب التأسيس بشكل جيد وعدم تخطيها للإنتقال إلى التقنيات (المكتبات والإطارات) أقصد دراسة علوم الحاسوب واللغة البرمجية التي ستختارها بشكل مُعمق وليس التقنيات المبنية عليها. فحاليًا يجب أن تكون متميز ولديك فهم عميق للأساسيات وليس نسخة من شخص آخر موجود في سوق العمل، فمن لديهم تلك الدراية قليلون، لأن الأمر ليس سهل ويحتاج إلى صبر ومجهود. ستحتاج إلى الممارسة العملية بشكل مُكثف وليس الدراسة النظرية فقط. لذا دورة علوم الحاسوب ستؤهلك لدخول مجال البرمجة ثم بعدها تستطيع تحديد المجال الذي تريد التخصص به، وذلك بناءًا على المطلوب في سوق العمل الذي تريد العمل به.
  3. لست بحاجة إلى التلخيص فالمستندات موجودة وجوجل موجود لديك، المهم هو الاستيعاب والحفظ في البداية ولا أقصد حفظ الأكواد كما هي بل حفظ ما الدالة المسؤولة عن ذلك وهكذا، وستنسى بعض الأمور لا مشكلة طالما أنك قمت باستيعابها والتطبيق عليها فتستطيع البحث عنها واستخدامها مباشرًة، ومع الوقت ستترسخ لديك الأمور التي تستخدمها بكثرة. بعد كل درس نقوم بالتطبيق والمهم هو التطبيق العملي بمفردك ولا يكفي التطبيق مع الشرح، فعند التطبيق بمفردك تجبر نفسك على التركيز وتسترجع ما قمت باستيعابه لتنفيذه عمليًا، هناك أمور أخرى وبشكل مُفصل ذكرتها هنا السابق كان تلخيص بسيط:
  4. من خلال Import and Export Wizard، في الويندوز ابحث عن SQL Server Import and Export Wizard: بعد ذلك عليك تحديد مصدر البيانات أي السيرفر ثم إختيار قاعدة البيانات: ثم اضغط على next وقم بتحديد نوع البيانات الخاص بها. الآن تأتي خطوة تحديد التصدير من خلال تحديد نوع البيانات التي تريد التصدير إليها:
  5. تتوفر معادلات مختلفة لتحقيق الترقيم التلقائي، وواحدة من أبسط الطرق هي الدالة ROW أو الدالة SEQUENCE. وللترقيم التلقائي في عمود معين، نستخدم الدالة ROW، أولاً انتقل إلى الخلية التي تريد أن تبدأ فيها الترقيم ثم أدخل الصيغة التالية: =ROW() - n حيث n هو الرقم الذي يقلل من رقم الصف الحالي ليبدأ الترقيم من الرقم الذي تريده، أي لو ترغب في أن يبدأ الترقيم من 1 في الصف الأول، نكتب: =ROW() - 1 والطريقة الأخرى هي بواسطة الدالة SEQUENCE المتاحة في إصدارات Excel الحديثة (Excel 365 وExcel 2019)، ونفس الأمر انتقل إلى الخلية التي تريد أن تبدأ فيها الترقيم وأدخل الصيغة التالية: =SEQUENCE(rows, [columns], [start], [step]) مع استبدال rows بعدد الصفوف التي تريد أن تملأها بالأرقام. و [columns] بعدد الأعمدة (تستطيع تخطي ذلك الجزء لو تريد عمود واحد فقط). [start] هو الرقم الذي تريد أن تبدأ به (أيضًأ تخطيه في حال ترغب في أن تبدأ من 1). [step] هو الفرق بين كل رقم والذي يليه (متاخ تخطي هذا الجزء إذا كنت تريد زيادة الأرقام بواحد). بمعنى، لإنشاء قائمة أرقام تبدأ من 1 وتزيد بمقدار 1 في عمود واحد من الصف 1 إلى الصف 10، نكتب: =SEQUENCE(10, 1, 1, 1)
  6. حاليًأ أصبحت نسخة VMware Workstation Pro for PC الكاملة مجانية، لذا عليك تحميلها من خلال الرابط التالي: https://download3.vmware.com/software/WKST-1751-WIN/VMware-workstation-full-17.5.1-23298084.exe وسيتم حل المشكلة من خلالها. إن لم يعمل معك الرابط السابق استخدم التالي: https://onedrive1.dennisyau.asia/?/Softwares/VMware-workstation-full-17.5.1-23298084.exe
  7. يبدوا أنك لم تقم بتثبيت بايثون بشكل صحيح، حيث لا يظهر رقم إصدار بايثون لديك عند تنفيذ python - v لذا عند التثبيت عليك تحديد Add tho path كالتالي: ستجد تفصيل هنا ورابط التحميل:
  8. في حال كان لديك إضافة adblock فغالبًا ذلك سبب المشكلة، استخدم uBlock Origin فتلك الإضافة لا تسبب مشكلة. إن استمرت أرجو تجربة تحميل وتثبيت Cloudflare WARP فهو بمثابة طبقة وسيطة مثل الـ VPN من خلال شبكة Cloudflare وبعد التثبيت قم بتشغيل التطبيق بالضغط على زر الإتصال مباشرًة وتفقد الدروس مرة أخرى. https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release وذلك لتفقد هل يوجد مشكلة بالإنترنت أم لا.
  9. هناك عدّة مدارس بخصوص ذلك، لكن في رأي الأمر يعتمد على الخلفية الخاصة بك إن كان لديك احتكاك بالحاسوب بشكل مكثف أي لست مستخدم عادي ولديك معرفة تقنية تستطيع البدء بتعلم لغة صعبة مثل C++ وجافا و C# لكن إن كنت مستخدم عادي وليس لديك دراية بالتقنية أو علوم الحاسوب، فهنا تبدأ بلغة حديثة وسهلة مثل و بايثون ولا تبدأ أبدًا بلغة جافاسكريبت. والأسهل هي لغة بايثون إن كنت تواجهة صعوبة في جافا و C#. لكن إن لم يكن لديك وقت وتريد البدء في التعلم للحصول على وظيفة فقم بإختيار المجال بالنسبة للمطلوب في سوق العمل لديك ثم تعلم اللغة المطلوبة مباشرًة وركز على الأساسيات قد الإمكان وتعلم البرمجة نفسها أولاً وليس التقنيات مثل المكتبات والإطارات.
  10. يجب تحديد إتجاهك وتحديد التخصص الذي تريده، فمجال تعلم الآلة واسع جدًا والسير به بدون تخطيط وخطوات واضحة أمر لا أنصحك به. وإليك خطة طريق roadmap واضحة: https://roadmap.sh/ai-data-scientist في حال أردت تخطي بعض الأمور في البداية ثم العودة للرياضيات والإحصاء مثلاً فيما بعد، فيمكنك البدء بـ: تعلم أساسيات علوم الحاسوب أساسيات بايثون أساسيات SQL الخوارزميات وهياكل البيانات GIT مكتبة Pandas و numpy و matplotlib و seaborn ثم العودة لخارطة الطريق السابقة.
  11. من خلال تسجيل النتيجة في ملف لوج، وذلك باستخدام حزمة logging: import logging logging.basicConfig(filename='recaptcha_verification.log', level=logging.DEBUG) r = requests.post('https://www.google.com/recaptcha/api/siteverify', data=data) result = r.json() logging.debug('Response: %s', result) وستجد ملف باسم recaptcha_verification.log في مجلد المشروع يحوي النتيجة. وفي حال كان لديك وصول إلى ssh في الاستضافة فتستطيع استخدام print لطباعة النتيجة ورؤية ذلك في التيرمنال.
  12. ما تريده يمكن تنفيذه من خلال CSS فقط، بحيث إذا زاد النص عن حجم العنصر الأب له يتم عرض نقاط ellipsis. والأمر يتم من خلال خاصية text-overflow ووضع قيمة ellipsis لها، ثم استخدام خاصية white-space بقيمة nowrap لمنع نزول النص إلى سطر جديد عند عدم وجود مساحة. أيضًا خاصية overflow بقيمة hidden لإخفاء النص الزائد عن مساحة العنصر الأب. كالتالي: <style> div.b { white-space: nowrap; width: 50px; overflow: hidden; text-overflow: ellipsis; border: 1px solid #000000; } </style> <h2>text-overflow: ellipsis:</h2> <div class="b">Hello world!</div>
  13. نستخدمه مع كائنات DOM (Document Object Model). أي نستدعيه على عنصر (Element) ويبحث في سلسلة الأسلاف (ancestor chain) لهذا العنصر حتى يجد أقرب عنصر (element) يطابق محدد الـ CSS (CSS selector) المعطى، وإن لم يجد أي عنصر يطابق المحدد، فإنه يُرجع null. مثلاً لو تريد التعامل مع حدث النقر على عنصر li، فتستطيع استخدام closest('ul') للعثور على قائمة ul التي يحتوي عليها العنصر li. const listItem = document.querySelector('li'); const list = listItem.closest('ul'); console.log(list); بنفس المفهوم أيضًأ نستخدم closest('section') لتغيير لون الخلفية لجميع العناصر داخل قسم معين.
  14. إذًا تلك طبيعة النظام الخاص بالهاتف، فلكل شركة واجهة خاصة بها مبنية على نظام أندرويد، لكن ما المشكلة في ترك الأسماء كما هي؟
  15. تلك المشكلة شائعة ويجب عليك فهمها فهي خاصة بأمر هام وهو CORS. وتحدث مشكلة الـ CORS (Cross-Origin Resource Sharing) عندما يحاول تطبيق ويب الوصول إلى موارد من نطاق مختلف (أو بروتوكول أو منفذ مختلف) بدون التصريح المناسب. أي الإتصال من http://localhost:3000 في الواجهة الأمامية على http://127.0.0.1:4000 مثلاً في الواجهة الخلفية، لاحظ هنا منفذين مختلفين، بالتالي يرسل المتصفح طلبًا مسبقًا إلى الخادم للتحقق مما إذا كان مسموحًا للعميل بالوصول إلى المورد (السيرفر). ويتضمن الطلب رأسًا خاصًا يسمى Origin، والذي يحتوي على عنوان URL لموقع الويب العميل. ثم يستجيب الخادم برأس Access-Control-Allow-Origin، والذي يحدد مواقع الويب التي يُسمح لها بالوصول إلى المورد. أي CORS هو مصطلح وببساطة، هو آلية أمان في متصفحات الويب تتحكم في كيفية تفاعل مواقع الويب المختلفة مع بعضها البعض. ما الفائدة منها؟ ببساطة تمنع CORS المواقع الضارة من سرقة البيانات من المواقع الأخرى وتجعل من الصعب على المتسللين اختراق المواقع الإلكترونية، وتُتيح للتطبيقات الويب التفاعل مع بعضها البعض، حتى لو كانت تستضيفها مواقع ويب مختلفة. لذا في الخادم علينا إضافة الرؤوس (headers) المطلوبة في ملفات PHP للسماح بالوصول من نطاق محدد: <?php header("Access-Control-Allow-Origin: http://localhost:3000"); header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS"); header("Access-Control-Allow-Headers: Content-Type, Authorization"); ?> عليك وضع الكود السابق في بداية كل ملف تريد الوصول إليه وتعديل منفذ الواجهة الأمامية 3000 بما لديك أنت. أو إنشاء ملف منفصل وكتابة به ما سبق وليكن باسم cors.php ثم استيراده <?php include 'path/to/config.php'; // تابع بقية الكود ?> أو تضمينه في أي ملف موجد في جميع الملفات الديك مثل config.php أو init.php. لكن الطريقة الأفضل وضع التالي في ملف .htaccess: <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "http://localhost:3000" Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" Header set Access-Control-Allow-Headers "Content-Type, Authorization" </IfModule>
  16. ربما تلك آلية في التطبيق نفسه عند إرسال الملفات أي يتم برمجيًا، لذا قم بتجربة تطبيق آخر، وأنصحك باستخدام snapdrop ويجب أن يكون الجهازين على نفس الشبكة، أو يمكنك إنشاء hotspot لكي يتصل الهاتف الآخر بها ثم يمكنك الإرسال. https://snapdrop.net/
  17. أرجو الضغط على عرض تفاصيل ثم توضيح ما المشكلة بالحساب، فهناك مشكلة بالدفع، هل المقصود الدفع لتفعيل الحساب؟ ستحتاج إلى وسيلة دفع من نوع Credit card أو Debit card إن كانت غير متوفرة ستحتاج إلى وسيط مالي للدفع لك وتفعيل الحساب.
  18. السؤال غير واضح أرجو توضيحه ما المشكلة التي تواجهها، فحاليًا المشكلة في تفعيل حسابك على Google play console؟
  19. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس وذلك لمساعدتك بشكل أفضل.
  20. لا يعني أن 408 كيلوبايت من البيانات غير مفيدة، بل كافية لأغراض معينة، مثل التعلم تحت الإشراف مع مجموعات بيانات صغيرة، أو نقل التعلم (transfer learning) حيث يتم استخدام نموذج مدرب مسبقًا على بيانات كبيرة ويتم تحسينه باستخدام البيانات الصغيرة المتاحة لديك.
  21. الدالة read_csv في pandas هي لقراءة ملف CSV وتحويله مباشرة إلى DataFrame، وهو نوع بيانات غني يُستخدم في التحليل والاستكشاف البياني. بينما open هي دالة عامة في Python لفتح الملفات من أي نوع (نصي، ثنائي، ...)، أي read_csv هي دالة متخصصة في Pandas لقراءة ملفات CSV وتحويلها إلى DataFrame. و open تُرجع كائن ملف file object، بينما read_csv تُرجع DataFrame جاهز للتحليل. وبالنسبة لـ open تحتاج إلى معالجة البيانات يدويًا (مثل تقسيم الأسطر، تحويل النص إلى أرقام، ...) أي تستطيع استخدامها مع أي نوع من الملفات، ولكنها تتطلب المزيد من العمل لمعالجة البيانات. بينما read_csv تعود بـ DataFrame، وهو هيكل بيانات جدولي في Pandas، جاهز للتحليل، وتتعامل مع العديد من التفاصيل تلقائيًا، مثل فصل الأعمدة بناءً على الفاصلة أو محدد آخر، تحويل أنواع البيانات (أرقام، نصوص، تواريخ، ...)، التعامل مع العناوين والتعامل مع القيم المفقودة، بالتالي هي مخصصة لملفات CSV، وتوفر العديد من الخيارات للتحكم في عملية القراءة.
  22. 408KB يُعتَبر صغيرًا جدًا أي نصف ميجابايت، أي كمية صغيرة من البيانات ويمكن تحميلها ومعالجتها بسرعة كبيرة، حتى باستخدام الحواسيب العادية. للتوضيح 1 ميجابايت MB يساوي 1000 كيلوبايت KB. و 1 جيجابايت GB تساوي 1000 ميجابايت MB. لكن ذلك لا يعني أن 408 كيلوبايت من البيانات غير مفيدة، بل كافية لأغراض معينة، مثل التعلم تحت الإشراف مع مجموعات بيانات صغيرة، أو نقل التعلم (transfer learning) حيث يتم استخدام نموذج مدرب مسبقًا على بيانات كبيرة ويتم تحسينه باستخدام البيانات الصغيرة المتاحة لديك. بالنسبة لتحديثات البيانات، فذلك يعتمد على مصدر البيانات وما إذا كان يتم تحديثها بانتظام، فبعض مجموعات البيانات على Kaggle تُحدث بانتظام، بينما البعض الآخر يكون ثابتًا ولا يتغير، وباستطاعتك التحقق من تاريخ آخر تحديث في صفحة مجموعة البيانات على Kaggle لمعرفة ما إذا كانت هناك تحديثات دورية أم لا. ومن الجيد دائمًا أن تكون على علم بالتحديثات والمستجدات في مجالك، سواء كان ذلك في البيانات التي تستخدمها أو في الأدوات والتقنيات التي تطبقها وذلك يساعدك على ضمان أن تحليلك يعتمد على أحدث وأدق البيانات المتاحة. لكن لا تنجرف وراء ذلك، تلك خطوة متقدمة، ركز حاليًا على تعلم الأساسيات والتطبيق عليها ثم المكتبات وإطارات العمل اللازمة والتطبيق عليها أيضًا، وبعض فترة تستطيع متابعة الجديد. وليس من الضروري أن تكون لديك خبرة طبية متعمقة في أمراض القلب لفهم وتحليل البيانات المتعلقة بها، ولكن وجود خلفية بسيطة مفيد بالطبع، فلو قمت ببحث بسيط وقرأت عنها لتفهم المصطلحات الأساسية والمفاهيم الطبية المتعلقة بأمراض القلب، سيكون من الأسهل عليك تفسير البيانات واستخلاص الاستنتاجات الصحيحة، وتستطيع دائمًا الاستعانة بمصادر طبية لفهم الأمر ما أمكن ذلك.
  23. رمز أو مُشغل operator النجمة في لغات البرمجة يعني عملية الضرب، وفي الكود المقصود إجراء عملية ضراء السعر price في النسبة ratio. للتوضيح: print(2*3) سيكون الناتج 6.
  24. iterable و text هما معاملات Parameters في الدالة finder، حيث يتم تمرير قيم مُعرفات أو وسائط Arguments لهم عند استدعاء الدالة. وiterable هو القائمة words التي تحتوي القائمة على العناصر (السلاسل) التالية: "python", "php", "java", "ruby". عند تمرير words إلى دالة finder، يتم تكرار كل عنصر (سلسلة) في القائمة للتحقق من بدءه بالنص المحدد. والنص المحدد نمرره من خلال معامل text حيث نمرر "p" إلى دالة finder واستخدام النص (الحرف) كمعيار لتصفية العناصر في iterable (القائمة). return True: إذا بدأ العنصر بـ "p"، فهذا يرجع True. return False: إذا لم يبدأ العنصر بـ "p"، فهذا يرجع False.
  25. المشكلة هو أنه لا يوجد جدول باسم "properties" في قاعدة البيانات "aqarjrla_db". هل حدث الخطأ بينما كان المشروع يعمل بشكل سليم؟ أي لم تقم بأية تعديلات؟ إن كنت تقوم برفع المشروع بنفسك، فعليك تنفيذ أم التهجير لإنشاء الجداول في قاعدة البيانات، وستجد تفصيل هنا:
×
×
  • أضف...