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

Mustafa Suleiman

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

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

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

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

    403

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

  1. عليك توفير صورة للمشكلة لديك لمساعدتك بشكل أفضل، ولمعرفة صلاحيات المستخدم الحالي أي صلاحيات حسابك الذي قمت بتسجيل الدخول منه لحاسوبك أرجو تنفيذ الأمر التالي في منفذ الأوامر: netplwiz في حال وجدت administrator بجانب اسم حسابك فذلك يعني أنّ لديك صلاحيات المسؤول اللازمة لحذف المجلد، ويتبقى تنفيذ ما جاء بالتعليقات سابقًا.
  2. ما تبحث عنه هو تحديات الـ Problem solving يوجد الكثير من المنصات التي توفر ذلك أشهرها LeetCode وcodewars وHacker Rank وأيضًا يوقع موقع CodeChef بالإضافة إلى CodinGame. لو أردت منصة عربية فيوجد coderhub فقط. أنصحك بالبدء من خلال codewars أو Hacker Rank ثم عندما تقرر أنك تريد التقدم لوظيفة، عليك بالإنتقال إلى موقع LeetCode حيث يتم إختبارك من الأسئلة المتواجدة عليه غالبًا. لكن يجب أولاً الوصول لمستوى جيد في اللغة البرمجية الأولى لك قبل حل المسائل البرمجية، أي القيام بمشروع واحد كامل على الأقل. في حال واجهتك مشكلة أو صعوبة تستطيع السؤال.
  3. مجالين مختلفين وكلاهما يتطلبان مجهود ذهني بطبيعة الحال وللعلم الأمر مختلف عن Project Management أيضًا. حيث إدارة المشاريع Project Management هي مثل إدارة عملية بناء المنزل نفسها، فهو يركز على إنجاز بناء المنزل في الوقت المحدد، وضمن الميزانية المتفق عليها، وبجودة جيدة، ووضع خطة البناء، وتحديد المهام (مثل صب الأساسات، وبناء الجدران، والتشطيب)، وتوزيع المهام على العمال، ومتابعة تقدم العمل، وحل المشاكل التي تظهر أثناء البناء. أي الهدف هو إكمال بناء المنزل بنجاح وتسليمه في الموعد المحدد، وعملية البناء لها بداية ونهاية محددة. بينما إدارة المنتجات Product Management هي مثل التفكير في المنزل نفسه، وكيف سيكون مفيدًا ومناسبًا للناس الذين سيعيشون فيه، بالتالي هو يعمل على فهم احتياجات الناس الذين سيستخدمون المنزل (العملاء)، والتأكد من أن المنزل يلبي هذه الاحتياجات ويقدم لهم قيمة. وتحديد نوع المنزل المناسب (شقة، فيلا، منزل ريفي)، وتحديد عدد الغرف، والتصميم الداخلي، والميزات التي ستجعل المنزل مريحًا وجذابًا، ومتابعة آراء السكان بعد السكن فيه، وإجراء تحسينات إذا لزم الأمر. إذن الهدف هو التأكد من أن المنزل ناجح ومفيد للناس على المدى الطويل، وتلك العملية مستمرة أي التفكير في المنتج وتحسينه مستمرة طوال حياة المنتج (المنزل مثلاً). للتوضيح لو لدينا مشروع تطوير تطبيق جوال جديد، فإدارة المشروع هي إدارة عملية تطوير التطبيق، من كتابة الكود إلى إطلاقه في المتاجر، أي التركيز على التنفيذ، ولها بداية ونهاية محددة. بينما إدارة المنتج هي تحديد فكرة التطبيق، وميزاته، والجمهور المستهدف، وكيف سيحقق التطبيق النجاح على المدى الطويل، لاحظ التركيز على المنتج نفسه، وتطويره المستمر، وليس لها نهاية محددة وتبدأ قبل عملية إدارة المشروع. وكما لاحظت في حال تستمتع بالتفكير الاستراتيجي والتجاري، ولديك مهارات تحليلية وتواصل قوية، فربما تكون إدارة المنتج مهنة مناسبة لك، أما لة تستمتع بحل المشكلات التقنية المعقدة، ولديك مهارات تقنية قوية، فالبرمجة هو المجال المناسب. تفقد roadmap لمجال Product Manager والمهارات المطلوبة لتعرف هل هو مناسب لك أم لا بشكل مبدأي.
  4. لم توضح ظروفك الشخصية وعمرك الحالي وما تريده بالضبط وما قمت بدراسته، النصيحة ستكون عامة بطبيعة الحال فلا توجد نصائح معلبة صالحة للجميع، عامًة مجال البرمجة ليس بالسهل يحتاج إلى صبر وإلتزام لمدة سنة على الأقل ولا يوجد نتائج سريعة به، بالتالي مدة سنة هي الحد الأدنى قبل رؤية نتائج. بشرط أن تلك المدة مقضية في الدراسة والتطبيقات العملية وتنمية مستواك وبناء معرض أعمالك. بالطبع عليك من البداية الدراسة لسوق العمل وليس السير عكسه، بمعنى تفقد ما هو المطلوب بالنسبة لمستوى Junior أو خبرة سنة أو سنتين مثلاً وما هي التقنيات المطلوبة بالنسبة لتلك الخبرة وتجنب تعلم التقنيات التي لها وظائف بمستوى Senior فقط في حال كان الوقت ضيق لديك، فتلك ستحتاج منك إلى وقت أطول لاكتساب خبرة والتقدم إليها. ولا مشكلة في تعلم البرمجة والعمل في مجال آخر حاليًا لحين العثور على وظيفة في مجال البرمجة والإنتقال إليها، لكن عليك إدارة وقتك والإلتزام والتضحية بأمور أخرى، لا يوجد طريق مختصر.
  5. أولاً تتجه للاستضافة وهي Cloudflare Pages لديك ثم اضغط على مشروعك ثم اختر Custom domains ثم اضغط على Set up a domain ثم الضغط على begin dns transfers ثم قم بكتابة اسم الدومين الخاص بك وسيتم إعداد البيانات بشكل تلقائي واختر باقة free، وستحصل على أسماء الـ name servers. أرجو قراءة الشرح مرة أخرى.
  6. @نجاة العبد الرحيم في حال ما زال لديكِ وصول لحسابك على هاتفك توجهي إلى الإعدادات settings ثم الأجهزة Devices ثم اختاري Terminate all other sessions أو غلق جميع الجلسات، وسيتم تسجيل الخروج من جميع الأجهزة ماعدا جهازك الحالي. أما في حال ليس لديكِ وصول لحسابك، فستحتاجين إلى عمل reset للحساب وسيتم فقد جميع المحادثات، عند تسجيل الدخول لحسابك اضغطي على Forgot password ثم اتبعي الخطوات بعد ذلك. وفي حال تم تغيير الإيميل تستطيعي إرسال رقم التفعيل على هاتفك reset via SMS من خلال الإشتراك في telegram premium.
  7. لا أنصحك باستخدام تقنية قديمة جدًا مثل Microsoft Expression Web بل اعتمد على لغات الويب وهم HTML, CSS, JS وبالأخص JS فهي لغة البرمجة التي ستوفر لك ما تحتاجه بخصوص تنفيذ المنطق الذي تريده عند الضغط على زر معين في الصفحة. وبالأخص من خلال Clipboard API والذي توفره المتصفحات للنسخ واللصق وهو الطريقة الحديثة لفعل ذلك وليس Document.execCommand()‎. وإليك مثال بسيط: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Copy to Clipboard Example</title> </head> <body> <input type="text" id="textToCopy" value="Copy this text!"> <button onclick="copyToClipboard()">Copy Text</button> <script src="index.js"></script> </body> </html> كود جافاسكريبت: function copyToClipboard() { const textField = document.getElementById('textToCopy'); // اختيار النص textField.select(); textField.setSelectionRange(0, 99999); // For mobile devices navigator.clipboard.writeText(textField.value) .then(() => { console.log('Text copied to clipboard'); alert('Text copied to clipboard: ' + textField.value); }) .catch(err => { console.error('Failed to copy text: ', err); }); }
  8. في أي استضافة يوجد ما يسمى DNS Records وذلك لربط الـ DNS الخاصة بالدومين بالاستضافة. بمعنى نحصل على name servers من الاستضافة ثم نقوم بإضافتهم في لوحة التحكم في حسابك على مقدم الدومين لديك وهو namecheap عند الضغط على manage بجانب الدومين. لكن أولاً تتجه للاستضافة وهي Cloudflare Pages لديك ثم اضغط على مشروعك ثم اختر Custom domains ثم اضغط على Set up a domain ثم الضغط على begin dns transfers ثم قم بكتابة اسم الدومين الخاص بك وسيتم إعداد البيانات بشكل تلقائي واختر باقة free، وستحصل على أسماء الـ name servers. قم بنسخها وإضافتها في حسابك على namecheap في الجزء الخاص بـ name servers واختر custom DNS ثم أضف البيانات. وأحيانًا سيتعين عليك الإنتظار بضع ساعات لحين تحديث بيانات الـ DNS.
  9. ما تقصده هو لخرائط الثابتة Static Maps وهي صور ثابتة للخريطة من Google Maps، وليست خرائط تفاعلية. ويتم تسعير الخرائط الثابتة حسب عدد الصور التي تطلبها في الشهر، بمعنى قياس الاستخدام بوحدة "صور/شهر" (images/month)، حيث كل صورة خريطة ثابتة يتم إنشاؤها تعتبر 15 طلبًا requests، وذلك يعني أن كل صورة تستهلك 15 وحدة من حصتك الشهرية. وكما ترى في الموقع الرسمي يوجد شريط تمرير أفقي في الأعلى يوضح نطاقات الاستخدام المختلفة، وتلك النطاقات هي: 0k (صفر)، 100k (100 ألف)، 500k (500 ألف)، 5m (5 ملايين)، 10m (10 ملايين). ويوجد مربع نصي يعرض عدد الصور التي تم اختيارها حاليًا. في الصورة، القيمة هي 10000 صورة في الشهر. ويوجد نص أسفل المربع النصي يوضح أن "1 صورة = 15 طلبًا"، أي أنه في حال طلبت 10000 صورة في الشهر، فإنك تستهلك 150000 طلبًا (10000 * 15). بالتالي قمت بتحديد 10000 صورة في الشهر، فإنك تستهلك 150000 طلبًا، ولو تجاوزت ذلك العدد، فسيتم محاسبتك على الطلبات الإضافية أو يتم تقييد استخدامك.
  10. أحيانًا يحدث إلتباس بالفعل عند الضغط على ذلك الزر، عذرًا على ذلك، لمتابعة تقدمك في الوقت الحالي تستطيع وضع رابط الدرس الذي توقفت عنده في Google Keep مثلاً أو ما شابه لكي تتمكن من المتابعة عند العودة في حالة توقفت لفترة بسيطة أو طويلة.
  11. الشريك الثاني مساهم بجهده في توفير المكان والرعاية للكتاكيت، وهي مساهمة غير مالية ولكنها ضرورية لنجاح المشروع. بشكل تقريبي لنفترض أن قيمة ثمن الكتاكيت هي 100 وحدة، وقيمة المجهود في تربية الكتاكيت هي 50 وحدة (قيمة تقديرية للمجهود). إذن المساهمة الإجمالية = قيمة ثمن الكتاكيت + قيمة المجهود = 100 وحدة + 50 وحدة = 150 وحدة نسبتك أنتي حيث دفعتي ثمن الكتاكيت، 100 وحدة / 150 وحدة = 2/3، في حين الشريك الثاني (ساهم بمجهوده) 50 وحدة / 150 وحدة = 1/3 بمعنى أنتي 2/3 من الأرباح وهو 1/3 من الأرباح. أي لو كانت الأرباح 300 فنسبتك أنتي 2/3 × 300 وحدة = 200 وحدة، والشريك الثاني 1/3 × 300 وحدة = 100 وحدة.
  12. تلك أداة إحصائية لتحليل البيانات الزمنية وتقدير نسبة البقاء على قيد الحياة في مجموعة من الأفراد أو الأحداث لفترة زمنية محددة، حيث يتم تسجيل الوقت الذي يستغرق حدث معين حتى يحدث.. وتستخدم بشكل شائع في الدراسات الطبية لتقدير بقاء المرضى بعد تشخيص مرض معين أو بعد تلقي علاج معين، أيضًا في مجالات أخرى. ويعمل عن طريق تحليل البيانات الزمنية وتقدير نسبة البقاء على قيد الحياة في كل نقطة زمنية، أي يتم ذلك عن طريق حساب نسبة الأفراد الذين ما زالوا على قيد الحياة في كل نقطة زمنية، ورسم النسبة على محور الرأسي Y-axis والذي يمثل نسبة البقاء Survival Probability، وتتراوح النسبة بين 0 و 1 (أو 0% و 100%). النسبة 1 تعني أن جميع الأفراد ما زالوا على قيد الحياة (أو في الحالة المحددة)، بينما النسبة 0 تعني أن جميع الأفراد قد توفوا (أو خرجوا من الحالة المحددة). بينما المحور الأفقي X-axis يمثل الوقت. قد يكون بالأسابيع، الأشهر، السنوات، أو أي وحدة زمنية أخرى ذات صلة بالدراسة. في حين الخط المتعرج هو المنحنى نفسه، ويبدأ من النقطة (0,1) أي أن جميع الأفراد كانوا على قيد الحياة في بداية الدراسة. ثم ينخفض المنحنى تدريجيًا مع مرور الوقت، حيث يمثل كل انخفاض وفاة (أو خروج) فرد واحد أو أكثر من المجموعة. ولقراءته اختر نقطة زمنية على X-axis تريد معرفة نسبة البقاء عندها، ثم ارسم خطًا رأسيًا من النقطة الزمنية التي اخترتها حتى يتقاطع مع المنحنى. من نقطة التقاطع، ارسم خطًا أفقيًا إلى Y-axis، والقيمة التي تقرأها على المحور الرأسي هي نسبة البقاء المقدرة عند تلك النقطة الزمنية.
  13. الدالة min، لأنّ قيمة k يتم حسابها باستخدام الدالة min على أبعاد جدول التوافق contingency_table، حيث K تمثل عدد الصفوف أو الأعمدة الأقل في جدول التوافق، أي هي الأبعاد الأصغر للجدول. وللعلم Cramér's V هو مقياس لقوة الارتباط بين متغيرين اسميين categorical variables، ويتم حسابه حسب إحصائية مربع كاي Chi-squared statistic. وفي حساب Cramér's V، نقسم إحصائية مربع كاي على قيمة تعتمد على حجم العينة وعدد الفئات في المتغيرات، بالتالي استخدام min يضمن أننا نستخدم الأبعاد الأصغر للجدول، مما يؤدي إلى قيمة Cramér's V تتراوح بين 0 و 1. وفي حال استخدمت max بدلاً من min، فإن قيمة Cramér's V قد تتجاوز 1، وذلك غير صحيح، ويفضل استخدام الحد الأدنى من الأبعاد min بدلاً من الحد الأقصى max لأنها توفر تقديرًا أكثر دقة لمعامل الارتباط.
  14. الدراسة ليست من خلال المنتديات بل من خلال الدورات أو المستند الرسمي أو مقالات متعمقة تشرح أجزاء معينة من مكتبة أو إطار وخلافه أو من خلال كتاب مثلاً، لكن الأفضل البدء من خلال دورة متعمقة كانت أم بسيطة، المهم هو شرح عملي يوضح لك الخطوات وما عليك فعله بشكل عملي وليس نظري، ففي البداية أنت بحاجة إلى من يرشدك خطوة بخطوة قدر الإمكان. بعد ذلك تستطيع أن تنطلق وتتعلم من أي مصدر تريد طالما لديك الأساسيات اللازمة، لديك مثلاً في أكاديمية حسوب دورات مختلفة وأيضًا مقالات ودروس وأيضًا كتب لتعلم البرمجة من الصفر. بخصوص مجموعات الدراسة فمن الممكن البحث عن mentor على موقع مثل LinkedIn يوفر جزء من وقته بشكل طوعي لتعليم الآخرين، لكن ذلك قليل ويوجد مثل ذلك بشكل مدفوع بنسبة أكبر، يوجد أيضًا على ذلك الموقع أناس بنفس المستوى تستطيع التواصل معهم والدراسة أو قم بتجربة السؤال على جروبات البرمجة على فيسبوك. لكن أنصحك بالدراسة بمفردك قدر الإمكان وعدم الإعتماد على الآخرين لتحفيزك، الإلتزام هو الأهم. أيضًا عليك تحديد مجال البرمجة الذي تريده حسب المطلوب في سوق العمل وليس حسب ما تفضله أنت.
  15. يوجد شرح عن DOM في دورة تطوير واجهات المستخدم في مسار أساسيات تطوير الويب في قسم أساسيات JavaScript. ومسار أساسيات تطوير الويب في دورة تطوير واجهات المستخدم مجاني لك تستطيع دراسته، وجميع المسارات الأولى من جميع الدورات متاحة لك بشكل مجاني. بخصوص الـ BOM فستجد شرح له هنا: والمزيد من الشرح حول DOM:
  16. مصدر ما ذكرته لك من هنا من الموقع الرسمي: https://support.google.com/paymentscenter/answer/9037801?hl=en#:~:text=You cannot change the country,with the associated payments profile. سواء كانت الإجابة من أي مصدر ما يتم بالأكاديمية هو مساعدة السائل، أرجو التحدث بشكل لائق للمكان الذي تتواجد به. بالعودة لسؤالك هل يمكنك توفير صورة للمشكلة لتوضيحها والمكان الذي تحاول منه تغيير ملف الدفع؟
  17. ذلك تم الإعلان عنه منذ أسبوع تقريبًا، وهي شريحة كمومية جديدة من جوجل تسمى Willow، والتي تحقق إنجازات كبيرة في مجال الحوسبة الكمومية، خاصة في مجال تصحيح الأخطاء الكمومية وتفوقها على الحواسيب الكلاسيكية في بعض الحسابات، حيث Willow تمثل خطوة كبيرة نحو بناء حواسيب كمومية عملية وذات جدوى تجارية. وتتميز بأداء متطور في عدة مقاييس، مما يمكنها من تحقيق إنجازين رئيسيين، وتم تصنيعها في منشأة تصنيع حديثة في سانتا باربرا، وتعتمد على هندسة النظام، حيث يتم دمج جميع مكونات الشريحة (مثل البوابات أحادية وثنائية الكيوبت، وإعادة ضبط الكيوبت، والقراءة) بشكل جيد. وتستطيع تقليل الأخطاء بشكل كبير مع زيادة عدد الكيوبتات، وتمكنت من تحقيق "أقل من الحد الأدنى للأخطاء المسموح بها Below threshold" في تصحيح الأخطاء، وهو إنجاز هام في ذلك المجال، ويعني أنه مع زيادة عدد الكيوبتات، يقل معدل الخطأ، مما يجعل النظام أكثر كمومية. تم تحقيق ذلك من خلال اختبار مصفوفات متزايدة من الكيوبتات المادية (3x3، 5x5، 7x7) وتقليل معدل الخطأ إلى النصف في كل مرة، وتعتبر Willow أول نظام ينجح في إظهار تصحيح الأخطاء في الوقت الفعلي على نظام كمومي فائق التوصيل. وتجاوزت نقطة التعادل، حيث أن مصفوفات الكيوبتات لديها عمر أطول من الكيوبتات المادية الفردية، مما يدل على أن تصحيح الأخطاء يحسن النظام بشكل عام. الهدف التالي هو إظهار أول عملية حسابية مفيدة، تتجاوز الحواسيب الكلاسيكية على الشرائح الكمومية الحالية، والتي تكون ذات صلة بتطبيق واقعي. وتهدف جوجل إلى الجمع بين اختبار RCS (الذي يقيس الأداء ضد الحواسيب الكلاسيكية) والمحاكاة العلمية للأنظمة الكمومية (التي تؤدي إلى اكتشافات علمية جديدة) في نفس الوقت، أيضًا تسعى إلى تطوير خوارزميات يمكنها حل المشكلات التجارية ذات الصلة والتي لا يمكن حلها باستخدام الحواسيب الكلاسيكية.
  18. لمساعدتك بشكل أفضل، ذكرت المراجعة على لغات البرمجة، فما الهدف من دراسة أكثر من لغة برمجة، هل أنت في بداية دراستك للبرمجة أم تتعلم لغة أخرى بجانب تخصصك الحالي؟
  19. من الممكن الحصول على الدورات بخصومات في أوقات العرض مثل العروض الصيفية أو عروض بداية العام أو عروض رمضان وغيرهم، وأحيانًا يتوفر أكواد خصومات قم بسؤال مركز المساعدة عن توافر ذلك حاليًا أم لا. جميع دورات أكاديمية حسوب هي دورات مدفوعة ويتم تقديم مزايا كثيرة عند الإشتراك بها مع ضمانات أيضًا لذلك الدورة ليس منخفضة الثمن.
  20. df.dropna() تقوم بحذف أي صف يحتوي على أي قيمة مفقودة في أي عمود، بينما df.dropna(axis=0) نفس عمل df.dropna()، حيث axis=0 يشير إلى الصفوف والأمر بحاجة إلى توضيح هنا: في Pandas، نتعامل مع البيانات في شكل جداول DataFrames، ولها بعدين: المحور 0 (axis=0) يمثل الصفوف. تخيل أنك تتحرك عموديًا في الجدول، من الصف الأول إلى الصف الأخير. المحور 1 (axis=1) يمثل الأعمدة. تخيل أنك تتحرك أفقيًا في الجدول، من العمود الأول إلى العمود الأخير. import pandas as pd data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]} df = pd.DataFrame(data) print("DataFrame الأصلي:\n", df) سنقوم بالحذف: # حذف الصفين ذوي الفهرس 0 و 2 df_dropped_rows = df.drop([0, 2], axis=0) print("\nDataFrame بعد حذف الصفوف:\n", df_dropped_rows) سنحصل على التالي: DataFrame الأصلي: A B C 0 1 4 7 1 2 5 8 2 3 6 9 DataFrame بعد حذف الصفوف: A B C 1 2 5 8 ولو كتبت التالي: # حذف العمودين 'A' و 'C' df_dropped_columns = df.drop(['A', 'C'], axis=1) print("\nDataFrame بعد حذف الأعمدة:\n", df_dropped_columns) ستحصل على: DataFrame الأصلي: A B C 0 1 4 7 1 2 5 8 2 3 6 9 DataFrame بعد حذف الأعمدة: B 0 4 1 5 2 6 بينما df.dropna(thresh=n) تحذف الصفوف التي تحتوي على أقل من n من القيم غير المفقودة، أي قم باستبدال n بالرقم الذي تريد تحديده. و df.dropna(subset=['column1', 'column2']) تحذف الصفوف التي تحتوي على قيم مفقودة في الأعمدة المحددة فقط.
  21. tce_div_match (TCE Divergence Match) يصف مدى التباين أو الاختلاف بين الخلايا التائية (T cells) والخلايا المستهدفة Target cells بخصوص زراعة نخاع العظم أو زرع الخلايا الجذعية. Bi-directional non-permissive يعني هناك عدم توافق في كلا الاتجاهين، أي أن الخلايا التائية من المتبرع لا تتوافق مع خلايا المتلقي، والعكس صحيح، وذلك النوع من عدم التوافق قد يؤدي إلى مضاعفات خطيرة. GvH non-permissive يعني أن الخلايا التائية من المتبرع Graft لا تتوافق مع خلايا المتلقي Host، وقد يؤدي إلى مرض الطعم حيال المضيف Graft-versus-Host Disease, GvHD. HvG non-permissive مفاده أن الخلايا التائية من Host لا تتوافق مع خلايا Graft، وربما يؤدي إلى رفض الطعم Host-versus-Graft Disease, HvGD. Permissive mismatched معناه وجود بعض الاختلافات بين الخلايا التائية والخلايا المستهدفة، ولكنها ليست كبيرة بما يكفي لإحداث رد فعل مناعي قوي، وذلك النوع من التوافق يكون مقبولًا في بعض الحالات. tce_match (TCE Match) يصف مدى التوافق بين الخلايا التائية والخلايا المستهدفة، و Fully matched يشير إلى أن الخلايا التائية والخلايا المستهدفة متطابقة تمامًا، مما يقلل من خطر حدوث مضاعفات مناعية. HvG non-permissive و GvH non-permissive نفس المعنى كما في tce_div_match. Permissive معناه وجود توافق مقبول بين الخلايا التائية والخلايا المستهدفة، مع وجود بعض الاختلافات الطفيفة. إذن tce_div_match يركز على الاختلافات بين الخلايا التائية والخلايا المستهدفة، ويصنفها حسب اتجاه عدم التوافق (ثنائي الاتجاه، GvH، HvG). بينما tce_match يركز على مدى التوافق بين الخلايا، ويصنفها حسب درجة التطابق (مطابقة كاملة، غير متوافقة، متوافقة بشكل مقبول). أي في حال مهتم بفهم أنواع عدم التوافق المحتملة (GvH، HvG، ثنائي الاتجاه) فستحتاج إلى الاحتفاظ بعمود tce_div_match، ولو مهتم بتقييم درجة التوافق بشكل عام (مطابقة كاملة، متوافقة بشكل مقبول، غير متوافقة) فستحتاج إلى الاحتفاظ بعمود tce_match، وكلاهما يقدمان معلومات مختلفة ومكملة لبعضها البعض، حيث tce_div_match يعطيك تفاصيل أكثر عن طبيعة عدم التوافق، بينما tce_match يعطيك تقييمًا عامًا لدرجة التوافق. بخصوص 60% من البيانات مفقودة في tce_match فربما البيانات الموجودة في tce_match تم جمعها باستخدام طريقة مختلفة عن تلك المستخدمة لجمع بيانات tce_div_match وبعض الحالات لم يتم فيها إجراء اختبار التوافق الذي ينتج عنه بيانات tce_match. أو البيانات في tce_match تم جمعها في مرحلة لاحقة من الدراسة، وبالتالي لم يتم الحصول عليها لجميع الحالات، أو أخطاء في عملية جمع البيانات أو تسجيلها، مما أدى إلى فقدان بعض القيم في tce_match.
  22. لا يمكن ربط ملف الدفع الواحد إلا ببلد واحد فقط بسبب اللوائح الضريبية، ولا تستطيع تغيير البلد لملف دفع موجود، أي يجب عليك إنشاء ملف تعريف جديد لاستخدام بلد مختلف. وإنشاء ملف دفع جديد في بلد آخر لا يؤثر على خدماتك واشتراكاتك الحالية، ستستمر مدفوعاتها باستخدام ملف الدفع المرتبط بها. ما تحتاجه هو إنشاء ملف دفع جديد وربطه ببلد جديد: سجّل الدخول إلى الإعدادات. ضمن ملف الدفع Payments profile، بجوار البلد/المنطقة، انقر على Edit. انقر على Choose a country or region إنشاء ملف تعريف جديد Create new profile ثم Continue. انقر على اختيار بلد أو منطقة Choose a country or region، ثم اختر البلد الذي تريد ربطه بملفك الجديد. انقر علىContinue. أدخل اسمك وعنوانك، ثم انقر على إرسال Submit.
  23. بخصوص أكاديمية حسوب فيوجد مجتمع I/O تستطيع التواصل من خلال المجتمعات الخاصة بالبرمجة. أيضًا يمكنك إنشاء حساب على LinkedIn والتواصل مع من لديهم نفس الهدف وفي نفس المستوى والدراسة سويًا، لديك أيضًا على فيسبوك مجموعات خاصة بالبرمجة تستطيع السؤال عن مجموعة تم إنشائها والإنضمام إليهم على واتساب مثلاً او تيليجرام. لكن لا تعتمد على أيًا من ذلك لتصل لهدفك، الإلتزام هو مفتاح النجاح في أي مجال، من يلتزم يصل حتى لو كان أقل في المستوى من شخص ذكي وموهوب لكنه كسول وغير ملتزم. الأمر أشبه بأصدقاء صالة كمال الأجسام، هل عند تغيب أحدهم لن تقوم بالتمرين الخاص بك اليوم؟
  24. هناك فرق كبير بين object و str في بايثون، خاصةً عند التعامل مع مكتبة Pandas وذلك الفرق هو السبب في أن الكود الأول يعمل بشكل صحيح بينما الكود الثاني لا يعمل كما تتوقع. بمعنى عند قراءة بيانات من ملف (مثل CSV أو Excel) باستخدام Pandas، فإن الأعمدة التي تحتوي على strings أو بيانات مختلطة مثل أرقام ونصوص يتم تخزينها بنوع بيانات object بشكل إفتراضي. ولكن نوع البيانات Object له نطاق أوسع بكثير. فهو لا يشمل فقط النصوص، بل يمكن أن يشمل أيضًا أي بيانات أخرى لا تفهمها Pandas. وobject هو نوع بيانات عام في Pandas يمكن أن يحمل أي نوع من البيانات في بايثون، ولكنه يستخدم بشكل أساسي لتمثيل النصوص، والأهم ليس كل عمود من نوع object هو بالضرورة عمود نصي string، فقد يحتوي على أنواع بيانات أخرى مختلطة. بعد Pandas 1.0، أصبح هناك نوع بيانات مخصص للتعامل مع بيانات النصوص والعمل بها، وهو StringDtype، بالتالي في حال نوع العمود Object، فلا يعني بالضرورة أن جميع القيم ستكون نصية، في الواقع، يمكن أن تكون جميعها أرقامًا، أو مزيجًا من النصوص والأعداد الصحيحة والأعداد العشرية. إذن مع وجود ذلك التباين، فلا تستطيع إجراء أي عملية نصية على العمود مباشرة. عامًة str هو نوع بيانات أساسي في بايثون يمثل سلسلة من الحروف (نص)، بالتالي في حال data_train[columns].dtypes == str، فإنك تسأل Pandas هل نوع البيانات في العمود هو تحديدًا str، وهو ليس ما يحدث عند قراءة البيانات من ملف. بينما الشرط if data_train[columns].dtypes == object سيتم تنفيذه في حال نوع العمو هو object، بغض النظر عن نوع البيانات التي يحتويها. لذا، بإمكانك استخراج ومعالجة النصوص فقط داخل الأعمدة عن طريق إخبار Pandas بشكل صريح أن نوع البيانات هو 'String' وليس 'Object'. ستجد تفصيل هنا: https://pandas.pydata.org/docs/user_guide/text.html
×
×
  • أضف...