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

لوحة المتصدرين

  1. Ali Haidar Ahmad

    Ali Haidar Ahmad

    الأعضاء


    • نقاط

      3

    • المساهمات

      1068


  2. Sam Ahw

    Sam Ahw

    الأعضاء


    • نقاط

      2

    • المساهمات

      1388


  3. Ali Shouaa

    Ali Shouaa

    الأعضاء


    • نقاط

      2

    • المساهمات

      123


  4. محمد رعد

    محمد رعد

    الأعضاء


    • نقاط

      1

    • المساهمات

      2


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 06/18/21 في كل الموقع

  1. تصميم واجهة المستخدم من أهم المهن المطلوبة حاليًا في سوق العمل، ولكن ما هي واجهة المستخدم؟ واجهة المستخدم هي ما نراه ونتفاعل معه على شاشات الحواسيب والأجهزة المحمولة، مثل موقع الإنترنت وتطبيقات الهاتف المحمول وتطبيقات الويب. لذلك فإن الشخص الذي يختار مواقع العناصر على الشاشة وتخطيط مختلف الصفحات والشاشات ومن يخطط أنماط ألوانها ورسوماتها، هو مصمم الواجهات، ويرتبط عمله مباشرة مع مطوّر الويب والتطبيقات كما يرتبط من جهة أخرى مع مصمم تجربة المستخدم. كيف يعمل مصمم واجهة المستخدم؟ من الصعب جدًّا على مصمم الرسوميات العمل على تصميم الواجهات منفردًا، لأن عمله مرتبط كليًا بالتنسيق مع مطوّر التطبيقات والويب، لذلك فإن الغالبية العظمى من مصممي الواجهات يعملون في فرق تضم مصمم رسوميات ومطوّر تطبيقات ومدير فريق الذي يجب أن يكون لديه إلمام بالتصميم والتطوير معًا، وقد يتضمن الفريق أفرادًا أكثر إن لزم الأمر مثل كاتب المحتوى وغيره. دورة تطوير واجهات المستخدم ابدأ عملك الحر بتطوير واجهات المواقع والمتاجر الإلكترونية فور انتهائك من الدورة اشترك الآن مراحل تصميم واجهة المستخدم يمر مشروع تصميم الواجهة بعدة مراحل وهي: يتلقى المدير طلبًا لتنفيذ مشروع واجهة تطبيق أو ويب ويحصل على كافة المعطيات والمعلومات اللازمة لبدء المشروع. يجتمع المدير بأعضاء الفريق ويطلعهم على المعطيات التي بين يديه ثم يوزع المهام على المصمم والمطور وعادة ما يبدأ المصممم العمل. يعمل المصمم على إنشاء رسومات نماذج أولية باستخدام القلم والورقة إلى أن يصل إلى نماذج مرضية لرؤيته الخاصة بالمشروع. ينقل المصمم هذه النماذج من الأوراق إلى الحاسوب ليرسم هذه النماذج بطريقة احترافية ومنسقة بأسلوب الإطار الشبكي Wireframe ثم يسلم هذه النماذج إلى المدير. ملاحظة: إن كان فريق العمل يعمل معًا في نفس المكتب فإنه يسلم هذه المخططات مباشرة، أو عن طريق إرسالها بالبريد الإلكتروني أو أية وسيلة اتصال أخرى، أو قد يلجأ الفريق للعمل معًا على أحد أدوات وتطبيقات سطح المكتب أو تطبيقات الويب المخصّصة لعمل الفرق في هذا المجال، حيث يتشارك الجميع الأفكار والتصاميم والنماذج ويعلّقون عليها ويتباحثون بأمرها، سنذكر بعضًا من هذه الأدوات والتطبيقات في الجزء الأخير من المقال. يتبادل المدير والمصمم الآراء والأفكار وتُنفّذ التعديلات ثم يرسل المدير النماذج إلى العميل ليبدي رأيه فيها ويطلب تعديلاته. يبدأ المصمم العمل على استخدام العناصر الرسومية والصور والألوان لإنشاء تصاميم رسومية أولية ثم يشاركها مع المدير الذي يرسلها بدوره للعميل لإبداء الرأي وطلب التعديلات. يعمل المصمم على التعديلات المطلوبة ويسلم التصاميم النهائية للمدير الذي يسلمها بدوره للمطور ليعمل على تطوير التطبيق أو الموقع ومن ثم يسلم المشروع إلى العميل. قواعد تصميم واجهة المستخدم لتصميم واجهات جيدة ومتميزة واحترافية نحتاج إلى اتباع قواعد معينة تضمن تألق وتميز التصميم كما تضمن سهولة استخدامه وقبوله من قبل المستخدمين. التناسق يجب استخدام نفس أنماط التصميم ونفس تسلسل الإجراءات للحالات المتماثلة، يتضمن ذلك الاستخدام الصحيح للألوان والطباعة والمصطلحات في الشاشات والأوامر والقوائم الفورية خلال رحلة المستخدم، حيث تسمح الواجهة المتسقة للمستخدمين بإكمال مهامهم وأهدافهم بسهولة أكبر. يجب أن يكون المستخدم مرتاحًا في استخدامه للواجهة ولا يشعر بالارتباك، مثلًا لا يجب وضع زر القائمة المنبثقة أسفل الواجهة بينما اعتاد المستخدمون على وجودها أعلى الواجهة، وكذلك لايجب أن يوضع زر شراء المنتج أعلى صفحة المنتج وفوق صورته والمعلومات حوله بينما اعتاد المستخدمون وجود هذا الزر أسفل هذه الواجهة، وهكذا. كما يُفضّل على الدوام استخدام الأشكال المألوفة والأزرار المألوفة أكثر من الأشكال الجديدة التي قد تشعر المستخدمين بالغرابة وتجعلهم يفكرون مرتين قبل استخدام العنصر أو النقر على الزر ، فهذا التردد ليس جيدًا بمقاييس تجربة المستخدم والتصميم السليم والصحيح لواجهة المستخدم. البساطة في جميع القواعد الخاصة بتصميم أي شيء تجد مبدأ البساطة دائمًا، لأن التصميم البسيط مريح أكثر للنظر ويساعد على إيصال الرسالة بسلاسة ووضوح وسهولة دون عناء وهو الهدف من التصميم، فلا أحد يحب الواجهات المزدحمة وغير المنتظمة التي تسبب الإرباك عند محاولة التعامل معها لعدم وضوح الرسالة المفروض إيصالها أو الهدف من التطبيق أو الموقع. فإضافة المزيد من العناصر المختلفة في التصميم سيقلل التركيز على العناصر المهمة والتي يجب أن يركّز عليها المصمم. لذلك يجب التخفيف من ازدحام العناصر وتأمين تصميم بسيط يتضمن أهم العناصر فقط والابتعاد عن العناصر الأقل أهمية والتي يمكن إبرازها في واجهات أخرى يمكن التنقل إليها من الواجهة الرئيسية. مثال: أهم ما يركز عليه موقعا ياهو وجوجل هو محرك البحث وعملية البحث، وبفضل التصميم البسيط والمختصر لجوجل فإن التركيز منصب على محرك البحث فحسب، بينما يسبب ازدحام العناصر المختلفة في واجهة ياهو تشتيت الانتباه عن العنصر الرئيسي الأهم وهو خانة البحث. تناسق الخطوط من المهم التمييز بين أنواع الخطوط الواجب استخدامها عند تصميم واجهات المستخدم، حيث أن هناك خطوطًا يمكن عرضها بوضوح ضمن واجهات الويب لسطح المكتب ولكنها صعبة القراءة وقليلة الوضوح عند استخدامها في الأحجام الصغيرة ضمن الشاشات الصغيرة للأجهزة المحمولة. لذلك يجب الانتباه واستخدام خطوط ثخينة نسبيًا في الواجهات المصممة للشاشات الكبيرة والخطوط النحيفة نسبيًا عند التصميم للشاشات الصغيرة. من أهم القواعد المتبعة في هذا السياق تجنب استخدام أكثر من نوعين من الخطوط ضمن أي واجهة لضمان تناسق وأناقة التصميم. مراعاة التصميم المتجاوب تساعد بعض برامج تصميم الواجهات على إنشاء تصاميم متجاوبة تتمتع بقابلية تغيير حجم العناصر والأجزاء الأساسية بحسب حجم الشاشة المعروض عليها التصميم، مثل حجم الشعار والقوائم والفقرات النصية وغيرها، بينما لا تتمتع برامج أخرى بهذه الميزة مثل برنامج الفوتوشوب والإليستريتور، لذلك يجب أن يخصص المصمم إما عناصر بأحجام متوسطة تراعي كافة الأحجام المحتملة أو يجب عليه أن ينشئ عدة نسخ من العناصر بأحجام مختلفة ليستخدمها المطور في برمجة الواجهة حتى تكون متجاوبة وقابلة للتكبير أو التصغير بحسب حجم شاشة العرض. التباين كثيرًا ما نرى واجهات لمواقع أو لتطبيقات لا تراعي مبدأ التباين على الاطلاق بحيث تكون الألوان بين العناصر المختلفة ولاسيما بين العناصر والخطوط ذات تباين متدني بحيث يكون من الصعب تمييز العناصر أو قراءة النصوص، وعلى العكس أيضًا أحيانا يكون التباين مبالغًا فيه ما يجعل النظر ومتابعة العناصر أو القراءة مزعجة للعين وغير مريحة، لذلك يجب أن يكون التباين متوسطًا ومدروسًا حتى يحقق تجربة مستخدم مريحة وجيدة. أحد أبرز أساليب تطبيق مبدأ التباين هو تصميم واجهة بلون واحد مع التدرجات القريبة وبالأخص اللون الرمادي وتدرجاته، ومع استخدام لون حيوي مميز للعنصر أو العناصر الأهم لتأمين بروزها مع تحقيق جمالية وأناقة في التصميم. الهرمية هو من المبادئ المهمة في التصميم عامة وكذلك تصميم الواجهات خاصة، نستطيع من خلاله توجيه عين المستخدم واهتمامه بطريقة تدريجية في الاتجاه الذي نريد، ويكون تطبيق هذا المبدأ عبر تعزيز خصائص مميزة إضافية تُبرز العنصر الأهم في الواجهة مع تخفيف نسبة التعزيز للعنصر التالي في الأهمية وهكذا، وبذلك يعلم تمامًا المستخدم كيفية التوجّه ضمن الواجهة. المحاذاة يجب تطبيق هذا المبدأ على جميع محاور وأطراف التصميم، وعلى عكس تصاميم أخرى حيث يطبق هذا المبدأ على محور واحد ويكون ذلك كافيًا، إلا أن ذلك غير كاف في تصميم الواجهات نظرًا لأن هذه الواجهات عادة ما تكون مكتظة بالعناصر بالموازنة مع تصاميم فنية أخرى، ما يستوجب تطبيق المحاذاة على مختلف المحاور والأطراف ليكون المنظر العام للتصميم متوازنًا ومتناسقًا. انظر للشكل التوضيحي السابق وستلاحظ مبدأ المحاذاة بكل وضوح. التقارب وهو أحد مبادئ التصميم العامة، حيث أن تطبيقه يحسّن تجربة المستخدم لأن تناثر العناصر ضمن الواجهة وتباعدها يؤدي لتجربة مزعجة للمستخدمين وغير فعّالة لذلك يجب تنظيم العناصر بقرب بعضها وبتسلسل مرتب حتى نؤمن تجربة سلسلة ومريحة للمستخدمين. الوضوح ويقصد هنا تأمين الوضوح في الخيارات والقرارات والمتطلبات التي يجب أن ينفذها المستخدم، فعلى سبيل المثال عندما تتواجد في صفحة التسجيل حقول إدخال عدة ويتطلب كل حقل نوعية إدخال مختلفة، يجب أن يكون واضحًا ومفهومًا للمستخدم ما يجب عليه إدخاله ضمن هذه الحقول وما هي الأخطاء التي ارتكبها أثناء عملية الإدخال حتى يتداركها ويصححها بطريقة سلسلة ومفهومة وواضحة. الصورة بواسطة Antonin Kus من موقع dribbble المساحة البيضاء حافظ على المساحات البيضاء قدر الإمكان وأكثر منها دون تردد، لأنها أثبتت فعاليتها في اجتذاب المستخدمين فهي تسبب الشعور بالراحة والرقي والأناقة وبها تتحقق مبادئ التناسق والبساطة بسهولة، لذلك تجنب استخدام المربعات والمستطيلات والخطوط التي تفصل بين العناصر قدر الإمكان واسمح للمساحات البيضاء بالسيطرة على مساحة التصميم العامة. مصدر الصورة أدوات تصميم واجهة المستخدم تقدم بعض هذه الأدوات والبرامج إمكانات متكاملة في تصميم الواجهات وبعضها يسمح بمشاركتها مباشرة مع باقي أعضاء الفريق لمناقشتها وتحديثها مباشرة، بينما البعض الآخر تقليدي للغاية حيث يجب أن تصمم الواجهات يدويًا من البداية ومن ثم إرسال النماذج إلى باقي أعضاء الفريق، وفي أحيان كثيرة يحتاج المصمم إلى استخدام أكثر من برنامج وتطبيق ومنصة لإتمام المهمة على أكمل وجه. أدوبي فوتوشوب أشهر برنامج للتصميم ومعالجة الصور وأكثرها شيوعًا، يمكن استخدامه لتصميم واجهات مواقع الويب أو حتى التطبيقات حيث يحتوي على أدوات الشرائح الخاصة بتقسيم وتقطيع التصميم إلى شرائح بحسب العناصر المرسومة، ومن ثم تصدّر هذه الشرائح إلى ملفات صور مستقلة لكل عنصر بتنسيق PNG لضمان خاصية الشفافية في حال تواجدها ضمن الشريحة المصدّرة، ليتمكن المطور من استخدام هذه العناصر معًا وتركيبها لإنشاء الواجهة أو التطبيق. ويمكن استخدامه لمعالجة الصور المستخدمة في التصميم أو لإنشاء عناصر أخرى كالأزرار أو الخلفيات أو أشكال القوائم وغيرها. أدوبي إليستريتور بسبب تخصصه في إنشاء الرسومات الشعاعية، فإنه البرنامج الأقوى والأنسب لإنشاء عناصر مميزة شعاعية متجاوبة التصميم لكل أجزاء وأنواع التصاميم مثل القوائم والأزرار والنماذج والرسوميات والأيقونات وغيرها. كما يمكن استخدامه لإنشاء تصاميم النماذج الأولية للمشاريع بتقنية الإطار الشبكي (Wireframe)، حيث تساعد أدواته القوية على إنشاء هذه التصاميم بسهولة وسرعة. Sketch سكتش برنامج مميز ومتخصص في إنشاء وتصميم الواجهات عالية الدقة بكل أنواعها ويعد من أقوى البرامج في هذا المجال، حيث يتضمن قوالب جاهزة للمساعدة في إنشاء هذه التصاميم، كما يتضمن إعدادات مخصصة جاهزة بحسب قياسات مختلف الأجهزة لتصميم التطبيقات والويب. لعل أبرز عيوبه هو أنه برنامج مخصص للعمل على نظام واحد فقط وهو ماكنتوش العامل على حواسيب آبل بينما لا تتوفر منه نسخ تعمل على ويندوز أو لينكس. Adobe X D يوفر أدوبي إكس دي أفضل بيئة للمشاريع الرقمية ضمن مجموعة Adobe Creative Cloud لأدوات تصميم الواجهات. لا تشبه واجهة هذا البرنامج واجهات بقية برامج أدوبي مثل الفوتوشوب والإليستريتور وغيرها، إلا أنك ستعتاد العمل عليه بسرعة لسهولة استخدامه ووفرة أدواته الخاصة بهذا النوع من التصاميم. Figma تمكنك فيجما من إنشاء واجهات وتصميمها بسرعة. حيث تفخر منصة Figma بكونها أداة تصميم تعاونية حيث يمكن لعدة مستخدمين العمل في وقت واحد على المشروع نفسه وهذا فعّال للغاية عندما يكون لديك العديد من أصحاب العلاقة في المشروع ذاته يشاركون في تشكيل النتيجة مثل المصممين والمطورين والمدراء، ولذلك هي أداة مثالية عندما تعمل على مشروع واحد بالاشتراك مع مصمم ومطور وكاتب محتوى في نفس الوقت. Balsamiq بالساميق أداة مميزة وقوية إنشاء نماذج الإطار الشبكي Wireframe حيث يمكنك تطوير البنية والتخطيطات لمشاريعك بسهولة، وتعمل عناصر السحب والإفلات على تسهيل الاستخدام ويمكنك ربط الأزرار بصفحات أخرى. هذا يعني أنه يمكنك البدء بسرعة في تخطيط واجهاتك ومن ثم مشاركتها مع فريقك أو عملائك. Zeplin مع أن زيبلن أداة جيدة لإنتاج النماذج الأولية، إلا أنه يناسب إلى حد كبير مرحلة ما بعد التصميم وما قبل التطوير جنبًا إلى جنب مع النماذج الأولية. يمكّنك تسليم التصميم والنماذج الأولية للمطورين والتأكد من تنفيذ أفكارك بطريقة جيدة. وتستطيع مشاركة ملفات سكتش Sketch و فوتوشوب Photoshop وملفات X D و فيجما Figma إلى زيبلن لاستحداث بيئة للمطورين والمصممين للعمل على المشروع معًا ومن ثم تسليمه دون الحاجة إلى إنشاء الإرشادات واستعمال وسائل التواصل المختلفة. InVision إن فيجين هو أداة تساعد في إنشاء واجهات تفاعلية جميلة مع مجموعة كبيرة من الميزات حيث يمكنك إنشاء حركات وانتقالات مخصصة من عدد من الإيماءات والتفاعلات. وبفضل هذه الأداة يمكنك التوقف عن التفكير في إنشاء العديد من النماذج لأجهزة متعددة لأنه يمكن تحقيق التصميم سريع الاستجابة داخل لوح رسم واحد. خاتمة على الرغم من أنه يجب عليك دائمًا اتخاذ قرارات قائمة على رؤيتك وخبرتك وذوقك الفني، إلا أن اتباع مجموعة من القواعد والإرشادات سيوجهك في الاتجاه الصحيح ويسمح لك باكتشاف مشاكل الاستخدام الرئيسية في وقت مبكر من عملية التصميم. تنطبق هذه القواعد على معظم واجهات المستخدم، كما تكفي مجموعة الأدوات التي ذكرناها لإنشاء تصاميم متكاملة على الرغم من وجود المزيد من التطبيقات والأدوات خارج هذه القائمة إلا أن ما ذكرناه في هذا المقال أكثر من كافٍ. والأهم هو التعاون بين أعضاء الفريق واتباع خطوات العمل لإتمام عملية التصميم وتسليم المشروع إلى العميل.
    1 نقطة
  2. الإصدار 1.0.0

    19186 تنزيل

    لا يخفى على أي مطور ويب خصوصًا مطوري واجهة المستخدم الأمامية (front end developers) أهمية إضفاء بعض الحيوية على المواقع التي يصممونها عبر الحركات، إذ هنالك عدة فوائد يمكن تحصليها من إضافة الحركات إلى صفحات الموقع أهمها الابتعاد عن السكون الممل، ولفت الانتباه، وتحسين التواصل مع الزائر أو المستخدم وغيرها؛ لذلك، أصبحت الحركات أمرًا جوهريًا في مواقع الويب لا يمكن الاستغناء عنها. جاء هذا الكتاب لشرح مفهوم الحركة وكيفية تحريك العناصر باستخدام CSS فقط بدءًا من الحركات البسيطة وحتى الحركات المعقَّدة المُتقدِّمة بالإضافة إلى التَطرُّق إلى مناقشة مسألة متى يجب إضافة الحركات ومتى يجب الابتعاد عنها. هذا الكتاب مترجم عن كتاب «CSS Animation 101» لصاحبه Donovan Hutchinson، ونأمل أن يكون إضافةً نافعةً للمكتبة العربيَّة وأن يفيد القارئ العربي في الإلمام بموضوع التحريك عبر CSS. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «المرجع الشامل إلى التحريك عبر CSS»، أو من مباشرةً من الآتي: الفصل الأول: ما هي استخدامات الحركات؟ الفصل الثاني: تجهيز بيئة العمل لإنشاء الحركات الفصل الثالث: مدخل إلى الإنتقالات: التنقل بين الحالات الفصل الرابع: مدخل إلى الحركات: مفهوم الحركة القصل الخامس: تطبيق عملي: الانتقالات الفصل السادس: خاصيات الانتقالات الفصل السابع: دوال التوقيت الفصل الثامن: الانتقالات المتعددة الفصل التاسع: الانتقالات وجافاسكربت الفصل العاشر: تطبيق عملي: التحريكات الفصل الحادي عشر: خاصيات الحركات الفصل الثاني عشر: تطبيق عملي: الإطارات المفتاحية الفصل الثالث عشر: الحركات المتعددة المتزامنة الفصل الرابع عشر: موجز الحركات الفصل الخامس عشر: رواية القصص عبر الحركات الفصل السادس عشر: حرب النجوم (Star War) الفصل السابع عشر: إظهار المحتوى أثناء التمرير الفصل الثامن عشر: سهولة الوصول الفصل التاسع عشر: نهاية الرحلة
    1 نقطة
  3. هي عبارة عن واجهة مجردة abstract interface بين العتاد hardware وبين أقل مستوى برمجي lowest level software الذي يشمل كل المعلومات الضرورية لكتابة برنامج بلغة الآلة machine language program الذي سيعمل بشكل صحيح متضمنة (نقصد ال ISA ) التعليمات Instructions والمسجلات register والوصول إلى الذاكرة memory access ووحدات الخل والخرج.. وبشكل أكثر وضوحاً يمكن أن نقول أن مجموعة التعليمات أو الأوامر ISA هي قائمة بجميع الأوامر المتاحة بمختلف أشكالها التي يمكن لمعالج ما أن يقوم بتنفيذها. تتضمن هذه التعليمات: تعليمات حسابية:مثل الجمع والطرح، تعليمات منطقية: كتعليمات الضرب المنطقي AND والجمع المنطقي OR والنفي المنطقي NOT وو.. وهي عبارة هن نموذج مجرد Abstract model، تصبح ال ISA ملموسة (لها وجود فعلي) فقط عندما نضع لها تحقيقاً implementation بحيث أنه من أجل ISA واحدة يكون لدينا أكثر من تحقيق، حيث أن كل تحقيق يختلف في أدائه عن الآخر بحسب عدة عوامل. خدمات هذه ال ISA هي الواجهة بين البرمجيات software والعتاد hardware بحيث أن كل برنامج قد كتب من أجل ISA واحدة يمكنه أن يعمل على التحقيقات المختلفة لهذه ال ISA دون أي مشكلة لكن مع اختلاف في الأداء.
    1 نقطة
  4. السلام عليكم لو سمحتم لماذا عند تثبيت ال mongodb و اضافته بالطريقة الصحيحة path ... يظهر هذا الخطأ عند كتابته في ال cmd note : windows 7
    1 نقطة
  5. لدي مجموعة من المستندات بالبنية التالية: { "_id" : ..., "employees" : ["employeeName1"], "depts" : ["2223"] } وقمت بإجراء استعلام للحصول على المستندات التي تحوي عدد محدد من الموظفين employees بهذا الشكل: find({ employees : { $size : 2 }}) ولكن كيف يمكنني جلب المستندات التي تحوي أكبر من عدد محدد؟ لقد حاولت استخدام gt$ بدلاً من size ولكن لم أحصل على النتيجة المطلوبة: find({ employees : { $size: { $gt : 5 } }}) فهل هنالك طريقة أخرى لأتمكن من جلب المستندات التي تحوي عدد عناصر ضمن مصفوفة أكبر أو أصغر من عدد محدد (دون تغيير بنية المستند الحالية)؟
    1 نقطة
  6. لابد أنك تعلم ان من تقنيات تعلم الاَلة التجميع clustering و هو المستخدم بصورة موسعة في عدد من المجالات مثل تقسيم العملاء Customer segmentation، توصيات منتجات أمازون Amazon’s recommendation system، الرابط بين هذه البيانات الضخمة هو غياب العناوين labels، وهنا تأتي خوارزميات عدة مثل K-Means و DBSCAN لتحل المشكلة بالإعتماد إما خصائص البيانات مثل كثافتها أو المسافة بينها و غيرها. ما يميز DBSCAN عن خورازميات اخرى مثل K-Means و Hierarchical Clustering هو عجزهم عن إنشاء مجموعات تعتمد على شكل البيانات إذا قمنا بتمثيلها في مخطط أبعاد dimensional diagram. بالنظر للصورة أعلاه ترى كيف تقوم الخوارزميات بتقسيم البيانات إلى مجموعات مختلفة، و الأن لنرى كيف تقوم خوارزمية DBSCAN بتقسيم البيانات. لاحظ أن الخوارزمية أخذت في الإعتبار القيم الشاذة أو المتطرفة بوضعها في مجموعة مختلفة، حيث انها لا تنتمي إلى أي من المجموعات الأخرى. لعلك لاحظت من الإسم أن DBSCAN تعتمد على كثافة البيانات وهي بعكس K-Means لا تحتاج لتعريف مسبق بعدد المجموعات المراد أخذها في الإعتبار للقيام بعملية التقسيم.
    1 نقطة
  7. هي طريقة لعمل تقسيم للبيانات الغير معنونة، unlabeled data ويستخدم في التعلم بلا إشراف يحل مشكلة K-Means في تشكل العناقيد في البيانات التي فيها كثافات متفاوتة حيث تعتمد على إنشاء دوائر حول كل عينة من البيانات ويتم بعدها تصنيف العينات على أنها عينات أساسية أو حدية أو ضوضاء. حيث تعتبر العينة التي تحتوى على عدد min_samples أو أكثر من العينات بعينة أساسية وتعتبر العينة حدية إذا كان min_samples أقل في حين أن العينات التي لا تحوي دوائرها عينات تعتبر ضوضاء. يتم استخدامه عبر الموديول sklearn.cluster. استدعاء المكتبات: from sklearn.cluster import DBSCAN في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل. الشكل العام للموديل: DB=DBSCAN(eps=0.5, min_samples=5, algorithm='auto', p=None, n_jobs=None) الوسيط الأول eps هو اختصار ل epsilon أكبر مسافة بين عينتين من البيانات. الوسيط الثاني min_samples أقل عدد من العينات لتحديد فيما إذا كانت العينات أساسية أو حدية أو ضوضاء. الوسيط الثالث algorithm نوع الخوارزمية الذي يستخدمها NearestNeighbors لحساب أقرب جار وحساب المسافات بين العينات وهي ‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’ ولكن ينصح باعتماد auto لكي يتم اختيار أفضل خوارزمية. الوسيط الرابع p الطاقة لمقياس مينكوفسكي حيث عندما تساوي 1 يكون حساب المسافة عن طريق قانون منهاتن للمسافات وعندما تساوي 2 يتم الحساب عن طريق المسافة الإقليدية وفي الحالة الافتراضية يتم استخدام مينكوفسكي. الوسيط الخامس n_jobs عدد المعالجات التي تعمل بالتوازي وبتالي كلما زاد العدد زاد التسريع ,يوضع -1 للدلاله على عمل كامل المعالجات طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train,X_test تسطيع كتابة الأتي لعملية التدريب. الشكل العام للموديل: DB=DBSCAN(eps=0.5, min_samples=5,algorithm='auto', p=None, n_jobs=None) DB.fit(X_train) حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب . يوجد دالة أخرى تستخدم لغرض التنبؤ كالآتي: نستطيع فيها حساب قيم التقسيم على التدريب والاختبار عن طريق التابع fit_predict ويكون وفق الشكل: y_pred_train = DB.fit_predict(X_train) y_pred_test = DB.fit_predict(X_test) print('DB Train data are : ' ,y_pred_train) print('DB Test data are : ' ,y_pred_test) لنأخذ مثال يوضح الموديل: # استدعاء المكتبات from sklearn.cluster import DBSCAN import numpy as np # تعين داتا دخل مزيفة X = np.array([[50, 3], [4, 5], [25, 30], [4, 1], [2, 7], [2, 8]]) # بناء الموديل DB= DBSCAN(eps=3, min_samples=2) # طباعة تصنيف العينه DB.fit_predict([[1,2]])
    1 نقطة
  8. إن MVC هو اختصار لـ Model View Controller وهي بنية لتصميم البرمجيات (وليست طريقة)، وبالتالي لا تعتمد على إصدار محدد أو لغة برمجة معيّنة، فلن تتأثر بأي نسخة PHP تقوم باستخدامها. على العكس تماماً، تمنح البنية اللازمة والمتينة للبرمجيات التي يتم تطويرها مهما اختلفت لغات البرمجة والإصدارات. أما بالنسبة لاستخدام MVC دون أطر عمل، فذلك يعود لفهمك لهذه البنية وإمكانية تطبيقها بدءً من توزيع هيكلية مجلّدات المشروع وصولاً إلى فصل كل من: المسارات - طبقة التعامل مع البيانات - طبقة المحكّمات. والدوال والتوابع والوسطاء التي يتم استخدامها في كل طبقة. لأن أطر العمل في PHP وخاصةً لارافل مبنية بشكل كامل على بنية MVC وبالتالي لن تحتاج للتعمّق في بناء هيكلية الملفات والتوابع بشكل يدوي. في حال أردت بنائها بنفسك، يجب عليك التعمّق أكثر في فهم هذه البنية ودراسة كيفية عملها لتستطيع تطبيقها في مشاريعك. ولكن كنقطة بداية يمكنك البدء في توزيع هرمية المشروع لديك إلى النقاط الثلاث الأساسية في MVC. كما يمكنك البحث والاطلاع على المقالات والأسئلة المطروحة حول MVC ضمن الأكاديمية.
    1 نقطة
  9. يمكنك استخدام دالة md5 لتشفير كلمات المرور مثل $password = "123"; echo md5($password); ايضا يمكنك استخدام الدالة md5 في تشفير النصوص بهذا الشكل $string = "Hello" ; echo md5($string); ايضا يمكنك استخدام base64_encode في تشفير النصوص بهذا الشكل $string = "Hello" ; echo base64_encode($string);
    1 نقطة
  10. يمكن إجراء التشفير وفك التشفير في PHP باستخدام الإضافة Cryptography من خلال توابع OpenSSL. حيث يمكنك تشفير سلسلة نصية من خلال التابع التالي: string openssl_encrypt( string $data, string $method, string $key, $options = 0, string $iv, string $tag= NULL, string $aad, int $tag_length = 16 ) والمتغيّرات الأساسية للدالة هي: data: السلسلة النصية التي نرغب بتشفيرها method: طريقة التشفير key: مفتاح التشفير وبعدها يمكنك تخزينها في متغيّر ثم ضمن قاعدة البيانات أو معالجتها بالطريقة التي ترغب بها. ويتم فك التشفير أيضاً من خلال: string openssl_decrypt( string $data, string $method, string $key, int $options = 0, string $iv, string $tag, string $aad) مثال عن تشفير سلسلة نصية: $simple_string = "Welcome to GeeksforGeeks\n"; //طباعة السلسلة النصية الأصلية echo "Original String: " . $simple_string; // طريقة التشفير $ciphering = "AES-128-CTR"; $iv_length = openssl_cipher_iv_length($ciphering); $options = 0; // المتجه الأولي للتشفير $encryption_iv = '1234567891011121'; // مفتاح التشفير $encryption_key = "secretkey"; $encryption = openssl_encrypt($simple_string, $ciphering, $encryption_key, $options, $encryption_iv); // طباعة السلسلة المشفّرة echo "Encrypted String: " . $encryption . "\n"; //أما فك التشفير فيتم بطريقة مماثلة مع استخدام التابع التالي $decryption=openssl_decrypt ($encryption, $ciphering, $decryption_key, $options, $decryption_iv); كما يوجد أيضاً طرق أخرى عديدة للتشفير ومنها مايعرف بـ Hash والذي يستخدم لتشفير كلمات المرور، مثال: $password = 'password12345'; $random = openssl_random_pseudo_bytes(18); $salt = sprintf('$2y$%02d$%s',13,substr(strtr(base64_encode($random), '+', '.'), 0, 22) ); $hash = crypt($password, $salt);
    1 نقطة
  11. TfidfVectorizer هو مقياس إحصائي يُقال إنه أصلح المشكلات مع CountVectorizer بطريقة ما. يتكون من جزأين، TF (تردد المدى) مضروبًا في IDF (تردد المستند العكسي). يقيس TF (تكرار المصطلح) عدد مرات ظهور مصطلح أو كلمة في مستند معين. يقيس IDF (تكرار المستند العكسي) أهمية المصطلح عبر مجموعة. درجة TF-IDF هي نتاج هذين المصطلحين. وبالتالي ، درجة TF-IDF = TF * IDF يمكن تطبيق هذا الترميز بسهولة في مكتبة Sklearn، حيث يتم استخدام هذا الكلاس كالتالي: fit_transform(data) نستخدمه للقيام بعملية ال fitting (الترميز) و ال transform (تطبيق الترميز -تحويل البيانات من شكلها الحالي إلى الشكل الجديد اعتماداً على الترميز الذي تم إنشاؤه في مرحلة ال fitting-) على البيانات. إذا أردت استعراض النص بعد الترميز استخدم التابع toarray كما فعلت في المثال: # استيراد الكلاس from sklearn.feature_extraction.text import TfidfVectorizer # إنشاء مجموعة بيانات data = [ 'This is a Hsoub website.', 'Where is the company headquarters?', 'Is this the first example?', 'Is this the first document?', ] # أخذ غرض من الكلاس vectorizer = TfidfVectorizer() #والتحويل fitting تطبيق ال X = vectorizer.fit_transform(data) # عرض أسماء الميزات print(vectorizer.get_feature_names()) # طباعة النصوص المرمزة بهذا الترميز print(X.toarray()) ##################################### Output ############################################# ['company', 'document', 'example', 'first', 'headquarters', 'hsoub', 'is', 'the', 'this', 'website', 'where'] [[0. 0. 0. 0. 0. 0.61087812 0.31878155 0. 0.38991559 0.61087812 0. ] [0.52130524 0. 0. 0. 0.52130524 0. 0.2720387 0.33274238 0. 0. 0.52130524] [0. 0. 0.60759891 0.47903796 0. 0. 0.31707032 0.38782252 0.38782252 0. 0. ] [0. 0.60759891 0. 0.47903796 0. 0. 0.31707032 0.38782252 0.38782252 0. 0. ]]
    1 نقطة
  12. لان كل موقع له طريقة ما استطيع احدد فين بالضبط ما اردته اعطاء فكرة عامه عن طريقة ربط الدومين مع الاستضافة
    1 نقطة
  13. أحاول التطبيق على OOP ولكن عند إستخدام المعامل += يحدث أمر غير متوقع، في الكود التالي يوجد صنفين foo و foo2 وعند عمل كائن من كل صنف وإضافة قيمة إلى القائمة bar يتم إضافتها أيضًا إلى الكائن الآخر!! >>> class foo: ... bar = [] ... def __init__(self,x): ... self.bar += [x] ... >>> class foo2: ... bar = [] ... def __init__(self,x): ... self.bar = self.bar + [x] ... >>> f = foo(1) >>> g = foo(2) >>> f.bar [1, 2] >>> g.bar [1, 2] >>> f.bar += [3] >>> f.bar [1, 2, 3] >>> g.bar [1, 2, 3] لماذا أصبح الكائن g يحتوي على نفس القائمة أيضًا؟ هذه المشكلة لا تحدث إن قمت بإستخدام الطريقة العادية كالتالي: >>> f.bar = f.bar + [4] >>> f.bar [1, 2, 3, 4] >>> g.bar [1, 2, 3] >>> ما الفرق بين الطريقة الأولى والثانية؟
    1 نقطة
  14. اهلا بك، لاب توب، تحتاج core i7 رامات فوق 16، هارد ssd. يكون سعره من 1000 الى 1500 دولار او حتى أكثر..
    1 نقطة
  15. السلام عليكم اخي الكريم افضل شي انصحك بي اهتم بمعالج عالي ورام عالي وكرت شاشه والله يجعلنا فدناك
    1 نقطة
  16. في ميزانية ال 5000 جنيه مصري لا يمكن تجميع جهاز بكارت شاشة منفصل وذلك في حالة أن القطع جديدة ولكن البديل عن ذلك يمكن تجميع جهاز ب APU وهو معالج بكارت شاشة مدمج ويعتبر في نفس هذه الفئة (Ryzen 3 3200g أفضل إختيار متوفر) ولكن الأداء جيد جداً لهذه الفئة (يفضل إضافة قطعتين من الرام بدلاً من واحدة لأداء أفضل) ويمكنك تجميع باقي القطع بناء على هذا ال APU وستكون في حدود ال 5000 بالنسبة لأداء هذه التجميعة فيمكنها تشغيل معظم البرامج والألعاب الموجودة بدون مشكلة ولن تواجه مشكلة سواء في التصميم أو البرمجة
    1 نقطة
×
×
  • أضف...