其實一直想學ruby,總是拖拖拉拉推了幾年。
很多ruby的教材要么老厚一本
要么是東一榔頭西一斧頭,邏輯性不清楚
ruby語法還沒說清楚就上rails了
這個教材挺好。
今天才發現argument 是實參,parameter是形參
小新看到媽媽用訂書機訂了一個盒子,他就從打印機上面拿了幾張a4紙,釘了一個像盒子的東西,當作他的百寶箱,把他的一些零零碎碎的東西放到他的百寶箱中。 有一天他看到了媽媽的首飾盒,他覺得很漂亮,就和媽媽說:媽媽,我把你這個盒子里面的東西放到我的那個百寶箱里面,你這個盒子給我當百寶箱吧。 媽媽當然不同意。小新很希望要個百寶箱,爸爸就問他:“你需要一個多大的百寶箱?” 小新比劃了一個大小,他希望大一點,能裝很多東西。爸爸問他是不是希望箱子能有很多分隔? 小新說不要分隔,但是百寶箱要有鎖。 爸爸明白了---你就是要個能鎖住的箱子嘛,我給你找個皮箱,帶密碼鎖的。 第二天,爸爸上班回來,發現他平時用的筆記本電腦被小新鎖在他的"新百寶箱"----密碼鎖皮箱里面了,密碼是小新設的。 爸爸不知道密碼,打不開皮箱,爸爸就和小新說:"幫爸爸把電腦拿出來,爸爸要給你查一個睡覺前講的故事,不然今天就沒故事聽了"。 小新說:“你用手機也可以查的嘛,別以為我不知道”
1 解析utf-8的中文字符問題,我修改了 ReportTask類里面的一個方法,增加了一個getJava().setVmArgs("-Dfile.encoding=utf-8")
2.覆蓋率出不了數據 一方面注意制定datafile,把cubertura-instrument和cobertura-report的datafile設置為一個,另外junit里面也要設置一個系統屬性,制定cubertura的datafile屬性. 不制定datafile時,可能生成文件在當前運行ant的目錄.但是我們ant任務中的junit測試任務,可能會使用不同的目錄來作工作路徑.這樣會導致datafile不一致.
另外一個是要記得將javac 任務的debug="yes" ,因為只有debug =yes時,編譯的代碼才帶有行信息,能顯示覆蓋. 當然常見的問題是junit的classpath中的instrument class目錄放到原來被測class之前.
測試環境redhat5.5:
vmware建兩臺虛擬機(btw,似乎雙核系統只能建倆,3個就死掉了)
192.168.229.129
192.168.229.130
下載2011年12月15日的最新zookeeper
加壓到
/opt/zookeeper-3.4.0/
配置/opt/zookeeper-3.4.0/conf/zoo.cfg
可以把那個例子考過來
- # The number of milliseconds of each tick
- tickTime=2000
- # The number of ticks that the initial
- # synchronization phase can take
- initLimit=10
- # The number of ticks that can pass between
- # sending a request and getting an acknowledgement
- syncLimit=5
- # the directory where the snapshot is stored.
- # do not use /tmp for storage, /tmp here is just
- # example sakes.
- dataDir=/opt/zookeeper-3.4.0/data/zookeeper
- dataLogDir=/opt/zookeeper-3.4.0/data/log
- # the port at which the clients will connect
- clientPort=2181
- #
- # Be sure to read the maintenance section of the
- # administrator guide before turning on autopurge.
- #
- # http:
- #
- # The number of snapshots to retain in dataDir
- #autopurge.snapRetainCount=3
- # Purge task interval in hours
- # Set to "0" to disable auto purge feature
- #autopurge.purgeInterval=1
- server.1=192.168.229.129:2888:3888
- server.2=192.168.229.130:2888:3888
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/zookeeper-3.4.0/data/zookeeper
dataLogDir=/opt/zookeeper-3.4.0/data/log
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=192.168.229.129:2888:3888
server.2=192.168.229.130:2888:3888
修改/opt/zookeeper-3.4.0/bin/zkServer.sh
- status)
- # -q is necessary on some versions of linux where nc returns too quickly, and no stat result is output
- #STAT=`echo stat | nc -q 1 localhost $(grep "^[[:space:]]*clientPort" "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
- STAT=`echo stat | nc localhost $(grep "^[[:space:]]*clientPort" "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
status)
# -q is necessary on some versions of linux where nc returns too quickly, and no stat result is output
#STAT=`echo stat | nc -q 1 localhost $(grep "^[[:space:]]*clientPort" "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
STAT=`echo stat | nc localhost $(grep "^[[:space:]]*clientPort" "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
以上這些多臺機器一樣
log和data都在dataDir下面
如果找不到log了用大招:
ps -ef|grep zookeeper
ls -l /proc/123123/fd
其中有一個是log
然后dataDir建立一個文件myid
在192.168.229.129上
echo 1 >/opt/zookeeper-3.4.0/data/zookeeper/myid
在192.168.229.130上
echo 2 >/opt/zookeeper-3.4.0/data/zookeeper/myid
對應zoo.cfg里面的
注意一定是數字 然后zkServer.sh start
啟動
zkServer.sh status
看狀態
echo ruok|nc localhost 2181
//are you ok?
echo dump|nc localhost 2181
echo stat|nc localhost 2181
echo srst|nc localhost 2181
zkServer.sh stop