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

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

  1. سامح أشرف

    سامح أشرف

    الأعضاء


    • نقاط

      7

    • المساهمات

      2934


  2. ترافه عشق

    ترافه عشق

    الأعضاء


    • نقاط

      3

    • المساهمات

      8


  3. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      3

    • المساهمات

      6975


  4. Ali Ismael

    Ali Ismael

    الأعضاء


    • نقاط

      2

    • المساهمات

      96


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

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

  1. regex أو regexp هي طريقة لمطابقة السلاسل النصية بشكل كامل أو جزئي بالاعتماد على خليط من المحارف والأرقام و رموز الاستبدال والتكرار التي تمثل مجتمعة هيكلية لعمل نمط تطابق مع نصوص لاستخراج الكلمات المتشابهة التي تنتمي لنفس نمط البحث. يطلق عليها باللغة العربية التعابير النمطية أو التعابير المنتظمة أو أحرف البدل. في حال التعامل معها للبحث في نص باللغة الإنكليزية نستخدم محارف جدول ASCII أي الحروف الإنكليزية abcd ... a-z ABCD ... A-Z 123 0-9 !@#$%^&*() .. أما في حال البحث في لغات أخرى، تختلف قيم المحارف حسب اللغات الطبيعية فمثلاً للبحث في نص باللغة العربية نستخدم مجال محارف Unicode وغيره حسب اللغة. محارف التحكم الأساسية: محرف (أو) بشكل محرف العمود ( "|" ) المنطقي Boolean ويُستخدم لإيجاد ناتج بحث من أحد خيارين ويكثر استخدامه في الكلمات التي يمكن أن تُكتب بشكلين أو أكثر مثل الكلمة الإنكليزية للون الرمادي gray | grey فوجود هذا التعبير، يعمل على البحث عن أحد الشكلين للكلمة. التجميع Grouping باستخدام ( ) الأقواس المدورة / الدائرية حيث نقوم بالتعبير عن مجموعة بحث جزئية مثلاً وضع gr(a|e)y هنا سيتم عمل مطابقة لأول حرفين g - r ثم مجموعة اختيارية من a - e ثم y محددات الكميات / التكرارات: إشارة الاستفهام ? وهي محرف تحكم، نكتبها بعد النمط الجزئي أو الحرف مثلاً وهي تقبل ظهور محرف أو عدم ظهوره ضمن سلسلة نصية (أي يكون لدينا محرف اختياري) أي يمكن للمحرف أن يتواجد 0 أو 1 مرة ليتم قبول النمط مثل كلمة اللون باللغة الإنكليزية colou?r حيث يمكن كتابتها بشكلين مع أو بدون حرف u وكلاً من ناتجي البحث مقبول النجمة * تقبل وجود النمط / المحرف بعدد تكرارات من 0 أي يمكن ألا يظهر، إلى اللانهاية (أي بدون تحديد عدد أعظمي لتكرار النمط الجزئي) مثلا النمط ab*c ووجود النجمة بعد حرف b أي يمكن أن يتكرر b من 0 إلى عدد غير محدد من المرات حيث يقبل السلاسل التالية مثلًا ac, abc, abbc, abbbc عدد مرات ظهور b غير محدد. إشارة الجمع أو زائد + تقبل وجود النمط / المحرف بعدد تكرارات من 1 أي يمكن أن يظهر المحرف مرة واحدة على الأقل، إلى اللانهاية (أي بدون تحديد عدد أعظمي لتكرار النمط الجزئي) مثلا النمط ab+c ووجود زائد بعد حرف b أي يمكن أن تم تكرار b من 1 إلى عدد غير محدد من المرات حيث يقبل السلاسل التالية مثلًا abc, abbc, abbbc عدد مرات ظهور b مرة على الأقل، أي على عكس النجمة الحد الأدنى هو تكرار واحد على الأقل. مجال تكرار محدد، يمكن استعمال الأقواس المجعدة curly brackets { } مع وضع رقمين بينهما فاصلة يمثلان الحد الأدنى والأعلى للتكرار المسموع به للمجموعة الجزئية أو المحرف {n} تكرار بالضبط n مطابقة {min,} تحديد الحد الأدنى {,max} تحديد الحد الأعلى {min,max} تحديد مجال بين حد أدنى و حد أعلى مثلاً للبحث عن hello يمكن كتابة hel{2}o => hello ^^ سيتم البحث عن تطابق للنمط مع حرفين L النقطة "." وتعبر عن محرف وحيد غير محدد أي محرف ممكن أن يظهر مثلا a.c يمكن أن يظهر بين a و b أي محرف آخر مثل aac abc acc aec adc aoc ^ متغير قبول محرف من عدة محارف باستخدام الأقواس المربعة [ ] مثلا في حال كتابة [abc] => سيتم قبول أحد الرموز التالية a أو b أو c تحديد مجال من المحارف المتتالية أبجدياً أو رقميا المطابقة لأحد الأحرف <= المجال a-c => a b c b-e => b c d e A-D => A B C D A-Z => جميع الأحرف بشكل كبير capital a-z => جميع الأحرف بشكل صغير small 0-9 => أي رقم . عدم انتماء لمجال، لا نريد للحرف الحالي أن يكون abc نكتب [^abc] يختلف تطبيقه من لغة برمجة لأخرى بشكل بيسط وحسب المكتبة التي تريد استعمالها لكل منها يمثل المحرف ^ بداية النمط ويمثل $ نهايته مثال لاختبار هل النص التالي يمثل بريد الكتروني "^ [a-zA-Z0-9_.+-]+ @ [a-zA-Z0-9-]+ \. [a-zA-Z0-9-.]+ $" ^ ^^^^^^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^ 1 2 3 4 5 6 7 حيث نلاحظ محرف بداية ^ مجال من أحرف ومحارف مكرر على الأقل مرة واحدة (كل حرف إما يتبع لمجال أو يكون _ + - .) محرف @ مجال مثل 2 النقطة نفسها مع محرف هروب مجال محارف آخر محرف النهاية $
    2 نقاط
  2. هل من الممكن مساعدتي في كتابة برنامج يفحص الرقم اذا ما كان عدد أولي أم لا باستخدام لغة c++ ؟
    1 نقطة
  3. هل هناك طريقه لرفع مشروع Node.js علي استضافة مجانية.
    1 نقطة
  4. من الممكن رفعه على منصة heroku نبدأ أولاً بتحميل heroku-cli وهي عبارة عن أداة تعمل في الcommand line وستجد الرابط مرفق بالأسفل بعد ذلك نقوم بتنفيذ الخطوات التالية بداخل مجلد المشروع المُراد رفعه: نقوم بالتسجيل إلى heroku عبر الأمر التالي heroku login بعد ذلك نقوم بتهيئة مستودع git git init نقوم بإنشاء مشروع على منصة heroku مع مﻻحظة إستبدال <app-name> بإسم مشروعك heroku create <app-name> نقوم بعد ذلك بتنفيذ الأمر git add . ثم نقوم بتنفيذ الأمر commit -m "first" ثم نقوم بتنفيذ تلك التغييرات إلى المشروع على منصة heroki git push heroku master وستجد في النهاية رسالة بنجاح عملية الرفع ومرفق معها رابط المشروع
    1 نقطة
  5. فيه معلومات مش موجوده فى الدروس فعلا بس هتلاقيها موجوده فى التطبيق مثلا مشروع الموقع الشخصى هتلاقى فيه display flex و مش مشروحة فى الدرس المهم و انا بطبق مع المدرب اعرف كل خاصية كتبها بتعمل ايه لانى بجربها بايدى و اقدر اضيف على المشروع مش بس كوبي و بيست
    1 نقطة
  6. السلام عليكم نصبت إحدى إضافات الووردبريس الاجنبية ووجدت كلمة RegEx بأحد الخيارات ولم أجد مُحتوى عربي يشرح الكلمة او إلامَ تُشير؟
    1 نقطة
  7. ماهو الـ Regex؟ كلمة RegEx هي إختصار للعبارة Regular Expression وتعني التعابير النمطية، وهي طريقة للبحث عن نصوص معينة ومطابقتها في مستند بإستخدام نمط Pattern، فعلى سبيل المثال إن أردت حذف كل المسافات في مستند ما، فعليك أن تقوم بذلك يدويًا أو تقوم ببرمجة سكريبت كبير للبحث عن المسافات بكل أنواعها، لكن هذا الأمر سوف يستغرق منك الكثير من الجهد والوقت وقد لا تنجح في النهاية في هذه المهمة، بينما يمكنك أن تستعمل التعابير النمطية Regex لتسهيل هذه المهمة، وكل ما عليك هو كتابة مجموعة من الرموز كالتالي على سبيل المثال: /^\s+|\s+$|\s+(?=\s)/g قد تبدو الرموز السابقة عشوائية وغير واضحة على الإطلاق، ولكن لكل رمز من الرموز السابقة معنى يعبر عنه، وسأشرح هذه الرموز بطريقة بسيطة. يسمى الرمز السابق بالنمط Pattern، أي أنك تقوم بالبحث عن نمط معين في نص ما وسوف تحثل في النهاية على كل الكلمات المطابقة للنمط الذي حددته. ملاحظة: يُمكن إستخدام موقع regex101 لتجربة كل الأمثلة التالية وتجربتها. النمط Pattern يتكون النمط من علامتي القسمة Slash / / ويكتب بينهما كل الرموز المستخدمه في عملية البحث، وقد يأتي بعدهما حرف مثل حرف g في المثال السابق، ويسمى هذا الحرف بـ "علم التعبير Expression Flag" وسوف نتطرق إليه لاحقًا. إذا قُمتَ بإضافة أي كلمة بين هذه العلامات سوف يتم تحديدها، فعلى سبيل المثال إن أردت البحث عن كلمة "hello" في نص ما، يمكنك أن تقوم بالبحث عنها بهذه الطريقة: /hello/g وستكون النتيجة كالتالي: لاحظ كيف تم تحديد كل كلمات hello، ولكن لماذا لم يتم تحديد كلمة Hello الأخيرة؟ لذلك لأن كلمة hello تختلف عن Hello فالتعابير النمطية regex حساسة لحالة الأحرف، ولكن لحسن الحظ تسمح التعابير النمطية Regex بتحديد كل أشكال الكلمة وبأكثر من طريقة، كالتالي: يُمكن أن نستخدم علامة pipe ( | ) وهي تستخدم للتعبير عن حرف من حرفين، فعلى سبيل المثال إن إستخدمنا التعبير النمطي التالي: /[h|H]ello/g سوف يتم تحديد كلمة hello و Hello معًا، ذلك لأن علامة | تستخدم وكأننا نقوم حرف h أو H ثم باقي الكلمة ello، وستكون النتيجة كالتالي: الآن تم تحديد كل كلمات hello. لاحظ أيضًا إستخدام القوسين [ ] في المثال السابق وذلك لتحديد حرف واحد فقط من كلا الحرفين (H و h)، بينما إذا لم نستخدم الأقواس سوف يتم تحديد الحرف h وكلمة Hello فقط ، وكأننا نقوم أبحث عن الحرف h أو كلمة Hello : يمكن أيضًا إستخدام نقطة . للتعبير عن "أي حرف"، فعلى سبيل المثال يمكن تحديد كلمة hello و Hello من خلال التعبير التالي: /.ello/g التعبير النمطي السابق سوف يقوم بتحديد أي نص يحتوي على كلمة ello ويبدأ بأي حرف حتى وإن لم يكن حرف h ، فمثلًا سوف يتم تحديد كلمات مثل gello و sello أو أي كلمة تبدأ بأي حرف وبعده ello تحديد الكلمات الإنجليزية يُمكن إستخدام رموز خاصة في التعابير النمطية لأداء مهمة معينة، فعلى سبيل المثال يُمكن تحديد كل الحروف أو الأرقام على حدى من خلال \w، كالتالي: كما يمكن تحديد كل الكلمات من خلال إضافة علامة + إلى التعبير النمطي السابق: علامة + تعني تكرار الرمز السابق لها (وهو \w في هذه الحالة) بأي عدد من المرات، وبالتالي سيتم تحديد أي مجموعة من الحروف معًا أو بمعنى آخر الكلمات فقط (حتى وإن إن كانت تحتوي الكلمات على أرقام). يُمكننا تحديد كذلك الكلمات التي لا تحتوي على أرقام بل حروف فقط من خلال إستخدام الرمز [a-z] وسوف يقوم بتحديد كل الحروف الإنجليزية لاحظ في المثال الأول تم تحديد كل الحروف الإنجليزية الصغيرة Small Letters بينما في المثال الثاني تم تحديد كل الحروف الإنجليزية الكبيرة والصغيرة. إستخدام التعابير النمطية RegEx مع النصوص العربية نستطيع أيضًا إستخدام التعابير النمطية مع الكلمات العربية: قد تتسأل لماذا لم يتم تحديد كل كلمات "مرحبًا"، وذلك لأن في اللغة العربية (وغيرها من اللغات) تحتوي على تشكيل للحروف، ويعتبر كل تشكيل حرف منفصل، فحركة الضمة حرف، والكسرة حرف والشدة حرف .. إلخ، فكلمة "مرحبا" تختلف عن "مَرْحَبًا"، وبالتالي لن نتمكن من تحديد الكلمات التي لها تشكيل مختلف بسهولة، لذلك يتم إستعمال رموز unicode لحل هذه المشكلة في كثير من الأحيان كما سنرى لاحقًا. تحديد الكلمات العربية قمنا سابقًا بتحديد الكلمات الإنجليزية بالكامل من خلال الرمز [a-z] ونستطيع تطبيق نفس الفكرة من على الكلمات العربية من خلال الرمز [ء-ي] حيث تبدأ الحروف العربية بالهمزة وتنتهي بالياء يُمكن إستخدام رموز unicode كما أشرت سابقًا بدلًا من الحروف العربية. تُكتب رموز Unicode بالشكل التالي u0627\ \u0627 حرف الألف ا \u0628 حرف الباء ب مع العلم أن كل الحروف والرموز العربية بما فيها رموز التشكيل والحركات تنحصر بين u0600\ و u06FF\ بشكل عام، وكل الأحرف تنحصر بين u0621\ و u0650\ ، كما تنحصر رموز التشكيل ما بين u064B\ و u0652\ ملاحظة: بعض البرامج ولغات البرمجة لا تدعم الشكل السابق ولكن يتم تتغيره إلى الصيغة x{0627}\ كالتالي: تحديد كلمة عربية بغض النظر عن تشكيلها نستطيع الآن تحديد أي كلمة عربية من خلال إستخدام رموز Unicode بغض النظر عن تشكيلها أو حركات الحروف بها. في المثال التالي يتم تحديد كل كلمات "من" بكل أشكالها: لاحظ كيف تم التعويض عن تشكيل كل حرف بإستخدام رموز Unicode إستخدام التعابير النمطية RegEx في لغات البرمجة توفر كل لغات البرمجة طريقة للتعامل مع التعابير النمطية RegEx، فعلى سبيل المثال توفر لغة Python مكتبة re للتعامل مع التعابير النمطية، كما توفر لغة JavaScript الكائن RegExp كما توفر التعامل مع النصوص بإستخدام التعابير النمطية بصورة مباشرة. var str = 'fee fi fo fum'; var myArray = str.match(/\w+\s/g); console.log(myArray); // ["fee ", "fi ", "fo "] إستخدام التعابير النمطية في محررات النصوص توفر برامج تحرير النصوص والأكواد مثل VS Code و Sublime Text و Notepad++ طرقًا للتعامل مع التعابير النمطية والبحث في المستندات وتبديل القيم بنصوص أخرى، وذلك من خلال البحث Ctrl + f أو البحث والإستبدال Ctrl + h مصادر إضافية كما توفر موسوعة حسوب شرح كامل لمكتبة re في بايثون يمكنك الإطلاع عليه من هنا، وكذلك شرح للكائن RegExp في لغة JavaScript.
    1 نقطة
  8. السلام علكيم .. أريد أن أقوم بطرح رقمين باستخدام نود جى اس وكلن هناك مشكلة انه يقوم بطرح القيمة القديمة ليست الحالية .. انا اريد ان أحسب صافى الربح وهو ال netProf عن طريق طرح الايراد وهو rev ناقص المصروفات وهى expens ولكن دائما يقوم بطرح خاطئ هذا هو الكود const express = require("express"); const { Mony } = require("../model/money"); const router = express.Router(); router.get("/", async (req, res) => { const monyState = await Mony.find(); res.send(monyState); }); router.put("/sellCake/:id", async (req, res) => { const monyState = await Mony.find(); const mony = monyState[0].nowMony + req.body.rev * req.body.price; const rev = monyState[0].rev + req.body.rev * req.body.price; const netProf = monyState[0].rev - monyState[0].expens; console.log(mony, rev, netProf); const newState = await Mony.findByIdAndUpdate( req.params.id, { nowMony: mony, rev: rev, netProf: netProf, }, { new: true } ); res.send(newState); }); module.exports = router; هذا هو ال response فى بوست مان هذه البيانات فى الداتا بيز
    1 نقطة
  9. بما أنك تقوم بحساب الايرادات الجديدة: الايرادات القديمة + نسبة الربح × السعر في المتحول rev في السطر التالي: const rev = monyState[0].rev + req.body.rev * req.body.price; يجب حساب اجمالي الربح الجديد كالتالي: الايرادات الجديدة (التي تم حسابها سابقا) - المصروفات ليصبح اجمالي الحساب كالتالي // const netProf = monyState[0].rev - monyState[0].expens; const netProf = rev - monyState[0].expens;
    1 نقطة
  10. تأكد من تعيين المتغيرات في الإعدادات التالية ونسخك للمفتاح والمعرّف بشكل صحيح: <?php $this->settings['paypel_client_id']; $this->settings['paypel_secret']; تأكد أيضا أي يكون هذا المفتاح مفعلا Enabled في حساب المطور الخاص بك في باي بال إذا كان مصدر الإعدادات لديك هو متغيرات البيئة Environment variables حاول ايقاف الخادم وتنفيذ الأمر التالي ثم إعادة تشغيله: php artisan config:cache
    1 نقطة
  11. أحتاج لمعرفة حجم الشكل figure بواحدة البكسل في ماتبلوتليب؟
    1 نقطة
  12. شكرا لك ع لاجابه ولكن كيف اطور معلوماتي بلغه ++c
    1 نقطة
  13. السلام عليكم .. من خلال مسار تعلم اساسيات laravel هل يكفي تعلم bootsrap/ui للحصول على الشهاده؟
    1 نقطة
  14. تقصد laravel/ui وليس bootstrap/ui , حزمة laravel/ui وهي مبنية باستخدام اطار عمل بوتستراب ,مدعومة الى حد الاصدار السابع من لارافيل وهي حزمة توفر نقطة انطلاق لأي تطبيق بسبب الميزات التي تتوفر في هذه الحزمة مثل نظام المصادقة كعمليات الدخول وغيرها , بينما في الاصدار الثامن من لارافيل تم التخلي عن بوتستراب واستخدام اطار العمل tailwind Css وهو اطار عمل مشابه لبوتستراب ولكن يحتوي على مميزات أكثر وبدأت كثير من التقنيات تدعمه لما يوفر من مميزات جيدة وأصناف كثيرة تسهل العمل , من ضمن التقنيات التي تدعم اطار العمل tailwind Css هي حزمة jetstream وهي حزمة توفر واجهات مصممة بشكل رائع وتوفر الكثير من المميزات الرائعة والتي يحتاجها أي موقع كنظام المصادقة والتحقق من البريد الإلكتروني والتوثيق الثنائي وإدارة الجلسة وواجهة برمجة التطبيقات عبر Laravel Sanctum وميزات إدارة الفريق الاختيارية , هذا هو الفرق بينهما , بالنسبة للشهادة , لا يكفي أن تتعلم فقط bootsrap/ui لأن الامتحان ربما سوف يكون في الاصدار الثامن والذي يستخدم حزمة jetstream , لذلك لا يكفي تعلم حزمة laravel/ui للحصول على الشهادة
    1 نقطة
  15. لغه c++ انا مبتدا في دراسه هذا الغه او المجال يعصب عليه افهم واكتب برنامج
    1 نقطة
  16. السلام علكيم عندي قاعدة بيانات (sql ) اسمها travel وفيها جدول اسمه info والجدول فيه ( دول العالم ) Country هل استطيع طباعة الدولة الموجودة في الصف الخامس مثلاً فلنفترض لدينا 10 دول <?php $host = "localhost"; $name = "##"; $pass = "##"; $dbname = "##"; $connection = mysqli_connect($host,$name,$pass,$dbname); mysqli_query($connection,"set character_set_server='utf8mb4_general_ci'"); mysqli_query($connection,"set names 'utf8mb4_general_ci'"); if (!$connection) { die(); } $get_news_sql = "SELECT * FROM info "; $get_news_sql = mysqli_query($connection, $get_news_sql); while ($row = mysqli_fetch_array($get_news_sql)) { echo $row['Country']; } ?>
    1 نقطة
  17. كيف يمكننا أن نقوم بحذف subplot من ال Figure؟
    1 نقطة
  18. صحيح، فهي تفرّع مسار تنفيذ البرنامج كما موضح بالصورة بالأعلى.
    1 نقطة
  19. بإمكانك إستخدام خواص الصندوق المرن (Flex Box) للوصول إلى ما تريد و هذا مثال عن ما تريد بالضبط على codepen: كما يُمكنك الإطلاع على بعض المقالات على الأكاديمية للتعرف على خواص الflex box منها: تعرف على CSS Flexbox وأساسيات استعماله لهيكلة صفحات الويب أساسيات Flexbox في CSS مع أمثلة عملية
    1 نقطة
  20. لا يمكن حساب تكلفة التطبيق بشكل صريح لأن التطبيقات تختلف في المواصفات والمميزات ولا توجد طريقة واضحة أو متبعة بشكل عام لحساب تكلفة أي مشروع، فالتكلفة تتبع نظام العرض والطلب ويمكن المساومة بين المبرمج والعميل على سعر المشروع والوقت المستغرق لإنشائه أيضًا وحتى التقنيات المستخدمه فيه، وأفضل طريقة لحساب متوسط تكلفة مشروع ميعن هي من خلال فحص سوق العمل والبحث عن مشاريع مشابهة تمت بالفعل، لمعرفة متوسط تكلفة المشروع، أما إن لم تتمكن من إيجاد مشروع مشابه فيمكنك أن تقوم بتحليل المشروع ومعرفة عدد الصفحات التقريبي فيه والأقسام في أغلب الصفحات وبالتالي سيمكنك أن تقوم بحساب تكلفة المشروع التقريبية وستستطيع تحديد الوقت الذي ستستغرقه في إنشاء هذا المشروع. يعتمد الأمر في البداية على العرض الذي تقدمه، ففي الغالب لا يكون العميل على دراية بالأمور التقنية مثل لغة البرمجة المستعملة في المشروع أو إطار العمل أو حتى قد لا يعرف الفرق بين واجهة المستخدم Frontend والواجهة الخلفية Backend، وبالتالي قد يكون طلب العميل هو إنشاء موقع كامل (Frontend & Backend)، ولكن طلبه لا يوضح هذا الأمر بشكل واضح، وذلك بسبب نقص الخبرة لدى العميل، وبالتالي يكون على المبرمج هنا أن يوضح هذا الأمر من بداية المشروع ويوضح للعميل ما سيحصل عليه بشكل كامل. أيضًا قد يكون لدى العميل تصور معين للمشروع النهائي، ولكن يمكن ان يحتوي تصوره هذا على مشاكل في بنية المشروع أو تجربة المستخدم أو حتى في تكلفة المشروع ككل، ويمكن للمبرمج في هذه الحالة أن يوضح للعميل أي الطرق أفضل بشكل بيسط لأداء مهمة معينة ولمذا يجب إستخدام تقنية معينة بدلًا من أخرى، فعلى سبيل المثال قد يرغب عميل ما إنشاء مدونة بلغة PHP ويمكن للمبرمج أن يقترح عليه أن يستخدم إطار عمل Laravel لإنشاء المشروع بشكل أسرع وأكثر آمانًا .. إلخ. وسيكون قرار العميل هو الفاصل في مثل هذه القرارات، فهذا مشروعه هو في النهاية. ولكي يكون العرض الذي تقدمه مناسبًا للعميل، فيجب فهم ما يريده العميل أولًا، ومحاولة عرض المميزات التي يقدمه المنتج الخاص بك مقارنة بما يريده العميل، فعلى سبيل المثال: إن كان العميل يريد إنشاء مدونة بإطار العمل Laravel، فيمكنك ان تقترح عليه المنتج الخاص بك الذي يوفر إنشاء التدوينات وتصنيفها في أقسام مع صفحة للبحث في المدونة وتحسين السيو الخاص بالموقع كذلك، بهذا الشكل يكون المنتج الخاص بك يغطي حاجة العميل، وكذلك يوفر له مميزات إضافية. قد تبدو المميزات السابقة بديهية وموجودة في أي مدونة، ولكن كما ذكرت سابقًا، فغالبًا لا يكون لدى العميل الفكرة الكاملة عن الأمور التقنية والمميزات التي يحتاجها بشكل كامل، لذلك يجب إستغلال هذا الأمر لعرض كل ما يقدمه منتجك. أما إن كان العكس، مثل أن يكون منتجك لا يحتوي على ميزة معينة يرغب به العميل، فيمكنك أن تعرض عليه إضافة هذه الميزة إلى منتجك وبيعه إياه -وسيكون هذا أفضل حل-، أو إستبدالها بميزة أخرى تغطي حاجته للميزة الأولى، مثل أن يرغب العميل بميزة إضافة وسوم إلى التدوينات، فتقترح عليه إستخدام الأصناف بدلًا منها مع توضيح سبب لذلك مثل أن الأصناف تكون أكثر تنظيمًا ويسهل على المستخدمين البحث فيها على سبيل المثال.
    1 نقطة
  21. الآمن السبراني هو عملية لحماية الأنظمة والأجهزة في مؤسسة ما بهدف منع الهجمات الإلكترونية عليها، حيث تحتوي هذه الأنظمة والأجهزة -المراد حمايتها- على معلومات سرية أو حساسة. وتهدف الهجمات الإلكترونية هذه إلى الوصول إلى هذه المعلومات بغية تسريبها أو تغيرها أو حتى تدميرها. وينقسم المن السيبراني إلى طبقات من الحماية تنتشر عبر أجهزة الكمبيوتر والشبكات والبرامج (وفي بعض الأحيان الأشخاص) التي يجب حمايتها والحفاظ عليها، ويتم الإتفاق وتقسيم هذه الطبقات حسب رغبة المؤسسة أو المنظمة وما تراه مناسبًا لها. بعض أنواع التهديد في الأمن السيبراني تصيد المعلومات Phishing Information ويتم في هذه العملية إرسال محتوى زائف مشابهة لمحتوى أصلي موثوق، مثل إرسال رسالة إلى بريد إلكتروني مزورة أو إرسال رابط موقع مشابهة لموقع معروف مثل Facebook على سبيل المثال، وهذا بغرض الحصول على معلومات حساسة وسرية، مثل كلمات المرور أو أرقام البطاقات الإتمانية أو أجوبة لأسئلة سرية .. إلخ، وبالطبع قد ينخدع عدد من المستخدمين في مثل هذا الإحتيال ظنًا منهم أنه هذا هو الموقع الحقيقي أو أن هذه عبارة عن رسالة رسمية موثوقة. البرامج الضارة Malware وهي برامج يتم إرسالة إلى الضحايا بأي شكل كان، وتهدف هذه البرامج إلى الوصول الكامل لجهاز الكمبيوتر والتحكم فيه عن بعد بطريقة غير مرئية، بهدف إستخراج معلومات سرية أو مراقبة صاحب الجهاز أو حتى الوصول إلى أجهزة أخرى في المؤسسة .. إلخ، وهذه البرامج الضارة يتم الكشف عنها في الغالب عن طريق طرق بسيطة مثل إستخدام برامج الحماية Anti-Virus أو من خلال طرق أكثر تعقيدًا مثل مراقبة نشاطات البرنامج وما يحاول القيام به في بيئة إفتراضية معزولة Isolated Virtual Environment .. إلخ. برامج الفدية الضارة Ransomware وهي برامج ضارة تحاول تشفير كل محتويات جهاز الكمبيوتر (أو نوع معين من الملفات)، بغرض من صاحب الجهاز من الوصول إلى هذه الملفات أو إستخدامها إلا بعد دفع مبلغ مالي (فدية) إلى صانع برنامج الفدية، وفي الغالب تتم هذه العملية عبر عملة مشفر يصعب تتبع صاحبها مثل البيتكوين أو إيثريوم Ethereum وغيرها. وفي كثير من الأحيان تفشل المنظمة (أو صاحب جهاز الكمبيوتر) من إعادة الملفات المشفرة وفك تشفيرها. متطلبات الأمن السيبراني يحتاج متخصص الأمن السيبراني إلى تعلم الكثير من المهارات التي تُمكنه من التعرف على التهديدات وكيفية مواجهتها، كما أنه بحاجة إلى مهارات التفكير بشكل تحليلي ونقدي وحل المشكلات والقدرة على العمل بشكل جيد سواء كفرد أو ضمن فريق. أيضًا المهارات التقنية مثل تعلم لغات البرمجة والخوارزميات وبنية البرامج والأنظمة وكيفية حمايتها من التهديدات تُعد مهارات أساسية لا غنى عنها. كما أنه بحاجة إلى القراءة عن أشهر الثغرات وكيفية عملها وإستغلالها وكيفية الحماية منها أيضًا.
    1 نقطة
  22. في لغة SQL يُعد هذا هو السلوك الذي يجب اعتماده عند حذف الكائن المشار إليه. وهذه ليست خاصة في Django نفسه. بل هو جزء من SQL. يتم استخدام on_delete لإخبار Django بما يجب فعله مع النموذج التي تعتمد على كائنات أخرى الذي قمت بحذفه. (على سبيل المثال، علاقة ForeignKey)، مثلًا المنشور الواحد في مدونة ما قد يكون له علاقة ForeignKey مع جدول comments لعرض التعليقات الخاصة بمنشور معين، وهذه الخاصية هي التي تحدد ما الذي سيحدث في حالة حذف المنشور، هل سيتم حذف التعليقات أم إبقائها أم ربما تريد إظهار خطأ يمنعك من حذف أي منشور لديه تعليقات عن طريق الخطأ. وهناك سبعة إجراءات يمكن اتخاذها عند وقوع مثل هذا الحدث (أي عند حذف كائن من جدول ما): CASCADE: عند حذف الكائن المشار إليه، احذف أيضًا الكائنات التي لها مراجع (عندما تقوم بإزالة منشور من مدونة ما على سبيل المثال، قد ترغب في حذف التعليقات الخاصة بهذا المنشور أيضًا).في لغة SQL يتم إستعمال كلمة CASCADE PROTECT: منع حذف الكائن المشار إليه (إن كان هناك أي إشارات له من كائنات أخرى). ولحذفه، سيتعين عليك حذف جميع الكائنات التي تشير إليه يدويًا، في لغة SQL يتم إستعمال كلمة RESTRICT RESTRICT: (تم إضافتها في الإصدار 3.1 من Django)، تشبه الخيار السابق، ولكنها تتبع معيار لغة SQL بشكل أدق، وفي حالة حدوث خطأ يتم عرض خطأ من نوع RestrictedError ، بخلاف PROTECT، تسمح بحذف الكائن المشار إليه إذا كان يشير أيضًا إلى كائن مختلف يتم حذفه في نفس العملية، ولكن عبر علاقة CASCADE. SET_NULL: يتم تعيّن المرجع إلى NULL (يتطلب أن يكون الحقل nullable أي أن قيمة null تساوي True). على سبيل المثال، عندما تحذف مستخدمًا، قد ترغب في الاحتفاظ بالتعليقات التي نشرها في منشورات المدونة، ويتم عرض التعليقات من قِبل مستخدم مجهول أو تم حذفه. في لغة SQL يتم إستعمال كلمة SET NULL SET_DEFAULT: يقوم بتعيين القيمة الافتراضية default. في لغة SQL يتم إستعمال كلمة SET DEFAULT SET(): تقوم بتعيين قيمة معينة. هذا ليس جزءًا من معيار SQL ويتم التعامل معه بالكامل بواسطة Django فقط، وهنا مثال لكيفية إستخدامها من توثيق Django الرسمي: from django.conf import settings from django.contrib.auth import get_user_model from django.db import models def get_sentinel_user(): return get_user_model().objects.get_or_create(username='deleted')[0] class MyModel(models.Model): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user), ) DO_NOTHING: يتم إستخدامها للإشارة إلى كائن غير موجود بالفعل، وقد تسبب الكثير من المشاكل في قاعدة البيانات مما ينتج عنه مشاكل وأخطاء تظهر للمستخدمين، في لغة SQL يتم إستعمال NO ACTION يمكنك الوصول إلى توثيق كل الخيارات السابقة في وثائق Django من هنا. في أغلب الحالات، CASCADE هو الخيار الأكثر إستخدامًا، ولكن بالنسبة لكل مفتاح ForeignKey، يجب أن تسأل نفسك دائمًا ما هو السلوك المتوقع في هذا الموقف. أحيانًا ما يكون PROTECT و SET_NULL مفيدًا في بعض الحالات. تحتوي الأكاديمية على مقالة (النماذج Models والاستعلام عن البيانات في Django) تمكنك من تجهيز وإعداد نماذج في Django وتتضمن أيضًا عمل علاقة ForeignKey بين النماذج.
    1 نقطة
  23. بإمكانك قراءة توثيق أي مكتبة من خلال الدالة help والتي قد تساعدك كثيرًا في فهم كيفية عمل المكتبة من خلال توثيق مكتوب باللغة الإنجليزية، مما يعطيك لمحة حول الدوال والمتغيرات والأصناف الموجودة في هذه المكتبة، يمكنك أن تقوم بإستخدام الدالة help كالتالي: >>> help('numpy') Help on package numpy: NAME numpy DESCRIPTION NumPy ===== Provides 1. An array object of arbitrary homogeneous items 2. Fast mathematical operations over arrays 3. Linear Algebra, Fourier Transforms, Random Number Generation How to use the documentation ---------------------------- Documentation is available in two forms: docstrings provided with the code, and a loose standing reference guide, available from `the NumPy homepage <https://www.scipy.org>`_. We recommend exploring the docstrings using `IPython <https://ipython.org>`_, an advanced Python shell with TAB-completion and introspection capabilities. See below for further instructions. The docstring examples assume that `numpy` has been imported as `np`:: >>> import numpy as np -- More -- لاحظ أن توثيق أغلب المكتبات كبير للغاية لذلك يتم عرض جزء صغير فقط ويمكنك أن تقوم بعرض المزيد من خلال الضغط على Enter. كما يمكنك أن تستعمل نفس الدالة لقراءة توثيق دالة ميعنة أو صنف معين من خلال كتابة اسم المكتبة ثم اسم الدالة أو الصنف ويفصلهما نقطة، كالتالي: >>> help('numpy.array') Help on built-in function array in numpy: numpy.array = array(...) array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None) Create an array. Parameters ---------- object : array_like An array, any object exposing the array interface, an object whose __array__ method returns an array, or any (nested) sequence. dtype : data-type, optional The desired data-type for the array. If not given, then the type will be determined as the minimum type required to hold the objects in the sequence. copy : bool, optional If true (default), then the object is copied. Otherwise, a copy will only be made if __array__ returns a copy, if obj is a nested sequence, or if a copy is needed to satisfy any of the other requirements (`dtype`, `order`, etc.). order : {'K', 'A', 'C', 'F'}, optional Specify the memory layout of the array. If object is not an array, the newly created array will be in C order (row major) unless 'F' is specified, in which case it will be in Fortran order (column major). If object is an array the following holds. ===== ========= =================================================== -- More -- للخروج من التوثيق يمكنك الضغط على q أو Ctrl + c فقط. ولطباعة محتوى مكتبة معينة يمكنك أن تستعمل دالة open والتابع __file__ لقراءة ملفات المكتبة ثم طبعاتها، كالتالي: >>> import flask >>> f = open(flask.json.__file__, 'r') >>> content = f.read() >>> print(content) بالتأكيد فتح ملفات المكتبة وتصفحها سيكون أفضل وأسهل وأكثر عملية، ويمكنك الحصول على مسار أي مكتبة من خلال التابع __file__ أيضًا كالتالي: >>> flask.__file__ 'C:\\Python38\\lib\\site-packages\\flask\\__init__.py'
    1 نقطة
  24. يمكنك أن تقوم بزيادة عدد الإعجاب بقيمة واحد عند إتمام الطلب إلى الخادم، كالتالي: this.setState((prevState, props) => ({ likes: prevState.likes + 1 })); وبالتالي يوف يزداد عدد الإعجابات في الصفحة دون الحاجة إلى إعادة تحديث الصفحة.
    1 نقطة
  25. لتحسين ترتيب نتائج المدونة تحتاج إلى أن تتعلم أكثر عن تحسين محركات البحث Search Engine Optimization أو ما يعرف بـ SEO، حيث أن هناك الكثير من العوامل التي تقوم محركات البحث بالإعتماد عليها لترتيب نتائج البحث، ومن هذه العوامل: عنوان المقالات: يجب ان يكون جيد ومعبر عن المقالة وليس طويل لكي يظهر بشكل كامل في نتائج البحث. الكلمات المفتاحية: يجب أن تختار الكلمات التي يبحث عنها الزوار وتحددهم بنائًا على الأهمية، يمكنك أن تستعمل أدوات لمساعدك في البحث عن هذه الكلمات مثل Semrush أو ahrefs. وسوم Metatag: يجب أن تحتوي المدونة على وسوم Meta Tags معدة بشكل جيد حتى تتمكن محركات البحث من تصنيف صفحات مدونتك. الصور: يمكن أن تؤثر الصور التي أستخدمها على SEO المدونة وعلى الزوار أيضًا، الروابط: تحتاج إلى عمل روابط خلفية backlinks تشير إلى مدونتك لكي تحصل على زيارات أكثر من مواقع ومنتديات مختلفة. السرعة: سرعة المدونة عامل مهم في ترتيب نتائج المدونة في محركات البحث المدة التي يستغرقها الزوار في تصفح مدونتك وعوامل أخرى كثيرة، يمكنك أن تتعلم وتقرأ أكثر حول تحسين محركات البحث من خلال قسم تهيئة محركات البحث SEO في أكاديمية حسوب من هنا. كما أن عليك أن تهتم بالمحتوى كثيرًا، فهو ما يريده الزائر ولن تهتم لك محركات البحث إن لم تهتم أنت بزوارك.
    1 نقطة
  26. يوجد فكرتين رئيسيتين لظهور الموقع في غوغل في المقدمة: أسباب تقنية يمكن أن تجد إجابة هنا: نوعية الكتابة و المحتوى: مقالة من أكاديمية حسوب:
    1 نقطة
×
×
  • أضف...