Thứ Sáu, 18 tháng 10, 2013

login with google in a popup example / đăng nhập website bằng tài khoản google

<! DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
var OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?';
var VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
var SCOPE = 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email';
var CLIENTID = '716569014051.apps.googleusercontent.com';
var REDIRECT = 'http://www.gethugames.in/proto/googleapi/oauth/'
var LOGOUT = 'http://accounts.google.com/Logout';
var TYPE = 'token';
var _url = OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
var acToken;
var tokenType;
var expiresIn;
var user;
var loggedIn = false;

function login() {
var win = window.open(_url, "windowname1", 'width=800, height=600');

var pollTimer = window.setInterval(function() {
try {
console.log(win.document.URL);
if (win.document.URL.indexOf(REDIRECT) != -1) {
window.clearInterval(pollTimer);
var url = win.document.URL;
acToken = gup(url, 'access_token');
tokenType = gup(url, 'token_type');
expiresIn = gup(url, 'expires_in');
win.close();

validateToken(acToken);
}
} catch(e) {
}
}, 500);
}

function validateToken(token) {
$.ajax({
url: VALIDURL + token,
data: null,
success: function(responseText){
getUserInfo();
loggedIn = true;
$('#loginText').hide();
$('#logoutText').show();
},
dataType: "jsonp"
});
}

function getUserInfo() {
$.ajax({
url: 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + acToken,
data: null,
success: function(resp) {
user = resp;
console.log(user);
$('#uName').text('Welcome ' + user.name);
$('#imgHolder').attr('src', user.picture);
},
dataType: "jsonp"
});
}

//credits: http://www.netlobo.com/url_query_string_javascript.html
function gup(url, name) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\#&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( url );
if( results == null )
return "";
else
return results[1];
}

function startLogoutPolling() {
$('#loginText').show();
$('#logoutText').hide();
loggedIn = false;
$('#uName').text('Welcome ');
$('#imgHolder').attr('src', 'none.jpg');
}

</script>
</head>

<body>
<a href='#' onClick='login();' id="loginText"'> Click here to login </a>
<a href="#" style="display:none" id="logoutText" target='myIFrame' onclick="myIFrame.location='https://www.google.com/accounts/Logout'; startLogoutPolling();return false;"> Click here to logout </a>
<iframe name='myIFrame' id="myIFrame" style='display:none'></iframe>
<div id='uName'></div>
<img src='' id='imgHolder'/>
</body>
</html>


http://www.gethugames.in/blog/2012/04/authentication-and-authorization-for-google-apis-in-javascript-popup-window-tutorial.html

Thứ Năm, 17 tháng 10, 2013

right click to open file with netbeans ubuntu

create file netbeans.desktop and save in /home/chieu/.local/share/applications
[Desktop Entry]
Encoding=UTF-8
Name=Netbeans IDE
Comment=Netbeans IDE
Exec=/home/chieu/netbeans-7.2/bin/netbeans %f
Terminal=false
Type=Application
Icon=/home/chieu/netbeans-7.2/nb/netbeans.png
Categories=Application;Utility;TextEditor;
StartupNotify=false
MimeType=text/plain;
NoDisplay=false



add two line below to  /home/chieu/.local/share/applications/mimeapps.list
[Added Associations]
text/plain=netbeans.desktop;


reference : http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

Thứ Bảy, 12 tháng 10, 2013

request payload java example


 String line, jsonString = "";
String payload = "{\"intStoreId\":" + storeId + "}";
        URL url = new URL(requestUrl);

        //String payload="{\"jsonrpc\":\"2.0\",\"method\":\"changeDetail\",\"params\"://[{\"id\":11376}],\"id\":2}";

        HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();
        urlconn.setDoInput(true);
        urlconn.setDoOutput(true);
        urlconn.setRequestMethod("POST");
        urlconn.setRequestProperty("Referer", "http://www.thegioididong.com/dtdd/nokia-lumia-720");
        urlconn.setRequestProperty("Cookie", "CK_CHECK_PROVINCE_OF_USER=3; __utma=38171452.1146549248.1371292675.1379057701.1379074801.51; __utmc=38171452; __utmz=38171452.1377394775.7.2.utmcsr=localhost:8031|utmccn=(referral)|utmcmd=referral|utmcct=/test");
        urlconn.setRequestProperty("Accept", "application/json");
        urlconn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
        urlconn.setRequestProperty("X-Requested-With", "XMLHttpRequest");
        OutputStream os = urlconn.getOutputStream();
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
        writer.write(payload);
        writer.close();
        os.close();
        BufferedReader br = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
        while ((line = br.readLine()) != null) {
            jsonString += line;
        }
        br.close();
        urlconn.disconnect();

Thứ Tư, 9 tháng 10, 2013

simple local storage with expire implement (html5)


var clientCache ={
    remove: function (key) {
        localStorage.removeItem(key);
    },
    set: function(_key, _value, _expire) {
        var object = {
            value: _value,
            expire: new Date().getTime() +_expire
        }
        localStorage.setItem(_key, JSON.stringify(object));
    },
    get: function(key) {
        var object = JSON.parse(localStorage.getItem(key));
        if(!object||!object.value){
            return null;
        }
        var expire = object.expire;
        var now = new Date().getTime();
        if(now > expire){
            clientCache.remove(key);
            return null;
        }
        return object.value;
    },
    clearAll : function(){
        localStorage.clear();
    },
    isSupport : function(){
        var key = "key";
        try {
            localStorage.setItem(key, key);
            localStorage.removeItem(key);
            return true;
        } catch(e) {
            return false;
        }
    }
}

session handler and resource handle for embedded jetty example


public class WebServer {
   
    private static Logger logger_ = Logger.getLogger(WebServer.class);
   
    public void start() throws Exception {
       
        Server server = new Server();

        // Setup JMX
        MBeanContainer mbContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
// String mbeanName = "vng.wte.app" + ":type=WebServer";
//
// try {
// mbContainer.getMBeanServer().registerMBean(this, new ObjectName(mbeanName));
// } catch (Exception e) {
// throw new RuntimeException(e);
// }

        server.getContainer().addEventListener(mbContainer);
        server.addBean(mbContainer);
        mbContainer.addBean(Log.getLog());
       
        QueuedThreadPool threadPool = new QueuedThreadPool();
        threadPool.setMinThreads(100);
        threadPool.setMaxThreads(2000);
        server.setThreadPool(threadPool);
       
        int port_listen = Integer.valueOf(ConfigUtil.getParam("rest", "port_listen"));
       
        SelectChannelConnector connector = new SelectChannelConnector();
        connector.setPort(port_listen);
        connector.setMaxIdleTime(30000);
        connector.setConfidentialPort(8443);
        connector.setStatsOn(false);
        connector.setLowResourcesConnections(20000);
        connector.setLowResourcesMaxIdleTime(5000);
       
        server.setConnectors(new Connector[]{connector});
       
       
        ServletHandler handler = new ServletHandler();
        server.setHandler(handler);
       
//        handler.addServletWithMapping("webservlet.IndexControllerServlet", "/index");
//        handler.addServletWithMapping("webservlet.CategoryControllerServlet", "/category");
//        handler.addServletWithMapping("webservlet.IndexControllerServlet", "/*");
       
//        HashSessionIdManager hashSessionIdManager = new HashSessionIdManager();
//        SessionHandler sessionHandler = new SessionHandler();
//        SessionManager sessionManager = new HashSessionManager();
//        sessionManager.setIdManager(hashSessionIdManager);
//        sessionHandler.setSessionManager(sessionManager);
//        sessionHandler.setHandler(handler);
//        sessionHandler.setServer(server);
//        server.setSessionIdManager(hashSessionIdManager);
       
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        context.addServlet("webservlet.IndexServlet", "/index");
        context.addServlet("webservlet.HomeServlet", "/home");
        context.addServlet("webservlet.CategoryServlet", "/category");
        context.addServlet("webservlet.ProductServlet", "/product");
        context.addServlet("webservlet.TestServlet", "/test");
        
        context.addServlet("webservlet.ajax.GetStoreByPhoneCodeServlet", "/ajax/get-store-by-phone-code");
     
       
        //server.setHandler(context);
        //        Resource jettyConfig = Resource.newSystemResource("jetty.xml");
//XmlConfiguration configuration = new XmlConfiguration(jettyConfig.getInputStream());
//Server server1 = (Server)configuration.configure();
       
        ResourceHandler resourse_handle = new ResourceHandler();
        resourse_handle.setDirectoriesListed(true);
        resourse_handle.setResourceBase("static");
        HandlerList handlers = new HandlerList();
        handlers.setHandlers(new Handler[]{resourse_handle, /*handler,*/context});
        server.setHandler(handlers);
             
        server.setStopAtShutdown(true);
        server.setSendServerVersion(true);
       
        server.start();
        server.join();
       
       
       
    }
}

Thứ Hai, 7 tháng 10, 2013

override exist jdk ubuntu

root@CPU10777:/usr/java# update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_51_32/bin/java  2
root@CPU10777:/usr/java# update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_51_32/bin/javac  2
root@CPU10777:/usr/java# update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.7.0_51_32/bin/javaws  2









/zserver/java$ sudo mv jdk1.6.0_45/ jdk1.6.0_45_32bit
/zserver/java$ sudo update-alternatives --install "/usr/bin/java" "java" "/zserver/java/jdk1.6.0_45_32bit/bin/java" 1
/zserver/java$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/zserver/java/jdk1.6.0_45_32bit/bin/javac" 1
/zserver/java$ sudo update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "/zserver/java/jdk1.6.0_45_32bit/jre/lib/i386/libnpjp2.so" 1
/zserver/java$ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/zserver/java/jdk1.6.0_45_32bit/bin/javaws" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/zserver/java/jdk1.6.0_45_32bit/bin/javaws" 1
/zserver/java$ sudo update-alternatives --config java
/zserver/java$ sudo update-alternatives --config javac