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

عبدالباسط ابراهيم

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

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

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

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

    11

كل منشورات العضو عبدالباسط ابراهيم

  1. يمكنك معرفة اللغة التي يستخدمها المستخدم من خلال javascript كما في التعليقات السابقة أو في حالة أنه تريد استخدام لغات ال backend مثل php يمكنك معرفة اللغة من خلال الدالة التالية $_SERVER['HTTP_ACCEPT_LANGUAGE'] ويمكنك الحصول على أول حرفين من الناتج مثل en ليدل على اللغة الإنجليزية يمكنك استخدام الدالة substr كالتالي echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  2. يمكنك تغيير حجم ال textarea من خلال خاصية rows و cols كالتالي textarea.rows = rows;//القيمة التي تريدها أو يدخلها المستخدم textarea.cols = cols;//القيمة التي تريدها أو يدخلها المستخدم يمكنك الإعتماد على هذه الخاصية لتغيير الحجم فقم بتعديل البرنامج الخاص بك ليعمل بالشكل المطلوب
  3. هناك حل آخر أبسط قليلاً وهو كالتالي s = "The quick brown fox jumps over the lazy dog" for r in (("brown", "red"), ("lazy", "quick")): s = s.replace(*r) #الناتج: The quick red fox jumps over the quick dog
  4. يمكنك عمل ذلك من خلال استخدام yield كالتالي def read_in_chunks(file_object, chunk_size=1024): while True: data = file_object.read(chunk_size)#يمكننا تحديد الحجم المطلوب قرائته chunk_size باستخدام المعامل if not data: break yield data with open('really_big_file.dat') as f: for piece in read_in_chunks(f): process_data(piece) تقوم yield بإكمال العمل بدلاً من البداية من الصفر فلن تقوم بقراءة الملف من البداية بل تكمل من حيث توقفت
  5. أعتقد أنك أبتعدت لفترة عن التطبيق في المهارات التي تعلمتها فالحل بالنسبة في الدورات التي تريد تعلم المصطلحات منها قم بتطبيق مشروع وراء المدرب حتى يمكنك تذكر المصطلحات وتذكر ما تعلمته (المشروع الموجود في الدورة فقط وليس الشرح) ويمكنك أيضاً بدلاً من مشاهدة الفيديوهات قراءة المراجع الموجودة في موسوعة حسوب إذا كانت اللغة الإنجليزية جيدة إلى حد ما يمكنك قراءة ال documentation للغات التي تريد تذكرها وبعد قراءة ال documentation ستتطور لديك هذه المهارة أو اللغة بشكل كبير
  6. في ميزانية ال 5000 جنيه مصري لا يمكن تجميع جهاز بكارت شاشة منفصل وذلك في حالة أن القطع جديدة ولكن البديل عن ذلك يمكن تجميع جهاز ب APU وهو معالج بكارت شاشة مدمج ويعتبر في نفس هذه الفئة (Ryzen 3 3200g أفضل إختيار متوفر) ولكن الأداء جيد جداً لهذه الفئة (يفضل إضافة قطعتين من الرام بدلاً من واحدة لأداء أفضل) ويمكنك تجميع باقي القطع بناء على هذا ال APU وستكون في حدود ال 5000 بالنسبة لأداء هذه التجميعة فيمكنها تشغيل معظم البرامج والألعاب الموجودة بدون مشكلة ولن تواجه مشكلة سواء في التصميم أو البرمجة
  7. إذا كنت تقصد ال tooltip كما وضح وائل في التعليق السابق فبالطبع يمكنك عمل ذلك من خلال الخاصية title ولكن لن تتمكن من تعديل التنسيق حيث يبقى لل title نفس الشكل ولن تستطيع التعديل عليه حيث يبدو من الصورة أنك تحتاج شكل معين يأخذ بعض التنسيقات وهناك العديد من الطرق عن طريق ال javascript عن طريق ال css فقط بدون الحاجة لل javascript أو يمكنك البحث عن الأشياء الجاهزة فقط أبحث عن ال tooltip تطبيق ذلك عن طريق ال css سيكون كالتالي <div data-tooltip="hello"> <!-- لم نستخدم ال title --> something here </div> ال css [data-tooltip]:before { position : absolute; content : attr(data-tooltip); opacity : 0; /* يمكنك تنسيقه كما تريد عن طريق إضافة التنسيقات هنا */ } [data-tooltip]:hover:before { /*title الجزء المسؤل عن ظهور ال */ opacity : 1; }
  8. يمكننا إنشاء كائن بلغة python عن طريق التالي قم بقراءة الشرح المرفق class Person: #لإنشائه ويمكنك ملاحظة أنن ا نجعل أول حرف كبير class نستخدم كلمة def __init__(self, first_name, last_name): #self تعود على الكلاس self.first_name = first_name#من خصائص الكائن first_name هنا تصبح الخاصية self.last_name = last_name #من خصائص الكائن first_name هنا تصبح الخاصية def full_name(self):#من دوال الكائن first_name هنا تصبح الخاصية return f'{self.first_name} {self.last_name}' def name(self):#من دوال الكائن first_name هنا تصبح الخاصية return f'{self.last_name}, {self.first_name}'
  9. كما أخبرك محمد في التعليق السابق أن المشكلة في استدعاء المكتبة ويمكنك حلها بواسطة webpack.ProvidePlugin كما وضح ولكن أرى أنك تستخدم ال expose-loader لذلك الحل بالنسبة لك فقط جرب استدعاء المكتبة كالتالي import $ from "jquery"; //بدلاً من import 'jquery/dist/jquery.min';
  10. في حالة أن ال keys أكثر من ال values يمكنك استخدام ال itertools.zip_longest حتى يمكنك استخدام ال fillvalue لتحديد قيمة لل values المتبقية كالتالي from itertools import zip_longest x =[1, 2, 3, 4, 5, 6, 7] y =[8, 9, 10] z = list(zip_longest(x, y, fillvalue ='_' )) print(z) #output #[(1, 8), (2, 9), (3, 10), (4, '-'), (5, '-'), (6, '-'), (7, '-' )]
  11. يمكنك أيضاً استخدام ال multiprocessing.Process لعمل المطلوب كالتالي import multiprocessing import time # bar def bar(): for i in range(100): print "Tick" time.sleep(1) if __name__ == '__main__': # process نقوم بتنفيذ الدالة ك p = multiprocessing.Process(target=bar) p.start() # الإنتظار ل 10 ثواني p.join(10) # مازالت تعمل process التحقق إذا كانت ال if p.is_alive(): print "running... let's kill it..." # إيقاف الدالة p.terminate() #أيضاً kill يمكن إيقاف الدالةعن طريق # p.kill() p.join()
  12. بالطبع يمكنك تحديد الإصدار من خلال الأمر --python أو -p وذلك في حالة أنك غالباً تقوم بالتبديل بين الإصدارات ولكن يمكنك تثبيت الإصدار المستخدم من خلال ال virtualenv يمكنك عمل ذلك من خلال الملف .bashrc قم بإضافة السطر التالي له export VIRTUALENV_PYTHON=/مسار/الإصدار/الذي/تريده
  13. بالإضافة للمميزات في التعليق السابق يعتبر ASP.NET CORE وهو النسخة الحديثة من ال ASP.NET وتعتبر هذه النسخة open source مما يساهم في تطورها بشكل سريع وأفضل وبالنسبة لسؤالك هل هذه التقنية مدفوعة ؟ فتعتبر هذه التقنية مجانية تماماً ولكن مثلاً لو قمت باستخدام بيئة التطوير visual studio النسخة الأعلى أو التجارية ستجد أنه غير مجاني ولكن هناك بديل جيد له visual studio code لذلك يمكنك تطوير التطبيقات بهذه التقنية بشكل مجاني
  14. أيضاً بالإضافة لاستخدام الدالة .decode بهذا الشكل .decode("utf-8") في الإصدار الثالث من python ال encoding الإفتراضي أصبح "utf-8" لذلك يمكنك استخدام الدالة بالشكل التالي في الإصدار الثالث print(b"Ahmed".decode())
  15. من خلال ال html يمكن إضافتها من خلال الوسم link ويجب وضعه في ال head كالتالي <head > <link rel="icon" type="image/png" href="/favicon.png"/> </head>
  16. يتم إضافة object إلى list عن طريق الدالة append كالتالي my_list = [2, 3, 1, -4, -1, -4] my_list.append(8) print(my_list) #list لطباعة محتويات ال وسيكون الناتج [2, 3, 1, -4, -1, -4, 8] ويمكنك أيضاً استخدام الدوال extend أو insert
  17. يمكنك أن تجد العديد من الملخصات للغة c أو العديد من اللغات الأخرى عن طريق البحث عن اللغة التي تريدها ثم إضافة sheet cheat وسيظهر معك العديد من الملخصات المفيدة للغة أو أي شيء آخر ويمكنك أن تجد العديد من المقالات الرائعة من خلال البحث في الموقع من مربع البحث في الأعلى
  18. بالإضافة للإستخدام في التعليق السابق يوجد أيضاً عدة استخدامات منها تنسيق الأرقام الكبيرة بشكل يسهل قرائته كالتالي num = 1_000_000 وهو نفس الرقم بدون الفاصلة num = 1000000 ولكن لتسهيل قرائته يقوم المترجم بحفظ آخر قيمة في المتغير " _ " كالتالي >>> 10 10 >>> _ 10 >>> _ * 3 30 >>> _ * 20 600 تستخدم لتدل على أن الالخاصية أو الدالة private عندما تسبق اسم الدالة أو الخاصية ولكن هذا convention أو من التقاليد المتبعة بين المبرمجين وليس خاصية في اللغة class _Base: # private class _hidden_factor = 2 # private variable
  19. توجد عدة طرق لإيقاف ال output buffering منها يمكنك استخدام flush للدالة print كمثال import time for buffer in range(20): print(buffer, end=" ", flush=True) time.sleep(2) أو يمكنك استخدام ()sys.stdout.flush وتوجد عدة طرق أخرى قم بالبحث عنها لإختيار الطريقة الأفضل لك
  20. يمكنك استخدام ال regular expression التالي '(\$[0-9]+(.[0-9]+)?)' وسيقوم باستخراج الأعداد التي تتبعها علامة ال $ ليصبح الكود import re text = input() result = [x[0] for x in re.findall('(\$[0-9]+(\.[0-9]+)?)', text)]
  21. تقوم محددات الوصول بتحديد إمكانية الوصول للدوال أو خصائص الكائن والفرق بين المحددات كالتالي private يمكن الوصول لخصائص الكائن من داخل الكائن نفسه فقط كمثال class A{ private int data=40; private void msg(){System.out.println("Hello java");} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//يتم توليد خطأ obj.msg();//يتم توليد خطأ } } Protected يمكن الوصول لخصائص الكائن سواء داخل ال package أو خارجها ولكن من خلال الكائنات التي ترث الكائن الأب Public يمكن الوصول لخصائص الكائن سواء داخل ال package أو خارجها من أي مكان في البرنامج Default وهي القيمة الإفتراضية في حالة لم تضع محدد وصول يمكن الوصول لخصائص الكائن داخل ال package فقط من أي مكان في البرنامج
  22. قم بتجربة تمرير ال data كالتالي asyncData.movies حتى تحصل على المصفوفة لذلك سيكون التعديل كالتالي <FlatList data={asyncData.movies}// لاحظ هذا التعديل // data={data} keyExtractor={item => item.id.toString()} renderItem={({item}) => ( <Text> {item.title}, {item.price} </Text> )} /> دائماً قم ب console.log للبيانات للتأكد من الوصول للبيانات التي تريدها
  23. صحيح أن التابع move يقوم بنقل الملف لمكان آخر ولكن يمكن إعادة تسمية الملف من خلاله كما في توثيق laravel من هنا ولكن عند التسمية يجب أن يكون اسم المجلد متطابق في الحالتين كالتالي Storage::move('foldername/oldfile-name.jpg', 'foldername/newfile-name.jpg'); //foldername يجب أن يكون الأسم متطابق للمجلد
  24. هل تقصد أكادمية حسوب ؟ إذا كان كذلك فإنه لا توجد حالياً دورات لتعليم للغة البرمجة ++c ولكن بدلاً عند ذلك توجد العديد من المقالات المتوفرة في في أكاديمية حسوب عن ال ++c يمكنك أن تجدها في هذا الرابط
  25. يمكنك بدلاً من عمل clone تنفيذ الأمر pull كالتالي git init git remote add origin <repo_address> git pull origin main أو يمكنك عمل clone في مجلد آخر ثم نقل مجلد ال .git فقط للمجلد الأساسي لتجنب خسارة التغييرات التي لم تقم بعمل push لها
×
×
  • أضف...