隨筆-8  評論-0  文章-1  trackbacks-0
            2012年7月1日
          安裝broadcom網卡驅動 modprobe broadcom modprobe tg3 dhcpcd eth0
          posted @ 2012-07-01 14:44 巖石 閱讀(114) | 評論 (0)編輯 收藏
            2012年5月27日
          隔離級別

          • READ UNCOMMITTED隔離級別 讀取未提交內容 在這個級別下所有事物都能看到未提交的事務執行結果,容易引起臟讀
          • READ COMMITTED 讀取提交內容(mysql 非默認)只能讀取提交后的事務結果
          • REPEATABLE READ (Mysql 默認)可重復讀 保證在一個事務下的多個實例讀取到相同內容,可能會出現幻讀, mysql InnoDB 和 Falcon 引擎解決來幻讀問題
          • SERIALIZABLE 可串行化 最高的事物級別 對每個事務加鎖。強制事物排序

          1 隔離級別                       臟讀(Dirty Read)          不可重復讀(NonRepeatable Read)          幻讀(Phantom Read)
          2 讀未提交(Read uncommitted)     可能                         可能                                     可能
          3 讀已提交(Read committed)       不可能                       可能                                     可能
          4 可重復讀(Repeatable read)      不可能                       不可能                                   可能
          5 可串行化(Serializable )        不可能                       不可能                                   不可能

          MySQL 事務
          • Mysql 默認提交數據的 AUTOCOMMIT ON
          • InnoDB 行級別鎖 多版本并發控制,NDB Cluster Falcon 是事務型 MyISAM 是非事務的 表級別鎖,在混合事務的時候不能保證數據一致性
          • InnoDB 使用二相鎖定協議 一個事務在執行的時候會獲得鎖,在commit 或者rollback的時候釋放鎖,可以顯示制定鎖 例如 LOCK IN SHARE MODE ,FOR UPDATE

          查看 表的狀態
          show table status like '表名'

          MyISAM MySQL 默認的數據庫引擎 不支持事務和行級鎖

          表轉換
          alter table方式 alter table mytable engine = innoDB; 復制表

          打開MySql慢查詢日志
          修改my.conf
          #打開慢查詢
          log-slow-queries 
          = <file_name>
          #記錄查詢大于2秒的記錄, 默認是10秒
          long_query_time 
          = 2
          #記錄沒有使用索引的查詢
          log-queries-not-using-indexes
          #記錄運行較慢的管理命令
          log-slow-admin-statements
          • 取查看MySql 數據庫狀態 show status show processlist
          • FLUSH STATUS 刷新狀態
          • SQL_NO_CACHE MySql 不會緩存結果 例如 select sql_no_cache * from admin_user
          • show profile cpu for query 1 ; 查看用戶查詢CPU使用率
          選擇優化的數據類型
          • 更小通常更好,正確的存儲和表示數據的最小類型,更小的數據類型通常更快,更少的使用存儲空間 內存和CPU緩存
          • 簡單就好 越簡單的數據類型需要的CPU周期越少
          • 盡量避免NULL
          • 整數 數據類型包括 TINYINT(8) SMALLINT(16) MEDIUMINT(24) INT(32) BIGINT(64),所有類型都包含UNSIGNED熟悉 ,表示不允許為負數,并且正數上限提高一倍
          • 實數FLOAT(4) DOUBLE(8) 保存精確的小數 DECIMAL可以定義精度 比如DECIMAL(8,2)會在小數點前保留6位,后2位
          • 字符串類型p66
          posted @ 2012-05-27 21:14 巖石 閱讀(267) | 評論 (0)編輯 收藏
            2011年7月31日
          下載JDK tar包 解壓到/usr/lib/下

          比如 /usr/lib/jdk1.7.0

          編輯environment和profile
          sudo vim /etc/environment
           
          添加如下內容
          export JAVA_HOME=/usr/lib/jdk1.7.0
          export JRE_HOME
          =/usr/lib/jdk1.7.0/jre
          export CLASSPATH
          =$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

          sudo vim /etc/profile

          在umask 022前 添加如下內容
          export JAVA_HOME=/usr/lib/jdk1.7.0
          export JRE_HOME
          =/usr/lib/jdk1.7.0/jre
          export CLASSPATH
          =$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
          export PATH
          =$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin


          最后注銷系統

          安裝OPENVPN
          sudo apt-get install openvpn

          使用OPENVPN
          cd /etc/openvpn
          sudo openvpn 
          --config /etc/openvpn/xxxx.ovpn

          啟用SSH服務
          sudo apt-get install openssh-server openssh-client

          安裝PG
          sudo apt-get install postgresql

          sudo apt-get install pgadmin3

          posted @ 2011-07-31 19:59 巖石 閱讀(325) | 評論 (0)編輯 收藏
            2010年2月4日
          用的prototype
           1var DivMove = Class.create();
           2DivMove.prototype = {
           3    initialize : function(){},
           4    init : function(element) {
           5        this._element = element;
           6    }
          ,
           7    observer : function() {
           8        Event.observe(this._element, 'mousedown', this._mouseDown);
           9        Event.observe(this._element, 'mouseup', this._mouseUp);
          10    }
          ,
          11    _mouseDown : function(e) {
          12        var event = e || window.event;
          13        var offsetX = event.clientX - this.offsetLeft;
          14        var offsetY = event.clientY - this.offsetTop;
          15        Event.observe(this, 'mousemove', function(e) {
          16            var event = e || window.event;
          17            var st = Math.max(document.body.scrollTop,
          18                    document.documentElement.scrollTop);
          19            var sl = Math.max(document.body.scrollLeft,
          20                    document.documentElement.scrollLeft);
          21     
          22            Element.setStyle(this ,{
          23                left : event.clientX + sl - offsetX+'px',
          24                top : event.clientY + st - offsetY+'px',
          25                position : 'absolute'
          26            }
          );
          27        /*
          28         * this.style.position = 'absolute'; this.style.left = event.clientX +
          29         * sl - offsetX; this.style.top = event.clientY + st - offsetY;
          30         */

          31        }
          );
          32
          33    }
          ,
          34    _mouseUp : function(e) {
          35        Event.stopObserving(this,'mousemove',this.onMousemove);
          36    }

          37}
          ;
          38var move=new DivMove();
          39move.init($('selectItem'));
          40move.observer();
          41
          42var move2=new DivMove();
          43move2.init($('selectItem1'));
          44move2.observer();
          posted @ 2010-02-04 11:15 巖石 閱讀(137) | 評論 (0)編輯 收藏
            2010年2月2日
          package com.trgc.common.util;

          public class EscapeUnescape {
              
          public static String escape(String src) {
              
          int i;
              
          char j;
              StringBuffer tmp 
          = new StringBuffer();
              tmp.ensureCapacity(src.length() 
          * 6);
              
          for (i = 0; i < src.length(); i++{
                  j 
          = src.charAt(i);
                  
          if (Character.isDigit(j) || Character.isLowerCase(j)
                      
          || Character.isUpperCase(j))
                  tmp.append(j);
                  
          else if (j < 256{
                  tmp.append(
          "%");
                  
          if (j < 16)
                      tmp.append(
          "0");
                  tmp.append(Integer.toString(j, 
          16));
                  }
           else {
                  tmp.append(
          "%u");
                  tmp.append(Integer.toString(j, 
          16));
                  }

              }

              
          return tmp.toString();
              }


              
          public static String unescape(String src) {
              StringBuffer tmp 
          = new StringBuffer();
              tmp.ensureCapacity(src.length());
              
          int lastPos = 0, pos = 0;
              
          char ch;
              
          while (lastPos < src.length()) {
                  pos 
          = src.indexOf("%", lastPos);
                  
          if (pos == lastPos) {
                  
          if (src.charAt(pos + 1== 'u'{
                      ch 
          = (char) Integer.parseInt(src
                          .substring(pos 
          + 2, pos + 6), 16);
                      tmp.append(ch);
                      lastPos 
          = pos + 6;
                  }
           else {
                      ch 
          = (char) Integer.parseInt(src
                          .substring(pos 
          + 1, pos + 3), 16);
                      tmp.append(ch);
                      lastPos 
          = pos + 3;
                  }

                  }
           else {
                  
          if (pos == -1{
                      tmp.append(src.substring(lastPos));
                      lastPos 
          = src.length();
                  }
           else {
                      tmp.append(src.substring(lastPos, pos));
                      lastPos 
          = pos;
                  }

                  }

              }

              
          return tmp.toString();
              }


          }


          JQuery GB2312 JS頁面采用escape()編碼,然后使用上面的類解析出來
          posted @ 2010-02-02 10:37 巖石 閱讀(178) | 評論 (0)編輯 收藏
            2010年1月5日

          Eclipse的編輯功能非常強大,掌握了Eclipse快捷鍵功能,能夠大大提高開發效率。Eclipse中有如下一些和編輯相關的快捷鍵。
          1. 【ALT+/】
          此快捷鍵為用戶編輯的好幫手,能為用戶提供內容的輔助,不要為記不全方法和屬性名稱犯愁,當記不全類、方法和屬性的名字時,多體驗一下【ALT+/】快捷鍵帶來的好處吧。

          2. 【Ctrl+O】
          顯示類中方法和屬性的大綱,能快速定位類的方法和屬性,在查找Bug時非常有用。

          3. 【Ctrl+/】
          快速添加注釋,能為光標所在行或所選定行快速添加注釋或取消注釋,在調試的時候可能總會需要注釋一些東西或取消注釋,現在好了,不需要每行進行重復的注釋。

          4. 【Ctrl+D】
          刪除當前行,這也是筆者的最愛之一,不用為刪除一行而按那么多次的刪除鍵。

          5. 【Ctrl+M】
          窗口最大化和還原,用戶在窗口中進行操作時,總會覺得當前窗口?。ㄓ绕湓诰帉懘a時),現在好了,試試【Ctrl+M】快捷鍵。

          查看和定位快捷鍵

          在程序中,迅速定位代碼的位置,快速找到Bug的所在,是非常不容易的事,Eclipse提供了強大的查找功能,可以利用如下的快捷鍵幫助完成查找定位的工作。

          1. 【Ctrl+K】、【Ctrl++Shift+K】
          快速向下和向上查找選定的內容,從此不再需要用鼠標單擊查找對話框了。

          2. 【Ctrl+Shift+T】
          查找工作空間(Workspace)構建路徑中的可找到Java類文件,不要為找不到類而痛苦,而且可以使用“*”、“?”等通配符。

          3. 【Ctrl+Shift+R】
          和【Ctrl+Shift+T】對應,查找工作空間(Workspace)中的所有文件(包括Java文件),也可以使用通配符。

          4. 【Ctrl+Shift+G】
          查找類、方法和屬性的引用。這是一個非常實用的快捷鍵,例如要修改引用某個方法的代碼,可以通過【Ctrl+Shift+G】快捷鍵迅速定位所有引用此方法的位置。

          5. 【Ctrl+Shift+O】
          快速生成import,當從網上拷貝一段程序后,不知道如何import進所調用的類,試試【Ctrl+Shift+O】快捷鍵,一定會有驚喜。

          6. 【Ctrl+Shift+F】
          格式化代碼,書寫格式規范的代碼是每一個程序員的必修之課,當看見某段代碼極不順眼時,選定后按【Ctrl+Shift+F】快捷鍵可以格式化這段代碼,如果不選定代碼則默認格式化當前文件(Java文件)。

          7. 【ALT+Shift+W】
          查找當前文件所在項目中的路徑,可以快速定位瀏覽器視圖的位置,如果想查找某個文件所在的包時,此快捷鍵非常有用(特別在比較大的項目中)。

          8. 【Ctrl+L】
          定位到當前編輯器的某一行,對非Java文件也有效。

          9. 【Alt+←】、【Alt+→】
          后退歷史記錄和前進歷史記錄,在跟蹤代碼時非常有用,用戶可能查找了幾個有關聯的地方,但可能記不清楚了,可以通過這兩個快捷鍵定位查找的順序。

          10. 【F3】
          快速定位光標位置的某個類、方法和屬性。

          11. 【F4】
          顯示類的繼承關系,并打開類繼承視圖。

          調試快捷鍵

          Eclipse中有如下一些和運行調試相關的快捷鍵。

          1. 【Ctrl+Shift+B】:在當前行設置斷點或取消設置的斷點。
          2. 【F11】:調試最后一次執行的程序。
          3. 【Ctrl+F11】:運行最后一次執行的程序。
          4. 【F5】:跟蹤到方法中,當程序執行到某方法時,可以按【F5】鍵跟蹤到方法中。
          5. 【F6】:單步執行程序。
          6. 【F7】:執行完方法,返回到調用此方法的后一條語句。
          7. 【F8】:繼續執行,到下一個斷點或程序結束。

          常用編輯器快捷鍵

          通常文本編輯器都提供了一些和編輯相關的快捷鍵,在Eclipse中也可以通過這些快捷鍵進行文本編輯。
          1. 【Ctrl+C】:復制。
          2. 【Ctrl+X】:剪切。
          3. 【Ctrl+V】:粘貼。
          4. 【Ctrl+S】:保存文件。
          5. 【Ctrl+Z】:撤銷。
          6. 【Ctrl+Y】:重復。
          7. 【Ctrl+F】:查找。

          其他快捷鍵

          Eclipse中還有很多快捷鍵,無法一一列舉,用戶可以通過幫助文檔找到它們的使用方式,另外還有幾個常用的快捷鍵如下。
          1. 【Ctrl+F6】:切換到下一個編輯器。
          2. 【Ctrl+Shift+F6】:切換到上一個編輯器。
          3. 【Ctrl+F7】:切換到下一個視圖。
          4. 【Ctrl+Shift+F7】:切換到上一個視圖。
          5. 【Ctrl+F8】:切換到下一個透視圖。
          6. 【Ctrl+Shift+F8】:切換到上一個透視圖。

           

          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zwhfyy/archive/2009/03/30/4035390.aspx

          posted @ 2010-01-05 15:25 巖石 閱讀(175) | 評論 (0)編輯 收藏
            2009年12月29日
          Fast Fox

          http://www.oixx.se/fastfox/

          ECLIPSE的鼠標手

          Regex Util

          http://regex-util.sourceforge.net/update/

          正則表達式

          findbugs

          http://findbugs.cs.umd.edu/eclipse

          找BUG的

          Groovy
          http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.1+New+and+Noteworthy
          posted @ 2009-12-29 10:07 巖石 閱讀(137) | 評論 (0)編輯 收藏
            2009年12月21日
               摘要: 最近項目用上了條件查詢,參考了Hibernate文檔,整理出一份筆記 創建條件查詢實例 1Criteria criteria = session.createCriteria(User.class); 限制結果集 org.hibernate.criterion.Restrictions類 定義獲得某些內置Criterion類型的工廠方法 cr...  閱讀全文
          posted @ 2009-12-21 23:13 巖石 閱讀(482) | 評論 (0)編輯 收藏
          僅列出標題  
          主站蜘蛛池模板: 科技| 西乌珠穆沁旗| 湖北省| 察隅县| 靖安县| 藁城市| 莱阳市| 古蔺县| 会宁县| 南陵县| 嘉鱼县| 马龙县| 灵山县| 普洱| 曲水县| 岳池县| 翁源县| 西华县| 江西省| 牙克石市| 满洲里市| 永靖县| 政和县| 宁安市| 桃园县| 老河口市| 襄汾县| 高州市| 庄浪县| 黄冈市| 辛集市| 上虞市| 泸水县| 西吉县| 察隅县| 都兰县| 和林格尔县| 莆田市| 漳州市| 舞钢市| 安溪县|