leisure

          JAVA - exceed,helloworld
          隨筆 - 50, 文章 - 0, 評論 - 11, 引用 - 0
          數(shù)據(jù)加載中……

          2011年11月5日

          flash調(diào)用javascript

          flash.external.ExternalInterface.call("pop")

          posted @ 2013-01-11 10:34 leisure 閱讀(523) | 評論 (0)編輯 收藏

          spring2 JNDI

                <bean id= "myjndi" class= "org.springframework.jndi.JndiObjectFactoryBean" >
                       <property name ="jndiName" value= "java:comp/env/jdbc/myjndi" />
                </bean >

          posted @ 2013-01-11 10:33 leisure 閱讀(514) | 評論 (0)編輯 收藏

          兩個div在同一行

          <style>
          .b,.c{float:left; margin-right:10px;}
          </style>
          <div class="a">
            <div class="b">
                test
            </div>
            <div class="c">
                 testc
            </div>
          </div>

          posted @ 2013-01-11 10:32 leisure 閱讀(931) | 評論 (0)編輯 收藏

          Javascriptz格式化數(shù)字

          <script>
              
          /*** 格式化數(shù)字顯示方式
                  * 用法
                  * formatNumber(12345.999,'#,##0.00');
                  * formatNumber(12345.999,'#,##0.##');
                  * formatNumber(123,'000000');
                  * @param num* @param pattern
              
          */
              
          function formatNumber(num,pattern){
                  num 
          = Number(num);
                  
          var strarr = num?num.toString().split('.'):['0'];
                  
          var fmtarr = pattern?pattern.split('.'):[''];
                  
          var retstr='';    // 整數(shù)部分
                  var str = strarr[0];
                  
          var fmt = fmtarr[0];
                  
          var i = str.length-1;
                  
          var comma = false;
                  
          for(var f=fmt.length-1;f>=0;f--){
                      
          switch(fmt.substr(f,1)) {
                          
          case '#':
                              
          if(i>=0 ) retstr = str.substr(i--,1+ retstr;
                              
          break;
                          
          case '0':
                              
          if(i>=0) retstr = str.substr(i--,1+ retstr;else retstr = '0+ retstr;
                              
          break;
                          
          case ',':
                              comma 
          = true;
                              retstr
          =','+retstr;
                              
          break;
                      }
                  }
                  
          if(i>=0){
                      
          if(comma){
                          
          var l = str.length;
                          
          for(;i>=0;i--){
                              retstr 
          = str.substr(i,1+ retstr;
                              
          if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;
                          }
                      } 
          else 
                          retstr 
          = str.substr(0,i+1+ retstr;
                  }
                      retstr 
          = retstr+'.';// 處理小數(shù)部分
                      str=strarr.length>1?strarr[1]:'';
                      fmt
          =fmtarr.length>1?fmtarr[1]:'';
                      i
          =0;
                      
          for(var f=0;f<fmt.length;f++){
                          
          switch(fmt.substr(f,1)){
                              
          case '#':
                                  
          if(i<str.length) retstr+=str.substr(i++,1);
                                  
          break;
                              
          case '0':
                                  
          if(i<str.length) retstr+= str.substr(i++,1);
                                  
          else retstr+='0';
                                  
          break;
                              }
                      } 
                      
          return retstr.replace(/^,+/,'').replace(/\.$/,'');
              }
              
              document.write(
          "formatNumber('','')=" + formatNumber('',''));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(123456789012.129,null)=" + formatNumber(123456789012.129,null));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(null,null)=" + formatNumber(null,null));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(123456789012.129,'#,##0.00')=" + formatNumber(123456789012.129,'#,##0.00'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(123456789012.129,'#,##0.##')=" + formatNumber(123456789012.129,'#,##0.##'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(123456789012.129,'#0.00')=" + formatNumber(123456789012.129,'#,##0.00'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(123456789012.129,'#0.##')=" + formatNumber(123456789012.129,'#,##0.##'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(12.129,'0.00')=" + formatNumber(12.129,'0.00'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(12.129,'0.##')=" + formatNumber(12.129,'0.##'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(12,'00000')=" + formatNumber(12,'00000'));document.write("<br/>");
              document.write(
          "formatNumber(12,'#.##')=" + formatNumber(12,'#.##'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(12,'#.00')=" + formatNumber(12,'#.00'));
              document.write(
          "<br/>");
              document.write(
          "formatNumber(1080.0,'#.##')=" + formatNumber(1100.0,'#,###.##'));
              document.write(
          "<br/>");
          </script>

          posted @ 2013-01-11 10:30 leisure 閱讀(286) | 評論 (0)編輯 收藏

          去掉eclipse的validate

          困擾了好幾天,與大家共享

          1,在project名稱上右鍵選擇properties,打開屬性窗口,選擇左邊的validation

          2,勾選enable project specific setting;

          3,點(diǎn)擊Disable all,點(diǎn)擊OK關(guān)閉窗口

          4,在project名稱上右鍵validate

          備注:suspend all validators勾選沒有效果,另外第4步很重要

          posted @ 2013-01-11 10:20 leisure 閱讀(7088) | 評論 (0)編輯 收藏

          spring method interceptor

          spring method interceptor

          -author: leisure.xu

          首先dao里面有find和save方法,本實(shí)例以攔截find方法為主,并改變find的返回值。

          package com.leisure;

          public class Dao {

               public String find() {

                    System. out.println( "dao: find()");

                    return "student";

               }

               public void save() {

                    System. out.println( "dao: save()");

               }

          }

          一、新增一個DaoInterceptor,如下

          package com.leisure;

          import org.aopalliance.intercept.MethodInterceptor;

          import org.aopalliance.intercept.MethodInvocation;

          /**

           * class description goes here

           * @author leisure.xu

           * @version 1.0.0, 2012 -6 -29

           */

          public class DaoInterceptor implements MethodInterceptor {

               @Override

               public Object invoke(MethodInvocation invocation) throws Throwable {

                    String methodName = invocation.getMethod().getName();

                    if( "find".equals(methodName)) {

                         System. out.println( "invocation modify the return result to 'teacher'");

                         return "teacher";

                    }

                    return invocation.proceed();

               } 

          }

               DaoInterceptor實(shí)現(xiàn)了MethodInterceptor的invoke方法,在這里,MethodInvocation參數(shù)可以獲取到getArguments等數(shù)據(jù),至于能做什么,你懂的。

          二、Dao跟DaoInterceptor還是沒扯上關(guān)系,這時需要修改applicationContext.xml

               原來:

               <bean id = "dao" class= "com.leisure.Dao"/>

          修改為:

                    <!--

                <bean id=" dao" class="com.leiusre.Dao"/>

               -->

               <bean id ="daoInterceptor" class="com.leisure.DaoInterceptor"/>

               <bean id ="dao" class= "org.springframework.aop.framework.ProxyFactoryBean" >

                    <property name ="target">

                         <bean class ="com.leisure.Dao" />

                    </property >

                    <property name ="interceptorNames">

                         <list >

                              <value >daoInterceptor </value >

                         </list >

                    </property >

               </bean >

          三、運(yùn)行看效果!

               ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml" );

               Dao dao = context.getBean(Dao. class);

               System. out.println(dao.find());

               dao.save();

          結(jié)果:

          invocation modify the return result to 'teacher'

          teacher

          dao: save()

          從結(jié)果可以看出invocation攔截了find方法,并且修改了其返回結(jié)果,而對象的find方法并沒有執(zhí)行到。

          該實(shí)例引用到的jar包:




          posted @ 2012-07-11 09:14 leisure 閱讀(998) | 評論 (0)編輯 收藏

          spring2.0的jndi配置

          <!--
           <jee:jndi-lookup id="application" jndi-name="java:comp/env/app-name"/>
              -->
          改成
          <bean id="application" class="org.springframework.jndi.JndiObjectFactoryBean">
          <property name="jndiName" value="java:comp/env/app-name" />
          </bean>

          posted @ 2012-06-27 16:30 leisure 閱讀(309) | 評論 (0)編輯 收藏

          Caused by: java.lang.IllegalArgumentException: null source 解決

          1 Caused by: java.lang.IllegalArgumentException: null source
          2     at java.util.EventObject.<init>(EventObject.java:38)
          3     at javax.sql.StatementEvent.<init>(StatementEvent.java:39)
          4     at com.mysql.jdbc.jdbc2.optional.JDBC4PreparedStatementWrapper.close(JDBC4PreparedStatementWrapper.java:70)
          5     at com.caucho.sql.UserStatement.close(UserStatement.java:163)
          6     at com.caucho.sql.UserPreparedStatement.close(UserPreparedStatement.java:727)

          開始使用的是:mysql-connector-java-5.1.6-bin
          更換新的mysql驅(qū)動包就沒問題了(mysql-connector-java-5.1.11-bin)

          posted @ 2012-06-15 12:10 leisure 閱讀(3380) | 評論 (0)編輯 收藏

          redis五天親密旅程

          FIRST DAY
          redis介紹、安裝使用(win、linux)
          redis數(shù)據(jù)類型
          redis-twitter實(shí)例分析
          驅(qū)動選材-Jedis
          初探spring data - redis

          SECOND DAY
          項(xiàng)目架構(gòu)搭建 spring + spring data redis + jedis
          redisTemplate、jedis常用的API熟悉
          spring data - redis源碼解剖

          THIRD DAY
          redis數(shù)據(jù)庫設(shè)計(jì)理念及應(yīng)用場景分析
          深入探究數(shù)據(jù)類型

          FOURTH Day
           項(xiàng)目實(shí)戰(zhàn)

          FIFTH DAY
          內(nèi)存優(yōu)化,設(shè)計(jì)優(yōu)化
           分布式集群方案

          posted @ 2012-04-12 10:10 leisure 閱讀(530) | 評論 (0)編輯 收藏

          游戲數(shù)據(jù)庫上線拉

          新應(yīng)用,游戲數(shù)據(jù)庫,為你提供詳盡的游戲資料。


          posted @ 2012-04-11 08:54 leisure 閱讀(329) | 評論 (0)編輯 收藏

          應(yīng)用啟動時,attempting to get SockIO from uninitialized pool!

          在spring配置文件中,沒有將實(shí)例名稱對應(yīng)上,導(dǎo)致mc client無法從一個未初始化的池里獲取數(shù)據(jù)。

              <bean id="sockIOPool" class="com.danga.MemCached.SockIOPool"
                  factory-method
          ="getInstance" init-method="initialize" destroy-method="shutDown"
                  p:initConn
          ="${memcached.initConn}"
                  p:minConn
          ="${memcached.minConn}"
                  p:maxConn
          ="${memcached.maxConn}"
                  p:maintSleep
          ="${memcached.maintSleep}"
                  p:nagle
          ="${memcached.nagle}"
                  p:socketTO
          ="${memcached.socketTO}"
                  p:servers
          ="${memcached.servers}">
                  <constructor-arg value="myName"/>
              </bean>
              
              <bean id="memCachedClient" class="com.danga.MemCached.MemCachedClient">
                  <constructor-arg value="myName"/> 
                  <property name="sanitizeKeys" value="false"/>
                  <property name="compressEnable"   value="true"/>
                  <property name="compressThreshold" value="1024"/>
              </bean>

          注意<constructor-arg value="myName"/> 中的myName要保持一致。

          posted @ 2012-02-17 14:44 leisure 閱讀(3465) | 評論 (1)編輯 收藏

          eclipse安裝svn客戶端

          下載相應(yīng)的插件版本
          把解壓的內(nèi)容放置eclipse\dropins\svn\目錄下(svn目錄不存在則創(chuàng)建)
          完成后,重啟eclipse,重啟完后,提示安裝svn connector,選擇一個安裝即可,安裝完后,再一次重啟。
          window - show view - other - svn 下即可以看到svn控制視圖

          posted @ 2012-01-25 10:59 leisure 閱讀(310) | 評論 (0)編輯 收藏

          hello,spring3

          spring很早就更新了3.0版本,可是由于項(xiàng)目要求穩(wěn)定,卻一直沒有使用到,最近有個新項(xiàng)目,打算采用spring3了。

          項(xiàng)目整個結(jié)構(gòu)如下:


           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <beans xmlns="http://www.springframework.org/schema/beans"
           3      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           4      xmlns:p="http://www.springframework.org/schema/p"
           5      xsi:schemaLocation="http://www.springframework.org/schema/beans
           6      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
           7      
           8     <bean id="dao" class="Dao"/>
           9     
          10 </beans>

          1 
          2 public class Dao {
          3     public void find() {
          4         System.out.println("dao: find()");
          5     }
          6 }
          7 

           1 import org.springframework.context.ApplicationContext;
           2 import org.springframework.context.support.ClassPathXmlApplicationContext;
           3 
           4 public class Client {
           5 
           6     public static void main(String[] args) {
           7         ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
           8         Dao dao = context.getBean(Dao.class);
           9         dao.find();
          10     }
          11 }
          12 

          posted @ 2011-12-29 16:02 leisure 閱讀(211) | 評論 (0)編輯 收藏

          java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

          獲取泛型參數(shù)的類型
                  
          Class<TentityClass = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];

          出現(xiàn):
          java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

          使用以下工具類方法獲取~
           1 package cn.pconline.prolib.util;
           2 import java.lang.reflect.ParameterizedType;  
           3 import java.lang.reflect.Type;  
           4   
           5 public class GenericsUtils {  
           6     /**   
           7      * 通過反射,獲得定義Class時聲明的父類的范型參數(shù)的類型.   
           8      * 如public BookManager extends GenricManager<Book>   
           9      *   
          10      * @param clazz The class to introspect   
          11      * @return the first generic declaration, or <code>Object.class</code> if cannot be determined   
          12      */  
          13     public static Class getSuperClassGenricType(Class clazz) {  
          14         return getSuperClassGenricType(clazz, 0);  
          15     }  
          16   
          17     /**   
          18      * 通過反射,獲得定義Class時聲明的父類的范型參數(shù)的類型.   
          19      * 如public BookManager extends GenricManager<Book>   
          20      *   
          21      * @param clazz clazz The class to introspect   
          22      * @param index the Index of the generic ddeclaration,start from 0.   
          23      */  
          24     public static Class getSuperClassGenricType(Class clazz, int index) throws IndexOutOfBoundsException {  
          25   
          26         Type genType = clazz.getGenericSuperclass();  
          27   
          28         if (!(genType instanceof ParameterizedType)) {  
          29             return Object.class;  
          30         }  
          31   
          32         Type[] params = ((ParameterizedType) genType).getActualTypeArguments();  
          33   
          34         if (index >= params.length || index < 0) {  
          35             return Object.class;  
          36         }  
          37         if (!(params[index] instanceof Class)) {  
          38             return Object.class;  
          39         }  
          40         return (Class) params[index];  
          41     }  
          42 }  

                  
          Class<TentityClass = GenericsUtils.getSuperClassGenricType(BasicService.class0);

          posted @ 2011-12-26 14:37 leisure 閱讀(17896) | 評論 (4)編輯 收藏

          淺淡Java代理模式之秘書MM

          代理對象一般定義了一個與目標(biāo)對象相似或相近的行為。代理對象負(fù)責(zé)對真實(shí)模塊調(diào)用,這使得調(diào)用者與被調(diào)用者之間建立了一個隔離帶。
          場景示例說明:老總說話都是很精簡,每次發(fā)布一個消息時,總是先將簡要內(nèi)容交給秘書MM,秘書MM經(jīng)過一番美化后,把消息公布出來。

          設(shè)老總=Boss,秘書MM=MMProxy

          于是簡單的代理就有
          1 public class Boss {
          2     public void anounce(String content) {
          3         System.out.println(content);
          4     }
          5 }

          1 public class MMProxy {
          2     public void anounce(String content) {
          3         System.out.print("boss: 大家請注意了!");
          4         new Boss().anounce(content);
          5     }
          6 }

          new MMProxy().anounce("我請大家吃飯。");

          結(jié)果出來的是:
          boss: 大家請注意了!我請大家吃飯。

          通過上面發(fā)現(xiàn),這種代理比較呆板,比如說,Boss口渴了,又得重新寫一個代理方法,這個時候,可以使用動態(tài)代理來進(jìn)行:

          添加一個接口IBoss
          1 public interface IBoss {
          2     public void anounce(String content);
          3     public void drink();
          4 }

          修改Boss
          1 public class Boss implements IBoss {
          2     public void anounce(String content) {
          3         System.out.println(content);
          4     }
          5 
          6     public void drink() {
          7         System.out.println("boss: 拿起杯子,喝水");
          8     }
          9 }

          這時秘書MM變?yōu)?/div>
           1 import java.lang.reflect.InvocationHandler;
           2 import java.lang.reflect.Method;
           3 
           4 public class MMProxy implements InvocationHandler {
           5 
           6     private Object obj;
           7 
           8     public MMProxy(Object obj) {
           9         this.obj = obj;
          10     }
          11 
          12     public static Object newInstance(Object obj) {
          13         return java.lang.reflect.Proxy.newProxyInstance(
          14             obj.getClass().getClassLoader(),
          15             obj.getClass().getInterfaces(),
          16             new MMProxy(obj));
          17     }
          18     
          19     @Override
          20     public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
          21         if("drink".equals(method.getName())) {
          22             System.out.println("秘書MM: 看到boss想喝水了,于是 把水倒進(jìn)boss的杯子里。");
          23         } else if("anounce".equals(method.getName())) {
          24             System.out.print("boss: 大家請注意!");
          25         }
          26         method.invoke(obj, args);
          27         return null;
          28     }
          29 }

                  IBoss boss = (IBoss) MMProxy.newInstance(new Boss());
                  boss.anounce(
          "我請大家吃飯。");
                  boss.drink();

          boss: 大家請注意!我請大家吃飯。
          秘書MM: 看到boss想喝水了,于是 把水倒進(jìn)boss的杯子里。
          boss: 拿起杯子,喝水

          現(xiàn)在發(fā)現(xiàn)了吧,秘書MM真是服務(wù)周到呀。

          posted @ 2011-12-09 09:54 leisure 閱讀(257) | 評論 (0)編輯 收藏

          [nginx]post數(shù)據(jù)莫名奇妙丟失事件

          昨天快下班的時候,有位同事遇到post數(shù)據(jù)接收不到的問題

          首先網(wǎng)絡(luò)架構(gòu)是:
               nginx1
                 |  rewrite
               nginx2
                 |  pass
               resin1

          nginx1是在192.168.1.1上
          nginx2跟resin1是在192.168.1.2上

          首先訪問nginx1,由nginx1 rewrite到nginx2,nginx2直接pass到resin1,整個過程是POST形式。至于
          為什么要用兩層nginx,這當(dāng)然是有原因的了:-)

          于是乎,快速制定了幾個測試案例:
          1,兩種訪問方式:GET,POST
             GET URL帶參數(shù),沒有問題。
             POST 有問題。
             讓網(wǎng)絡(luò)同事檢查,處理這個location并沒有做什么特殊的POST處理。——!
          2,訪問nginx1時,直接pass到resin1,跳過nginx2
             問題依舊。
          3,去掉nginx1,訪問nginx2,直接pass到resin1
             有數(shù)據(jù)的。
          4,直接訪問resin1
             是有數(shù)據(jù)的。

          到這里,我感到很奇怪,為啥,為啥nginx1傳遞不了post數(shù)據(jù)呀,而nginx2可以,問題肯定出現(xiàn)在nginx1的配置上!~經(jīng)過一番斗爭后,終于找到問題關(guān)鍵
          nginx1中,配置了一個全的post處理
          if($request_method = POST) {
             rewrite .* /post.php last;
          }
          最后,只能大眼望細(xì)眼,汗一滴。

          posted @ 2011-11-25 12:07 leisure 閱讀(5935) | 評論 (0)編輯 收藏

          反射判斷成員變量是否靜態(tài),并獲得其靜態(tài)成員的值

                  Field[] fields = cls.getDeclaredFields();
                  Field field 
          = fields[0];
                  
          boolean isStatic = Modifier.isStatic(field.getModifiers());
                  if(isStatic) {
                      System.out.println(
          field.get(null).toString());
                  }

          posted @ 2011-11-23 17:06 leisure 閱讀(7100) | 評論 (0)編輯 收藏

          npm ERR! Error: socket hang up

          when i use npm to install express, it goes this message:

          npm info it worked if it ends with ok
          npm info using npm@1.0.106
          npm info using node@v0.6.2
          npm info addNamed [ 'express', '' ]
          npm ERR! Error: socket hang up
          npm ERR! at createHangUpError (http.js:1092:15)
          npm ERR! at CleartextStream. (http.js:1175:27)
          npm ERR! at CleartextStream.emit (events.js:88:20)
          npm ERR! at Array.0 (tls.js:731:22)
          npm ERR! at EventEmitter._tickCallback (node.js:192:40)
          npm ERR! Report this entire log at:
          npm ERR! http://github.com/isaacs/npm/issues
          npm ERR! or email it to:
          npm ERR! npm-@googlegroups.com
          npm ERR! 
          npm ERR! System Linux 3.0.0-12-generic
          npm ERR! command "node" "/usr/local/bin/npm" "install" 
          "express" "-d"
          npm ERR! cwd /home/leisure/software/node-v0.6.2
          npm ERR! node -v v0.6.2
          npm ERR! npm -v 1.0.106
          npm ERR! code ECONNRESET
          npm ERR! 
          npm ERR! Additional logging details can be found in:
          npm ERR! /home/leisure/software/node-v0.6.2/npm-
          debug.log
          npm 

          it sounds the https_proxy is broken.
          so try to use http registry to solve it:
          npm config set registry http://registry.npmjs.org/

          posted @ 2011-11-23 15:11 leisure 閱讀(3329) | 評論 (1)編輯 收藏

          MYSQL Error Code: 1093 You can't specify target table 'x' for update in FROM clause

          當(dāng)子查詢作為條件,執(zhí)行delete跟update操作時,會出現(xiàn):
          Error Code: 1093 You can't specify target table 'x' for update in FROM clause

          作一個簡單的示例:
          CREATE TABLE tbl_a(
          id 
          INT,
          NAME 
          VARCHAR(50)
          );

          INSERT INTO tbl_a VALUES(1'leisure');
          INSERT INTO tbl_a VALUES(2'leisure2');

          SELECT * FROM tbl_a;

          執(zhí)行更新操作
          UPDATE tbl_a 
              
          SET id = (
                  
          SELECT id FROM tbl_a 
                  
          WHERE NAME = 'leisure2'
              ) 
          WHERE NAME = 'leisure';

          這時,如愿見到我們標(biāo)題上的錯誤,解決方法如下(橙色字體系關(guān)鍵):
          UPDATE tbl_a 
              
          SET id = (
                  
          SELECT id FROM (
                      
          SELECT * FROM tbl_a WHERE NAME = 'leisure2'
                  ) xx
              )
          WHERE NAME = 'leisure';

          posted @ 2011-11-22 09:58 leisure 閱讀(3546) | 評論 (1)編輯 收藏

          解決IE下location.href丟失refer信息

          相信有很多朋友,用javascript做一些跳轉(zhuǎn)時,往往發(fā)現(xiàn)refer信息丟失了。為了解決該問題,在IE下,模擬一下點(diǎn)擊事件即可!

          function jumpTo (url) {
              var isIE 
          = !-[1,];
              if (isIE) {
                  var link 
          = document.createElement("a");
                  link.href 
          = url;
                  link.style.display 
          = 'none';
                  document.body.appendChild(link);
                  link.click();
              } 
          else {
                  window.location.href 
          = url;
              }
          }

          posted @ 2011-11-17 16:54 leisure 閱讀(1064) | 評論 (0)編輯 收藏

          nginx gzip 代理服務(wù)器沒效

          昨天新上線了一個新應(yīng)用。經(jīng)測試發(fā)現(xiàn),采用代理,沒有開啟到gzip壓縮。
          查了一下API,將gzip_proxied設(shè)為any即可。
          gzip_proxied系根據(jù)某些請求和應(yīng)答來決定是否在對代理請求的應(yīng)答啟用壓縮。

          posted @ 2011-11-16 14:53 leisure 閱讀(456) | 評論 (0)編輯 收藏

          utuntu登錄qq(qq2010協(xié)議)

          #add-apt-repository ppa:microcai/forchina
          #apt-get install libqq-pidgin
          如果安裝過程中提示E: Unable to locate package libqq-pidgin,請先更新一下庫:
          #apt-get update

          接著重新再安裝一次。安裝完后,在empathy中添加賬號,在高級處,記得把qq2008改成qq2010這個協(xié)議了!

          posted @ 2011-11-12 16:17 leisure 閱讀(399) | 評論 (0)編輯 收藏

          ubuntu開啟ssh服務(wù)

          ubuntu默認(rèn)情況下只安裝了openssh-client,沒有安裝openssh-server。
          #sudo apt-fast install openssh-server
          #/etc/init.d/ssh start
          #netstat -tlp
          顯示tcp 0 0 *:ssh *:* LISTEN即說明SSH啟動成功。

          posted @ 2011-11-06 12:54 leisure 閱讀(239) | 評論 (0)編輯 收藏

          ubuntu安裝五筆輸入法(ibus-table-wubi)

          IBus-Table是為基于碼表的輸入法即所謂的形碼開發(fā)的輸入法框架,常見的形碼有鄭碼、五筆、倉頡、二筆等。

          安裝如下:
          # apt-get install ibus-table-wubi

          開啟ibus輸入法,按操作提示即可。
          System - Preferences - Keyboard Input Methods

          開啟完后,回到剛才的配置選項(xiàng)
          Input Method - 選擇 Chinese - 五 Wubi86 - Add

          在文本框里,ctrl + space即可切換輸入法。

          默認(rèn)情況下,ibus-table不開啟直接上屏模式(即敲完四個碼,沒有重碼時,直接顯示到屏幕上),在五筆輸入法下 Ctrl + / 即可。

          開機(jī)自動啟動ibus
          System - Preferences - Startup Applications - Add
          Name: ibus daemon
          Command: /usr/bin/ibus-daemon -d
          Comment: start ibus daemon when gnome start

          posted @ 2011-11-06 12:31 leisure 閱讀(39816) | 評論 (2)編輯 收藏

          android瀏覽本地html

          android訪問本地html,有幾種方法。

          1,可以采用自帶的瀏覽器,地址欄鍵入content://com.android.htmlfileprovider/sdcard/index.html

          2,可以通過opera瀏覽器,地址欄輸入file://localhost/mnt/sdcard/index.html

          3,通過ireader直接打開瀏覽

          看html文檔的話,第一,二兩點(diǎn)完美,可以靈活縮放,瀏覽起來跟在線瀏覽沒區(qū)別,至于第三點(diǎn),不支持縮放,并且樣式也有點(diǎn)小問題。另外,第一點(diǎn)可以直接打開apk,而第二點(diǎn)需要先下載,根據(jù)提示打開。呵呵,這種情況適合刷了官方room并且沒有文件瀏覽器的情況下安裝軟件。

          posted @ 2011-11-05 20:17 leisure 閱讀(1146) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 新巴尔虎右旗| 泗水县| 肃南| 沁水县| 琼结县| 沾益县| 泽普县| 体育| 肇源县| 漳平市| 桐庐县| 尼勒克县| 澎湖县| 鲁山县| 蕲春县| 津南区| 峡江县| 荃湾区| 大名县| 出国| 河西区| 潮安县| 宜阳县| 包头市| 杭州市| 肇东市| 化州市| 江油市| 青冈县| 巫溪县| 贵德县| 阿拉善盟| 饶平县| 白朗县| 民勤县| 藁城市| 横山县| 绥阳县| 云霄县| 黔西| 洪江市|