-
المساهمات
4118 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
40
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عمر قره محمد
-
نعم سيحتاج للوصول إلى الحاسوب حتى يقوم بتشغيل السيرفر، ولكن يمكنك التحكم فيما يستطيع الوصول إليه، وذلك يختلف بحسب نظام التشغيل الخاص بالحاسوب.
-
- الفرق بين الParameters والArguments هو أن الParameters هي المتغيرات التي تحدد في تعريف الFunction، بينما الArguments هي القيم التي تمرر إلى الFunction عند استدعائها. مثلا، في الFunction التالية: function add(x, y) { return x + y; } x و y هما Parameters، وعندما نستدعي الFunction بهذه الطريقة: add(3, 5); 3 و 5 هما Arguments. - الفرق بين الDeclaration والInitialization هو أن الDeclaration هو إعلان اسم ونوع المتغير أو الFunction دون تحديد قيمته، بينما الInitialization هو تعيين قيمة مبدئية للمتغير أو الFunction. مثلا، في هذا المثال: var x; // declaration x = 10; // initialization function square(n) { // declaration and initialization return n * n; } - الExecution Context هو بيئة تشغيل للكود في لغة برمجة معينة. يحدد ما هي المتغيرات والFunctions والObjects المتاحة للكود في ذلك الوقت. عادة، يوجد Execution Context عام للبرنامج ككل، وExecution Contexts محلية لكل Function تستدعى. مثلا، في هذا المثال: var x = 10; // global variable function add(y) { // global function var z = 5; // local variable return x + y + z; } console.log(add(7)); // 22 console.log(z); // error: z is not defined الExecution Context العام يحتوي على المتغير x والFunction add، بينما Execution Context للFunction add يحتوي على المتغير y (الذي يأخذ قيمة Argument) والمتغير z (الذي يعرف داخل الFunction). عندما نستدعي add(7)، يتم إنشاء Execution Context جديد للFunction add ويتم تشغيل كودها داخله. عندما نحاول طباعة قيمة z خارج الFunction، نحصل على خطأ لأن z غير معرف في Execution Context العام. - الLexical Environment هو مفهوم مرتبط بالExecution Context، وهو يشير إلى كيفية تحديد مجال (Scope) المتغيرات والFunctions في لغة برمجة معينة. يعتمد الLexical Environment على كيفية كتابة الكود (Lexical Structure)، وليس على كيفية تشغيله (Dynamic Structure). مثلا، في هذا المثال: var x = 10; // global variable function foo() { // global function var y = 20; // local variable in foo function bar() { // local function in foo var z = 30; // local variable in bar console.log(x + y + z); // 60 } bar(); // call bar } foo(); // call foo الLexical Environment يحدد أن المتغير x متاح للFunctions foo و bar، وأن المتغير y متاح فقط للFunction foo و bar (ولكن ليس للبرنامج الرئيسي)، وأن المتغير z متاح فقط للFunction bar (ولكن ليس للFunction foo أو للبرنامج الرئيسي). هذه التراتبية في المجالات تسمى Lexical Scoping أو Static Scoping.
- 5 اجابة
-
- 4
-
-
السبب في عدم صلاحية استخدام خاصية before مع عنصر input هو أن before تقوم بإضافة محتوى داخل العنصر التي يتم إضافتها له، وعنصر input لا يمكن أن يحتوي على عناصر أخرى. لذلك، لا يمكن تطبيق هذه الخاصية على عنصر input. إذا كنت تريد إضافة محتوى قبل أو بعد عنصر input، فقد تحتاج إلى استخدام عنصر آخر كحاوية له. قد يقيدك الاطلاع على المصادر التالية : العنصر input في موسوعة حسوب مقالة عن مربعات البحث :
- 4 اجابة
-
- 1
-
-
يمكنك استخدام الوعود (promises) لتنفيذ دالتين غير متزامنتين بشكل متسلسل. على سبيل المثال، إذا كانت دالتك الأولى تسمى a والثانية تسمى b، يمكنك كتابة الشفرة التالية: a().then(resA => { // resA هو الاستجابة لدالة a() // افعل ما تريد مع resA هنا // ثم ارجع وعد لدالة b() return b(); }) .then(resB => { // resB هو الاستجابة لدالة b() // افعل ما تريد مع resB هنا }) .catch(err => { // اتعامل مع أي رفض/خطأ للدالتين a أو b }); هذا يضمن أن دالة b() لن تبدأ حتى تنتهي دالة a() وترجع وعدًا. يمكنك قراءة المزيد عن هذه الطريقة في . إذا كانت دالتك الأولى في ملف مختلف عن دالتك الثانية، فستحتاج إلى استيرادها باستخدام require أو import حسب نوع الوحدات التي تستخدمها. على سبيل المثال، إذا كانت دالة a() في ملف a.js ودالة b() في ملف b.js، يمكنك كتابة الشفرة التالية في ملف آخر وليكن c.js : // استيراد دالة a من ملف a.js const a = require('./a.js'); // استيراد دالة b من ملف b.js const b = require('./b.js'); // استخدام وعود لتنفيذ دالتين بشكل متسلسل a().then(resA => { return b(); }) .then(resB => { // افعل شيئًا هنا }) .catch(err => { // اتعامل مع الأخطاء هنا }); في حال لم تكن الاجابة السابقة كافية، قم بمشاركة ملفات المشروع الخاص بك حتى احاول مساعدتك بشكل افضل.
-
النسبة بين الطول والعرض في الصور الشخصية هي 1:1، أي مكنك استخدام أي قياس مادام الطول يساوي العرض. النسبة بين الطول والعرض في الصور الخاصة بمعرض الاعمال هي 11:8 ومعامل التناسب هو 1.375، أي يمكنك استخدام أي قياس مادام العرض يسوي الطول * 1.375.
- 2 اجابة
-
- 1
-
-
قد تكون المشكلة من السيرفر حيث لا يقبل استقبال الطلبات من خادم مختلف، جرب استخدام cors على السيرفر ثم حاول مرة ثانية : var express = require('express') var cors = require('cors') var app = express() app.use(cors()) // باقي الكود
- 3 اجابة
-
- 1
-
-
يوجد الحزمة accesscontrol ويمكنك استخدامها مثل : const ac = new AccessControl(); ac.grant('user') // define new or modify existing role. also takes an array. .createOwn('video') // equivalent to .createOwn('video', ['*']) .deleteOwn('video') .readAny('video') .grant('admin') // switch to another role without breaking the chain .extend('user') // inherit role capabilities. also takes an array .updateAny('video', ['title']) // explicitly defined attributes .deleteAny('video'); const permission = ac.can('user').createOwn('video'); console.log(permission.granted); // —> true console.log(permission.attributes); // —> ['*'] (all attributes) permission = ac.can('admin').updateAny('video'); console.log(permission.granted); // —> true console.log(permission.attributes); // —> ['title'] يمكنك الوصول إلى الصفحة الخاصة بالحزمة من هنا
-
رجاءً قم بالتعليق اسفل الدرس الذي تقصده أو قم بشرح مشكلتك بشكل افضل. وفي حال كنت تقصد الوظيفة exit في بايثون فهي تستخدم للخروج من البرنامج.
-
نعم يوجد ضمان بأن تسترد قيمة الدورة إذا لم تستطع الحصول على قيمتها، ولكن شرط العرض هو ان تكون انهيت الدورة وحصلت على الشهادة وبحث عن عمل خلال الـ 6 اشهر وقمت بأخذ نصائح المدربين بعين الاعتبار، يجب عليك ان تصبر وتضيف العروض باستمرار، في حال اردت التواصل مع مركز المساعدة حول الامر يمكنك التواصل معهم من هنا وقد يفيدك الاطلاع على المقالات التي تنشرها مستقل باستمرار حول كيفية البدء بالعمل من هنا وكذلك قد يفيدك الاطلاع على النقاش التالي : وهذا كتاب عن العمل عبر الانترنت :
- 2 اجابة
-
- 1
-
-
المعلومات التي قمت بمشاركتها غير كافية للحكم على الحاسوب، حيث ان العناصر الاهم هي الهارد والرام. وبشكل عام انت بحاجة لهارد SSD و رام اكبر او يساوي 8 أما المعالج الخاص بك فهو يفي بالغرض. إذا كان الهارد الخاص بك من النوع HDD فيمكنك استبداله بسهوله بأخر من النوع SSD. وإذا كان الرامات الخاصة بك اقل من 8 فيمكنك كذلك إضافة رامات اضافية أو استبدال الرام الموجود بقيمة أكبر. أما نظام التشغيل فيفضل ان تقوم بتنزيل نظام احدث مثل ويندوز 10 ولكن كما اخبرتك فالاهم هو الهارد والرام والمعالج. قد يفيدك الاطلاع على النقاش التالي : وكذلك يوجد فيديو يشرح الموضوع :
-
دراسة البرمجة الجامعية والدراسة الحرة تختلف في العديد من الجوانب. من ناحية فرص العمل، فإن دراسة البرمجة الجامعية تزيد من فرص الحصول على وظيفة في شركات كبيرة ومؤسسات حكومية، بينما يمكن للطلاب الذين يدرسون البرمجة بشكل حر أن يعملوا كمستقلين أو يبدأوا مشاريعهم الخاصة. من ناحية سهولة الدراسة، فإن دراسة البرمجة بشكل حر تتطلب مزيدًا من التحضير والتخطيط، بينما توفر دراسة البرمجة في الجامعات بيئة تعليمية مهيأة وتحديدًا لتعلُّم هذه المهارات. من ناحية الفائدة، فإن دراسة البرمجة في الجامعات توفر للطلاب مهارات أساسية وأسس قوية في هذا المجال، بينما يتطلب التعلُّم بشكل حر مزيدًا من التحدي والتخصص. وهذه نقاشات سابقة حول نفس الموضوع :
- 5 اجابة
-
- 1
-
-
هذا يعتمد على مقدار المعلومات التي تعرفها في البرمجة. ورغم ذلك فلن يضرك الاطلاع على الدروة بسرعة، فهي تحتوي على بعض المفاهيم الاساسية التي ستساعدك في فهم امور اكثر تعقيداً فيما بعد، تعلم سكراتش سيسهل عليك التعامل مع الشروط والحلقات و الربط بين الشيفرات والتعامل مع الاكواد في المستقبل. بعد قول ذلك فيمكنك الاطلاع على الدروس الأولى في سكراتش وإذا احسست بأنك لست بحاجة إليها يمكنك تجاوزها. كذلك فلست ملزماً بمتابعة الدورة حتى تقوم بالتقدم للامتحان النهائي وتحصل على الشهادة.
-
يمكن أن تختلف المواصفات التي يجب أن تتوفر في شريك العمل حسب نوع العمل والمجال الذي تعمل فيه. ومع ذلك، فإن بعض المواصفات الأساسية التي يجب أن يتوفر في شريك العمل لتحقيق نجاح العمل هي: 1. الشغف والتفاني في العمل. 2. المهارات والخبرة المطلوبة لأداء المهام المطلوبة. 3. القدرة على التواصل والتعاون مع الآخرين. 4. الإلمام بالتقنيات والأدوات المستخدمة في مجال العمل. 5. القدرة على التكيف مع التغييرات والتحديات. بالإضافة إلى ذلك، يجب أن يكون شريك العمل متحمسًا للعمل معك، وأن يشاركك نفس رؤية وأهداف العمل. بشأن كيفية اختيار شريك العمل، يجب أولاً تحديد المهام التي يجب أن يؤديها شريك العمل، ثم تحديد المواصفات التي يجب أن يتوفر بها شريك العمل لأداء هذه المهام بشكل جيد. بعد ذلك، يجب إجراء عملية اختيار دقيقة لشريك العمل، وذلك من خلال إجراء مقابلات شخصية وفحص سيرة ذاتية لشركائك المحتملين. أخيرًا، من أجل ضمان أن شريك عملك جدي في العمل، يجب على كلا الطرفين تحديد أهداف واضحة للعمل، وتحديد خطط عمل محددة لتحقيق هذه الأهداف. كذلك، يجب على كلا الطرفين تحديد مسؤولياتهم بشكل واضح، وإظهار التزامهم بأداء هذه المسؤوليات بشكل جاد.
- 4 اجابة
-
- 1
-
-
نعم سيظل الكود مفتوحاً إلى الأبد، وستتمكن من الوصول إلى جميع موارد الكورس ومن ضمنها التحديثات التي يتم إضافتها كل فترة.
- 5 اجابة
-
- 1
-
-
المشكلة التي تظهر في الصورة، تخبرك بأنه لا يوجد اي بيانات لرفعها. جرب كتابة الأمر commit قبل ان تقوم برفع البيانات إلى المستودع البعيد : git add . git commit -m "initial commit" git push origin main
-
Data Science هو علم يجمع بين الرياضيات والإحصاء والبرمجة المتخصصة والتحليلات المتقدمة والذكاء الاصطناعي والتعلم الآلي مع خبرة محددة في موضوع معين لكشف الأفكار القابلة للتنفيذ المخفية في بيانات المؤسسة. يمكن استخدام هذه الأفكار لتوجيه عملية صنع القرارات والتخطيط الاستراتيجي. AI Data هو تطبيق للذكاء الاصطناعي في مجال تحليل البيانات. يستخدم AI Data تقنيات التعلم الآلي والشبكات العصبية لتحليل بيانات المؤسسة وإنشاء نظام توصية يستند إلى التحليلات. لا يمكن قول أن Data Science أفضل من AI Data أو العكس، حيث يختلف كلاهما في طبيعة استخدامه. إذا كان هدفك هو تحليل بيانات المؤسسة، فإن Data Science هو المجال المثالي لك. إذا كان هدفك هو تطبيق التحليلات على بيانات المؤسسة، فإن AI Data هو المجال المثالي لك. هناك العديد من الموارد التعليمية عبر الإنترنت التي يمكن استخدامها لتعلم Data Science و AI Data. كما تحتوي أكاديمية حسوب على مسار خاص بتحليل البيانات في دورة بايثون.
-
عند استخدام async/await فإنه يتم تنفيذ الكود بشكل متسلسل حيث يتم الانتظار حتى ينتهي الكود الذي يحتوي على الـ await ثم يتم تنفيذ الكود الذي يليه وهكذا، وذلك لأن الهدف اصلاً من الـ async/await هو ان تحول الدوال الغير متزامنة إلى دوال متزامنة (متزامنة أي تحدث بالترتيب). لتعرف اكثر يمكنك الاطلاع على المقال التالي : التوثيق المقدم من موسوعة حسوب
-
عند التعديل على حالة state في react فأنت بحاجة لاستخدام setState حتى تقوم بتعديل الحالة وعمل rerender للمكون. ولكن عند التعديل على الحالة state بشكل مباشر فأنت تقوم بتغيير قيمة المتغير state ولكن لا تقوم بالتعديل على الحالة التي تم إنشائها باستخدام الـ useState الاصلية. في الكود الخاص بك : if (showTodo === 'active') { todos = todos.filter(todo => !todo.status) console.log(todos); } else if (showTodo === 'finish') { todos = todos.filter(todo => todo.status) console.log(todos); } انت تقوم بالتعديل على المتغير todos مباشرةً ولذلك فإن الحالة todos لم تتأثر. ولذلك استطعنا الوصول إلى الحالة من خلال الـ parameter الخاص بالوظيفة setTodos والذي يحتوي على الحالة todos.
- 9 اجابة
-
- 1
-
-
حل المشكلة هو ان تعدل الكود الخاص بالإضافة للشكل التالي: const addtodosHandler = (todo) => { setTodos((todos) => [...todos, todo]); }; حيث ان الشكل : (todos) => [...todos, todo] يستخدم القيمة الأصلية للـ todos (غير المفلترة) بينما الشكل الخاص بك : [...todos, todo] فإنه يستخدم الـ todos التي تم التعديل عليها في الكود التالي : if (showTodo === 'active') { todos = todos.filter(todo => !todo.status) console.log(todos); } else if (showTodo === 'finish') { todos = todos.filter(todo => todo.status) console.log(todos); }
- 9 اجابة
-
- 1
-
-
يبدو أن الكود يستخدم الدالة useState في React. هذه الدالة تستخدم لإضافة حالة محلية إلى العنصر الذي يتم إنشاؤه. يتم استخدامها عادةً مع الدالة useEffect لإعادة تقديم العنصر عند تغيير الحالة المحلية. في هذا المثال، يتم تعريف متغير todos باستخدام useState. يتم تحديث قيمة هذا المتغير باستخدام setTodos. في كل مرة يتم فيها تحديث todos، يتم تصفية المصفوفة بناءً على showTodo. إذا كان showTodo هو ‘active’، فسيتم عرض المهام التي لم تكتمل بعد، وإذا كان showTodo هو ‘finish’، فسيتم عرض المهام التي تم إكمالها. إذا لم يكن الشرح السابق كافياً قم بمشاركة الكود الخاص بك بالكامل.
- 9 اجابة
-
- 1
-
-
يبدو ان هنالك استضافة تحاول الاتصال بالخادم ولكن الخادم يستجيب بالكود 400 والذي يعني حدوث خطأ وهذا ما يسبب فشل الاستضافة. إذا كنت تريد اختفاء رسالة الخطأ يمكنك إيقاف الاستضافة من اعدادات المتصفح.
-
يمكنك العمل عن بعد في مجال الصيانة حيث توجه العميل للقيام بخطوات معينة لإصلاح الجهاز أو ان يمنحك الوصول إلى الجهاز لتقوم بإصلاحه، كذلك يمكنك العمل في مجال التدريب على صيانة الاجهزة أو نشر فيديوهات أو مقالات تعليمية، ولكن ما انصحك به هو الذهاب إلى مستقل من هنا و الاطلاع على المشاريع المطلوبة في مجال العمل الحر، حيث سيمكنك ذلك من تحديد العمل المناسب لك.