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

Taha Khalid

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

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

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

كل منشورات العضو Taha Khalid

  1. عليك امتلاك المهارات التي تؤهلك للعمل بهذه المجال كما ذكر في التعليق سابق ثما البحث عن عمل في مواقع العمل الحر كما مستقل يمكنك الدخول من هنا https://mostaql.com/ ثما البحث عن الوظائف التي تحمل الكلمه المفتاحيه مدخل بيانات او data entry وستظهر لك جميع المشاريع المشابه بالكلمات المفتاحيه التي كتبتها يمكنك اختيار مشروع مشابه لمهاراتك وكتابة عرض جيد وباذن الله يتم اختيارك بتوفيق
  2. يمكنك الدخول الي هذه الموقع هنا ستجد جميع Mockup التي تريدها ومشابها لصورة الشعار المعروض ثما اختار واحده منهم وقم بتنزيلها عن طريق زر التنزيل وقم بتعديل اي شئ بها سواء اضافة اسم شركتك او اي شئ اخر تريد تعديله بصوره
  3. هذه المشكله تتعلق بالفيزه نفسها يجب ان تكون الفيزا تصلح للتعامل الدولي بالاضافه يجب التاكد من البنك التابع لها بانك تستطيع عمل عمليات شرائيه خارج السعوديه
  4. الكود يستخدم حلقة تكرارية لعد الأعداد الفردية الإيجابية أقل من n، وهو يعمل بشكل صحيح. ولاكن يمكن تحسين كفاءة الكود الخاص بك عن طريق استخدام تعقيد زمني أقل. بدلاً من استخدام حلقة تكرارية، يمكنك استخدام الرياضيات لحساب العدد مباشرة بشكل افضل. على سبيل المثال، يمكن استخدام الصيغة التالية: عدد الأعداد الفردية = n // 2 إذا كان n فرديًا، أو عدد الأعداد الفردية = (n - 1) // 2 إذا كان n زوجيًا. وبهذه الطريقه ستقلل من التعقيد الزمني لحل المسألة .
  5. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل
  6. هذه المشكله شائعه و السبب الرئيسي لحدوث مشكلة CORS هو سياسات الأمان التي يتم تطبيقها على الخادم الذي تحاول الوصول إليه. عادة ما يتم تكوين الخواص CORS على الخادم للسماح أو منع الوصول إلى الموارد من مصادر مختلفة. في معظم الحالات، يتم تعيين رأس Access-Control-Allow-Origin على الخادم ليحدد النطاقات المسموح لها بالوصول إلى الموارد كمثال، إذا كنت تحاول الوصول إلى هذه الرابط https://example.com، يجب أن يتم تعيين الرأس Access-Control-Allow-Origin على الخادم و لحل هذه المشكله يمكنك تعديل ملف .htaccess files واضافة سطر الكود هذه به Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, PUT, POST, DELETE" Header set Access-Control-Allow-Headers "Content-Type, Authorization"
  7. حل المشكله بسيط وكنت اتذكر انك سالتي ازاي اقدر اوصل لحل المشاكل التي تواجهني من قبل فا هنا في نفس الشاشة الخطاء ايضا يوجد الحل اذا نظرتي في الجهه اليمني ستجدي الحل الحل ببساطه هنا كما ذكر تفعيل امر npm run dev ثما اعادة تحديث الصفحه اذا كنتي تريدي عدم اظهار هذه المشكله اطلاقا وخاصة بعد رفع المشرع علي سيرفر فلن تستطيعي تفعيل الامر المذكور لذالك لتجنب تفعيل هذه الامر يمكنك كتابة الامر التالي مره واحده فقط في المشروع npm run build عمومًا، "npm run dev" يستخدم أثناء عملية التطوير والاختبار ، بينما "npm run build" يستخدم للإنتاج إلاصدار تمهيدًا للرفع علي السيرفر.
  8. الحل بيختلف من فريمورك للاخر ياريت لو تقدر تذكر انت بتعمل علي اي android native او flutter او react native ولاكن توجد ايضا خطوات ثابته يمكنك اتباعها اولا تمكين JavaScript في WebView الخاص بك لتفعيل وظيفة رفع الملفات يمكنك تمكين JavaScript بهذه الطريقه : webView.getSettings().setJavaScriptEnabled(true); ثانيا استخدام WebChromeClient لانه يدعمً العمليات التفاعلية مثل اختيار الملفات. تأكد من تعيين WebChromeClient لـ WebView الخاص بك بهذه الطريقه : webView.setWebChromeClient(new WebChromeClient()); ثالثا تاكد من اخذ الصلاحيات من المستخدم جيدا <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  9. بدون الدخول في زحمة الاكستينشن و المشاكل و دفع الاموال مقابل هذه الخدمه الموضوع بسيط جدا ومجاني بالكامل كل ما عليك فقط هو تنزيل هذه الاكستنشن لكي تستطيع استخدمها كل ما عليك هو التاشير بالموس علي المكان ثما الضغط علي مسطر او (sapce) لكي يكمل لك الكود بهذه الطريقه بعد رؤية الاكمال فقط عليك الضغط علي زر tap وبذالك يكون الاقتراح تم بتوفيق
  10. اولا لابد من توضيح النقاط التاليه : ( أذا تم تغافلها ستقع في مشكله وخلاف مستقبلا لاقدر الله ) 1- توزيع رأس المال وحصص الشريكين. 2- توزيع حصة كل شريك من الاصول .( هل من يشارك في مجهوده له من الاصول الثابته نسبه) 3- الطرف صاحب الفكرة او من يدير المشروع هل سيعمل براتب او فقط بالنسبه . 4- متى يتم توزيع الارباح (ان وجدت ) نهاية كل سنه او كل سنتين . 5- توزيع الخسائر ( هل فقط يتحمل صاحب المال الخسائر ) . 6- في حال عدم تحقيق ارباح (لاقدر الله ) هل الشريك اللذي يعمل بنسبة الربح قادر على الاستمرار اما اجابت سؤالك عن نسبة ادارتك للمشروع فهناك فرق بين توزيع حصص الملكية للشركة وتوزيع الأرباح. حصص الملكية تشير إلى النسب الملكية في الشركة نفسها، وهي شيء ثابت وطويل الأجل. أما توزيع الأرباح، فهو شيء متغير ويمكن تعديله حسب أدوار الشركاء في الشركة كل سنة. عند بدء الشركة، تنقسم إلى ثلاثة أقسام رئيسية: الفكرة، رأس المال، والإدارة. الفكرة تتعلق بفكرة المشروع المجردة، ويمكن أن تتضمن دراسة جدوى للمشروع. وتُقيَّم عادة بنسبة تصل إلى 15% كحد أقصى. الإدارة تتعلق بإدارة المشروع ويمكن أن تتمثل في راتب أو نسبة أو كليهما. على سبيل المثال، قد تكون نسبة الإدارة 10% من رأس المال في حالة عدم وجود راتب، أو راتب ثابت بالإضافة إلى نسبة تتراوح بين 10% و30% من أرباح الشركة في نهاية السنة. هذه النسب لا تؤثر على حصص الملكية وفي النهايه فهي تتوقف على عوامل كثيره اهمها مدى قدرة المشارك بالاداره على ادارة المشروع من الناحيه التسويقيه والماليه والتشغيليه من هذا المنطلق تحدد نسبة الاداره رأس المال يأخذ نسبة تتراوح عادة بين 70% و85% من حصص الملكية، ويتم تحديدها حسب المساهمة المالية لكل شريك. ستجد هنا نقاش مفصل عن هذه الموضوع بشكل جيد جدا
  11. عليك تغيير هذه القيم وبائن الله ستحل المشكله تغير هذه BROADCAST_DRIVER=log الي هذه BROADCAST_DRIVER=pusher لانك المفترض تعمل علي سيرفر pusher وايضا اي event يتم ادخاله مباشرة الي Queue Job لذالك اذا لم تفعل cron job في سيرفر فلن يتم تنفيذ الحدث فامؤقتا عليك ايضا بتغيير هذه القيمه من QUEUE_CONNECTION=database الي QUEUE_CONNECTION=sync بتوفيق
  12. عن تجربه شخصيه يمكنك العمل بنسخه المجانيه علي السيرفر بدون حدوث اي مشاكل وكما انت ذاكرت بانه يعمل معك علي الوكال بطريقه جيده ولا تحدث معك مشاكل فبتاكيد ستجد ان المشاكل ستكون في الاعدادت ال pusher يفضل ان تراجع الاعدادت مره اخر و تقارنها باعدادت السيرفر وايضا اذا كانت المشكله مزالة تواجهك يفضل ارفاق معلومات اكثر عن مشروعك يعمل php native او لارافل ام ماذا
  13. تقدري تبحثي في جوجل باستخدام الكلمات الرئيسية المرتبطة بمشروع إدارة صالات المناسبات والأفراح مثل "event management"، "venue management"، "wedding management"، "party management" وما إلى ذلك ثم قمي بوضع كلمة GitHub في اخر الكلمه الرئيسيه بنسبه لاختيار قاعدة البيانات لا يوجد واحده افضل من الاخري ولاكن يوجد الانسب للمشروع الاثنين يستطيعو بناء المشروع بكفاءة ولاكن علي المدي البعيد يفضل استخدام MYSql .
  14. دورة javascript هي تبداء من التاسيس وتتناول كل الاساسيات و انا اتوقع بما ان مشروع التخرج هو مشروع تكنلوجي فانتم تدرسون بكلية علوم الحاسب او كليه تخصصيه في هذه المجال وبتاكيد لديكم الخبر و الاساسيات التي تم تدريسها داخل الجامعه لذالك يمكنك تجاوز بعض الاقسام التي تهتم بالاساسيات بدورة javascript والبدي من مستوي متقدم ثانيا لا تبدئي من الصفر تستطيعي البحث عن مشاريع مشابهه بداخل الجيتهاب وعند ايجاد المشروع الماشبه يمكنك تنزيله والتعديل عليه بكل سهوله ثالثا يمكنك التواصل مع احد خبره يستطيع مساعدتكم اذا ظهرت معكم اخطاء في المشروع وايضا يمكنك طرح اي سؤال هنا داخل اكاديمية حسوب تخص الدوره او المشروع الخاص بكي
  15. وعليكم السلام الوقت المتوقع عادتاّ‌ً للحصول على عمل يختلف من شخص لاخر علي حسبب عدد ساعات المذكره و التطبيق ومدي استيعاب الطالب من المفترض المهارات التي ذكرتها فا انت تمتلك الان الخبره الكافيه للعمل كا نصيحه لا تتوقف ابدا عن حل المشاكل بالغات البرمجه واجعلها عاده يوميه ثانيا المساهمة في مشاريع مفتوحة المصدر لكسب خبرة امر عظيم جدا متبقي شئ واحد وهو الحصول علي عمل يمكنك اتباع طريقتين الاوله العمل الحر عن طريق تقديم خدماتك علي مواقع العمل الحر مثل خمسات و مستقل او التقديم في شركات يمكنك متابعة مواقع التوظيف مثل بعيد و لينكداين للحصول علي وظيفه بتوفيقك لك https://academy.hsoub.com/questions/12321-كيفة-الحصول-على-وظيفه-أو-زبائن/#comment-33441
  16. استخدام Pseudo Elements (before أو after) كما ذكرت وبطبع هناك طرق أخرى متاحة أيضًا مثالًا يمكنك استخدام الـ Pseudo Element وايضا يمكنك استخدام JavaScript لتحقيق ذلك. سنعطي مثال اولا عن طريقة استخدام Pseudo Elements سنستخدم الـ Pseudo Element ::before لإضافة نص داخل العنصر <div>: <div class="my-div"></div> css .my-div::before { content: "النص المراد إضافته"; } ام الطريقه الثانيه هي باستخدام JavaScript <div id="my-div"></div> JavaScript var divElement = document.getElementById("my-div"); var spanElement = document.createElement("span"); spanElement.textContent = "النص المراد إضافته"; divElement.appendChild(spanElement); يمكنك ايضا قرات هذه المقال لللتعمق اكثر https://academy.hsoub.com/programming/css/تحريك-شبه-العناصر-pseudo-elements-في-css-r145/
  17. نعم بتاكيد العلاقه صحيحه كمثال في الصوره الاولي علاقة الطالب بالمشاريع فهناك طالب واحد يمكن ان يكون لديه اكثر من مشروع ايضا المشرف فايمكن ان يكون المشرف لديه قسم واحد او اكثر لذال العلاقات صحيحه تمام
  18. يوجد نهج اخر يمكنك ان تتبعه يمكنك إنشاء جدول واحد يحتوي على جميع أنواع المستخدمين، وسنسميه "users" على سبيل المثال. سيتم تضمين جميع انواع المستخدمين مثل المشرف او الطالب مع تحديد الصلاحيات الخاصة بكل مستخدم داخل هذا الجدول، هذه سيجعل النظام أكثر تنظيمًا وسهولة في الإدارة. ثما سنقوم بربط جدول الأقسام بجدول المستخدمين بعلاقة واحد إلى متعدد، حيث يمكن لكل قسم أن يحتوي على العديد من المستخدمين. وبنفس الطريقة، سنقوم بربط جدول المستخدمين بجدول المشاريع أيضًا بعلاقة واحد إلى متعدد، مما يسمح لكل مستخدم ان يمتلك العديد من المشاريع. والاهم هو تنظيم الصلاحيات بحيث يمكن فقط للطلاب رفع المشاريع، وهذا يمكن تحقيقه من خلال تعيين الصلاحيات بشكل دقيق داخل جدول المستخدمين.
  19. مرحبا يوسف، في بداية تعلمك لاي مجال بتاكيد ستواجهك بعض الصعوبات في البدايه وخاصة مجال مثل الذكاء الاصطناعي محال ملئ بتحديات الجزء الذي لاتفهمه يفضل اعادته واستماع الشرح مره اخري اما اذا حدثت معك مشكله او لم تفهم جزء معين في محاضره فاكاديمية حسوب بتوفر قسم كامل لكل محاضره تستطيع طرح سؤالك به وسيتم الرد عليك من متخصصين في نفس مجالك بالتوفيق.
  20. بالإضافة إلى التعليق السابق، من المهم جداً التأكد من ترتيب الجداول، لأن في كثير من الأحيان، إذا كانت هناك مشكلة تتعلق بقاعدة البيانات ولا يبدو أن السبب مرتبط بالكود، فقد يكون السبب هو ترتيب الجداول. يتم ترتيب الجداول في لارافيل تنازليًا حسب الوقت الذي تم إنشاؤها به، بمعنى أنه إذا تم إنشاء جدول جديد، فسيكون ترتيب الجداول في آخر الجداول التي تم إنشاؤها. ستلاحظ في الصورة أن الجداول يتم ترتيبها من الأقدم إلى الأحدث. كيف يسبب هذه خطا عند استخدام مفهوم Foreign Key في Laravel، يجب أن يكون الجدول الذي تشير إليه Foreign Key موجودًا قبل الجدول الذي يحتوي على Foreign Key. وإذا كان Laravel يحاول إنشاء الجدول الذي يحتوي على Foreign Key قبل الجدول الذي يشير إليه، فقد يتسبب ذلك في الخطأ الذي واجهته
  21. يرجي التوضيح اكثر ما هي العمليه الحسابيه التي تريد تنفيذها اذا كنت تريد كود لانشاء جدول للعمليات الحسابيه وهذه قصدك فا ببساطه هذه مثال لكليفية انشاء هذه الجدول CREATE TABLE Operations ( OperationID INT PRIMARY KEY, Operand1 DECIMAL(10,2), Operand2 DECIMAL(10,2), Operator CHAR(1), Result DECIMAL(10,2) ); OperationID: يمثل معرف العملية الحسابية. Operand1: يمثل العدد الأول في العملية الحسابية. Operand2: يمثل العدد الثاني في العملية الحسابية. Operator: يمثل العملية الحسابية المستخدمة (+، -، *، /). Result: يمثل النتيجة النهائية للعملية الحسابية.
  22. لتعرف الاجابه يجب اولا معرفة ما هو كورس cs50 وموجهه لاي فئه و ما هي محتويات الكورس وماذ ستتعلم منه دعنا نعرف في البدايه ما هو كورس CS50؟ كورس CS50 وهو كورس تمهيدي يقوم بشرح كل أساسيات علوم الكمبيوتر التي أنت بحاجتها للإقدام على تعلم مهارات تخصصية أكثر كالبرمجة والتطوير. كورس CS50 (أو CS50X) هو كورس من تقديم جامعة هارفارد الشهيرة، موجه للأشخاص المبتدئين الذين لا يعرفون الكثير في مجال الكمبيوتر . سيساعدك الكورس على فهم أساسيات البرمجة، وكيف تعمل و كيف تتعامل بها على الحاسوب، وكيف يستجيب الحاسوب إلى الأوامر البرمجية. بمعنى أخذ هذا الكورس يعني اكتساب كل ما تحتاجه للبدء في مسارك في البرمجة والتطوير وعلوم الكمبيوتر عمومًا الفئه الموجهه لها هذه الكورس يُوجَّه الكورس للمبتدئين الذين لا يمتلكون خبرة سابقة في البرمجة و الذين يرغبون في تعزيز مهاراتهم لذالك الكورس يتداول المواضيع التي تجعلك متاسس في المجال بطريقه قويه الكورس يتداول جميع المجالات و المواد مثل الخوارزميات و هياكل البيانات ولاكن بطريقه سطحيه وليست بالعمق اللذي سيجعلك محترف فالاجابه علي سؤالك هي الكورس غير كافي ولاكن ستحتاج الي دراسة هذه المواد باكثر تعمقا من مصادر مختلفه
  23. مشكلة تغيير كلمات السر لقاعدة البيانات بشكل تلقائي في MySQL ظاهرة غريبه وليست شائعةولا ينبغي أن تحدث في ظل ظروف التشغيل العادية : لقد وجهتني مشكله مثل هذه ولاكن بطريقه اخري وهي عندما كنت أقوم بعمل نسخة احتياطية لقواعد البيانات الإنتاجية باستخدام الأمر mysqldump --all-databases، يتم استخراج جميع قواعد البيانات الداخلية مثل mysql، والجداول داخل mysql.user التي تحتوي على جميع كلمات المرور، ويتم أيضًا استخراج جميع الامتيازات من البيئة الإنتاجية. لذلك عند إعادة تشغيل خادم MySQL، يتم تفريغ الامتيازات مما يؤدي إلى تغيير كلمات المرور إلى كلمات المرور الإنتاجية. ايضا يجب عليك التاكد من أدوات الأمان حيث ان هناك أدوات أو سكريبتات تلقائية مثبتة خاصه بأمان النظام تغيير كلمات السر بشكل دوري.
  24. نعم، يمكنك تحويل ملفات Batch (bat.) إلى ملفات ISO قابلة للإقلاع، ولكن هذه العملية تتطلب عدة خطوات لأن ملف .bat بحد ذاته لا يمكنه الإقلاع مباشرة من وسيط خارجي مثل USB. ولاكن ، يمكنك دمج ملف .bat الخاص بك ضمن نظام تشغيل قابل للإقلاع مثل Windows PE (نظام التشغيل المصغر) أو Linux live مثال علي Windows PE : اولا يجب تحميل و تثبيت ADK لـ Windows تستطيع تنزيله من موقع مايكروسوفت الرسمي يتضمن أدوات تساعدك على إنشاء بيئات Windows PE. استخدم أدوات ADK لإنشاء صورة Windows PE و بعد ذلك يجب تخصيص الصورة لتشمل ملف .bat الخاص بك وأي برامج تحتاج إلى تشغيلها. مثال علي Linux Live: اختيار أي توزيعة لينكس تدعم إنشاء أنظمة لايف مثل Ubuntu. إضافة ملف .bat ستحتاج إلى تحويل البرنامج النصي .bat إلى نص برمجي Bash ليتوافق مع لينكس، أو يمكنك استخدام Wine لتشغيل ملف .bat مباشرةً في لينكس. إنشاء ملف ISO: بعد تجهيز بيئة Windows PE أو توزيعة لينكس، يمكنك استخدام أدات مثل mkisofs في لينكس أو أدوات مدمجة في Windows لإنشاء ملف ISO . حرق ملف ISO على USB: اخر خطوه استخدم أداة مثل Rufus أو Etcher لحرق ملف ISO على USB. هذا سيجعل الفلاش ميموري قابلة للإقلاع.
  25. Redis : هو نظام قاعدة بيانات يستخدم لتخزين واسترجاع البيانات بسرعة عالية. يتميز Redis بكونه سريعًا ، ويدعم العديد من البيانات الأساسية مثل السلاسل (Strings) والقوائم (Lists) والمجموعات (Sets) والمخطوطات (Hashes) والترتيبات المرتبطة بالنصوص (Sorted Sets)، بالإضافة إلى دعم توسيع الوظائف بواسطة مكتبات مضمنة. دعنا نطبق علي كيفية استخدام Redis في الداله الخاصه بك getMyAllPosts اولا قم بتثبيت المكتبه عن طريق هذه الامر npm install redis ثانيا يجب عليك استرداد المكتبه بهذه الطريقه const Redis = require('redis'); ثالثا يجب عليك انشاء اتصال بالخادم const redisClient = Redis.createClient(); ثما يمكنك استخدام Redis مع دالة getMyAllPosts لستصبح بهذه الشكل exports.getMyAllPosts = async (req, res) => { try { // التحقق مما إذا كانت البيانات موجودة في ذاكرة Redis redisClient.get('myAllPosts', async (err, cachedPosts) => { if (err) { console.error('Error retrieving data from Redis cache:', err); } if (cachedPosts) { // إذا تم العثور على البيانات في ذاكرة Redis، استرجاعها وإرجاعها كاستجابة console.log('Data found in Redis cache'); res.status(200).json(JSON.parse(cachedPosts)); } else { // إذا لم يتم العثور على البيانات في ذاكرة Redis، قم بالاستعلام عن قاعدة البيانات وتخزين النتائج في ذاكرة Redis const myPosts = await models.Post.findAll({ where: {UserId: req.currentUser.id}, include: [ { model: models.Post_Image } ] }); // تخزين البيانات في ذاكرة Redis للاستفادة منها في الطلبات المستقبلية redisClient.set('myAllPosts', JSON.stringify(myPosts), (err, reply) => { if (err) { console.error('Error storing data in Redis cache:', err); } console.log('Data stored in Redis cache'); }); // إرجاع البيانات كاستجابة res.status(200).json(myPosts); } }); } catch (e) { console.error('Error retrieving posts:', e); res.status(500).json(e); } }
×
×
  • أضف...