随笔-8  评论-0  文章-1  trackbacks-0
  2012年7月1日
安装broadcom网卡驱动 modprobe broadcom modprobe tg3 dhcpcd eth0
posted @ 2012-07-01 14:44 岩石 阅读(103) | 评论 (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 岩石 阅读(243) | 评论 (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 岩石 阅读(282) | 评论 (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 岩石 阅读(119) | 评论 (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 岩石 阅读(146) | 评论 (0)编辑 收藏
  2010年1月5日

Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。
1. 【ALT+/】
此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。

2. 【Ctrl+O】
显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。

3. 【Ctrl+/】
快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的时候可能总会需要注释一些东西或取消注释,现在好了,不需要每行进行重复的注释。

4. 【Ctrl+D】
删除当前行,这也是笔者的最爱之一,不用为删除一行而按那么多次的删除键。

5. 【Ctrl+M】
窗口最大化和还原,用户在窗口中进行操作时,总会觉得当前窗口小(尤其在编写代码时),现在好了,试试【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 岩石 阅读(153) | 评论 (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 岩石 阅读(117) | 评论 (0)编辑 收藏
  2009年12月21日
     摘要: 最近项目用上了条件查询,参考了Hibernate文档,整理出一份笔记 创建条件查询实例 1Criteria criteria = session.createCriteria(User.class); 限制结果集 org.hibernate.criterion.Restrictions类 定义获得某些内置Criterion类型的工厂方法 cr...  阅读全文
posted @ 2009-12-21 23:13 岩石 阅读(457) | 评论 (0)编辑 收藏
仅列出标题