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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. نحتاج لقراءة البيانات من ملف التجريب وليكن اسمه myfile.txt حيث نفتح الملف في وضع القراءة open('myfile.txt', 'r') أما لقراءة الأسطر نستخدم الدالة ()file1.readlines ثم نعرف العداد و نزيد قيمته لكل حرق A يقع في أول السلسلة النصية التي تعبر عن سطر. أرجو تجريب الشرح أولا و محاولة كتابة البرنامج # Using readlines() file1 = open('myfile.txt', 'r') Lines = file1.readlines() count = 0 # Strips the newline character for line in Lines: if line[0] == 'A': count += 1 print("Number Of Lines = {}".format(count))
  2. في حال كنا نريد التحقق من وجود علاقة للنموذج المطلوب أي ELOQUENT RELATIONSHIP بشكل مباشر قبل تنفيذ الاستعلام يمكن استخدام إحدى الطرق التالية: is_null exists() has('relation') if (is_null($user->mediaProfile)) { ... } //or $model->relation->count(); //or $model->relation()->exists() //or Model::has('relation')->get() //or if(!is_null($model->relation)) { .... }
  3. ألا يعمل IOS simulator على البيئة الوهمية؟
  4. ما هي أفضل طريقة لبناء تطبيقات Flutter بدون الحاجة لجهاز macOS. و كيف يتم تثبيت نظام macOS بشكل وهمي. وهل يوجد حلول بديلة؟
  5. يوجد نمط حسابي بسيط يمكنك ملاحظة أن العدد في المنتصف هو ناتج عن ضرب العدد الأيسر ب 2 و العدد الأيمن ناتج عن ضرب الأوسط ب 3 لغز رياضي وليس برمجي*
  6. إن الأرقام الموضحة بالصور تعود للنظام العد الثنائي حيث كلخانة تدل على مضاف للعدد 2 (1,2,4,8) .. بالترتيب عند وجود القيمة 1 في التمثيل يتم أخذ قيمة الخانة المقابلة ويتم جمعها مع النتيجة أما في حال كانت 0 تترك ولا تؤخذ. 1 1 1 1 8 4 2 1 => 15 ______________________ 000 => 0 + 0 + 0 = 0 001 => 0 + 0 + 1 = 1 010 => 0 + 2 + 0 = 2 011 => 0 + 2 + 2 = 3 100 => 4 + 0 + 0 = 4 .. 111 => 4 + 2 + 1 = 7 رياضيا نقرأ خانات العدد من اليمين لليسار و نقوم بعملية ضرب لقيمة الخانة بالقيمة 2 أس (قوة) موقعها - 1 (1 | 0) * 2 ^ (موقع القيمة - 1) 1011101010101 ________^ موقع الخانة هو 5 => 1 * 2^(5-1) = 2^4 = 16 الجواب هو الخيار الثاني 110
  7. سبب المشكلة هو أنه لا يتم تفسير النص ك شيفرة HTML ولا يتم عمل render لها لذلك يجب تطبيق المنطق التالي: render() { return ( <div dangerouslySetInnerHTML={{ __html: this.state.posts }} /> ); } أو render() { return ( <div dangerouslySetInnerHTML={{ __html: this.htmlDecode(this.state.posts) }} /> ); }
  8. يمكنك استخدام arrow function في الجزء التالي لحل المشكلة. handleClick = (item) => (e) => { e.preventDefault() console.log(`This has access to item ${item}! and event(e)`) } . return ( <button onClick={() => this.handleClick(item)}> Content </button> ); بهذه الحالة سيتم إنشاء دالة أخرى تقوم باستدعاء handleClick الخاص بك
  9. أظن أن الخطأ يكمن في تضمين المكون Main فيجب أن يكون بالشكل التالي: var About = require('./components/Main').default _______________________________________^^^^^^^^^^ أي إضافة default
  10. يمكن تعريف متغير في Blade PHP Block بالطريقة التالية: @php $hello = "Hello World!"; @endphp وهي تشبه الطريقة التي تقوم PHP بتعريف المتغيرات فيها أي الحالة العادية General PHP Block لكن يختلف شكل الوسم وللوصل للمتغير يمكن من خلال: {{$hello}} طرق أخرى .. @set($var, 10) @set($var2, 'some string') @section('someSection') {{ $yourVar = 'Your value' }} @endsection @php($old_section = "whatever")
  11. يمكنك فقط التبديل بين موقعي التعليمتين وهذا لا يؤثر على عمل البرنامج لتصبح كالتالي: cout << " waite plz.." << endl; system("cmd /C \"\"C:\\Program Files (x86)\\SmartGaGa\\ProjectTitan\\Engine\\ProjectTitan.exe\"\""); //فنح المحاكي . وملاحظة أخرى، أنت تعتمد على المتغير hwnd في الدالة GetWindowThreadProcessId قبل التأكد من قيمته (أقصد اختبار الشرط if ) فأقترح تنفيذ الدالة GetWindowThreadProcessId ضمن الحلقة (لا أعرف ماذا يحمل المتغير hwnd ولكن لتنجب تضمينه في الدالة GetWindowThreadProcessId بدون معرفة قيمته.
  12. يمكننا عمل جدول فرعي يحوي الاستعلام المطلوب ثم نقوم بالاستعلام منه عن طريق الدالة mergeBindings أي يصبح الاستعلام بالشكل التالي: $count = DB::table( DB::raw("({$sub->toSql()}) as sub") ) ->mergeBindings($sub->getQuery()) // يمكنك هنا تحديد الاستعلام ->count(); ولكن بطريقة اسهل من إصدار Laravel v5.6.12 أضيفت دالتين ()fromSub() and fromRaw لباني الاستعلامات حيث أصبح بالامكان جلب البيانات من الاستعلامات الجزئية مباشرة: DB::query()->fromSub(function ($query) { $query->from('abc')->groupBy('col1'); }, 'a')->count(); | Abc::selectSub(Abc::select('*')->groupBy('col1'), 'a')->count('a.*'); حيث أصبح هذه الطريقة الأفضل.
  13. ما هي المشكلة لديك؟ يجب تضمين بنية قاعدة البيانات أو تضمين صورة شاشة للخطأ الحاصل و في أي سطر من البرنامج، أرجو التوضيح قدر الإمكان
  14. بعد دخولك لمجلد المشروع ادخل إلى ملف composer وهو ملف يحوي على إعدادت المشروع من إصدار لارافيل إلى إصدار php إلى جميع المكتبات المستخدمة و أكثر .. اسم المشروع و الترخيص و .. فعليك قراءة الإصدارات من كل ما سبق والتأكد من وجودهم منصبين على حاسوبك. مثال لملف composer: لاحظ إصدار PHP 7 ,ولا رافيل 5.4. يمكنك عمل composer install لتثبيت ما ينقص من المشروع. { "name": "prooph/laravel-example", "license": "MIT", "type": "project", "require": { "php": ">=7.1", "laravel/framework": "5.4.*", "laravel/tinker": "~1.0" }, "require-dev": { "prooph/php-cs-fixer-config": "^0.1.1", "fzaninotto/faker": "~1.4", "mockery/mockery": "0.9.*", "phpunit/phpunit": "~5.7" }, "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/" } }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "scripts": { "post-root-package-install": [ "php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "php artisan key:generate" ], "post-install-cmd": [ "Illuminate\\Foundation\\ComposerScripts::postInstall", "php artisan optimize" ], "post-update-cmd": [ "Illuminate\\Foundation\\ComposerScripts::postUpdate", "php artisan optimize" ], "check": [ "@cs", "@test" ], "cs": "php-cs-fixer fix -v --diff --dry-run", "cs-fix": "php-cs-fixer fix -v --diff", "test": "phpunit" }, "config": { "preferred-install": "dist", "sort-packages": true, "optimize-autoloader": true } }
  15. إن هرمية MVC قائمة على توزيع المهام البرمجية إلى 3 أقسام، وهي MODEL أي نماذج قواعد البيانات، وما تحتويه من صفوف و بيانات و استعلامات، آليات الإضافة و التعديل وكل ما يتعلق بقواعد البيانات، مهمتها الأساسية في التطبيق هي تزويدنا بالمعلومات التي نطلبها. تقوم Eloquent في إطار العمل Laravel بمخاطبة قاعدة البيانات وتنفيذ تعليمات SQL بشكل يتناسب مع ما قد كتبناه عند تعريفنا للأصناف التي ترث الصف Model. ((القسم الثاني، العرض VIEW، وهو كل ما يظهر للمستخدم على الشاشة، أساسه صفحات HTML و ماتتضمنه من تنسيقات و ايضا جافا سكربت وإطارات العمل خاصتها.)) القسم الثالث، المتحكم Controller وهو عنصر الربط بين ماسبق، حيث أنه يستلم طلبية الزبون/المستخدم و يطلب بعدها البيانات المتوافقة من MODEL و بعدها يوجه البيانات بالشكل الصحيح لواجهة العرض المناسبة VIEW. المهمهو فهم دور كل مكون منهم في التطبيق وتوزيع العمل بينهم، إن الاعتماد على MVC يمنع ظهور الحشو في التطبيق، حيث كانت الصفحة الواحدة تحوي على خليط من عدة لغات برمجة، من استعلام قواعد البيانات إلى حشوها في عناصر HTML.. ما يعطي شيفرة برمجية غير منسقة و صعبة الفهم و التعديل و التطوير، وهذا يخالف مفاهيم و مبادئ تطوير البرمجيات. بالتوفيق
  16. الحل الأفضل هو عمل جدول خاص بالمحادثات (يحوي على id_user1 & id_user2) مع معرفآخر رسالة مشتركة مثلا بالإضافة لوضع معرف المحادثة في جدول الرسائل عند كل رسالة مشتركة بينهما، أي وضع معرّف خاص لكل محادثة كحقل إضافي في جدول الرسائل messages مثلا .. ثم يتم الاستعلام بعمل group by عن طريق معرّف المحادثة و جلب آخر رسالة، أو استخدام الكلمة المفتاحية distinct على جدول الرسائل وتمرير حقل المحادثة ليتم جلب الرسالة الأخيرة من كل محادثة مختلفة. هذا يعتمد على بنية الجداول في مشروعك وفي حال كنت تريد تعديلهم. _____________________________________________ أو يمكنك استخدام الاستعلام التالي: select m.* from messages m inner join ( select least(sender_ID, receiver_ID) as user_1, greatest(sender_ID, receiver_ID) as user_2, max(ID) as last_id, max(timestamp) as last_timestamp from messages group by least(sender_ID, receiver_ID), greatest(sender_ID, receiver_ID) ) s on least(sender_id, receiver_id)=user_1 and greatest(sender_id, receiver_id)=user_2 and m.id = s.last_id -- or last timestamp
  17. ربما يعود سبب هذه المشكلة لعدم حذف ملفات التخزين المؤقت cache عند رفع المشروع على الاستضافة فلا يتم التعرف على المسارات بشكل صحيح ولحل المشكلة يجب تنفيذ التعليمات التالية: php artisan composer dump-autoload php artisan config:cache php artisan config:clear php artisan cache:clear php artisan route:clear ___ php artisan optimize:clear ___ php artisan clear-compiled php artisan optimize php artisan cache:clear حسب نسخة لارافيل وفي حال عدم وجود ملف المكتبات vendor يحب تنفيذ: php artisan install ولكن ربما تكون مشكلة صلاحيات بسبب تغير الحاسوب/المستخدم فنقوم بالتالي: sudo chown -R www-data storage sudo chgrp -R www-data storage sudo chmod -R 775 storage
  18. يمكنك وضع الشيفرات البرمجية التي ترغب في فهما هنا في قسم أسئلة البرمجة (كل سؤال مختلف في منشور/سؤال مختلف) وسيتم الإجابة عليه من قِبل المدربين وشرحة بطريقة مبسطة وواضحة .. لا تقدم أكاديمية حسوب دورات بلغة جافا، إنما جميع الدورات تعتمد على جافاسكربت و موجه لعلوم الويب يمكنك البحث عن دورات في يوتيوب أو مواقع أخرى
  19. ربما سبب المشكلة بعدم تطابق كلمة السر يعود إلى عدم تشفيرها باستخدام الدالة bcrypt عند إنشاء الحساب و قبل إضافة الكلمة المشفرة لقاعدة البيانات في الدالة Create الخاصة بالنموذج. RegisterController.php الخاص بالمستخدم وفرضا هو User وتجنب تطبيق التشفير / التجزئة على كلمة المرور أكثر من مرة لأنه يعطي كلمة جديدة ولن يحدث مطابقة عند عمل الاختبار checkPassword
  20. ربما يعود الخطأ لوجود كلمة سر في ملف env. حيث يجب وضع القيمة التالية في ملف docker-compose.yml ليتم قراءة كلمة السر.. MYSQL_ALLOW_EMPTY_PASSWORD 'no' ثم للتأكد من ربط الحاوية بشكل صحيح مع قاعدة البيانات mysql container IP يجب تنفيذ التعليمة التالية: $ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name_or_container_ID> حيث تعيد ip ثم نضيفها في env file. DB_HOST=<ip_address> ip_address المعاد من التعليمة السابقة أو DB_HOST=mysql ثم نكمل العمل : $ sail artisan migrate في حال لم تعمل يجب تسجيل الدخول login in sail إلى الحاوية عن طريق: sail shell ثم نكمل artisan migrate.
  21. هل تريد جعل المستخدم قادراً على حفظ الصفحة بشكل pdf؟ الأفضل الطباعة من جهة المستخدم و عدم الطلب من السيرفر القيام بذلك. لطباعة قسم من صفحة الويب عن طريق جافاسكربت و jQuery يمكنك الاطلاع على المكتبة التالية printThis رابط التحميل و توثيق المكتبة من GitHub : github./printThis. يتم تنفيذ الشيفرو عن طريق استدعاء الدالة print this لأي عنصر HTML تريده مثلا: $('selector').printThis(); يمكنك إيجاد مثال من هنا : printThis example مع العلم يمكن تخصيص الإضافة بكثير من الخيارات: $("#mySelector").printThis({ debug: false, // show the iframe for debugging importCSS: true, // import parent page css importStyle: false, // import style tags printContainer: true, // print outer container/$.selector loadCSS: "", // path to additional css file - use an array [] for multiple pageTitle: "", // add title to print page removeInline: false, // remove inline styles from print elements removeInlineSelector: "*", // custom selectors to filter inline styles. removeInline must be true printDelay: 333, // variable print delay header: null, // prefix to html footer: null, // postfix to html base: false, // preserve the BASE tag or accept a string for the URL formValues: true, // preserve input/form values canvas: false, // copy canvas content doctypeString: '...', // enter a different doctype for older markup removeScripts: false, // remove script tags from print content copyTagClasses: false, // copy classes from the html & body tag beforePrintEvent: null, // function for printEvent in iframe beforePrint: null, // function called before iframe is filled afterPrint: null // function called before iframe is removed });
  22. يوجد العديد من الخدمات التي يمكن تقديمها إلكترونيا على الانترنت منها البرمجة و التصميم و التعليم عن بعد وغيرها .. يمكن الاتفاق بين صاحب المشروع و المسقل (الشخص الذي يعمل على المشروع) بشكل شخصي مباشر مثلاً أو عن طريق وسيط والذي بدوره يضمن طرفي المشروع ليمنع عمليات النصب والاحتيال و يأخذ بدوره نسبة من قيمة المشروع، ومثال على المواقع الوسيطة هو موقع مستقل. كيفية العمل، أولا، يقوم كل من صاحب المشروع و المستقل بإنشاء حسابات على الموقع لكل منهما. ثانياَ، يقوم صاحب المشروع بطرح هذا المشروع مع تفاصيله و كلفة تقديرية و وقت تنفيذ. ثالثا، عندما يتصفح المستقل المشاريع المطروحة وفي حال وجد نفسه قادرا على استلام المشروع العمل عليه يقوم بتقديم عرضه مع تحديد سعره الخاص و المدة التقديرية لإنهائه العمل. رابعاً، يمكن لصاحب المشروع التواصل مع من يجده مناسبا من المستقلين ليتم مناقش المشروع و من ثم توظيف المستقل، عندها يتم حجز قيمة المشروع لموقع مستقل بينما يتم إنجازه. خامساً، بعد الانتهاؤ من المشروع و تسليمه يقوم صاحب المشروع بالتأكد من الملفات و قبول استلام المشروع ليتم تحويل الأموال و خصم نسبة للموقع. يمكنك تصفح موقع مستقل لمزيد من التفاصيل.
  23. يجب فتح وسم php ثم طباعة هذا الكود ثم إغلاق الوسم. <?php echo ' <div class="dropdown"> <button onClick="myFunction()" class="dropbtn">Dropdown</button> <div id="myDropdown" class="dropdown-content"> <a href="#home">Home</a> <a href="#about">About</a> <a href="#contact">Contact</a> </div> </div> <script> function myFunction() { document.getElementById("myDropdown").classList.toggle("show"); } window.onclick = function(event) { if (!event.target.matches(".dropbtn")) { var dropdowns = document.getElementsByClassName("dropdown-content"); var i; for (i = 0; i < dropdowns.length; i++) { var openDropdown = dropdowns[i]; if (openDropdown.classList.contains("show")) { openDropdown.classList.remove("show"); } } } } </script> ' ?> استخدمت في عبارة echo الاقتباس الفردي ' فقمت بتغيير الاقتباس الفردي ضمن شيفرة جافاسكربت لكي لا يتم اعتبارها إغلاق لما سبق. يمكنك تجريب الكود السابق
  24. مرحبا فارس، إن مسار دورة تطوير واجهات الستخدم يشرح كل ما تحتاج إليه من البداية و لا يتطلب منك معرفة مسبقة، فقط أرجو مشاهدة الدورة بالترتيب. شكرا لك
  25. إن دورات أكاديمية حسوب محدثة باستمرار و تعلمك في الدورة html5 + css3 بآخر إصداراتها (بشكل عام الفروقات ليس جوهرية فلهم نفس طريقة الكتابة و نفس طريقة العمل إنما إضافات و تحسينات) شرح الفروقات مع الإصدار القديم تجده من هنا: بالنسبة لتعلم بايثون، لا يوجد حاليا دورة للبايثون في الأكاديمية، إنما يتم التركيز على لغة جافاسكربت لأنها لغة البرمجة الوحيدة التي تعمل في كل مكان مثل المتصفح و المخدم (back-end : node js). في حال لم يتم منحك صلاحية الوصول للدورة بعد شرائها يمكنك التوصل مع مركز الدعم من هنا مركز المساعدة - حسوب
×
×
  • أضف...