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

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

  1. Adnane Kadri

    Adnane Kadri

    الأعضاء


    • نقاط

      4

    • المساهمات

      5247


  2. Mohamed Abdalla6

    Mohamed Abdalla6

    الأعضاء


    • نقاط

      4

    • المساهمات

      56


  3. مصطفى اوريك

    مصطفى اوريك

    الأعضاء


    • نقاط

      2

    • المساهمات

      77


  4. شرف الدين حفني

    • نقاط

      2

    • المساهمات

      1690


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

المحتوى الأعلى تقييمًا في 09/28/21 in أجوبة

  1. سلام عليكم اريد عمل اتصال بين node js و mysql workbench بدون استخدام اى برامج سيرفر مثل xamp وغيرها لقد حاولت اطبق هذا الفيديو لكن لم ينج الاتصال معى فاريد فى البدء ان ان يعمل معى الاتصال فى هذا الكود وشكرا var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "yourusername", password: "yourpassword" }); con.connect(function(err) { if (err) throw err; console.log("Connected!"); });
    2 نقاط
  2. السلام عليكم | كيف أتمرن على تصميم المواقع بـ html-css-Javascript ؟ هذا اكثر شيء يشكل علي لأنه إذا أردت التمرن عليهم بتقليد تصاميم مواقع معينة كيف أعرف أن الكود الذي كتبته سليم, أقصد كيف أعرف أني مطبق للـ "best practices" في كتابة الكود ليس فقط أحشو التصميم بالأكواد ؟ قلت أن أقلد هذه التصاميم ثم أرى الكود الأصلي لها ثم أقارنها بالكود الذي كتبته لكن المشكلة أن أغلب تصاميم المواقع تستخدم أطر العمل أو لغات أخرى مثل pugjs في كتابة الكود, فهل هناك مشكلة هذه الناحية ؟
    2 نقاط
  3. و عليكم السلام و رحمة الله . التطبيق العملي و بناء ما بني بالفعل لا يعني مماثلة طرق بناءه الأولى أو السير على نفس طريقة مصممها الأول , فما تراه أنت مناسبا أن يتم عمله بتخطيط شبكي Grid Layout يمكن أن أفضل عمله بـخواص الصندوق المرن flexbox مثلا و قس على ذلك الكثير . فقد نختلف في الطرق و نتفق في النتيجة . و هذا ما هو إلا نتيجة طبيعية للتنوع و التضارب بين الطرق , الأدوات و مختلف الفلسفات التي توفرها طبيعة المجال و حجمه و حجم مجتمعه . كما أني أهنئك على عدم النظر أو اختلاس كود الاخرين في مرحلة بناء و تقليد قالب ما , فهذا ما ينمي قدرة النمذجة لديك , أو ترجمة الواقع إلى شيفرة و هيكلية , و ذلك وفق طريقتك و فهمك الخاصتين . يعطيك هذا ثقة أكبر بالشيفرة التي تكتبها و إطلاعا أكبر عليها , و بالتالي تحكما أكبر و أوسع . و هو شيء لطالما ستحتاج إليه طول مسيرتك الدراسية أو العملية . و لا يعني هذا طبعا عدم الإطلاع على شيفرة الاخر و طريقة عمله للفكرة تماما أو بعد التطبيق أيضا , فإن كانت قد بنيت بأدوات تفهمها و تعرفها تأكد أن تقوم بمحاولة فهمها و إستيعابها , و إلا فإن نمذجتك لفكرة الغير بطريقتك كاف . و لذلك فإنه التوجه و البحث عن ما بني بالمهارات التي تكتسبها أفضل و أولى من تقليد أي قالب أو تطبيق , فهذا من شأنه أن ينمي قدراتك أيضا , فتأخذ بدل الطريقة طريقتين . أما عن طرق للتمرن على تصميم المواقع بـ html و css و javascript فإليك بعض النقاط التي أحب الإشارة إليها دوما : قم بتقليد التصاميم و القوالب الجاهزة , و ذلك كتغذية بصرية و تطويرا لقدرتك على النمذجة . قم ببناء تطبيقات بسيطة ( سيتم اقتراح بضعة تطبيقات فيما سيأتي ) , و ذلك لحاجتك لتطوير قدرتك على إستخدام مفاهيم اللغة و أساسياتها و خصوصا في الجافاسكربت . حاول فهم المشاكل التي تصادفها , وصفها , مناقشتها و تبسيطها و البحث عن ما يتعلق بها و قراءة اراء الاخرين و أكوادهم بشأنها . كن نقديا في انتقاء الأفكار , فبدل البحث عن "كيفية فعل كذا" ابحث عن "أفضل الطرق لفعل كذا". استعن بأوراق و ملصقات ملاحظات لتبسيط كل ما يصعب عليك . قم بتجزئة الأفكار إلى الكبيرة إلى أصغر و إلى أخرى أدق و هكذا , أي أنه لا يجب عليك رؤية التطبيق ككل في محاولة لفهمه , بل قم بتجزئته و تفكيك مفاهيمه . و نفس الشيء ينطبق على قوالب المواقع أو أية مجسمات أو تركيبات تظهر صعبة التشكيل بها . إليك 7 تطبيقات يمكنك تطبيق مهاراتك عليها : ساعة رقمية عن طريق الجافاسكربت . ساعة دائرية عن طريق الجافاسكربت و تحويلات الـ CSS . الة حاسبة عن طريق الجافاسكربت . تطبيق إدارة قائمة مهام To Do List . مولد ألوان عشوائية . تطبيق معرض صور Gallery . تطبيق عارض شرائح Slide Show .
    2 نقاط
  4. سلام عليكم حاولت اطبق ال http فى هذا المثال لكن ظهرت لى مشكلة عند عمل run للكود فاين المشكلة ؟ const http = require('http') const server = http.createServer((req, res) => { if (req.url === '/') { res.end('Welcome to our home page') } if (req.url === '/about') { res.end('Here is our short history') } res.end(` <h1>Oops!</h1> <p>We can't seem to find the page you are looking for</p> <a href="/">back home</a> `) }) server.listen(5000) فى الاول لما اعمل رن بشتغل معاى وبعرض لى النص كما فى الصورة ادناه وبعدها يظهر لى الايرور الذى ارسلته لكم فى الاعلى ولم يعرض لى الرسالة
    2 نقاط
  5. عندما اقوم بتنفيذ بمحاولة رفع بعض الملفات على github يقوم بطلب الباسوورد والاميل , عند ادخالهم تأتيني تلك الرسالة remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
    1 نقطة
  6. السلام عليكم ورحمة الله تعالى وبركاته ..♥ اواجه مشكلة في فهم نظام تغليف البيانات حيث انني تابعت اكثر من درس يشرح هاد الامر لكن لم استوعبه خاصة انه ليس له كلمات محجوزة خاصة به او توابع اعتقد انه مجرد مفهوم للكتابة الكود بطريقة سليمة ارجو ولو شرح بسيط عنه وماهي استخداماته اي متى نستعمله وفي الختام اشكر كل من افادني والصلاة والسلام على نبينا وحبيبنا وقائدنا محمد صلواة ربي عليه
    1 نقطة
  7. نعم بالضبط . و أضيف على ذلك , التوابع أيضا . فمن الممكن تغليف التوابع و جعلها غير قابلة للوصول إلا من خلال الصنف نفسه أيضا . كما أظن أن الحاجة لذلك في مسارك و أثناء تطبيقك العملي ستقوم بتوضيح ذلك أكثر لك . تعرف الكلمات public , private و protected في الوسط البرمجي كمحددات وصول ترجمة عن Access Modifiers بحيث تحدد هاته الكلمات الخواص و التوابع التي يمكن الوصول إليها . بحيث أن : public : تعني أن الوصول إليها قابل في كل مكان . protected : تعني أن الوصول محمي فقط داخل الصنف نفسه , و من داخل أي أصناف ترث هذا الصنف أيضا . private : تعني أن الوصول لا يتم إلا من خلال الصنف الذي يحدد هاته الخاصية أو أحد توابعه العامة . .
    1 نقطة
  8. شكرا لك اخي على الشرح الممتاز كالعادة زادك الله علما ينفعك الخلاصة التي وصلت اليها هي ان نظام التغليف يستعمل بشكل عام مع البيانات الحساسة بحيث يتم جعل الخواص التي تحمل قيم حساسة التي لايجب التعديل عليها او التعامل معها بطريقة مباشرة جعلها private ومن اجل التعامل معها سيتوجب استدعاء method من نفس الصنف وتمرير argument في ال method في حالة ما اردنا التعديل على الخواص
    1 نقطة
  9. و عليكم السلام و رحمة الله تعالى و بركاته . لنقم بفهم التغليف كالتالي : التغليف ترجمة عن encapsulation هو ميكانيزمة و طريقة لحماية الخواص و التوابع التابعة لصنف ما من التعديل المباشر عليها مع إمكانية إستعمال تابع معين للصنف لتعديل ذلك . و لكن ما الذي يعنيه ذلك ؟ لنأخذ التالي لفهم الحاجة من التغليف أساسا : تقوم شركات صنع سيارات بتوفير مقود في سياراتها كآلة للتحكم في إتجاهات سير السيارة , و من جانب اخر تقوم بإخفاء التعقيد وراء هاته العملية . أي أنها تقوم بتغليف و تغطية كل ما يتعلق بكيفية سيرها و توفير طريقة بسيطة لتغيير خاصية الإتجاه في السيارة . فهل يبدوا من المنطقي أن نقوم بتوصيل سلك بسلك أو تطبيق قوة ميكانيكية كل مرة نريد فيها تغيير اتجاه سيارة ؟ نفس الشيء ينطبق على التغليف في البرمجة الشيئية , فتغيير الخاصية مباشرة لا يكون سليما أحيانا , و قد يتعلق بمنطق عمل توابع أخرى تتأثر بتغير قيمة هاته الخاصية . و لكن تغييرها عن طريق توفير تابع يقوم بتحمل و اعتبار تبعات هذا التعديل حل نهائي للمشكلة . مثال عملي : ليكن الصنف DBInteract , المسؤول عن التفاعل مع قاعدة البيانات عن طريق عمليات CRUD العادية كالتالي : class DBInteract{ public $db_password = '68426123'; public $db_username = 'root'; public $db_name = 'my-db'; public function insert(string $table ,array $data) { } public function update(string $table ,array $data) { } public function delete(string $table) { } public function select(string $table ,array $rows) { } } و لنفرض أن كل من التوابع المعرفة تحمل شيفرات يمكن فهم وظيفتها عن طريق اسماءها الدلالية . و لنقل أننا نحتاج إدراج مهمة جديدة بجدول tasks في قاعدة البيانات بإسم my-db . أي أن العملية ستكون كالتالي : $db_class = new DBInteract(); $db_class->insert('tasks' ,$data); و منطقي هو أن التابع insert المسؤول عن عملية الإنشاء سيقوم بإستعمال الخواص التالية لمصادقة إتصاله مع قواعد البيانات : public $db_password = '68426123'; public $db_username = 'root'; public $db_name = 'my-db'; المشكلة هنا , هي أن هاته الخواص قابلة للوصول بشكل عادي عن طريق إستدعاء مباشر من أي كائن عن الصنف DBInteract . فلو أن مستخدما ما لصنفنا الجاهز DBInteract قام بتغيير الخاصية db_name بعد عشرات من إستعلامات الإنشاء و القراءة و الحذف و التعديل بمجرد سطر واحد : $db_class->db_name = 'new-db-name'; و لنقل أن بيانات المصادقة تحتاج فحصا قبل إعادة التعيين مثل أن يكون اسم قاعدة بياناتنا سلسلة نصية , و اسم مستخدمنا ليس قيمة فارغة , و كلمة سرنا تشكيلة أرقام . في حالة تعطل ذلك سيخل هذا بعمل كل من التوابع insert , update , delete , select . و هو ما لا نريده طبعا . و لحل المشكل لن نقوم إلا بتغليف هاته الخواص بإستعمال الكلمة المفتاحية private و إنشاء تابع جديد يمكننا من تغيير بيانات المصادقة هاته بطريقة سليمة لا تؤثر على عمل باقي التوابع . و ليكن مثلا : class DBInteract{ private $db_password = '68426123'; private $db_username = 'root'; private $db_name = 'my-db'; public function changeCreds($pass , $un , $db) { if(is_string($db) && is_numeric($pass) && !is_null($un)){ $this->db_password = $pass; $this->db_username = $un; $this->db_name = $db; } } public function insert(string $table ,array $data) { } public function update(string $table ,array $data) { } public function delete(string $table) { } public function select(string $table ,array $rows) { } } الان لو حاول شخص ما تغيير أحد بيانات المصادقة عن طريق مباشرة فهو لن يستطيع , و ستظهر له رسالة تخبره بذلك : cannot access private property و قس على ذلك العديد من الأمثلة و الوضعيات الأخرى التي تكون فكرة التغليف حلا فيها .
    1 نقطة
  10. المشكلة ما اظن انها عامة، لربما لا يقع بها الا ما ندر من الناس وصياغة خاصة لا اظن يعمل بها احد.
    1 نقطة
  11. أنا أخذت دورة " تطوير تطبيقات الجوال بإستخدام تقنيات الويب " ووجدت بها أكثر من لغة برمجة أو خلينا نقول html ,css إستصعبت تعلمهم . هل عادي تغيرون لي الدورة إلى " تطوير التطبيقات بإستخدام لغة JS " ؟؟ وإذا ممكن تخبروني مميزات هذه الدورة بشكل أوضح ؟ لايهمني عدد ساعات الدورة المهم تكون سهلة علي اللغة لغة البرمجة مع الشكر الكبير لكم .
    1 نقطة
  12. حاولت إخبارك بطريقة غير مباشرة أن Html , CSS هم أسهل مستوى يمكن تعلمه وإتقانه، لأن هذه الشيفرات فقط للعرض، وليس عليك عمل خوارزمية لتحقيق خطوت برنامج ما، جافاسكربت يمكنك تعلم أساياتها من دورتها (مسار أساسيات جافاسكربت متاح لك أيضا) مفاهيم جافاسكربت متقدمة بالنسبة ل Html , CSS. تابع أساسيات جافاسكربت من دورتها الخاصة، ثم اختر ماتراه منسباً إن أحببت جافاسكربت ورأيت أن التعامل بها يناسبك ونمط تفكيرك انتقل لدورتها، وإلا أكمل في دورة "تطوير تطبيقات الجوال بإستخدام تقنيات الويب" يتم تحديث الدورات وإضافة مسار بشكل متكرر ، فعدد التطبيقات سوف يزيد، أنت حاول أولا التطبيق مع المدرب وأنتج أول تطبيق لك، ثم ارفعه على المتجر، بعد هذا ستصبح قادراً على برمجة أفكارك الخاصة وصنع تطبيقات متنوعة على رغبتك. دورة تطوير تطبيقات الجوال بإستخدام تقنيات الويب فيها تنوع أكبر بتطبيقات الجوال لأن جميع مساراتها تدور حول كوردوفا وفي كل مسار تتعلم أشياء إضافية وتطبيق مختلف، أما دورة جافاسكربت يوجد مثال واحد لكل تقنية منها، ولكن بالطبع يتم استخدام جميع الأساسيات و جميع ميزات المكتبات و التقنيات أي ستتعلم الكثير، وبعدها اعتمد على نفسك وابحث عن المكتبات وحاول تضمينها في مشاريعك. يمكنك طرح الأسئلة بعد الانهاء من الدورة في قسم أسئلة البرمجية وسيتم متابعتك في جميع المشاريع التي تعمل بها ومساعدتك في حل المشاكل وتقديم الملاحظات اللازمة. يمكنك الوصول لجميع مشاريع الدورات (الملفات) من الرابط: github/HsoubAcademy
    1 نقطة
  13. هل توجد دالة تولد لنا رقم صحيح عشوائى؟ (لامشكل حتى لو كان كود لكن المهم طريقة ما نولد منها أرقام عشوائيه)
    1 نقطة
  14. نعم هناك الكلاس Random يمكنك استخدامه لتوليد أعداد صحيحية عشوائية. نقوم أولاً بتعريف غرض (object) من هذا الكلاس: Random rand = new Random(); ثم بعدها يمكنك استخدام الدالة next عن طريق استدعائها من خلال هذا الغرض لتوليد أعداد عشوائية كالتالي: int number = rand.Next(min, max); حيث تكون الأعداد المولَدة ضمن المجال [min,max] مثال: int number1 = rnd.Next(9, 99); // تولد رقم عشوائي بين ال 9 وال 99 int number2 = rnd.Next(9); // تولد رقم عشوائي بين ال0 وال 9
    1 نقطة
  15. عندما احاول فتح الصفحة تاتيني رسالة Wrong permissions on configuration file, should not be world writable!"
    1 نقطة
  16. تلك الرسالة تظهر بسبب تغيير الصﻻحيات الخاصة بملف ال config.inc.php أو المجلد الحامل لهذا الملف, من الممكن أن تكون قد قمت بتنفيذ أمرٍ ما لتغيير الصﻻحيات مثل sudo chmod -R 777 /opt/lampp/ أو قمت بتغييره بطريقة أخرى , ولكن بوجهٍ عام فإن الطريقة الصحيحة لتغيير الصﻻحيات هي أن تقوم بتغيير صﻻحيات مجلد المشروع وليس مجلد البرنامج كلهُ , وتقوم بتغيير صﻻحيات مجلد المشروع عبر تنفيذ نفس الأمر السابق ولكن تضع مسار مجلد المشروع بدلاً من مسار البرنامج الأب sudo chmod -R 777 /opt/lampp/php_project/ وبالنسبة لحل المشكلة التي تواجهك يمكنك تغيير الصﻻحيات من أجل حل المشكلة عن طريق الأمر التالي sudo chmod 755 /opt/lampp/phpmyadmin/config.inc.php وفي ذلك السؤال المرفق ستجد إجابة أستاذ وائل بها شرح كافي ووافي لكيفية تغيير الصﻻحيات بطريقة صحيحة
    1 نقطة
  17. يمكنك البحث عبر اليوتيوب على قنوات تقوم ببناء موقع ومن ثم تقوم بتقليد ذلك الموقع دون النظر إلى الشفرة البرمجية, وعند الإنتهاء تقوم بالنظر إلى الشفرة البرمجية ومقارنتها بالشفرة خاصتك
    1 نقطة
  18. ما معنى تلك الجملة في sql select count(*) over(partition by st_age order by st_id) from student وبشكل عام ﻻ افهم وظيفة ال over(partition)
    1 نقطة
  19. أداة MYSQL Workbench هي برنامج يحوي عدة أدوات تساعدك في استعراض وتعديل وتصميم وتهجير جداول البيانات، وهي تقوم بذلك بالتواصل مع خدمة MYSQL، أنت لن تتواصل مع الأداة بل مع الخدمة مباشرة يمكنك اتباع الخطوات التالية: تأكد من تشغيل خدمة MySQL على جهازك والتأكد من عنوان المنفذ Port التي تعمل عليه الخدمة (الافتراضي يكون 3306) تأكد من اسم المستخدم وكلمة المرور على الخدمة الذي تريد الدخول منه (الافتراضي هو المستخدم root وليس لديه كلمة سر) (اختياري) يمكنك الاتصال مباشرة بقاعدة بيانات معينة منشئة سابقة تأكد من اسمها قم بتمرير القيم السابقة لمعاملات تابع الاتصال createConnection، التالي طريقة القيام بالاتصال بالقيم الافتراضية: var con = mysql.createConnection({ host : 'localhost', // عنوان الخدمة port : 3306, // اختياري يمكن تجاهله في حال قيمته افتراضية user : 'root', // اسم المستخدم password : '', // كلمة سر المستخدم database : 'database_name' // اختياري اسم قاعدة البيانات });
    1 نقطة
  20. لدي تلك الشفرة البرمجية async function init(){ const data = await fetchData(path); data.map(element=>{ find(element.data); }) } عند محاولة تنفيذها ياتيني ذلك الخطأ Uncaught (in promise) TypeError: data.map is not a function
    1 نقطة
  21. ذلك هو الذي احصل عليه من نافذة الnetwork في الinspect { "#my-carousel .carousel-indicators":[ "<li data-target='#my-carousel' data-slide-to='0' class='active'></li>", "<li data-target='#my-carousel' data-slide-to='1'></li>", "<li data-target='#my-carousel' data-slide-to='2'></li>" ] }
    1 نقطة
  22. يمكننا فهم دالة حساب القوة وهي ضرب العدد بنفسه عدد من المرات، x قوة y هي جداء x*x*x*x* لعدد y من المرات. يمكننا كتابة دالة عودية بهذه الطريقة: public static int pow( int a, int n) { if ( n == 0 ) { return 1; } return a * pow(a,n-1); } سوف تتكرر عملية ضرب a بنفسها n مرة، وشرط التوقف هو n = 0 وبالاستفادة من الرياضيات، وخواص الأس aⁿ as a^n/2 ⨯ a^n/2 2^8 = Prod = ( (a ^ 2) ^ 2) ^ 2 تجزئة القوة والتوزيع /** divide & Conquer دالة to لحساب a^n. * n عدد صحيح موجب */ long power(int a, int n) { if(n==0) return 0; // إن كان الأساس 0 نعيد 0 if(a == 0) return 0; if(n%2 == 0) return power(a*a, b/2); // القوة عدد زوجي else return a * power(a*a, b/2); // القوة عدد فردي } هذا يختصر تعقيد الخوازرمية من (n)O إلى (n)log2 حيث في كل خطوة نحسب العودية لنصف قيمة الأس a^2 = a * a a^3 = a * a * a a^4 = a^2 * a^2 a^5 = a * a ^ 4 = a * a^2 * a^2
    1 نقطة
×
×
  • أضف...