<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 175  文章 - 202  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    第一個Blog,記錄哈哈的生活

    常用鏈接

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    Java links

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    因?yàn)樾枰趦膳_機(jī)器上同步一些數(shù)據(jù),在網(wǎng)上找了一下,發(fā)現(xiàn) cwRsync 是可以的。嘗試了一下

    1、安裝
    安裝的過程很簡單,也很順利,從 cwRsync 網(wǎng)站上下載的 server and client ,都安裝了一下,不過后來發(fā)現(xiàn),其實(shí)是不需要安裝 client 的,只要 server 就可以了,server 包括了 client 的功能。安裝完 server 后,會在 service 中增加 Rsync 和 ssh 服務(wù)。

    2、配置
    配置了一下 rsyncd.conf

    use chroot = false
    strict modes = false
    hosts allow = *
    log file = rsyncd.log
    pid file = rsyncd.pid

    # Module definitions
    # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
    #
    [test]
    path = /cygdrive/c/work
    read only = false
    transfer logging = yes

    只是將 [test] 中的 path 改成了我本機(jī)的備份目錄

    [test]
    path = /cygdrive/d/backup
    read only = false
    transfer logging = yes

    3、數(shù)據(jù)同步
    因?yàn)橹皇亲詈唵蔚臄?shù)據(jù)同步,所以就不使用 ssh 了,直接啟動 rsync 服務(wù)就可以了。然后按照 usage 上面教的。

    rsync -av /cygdrive/d/test localhost::test

    完成了數(shù)據(jù)的同步工作,一切順利。順便說一下,/cygdrive/d 是安裝完 cwRsync ,會自動將系統(tǒng)上所有的盤 mount 成 /cygdrive/x ,x 表示盤符,小寫的,并把安裝目錄 mount 成 / 了。

    4、綠色安裝
    我將 cwRsync copy 到另一臺機(jī)器上,試圖不安裝就啟動 cwRsync server,啟動過程比較正常,只要運(yùn)行 rsync --config=$config_file --daemon --no-detach 就可以了,這里面的 $config_file 指的是前面配置的 rsyncd.conf ,路徑要寫成 /cygdrive/d 這樣的形式。

    5、安裝成服務(wù)
    程序包中帶了 cygwin 的 cygrunsrv ,可以通過這個命令將 rsync server 做成 windows 服務(wù),但我試了一下,路徑中有空格沒有成功,命令是這樣的

    cygrunsrv.exe -I "Rsync" -p /cygdrive/d/cwRsyncServer/bin/rsync.exe -a "--config=/cygdrive/d/cwRsyncServer/rsyncd.conf --daemon --no-detach" -f "Rsync"

    也很順利的安裝成服務(wù)了。

    6、問題二
    慘的是當(dāng)我在第二臺機(jī)器上同步數(shù)據(jù)的時候,權(quán)限卻成了問題,同步過去的文件(目錄)所有者是 SYSTEM,不是我,而且我沒有訪問的權(quán)限,只有在安全中把自己加進(jìn)來(我用管理員帳戶),給自己權(quán)限,才能訪問。

    或者在 cygwin 下使用 chmod 給自己授權(quán),和在 windows 中給自己授權(quán)沒什么區(qū)別。

    最后:

    問題2已經(jīng)解決
    方法:只要把 cwRsyncServer 這個目錄 mount 到 / ,就可以了,估計(jì)是 rsync 同步數(shù)據(jù)的時候,會調(diào)用 /bin/chmod 來授權(quán),如果是安裝版的,這個目錄會在安裝的時候 mount 好。 (好象不是這個問題了)
    posted @ 2007-05-20 14:36 哈哈的日子 閱讀(13881) | 評論 (2)編輯 收藏

    PMD 在 check 的時候,告訴我不要使用 new Interger(int i) 方法,要使用 Integer.valueOf(int i) 方法,如我所料,Integer 將-128~127 之間的 Interger cache 了,好啊,就用這個方法了。

    后來悲慘的發(fā)現(xiàn),JDK 5.0 才有這個方法 1.4 中是沒有的。

    苦在我開發(fā)的時候使用的是 JDK 5.0 ,部署在 1.4 的環(huán)境中,運(yùn)行出錯。

    sigh,不小心被 PMD 撞了一下,它怎么也不告訴我不能用在 1.4 里啊。^_^

    posted @ 2007-05-16 10:41 哈哈的日子 閱讀(274) | 評論 (0)編輯 收藏

    今天安裝了一下 jira 的 svn acceptance,遇到了不少問題,實(shí)際上這些問題在之前學(xué)習(xí) subversion hooks 的時候也有遇到,沒記下,又弄一次,真是心煩得很。

    1、hooks 中不能使用任何環(huán)境變量,svn acceptance 使用的是 pre-commit ,里面調(diào)用 python 的腳本。python 要寫絕對路徑,腳本 jira-client.py 也要寫絕對路徑,將 python 放在 path 中是沒有用的。(這個在 svn acceptance 安裝步驟中有,沒有細(xì)看就安裝,苦啊!)
    2、pre-commit.bat 中路徑或者使用老 DOS 的方式,如 @D:\Progra~1\Python25\python.exe" E:\SVN\repos\hooks\jira-client.py %1 %2。或者加上雙引號,如@"D:\Program Files\Python25\python.exe" E:\SVN\repos\hooks\jira-client.py %1 %2
    3、jira-client.py 中的路徑也一樣,或者使用 DOS,如 svnlookPath = 'D:\\Progra~1\\svn-win32-1.4.3\\bin\\svnlook.exe'。或者加上雙引號,如svnlookPath = '"D:\\Program Files\\svn-win32-1.4.3\\bin\\svnlook.exe"'
    4、hooks 中 exit 1 就是拒絕提交,exit 0 或什么都不寫就是允許提交(windows 2000 中好象必須要 exit 0)
    5、提交顯示的錯誤信息在腳本中放在 system err 中,bat 文件只要 echo "haha" >&2 就可以了,python 中 print >> sys.stderr, 'haha' 就可以了
    6、用戶信息是通過 svnlook author 得到,注釋信息是通過 svnlook log 得到

    ps:subversion acceptance plugins 安裝容易得很

    posted @ 2007-05-14 11:14 哈哈的日子 閱讀(1386) | 評論 (0)編輯 收藏
    奇怪為什么 fisheye 一直都找不到 crack?難道是我尋找 crack 的水平有限?
    崩潰了,自己弄了一個,再這么下去,都要成憤青了。

    fisheye-1.3_20070424_crack.rar


    copy 到 fisheye 安裝目錄,針對 fisheye 1.3 build 20070424 版本
    posted @ 2007-05-13 22:53 哈哈的日子 閱讀(2149) | 評論 (17)編輯 收藏
    當(dāng)數(shù)據(jù)庫字段類型為 Number 時,IBatis 可以映射 Java 類型為 Integer,這樣就一切沒問題了。
    不過這樣比較麻煩,尤其是在使用 JDK 1.4 的時候。

    如果選擇映射為 int 類型,在數(shù)據(jù)庫字段可以為 null 的情況下,需要設(shè)置 result 的 nullValue ,否則會出錯。
    posted @ 2007-04-30 16:17 哈哈的日子 閱讀(2041) | 評論 (0)編輯 收藏
    6.0 的 crack 不能用了,就自己弄了一個 7.0 的 crack ,如果有什么問題,給我留言。
    http://www.tkk7.com/Files/haha1903/jp7.0-crack-20070530.rar
    crack by Sea Chang
    posted @ 2007-04-13 15:35 哈哈的日子 閱讀(4622) | 評論 (21)編輯 收藏
    教你如何注冊msn.com的 郵箱


      在很久很久以前,我們注冊的時候,可以選擇注冊hotmail.com還是msn.com的信箱。而現(xiàn)在微軟把注冊頁面改掉了,進(jìn)入hotmail.com只能注冊以hotmail.com結(jié)尾的信箱了,而msn.com則找不到北了。而很多很多人還是很想注一個msn.com的,好記嘛,這么短小精悍。

      說了半天,到底怎么注冊呢?簡單!

      點(diǎn)這個鏈接https://accountservices.passport.net/reg.srf?ns=msn.com
    就可以注冊msn.com的信箱啦,哈哈哈~~~

      當(dāng)然,如果你的電腦上裝有msn browser的話,那用那個創(chuàng)建用戶,就默認(rèn)是msn.com的用戶啦,不過好像那個玩兒在國內(nèi)用的不多好像,我是兩三年前用過的。



    (提示:您必須在沒用登陸 spaces或者 MSN hotmail油箱的前提下才可以申請 )

    轉(zhuǎn)自:http://my.opera.com/hotel/blog/show.dml/112387
    posted @ 2007-04-11 20:13 哈哈的日子 閱讀(9811) | 評論 (16)編輯 收藏
    設(shè)置 Header Content-disposition 可以
    如果設(shè)置為 attachment 就下載
    如果設(shè)置為 inline 就直接打開

    response.setContentType("application/msexcel");
    加上
    response.setHeader("Content-disposition", "attachment; filename=\"export.xls\"");

    response.setHeader("Content-disposition", "inline; filename=\"export.xls\"");
    posted @ 2007-02-06 16:47 哈哈的日子 閱讀(1242) | 評論 (2)編輯 收藏
    背景:
    EasyMock 2 版本必須要 JDK5 才能使用 EasyMock 1.2 可以在 JDK 1.4 使用
    也可以使用 Retrotranslator 將 EasyMock 2 版本改為 JDK 1.4 也可以使用的。
    目前使用的是 EasyMock 2.2

    準(zhǔn)備:
    先弄個接口 Haha 用來 Mock 的,兩個方法
    void haha(String s);
    String hehe(String s);

    開始 Mock:

    靜態(tài)導(dǎo)入 EasyMock
    import static org.easymock.EasyMock.*;

    然后
    Haha haha=createMock(Haha.class);

    無返回值的調(diào)用可以直接調(diào)用 Mock 方法

    haha.haha("haha");

    有返回值的可以

    expect(haha.hehe("hehe")).andReturn("ok");

    這樣做完后

    你要 replay(haha); 一下,表示錄完 mock ,準(zhǔn)備重放了。

    就可以調(diào)用 haha.haha("haha") 了,同樣的,調(diào)用 haha.hehe("hehe") 的返回值是 "ok"

    全部調(diào)用完了,使用 verify(haha); 查看一下預(yù)期的調(diào)用是不是都調(diào)了,如果預(yù)期要調(diào)用一次,卻沒調(diào),那就會 AssertionError 哦。

    調(diào)用次數(shù)

    上面這些都是默認(rèn)調(diào)用一次,就相當(dāng)于 expect(haha.hehe("hehe")).andReturn("ok").times(1); 或 expect(haha.hehe("hehe")).andReturn("ok").once();

    如果想調(diào)用任意次,就 expect(haha.hehe("hehe")).andReturn("ok").anyTimes();

    如果想最少調(diào)用一次,就 expect(haha.hehe("hehe")).andReturn("ok").atLeastOnce();

    如果想調(diào)用 1 至 3?次,就 expect(haha.hehe("hehe")).andReturn("ok").times(1,3);

    預(yù)期的結(jié)果

    還可以 expect(haha.hehe("hehe")).andReturn("ok").andReturn("ok too").andThrow(new RuntimeException());

    這樣,第一次調(diào)用 haha.hehe("hehe") 時返回 "ok" ,第二次返回 "ok too",第三次調(diào)用就比較慘了,會拋出一個 RuntimeException,需要注意
    的是,如果拋出的異常是 unchecked 的,就是 Runtime 的,就隨便拋,如果是 checked 的,那就一定要拋這個方法定義的,否則會在 andThrow 這行出 IllegalArgumentException 。

    終極解決辦法還可以使用 andAnswer(IAnswer<T> answer)?傳一個實(shí)現(xiàn) IAnswer 接口的實(shí)例,這個接口只有一個方法
    T answer() throws Throwable;
    隨便你返回什么,或是拋出什么異常。

    調(diào)用順序

    不過如上面所說,haha.haha("haha") 與 haha.hehe("hehe") 是沒有順序的,將 createMock 改成 createStrictMock 或在 createMock 后面加一行 checkOrder(haha,true) 就可以了,這時,就一定要按照定義的順序來調(diào)用了。

    如果多個不同的 mock 也要保證順序呢?那就不能使用 createMock 來創(chuàng)建這些 mock 了,因?yàn)槊看?createMock 都會使用一個新的 IMocksControl 實(shí)例來單獨(dú)控制這個 mock ,我們希望將多個 mock 用同一個 IMocksControl 控制,只需要

    IMocksControl ctrl = createStrictControl();
    Haha?haha1= ctrl.createMock(Haha?.class);
    Haha?haha2 = ctrl.createMock(Haha?.class);

    haha1.haha("haha1");
    haha2.haha("haha2");

    ctrl.replay();

    就可以了

    預(yù)期的參數(shù)

    剛才 haha.haha("haha") 中的 "haha" 就是預(yù)期的參數(shù),EasyMock 提供了很多預(yù)期參數(shù)的方法,比如 haha.haha(eq("haha")),與前面的方法功能完全一樣
    haha.haha((String)anyObject) ?隨便你傳什么參數(shù)都沒問題。
    haha.haha(not(eq("haha"))) 這個只要不傳 haha ,其它什么都成

    同樣可以自定義,只要調(diào)用 ??? public static void reportMatcher(IArgumentMatcher matcher) 方法,將自定義的 IArgumentMatcher? 傳進(jìn)去就可以了,這個接口有兩個方法 boolean matches(Object argument)??和 void appendTo(StringBuffer buffer) 第一個方法的參數(shù)是調(diào)用實(shí)際傳入的值,返回是否匹配,第二個方法是錯誤時向 buffer 中 append 錯誤信息。

    將方法弄成 Stub

    Stub 方法,我想應(yīng)該就是隨便調(diào),愛怎么調(diào)就怎么調(diào),返回的都是那個值,最后也不會驗(yàn)證到底調(diào)用了多少次。
    如果想把一個方法弄成 Stub,無返回值的只要 asStub() 就是 expect(haha.haha("haha")).asStub() ,有返回值的就 andStubReturn() , andStubAnswer() 這樣就可以了。

    友好的Mock

    我們使用 createMock 創(chuàng)建出來的 mock 對象,如果沒有錄過,調(diào)用這個方法都會出 AssertionError ,但如果使用 createNiceMock 就不會了,會返回 0 , null , false 這樣的。
    posted @ 2007-01-18 23:03 哈哈的日子 閱讀(3072) | 評論 (5)編輯 收藏
    RandomAccessFile?file? = ? new ?RandomAccessFile(lockFile,? " rw " );
    FileChannel?channel?
    = ?file.getChannel();
    FileLock?tryLock?
    = ?channel.tryLock();
    System.out.println(
    " try?lock?ok? " ? + ?tryLock);

    ?

    posted @ 2007-01-17 09:34 哈哈的日子 閱讀(402) | 評論 (0)編輯 收藏
    僅列出標(biāo)題
    共17頁: First 上一頁 9 10 11 12 13 14 15 16 17 下一頁 
    主站蜘蛛池模板: 亚洲av无码成人精品区一本二本 | 中文字幕免费视频| 亚洲精品国产肉丝袜久久| 99久久久国产精品免费无卡顿| 亚洲成a人片在线观看天堂无码| 亚洲国产一区明星换脸| 99免费观看视频| 久久精品熟女亚洲av麻豆 | 亚洲风情亚Aⅴ在线发布| 国产91精品一区二区麻豆亚洲| 91人成网站色www免费下载| 色窝窝亚洲av网| 亚洲专区在线视频| 国产性生交xxxxx免费| 国产午夜不卡AV免费| 亚洲精品国产suv一区88| 亚洲春色在线视频| 永久黄网站色视频免费直播| 久久这里只精品国产免费10| 亚洲成av人片在www鸭子| 亚洲国产综合专区电影在线| 国产成人免费高清在线观看| 免费无码又爽又刺激高潮视频| 国产精品亚洲五月天高清| 亚洲特级aaaaaa毛片| 亚洲乱码无码永久不卡在线 | 亚洲免费闲人蜜桃| CAOPORN国产精品免费视频| 亚洲熟妇AV乱码在线观看| 亚洲国产精品自在在线观看| 亚洲国产成人久久一区WWW| 毛片a级三毛片免费播放| 一区二区三区四区免费视频 | 亚洲熟女精品中文字幕| 亚洲AV第一页国产精品| 亚洲福利精品电影在线观看| 免费av欧美国产在钱| 69式互添免费视频| 亚洲午夜免费视频| 99在线免费视频| 四虎影视久久久免费观看|