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

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

  1. Mohamad Ibrahim3

    Mohamad Ibrahim3

    الأعضاء


    • نقاط

      2

    • المساهمات

      1311


  2. طارق جهاد

    طارق جهاد

    الأعضاء


    • نقاط

      1

    • المساهمات

      188


  3. عبدالمهيمن الآغا

    • نقاط

      1

    • المساهمات

      15


  4. zahershullar

    zahershullar

    الأعضاء


    • نقاط

      1

    • المساهمات

      625


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

المحتوى الأعلى تقييمًا في 11/30/17 في كل الموقع

  1. مقدمة إلى المفهوم الكائني تُعتبر لغة سي شارب لغة برمجة كائنيّة صرفة pure object oriented programming language فكلّ ما تشاهده أمامك في سي شارب عبارة عن كائن. سيكون هذا الدّرس نظريًّا بعض الشيء ولكن فهمه بالشكل الصحيح يُعدّ أمرًا حيويًّا للبرمجة باستخدام سي شارب. ولنكن واقعيين، فإنّ هذا الدرس يُعتبر مدخلًا مبسّطًا للغاية إلى هذا الموضوع المهم والضخم ولا يمكن اعتباره بأيّ حال من الأحوال مرجعًا للبرمجة كائنيّة التوجّه. ستحصل -بعد قراءتك لهذا الدرس- على المعرفة الضروريّة للتمييز بين الأصناف classes والكائنات objects وفهم العلاقة بينهما. بالإضافة إلى فهم المبادئ الأوليّة للوراثة والتغليف. لكي نفهم ما هو الصنف وما هو الكائن اسمع منّي هذه القصّة: نتبع نحن البشر إلى ما يسمّى بالصنف الإنساني. يُعرّف هذا الصنف المزايا التي يجب أن يتمتّع بها كلّ إنسان. فمثلًا لكلّ إنسان اسم وطول ووزن ولون عينان وبصمة إبهام مميّزة تميّزه عن أيّ إنسان آخر. يُعرّف الصنف class الإنسانيّ هذه الصفات السابقة، بحيث أنّ كلّ كائن object إنسانيّ من هذا الصنف تكون له مثل هذه الصفات ولكنّ مع مجموعة خاصّة من القيم لها. فمثلًا الكائن من الصنف الإنساني هو إنسان قد يكون اسمه سعيد وطوله 180 سم ولون عينيه أسود وله بصمة إبهام مميّزة، وهذا الإنسان يختلف عن كائن إنسانيّ آخر، اسمه عمّار وطوله 175 سم ولون عينيه بنيّ وله أيضًا بصمة إبهام مميّزة خاصّة به، وهكذا. ندعو الصفات السابقة بالخصائص Properties، فالصنف Class يعرّف الخصائص، أمّا الكائن Object فيتمتّع بهذه الخصائص ولكن مع مجموعة قيم لها تميّزه عن كائنٍ آخر. أمر آخر، يُعرّف الصنف الإنساني أيضًا سلوكيّات أو إجراءات معيّنة خاصّة للكائنات التي تعود للصنف الإنسانيّ. فهناك مثلًا سلوكيّات المشي والجري والضحك. وفي الغالب أنّ كل كائن يُعبّر عن هذه السلوكيّات بشكل يراعي خصوصيّته. فلكلّ منّا أسلوب مختلف في الضحك. كما يمتلك كلّ منّا أسلوب مختلف في المشي والجري، فقد تميّز إنسانًا لا ترى وجهه من خلال مشيته فقط وهذا أمر واردٌ جدًّا. مثل هذه السلوكيّات Methods نصطلح عليها في البرمجة بالتوابع. فالصنف الإنسانيّ يُعرّف وجود مثل هذه السلوكيّات ولكلّ كائن إنسانيّ الحريّة في التعبير عن هذه السلوكيّات بالشكل الذي يرغبه. التابع في البرمجة يضم تعليمات برمجية يجري تنفيذها عند استدعائه. يعالج ويتعامل هذا التابع عادةً مع الخصائص والتوابع الأخرى الموجودة ضمن نفس الكائن. نسمي التوابع والخصائص بأعضاء الصنف class members وهناك أعضاء أخرى سنتناولها في الدروس التالية. المبادئ العامة للمفهوم كائني التوجه هناك المئات من المقالات والكتب التي تتحدّث عن المفهوم الكائنيّ من منظورات مختلفة، وهناك أساليب متعدّدة تسمح بتحليل المسألة المطروحة وتصميمها وفق أسلوب كائنيّ أو ما يُعرف بالتصميم والتحليل كائنيّ التوجّه OOAD. ولكن يكفيك أن تعرف الآن أنّ هناك مبدآن أساسيّان ينبغي أن تتمتّع بها أيّ لغة برمجة تدعم المفهوم كائنيّ التوجّه وهما: التغليف Encapsulation والوراثة Inheritance. وهناك مفهوم مهم آخر يستند إلى الوراثة وهو التعدّديّة الشكلية Polymorphism. التغليف Encapsulation وهو مبدأ جوهري في البرمجة كائنيّة التوجّه، وهو أحد أسباب ظهور هذا المفهوم. يُقرّر هذا المبدأ أنّه ليس من المفترض أن نطّلع على آلية العمل الداخلية للكائن. ما يهمنا هو استخدام الكائن وتحقيق الغرض المطلوب بصرف النظر عن التفاصيل الداخليّة له. تأمّل المثال البسيط التالي: عندما نقود السيّارة ونريد زيادة سرعتها فإنّنا بكلّ بساطة نضغط على مدوسة الوقود. لا أعتقد أنّ أحدًا يهتمّ بالآلية الميكانيكيّة التي تقف وراء الضغط على مدوسة الوقود. فالمطلوب هو زيادة سرعة السيّارة فحسب دون الاهتمام بالتفاصيل الداخليّة. فالسيّارة تُغلّف encapsulate التفاصيل الميكانيكيّة الداخليّة التي تقف وراء زيادة سرعة السيّارة. السيّارة في هذا المثال هو كائن Object. وعمليّة زيادة السرعة هي سلوكيّة (تابع) Method من كائن السيّارة. هناك مثال آخر كثيرًا ما نراه أثناء تجوّلنا في الشوارع ومحطّات القطار وصالات الانتظار، وهو آلات تحضير المشروبات الساخنة. نقف أمام الآلة نُدخل النقود ثمّ نضغط على زرّ محدّد لنحصل على المشروب الساخن الذي نرغب به. لا نهتمّ عادةً بالتفاصيل الداخليّة التي تحدث ضمن الآلة عندما نضغط أحد الأزرار للحصول على كوب من القهوة. فالآلة هنا تُعتبر كائنًا، وعمليّة الحصول على كوب من القهوة هي سلوكيّة Method من هذا الكائن. فهذه الآلة تعمل على تغليف encapsulate التفاصيل الداخليّة لعمليّة التحضير، فكلّ ما نفعله هو ضغط الزر ومن ثمّ نحصل على الناتج المطلوب. فإذا ما أُجري تعديل في الآلة بحيث تتغيّر طريقة تحضير مشروب ساخن لجعله أفضل وأكثر لذّة، فإنّ ذلك لن يؤثّر مطلقًا على أسلوب التعامل مع الآلة للحصول على نفس المشروب، ولن نلاحظ هذا التعديل إلّا بعد تذوّقنا للمشروب وملاحظة الفرق في المذاق. الوراثة Inheritance تُعتبر الوراثة من أهم أشكال إعادة الاستخدام للمكوّنات البرمجيّة، حيث يعمل الصنف الجديد على الاستفادة من المكوّنات الموجودة مسبقًا ضمن الصنف الذي "يرث" منه ويجري عليها بعض التعديلات التي تناسبه على نحو مخصّص. فبدلًا من إنشاء صنف جديد من الصفر، يمكننا إنشاء صنف يعتمد على صنف آخر ويستفيد من خصائصه وسلوكيّاته (توابعه) الموجودة مسبقًا ثمّ يكيّفها أو يضيف عليها. نسمّي الصنف الأساسي الذي نرث منه بالصنف الأب. أمّا الصنف الذي يقوم بعمليّة الوراثة فنسمّيه بالصنف الابن أو بالصنف المشتق. لتثبيت الفكرة لنتناول المثال التالي. في المدارس هناك ثلاثة أنواع أساسيّة من الأشخاص المتواجدين فيها: الطلاب والمدرّسون والإداريّون. يمكننا بناء صنف عام يُمثّل أي شخص يعمل في المدرسة وليكن SchoolMember يحتوي هذا الصنف على خصائص مثل: الاسم والكنية واسم الأب واسم الأم وتاريخ الميلاد ورقم الهاتف. يمكننا البناء على هذا الصنف عندما نريد إنشاء أصناف أكثر "تخصّصًا" منه. مثل الصنف الذي يُعبّر عن الطلاب Student والصنف الذي يُعبّر عن المدرّسين Teacher، والصنف المُعبّر عن الإداريين Staff. يرث كلّ صنف منها من الصنف الأب SchoolMember فيصبح لكلّ منها نفس الخصائص الموجودة ضمن الصنف SchoolMember بشكل تلقائيّ. من الواضح أنّ الصنف Student مخصّص أكثر من الصنف SchoolMember فهو يحتوي بالإضافة إلى الخصائص الموجودة في SchoolMember خصائص فريدة خاصّة به. فمثلًا من الممكن أن يحتوي على الخاصيّة التي تعبّر عن الصفّ الحالي Grade وعن السلوك العام Behavior للطالب، أمّا صنف المدرّس Teacher فمن الممكن أن يحتوي (بالإضافة إلى الخصائص الموجودة ضمن SchoolMember) على خاصيّة Course التي تُعبّر عن المقرّر الذي يدرّسه (رياضيّات، فيزياء ...الخ) والخاصيّة WeeklyHours التي تعبّر عن عدد الساعات التدريسيّة الأسبوعيّة المكلّف بها. وينطبق نفس المفهوم تمامًا على الصنف Staff الذي يعبّر عن الموظّفين الإداريين في المدرسة. فالوراثة تنتقل بنا من الشكل الأكثر عموميّةً SchoolMember إلى الشكل الأكثر تخصيصًا مثل Student. وفي الحقيقة كان من الممكن أن نتابع عمليّة الوراثة اعتبارًا من الصنف Staff فهناك قسم التوجيّه وهناك أمانة السر والإدارة وغيرها، وكلّ منها يمكن أن يرث من الصنف Staff. التعددية الشكلية Polymorphism بفرض أنّنا نريد بناء برنامج يحاكي الحركة الانتقاليّة لعدّة أنواع من الحيوانات لدراسة حيويّة. كلّ من أصناف السمكة Fish والطائر Bird والضفدع Frog ترث من الصنف Animal الذي يمثّل أيّ حيوان. بفرض أنّ الصنف Animal يحتوي على سلوكيّة (تابع) اسمها Move (تُعبّر عن الانتقال)، فكما نعلم أنّ هذه السلوكيّة ستصبح وبشكل تلقائي موجودة ضمن أيّ صنف يرث من الصنف Animal، وهنا تكمن التعدديّة الشكليّة. فكل صنف من الأصناف Fish وBird وFrog يُعبّر عن عملية الانتقال Move بشكل مختلف. فالسمكة ربما تنتقل عن طريق السباحة مترًا واحدًا عند استدعاء التابع Move. أمّأ الطائر Bird فمن الممكن أي يطير مسافة 10 متر عند كل استدعاء للتابع Move، وأخيرًا فإنّه من الممكن للضفدع أن يقفز مسافة 20 سنتيمتر كلّما استدعي التابع Move. فالتابع Move المعرّف ضمن الصنف Animal يمكن التعبير عنه بأشكال متعدّدة ضمن الأصناف الأبناء Fish وBird وFrog كلٌّ بحسب حاجته. الخلاصة تعرّفنا في هذا الدرس على المفهوم العام للبرمجة كائنيّة التوجّه وتعاملنا مع التغليف حيث لا تهمّنا التفاصيل الداخلية لآلية العمل. والوراثة التي تتعلّق بمفهوم إعادة الاستخدام والانتقال من العام (الأب) إلى المخصّص (الابن). بالإضافة إلى التعدديّة الشكليّة التي تسمح لنا بإكساب سلوكيّات مخصّصة للأصناف الأبناء تنسجم مع طبيعتها. سنتناول في الدروس التالية هذه المفاهيم بشكل تطبيقي في سي شارب.
    1 نقطة
  2. كنت أعبَث في برنامج الإليستريتور مازجًا الألوان النابضة معًا لإِنتاج بعض التأثيرات الرائعَة متدرَّجة الألوان. سأوضَّح لك اليوم كيف تستخدم أداة شبكة التدرج Gradient Mesh tool لإنشاء كرة ملوَّنة، والتي يُمكن تعديلها إلى أشكال جميلة رائعة بِاِستخدام أداة Warp tool. كونها وسائل تعتمد على فيكتور vector. هذه الرُسومات متنوعة للغاية، لذلك يمكن استخدامها في جميع أنواع مشاريع العلامات التجارية، أو ببساطة لإنشاء أعمال فنية مُمتعِة. العمل الفني الذي سيتمّ إنشاؤه هو عبارة عن أشكال دائرية متدرَّجة الألوان والتي تمزج مجموعة من الأشكال معًا بسلاسة. هذه الأنواع من التأثيرات النابضة بالحياة متدرَّجة الألوان تُعتبر شعبية جدًا في الوقت الراهن ومناسبة لتصاميم العلامات التجارية، واجهات التطبيقات، أو حتى خلفيات الهواتف كالموجودة في هاتف IPhone X. بِاِستخدام ألوان مختلفة واختيارات عشوائية، يمكنك إنشاء أشكال مميزة في كل مرة! قم بإنشاء مستند جديد في برنامج الإليستريتور بأي حجم، ولكن استخدم وضع RGB لمجموعة كاملة من الألوان النّابِضة بالحياة. قم برسم شكل بيضاوي على لوح الرسم، مع الضغط على مفتاح Shift في لوحة المفاتيح للاحتفاظ بالشكل دائري تمامًا. قم بمسح التظَّليل الأسود الافتراضي وقم بإضافة لون مشرق. اختار أداة شبكة التدرج واضغط في أي مكان بداخل الدائرة، قم بتغيير لون هذه النقطة إلى درجة لون مكملة، قد تكون قريبة من اللون الأصلي، أو شيء مختلف تمامًا. قم بإضافة نقطة تدرج لون أخرى في مساحة فارغة واختار لون آخر، ستقوم الشبكة بمزج الألوان المعبأة معًا لإنشاء انتقال سلس بينهم. إضافة نقاط الشبكة يقوم أيضًا بإنشاء نقاط إضافية حول حافة الشكل، استخدم أداة Lasso لتحديد زوج من هذه النقاط الخارجية برسم تحديد حولهم. قم بتغيير تعبئة الألوان سواءً بتحريك شريط التمرير في لوحة الألوان Color panel، أو بتغيير درجة اللون من الطيف الكامل، أو انقر نقرًا مزدوجًا على تعبئة اللون fill في شريط الأدوات لفتح مُنتقي الألوان باستخدام الفوتوشوب. استمر في تحديد النقاط باِستخدام أداة Lasso لإضافة المزيد من الألوان، وذلك من أجل القضاء على أي مساحات كبيرة من تعبئة اللون الأصلي. تحديد النقاط الموجودة على الحافة فقط وإضافة لون أكثر إشراقًا لهم يمكنه أن يساعد في إضافة تأثير متوهج. الآن، يجب على الدائرة أن تكون مملوءةً بمجموعة متنوعة من تدرجات اللون التي تنتقل بسلاسة خلال الشكل. لخلط الألوان إلى حد أبعد، اختار أداة Twirl من مجموعة أدوات Warp tool فى شريط الأدوات، انقر نقرًا مزدوجًا فوق الأداة لتعديل إعداداتها، قم بتغيير الحجم ليتناسب بعناية مع أبعاد الدائرة، ثم قم بتقليل الشدة (كثافة) إلى 10٪. بحرص، انقر وسط الدائرة لتبدأ في خلط الألوان قليلاً، قم بعمل تعديلات بسيطة لمنع الأخطاء من تشويه مسارات الشبكة كثيرًا. انقر نقرًا مزدوجًا على أداة Twirlلتعديل إعداداتها وتقليل الحجم إلى 200px تقريبًا. استخدام أداة الحجم الصغير هذه لخلط درجات الألوان فى مناطق معينة مجددًا بعمل تعديلات بسيطة مع كل نقرة. تبدو الكرة النهائية المتدرجة الألوان رائعة مع خليط من الألوان التي تنساب وتمتزج معًا، اتّبع نفس العملية مجددًا لتجربة ألوان مختلفة وإنشاء مجموعة من الدوائر متدرجة الألوان. هذه تبدو الدوائر رائعة، ولكن يمكننا أخذ هذا الدرس لأبعد من ذلك، بتحويل العمل الفني إلى أشكال تجريدية. اختار أداة Warp من شريط الأدوات واضغط مع السحب لتشويه الشكل. ستقوم بعض هذه الأشكال المشوهة بعمل بعض رسومات الشعارات الرائعة، إنها تبدو رائعة مع اعوجاج رقيق على جانب واحد فقط، أو بتشويه واسع لإعطاء الشكل مظهر أكثر سيولة. ترجمة –وبتصرّف- للمقال How To Create Colourful Gradient Orbs In Illustrator لصاحبه Chris Spooner.
    1 نقطة
  3. بالطبع يمكنك فعلها بواسطة الووردبريس ، ولكن آلية عمل ذلك تأخذ وقتا أطول انظر لشروحاتها في اليوتيوب ومنصات التعلم الإلكتروني.
    1 نقطة
  4. وعليكم السلام ورحمة الله. بإمكانك استخدام مهاراتك في HTML, CSS, JavaScript لتطوير تطبيقات سطح مكتب تعمل على جميع انظمة التشغيل، باستخدام تقينات كثيرة اهمها Electron https://electronjs.org/ لكني انصحك وبشدة اذا اردت تعلم عمل تطبيقات سطح مكتب بشكل متقن، ان تستخدم WPF، مع نمط التصميم MVVM. اقوم حالياً بتحضير محاضرة اونلاين مجانية حول هذا الموضوع وجميع المتطلبات اللازمة للبدء فيه ومثال جيد يعرض الية استخدام نمط التصميم مع MVVM وربطه ايضا مع خدمات الويب والعديد من الميزات الأخرى. اذا رغبت بالحضور راسلني على الايميل tareqjehad@yahoo.com بالتوفيق،،،
    1 نقطة
  5. أهلا محمد، نظام ادارة المحتوى ومسارات عدة أخرى بالمخطط أخي، ونعمل على إضافتها إلى الدورة وهذه التحديثات ستحصل عليها بشكل مجاني. حاليا الدورة تتألف من ثلاث مسارات: المسار الأول سنتعلم فيه بناء تطبيق مهام بسيط مع قاعدة بيانات باستخدام لغة PHP وبدون إطار عمل. المسار الثاني سنتعلم خلال المسار على تطبيق مدونة صغيرة وفي نهاية المسار سيتم بناء تطبيق إدارة مهام بسيط متعدد المستخدمين باستخدام إطار العمل Laravel. المسار الثالث ستتعلم من خلاله بناء واجهة برمجية API باستخدام إطار العمل لارافيل وذلك لموقع بسيط يقدم دروس تعليمية.
    1 نقطة
  6. أجل، الدورة تشرح SQL وقواعد بيانات MySQL و phpMyAdmin وكيفية التعامل معها بشكل كامل، بالاضافة لاستخدامها من خلال Eloquent المستخدمة في اطار العمل Laravel.
    1 نقطة
  7. نرى العديد من التصاميم عبر الإنترنت التي يشكّل فيها نص كثيف صورة ما لوجه شخص مثلًا. في هذا الدرس سنتعلّم كيفية القيام بذلك عبر برنامج جيمب GIMP. في هذا الدرس ستكون الصورة داكنة للغاية لدرجة أن الأسود يشكّل معظم أجزاء الصورة وفي هذه الحالة سنحتاج إلى صورة داكنة لوجه شخص. حمّل هذه الصورة المجانية لوجه هذا الطفل. تأكّد أن لون المقدمة هو اللون الأسود ثم انقر على أيقونة إضافة طبقة جديدة من لوحة الطبقات واختر خيار التعبئة بلون المقدمة (وهو اللون الأسود). استخدم أداة النص ثم ارسم بها مستطيل الكتابة بحيث يكون أكبر من مساحة الصورة حتى يغطي النص جميع جوانب الصورة. اكتب نصًا كثيفًا يغطي كامل مساحة مربع النص بخط صغير وباللون الأبيض. واختصارًا للوقت قم بنسخ نص جاهز ولصقه ضمن المربع. حدّد طبقة النص وانقر بالزر الأيمن للفأرة عليها واختر من القائمة المنبثقة خيار Add Layer Mask واختر من النافذة التي ستظهر لك الخيار الأول( White (full opacity حدّد طبقة الطفل الأصلية ثم اضغط على Ctrl+C لنسخ الطبقة ثم حدّد قناع طبقة النص واضغط Ctrl+V للصق الطبقة كقناع لطبقة النص. انقر على الطبقة الأخيرة التي قمنا بلصقها بالزر الأيمن للفأرة ثم اختر من القائمة الخيار Anchor Layer ستلاحظ كيف أن هناك بعض المساحات التي يظهر فيها النص بشكل خاطئ ويجب إزالته لذلك اختر أداة الفرشاة واختر اللون الأسود وحدّد قناع الطبقة ولوّن فوق تلك المساحات غير المرغوبة باللون الأسود. اذهب إلى القائمة Colors > Levels لتعديل مستويات الإضاءة لطبقة قناع النص. والآن ضع القيمة 170 لمؤشر الإضاءة من الجهة اليمنى كما في الصورة حتى نجعل النص فاتحًا أكثر ويظهر بشكل أفضل. وبهذا تكون الصورة النهائية جاهزة ويمكن استخدام نص بالأحرف اللاتينية التي قد تجعل مستوى التعبئة أعلى من مستوى النص العربي.
    1 نقطة
×
×
  • أضف...