-
المساهمات
5232 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
52
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Adnane Kadri
-
طيب، حاول تثبيت حزمة vite بشكل global: npm install -g create-vite نفذ الأمر npm run dev مجددا، هل نجح الأمر؟
-
يفترض أن يكون ذلك، ولكن في حال ما لم يكن سيتعين علينا تثبيته بطبيعة الحال.
-
يرجح ان vite غير مثبت لديك أساسا، ولذلك يتعذر الوصول إليه. تأكد من تنفيذ الأمر: npm install vite ثم أعد تنفيذ الأمر: npm run dev وفي حالة مواجهة أي مشكلة في تثبيت اعتماديات نود عن طريق تننفيذ الأمر: npm install جرب جبر التثبيت عن طريق اضافة الخيار force--: npm install --force
-
متصفحات الويب مهيئة لفهم وتفسير HTML و CSS وجافاسكربت مباشرة دون الحاجة إلى تحويلهما إلى XML فهي لغة تمثيل للصفحات الويب والعناصر التفاعلية. العلاقة بين HTML و XML تكمن في أن كلاهما يعتمد على تركيبة مماثلة، حيث تتكون من عناصر وسموم وخصائص. ومع ذلك، يختلف الغرض الرئيسي والاستخدام بين الاثنين.فـ XML هو لغة وسوم عامة تستخدم لتمثيل البيانات بطريقة قابلة للتوسيع. يمكن استخدام XML لتمثيل بيانات هيكلية في سياقات مختلفة وليس فقط لتصميم صفحات الويب. فمتصفحات الويب تحتوي ملحقات تسمى Rendering engines او محركات التصيير والتي تهتم بتفسير الهياكل وضبط الأنساق وما نحوها .. فالأكواد يتم تحليلها باستخدام HTML Parser و CSS Parser الى قواعد عامة وتجميعات أكواد ثم يقوم ببناء شجرة DOM وضم القواعد اليها وعرض الناتج بشكل رسومي.
-
نعم يمكن ذلك بطبيعة الحال، ولكن الفكرة غير سلسة وغير عملية أصلا. لا يقترح البتة العمل على مشروع في بيئة انتاجية. زيادة عن الميزات التي يمكن ايجادها في بيئة التطوير المحلية والتي تختصر عملية التطوير كثيرا، فبدل شهرين على بيئة انتاجية يمكنك القيام بالأمر في اسبوع على بيئة تطوير محلية، في محرر اكواد او في بيئة تطوير مدمجة مع ملحقات تسهل العملية.
-
الأمر يتحكم فيه خطة الاستضافة التي تشترك بها. ولكن عموما، هاته الاستضافات غالبا ما تأتي مع كل شيء معد فيها بالفعل، فهي نظم على توزيعات ونظم لينكس بحيث تأتي بدعم شامل لـ PHP و Apache وملحقاتهما، ولذلك فإنك لن تحتاج تثبيت أي شيء ويمكنك البدء مباشرة. نفس الشيء بالنسبة للتطبيقات على لارافيل، سوف لن تحتاج إلا المعد مسبقا على الاستضافة لنشر تطبيقك بشكل عادي. قد يكون عليك إعداد خادم Apache واصدارات PHP وما الى ذلك في حال اخترت خطة ضمن خطط VPS عالية التخصيص. أما خطط الاستضافات المشتركة فهي معدة لمثل هاته الأشياء بالفعل. بالنسبة لتطبيقات لارافيل، فغالبا ما تمر بالمراحل التالية لرفعها ونشرها على الاستضافة: رفع ملفات التطبيق باستخدام مدير الملفات او FTP. اعداد ملف متغيرات البيئة env. وإعداد قواعد البيانات. تهجير قواعد البيانات اما بتنفيذ الأمر php artisan migrate:fresh في حال ما كان يتوفر لديك وصول ssh أو تضمين ملف قواعد البيانات في phpMyAdmin التي غالبا ما تكون متوفرة كملحقة في هاته الاستضافات. تكوين الوصلة الرمزية الخاصة بالملفات عن طريق الأمر php artisan storage:link او اي طريقة مكافئة. ربط الدومين.
-
زيادة الى ما اشار إليه عبدالباسط، فإن أغلب المترددين على المجال لا يهتمون به بادئ الأمر الا فضولا ولا ينظرون له ضمن هدف بعيد المدى، هذا بجانب عدم اهتمامهم بتطوير مهارات كالالتزام والصبر وطول النفس. هذا بجانب أن الدافع والحافز للاستمرار قد يتأخر قليلا مما يجعل المهتمين بالمجال يفكرون في اختيار مجال آخر. عموما، يمكن تلخيص هاته الأسباب في: صعوبة البداية. كثرة المصادر التعليمية والاحساس بالتشتت. عدم امتلاك رؤية واضحة وهدف. تغير اهتمامات واهواء الناس. نقص التحفيز أو تأخره.
- 3 اجابة
-
- 1
-
-
الأمر سيان، استعن بذات الارشادات السابقة. قم بتحديد الصفين ثم قم بعمل التصفية بحسب القيم مثلما هو مشار إليه في التعليق السابق.
- 45 تعليقات
-
- if
- الدالة الشرطية
-
(و 3 أكثر)
موسوم في:
-
عموما، فيما يلي بعض الخطوات التي قد يمكنك اعتمادها لتحسين آداء الموقع وزيادة قدرته على التحمل: استعن بمطور واجهات خلفية لتحسين استعلامات قواعد البيانات. تأكد من أن تكون الكاشات مفعلة بشكل فعّال، خاصة في الصفحات والموارد المكرر طلبها. وافحص إعدادات وإعادة تكوينات الكاش لضمان أنها مُهيأة بشكل صحيح. قم بضغط الصور وملفات الوسائط لتقليل حجم الصفحة واستخدم فكرة التحميل البطيئ Lazy loading للتعامل معها. استخدم Content Delivery Network (CDN) لتحسين تحميل الملفات من مواقع أقرب إلى الزوار. قم بضغط وتقليل ملفات CSS و JavaScript. قم بتحميل الملفات غير الضرورية بعد التحميل الأولي للصفحة (هي نفسها تقريبا فكرة Lazy loading). استخدم Nginx أو Apache بإعدادات محسنة. قم بتقييم حجم صفحات الموقع والتأكد من أن الصفحات لا تحتوي على موارد غير ضرورية مثل: صور غير معروضة أو ملفات غير لازمة.
-
مرحبا نبراس، يمكنك استعمال ميزة التصفية في اسكل للقيام بهاته المهمة، لنفترض أن لديك البيانات في النطاق A1:C50. حيث أن الأعمدة A و B تحتوي على الأبنية والأقسام، والعمود C يحتوي على الأجهزة. الآن لتحديد تلك التي لا نريد ظهورها نقم بالتالي: انقر على أي خلية ضمن نطاق البيانات (مثل A1). انقر على "تصفية" في علامة التبويب "بيانات" في شريط القوائم. انقر على السهم في رأس العمود A وحدد البنية المطلوبة. انقر على السهم في رأس العمود B وحدد القسم المطلوب. انقر على السهم في رأس العمود C. اختر "تصفية بحسب القيم" وستظهر نافذة. في نافذة التصفية، قم بإزالة التحديد عن القيم التي لا تريد ظهورها (مثل "0"). انقر على "موافق". سيقوم Excel بتحديث الجدول ليعرض فقط الصفوف التي تحتوي على الأجهزة التي تم تركيبها في البنية والقسم المحددين. @نبراس يوسف
- 45 تعليقات
-
- 1
-
-
- if
- الدالة الشرطية
-
(و 3 أكثر)
موسوم في:
-
ظهور خطأ أحمر تحت سطر او موضع ما في visual studio code يعني أن هنالك مشكلة بالشيفرة. عدم ظهوره في حالة الخطأ يعني أن هنالك مشكلة اما في عدم تفعيله أو في عدم التقاط المشكلة، فيما يلي بعض الخطوات المقترحة: قم بالذهاب لـ Tools > Options > Text Editor > General > Show error squiggles وفعل خيار ظهور الأخطاء قم باغلاق واعادة فتح البرنامج وانظر ما ان اختفت المشكلة تأكد من ملائمة سياق الكتابة لامتداد الملف، مثال: لا تكتب شيفرة بايثون في ملف بامتداد js. او بدون امتداد
- 1 جواب
-
- 1
-
-
تختلف sorted(t) و t.sort في كيفية تأثيرهما على القائمة t من حيث أن: sorted: تقوم بإرجاع قائمة جديدة تحتوي على العناصر المرتبة من القائمة t. لا تؤثر على ترتيب القائمة الأصلية، وتترك t كما هو. يمكنك استخدامها للحصول على نسخة مرتبة من القائمة دون تغيير القائمة الأصلية. t.sort: تقوم بفرز القائمة t بشكل مباشر. لا تقوم بإرجاع قائمة جديدة، بل تقوم بتغيير القائمة t نفسها لتكون مرتبة. مثال عملي: t = [1, 6, 3, 8, 9] sorted_t = sorted(t) print(t) # [1, 6, 3, 8, 9] print(sorted_t) # [1, 3, 6, 8, 9] t = [1, 6, 3, 8, 9] t.sort() print(t) # [1, 3, 6, 8, 9] التابع list.sort() في بايثون الدالة sorted() في بايثون
- 1 جواب
-
- 1
-
-
السؤال عام ويحتاج تفصيلا أكثر، ولكن بشكل عام سوف تحتاج لدراسة وتحليل مشروع منصة تعليمية كل من التالي: البحث والتخطيط: تحديد الهدف والمتطلبات ومجموع الميزات دراسة المنافسين وتحديد مجموعة الميزات التنافسية التصميم: يشمل ذلك كتابة مختلفة مخططات الاستخدام والحالة وما الى ذلك عمل التصميم الأولي وواجهة الاستخدام UI/UX التطوير: ويشمل ذلك تطوير البنية الخلفية والأمامية للمنصة التكامل والاختبار: وتعنى هاته المرحلة بدراسة تكامل التطبيق مع مختلف الخدمات الخارجية وعلى خدمته لحالات الاستخدام التي تم وصفها ابتداءا النشر والمتابعة: في هاته المرحلة، سوف تحتاج نشر المشروع على استضافة وشراء نطاق له ومتابعة مختلف تفاعلات المستخدمين النهائيين معه غرض تطوير ميزات أخرى. فيما يلي بعض الميزات التي قد يمكن تنفيذها في مثل هاته المشاريع: أضف نظاما لتقييم أداء الطلاب وتقديم اختبارات لقياس تقدمهم. قدم وسائل تعلم تفاعلية مثل تحديات برمجية، مشاريع عملية، وورش عمل. أضف أنظمة للتواصل والمناقشة بين الطلاب والمدرسين. أما بالنسبة للجانب التقني وفي مرحلة التطوير، فقد تحتاج كل من التقنيات التالية: لغة PHP وإطار عمل لارفيل، أو لغة بايثون بإطار عمل جانقو. CSS, HTML, JS للواجهة الأمامية، وقد تحتاج اطار عمل مثل VueJS أو مكتبة مثل ReactJS MySQL كنظام لإدارة قواعد البيانات.
-
يعتمد هذا على موقفك ابتداءا وعلى هدفك من تعلم اللغة، فإن كنت تنوي العمل كمطور واجهات أمامية أو كمطور فرونت أند أو كمطور ويب شامل فسيتعين عليك تعلمها والإلمام بجزئياتها بطبيعة الحال. أما ان كنت تنوي القيام بتعديلات بسيطة على واجهة التطبيق الخاصة بك، سواءا كمطور واجهة خلفية أو غيرها فسوف لن تحتاج إلا القليل منها وأساسياتها. وعموما، فيما يلي بعض الجزئيات التي تتناولها لغة التنسيقات css: تصميم واجهة المستخدم استجابية الويب مع مختلف شاشات العرض التحكم في التخطيط والهياكل تنسيق الطباعة واجهزة العرض التحكم في الألوان والخطوط الرسومات والتأثيرات والانيميشن
- 5 اجابة
-
- 1
-
-
هناك العديد من خدمات الترجمة عبر الإنترنت التي يمكن تكاملها مع بايثون لتحقيق اغراض مختلفة. إليك بعض الخيارات المتاحة: Google Translate API Microsoft Translator API MyMemory Translator Yandex.Translate API قد يمكنك أيضا ايجاد بعض المكتبات التي تختصر عليك ذلك وتستعمل هاته الواجهات، مثال عن ذلك نذكر googletrans.
- 6 اجابة
-
- 1
-
-
أظن أن الاستعلام يحتوي جملة أخطاء هي: في INNER JOIN: يجب أن تكون الجداول المشاركة في الانضمام مفصولة بفراغ ويجب أن يكون هناك عبارة ON تحدد كيفية ربط الصفوف بين الجداول. UserGrop.Group: يبدو أن هناك خطأ في اسم الجدول. يجب أن يكون اسم الجدول هو UserGroup، وليس UserGrop. WHERE Email.EmailID: يجب عليك تحديد القيمة التي تريد البحث عنها في هذه العبارة. مثل Email.EmailID = 'some_value'. حل مقترح: SELECT Email.EmailID, Email.Email FROM Email INNER JOIN UserGroup ON Email.EmailID = UserGroup.EmailID WHERE Email.EmailID = 'some_value';
-
في هذا السياق، تستخدم علامة + كعامل للتحويل إلى النوع (Type Conversion). عندما تضع + قبل prompt(), يتم تحويل القيمة التي تم استرجاعها من دالة prompt() إلى نوع رقمي مهما كانت. فبون العلامة +، قيمة prompt() ستكون سلسلة نصية (String) حتى إذا قام المستخدم بإدخال رقم. ولكن باستخدام +، نقوم بتحويل القيمة إلى نوع رقمي مباشرة. يمكنك الاستزادة بالاطلاع على المقال:
- 4 اجابة
-
- 1
-
-
نعم، يُمكن لـ SQLite بطبيعة الحال التعامل مع اتصالات متعددة في الوقت نفسه. ولكن ينبغي أن يتم ذلك بحذر، لأن SQLite ليست قاعدة بيانات متكاملة متعددة المستخدمين بنفس الطريقة التي يمكن أن تكون فيها قواعد البيانات مثل MySQL أو PostgreSQL. في حالة SQLite، عندما يكون هناك اتصالين أو أكثر، يجب التأكد من التنسيق بينهم لتجنب التعارض.فـ SQLite يستخدم قفلا لحماية قاعد البيانات من الوصول المتعدد. في نفس الوقت، إذا كنت تحتاج إلى تطبيق ذي متطلبات أكثر تعقيدا للمستخدمين المتعددين، فقد تفضل النظر في استخدام نظام إدارة قواعد البيانات آخر مثل PostgreSQL أو MySQL.
- 3 اجابة
-
- 1
-
-
لا تزال تحتاج تحديث نهاية النطاق (end) عندما يكون العنصر الذي نبحث عنه أقل من العنصر في منتصف النطاق. وبنفس المنطق، تحديث بداية النطاق (start) عندما يكون العنصر الذي نبحث عنه أكبر من العنصر في منتصف النطاق. أيضا سوف تحتاج إضافة تحقق بعد الحلقة للتحقق مما إذا كان لم يتم العثور على العنصر. شيء آخر يجب عليك القيام به هو كسر الحلقة عند الحصول على العنصر. الناتج: arr = [2, 3, 4, 5, 6, 7, 8] start = 0 end = len(arr) - 1 n = int(input("Number: ")) while start <= end: mid = start + (end - start) // 2 if n == arr[mid]: print("Found") break # يجب إيقاف الحلقة بمجرد العثور على العنصر elif n < arr[mid]: end = mid - 1 # تحديث نهاية النطاق ليكون mid - 1 elif n > arr[mid]: start = mid + 1 # تحديث بداية النطاق ليكون mid + 1 if start > end: print("Not Found")
- 4 اجابة
-
- 1
-
-
بشكل أعم، هناك عدة حزم توفر واجهات لخدمات Google. ومن بين هذه الحزم، يمكن الإشارة إلى google-api-python-client و googlemaps كحزم مهمة تستخدم للتفاعل مع بعض خدمات Google. وهي مجموعة من المكتبات التي تتكامل مع باييثون للأغراض التي تستوفيها. فـ Google Maps Platform هي مجموعة من الخدمات التي تقدمها Google لتكامل خرائط Google ومعلومات الموقع في تطبيقات الويب والهواتف المحمولة والتطبيقات الأخرى. تقدم Google Maps Platform APIs للمطورين لديهم إمكانية إضافة ميزات مثل خرائط متقدمة، والتوجيه، والبحث عن الأماكن، والتشويق، والعديد من الخدمات الأخرى في تطبيقاتهم. وهو الأمر الذي يمكنك بوساطة هاته المكتبة القيام به في تطبيق بايثون.
- 2 اجابة
-
- 1
-
-
يمكنك مقاربة هاته الفكرة باضافة حقل يعنى بذلك في جدول المقالات، وليكن is_published ويحمل قيمة بوليانية تعبر عما ان كان المقال منشورا أو لا، أنشئ ملف تهجير جديد يضيف الحقل الى الجدول: php artisan make:migration add_is_published_to_articles_table --table=articles ثم ضع بداخل الملف المحتوى التالي: public function up() { Schema::table('articles', function($table) { $table->integer('is_published')->default(false); }); } الآن قم بتهجير الملف: php artisan migrate لاحقا، قم بعرض المقالات المنشورة فقط في الصفحات العامة التي يراها الزوار: $articles = Article::whereIsPublished(true)->get(); أنشئ ملف عرض لإدارة المقالات وأضف إليها محتوى مشابه: <form method="POST" action="/articles/{{ $article->id }}/update-status"> @method('PATCH') @csrf <input type="submit" value="تبديل الحالة" /> </form> أضف المسار الجديد الى ملف المسارات: Route::patch('/articles/{article}/update-status', function($article){ $article->update([ 'is_published' => !$article->is_published ]); }); هاته هي الفكرة بمجملها، يمكنك التوسع فيها أكثر عن طريق تنظيمها أو اضافة المزيد من الميزات أو لخدمة حالات استخدام اخرى.
-
ضف استعلاما جديدا تقوم فيه بطبيعة القيمة الملتقطة من الرسالة الأولى مضافا اليه كلمة welcome، مثال: masig = input("Enter your masig :") print('Welcome '+ masig) الناتج: weclome ahmed
-
تستخدم حصرا للحصول على قائمة تحتوي على الأسماء (المتغيرات والوحدات) المتاحة في النطاق الحالي. مثال: # مثال بسيط x = 10 y = "Hello, World!" # استخدام dir() للحصول على قائمة الأسماء names = dir() # طباعة الأسماء print(names) سيعرض هذا الكود قائمة بجميع الأسماء المتاحة في النطاق الحالي، والتي هي x و y. يمكنك أيضًا استخدام dir(object) للحصول على قائمة بالأسماء المرتبطة بكائن معين. على سبيل المثال: # مثال على استخدام dir() مع كائن my_list = [1, 2, 3] # استخدام dir() للحصول على قائمة الأسماء المرتبطة بالقائمة list_names = dir(my_list) # طباعة الأسماء print(list_names) هاته هي فكرتها باختصار.
- 3 اجابة
-
- 1
-
-
تأكد من أن لا تضع القيمة مباشرة بداخل الأقواس المعقوفة، النتيجة يجب أن تبدوا كـ: const binaryString = '0000011110000111111110000'; const decimalNumber = BigInt(`0b${binaryString}`); console.log(decimalNumber); او مباشرة: const decimalNumber = BigInt(`0b0000011110000111111110000`); console.log(decimalNumber);
-
إذا كنت تتعامل مع أرقام بت طويلة في JavaScript، يمكن أن يؤدي ذلك إلى فقدان الدقة في بعض الحالات بسبب تمثيل الأعداد في JavaScript باستخدام تنسيق 64 بت للأرقام الثنائية (double-precision floating-point format). لتجنب فقدان الدقة، يمكنك استخدام نوع BigInt على نحو: const binaryString = '0000011110000111111110000'; const decimalNumber = BigInt(`0b${binaryString}`); console.log(decimalNumber);