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

Mustafa Suleiman

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

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

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

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

    366

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

  1. بالطبع، statistics.median() خاص بمكتبة statistics في بايثون وتعمل على قوائم lists أو مجموعات tuples من الأرقام لحساب الوسيط median لقائمة من الأرقام، و لا تدعم البيانات في شكل DataFrame أو Series. في حال كانت قائمة الإدخال ذات طول فردي، فإن الوسيط هو القيمة الوسطى، ولو كانت قائمة الإدخال ذات طول زوجي، فإن الوسيط هو متوسط القيمتين الوسطيتين، أما في حال كانت فارغة، فإنها ترفع خطأ StatisticsError. np.median() خاصة بمكتبة numpy وتستقبل مصفوفة NumPy أو قائمة بايثون من الأرقام (أعداد صحيحة أو أرقام عشرية)، وتوفر لك قيمة الوسيط كرقم عشري. وتعمل كالتالي: في حال كانت مصفوفة الإدخال ذات طول فردي، فإن الوسيط هو القيمة الوسطى. إن كانت مصفوفة الإدخال ذات طول زوجي، فإن الوسيط هو متوسط القيمتين الوسطيتين. إن كانت مصفوفة الإدخال فارغة، فإنها تعيد nan (ليس رقم). أما pandas.median() هي دالة من مكتبة Pandas. تحسب الوسيط لسلسلة Pandas أو DataFrame. وتستقبل سلسلة Pandas أو DataFrame قيمة الوسيط كرقم عشري أو سلسلة من قيم الوسيط (إن كان الإدخال DataFrame). والسلوك الخاص بها هو في حال كانت سلسلة الإدخال ذات طول فردي، فإن الوسيط هو القيمة الوسطى. ولو كانت سلسلة الإدخال ذات طول زوجي، فإن الوسيط هو متوسط القيمتين الوسطيتين، وفي حال سلسلة الإدخال فارغة، فإنها تعيد NaN (ليس رقم). ولو الإدخال DataFrame، فإنها تحسب الوسيط لكل عمود.
  2. أرجو صورة للتوضيح فلا يظهر شيء بخانة البحث
  3. أرجو توضيح أين قمت بقراءة ذلك؟ هل هو في وصف الدورة؟
  4. عليك أولاً إنشاء حساب مجاني في Mailgun، ثم ستحصل على مفتاح API. الآن للحصول على البريد الإلكتروني، إتجه إلى تبويب Domains واضغط على Add a domain للحصول على بريد إلكتروني ثم اتبع الخطوات: ويوجد مكتبة PHP خاصة بـ mailgun وهي mailgun-php وهي متوافقة مع المنصة وستوفر عليك الكثير من الإعدادات واستخدامها مباشر، تحتاج إلى تثبيت التالي: composer require mailgun/mailgun-php symfony/http-client nyholm/psr7 ثم استيراد: require 'vendor/autoload.php'; use Mailgun\Mailgun; ثم إرسال الرسالة: <?php // 2. إنشاء كائن Mailgun باستخدام بيانات اعتماد API // 2.1. للخوادم الأمريكية: $mg = Mailgun::create('key-example'); // استبدل "key-example" بمفتاح API الخاص بك // 2.2. للخوادم الأوروبية: $mg = Mailgun::create('key-example', 'https://api.eu.mailgun.net'); // استبدل "key-example" بمفتاح API الخاص بك $mg->messages()->send('example.com', [ 'from' => 'bob@example.com', // عنوان البريد الإلكتروني للمرسل 'to' => 'sally@example.com', // عنوان البريد الإلكتروني للمستلم 'subject' => 'The PHP SDK is awesome!', // موضوع الرسالة 'text' => 'It is so simple to send a message.' // نص الرسالة ]); ?> وستجد تفصيل في المستند الرسمي، فالكود السابق هو من المستند في المستودع الخاص بالمكتبة الذي أشرت إليه.
  5. تقدم جيد وملحوظ، صفحة التسجيل أفضل من قبل بنسبة كبيرة، بخصوص التصميم، يجب توفير كافة المعلومات التي يحتاجها المستخدم بشكل سهل ومباشر قدر الإمكان وليس الإهتمام بالجمالية فقط، مثلاً وضعت رابط "Have an Acount? Login" في مكان بعيد عن نموذج التسجيل. الشكل المناسب لتجربة مستخدم جيدة هو التالي: أو التالي: بخصوص الكود حاول عدم استخدام الـ ID إلا للضرورة ولتحديد عنصر مميز، وليس استخدامه للتنسيق في css، نستخدم الكلاسات لذلك. أيضًا تستطيع استخدام <button> بدلاً من <input type="submit"> لإنشاء زر الإرسال، لأننا button يستخدم من أجل تنفيذ أمر معين في الصفحة مثل الإرسال. ويجب استخدام <label> لوصف الحقول، بدلاً من استخدام <i> فقط، فالعنصر مخصص لذلك. يوجد هنا مصادر جيدة لتتعلم التصميم:
  6. ذلك يسمى Circle progress bar، ولتنفيذ ذلك من خلال HTML, CSS فقط ستقوم بالآتي: HTML: نقوم أولاً بإنشاء عنصر كحاوية، ثم استخدام عنصر <progress> بداخله ونخفيه عن طريق CSS (visibility:hidden;height:0;width:0;) لأننا سنستخدم CSS لإنشاء شريط التقدم. <div class="progress-bar"> <progress value="75" min="0" max="100" style="visibility:hidden;height:0;width:0;">75%</progress> </div> CSS: أولاً نقوم بإنشاء خاصية مخصصة وهي @property --progress-value تعني أننا نقوم تُسمى --progress-value لتخزين قيمة التقدم. و @keyframes progress يُعرّف تأثير متحرك يسمى progress ونغير به قيمة --progress-value من 0 إلى 75. progress-bar هو التنسيق الخاص بكلاس شريط التقدم ونضع خلفية له من خلال radial-gradient. و .progress-bar::before يُنشئ عنصرًا قبل الحاوية لعرض قيمة التقدم. عند تشغيل الكود، ستظهر دائرة بيضاء صغيرة في المنتصف. ثم ستبدأ الدائرة بالتحول إلى اللون hotpink ببطء حتى تصل إلى 75% من الدائرة، وفي نفس الوقت، ستظهر قيمة التقدم (75%) داخل الدائرة. @property --progress-value { syntax: "<integer>"; initial-value: 0; inherits: false; } @keyframes progress { to { --progress-value: 75; } } .progress-bar { display: flex; justify-content: center; align-items: center; width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(closest-side, white 79%, transparent 80% 100%), conic-gradient(hotpink calc(var(--progress-value) * 1%), pink 0); animation: progress 2s 1 forwards; } .progress-bar::before { counter-reset: percentage var(--progress-value); content: counter(percentage) '%'; animation: progress 2s 1 forwards; } بالطبع لتعديل قيمة التقدم في الدائرة ستحتاج إلى استخدام جافاسكريبت من أجل التلاعب بالقيمة والتعديل على كود CSS و HTML.
  7. هل قمت بإعادة تشغيل الحاسوب؟ حاول التشغيل عن طريق التالي: php -S 127.0.0.1:8000 -t public/ server.php إن استمرت المشكلة قم بتشغيل المشروع من خلال خادم apache في لاراجون بالضغط على الواجهة بزر الفأرة الأيمن ثم www ثم اختر مجلد المشروع.
  8. len() في سلاسل نصية نستخدمها لحساب عدد الأحرف في السلسلة بينما في القواميس لحساب عدد العناصر ( عدد مفتاح-قيمة key-value pairs) في القاموس. في بداية التعلم الاستيعاب ثم الحفظ ثم التطبيق العملي لتثبيت تلك المعلومات وزيادة الاستيعاب، لا مشكلة بعد ذلك إن نسيت بعض الأمور تستطيع البحث عنها واستخدامها، ومع الوقت ستترسخ لديك الأمور التي تستخدمها بكثرة. وأثناء التطبيق حاول التغيير بالكود ولا مشكلة إن حدثت أخطاء تعلم منها، لتستوعب آلية عمل الميثود أو كيف يتم كتابة الكود بالطريقة الصحيحة وما هو نوع البيانات المناسب لها. أيضًا ربط الدروس ببعضها البعض، أي استخدم ما تعلمته في الدروس السابقة ولا تستعجل في إنهاء التطبيق.
  9. قم بتجربة إغلاق laragon وإعادة تشغيله ثم تفقد المشكلة، إن استمرت قم بإعادة تشغيل الحاسوب فربما هناك خدمة معينة تعمل بالنظام تسبب تلك المشكلة. إن استمرت المشكلة قم بتشغيل الأمر التالي في منفذ الأوامر وأرفق النتيجة: php --ini
  10. في ملف php.ini بالخادم لديك تأكد من أنّ به المتغير variables_order بالقيمة GPCS: variables_order = "GPCS" في حال تستخدم XAMPP ستجد الملف في المسار: C:\xampp\php عند فتح الملف اضغط على CTRL + F وابحث عن variables_order واضغط على Enter أكثر من مرة في حال لم تجد variables_order وليس بجانبها ; فقم بكتابتها. إن استمرت المشكلة قم بتجربة تغيير المنفذ: php artisan serve --port=8008
  11. أولاً أنصحك بحذف XAMPP وتثبيت Laragon، ثم التأكد من التالي: هل قمت بتحميل ملف oci8_19.dll المناسب لإصدار php لديك؟ ستحتاج لتثبيت oci8-3.2.1 لإصدار PHP 8.1 ونسخةoci8-3.0.1 لإصدار PHP 8.0 ونسخة oci8-2.2.0 لإصدار PHP 7 ُثم تفعيل الإضافة في PHP.ini أيضًا تحتاج إلى تثبيت Microsoft Visual C++ Redistributable من 2015 حتى 2022، قم بتثبيت الملف التالي: https://aka.ms/vs/17/release/vc_redist.x64.exe ثم ملف instantclient الذي قمت بتحميله فك الضغط عنه، ثم انسخ ملفات .dll التي به وضعها في مجلد php في بيئة التطوير لديك، ثم كرر نفس الأمر ولكن في مجلد apache\bin في بيئة التطوير.
  12. للتوضيح، ما تريده هو دالة لحساب المدى Range، وتستطيع الإعتماد على دالة max() و min() لحساب أكبر وأصغر قيمة في مجموعة البيانات، ثم طرح أصغر قيمة من أكبر قيمة. data = [1, 2, 3, 4, 5, 6, 7, 8, 9] range_ = max(data) - min(data) print(range_) ولحساب اللوغاريتم يوجد دالة log()، ولكنها موجودة في وحدة math. import math number = 100 log_base_10 = math.log10(number) log_base_e = math.log(number) print(f"The logarithm of {number} to base 10 is: {log_base_10}") print(f"The logarithm of {number} to base e is: {log_base_e}") math.log10() تحسب اللوغاريتم في الأساس 10 بينما math.log() تحسب اللوغاريتم في الأساس e (اللوغاريتم الطبيعي).
  13. طالما هناك واجهة أمامة فذلك يعني جافاسكريبت، وبالطبع ستحتاج اللغة في إضافة التفاعلية للواجهة الأمامية وليس مجرد واجهة ثابتة، وذلك أمر غير مقبول في 2024، ستحتاج إلى بناء واجهة مستخدم متفاعلة وحديثة في المشاريع الحقيقية. مثلاً تفقد مكتبة مثل GSAP والتأثيرات التي توفرها، تلك إضافة ممتازة للثيم لكن يجب الإلمام بجافاسكريبت للتمكن من استخدامها. لو أردت إضافة Sliders فستحتاج إلى استخدام مكتبة Swiper ولا تتجه إلى استخدام jQuery فلا حاجة إليها حاليًا بعد التحديثات التي تلقتها لغة جافاسكريبت.
  14. كما ذكرت لك، ما تتعلمه يحدده سوق العمل في المقام الأول، ففي النهاية أنت تتعلم للحصول على فرصة عمل، بالتالي يجب تعلم المهارات المطلوبة وليس ما تفضله أنت، ابحث عن الفرص بمستوى Junior وتفقد ما هو مطلوب. لديك مواقع مثل LinkedIn وIndeed، وبالنسبة لمواقع العمل الحر لديك مستقل وخمسات.
  15. هل المقصود لغة جافا Java أم جافاسكريبت؟
  16. أحيانًا يوجد ضغط على مركز المساعدة، لكن طالما قمت بتفصيل رسالتك وتوضيح ما تريد سيتم الرد عليك في أقرب وقت بلا شك، لذا أرجو الإنتظار قليلاً، شكرًا لتفهمك. لكن للتوضيح بخصوص سؤالك، من خلال لغة PHP تستطيع أن تصبح مطور full-stack فلديك إطار لارافل الخاص بها لتطوير الواجهة الخلفية والأمامية معًا، أيضًا تستطيع تعلم React (مكتبة للواجهة الأمامية) واستخدامها مع PHP. لكن قبل الاستماع لأي شخص، عليك تحديد المطلوب في سوق العمل الذي تريده بالبحث عن الوظائف ثم تفقد المهارات المطلوبة ثم اعمل على تعلمها، فلا تقم بالإختيار بناءًا على ما تفضله أنت. أرجو مشاهدة التالي:
  17. في حال إنقطعت لفترة كبيرة، فنعم، ستحتاج إلى إعادة الدورة من البداية، حيث يجب الدراسة بشكل متصل في بداية التعلم لتثبيت المعلومات حيث تكون حاضرة في ذهنك، أيضًا الممارسة العملية وليس المشاهدة فقط، فبدونها أنت لم تتعلم البرمجة. في حال تتذكر بعض الأمور تستطيع مشاهدة الدروس بسرعة 2x مثلاً ثم التطبيق العملي عليها من خلال تمرين أو مشروع بسيط، للتأكد من استيعابك لما جاء بها. وتذكر قليل دائم خير من كثير منقطع. ستجد تفصيل هنا أكثر:
  18. بشكل تقديري بناءًا على تجارب سابقة: موقع ويب بسيط: 100-200 ساعة موقع ويب متوسط التعقيد: 200-400 ساعة موقع ويب معقد: 400-600 ساعة أو أكثر فمن العوامل المؤثرة على المدة هي مدى تعقيد الموقع، أي هل هو موقع ويب بسيط مع صفحات قليلة أم موقع ويب معقد مع ميزات متعددة مثل نظام إدارة المحتوى، والتكامل مع أنظمة أخرى، والتصميم المخصص؟ وهل سيتم استخدام برمجة خاصة أم استخدام حلول جاهزة؟ وكلما زاد عدد الصفحات، زاد الوقت المطلوب، وهل التصميم جاهز أم سيتم تصميمه من الصفر؟ وهل سيتم استخدام نظام إدارة محتوى جاهز أم سيتم تطويره من الصفر؟ وهل سيتم دمج الموقع مع أنظمة أخرى مثل CRM أو برامج المحاسبة؟ أيضًا يجب تخصيص وقت لاختبار الموقع للتأكد من خلوه من الأخطاء.
  19. الدورة يتم تحديثها كل فترة، وأيضًا إضافة محتوى جديد أحيانًا، لذا من الممكن بالطبع أن يتم إضافة دروس خاصة بالشبكات التوليدية المتعادية GANs. وللتوضيح ذلك نوع من الشبكات العصبية التي تتكون من مولد Generator و مُميّز Discriminator. والمُولد هو شبكة عصبية تُدرّب لإنشاء بيانات جديدة تشبه البيانات الأصلية، والـ Discriminator شبكة عصبية تُدرّب لتمييز البيانات الحقيقية من البيانات المُولّدة. والآلية كالتالي: تدريب المولد والمُميّز معًا في عملية تنافسية. يحاول المولد إنشاء بيانات جديدة تبدو حقيقية قدر الإمكان. يحاول المُميّز تمييز البيانات الحقيقية من البيانات المُولّدة. يتنافس المولد والمُميّز معًا لتحسين أدائهما. يُصبح المولد أفضل في إنشاء بيانات حقيقية، بينما يُصبح المُميّز أفضل في تمييز البيانات المُولّدة. مثلاً استخدام GANs لإنشاء صور واقعية للوجوه، والحيوانات، والمناظر الطبيعية، ولتحسين جودة الصور المنخفضة الدقة، لإنشاء فيديوهات واقعية، لترجمة اللغات بشكل أكثر دقة ولإنشاء موسيقى جديدة.
  20. طالما لديك حساب على منصة Kaggle تستطيع المشاركة في المسابقة، عليك تفقد المسابقات competitions ثم إختيار إحداها والضغط على join competition ثم تحميل الـ Dataset والبدء في تنفيذ المطلوب، ثم تقديم ما قمت به. وتستطيع إنشاء فريق أو الإنضمام لفريق قائم بالفعل بتقديم طلب. وهنا يوجد مسابقة للمبتدئين للتجربة والتعلم وهي غير تنافسية ولا يوجد بها جوائز: https://www.kaggle.com/c/digit-recognizer وهنا يوجد تفصيل عن المسابقات: https://www.kaggle.com/docs/competitions
  21. تلك ليست بيانات خاصة بالوقت الحقيقي، بل هي بيانات تم تجميعها وإعدادها مسبقًا. تحليل البيانات في الوقت الحقيقي يعني معالجة البيانات وتحليلها فور وصولها، دون أي تأخير، أي يجب أن يكون لديك مصدر بيانات يوفر بيانات جديدة بشكل مستمر، والأمر بحاجة إلى بنية تحتية قوية قادرة على معالجة البيانات بسرعة كبيرة. فمثلاً لتحليل بيانات تطبيق التواصل الاجتماعي في الوقت الفعلي ستقوم باستخدام تقنيات البث Streaming مثل Apache Kafka أو Apache Flume لجمع البيانات من مصادر متعددة في الوقت الفعلي. ثم معالجة البيانات من خلال Apache Storm أو Google Cloud Dataflow أو AWS Lambda. ثم تحليل البيانات في الوقت الفعلي من خلال Apache Druid أو Amazon Redshift أو Google BigQuery أو Tableau. وللحصول على معلومات أعمق عن البيانات ستحتاج إلى استخدام الـ Machine Learning.
  22. لا توجد طريقة مضمونة بنسبة 100%، حيث يمكن لشخص شرائها ثم توزيعها بدون مشكلة، كل ما يمكنك فعله هو حذف الروابط التي يوفرها والإبلاغ عنها وسيتم حذفها بموجب حقوق الملكية.
  23. حددت margin: auto لعنصر form وسيتم توسيطه بذلك أفقيًا، أما رأسيًا، فستحتاج إلى استخدام flex وتحديد طول للعنصر الأب وهو section كالتالي: section { display: flex; height: 100%; } أيضًا نسيت تحديد خاصية display: flex لعنصر form: form { width: 300px; height: 300px; display: flex; align-items: center; justify-content: center; margin: auto; background-color: azure; }
  24. الأمر يحتاج إلى إيضاح تاريخ تطوير كل من اللغتين، تم تطوير لغة R في أواخر الثمانينيات وأوائل التسعينيات من قبل روس إينكسلوت و روبرت جينتلمن في جامعة أوكلاند بنيوزيلندا، وكان كلاهما أستاذًا في الإحصاء، وشعرا بعدم الرضا عن برامج الإحصاء المتاحة في ذلك الوقت. وكان إينكسلوت وجينتلمن غير راضين عن قيود وصعوبات استخدام برامج مثل S و SAS و SPSS، التي كانت شائعة في ذلك الوقت، بحيث أرادوا منصة أكثر مرونة وقابلية للتخصيص وسهولة الاستخدام لتحليل البيانات الإحصائية. ففكروا في إنشاء بديل مجاني ومفتوح المصدر لبرامج الإحصاء التجارية، التي كانت غالبًا باهظة الثمن ومقيدة، واعتقدوا أن برامج الإحصاء يجب أن تكون متاحة للجميع، بغض النظر عن قدراتهم المالية. كان اسم R في الأصل R-0.49 لأن إينكسلوت وجينتلمن أرادا إيصال أنه "إصدار 0" من اللغة، مع العديد من التحسينات القادمة. وكانت لغة بايثون موجودة في ذلك الوقت، حيث تم إصدار أول إصدار من بايثون في عام 1991، قبل أربع سنوات من إصدار أول إصدار من R. ولكن، في ذلك الوقت، لم تكن بايثون شائعة الاستخدام في مجال تحليل البيانات كما هي الآن، فكانت تُستخدم بشكل أساسي في مجالات أخرى مثل تطوير الويب وتطوير البرامج. وبدأ استخدام بايثون في مجال تحليل البيانات بشكل كبير في أواخر التسعينيات وأوائل الألفية الجديدة، مع ظهور مكتبات مثل NumPy و Pandas و Scikit-learn. لذا بايثون هي الخيار الأول حاليًا وتستطيع استخدامها في مجالات مختلفة.
  25. ستحتاج إلى تعلم أساسيات جافاسكريبت وJQuery قبل تنفيذ ذلك المشروع، حيث سنستخدم به كلاهما. أيضًا أنصحك بتعلم المزيد من أساسيات جافاسكريبت بدراسة المسار الأول من دورة "تطبيقات جافاسكريبت" فهو متاح لك بشكل مجاني وبه تفصيل أكثر، ومن الأفضل لو قمت بالبحث على اليوتيوب عن مشاريع جافاسكريبت للمبتدئين وقمت بالتطبيق على أحدهم. بعد ذلك تستطيع الإنتقال ومتابعة بقية المسارات في دورة تطوير واجهات المستخدم.
×
×
  • أضف...