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

محمد عزمي

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

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

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

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

    1

أجوبة بواسطة محمد عزمي

  1. قد ترغب بمطالعة الأجوبة على هذا السؤال المشابه لمعرفة وظيفة DNS. 

    أما تتمة السؤال فإجابته المختصرة هي "لا"، إذ أنّ وظيفة DNS - في ترجمة أسماء النطاقات إلى عناوين IP والعكس بالعكس - تختص أكثر في مجال شبكات الحاسب وليس في مجال البرمجيات، وسأفترض هنا أنك تعني "بتعلم DNS" أن تتعلم كيفية إعداده.

    بكافة الأحوال، قد يكون عليك الإطلاع على بعض المكاتب - وليس على طريقة إعداد DNS - إن كنت تريد برمجة تطبيقات خادم / زبون Client / Server كتطبيق محادثة مثلا، أو تطبيق تحكم عن بعد، أو أي تطبيق يحتاج للتواصل مع جهاز آخر عبر شبكة الحاسب. فيما عدا ذلك فلن تكون بحاجة لتعلمه بقصد احتراف البرمجة.

  2. لا بد من كتابة الكود البرمجي ضمن السؤال حتى نتمكن من مساعدتك. عمومًا أرجح أن يكون سبب الخطأ الأول واحدًا من أمرين:

    • إما أن صفحة HTML لديك تحوي على أكثر من وسم BODY
    • أو أنّ الصفحة تحوي وسومًا متداخلة فيما بينها بشكل خاطئ، كأن تضع وسم META أو TITLE خارج وسم HEAD.

    أما الخطأ الثاني فيعني أنّه سيتم تجاهل الأخطاء اللاحقة للخطأ الأول - إن وجدت - إلى أن يتم تصحيح الخطأ الأول. 

  3. يمكنك فعل ذلك بثلاث نقرات فقط في برنامج إنك سكيب Inkscape الذي يأتي مع إضافة مخصّصة لذلك الغرض، ومع القليل من التخصيص ستحصل على تقويم في غاية الجمال والتناسق. لفعل ذلك:

    • قم بتحميل وتثبيت تطبيق Inkscape إن لم يكن مثبتًا على جهازك.
    • افتح التطبيق، ثم من قائمة الإضافات Extensions اختر Render ثم التقويم Calendar
    • يمكنك النقر على تطبيق Apply للحصول على تقويم بشكله الأساسي، أو القيام ببعض التخصيص للألوان والتنسيق أو حتى تغيير أسماء الأشهر والأيام للحصول على تقويم جذّاب.

    المصدر

  4. يدعى النظام المسؤول عن تحويل النطاقات إلى عناوين انترنت IP بنظام أسماء النطاقات Domain Name Server واختصارًا DNS، وتعد BIND واحدة من أكثر الأدواة المستخدمة لتحقيق تلك الوظيفة، وهي أداة مجانية ومفتوحة المصدر.

    عند إعداد BIND ليقوم بوظيفة خادم DNS عليك أن تقوم ببناء ما يدعى بمنطقة التوجيه ومنطقة العودة، حيث تمثّل كل واحدة منهما بجدول يعود اليه BIND عند الحاجة:

    • منطقة التوجيه Forward Zone: تمثّل الجدول الذي سيعود اليه BIND عند الاستعلام عن IP ما بالاعتماد على اسم النطاق Domain.
    • منطقة العودة Reverse Zone: تمثّل الجدول الذي سيعود اليه BIND عند الاستعلام عن اسم نطاق Domain ما بالاعتماد على عنوان IP.
  5. بالطبع، يمكنك ذلك عبر استخدام خدمة OneDrive من مايكروسوفت، فإن لم يكن لديك حسابٌ لديها بعد فقد حان الوقت لإنشاء واحد. للقيام بذلك:

    1. قم بتسجيل الدخول إلى موقع: https://onedrive.live.com
    2. ثم قم برفع الملف الذي ترغب باستعراضه إلى خدمة OneDrive.
    3. بعد الإنتهاء من رفع الملف اضغط عليه بزر الفأرة الأيمن، ثم اختر "تضمين" أو Embed إن كنت تستخدم الواجهة الإنكليزية.
    4. سوف تظهر لك واجهة، اضغط على زر "إنشاء" أو Generate حتى يتم توليد كود HTML الذي ستقوم بتضمينه في موقعك. انسخ الكود ثم الصقه أينما تشاء ضمن كود الموقع.

    جدير بالذكر أنّ خدمة OneDrive توفّر لك إمكانية تعديل مظهر الملف، ولفعل ذلك اضغط على عبارة "تخصيص طريقة عرض وقة العمل المضمنة هذه" أو Customize how this embedded workbook will appear to others.

    المصدر

  6. يمكنك فعل ذلك بعدّة طرق، أولًا باستخدام العبارة الشرطية if كما يلي:

    SELECT IF(b = true, 'Yes', 'No') As colName FROM tableName
    

    حيث:

    • يمثل الوسيط الأول لدالة IF العبارة الشرطية وبهذه الحالة (b = true)، 
    • بينما يمثّل الوسيط الثاني النتيجة المُعادة بحال تحقق العبارة الشرطيّة، 
    • أما الوسيط الثالث فيمثّل النتيجة المُعادة بحال عدم تحقق العبارة الشرطيّة.

    أما الطريقة الثانية فهي باستخدام عبارة Case كما يلي:

    SELECT CASE b
               WHEN true THEN 'YES'
               WHEN false THEN 'NO'
           END As colName
    FROM tableName

    حيث:

    • نكتب اسم الحقل الذي نرغب باختبار قيمته بعد كلمة CASE،
    • ثم نكتب بعد كلمة WHEN أحد القيّم الممكنة للحقل،
    • ثم نكتب بعد الكلمة THEN القيمة التي نرغب بإعادتها بحال أخد الحقل القيمة السابقة. 

    مصدر 1 (عبارة IF)

    مصدر 2 (عبارة CASE)

  7. يعني ذلك أن التطبيق يدعم Wildcards. أما Wildcards فهو مصطلح يستخدم للدلالة على مجموعة الرموز الذي يمكن كتابتها في سياق ما - استعلام يكتب ضمن صندوق البحث في تطبيق ما مثلًا - لتستبدل لاحقًا بمحرف أو أكثر، ومن تلك الرموز:

    • النجمة (*) يمكن ألا تستبدل بشئ أو أن تستبدل بأي محرف أو أكثر. فمثلًا إن كتبت عبارة البحث:
    Wildc*rds 

    فستكون العبارات التالية مطابقة لعبارة البحث:

    Wildcrds
    Wildcaards
    Wildcad123rds

     

    • إشارة الاستفهام (?) يمكن أن تستبدل بمحرف واحد فقط، فإن أخذنا نفس عبارة الاستعلام الآتية:
    Wildc?rds 

    فستكون العبارتين الآتيتين غير مطابقتين:

    Wildcrds
    Wildcad123rds

    بينما ستكون العبارة الآتية مطابقة:

    Wildcards
    

    مصدر 1

    مصدر 2

  8. الخادم المكرّس Dedicated Server: يوفّر هذا الخيار إمكانية حجز خادم بكامل موارد، يعني ذلك أنّ الخادم سيكون مخصّصا لاستضافة موقعك - أو مواقعك - فقط، ولن يشاركه أي موقع آخر - لا تديرها بنفسك - في موارد النظام البرمجية أو الفيزيائية. بالإضافة لذلك، يوفّر ذلك الخيار إمكانية التحكم المطلق بالخادم، إذ سيكون بإمكانك التحكم به عن بعد بصلاحيات مدير النظام Administrator وبالتالي تثبيت وإعداد البرمجيات التي ترغب بها بنفسك.

    يعد الخيار السابق ذو تكلفة عالية، لذلك جاء الخادم الإفتراضي الخاص Virtual private server - واختصارًا VPS - كخيار بديل يوفّر لك ميزات مشابهة لما سبق وبكلفة أقل. سيكون عليك هنا دراسة احتياجاتك لتحديد مواصفات الخادم التي ترغب بحجزها كسعة الذاكرة ومواصفات المعالج وسعة التخزين، وستتشارك معك مواقع أخرى فيما بقي متاحًا من موارد الخادم. يوفّر هذا الخيار أيضًا امكانية التحكم بالخادم كمدير نظام.

    أما Cloud Server فهي تسمية تُطلق على الخادم الإفتراضي إن كان ديناميكيًا، يعني ذلك بشكل أساسي أنه قابل:

    • لتغيير مواصفات الجهاز الذي يشغّله - كسعة الذاكرة أو سرعة المعالج - أثناء عمله.
    • للانتقال من جهاز إلى آخر أثناء عمله.

    مصدر 1 (Dedicated Server)
    مصدر 2 (VPS)
    مصدر 3 (Cloud Server)

  9. تتيح لك إضافة Deviantart Stash Plugins القيام بذلك، ولكن أولًا عليك تثبيتها عبر اتباع الخطوات الآتية:
    1. افتح الطرفية Terminal ثم أكتب فيها الأوامر الآتية:
     

    sudo add-apt-repository ppa:doctormo/deviantart-plugins
    sudo apt-get update
    sudo apt-get install gimp-plugin-dastash inkscape-extension-dastash

    تعمل الأوامر السابقة على إضافة المستودع الحاوي على حزمة الإضافة، ثم تحديث قائمة الحزم المتوفرة، وأخيرًا تثبيت الإضافة. 

    2. بعد الانتهاء من تثبيت الإضافة، افتح تطبيق جيمب GIMP ثم ابحث عن الأمر Publish to تحت قائمة صورة Image، ثم اختر deviantArt Stash وقم بتسجيل الدخول إلى حسابك.

    جدير بالذكر أنّ هذه الإضافة متوافقة مع تطبيق إنك سكيب Inkscape أيضًا.

    المصدر

  10. عادةً ما يتم ذكر ذلك التصنيف عند الحديث عن برمجة الويب، ففي ذلك السياق هنالك تفاعل مستمر بين المستخدم ممثّلًا في المتصفح من جهة، وبين خادم الويب من جهة أخرى. وبناءً على ذلك، فإن جزءًا من الكود البرمجي ينتقل من طرف الخادم إلى طرف المستخدم ليتم تنفيذه من قبل المتصفح، بينما يبقى الجزء الآخر على طرف الخادم ليقوم بتنفيذه بنفسه.

    أفضل مثال عن ذلك هي آلية التحقق من مدخلات المستخدم، إذ أن إرسال بيانات خاطئة سيتسبب بأخطاء عند التنفيذ علاوةً على أنه سيشكل عبئًا لا حاجة له على موارد الشبكة. بالتالي يتم التحقق من مدخلات المستخدم من قبل المتصفح قبل إرسالها باستخدام لغة مثل جافا سكريبت JavaScript، أما على طرف الخادم فيتم معالجة المدخلات باستخدام لغات مختلفة مثل جافا Java، أو PHP، أو تقنية ASP.NET باستخدام لغة #C أو VB.

    مصدر 1

    مصدر 2

    • أعجبني 1
  11. هو عنوان فريد يُمنح لكل جهاز (حاسوب، كاميرا، طابعة، …) متّصل بالشبكة حتى تتمكن تلك الأجهزة من التواصل فيما بينها عبر بروتوكول الإنترنت Internet Protocol. فكّر بالموضوع على أنه الرقم الذي يُمنح لكل منزل في شارع ما، فإن رغبت أن تدّل شخصًا إلى أحد المنازل، فستقول له شارع كذا، المنزل رقم خمسة مثلًا.

    يتألف عنوان IP الإصدار الرابع IPv4 من أربعة أرقام تفصل بينها ثلاثة نقاط، حيث يمكن أن يمثّل كل من تلك الأعداد ضمن المجال من 0 وحتى 255، أي أنّ كلًّا منها يحتاج إلى ثمانية خانات ليمثّل وفق نظام العد الثنائي. يمكن أن تأخذ عناوين IPv4 أي قيمة ضمن المجال:

    0.0.0.0 - 255.255.255.255

    أما الإصدار الأحدث IPv6 فيتألف من ثمانية أعداد، يفصل بين كل اثنين منها نقطتين : ويتكون كل من تلك الأعداد من أربعة خانات بنظام العد الست عشري، حيث يمكن أن تأخذ كل خانة قيمة ضمن المجال من 0 وحتى F.

    يمكن أن تأخذ عناوين IPv6 أي قيمة ضمن المجال:

    0000:0000:0000:0000:0000:0000:0000:0000 - FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
    

    مصدر 1 (IPv4)

    مصدر 2 (IPv6)

    فيديو توضيحي للمقارنة بين الإصدارين

  12. يحدث ذلك عندما تتغير قائمة اعتماديات dependencies بعض الحزم packages، وتصبح بحاجةٍ إلى اعتماديات أخرى غير مثبّتة على النظام.

    لحل تلك المشكلة يمكنك استخدام الأمر:

    apt-get dist-upgrade
    

    الذي سيقوم بتحديث كل الحزم، بعد تثبيت اعتمادياتها الجديدة إن كانت بحاجة لذلك.

    المصدر

  13. يمكنك فعل ذلك عبر توجيه ناتج تنفيذ التعليمة إلى ملف خارجي، ويتم ذلك عبر استخدام الرمز < كما يلي:

    comm > file

    حيث يعبّر comm عن الأمر المراد تنفيذه، ويعبّر file عن مسار الملف الذي ترغب بتوجيه الخرج إليه.

    فمثلًا، جرب تنفيذ الأمر:

    cat > a.txt

    جدير بالذكر هنا أن الرمز < سيقوم بإنشاء ملف بالمسار والإسم الوارد بعده، أما إن وجد ملف بذلك الإسم فسيقوم بالكتابة فوقه وبالتالي ستخسر محتوياته القديمة، وفي هذه الحالة وإن كنت ترغب بإلحاق ناتج تنفيذ الأمر إلى نهاية الملف عوضًا عن الكتابة فوقه، فعليك استخدام << كما يلي:

    comm >> file


    فمثلًا:

    cat >> a.txt

    المصدر

  14. بدايةً لا بد لي أن أنوّه إلى أن التحقق من المدخلات باستخدام لغة جافا سكريبت JavaScript غير كافي، فمن الممكن أن يعطّل المستخدم تشغيلها على المتصفح، لذلك يجب عليك أن تتحقق من البريد الإلكتروني على طرف الخادم أيضًا.

    لكي تقوم بالتحقق عليك استخدام التعابير المنتظمة Regular Expression والتي تعرف اختصارًا بـ ReqEx، وذلك عبر مقابلة القيمة المدخلة من قبل المستخدم مع عبارة تحدّد شكل البريد الالكتروني المطلوب، فمثلًا، العبارة التالية تقبل عناوين البريد الإلكتروني المؤلفة من:

    • محرف واحد على الأقل قبل رمز @ (يعبّر عن اسم المستخدم)
    • رمز @
    • محرف واحد على الأقل بعد رمز @ (يعبر عن اسم الموقع الذي يقدم خدمة البريد الالكتروني) ثم يتبع تلك المحارف نقطة (.) وبعدها حرفين أو ثلاثة أحرف (تعبّر عن النطاق الأعلى)

    فيما يأتي عبارة ReqEx التي تحقق ما سبق:

    /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

    حيث تعبر i في نهاية العبارة عن عدم مطابق حالة الأحرف، فمثلًا، تكون ReqEx مطابقة لـ reqex.

     

    يمكنك استخدام العبارة السابقة ضمن دالة جافا سكريبت كما يلي:

    function checkemail() {
    	var str=document.validation.emailcheck.value
    	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    	if (filter.test(str))
    		return true
    	else {
    		alert("Please input a valid email address!")
    		return false
    	}
    }

    حيث تعبّر emailcheck عن اسم حقل input الذي سيكتب المستخدم ضمنه البريد الإلكتروني.

    المصدر

  15. بدايةً، لا بد أن يكون لديك حساب لدى غوغل Google Account فإن لم تكن تملك واحدًا فسيكون إنشاؤه خطوتك الأولى.

    الخطوة التالية هي رفع لوغو موقعك إلى شبكة الويب، يمكنك الاستفادة من رابط URL للوغو على استضافة موقعك، أو رفعه إلى إحدى خدمات استضافة الصور. إنّ امتلاكك لحساب غوغل يمنحك الوصول إلى خدمة استضافة الصور بيكاسا حيث يمكنك رفع اللوغو إليها إن رغبت بذلك.

    بعد الانتهاء من الخطوتين السابقتين قم بتسجيل الدخول إلى خرائط غوغل ثم أكتب إحداثيات الموقع الجغرافي في مربع البحث لتنتقل إليه، بعدها أضف إشارة مرجعية لذلك الموقع، سيظهر عندك مربع فيه خيار لكتابة وصف وإضافة صورة، اضغط على زر الكاميرا ثم أدخل رابط الصورة، وبذلك تكون قد أدرجت صورتك ضمن خرائط غوغل.

    المصدر

×
×
  • أضف...