-
المساهمات
5232 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
52
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Adnane Kadri
-
في HTML، عنصر <form> يُستخدم لتجميع مجموعة من عناصر الإدخال (مثل <input>, <textarea>, <select>, وغيرها) بهدف إرسال البيانات إلى الخادم (server) عند تقديم النموذج. عندما تقوم بإضافة عناصر <label> و <input> بدون استخدام عنصر <form>، يمكنك بالفعل الحصول على نفس المظهر وتفاعل المستخدم المحلي مثل الكتابة في الحقول، لكنك تفقد بعض الوظائف المهمة التي يقدمها <form>، مثل: إرسال البيانات التحقق من البيانات (Validation) طريقة الإرسال (Method) الوجهة (Action) فالعنصر ضروري جدا، أكثر حتى من label فهو ما يحدد تجميعات البيانات التي نرسلها للخادم.
-
وعليكم السلام، المشكلة التي تواجهك هي أنك لا تتحكم في كيفية تداخل الشروط بشكل صحيح، وبالتالي تظهر الرسالة "Not Found pair" حتى عندما تجد الزوج المطلوب. يجب عليك تصحيح منطقك في الحل بحيث تظهر رسالة "Not Found pair" فقط بعد البحث عن كل الأزواج وعدم العثور على أي منهم. إليك الشيفرة معدلة: arr = [1, 2, 4, 4] sm = 8 found = False # متغير لتحديد إذا ما كان وجدنا زوجًا مناسبًا أم لا # التحقق من كل زوج من الأرقام for i in range(len(arr)): for j in range(i + 1, len(arr)): if arr[i] + arr[j] == sm: print(f"{arr[i]} + {arr[j]} = {sm}") found = True # إذا وجدنا زوجًا، نغير قيمة found # إذا لم يتم العثور على أي زوج if not found: print("Not Found pair") سيفي هذا بالغرض ويضمن لنا أن الرسالة لن تظهر إلا بعد عدم العثور رعلى زوج.
- 2 اجابة
-
- 1
-
-
يوجد تطبيق ScreenRec الذي يعتبر من أفضل التطبيقات المجانية لتسجيل الشاشة على الحاسب. يتميز بالقدرة على تسجيل الفيديو بدقة عالية، مع إمكانية مشاركة الروابط المباشرة للتسجيلات بمجرد الانتهاء. كما يوفر أدوات لتسجيل الصوت من الميكروفون أو النظام، ويدعم التقاط الصور واللقطات السريعة (screenshot). التطبيق مناسب للاستخدامات التعليمية والعروض التقديمية أو تسجيل الفيديوهات الخاصة بالبرامج والألعاب. يمكنك الوصول إليه من هنا: https://screenrec.com/
-
جرب واحدة من التالي: مسح ذاكرة التخزين المؤقت وملفات تعريف الارتباط (Cache & Cookies) تعطيل الإضافات (Extensions) فقد تكون هنالك اضافة تؤثر على سير عمل الموقع تصفح الموقع باستخدام وضع التصفح الخاص (Private Mode) جرب تعطيل إعدادات البروكسي أو VPN تحديث المتصفح في حال استمرار المشكلة رغم هذا، انتظر بعض الوقت ثم أعد المحاولة.
-
القرار بين التخصص في Back-end بلغة Python/Django أو الانتقال إلى Full-stack باستخدام JavaScript/Node.js يعتمد على عدة عوامل، منها اهتماماتك وميولك الشخصية، سوق العمل المحيط بك، وقدرتك على التعلم. إليك بعض العوامل التي يجب اخذها بعين الاعتبار في مثل هذا الموضوع: سوق العمل: ما مقدار المنافسة في كل من المجالين وما المجال الأكثر طلبا، ما هو متوسط الأجور والرواتب في كل منهما .. الخ تعدد المهارات: تعلم الواجهتين مع بعض قد يأخذ وقتا أطول من جهة ولكنه قد يزيد من قيمتك في سوق العمل قدرتك على التعلم: هل لديك القدرة على التعلم على مدى طويل والإلتزام بذلك او لا أما من وجهة نظر شخصية، فإذا كنت شغوفا بالواجهة الخلفية ولا تفضل العمل على الواجهة الأمامية، يمكنك الاستمرار مع Python/Django والتركيز على بناء مشاريع قوية تساعدك في التميز، حتى وإن كانت الفرص المبدئية أقل. أما إذا كنت ترغب في مزيد من التنوع في المشاريع والمهارات، وتجد نفسك قادرًا على تعلم كلا الجانبين، فإن Full-stack JavaScript/Node.js خيار ممتاز يمكن أن يفتح لك آفاقًا متعددة. وفي النهاية، اختر ما يناسب اهتماماتك وشغفك. الاستمرارية والمثابرة هما المفتاح لأي تخصص، ومع الوقت والخبرة ستتزايد الفرص المتاحة لك.
-
في كامل الملفات ضع شيفرة التحقق من أن بيانات المصادقة محفوظة في الجلسة. فمثلا، في كل من الصفحات قم بالتحقق من أن المفتاح is_loggeed_in حاضر في الجلسة. وفي الجهة المقابلة قم بتخزين هذا المفتاح عند كل تسجيل دخول. وحذف هذا المفتاح عند كل تسجيل خروج.
-
الشيفرة المرفقة ليست قانونا، قم بصياغتها وتعديلها بحسب احتاجك.
- 5 اجابة
-
- 1
-
-
نعم يوجد بعض المواقع التي تقدم هاته الخدمة، WebView هو حرفيا متصفح ويب مدمج ضمن تطبيق جوال. بالنسبة للسرعة والبطئ والآداء فالأمر يتعلق بجودة وآداء الموقع في نفسه، فإن كان الموقع ذو آداء جيد فسيكون تطبيق WebView كذلك.
- 4 اجابة
-
- 1
-
-
كطريقة سريعة، يمكنك تحويل الموقع الى تطبيق عن طريق WebView. بحيث يتم عرض موقعك من نافذة (أشبه بالمتصفح) على شاشات الجوالات ويكون مماثلا لتطبيقات الهاتف. وكطرق أخرى أكثر تخصصية يمكنك: تطوير التطبيق باستخدام تقنيات الهاتف الأصلية (Native Apps): تطوير تطبيقات منفصلة لكل من iOS (باستخدام Swift أو Objective-C) و Android (باستخدام Kotlin أو Java). تطوير التطبيق باستخدام تقنيات الهاتف الهجينة (Hybrid Apps): استخدام تقنيات مثل React Native أو Flutter لإنشاء تطبيق واحد يعمل على كل من iOS و Android.
- 4 اجابة
-
- 1
-
-
إليك الأمر: قم بتخزين المسار في قاعدة البيانات اقرأ المسار أثناء تكوين محرك قوالب Smarty احقنه الى ملف القالب قم في ملف القالب بقراءته كمتغير مثال: ملف layout.tpl الجذر: <html> <head> <title>{block name=title}Default Page Title{/block}</title> <link href="{$cssFilePath|escape}" rel="stylesheet" type="text/css"/> <script src="{$jsFilePath|escape}"></script> {block name=head}{/block} </head> <body> {block name=body}{/block} </body> </html> في ملف PHP: $smarty->assign('cssFilePath', '/path/to/your_css_file'); $smarty->assign('jsFilePath', '/path/to/your_js_file'); هذا ما في الأمر.
-
الطريقة الصحيحة للتعامل مع عمليات المصادقة وتسجيلات الدخول في حال لم يكن المستخدم مسجلا لدخوله عبر النظام هي في عمل إعادة التوجيه من جهة الخادم لا من جه العميل. أرى أنك تقوم بحقن سكربت جافاسكربت لإعادة التوجيه والأمر غير صحيح. يمكنك استبدال شيفرة جافاسكربت التالية: echo '<script>location.replace("admin.php")</script>'; بـ: header('Location: admin.php'); في جميع المواضع. الأمر حتى الآن عادي، بالنسبة لصفحة الآدمن فيمكنك اضافة شيفرة مخصصة للتحقق من أن بيانات تسجيل الدخول محفوظة في الجلسة وفي حال لم يكن ذلك قم بإعادة التوجيه إلى صفحة تسجيل الدخول. الأمر بهاته البساطة.
- 5 اجابة
-
- 1
-
-
رغم أن المشكلة صعبة التشخيص وغير واضحة بدون شيفرة ولكن تأكد من التالي: قم بتطوير القوالب بشكل منفصل تماما عن التطبيق، ولا بأس ان جعلتها في مجلد فرعي. ثم لاحقا قم بتخريج ملفات الأصول الخاصة بهاته القوالب مثل ملفات css و js. يقوم تطبيقك بالتقاط مسارات هاته الملفات بشكل ديناميكي ويقوم باستعمالها في الموقع. إذا قام مثلا المدير باختيار القالب آلفا، فالتطبيق سيأخذ مسارات ملفات الأصول الخاصة بالقالب آلفا ويقوم بحقنها في الأكواد. يقوم التطبيق بطلب ملف التنسيقات او الجافاسكربت المرافق للقالب المختار. النتيجة: عرض ديناميكي لملفات جافاسكربت وcss يؤدي إلى عرض أنساق مختلفة للتصميم بحسب تفضيلات المدير. ما هي المرحلة التي واجهت بها مشكلة؟
- 7 اجابة
-
- 1
-
-
فكرة التطبيق غير واضحة أساسا، هل تقوم ببناء نظام لإدارة المحتوى ويقبل تعدد الثيمات ؟
- 7 اجابة
-
- 1
-
-
هل يمكنك ارفلق جزء من الشيفرة للنظر فيها؟
- 7 اجابة
-
- 1
-
-
إليك بعض الأفكار لمشاريع تخرج في مجال تحليل البيانات (Data Analysis) وتعلم الآلة (Machine Learning) وعلوم البيانات (Data Science): تحليل بيانات وسائل التواصل الاجتماعي لاستخلاص مشاعر وآراء الجماهير تحليل بيانات البيع بالتجزئة تحليل بيانات الصحة العامة، مثل الأمراض والدراسات الوبائية بناء نماذج تنبؤية لتوقع أسعار الأسهم بناء نماذج تحليل الصور باستخدام التعلم العميق نمذجة البيانات النصية التنبؤ بالطلب على الخدمات مثل النقل او الطاقة الكهربائية وما إلى ذلك
-
مبدئيا، لا يمكن طرح الأمر بطريقة مطلقة فكل شخص له ظروفه الخاصة وقدرته الاستيعابية وذاكرته وقدرته على الإلتزام. ولكن عموما، ينصح بـ: ترتيب الوقت وتخصيص وقت معين للتعلم أو العمل. تخصيص جلسات استراحة قصيرة أثناء كل ساعة أو ساعتين. تجنب جلسات البرمجة الطويلة (+10 ساعات) إلا للضرورة القصوى. انتبه لنظافة المكتب وترتيبه وقم بالتركيز على أدوات زيادة الانتاجية لاختصار الوقت والمجهود. تجنب تداخل أوقات البرمجة مع أوقات النوم أو الرياضة أو الصلاة أو ما إلى ذلك. أما بالنسبة للمدة التي قد يبدأ الشخص فيها بالإحساس بالابتعاد فالأمر راجع لعدة عوامل: قدرته على التذكر والاستذكار. المدة التي قضاها في المجال، فالمفاهيم سريعة التعلم سريعة النسيان، وكل ما ترسخ المفهوم أكثر كلما زادت صعوبة نسيانه. صدور تحديثات واصدارات جديدة من مادة التعلم.
- 4 اجابة
-
- 1
-
-
كمثال عملي عن ذلك، قم بإنشاء جدول من عمودين و عدد n أسطر. بحيث يحتوي كل سطر: خانة عنوان السطر خانة قيمة السطر مثال عملي: <style> table{ width:100%; direction: rtl; } table td{ border: 1px solid; padding: 15px; } table td:first-child{ background-color: #f1f5f9; } </style> <table> <tbody> <tr> <td>الإسم</td> <td>أحمد علي</td> </tr> <tr> <td>العمر</td> <td>22</td> </tr> <tr> <td>المهنة</td> <td>مهندس برمجيات</td> </tr> </tbody> </table> الناتج:
- 2 اجابة
-
- 1
-
-
مبدئيا، كل دورة من دورات الأكاديمية هي دورة مستقلة بذاتها ولا يضطر الطلبة إلى الاشتراك في أي دورة أخرى للشروع في دورة ما، ولكن من جهة الاستحسان والترتيب الصحيح للمسار فإنه ينصح بالبدء بدورة علوم الحاسب نظرا لأن علوم الحاسب تعطي الطالب نظرة شاملة على المجال وتأخذ به في مجالات عدة، فهي توطئة لأي مجال في علوم الحاسب بما في ذلك مجال الذكاء الاصطناعي. ولذلك، إن كان السؤال هو: هل يجب، فالجواب هو لا. أما ان كان السؤال هل ينصح بذلك، فالجواب هو نعم بالتأكيد.
-
يمكنك التحكم في القيمة المسندة لخاصية href لملف التنسيقات في عنصر layout الأب، وجعل الأمر يتم بصورة ديناميكية، فعلى سبيل المثال، ان كان القالب الأب لديك يبدوا كالتالي: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <title>مرحبا</title> <link rel="stylesheet" type="text/css" href="{$stylePath}"> </head> <body> {include file="header.tpl"} <h1>مرحبا</h1> {include file="footer.tpl"} </body> </html> فإن قيمة stylePath يمكن التحكم فيها كالتالي: require 'path/to/vendor/autoload.php'; # إنشاء كائن Smarty $smarty = new Smarty(); # إعداد مسارات القوالب والاستايلات $templateDir = 'path/to/templates/'; $styleDir = 'path/to/styles/'; # تعيين القالب الحالي (يمكن تغييره بناءً على مدخلات المستخدم أو إعدادات الموقع) $currentTheme = 'default'; // أو 'theme2' $smarty->setTemplateDir($templateDir . $currentTheme); $smarty->setCompileDir('path/to/compile_dir'); $smarty->setCacheDir('path/to/cache_dir'); # تمرير مسار الاستايل إلى القالب $smarty->assign('stylePath', $styleDir . $currentTheme . '/style.css'); # عرض القالب الرئيسي $smarty->display('index.tpl'); يمكنك مقاربة نفس الفكرة في أي محرك قوالب آخر غير smarty، احقن قيمة المسار كقيمة ديناميكية وسيتم لك الأمر.
- 1 جواب
-
- 1
-
-
مبدئيا، لم يأخذ فتح الموقع أول مرة وقتا طويلا. ولكن يلحظ وجود بعض الأخطاء في كونسول المتصفح يبدوا أنها بشأن تثبيت jQuery. بالنسبة لتقييم الآداء في Google Lighthouse فهو يشير إلى نسبة جيدة نوعا ما (80 بالمئة على سطح المكتب / 70 بالمئة على الهاتف). فيما يلي بعض النصائح لتحسين آداء الموقع وتسريعه أكثر: قم بتقليل minify شيفرات جافاسكربت وcss واضغطها أكثر. يمكنك استعمال ادوات عبر الويب مثل: https://www.toptal.com/developers/javascript-minifier قم بتقليل الاعتماد على أي مكتبات غير ضرورية في الصفحة قم بتحجيم الصور إلى الأحجام المصيرة Rendered size بدل استعمال أحجام فعلية، مثال: ان كانت صورة تعرض بأبعاد 4000 بكسل على 1000 بكسل ويتم تصييرها في المتصفح بأبعاد 1000 بكسل على 250 بكسل فإن من الأفضل تحجيمها إلى 1000 بكسل على 250 لأن ذلك استهلاك غير ضروري للموارد. نصائح أكثر: قم بتفعيل الكاش واستخدم قاعدة بيانات ذاكرة in-memory database مثل Redis أو Memecached قم بتوزيع ملفات css وجافاسكربت من شبكات cdn قم باستعمال lazy loading لتحميل الصور
- 4 اجابة
-
- 1
-
-
ان كانت البيانات المعروضة في القوائم تتعلق بالخيار المحدد في القائمة السابقة فأنت ستحتاج التعامل مع الخادم لجلب البيانات المعروضة ثم حقنها في حقل select واختيارها. مثال عن ذلك: حقل المقاطعات التابعة لبلد ما، اذ يتم عرض المقاطعات بحسب الخيار الذي يحدده المستخدم في حقل البلد. مثال عن ذلك: let countrySelect = document.querySelector('#country-select') let citiesSelect = document.querySelector('#cities-select') /** * الاستماع لحدث تغيير قيمة البلد */ countrySelect.addEventListener('change', function(){ let country = this.value let cities = getCities(country) let options = `` cities.forEach(city => options += `<option value="${city.id}">${city.name}</option>`) citiesSelect.innerHTML += options }) /** * جلب المدن الخاصة ببلد ما * @return array */ async function getCities(country){ let cities = await fetch(`path/to/your/api/${country}/cities`) return cities; } يمكنك اعتماد نفس المقاربة في مثالك. إذ تعتمد على القيمة المختارة في حقل ما لضبط مجموعة خيارات في حقل خيار آخر.
-
قم بالبحث في توثيق الواجهة البرمجية لشي ان عن شيء مماثل، قد بحثت ولا أظن أنه يوجد، يمكنك التوسع في البحث أكثر: https://open.sheincorp.com/documents/apidoc/1000001
-
لا أظن أن مثل هاته الوظيفية ممكنة إلا بصعوبة، إذ يجب عليك الاستماع لأحداث التصفح واضافة المنتج في العربة في منصة شي ان والتعامل معها عبر موقعك. يمكنك النظر ما ان كان ذلك ممكنا في الواجهة البرمجية التي توفرها المنصة. وفي حال ما كان ذلك سيكون من السهل التقاط البيانات من المنصة في تطبيق لارافيل لديك والتعامل معها وفق نمط ما. واحدة من الأفكار الأخرى التي يمكن أن تعمل هي برمجة اضافة قوقل كروم تقوم بالاستماع لأحداث الضغط على أزرار الاضافة الى السلة وارسال طلبات HTTP إلى الواجهة البرمجية الخاصة بتطبيق لارافيل لديك للتعامل معها وفق نمط ما. غير أن هاته الفكرة لها عيوب مثل أنها تتطلب من المستخدمين تثبيت الاضافة أو تعذر العملية من أصلها في حال لم يتم ذلك. ولذلك فإن الفكرة الأسلم هي الأولى، لا أعلم ما ان كانت المنصة توفر مثل هاته الوظيفية أو لا، ولكن الفكرة شائعة في الكثير من المنصات الأخرى ولا أظن أن منصة شي ان لا تتوفر عليها.
-
مستقبل البرمجة يتطور بسرعة بفضل التقدم المستمر وإسهامات المجتمعات الداعمة لكل لغة وإطار عمل ومكتبة، خصوصا مع الذكاء الاصطناعي، ولذلك فإن المجالات التي ستشهد تطورا أكبر هي: الذكاء الاصطناعي وتعلم الآلة AL/ML تطوير تطبيقات الويب تطوير تطبيقات الجوال الأمن السيبراني انترنت الأشياء قد نرى تكامل أدوات الذكاء الاصطناعي مع العديد من التطبيقات من مختلف المجالات، كما قد يزداد الطلب على الحلول القائمة عليها. ولذلك فإن المجال يتسع أكثر ولا يضيق.
-
تأكد من أن حاوية الرابط تمتلك عرضا كاملا مساويا لعرض الشاشة، ثم أعطها الخاصية: .link-container{ text-align:center; } في حالة ما كانت هاته الحاوية مرنة (يتم تطبيق display: flex عليها) تأكد من توسيط العناصر في الحاوية المرنة باستخدام: .link-container{ justify-content: center; } في هاته الحالة، يمكنك أيضا اعطاء العنصر خاصية margin auto على المحور الأفقي: a{ margin: 1px auto; }