Saturday, November 22, 2014

.contains is undefined in JAVASCRIPT

String.contains(String) returns undefined in JS in most browsers except Mozilla firefox. We can replace above function with String.indexOf(String).

"Mycars".contains("My") returns true
"Mycars".contains("My1") returns false

"Mycars".indexOf("My") returns the index of the first character of 'My' within 'Mycars'
"Mycars".contains("My1") returns  -1

Sunday, August 24, 2014

How to Validate a Server

Validate a Server can be an important task when you are going to install a commercial applications with license only for specified servers. To validate a server we have to identify unique attributes related to servers. We can find unique attributes for a server both from software and hardware levels. Hardware level validation can be more reliable than software level since software level data can be easily fraudulently changed than the hardaware level data. But your selection may dependent on your requirements.
With this post I am describing how you can validate a server with hardware information. Simply you can access to Systems' hardware informations. As an example in Linux operating systems you can execute "dmidecode" and get the system information list (you can implement an application to execute those command programmatically using any programming language).
Then you can identify unique data elements related to a server like Serial Key, UUID, MAC etc.
You have to do a strign manipulation and retrive the those required values from the System information list.
Then for the best security we can  encrypt that value and also create a hash value from it. Now, we have a pre created and authenticated hash value. When ever we need to validate the server, what we have to do is dynamically create the hash value and compare with our stored pre-validated hash value.
If the two hashes are equal then the server validation is passed. If not server validation is false.

Thursday, July 3, 2014

How to update a table when there is a Foreign Key Constraint

When there is a foriegn key constraint, tables cannot be updated easily in MySQL. A solution for that is disable the foreign key constraint option in the particular MySQL server and do the update. Finally we can enable the foreign key constraint in the particular MySQL server. An important thing to remember is when you disable the foreign key constarint in the server, it affects to each and every table in the MySQL server.  

//Disable the foreign key constraint option 
SET FOREIGN_KEY_CHECKS=0 

//Enable the foreign key constraint option 
SET FOREIGN_KEY_CHECKS=1 

 //Check the state of the foreign key option in the MySQL server 
//0 means Disabled, 1 means Enabled 
SELECT @@FOREIGN_KEY_CHECKS

Saturday, May 10, 2014

How to copy a file from a remote server via SSH using commands

Terminal Syntax  

scp user_name_of_remote_server@IP_of_remote_server:absolute_location_of_the_file_to_copy absolute_path_to_directory_to_where_to_copy  

Example Command

scp root@xxx.xxx.xxx.xxx:/root/Desktop/LOGSERVEER/backup_final/file_to_be_copy.txt /home/directory_where_to_copy

Saturday, April 26, 2014

Shell script to record linux top to a text file continuously after a given time

We can record the whole top or a specific process with a process ID or process name. You can customize this code with existing shell commands related to linux shell command options relate with top "top".  Refer to http://linux.about.com/od/commands/l/blcmdl1_top.htm

Replace
[1] with the name of the process.
[2] with the name of the text file where the output is need to be recorded.

while [ 1 ] 

     do top -n 1 -p $(pidof firefox[1]) -b >> topoutput.txt[2]

     sleep 0.1 

done 


If you need to track the process just with the process id use below script.

Replace
[3] with the id of the process.

while [ 1 ] 

     do top -n 1 -p 2304[3] -b >> topoutput.txt[2]

     sleep 0.1 

done 

Write above codes with your favourite text editor and save it with .sh

To start this batch process via shell type

bash <file name of the shell script>.sh

Tuesday, April 22, 2014

How to convert tuple to list in Erlang

Just use the tuple_to_list() 

Example :-
tuple_to_list({udara,sisila,praveena,akila})

Saturday, April 5, 2014

Simple check box list in Android


From this post I am going to describe a simple way to design a custom check box list for an Android application. I have presented

  • AllergyFood.java- Which is the activity that included the check box list
  • allergy_food.xml- Which is the layout file for check box list
  • strings.xml- Which is the resource file that used for extract the values for the check box list.

What I am doing here is cerating a custom check box list with the values from the string.xml. Then let the user to put checks for their prefered values. Finally all the selected values will be stored in a string array by a button click event.

  • User interface is looks like below image.

  • strings.xml file is included below string array.
<string-array name="allergy_foods">
      
        <item>Peanut</item>
        <item>Tree Nut</item>
        <item >Milk</item>
        <item>Egg</item>
        <item>Soy</item>
        <item >Wheat</item>
        <item>Fish</item>
        <item>Shell Fish</item>
        <item >Tomato</item>
        <item >Strawberry</item>
       
 </string-array>




  • allergy_food.xml Layout file for check box list  
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="332dp"
        android:layout_weight="3.38" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next Step" />




  •  AllergyFood.java Activity file that is included the check box list layout

import android.app.ListActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;

import android.content.Intent; 

public class AllergyFood extends ListActivity{

String checkedValues="";

  @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.allergy_food);
      
      setListAdapter(new ArrayAdapter<String>(this,          android.R.layout.simple_list_item_multiple_choice,getResources().getStringArray(R.array.allergy_foods)));
        
        Button nextStep=(Button) findViewById(R.id.button1);

        final ListView listView1=(ListView) findViewById(android.R.id.list);
        listView1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 


    listView1.setOnItemClickListener(new OnItemClickListener() {

      @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)

{

                int counter=0;
                checkedValues="";
       while(listView1.getCheckedItemPositions().size()>counter){                      if(listView1.getCheckedItemPositions().valueAt(counter)==true)

          {                                                                       checkedValues=checkedValues+"|"+listView1.getItemAtPosition(counter); 
                    }
                    counter++;
                }            
            }
           
        });

}