leisure

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

          nginx gzip 代理服務器沒效

          昨天新上線了一個新應用。經測試發現,采用代理,沒有開啟到gzip壓縮。
          查了一下API,將gzip_proxied設為any即可。
          gzip_proxied系根據某些請求和應答來決定是否在對代理請求的應答啟用壓縮。

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

          utuntu登錄qq(qq2010協議)

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

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

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

          ubuntu開啟ssh服務

          ubuntu默認情況下只安裝了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 閱讀(244) | 評論 (0)編輯 收藏

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

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

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

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

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

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

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

          開機自動啟動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 閱讀(39830) | 評論 (2)編輯 收藏

          android瀏覽本地html

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

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

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

          3,通過ireader直接打開瀏覽

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

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

          resin下定義mime-mapping

          mime-mapping系web服務器提供給web站點管理員能夠將文件擴展名與媒體相關聯的方法。
          由于某種原因,有些請求到了/favicon.ico。chrome變了下載。
          resin的conf/app-default.xml
          <mime-mapping extension=".ico" mime-type="image/jpeg"/>

          posted @ 2011-11-03 15:47 leisure 閱讀(399) | 評論 (0)編輯 收藏

          SimpleDateFormat多線程并發下的不安全隱患

          最近偶然發現一些數據的日期有錯亂,而且時間出錯格式無規律,有些去了1970年了,有些月份錯了,有些號數變了,而日志上看并沒有異常信息!

          根據用戶反應,常出現在某個批量更新操作中,于是乎,也按照用戶描述的,線下操作了數遍,也沒有出現這種情況。

          有趣的是,就算在線上操作,也并不是一定會出現這種問題,只是偶然!

          我開始懷疑底層代碼問題了,因為那個操作,并沒有修改到日期相關的字段,為了證實這點,經過我一番的排查,
          問題終于定位在DateUtil.parse等方法上,parse方法調用了一個靜態的simpleDateFormat.parse方法,為什么?!為什么這個方法不穩定的?
          仔細閱讀了java.util.SimpleDateFormat的api,發現此信息:

          Synchronization

          Date formats are not synchronized. It is recommended to create separate format instances for each thread.
          If multiple threads access a format concurrently, it must be synchronized externally.


          很明顯simpledateformat并不是線程同步的,以致并發的時候不安全!為了證實這點于是乎寫了一個簡單的測試程序。

          package com.leisure;
          import java.text.ParseException;
          public class TestSimpleDateFormatThreadSafe extends Thread {
              @Override
              public void run() {
                  while(true) {
                      try {
                          this.join(2000);
                      } 
          catch (InterruptedException e1) {
                          e1.printStackTrace();
                      }
                      try {
                          System.out.println(DateUtil.parse(
          "2011-10-11 06:02:20"));
                      } 
          catch (ParseException e) {
                          e.printStackTrace();
                      }
                  }
              }

              public static void main(String[] args) {
                  for(int i = 0; i < 20; i++)
                      new TestSimpleDateFormatThreadSafe().start();
              }
          }

          package com.leisure;

          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.Date;

          public class DateUtil {
              
          private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

              
          public static Date parse(String str) throws ParseException {
                  
          return sdf.parse(str);
              }
          }

          輸出結果:

          Tue Oct 11 18:02:20 CST 2011

          Tue Oct 11 18:02:20 CST 2011

          Sun Oct 11 18:02:20 CST 1970

          Tue Oct 11 18:02:20 CST 2011

          Thu Jan 01 18:02:20 CST 1970

          Sat Dec 11 18:02:20 CST 2010

          Tue Oct 11 18:02:20 CST 2011

          Exception in thread "Thread-18" java.lang.NumberFormatException: multiple points

          at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)

          at java.lang.Double.parseDouble(Unknown Source)

          at java.text.DigitList.getDouble(Unknown Source)

          at java.text.DecimalFormat.parse(Unknown Source)

          at java.text.SimpleDateFormat.subParse(Unknown Source)

          at java.text.SimpleDateFormat.parse(Unknown Source)

          at java.text.DateFormat.parse(Unknown Source)

          at com.leisure.DateUtil.parse(DateUtil.java:12)

          at com.leisure.TestSimpleDateFormatThreadSafe.run(TestSimpleDateFormatThreadSafe.java:16)

          Fri Dec 23 19:02:20 CST 2011

          Fri Dec 23 18:02:20 CST 2011

          輸出結果很明顯了,跟線上數據出現的問題基本一致。不過按照這里看到的結果,有報錯,再仔細閱讀了應用的底層代碼,
          某個位置攔截了部份異常,沒有記錄也沒有向上拋出處理,到這里,我只想問一句:底層代碼誰寫的?

          posted @ 2011-10-15 00:22 leisure 閱讀(2881) | 評論 (0)編輯 收藏

          30個開發人員最常用的linux命令

          free 查看內存使用信息
          top 顯示cpu進程信息
          ps 顯示進程列表
          kill 殺死進程
          df 查看硬盤剩余空間
          crontab 系統定時任務
          passwd 密碼管理
          cal 查看日歷
          date 查看時間
          chmod 改變文件權限
          clear 屏幕顯示信息太多?清理一下
          cat/tail 查看文件
          sort 排序文本內容
          vi 編輯文件
          find 查找文件
          grep 查找文件中配匹配的信息
          cp  復制文件
          touch 創建文件
          mv 移動文件
          rm 移除文件
          ls 顯示目錄的文件列表
          mkdir 創建文件夾
          tar GNU 壓縮工具
          make GNU make 工具
          gzip zip壓縮工具
          ln/lndir 建立鏈接
          mount 掛載信息
          ftp ftp鏈接工具
          telnet telnet連接工具
          ssh ssh連接工具

          posted @ 2011-10-14 10:44 leisure 閱讀(296) | 評論 (0)編輯 收藏

          Internet Explorer 無法打開Internet 站點http://xxx.com 已終止操作


          Internet Explorer 無法打開Internet 站點http://xxx.com
          已終止操作
          確定
          在ie6或者ie7,會出現這種情況,原因絕大多數是在頁面尚未加載完就操作節點。

          解決方法:把初始化操作的腳本放到頁面底部,或把初始化操作的腳本放到window.onload函數中,如果是加載外部script,在script標簽中加入class="defer"屬性。
          注意:曾經嘗把初始化操作腳本放在setTimeout函數中,經長期測試,絕大多數時候可行,但在頁面數據比較多,刷新多次偶然也會出現!

          posted @ 2011-10-13 10:21 leisure 閱讀(687) | 評論 (0)編輯 收藏

          jstl創建map和對map賦值

          jstl本身是沒有語法技持創建對象的,不過我們可以使用jsp:useBean標簽來創建,然后使用c:set標簽來賦相
          應的值。
          <jsp:useBean id="map" class="java.util.HashMap" scope="request">
          <c:set target="${map}" property="a" value="b" />
          </jsp:useBean>
          ${map}
          另外c:remove可以移除相應的屬性。

          posted @ 2011-10-12 08:46 leisure 閱讀(1464) | 評論 (0)編輯 收藏

          僅列出標題
          共5頁: 上一頁 1 2 3 4 5 下一頁 
          主站蜘蛛池模板: 监利县| 巨野县| 鹰潭市| 武定县| 漾濞| 利津县| 靖远县| 新兴县| 吴堡县| 尚志市| 老河口市| SHOW| 微博| 九龙城区| 丽水市| 两当县| 天柱县| 渭南市| 渭源县| 富宁县| 雷州市| 兴国县| 清河县| 图片| 澄江县| 霍山县| 昭苏县| 罗平县| 吉安市| 区。| 天长市| 泽州县| 湘乡市| 收藏| 巢湖市| 衡东县| 芒康县| 和平区| 江都市| 当涂县| 柳州市|