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

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

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

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

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

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

    11

أجوبة بواسطة عبدالباسط ابراهيم

  1. في ميزانية ال 5000 جنيه مصري لا يمكن تجميع جهاز بكارت شاشة منفصل وذلك في حالة أن القطع جديدة ولكن البديل عن ذلك يمكن تجميع جهاز ب APU وهو معالج بكارت شاشة مدمج ويعتبر في نفس هذه الفئة (Ryzen 3 3200g أفضل إختيار متوفر) ولكن الأداء جيد جداً لهذه الفئة (يفضل إضافة قطعتين من الرام بدلاً من واحدة لأداء أفضل) ويمكنك تجميع باقي القطع بناء على هذا ال APU وستكون في حدود ال 5000

    بالنسبة لأداء هذه التجميعة فيمكنها تشغيل معظم البرامج والألعاب الموجودة  بدون مشكلة ولن تواجه مشكلة سواء في التصميم أو البرمجة

    • أعجبني 1
  2. إذا كنت تقصد ال 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;
    }

     

    • أعجبني 2
  3. يمكننا إنشاء كائن بلغة 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}'
  4. كما أخبرك محمد في التعليق السابق أن المشكلة في استدعاء المكتبة ويمكنك حلها بواسطة webpack.ProvidePlugin كما وضح 

    ولكن أرى أنك تستخدم ال expose-loader لذلك الحل بالنسبة لك فقط جرب استدعاء المكتبة كالتالي 

    import $ from "jquery";
    //بدلاً من 
    import 'jquery/dist/jquery.min';

     

  5. في حالة أن ال 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, '-' )]

     

    • أعجبني 1
  6. يمكنك أيضاً استخدام ال 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()
  7. بالطبع يمكنك تحديد الإصدار من خلال الأمر --python أو -p  وذلك في حالة أنك غالباً تقوم بالتبديل بين الإصدارات ولكن يمكنك تثبيت الإصدار المستخدم من خلال ال virtualenv يمكنك عمل ذلك من خلال الملف .bashrc قم بإضافة السطر التالي له

    export VIRTUALENV_PYTHON=/مسار/الإصدار/الذي/تريده

     

    • أعجبني 1
  8. بالإضافة للمميزات في التعليق السابق يعتبر ASP.NET CORE وهو النسخة الحديثة من ال ASP.NET وتعتبر هذه النسخة open source مما يساهم في تطورها بشكل سريع وأفضل وبالنسبة لسؤالك هل هذه التقنية مدفوعة ؟ فتعتبر هذه التقنية مجانية تماماً ولكن مثلاً لو قمت باستخدام بيئة التطوير visual studio النسخة الأعلى أو التجارية ستجد أنه غير مجاني ولكن هناك بديل جيد له visual studio code لذلك يمكنك تطوير التطبيقات بهذه التقنية بشكل مجاني

  9. يمكنك أن تجد العديد من الملخصات للغة c أو العديد من اللغات الأخرى عن طريق البحث عن اللغة التي تريدها ثم إضافة sheet cheat وسيظهر معك العديد من الملخصات المفيدة للغة أو أي شيء آخر

    ويمكنك أن تجد العديد من المقالات الرائعة من خلال البحث في الموقع من مربع البحث في الأعلى 

    • أعجبني 1
  10. بالإضافة للإستخدام في التعليق السابق يوجد أيضاً عدة استخدامات منها

    • تنسيق الأرقام الكبيرة بشكل يسهل قرائته كالتالي
      num = 1_000_000

      وهو نفس الرقم بدون الفاصلة

      num = 1000000

      ولكن لتسهيل قرائته

    • يقوم المترجم بحفظ آخر قيمة في المتغير " _ " كالتالي

      >>> 10 
      10 
      >>> _ 
      10 
      >>> _ * 3 
      30 
      >>> _ * 20 
      600

       

    • تستخدم لتدل على أن الالخاصية أو الدالة private عندما تسبق اسم الدالة أو الخاصية ولكن هذا convention أو من التقاليد المتبعة بين المبرمجين وليس خاصية في اللغة 

      class _Base: # private class
          _hidden_factor = 2 # private variable

       

     

    • أعجبني 1
  11. توجد عدة طرق لإيقاف ال output buffering منها يمكنك استخدام flush للدالة print كمثال

    import time
    for buffer in range(20):
        print(buffer, end=" ", flush=True)
        time.sleep(2)

    أو يمكنك استخدام ()sys.stdout.flush وتوجد عدة طرق أخرى قم بالبحث عنها لإختيار الطريقة الأفضل لك

    • أعجبني 1
  12. يمكنك استخدام ال regular expression التالي

    '(\$[0-9]+(.[0-9]+)?)'

    وسيقوم باستخراج الأعداد التي تتبعها علامة ال $ ليصبح الكود 

    import re
    text = input()
    result = [x[0] for x in re.findall('(\$[0-9]+(\.[0-9]+)?)', text)]

     

    • أعجبني 1
  13. تقوم محددات الوصول بتحديد إمكانية الوصول للدوال أو خصائص الكائن والفرق بين المحددات كالتالي

    • 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 فقط من أي مكان في البرنامج

    • أعجبني 1
  14. قم بتجربة تمرير ال data كالتالي asyncData.movies حتى تحصل على المصفوفة لذلك سيكون التعديل كالتالي

    <FlatList
      data={asyncData.movies}// لاحظ هذا التعديل
      // data={data}
      keyExtractor={item => item.id.toString()}
      renderItem={({item}) => (
        <Text>
        {item.title}, {item.price}
        </Text>
      )}
    />

    دائماً قم ب console.log للبيانات للتأكد من الوصول للبيانات التي تريدها

  15. صحيح أن التابع move يقوم بنقل الملف لمكان آخر ولكن يمكن إعادة تسمية الملف من خلاله كما في توثيق laravel من هنا ولكن عند التسمية يجب أن يكون اسم المجلد متطابق في الحالتين كالتالي

    Storage::move('foldername/oldfile-name.jpg', 'foldername/newfile-name.jpg'); 
    //foldername يجب أن يكون الأسم متطابق للمجلد

     

  16. بتاريخ 16 دقائق مضت قال Ahmed Sawy:

    اعلم هذا الامر ولكنه سوف يأتينى ب ملفات الريبو كاملة .. انا اريد فولدر git. فقط 

    يمكنك بدلاً من عمل clone تنفيذ الأمر pull كالتالي

    git init
    git remote add origin <repo_address>
    git pull origin main

    أو يمكنك عمل clone في مجلد آخر ثم نقل مجلد ال .git فقط للمجلد الأساسي لتجنب خسارة التغييرات التي لم تقم بعمل push لها

  17. سأحاول  شرح الخطوات بدلاً من حل السؤال مباشرة وبعد ذلك يمكنك كتابة البرنامج

    أولاً نحتاج لإنشاء الكلاس student ويقوم بوراثة الكلاس person مع إضافة خصائص أخرى مثل gpa كالتالي 

    class Student(Person):
      def __init__(self, gpa):
        
      

    عند هذه الخطوة لن تتم الوراثة حيث يحدث تخطي لخصائص الكلاس الأب لذلك نستخدم ال construct الخاصة بالكلاس الأب كالتالي

    class Student(Person):
      def __init__(self, name, age, year):
        super().__init__(name, age)
        self.graduationyear = year
    
      

    ويمكن إضافة أي دالة ببساطة مثالاً

    def welcome(self):
      print("Welcome", self.name, self.age, "to the class of", self.graduationyear)

    قم بكتابة البرنامج الخاص بك بالإستعانة بهذه الخطوات 

    • أعجبني 1
  18. هل تقصد الجداول التي تحتوي على شرح لل tags ؟

    يمكنك أن تجد ذلك في موسوعة حسوب وبالإضافة للمزيد من المعلومات حيث يوجد توثيق لل html كامل مع العديد من اللغات الأخرى من خلال هذا الرابط

    أو يمكنك البحث عن المقال الذي تقصده من خلال مربع البحث في الموقع أعلى يسار الموقع

    • أعجبني 1
  19. بدلاً من استخدام ال input value مباشرة يمكنك التعديل على ال value قبل تنفيذ ال ajax لذلك سنحتاج للجافاسكربت عن طريق الأمر التالي

    var text="this is my text.";
    var lowercase=text.toLowerCase(); //لاحظ هذه الدالة

    لذلك لتنفيذ المطلوب سنحتاج لعمل دالة تقوم بالسابق عند حدث معين مثل input  كالتالي 

    <input oninput="this.value=this.value.toLowerCase()"/>

    أو يمكنك من خلال الجافاسكربت 

    element.addEventListener('input',function(){this.value=this.value.toLowerCase()});

     

  20. بتاريخ 1 دقيقة مضت قال Ahmed Khaled18:

    السلام عليكم اخي الحمدلله  انا خلصت الأساس كله واتمت دورة تطوير الواجهات وحاليا انا ابتديت علي مستقل 

    ولكن أحيانا العملاء يريدون مصمم واجهات ويكون أيضا يكون لديه الصور والمحتوي 

    يعني مثلا يقول انا عايز عمل موقع عن أدارة الاعمال من غير مايعطيني تفاصيل او صور عن المشروع 

    فالمحتوي والصور دايما بتكون موجودة في القوالب عشان كده عايز اتعلم في الwordpress ولكن ينقصني الPHP للأسف 

    وعليكم السلام

    بما أنك مطور واجهات أمامية فليس مطلوب منك التعامل مع جزء ال backend أما بالنسبة للعمل على مستقل فالطبع يكون بالإتفاق في حالة إن كان يريد wordpress أو برمجة خاصة وبالنسبة للمحتوى والصور فبالأساس يجب أن يوفره لك العميل وليس بالضروري أن يكون في قوالب wordpress فقط لذلك يكون كل شئ حسب الإتفاق 

    • أعجبني 1
  21. للمنافسة على المشاريع في مواقع العمل الحر يجب أن تضع عدة أمور في الحسبان

    • ال profile الخاص بما يحتوي من الأعمال السابقة
    • طريقة تقديم العرض على أي مشروع
    • طريقة تعريف نفسك  في ال profile

    في البداية يكون الأمر صعب ولكن متى قمت بعمل عدة مشاريع ربما يوظفك العديد من العملاء بدون تقديم أي عروض 

    في هذا السؤال ستجد عدة إجابات ستفيدك في ال 3 نقاط التي وضحتها بالأعلى للمساعدة في العمل الحر

     

    • أعجبني 1
×
×
  • أضف...