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

Yomna Raouf

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

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

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

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

    65

أجوبة بواسطة Yomna Raouf

  1. السبب في الإشارة السالبة هو أنك قمت باستخدام 

     ;(Integer.toHexString(int 

    و حيث أن ال parameter من نوع int فإنها تقوم بعمل تحويل إلى أنواع بيانات أولية في جافا و هذا يتضمن إضافة إشارة. 

    أما سبب ظهور ffffff قبل رقم 83 هو إستخدام ال formatter %02X في 

    ;(([sb.append(String.format("%02X",bytes[i 

    حيث أن حرف X يقوم بالتحويل إلى Hexadecimal النظام السادس عشر.

    • أعجبني 1
  2. أنصحك بالتواصل مع مركز الدعم الفني من هنا و فتح تذكرة بمشكلتك و سيتم التواصل معك لحلها.

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

    • أعجبني 1
  3. 
    
    // build.gradle
    
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
      
    // MyGlideModule.kt
    
    @GlideModule
    class MyGlideModule : AppGlideModule()
      
    // MainActivity.kt
    
    override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)
    
      val circularProgressDrawable = CircularProgressDrawable(this)
      circularProgressDrawable.strokeWidth = 5f
      circularProgressDrawable.centerRadius = 30f
      circularProgressDrawable.start()
    
      GlideApp.with(applicationContext)
          .load("https://raw.githubusercontent.com/bumptech/glide/master/static/glide_logo.png")
          .placeholder(circularProgressDrawable)
          .into(a_main_image)
    }

     

    يمكنك تنفيذ ذلك باستخدام CircularProgressDrawable

    • أعجبني 1
  4. يوجد العديد من الطرق التي تمكنك من جعل الموقع متجاوب بدون media queries  في بعض الأحيان أو مع استخدام بسيط لل media queries.

    فمثلًا:

    فمثلا يمكن استخدام عدة كلاسات معًا كلًا منها يحدد عدد الأعمدة التي يشغلها عنصر معين 

    • استخدام css flexbox يمكنك الإطلاع عليه من خلال الرابط التالي  flexbox  و  css grid من خلال هذا الرابط  grid

    css flexbox هي التقنية التي بُني على أساسها bootstrap و هي تقوم بتقسيم الصفحة إلى أعمدة و كذلك css grid و لكن الفرق الأساسي بينهما هو أن css flexbox صممت لتنسيق الصفحة في بعد واحد أما css grid صممت لتنسيق الصفحة في بعدين.

    الصورة التالية توضح ذلك:  

    يمكنك أيضًا الإطلاع على الروابط التالية :

     لعبة بسيطة تساعد في فهم flexbox

    لعبة بسيطة تساعد في فهم css grid

    فباستخدام هذه التقنيات معا يمكنك التقليل من ال media queries و ستوفر عليك إعادة كتابة الكثير من التنسيقات.

    1_FifZUGz97Onmb7RUOairbg.png

    • أعجبني 1
  5. بتاريخ 35 دقائق مضت قال Adminphp Php:

      FILESYSTEM_CLOUD=variable to ftp like 

    المقصود ب variable to ftp like هو التالي :

    تقوم بتعريف متغير يسمى ftp 

     و بالتالي يمكنك أن تترك هذا السطر كنا هو FILESYSTEM_CLOUD = ftp 

    يمكنك الإطلاع على اامزيد من التوثيق التالي FileSystem_laravel5

    Screenshot_20200717-161002.png

    • أعجبني 1
  6. إذا كنت جديد في مجال البرمجة و كانت هذه أول لغة برمجة تتعلمها فمن الطبيعي جدًا أن تجد فيها شيئًا من الصعوبة. حتى و إن انتقلت إلى بايثون.

    لا تجعل سهولة HTML و CSS تؤثر على تقديرك لدرجة سهولة جافاسكريبت فهما لا تعتبران لغات برمجة (HTML & css). لغات البرمجة أكثر صعوبة من ذلك.

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

    فبعد الإنتهاء من جافاسكريبت ستتمكن من العمل كمطور واجهات في مواقع العمل الحر و ما إلى ذلك. 

    أما إذا انتقلت إلى لغة بايثون ستقضي الكثير من الوقت تتعلمها ثُمَّ ستقضي أيضا بعض الوقت تتعلم جافاسكريبت ثُمَّ تعود لتتعلم ال backend أي أنك ستقضي وقت أطول حتى تستطيع العمل و وقت و عناء أكثر لتصل إلى نفس النتيجة بالنهاية.

    نصيحتي لك أن تحدد أولوياتك و بعدها اتخذ قرارك و اختر ما يناسبك فالناس ليسوا سواء في الطريقة التي يتعملون بها ما يناسب غيرك قد لا يناسبك و ما يجده الآخرون سهلًا قد لا تجده أنت سهلًا. 

     

  7.  

    الelemnt أي شيْ تستطيع أن تصل اليه مباشرة في HTML من خلال class أو ID أو TagName.

    في حين أن ال node أعم من ال element فال node هي جميع المكونات التي تتكون منها صفحة الويب فعندما نتعامل  مع ال DOM  نحن نتعامل مع nodes. أما ال elemnts فهم نوع واحد من ال  node.

    فال node عبارة عن واجهة يرث منها عدد من ال DOM types و هي تسمح لهذه الأنواع أن تعامل بالمثل.

     المرجع: Ref: https://developer.mozilla.org/en-US/docs/Web/API/Node

    ال Element interface تمثل كائن من ال DOM.  هذا النوع "interface" يصف خصائص مشتركة و methods لجميع ال elements. 

    و ال elements يمكنها أن تحتوي على أي عدد من الأبناء في حين أن هذا غير ممكن لل node

    الخلاصة:

    يمكنك انشاء DOM Node في webpage كما يلي:

     

    var node=document.createTextNode('A Node');

    و يمكنك انشاء paragraph element كما يلي:

    var p=document.createElement('p');

    لارفاق ال node بال element:

    p.appendChild(node);

     

    • أعجبني 1
  8. // connect to the Data Base 
    String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
    Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
    
    // create a prepaired statement 
    PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?, ?)");
    
    //set values to the placehplders
    
    pstmt.setString(1, "sample image");
    //Inserting Blob type
    InputStream in = new FileInputStream("E:\\images\\cat.jpg");
    pstmt.setBlob(2, in);

    بعد ذلك قم بعمل ()execute لل PreparedStatement.

    مثال:

    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    public class InsertImageToMySqlDB {
       public static void main(String args[]) throws Exception{
          //Registering the Driver
          DriverManager.registerDriver(new com.mysql.jdbc.Driver());
          //Getting the connection
          String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
          Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
          System.out.println("Connection established......");
          PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?,?)");
          pstmt.setString(1, "sample image");
          //Inserting Blob type
          InputStream in = new FileInputStream("E:\\images\\cat.jpg");
          pstmt.setBlob(2, in);
          //Executing the statement
          pstmt.execute();
          System.out.println("Record inserted......");
       }
    }

     

  9. لغة بايثون بمفرها تكفى و لا يشترط أن تتعلم لغة أخرى لتتمكن من إيجاد عمل. 

    يوجد العديد من التخصصات لمطوري بايثون مثل:

    • تطوير و اجهات المستخدم الرسومية باستخدام مكتبة TKinter 
    • مطور Backend 
    • تعلم الآلة و Data Science و لكن هذا المجال  يتطلب تعلم الرياضيات و الإحصاء أيضا. 
    • web Scraping باستخدام Beautiful Soup أو غيرها و هي عملية استخراج البيانات من المواقع. 
    • Automation و هو تنفيذ مهام مثل إدخال البيانات( على سبيل المثال لا الحصر) أوتوماتيكيا بدون تدخل الإنسان لتوفير الوقت و المجهود باختصار تجعل الكومبيوتر يقوم بالمهام بالنيابة عنك. 

    و غيرها الكثير مجالات لغة البايثون لا حصر لها يمكنك اختيار ما شئت منها و هي مطلوبة هذه الأيام بشكل كبير. 

    و مع ذلك اذا أردت تعلم لغة أخرى بعد البايثون فلم يكون الأمر صعب لأن معظم اللغات متشابهة في الأساسيات الاختلاف بينهم فقط طريقة الكتابة syntax 

    • أعجبني 1
  10. هل يمكنك أن ترفق صورة بالمشكلة؟؟

    الأوامر المستخدمة:

    git add . 

    يجب اضافة نقطة بعد add حتى يقوم باضافة كل الملفات.

    ثم 

    git commit -m"اكتب أي رسالة هنا "

    ثم

    git push 

     

    في حال اذا كنت عملت على المشروع ثم قمت باضافة الملفات في المستودع manually.

    اتبع الخطوات التالية:

    • أولا: اذهب الى المستودع الخاص بالمشرع:

    اضغط على الزر الأخضر ثم قم بنسخ الرابط الذي سيظهر لك:

     

    Annotation 2020-07-16 114047.jpg

    • أعجبني 1
  11. ربما يساعدك هذا المثال

    import java.sql.*;
    import java.awt.*;
    import javax.swing.*;
    
    import java.awt.event.*;
    public class  DisplayDatabaseDataToJTextArea implements ActionListener{
    	JTextArea textarea=new JTextArea(5,20);
    	JButton b=new JButton("Get Data");
    	public void createUI()
    	{
    		JFrame f=new JFrame();
            f.setLayout(null);
            JLabel label=new JLabel("Database data : ");        
            b.addActionListener(this);
            
            label.setBounds(10,40,100,20);
            textarea.setBounds(120,40,150,60);
            b.setBounds(120,110,100,20);
            
            f.add(label);        
            f.add(textarea);
            f.add(b);
            f.setVisible(true);
            f.setSize(350,200);
    	}
        public static void main(String[] args){
        	DisplayDatabaseDataToJTextArea dd = new DisplayDatabaseDataToJTextArea();
        	dd.createUI();
        }
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		b = (JButton)e.getSource();		
    		getOperation();
    	}
    	public void getOperation()
    	{		
    		try
    		{
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    			Connection con = DriverManager.getConnection("jdbc:odbc:swing");
    			String sql = "select textAreaData from data";
    			PreparedStatement ps = con.prepareStatement(sql);
                ResultSet rs = ps.executeQuery();			
    			while(rs.next())
                {           	   
    				textarea.setText(rs.getString(1));           	
                }
    			
    			JOptionPane.showMessageDialog(null, "Retrieved data succesfully.","Record Retrieved",
    					JOptionPane.INFORMATION_MESSAGE);
    		}
    		catch(Exception ex)
    		{
    			JOptionPane.showMessageDialog(null, ex.getMessage(),"Error",
    					JOptionPane.ERROR_MESSAGE);
    		}			
    	}    
    }

    لنفرض أن قاعدةالبيانات كما يلي

    عندما يعمل البرنامج سيظهر مربع كما في الصورة الثانية.

    عنما تضغط على زر get Data ستظهر البيانات في ال   text area

     

    Annotation 2020-07-16 091933.jpg

    Annotation 2020-07-16 092218 (2).jpg

    Annotation 2020-07-16 092218 (2).jpg

    في حالة ال JList 

    package JavaDB_001;
    import java.awt.Color;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import javax.swing.*;
    import java.sql.Statement;
    import java.awt.List;
    
    public class Work extends JFrame{
      List list;
         public Work(){
             list = new List();
             list.setBounds(20,20,440,420);
             
             BindList();
             
             add(list);
             setLayout(null);
             setSize(500, 500);
            getContentPane().setBackground(Color.decode("#bdb76b"));
             setLocationRelativeTo(null);
             setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             setVisible(true);
         }
         
    
    
         //create A function To Bind The List With MySql Database
         public void BindList(){
             Connection con;
             Statement st;
             ResultSet rs;
             try{
                 con = DriverManager.getConnection("jdbc:mysql://localhost/test_db","root","");
                 st = con.createStatement();
                 rs = st.executeQuery("select * from users");
                 while(rs.next()){
                     list.add(rs.getString(2));
                 }
             }catch(Exception ex){
                 ex.printStackTrace();
             }
         }
       
         public static void main(String[] args){
             new Work();
         }
        }

     

  12. لا يوجد لغة أفضل من الأخرى كل لغة و لها تطبيق استخدام اختيارك للغة يعتمد على ما تريد أن تفعل.

    مع ذلك أنا لا أرجع تعلم php ان كنت لم تبدأ في التعلم بعد من الأفضل أن تتعلم JavaScript أو Python و السسب هو متطلبات سوق العمل على المدى البعيد حيث أن الطلب على php في تناقص مستمر (يمكنك التحقق من ذلك في مكان اقامتك).

    في حال اخترت JavaScript فأنك لن تضطر لتعلم غيرها لأنها تستخدم في كلى الجانبين frontEnd و BackEnd.

    انما في حالة قمت باختيار python فانه يجب أن تتعلم معها JavaScript لل frontEnd لان بايثون تستخدم في ال Backend فقط.

    •  هل من الممكن انا كون مطور مواقع وتطبيقات ام يجب ان اتخصص في مجال واحد فقط؟؟ 

    يمكن ذلك في حال قمت باختيار javaScript لان js  بها  مكتبة تستخدم في بناء المواقع React و مكتبة تستخدم في بناء تطبيقات الهواتف و هي React Native هذه التطبيقات تكون هجينة أي أنها تعمل على andoid و IOS دون الحاجة الى كتابة كود منفصل لكل تطبيق. 

    يمكنك تعلم React و من ثم React Native لتقوم بالتطوير للويب و الموبايل . و كلا المكتبتان متماثلتان تماما فلن تجد صعوبة في تعلم React Native بعد أن تتعلم React.

     

    • هل يمكن تعلم اكثر من لغة برمجة في نفس الوقت؟؟  

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

    تعلو الأساسيات في لغة واحدة بعد ذلك ستتمكن من تعلم أي لغة أخرى بسهولة لان الأساسيات واحدة في جميع اللغات الفرق فقط طريقة الكتابة "syntax".

    • أعجبني 2
  13. يمكنك استخدام خدمات أمازون لهذا الأمر AWS فتكلفتها ليست مرتفعة و تقدم خدمة pay as you go أي أنك تدفع لما تستخدمه فقط.

    كما أنها لا تستخدم كل السرفرات معا في نفس الوقت.

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

     في حالة أن الحمل غير مرتفع سيعمل سيرفر واحد فقط و ستدفع لهذا الخادم بمفره فقط الخادم الذي تستخدمه.

    كما البيانات ستكون في قاعدة بيانات واحدة فقط يتم مشاركتها مع كل الخوادم فأنت لا تقوم بانشاء قاعدة بيانات لكل خادم على حدة.  

  14. بتاريخ 9 ساعات قال Yomna Raouf:

      اعتقد أنه يجب عليك التحقق من activity  في ()onCreate اذا كان ال sharedPreference له القيمة  null أم لا 

    اذا كانت null ستكون الشاشة هي شاشة اختيار اللغة و ان لم تكن ستكون الشاشة homescreen او أيا كان ما تريده. 

    ما قصدته هنا هو استخدام جملة  if 

    بتاريخ 9 ساعات قال مروان مروان3:

    ولكن الان لا يتم حفظ للغة التي تم اختيارها اختي ب هذا الطريقة

    سابقا هو يحفظ الكود الذي عملت مشاركه له ولكن هو يعمل تحديث للاكتفتي في كل لحظة فقط

    كلا الحلين سببا ذلك ؟؟

    • أعجبني 1
  15. public void setLocale(String lang) {
    
    myLocale = new Locale(lang);
    Resources res = getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);
    onConfigurationChanged(conf);
    /*Intent refresh = new Intent(this, AndroidLocalize.class);
    startActivity(refresh);*/
      }
    
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
      // refresh your views here
        lblLang.setText(R.string.langselection);
      super.onConfigurationChanged(newConfig);
    // Checks the active language
    if (newConfig.locale == Locale.ENGLISH) {
        Toast.makeText(this, "English", Toast.LENGTH_SHORT).show();
    } else if (newConfig.locale == Locale.FRENCH){
        Toast.makeText(this, "French", Toast.LENGTH_SHORT).show();
    }
      }

     declare in Manifest 

     android:configChanges="locale"

    ماذا عن هذا ؟؟

    أو يمكنك استبدال هذا الجزء 

    Intent refresh = new Intent(activity, StartupActivity.class);
    activity.startActivity(refresh);

    بهذه ال method من activity class:

    recreate();

     

    • أعجبني 1
  16. public void loadLocale() {
            String langPref = "Language";
            SharedPreferences prefs = getSharedPreferences("CommonPrefs",
                    Activity.MODE_PRIVATE);
            String language = prefs.getString(langPref, "");
            changeLang(language);
        }
    
    public void changeLang(String lang) {
            if (lang.equalsIgnoreCase(""))
                return;
            myLocale = new Locale(lang);
            saveLocale(lang);
            Locale.setDefault(myLocale);
            android.content.res.Configuration config = new android.content.res.Configuration();
            config.locale = myLocale;
            getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
    
        }
    
    public void saveLocale(String lang) {
            String langPref = "Language";
            SharedPreferences prefs = getSharedPreferences("CommonPrefs",
                    Activity.MODE_PRIVATE);
            SharedPreferences.Editor editor = prefs.edit();
            editor.putString(langPref, lang);
            editor.commit();
        }

    و في ()onCreate

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_change_language);
            loadLocale();
        }

    أو:

    SharedPreferences sharedPref = getActivity().getPreferences(MY_PREFS_NAME,Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("lang", language);
    editor.commit();

    لتحصل على ال sharedprefrence:

    Context context = getActivity();
    SharedPreferences sharedPref = context.getSharedPreferences(
           MY_PREFS_NAME, Context.MODE_PRIVATE);
    String language = sharedPref.getString("lang", null); 

    يمكنك الاستعانة بالمرجع التالي:SharedPreferences reference

    او الدرس التالي:sharedPreference tutorial

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