2013年9月9日 星期一

R plot png x11 error in centos

Problem:
Using the R to plot the figure and want to store with png file,
such as png(file="a.png")
but it will appear
Error in  png(file="a.png"): X11 is not available




Solution:
I used the R.2.15.2.
1. First you should install the important package for plotting
{
yum install -y cairo-devel.x86_64
yum install -y libpng-devel.x86_64 
}

2. configure and compile the R
{
 ./configure --with-x=no

  R is now configured for x86_64-unknown-linux-gnu

  Source directory:          .
  Installation directory:  
  C compiler:                gcc -std=gnu99  -g -O2
  Fortran 77 compiler:       gfortran  -g -O2

  C++ compiler:              g++  -g -O2
  Fortran 90/95 compiler:    gfortran -g -O2
  Obj-C compiler:            

  Interfaces supported:     
  External libraries:        readline
  Additional capabilities:   PNG, TIFF, NLS, cairo
  Options enabled:           shared BLAS, R profiling, Java


then 
make
}

3. Execute the R and check the png is TURE
{
> capabilities()
    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets
   FALSE     TRUE     TRUE    FALSE    FALSE    FALSE     TRUE     TRUE
  libxml     fifo   cledit    iconv      NLS  profmem    cairo
    TRUE     TRUE     TRUE     TRUE     TRUE    FALSE     TRUE
}

4. Check and setting the bitmapType as cairo in R environment
{
>options(bitmapType="cairo")
}


Reference:
unable to start PNG / X11 in rstudio
How to get R to compile with PNG support
R install
R dowload

Centos x11





2013年8月8日 星期四

Java send mail using gmail and support utf-8 characters



Step 1. Download the jar
Download the jar of javax.mail.jar from oracle send mail , and I used the JavaMail 1.5.0 version of 


Step 2. Example Using connecttion to gmail
 please notice the red color character.
// ---------------
public void test_gmail2 () throws Exception {
      
            final String SMTP_HOST_NAME = "smtp.gmail.com";
            final String SMTP_HOST_PORT = "465";
            final String SMTP_AUTH_USER = "your_Gmail@gmail.com";
            final String SMTP_AUTH_PWD = "your_Gmail_Password";

            Properties props = new Properties();

            props.put("mail.transport.protocol", "smtps");
            props.put("mail.smtps.host", "smtp.gmail.com");
            props.put("mail.smtps.auth", "true");
            props.put("mail.smtp.starttls.enable","true");
            props.put("mail.smtp.socketFactory.port", SMTP_HOST_PORT);
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "false");
                  
            Session mailSession = Session.getInstance(props,  new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(SMTP_AUTH_USER, SMTP_AUTH_PWD);
                }
              });
            mailSession.setDebug(true);
            Transport transport = mailSession.getTransport("smtps");

            MimeMessage message = new MimeMessage(mailSession);
             message.setSubject("這是Testing SMTP-SSL");
            message.setContent("<h3>This</h3> is a test 信", "text/html;charset=utf-8");
          
         
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("Sender_mail"));

          
            /**/
            transport.connect
              (SMTP_HOST_NAME, Integer.parseInt(SMTP_HOST_PORT), SMTP_AUTH_USER, SMTP_AUTH_PWD);

            transport.sendMessage(message,
                message.getRecipients(Message.RecipientType.TO));
            transport.close();
 }
    

2013年8月7日 星期三

Linux remove code previous number

we use the sed to replace the number is code
the first character can be space one number, the two number may a number

sed 's/^[ 0-9]*[0-9]//g' code.java





Reference
Sed RE pattern

Jquery can't change image refresh in Firefox and IE

1. Problem:
 Some times we try dynamic to change a picture in html,
and we assume this image is same,
in firefox and IE, this doesn't work,
and we happen is in captcha image.


2. Solution
This is because the firefox and ie seem the picture name is same, so they didn't send the request.  solution is add a random number in the request.
// HTML
<a href="" id="captcha_img_link"  title="Change img">chane</a>
<img id="captcha_img" align="middle" src="jcaptcha.jpg"  />


// Javascript
$(function (){
    // change image
    $('#captcha_img_link').click(function () {
        // Avoid the cache using appach random
        $("#captcha_img").attr('src',"./jcaptcha.jpg?random=" + Math.floor((Math.random()*20)+1));               
        return false;
    });
});




Reference:
How to force a web browser NOT to cache images

2013年7月31日 星期三

java eclipse JDK update JDK7_25 in linux

h3. Download SE for 64 bit for [oracle|http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html]

h3. Copy to directory and link
{code}
mv /home/Andy/IBMS/lib/jdk/jdk7_25/jdk1.7.0_25 /usr/java
unlink latest
unlink default
ln -s /usr/java/jdk1.7.0_25 latest
ln -s /usr/java/latest default
{code}


h3. Setup the run position
{code}
update-alternatives --install "/usr/bin/java" "javac" "/usr/java//jdk1.7.0_25/bin/javac" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/java//jdk1.7.0_25/bin/javac" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/java//jdk1.7.0_25/bin/javaws" 1

[root@localhost java]# update-alternatives --config java

有 3 程式提供 'java'。

  選擇        指令
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/java//jdk1.7.0_25/bin/java

請輸入以保留目前的選擇[+],或輸入選擇號碼:3
[root@localhost java]# update-alternatives --config javac
[root@localhost java]# update-alternatives --config javaws
{code}

h3. Setting Eclipse used JDK7

Choose Window->Preference, then click following content



h3. Setting project replace jdk6 to jdk7

your_Project (click mouse right button)-> properties \-> java build path \-> edit









Reference:
[How do I install Oracle Java JDK 7?|http://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7]
[Eclipse update|http://stackoverflow.com/questions/12588537/how-to-change-jdk-version-for-an-eclipse-project]


Reference:
[How do I install Oracle Java JDK 7?|http://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7]

2013年7月29日 星期一

PSQL string concate

1. Solution:
A. Using || symbol
select account||lastname from user where account = 'andy';







B. write the function
create or replace function concate(text,text) RETURNS text AS $$ SELECT $1 || '' ||$2; $$ LANGUAGE 'sql';
select concate(account,lastname) from user where account = 'andy';




Reference:
a-better-concat-for-postgresql
How to concatenate strings of a string field in a PostgreSQL
wiki Postsql

2013年7月28日 星期日

Struts2 Version 2.3.15 HelloWorld Setting

1. Problem:
There are some different after struts2 2.1.3, e.g. the library and the strtus.xml, web.xml setting file


2. Solution:
A. Downlaod form struts-2.3.15.1-lib.zip

B. Use the following Basic library, and copy to WebContent/WEB-INF/lib:
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.3.jar
commons-io-2.0.1.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.6.jar
struts2-core-2.3.15.1.jar
xwork-core-2.3.15.1.jar

C. Writing the web.xml, there we use the StrutsPrepareAndExecuteFilter

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
   
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

D. Writing the struts.xml in Project_dir/Java Resource/src and write your action class
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.devMode" value="true" />
    <package name="default" extends="struts-default"> 
        <action name="hello" class="ibms.struts2.HelloWorldAction" method="execute">
            <result name="success">/HelloWorld.jsp</result>
        </action>
       
    </package>
</struts>


3. Reference
Difference between Struts 2 FilterDispatcher and StrutsPrepareAndExecuteFilter ?
struts2-hello-world-jsp-example-error