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

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

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

    Jarod@termainal$ tail * >> blog

    A Developer's Notebook

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      24 Posts :: 9 Stories :: 12 Comments :: 0 Trackbacks

    2008年5月2日 #

    最近公司網(wǎng)站的squid離奇crash,用下面命令啟動(dòng)squid:
    squid --9
    -N: 用非守護(hù)進(jìn)程方式運(yùn)行
    -d 9: 9級(jí)輸出信息(最詳細(xì))

    最后看到錯(cuò)誤信息并且squid馬上crash:
    "File size limit exceeded (core dumped)"

    同事說(shuō)可能是log文件太大,后來(lái)google到一郵件列表的信息確認(rèn)了的確是,是log文件中的store.log超過(guò)2G時(shí)就會(huì)報(bào)這個(gè)錯(cuò)誤。

    解決方法:
    在squid.conf中查找"TAG: cache_store_log",在其下插入一行
    cache_store_log none
    即可把store log關(guān)掉



    posted @ 2008-05-02 20:25 Jarod 閱讀(922) | 評(píng)論 (0)編輯 收藏

    2008年3月25日 #

    硬件:
    機(jī)器上有一塊硬盤(pán)通過(guò)ide連接,兩塊通過(guò)sata連接,hda是用來(lái)安裝系統(tǒng)的,sda和sdb組raid1。
    hda: 160G
    sda:160G
    sdb:160G

    軟件:
    linux下用mdadm管理軟陣列設(shè)備,詳見(jiàn)http://www.linuxmanpages.com/man8/mdadm.8.php

    經(jīng)過(guò)以下操作,既可搭建完成:

    創(chuàng)建md設(shè)備
    mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

    查看設(shè)備狀態(tài)
    cat /proc/mdstat
    正常的話輸出類似:
    Personalities : [raid1] 
    md0 
    : active raid1 sdb[1] sda[0]
          
    156290816 blocks [2/2] [UU]
          [
    =>.]  resync =  9.9% (15526336/156290816) finish=74.9min speed=31293K/sec

    格式化陣列(ext3):
    mkfs.ext3 /dev/md0

    創(chuàng)建掛載點(diǎn):
    mkdir /data

    在/etc/fstab中加入:
    /dev/md0 /data ext3 defaults 0 0

    使掛載馬上生效:
    mount /data


    posted @ 2008-03-25 10:24 Jarod 閱讀(1115) | 評(píng)論 (1)編輯 收藏

    2008年2月15日 #

    import java.util.HashMap;

    import net.sf.json.JSONObject;
    import net.sf.json.JsonConfig;
    import net.sf.json.processors.JsDateJsonBeanProcessor;

    /**
     * 
    @author jarod
     *
     
    */
    public class JsonDate {

        
    public static void main(String[] args) {
            
    // json-lib默認(rèn)不支持java.sql.Date的序列化,要序列化自己的類,實(shí)現(xiàn)一個(gè)BeanProcessor處理即可
            JsDateJsonBeanProcessor beanProcessor = new JsDateJsonBeanProcessor();
            java.sql.Date d 
    = new java.sql.Date(System.currentTimeMillis());

            
    // 直接序列化
            JsonConfig config = new JsonConfig();
            JSONObject json 
    = beanProcessor.processBean(d, config);
            System.out.println(json.toString());

            
    // 序列化含java.sql.Date作為屬性值的bean
            HashMap m = new HashMap();
            m.put(
    "date", d);
            config.registerJsonBeanProcessor(java.sql.Date.
    class, beanProcessor);
            json 
    = JSONObject.fromObject(m, config);
            System.out.println(json.toString());
        }
    }
    posted @ 2008-02-15 10:11 Jarod 閱讀(4160) | 評(píng)論 (4)編輯 收藏

    2008年1月14日 #

    詞庫(kù)用起來(lái)比SCIM自帶的五筆爽好多,而且有調(diào)頻功能。
    使用方法見(jiàn):
    http://forum.ubuntu.org.cn/viewtopic.php?t=99877



    posted @ 2008-01-14 15:14 Jarod 閱讀(484) | 評(píng)論 (0)編輯 收藏

    剛學(xué)一新招:用C-x C-f打開(kāi)文件時(shí)用//或~/可屏蔽此符號(hào)前的路徑,省去刪除當(dāng)前路徑的麻煩
    如我的C-x C-f默認(rèn)是指向~/的,此時(shí)想打開(kāi)/etc/apt/fstab文件,輸入~//etc/apt/fstab即可
    如果當(dāng)前路徑為/var/,打開(kāi)自己home目錄下的aa.txt文件,輸入/var/~/aa.txt



    posted @ 2008-01-14 11:34 Jarod 閱讀(694) | 評(píng)論 (0)編輯 收藏

    2008年1月13日 #

    最近在家上網(wǎng)經(jīng)常打開(kāi)網(wǎng)頁(yè)白屏,一開(kāi)始也不在意,后來(lái)覺(jué)得實(shí)在太煩了,查了查是怎么回事,在firefox中的error console中看到錯(cuò)誤信息
    Error: window.frames[0] is undefined
    Source File: http://訪問(wèn)的網(wǎng)址/
    Line: XX
    雙擊打開(kāi),顯示了頁(yè)面代碼:
    <html>
    <head>
    </head>
    <iframe src="about:blank" width="0" height="0" frameborder="0" style="display:none"></iframe>
    <script language="javascript">
    window.frames[
    0].location = "http://121.32.136.231/update/step1.aspx?p=" +
    "gzDSLXXXXXXXX|" +
    Math.floor((
    new Date()).getTime()/1000+ "|" + 
    navigator.appMinorVersion 
    + "|" +
    screen.availHeight 
    + "|" +
    screen.availWidth 
    + "|" +
    screen.colorDepth 
    + "|" +
    screen.height 
    + "|" +
    screen.width;
    </script>
    </body>
    </html>

    剛看到時(shí)心理一驚,該不會(huì)是在ubuntu+firefox也中病毒了吧。。。
    google了一下121.32.136.231,有以下發(fā)現(xiàn)

    http://121.32.136.231/notice/notice.htm
    http://www.gomain.net/articles/about_121_32_136_231.html
    http://bbs.qianlong.com/redirect.php?tid=1281281

    終于知道了真相

    UPDATE:
    反饋到電信,回復(fù)如下:
    您好,這有可能電腦中了病毒的,建議您使用殺毒軟件查殺一下
    唉,客服練的都是忽悠功啊

    posted @ 2008-01-13 10:16 Jarod 閱讀(412) | 評(píng)論 (0)編輯 收藏

    2008年1月10日 #

    白色+8G+硅膠套 + 送便宜保護(hù)膜 + 送游戲DVD一張 ~= 2K

    入手幾天了,無(wú)聊的時(shí)候可以玩玩小游戲。本來(lái)想著也可以看看電子書(shū),但試了看PDF和CHM的書(shū)效果特不好。。。

    posted @ 2008-01-10 15:30 Jarod 閱讀(313) | 評(píng)論 (0)編輯 收藏

    2008年1月7日 #

    http://gaming.gwos.org/doku.php/wine:winestuff
    posted @ 2008-01-07 16:29 Jarod 閱讀(1373) | 評(píng)論 (0)編輯 收藏

    2007年12月28日 #

    在地址欄輸入about:config進(jìn)入配置表,添加或修改下列相應(yīng)項(xiàng)

    內(nèi)存緩存:
    browser.cache.memory.enable=true
    內(nèi)存緩存開(kāi)關(guān)
    browser.cache.memory.capacity=51200
    內(nèi)存緩存大小,單位KB;-1: (默認(rèn))根據(jù)系統(tǒng)可用內(nèi)存動(dòng)態(tài)調(diào)整;

    TIPS: 如果內(nèi)存大可以關(guān)閉磁盤(pán)緩存,把此值設(shè)大;如果不關(guān)閉磁盤(pán)緩存,建議保留默認(rèn)值


    磁盤(pán)緩存:
    browser.cache.disk.enable=false
    磁盤(pán)緩存大小
    browser.cache.disk.capacity=50000
    磁盤(pán)緩存大小
    browser.cache.disk.parent_directory=用戶目錄

    TIPS: 提升性能第二法是把內(nèi)存緩存關(guān)閉,把browser.cache.disk.parent_directory指向ramdisk


    DNS:
    network.dns.disableIPv6=false
    TIPS: 建議設(shè)成true,關(guān)閉ipv6的dns解釋,對(duì)打開(kāi)網(wǎng)頁(yè)的速度有比較明顯的提高


    HTTP連接數(shù):
    network.http.max-connections=64
    最大連接數(shù)
    network.http.max-connections-per-server=16
    對(duì)每個(gè)服務(wù)器的最大請(qǐng)求數(shù)
    network.http.max-persistent-connections-per-server=4
    對(duì)每個(gè)服務(wù)器長(zhǎng)連接的最大數(shù)
    network.http.max-persistent-connections-per-proxy=4
    對(duì)每個(gè)代理的最大長(zhǎng)連接數(shù)

    上面幾個(gè)值可根據(jù)自己的機(jī)器情況配置


    開(kāi)啟Pipelining:(http://www.mozilla.org/projects/netlib/http/pipelining-faq.html)
    對(duì)多內(nèi)容的頁(yè)面比較有用
    network.http.pipelining=true
    開(kāi)關(guān)pipelining
    network.http.proxy.pipelining=true
    開(kāi)關(guān)代理pipelining
    network.http.pipelining.maxrequests=8
    單個(gè)網(wǎng)頁(yè)的最大請(qǐng)求數(shù)有效值1-8


    加快頁(yè)面渲染速度
    nglayout.initialpaint.delay=0
    這個(gè)值為firefox等待多少毫秒后開(kāi)始渲染頁(yè)面。默認(rèn)值250。網(wǎng)速快時(shí)設(shè)成0可以加速網(wǎng)頁(yè)渲染。網(wǎng)速慢的最好就不要改了。對(duì)網(wǎng)速物慢的,如56kbit/s撥號(hào)上網(wǎng)的,還應(yīng)適當(dāng)增大此值,不然firefox的CPU使用就會(huì)上升很快

    不檢查插件兼容性
    extensions.checkCompatibility=false
    對(duì)于想試3.0的朋友此項(xiàng)特有用。因?yàn)閒irefox插件的兼容性檢查是基于版本號(hào)的,所以某些“不兼容”的插件不一定就是不兼容

    不使用頁(yè)面指定的字體
    browser.display.use_document_fonts=false
    對(duì)于像我的linux系統(tǒng),使用的中文字體是雅黑,但有些頁(yè)面是指定使用宋體,顯示的字體很難看,設(shè)這個(gè)值就可以忽視頁(yè)面字體了

    posted @ 2007-12-28 22:03 Jarod 閱讀(1231) | 評(píng)論 (0)編輯 收藏

    2007年12月20日 #

    測(cè)試環(huán)境:
    tomcat-6.0.14
    ubuntu gusty
    sun-jdk-1.6

    多個(gè)人合作的項(xiàng)目里只要修改tomcat-conf.properties文件后即可使用。我這里用了slf4j做LOG,不用LOG的把相關(guān)類去掉即可。還有我是把tomcat/lib下的jar都加進(jìn)classpath的。

    目錄結(jié)構(gòu)
    /-|projectHome
      |
      |--src
      |   |--TomcatServer.java
      |   |--tomcat-conf.properties
      |
      |--webapp
      |   |--WEB-INF
      |   |   |-web.xml

    TomcatServer.java:
     1 import java.io.File;
     2 import java.io.IOException;
     3 import java.util.Properties;
     4 
     5 import org.apache.catalina.Context;
     6 import org.apache.catalina.Engine;
     7 import org.apache.catalina.Host;
     8 import org.apache.catalina.LifecycleException;
     9 import org.apache.catalina.startup.Embedded;
    10 import org.slf4j.Logger;
    11 import org.slf4j.LoggerFactory;
    12 
    13 /**
    14  * http://m.tkk7.com/jarod
    15  * @author jarod
    16  */
    17 public class TomcatServer {
    18 
    19     private static final Logger logger = LoggerFactory
    20             .getLogger(TomcatServer.class);
    21 
    22     public static void main(String[] args) {
    23         try {
    24             new TomcatServer();
    25         } catch (Throwable t) {
    26             logger.error("", t);
    27         }
    28     }
    29 
    30     private Embedded tomcat;
    31 
    32     // tomcat主目錄
    33     private String catalinaHome;
    34 
    35     private String projectHome;
    36 
    37     public TomcatServer() {
    38         initConf();
    39 
    40         tomcat = new Embedded();
    41         tomcat.setCatalinaHome(catalinaHome);
    42         Engine engine = tomcat.createEngine();
    43         Host host = tomcat.createHost("localhost", projectHome);
    44         host.addChild(tomcat.createContext(""""));
    45         Context context = tomcat.createContext("/webapp1""webapp");
    46         // 當(dāng)以debug模式啟動(dòng)時(shí),修改可立即生效
    47         context.setReloadable(true);
    48         host.addChild(context);
    49         engine.addChild(host);
    50         engine.setDefaultHost("localhost");
    51         tomcat.addEngine(engine);
    52         tomcat.addConnector(tomcat.createConnector("0"8081false));
    53         registerShutdownHook();
    54         try {
    55             tomcat.start();
                    
    Thread.sleep(Long.MAX_VALUE);
    56         } catch (Exception e) {
    57             throw new RuntimeException(e);
    58         }
    59     }
    60 
    61     private void initConf() {
    62         Properties properties = new Properties();
    63         try {
    64             properties.load(TomcatServer.class
    65                     .getResourceAsStream("/tomcat-conf.properties"));
    66             catalinaHome = properties.getProperty("catalina.home");
    67 
    68             File f = new File(".");
    69             projectHome = f.getAbsolutePath();
    70         } catch (IOException e) {
    71             throw new RuntimeException(e);
    72         }
    73     }
    74 
    75     private void registerShutdownHook() {
    76         Runtime.getRuntime().addShutdownHook(new Thread() {
    77             @Override
    78             public void run() {
    79                 try {
    80                     tomcat.stop();
    81                 } catch (LifecycleException e) {
    82                     throw new RuntimeException(e);
    83                 }
    84             }
    85         });
    86     }
    87 }


    tomcat-conf.properties:
    catalina.home=/home/jarod/server/tomcat/apache-tomcat-6.0.14


    為什么要setCatalinaHome?
    設(shè)了該值,tomcat啟動(dòng)時(shí)會(huì)在該目錄加載默認(rèn)的一些配置,如MIME mapping等,如果要自己手動(dòng)添加配置太麻煩了,而如果不要這些配置,這個(gè)embedded tomcat用處也不大
    posted @ 2007-12-20 14:49 Jarod 閱讀(2187) | 評(píng)論 (0)編輯 收藏

    2007年12月19日 #

    系統(tǒng): ubuntu 7.10
    我現(xiàn)在2臺(tái)機(jī)上在用這個(gè)版本,一臺(tái)機(jī)是gnome, 另一臺(tái)機(jī)是KDE,KDE上的emacs-gtk可以直接用scim輸入了,但gnome據(jù)說(shuō)是某session-daemon程序的問(wèn)題導(dǎo)致不能激活外部輸入法,我現(xiàn)在的解決方法是開(kāi)一個(gè)terminal, 在terminal下用emacs -nw啟動(dòng),這樣就能用外部輸入法輸入中文了



    Checkout源代碼


    sudo apt-get install ssh cvs
    export CVS_RSH
    ="ssh"
    cvs 
    -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/cvsroot/emacs co -r emacs-unicode-2 emacs


    安裝依賴包


    sudo apt-get install texinfo libgpmg1-dev libungif4-dev libpng12-dev libgd2-xpm-dev libtiff4-dev libjpeg62-dev librsvg2-dev libgtk2.0-dev
    注意:上面有幾個(gè)圖形庫(kù)不是必須的;我的機(jī)器本來(lái)就裝了很多開(kāi)發(fā)庫(kù),所以上面的庫(kù)估計(jì)也是不全的

    編譯安裝


    ./configure --prefix=/usr --enable-font-backend --with-gtk --with-xft --with-freetype && make bootstrap && make info && sudo make install



    配置


    編輯~/.Xresources

    Xft.antialias: 1
    # 可以嘗試把hinting關(guān)了對(duì)比效果,有些顯示器上不開(kāi)反而更好看
    Xft
    .hinting: 1
    Xft
    .hintstyle: hintfull 
    Xft
    .rgba: rgb

    Emacs
    .FontBackend: xft
    Emacs.Geometry: 100x32+4+4
    執(zhí)行xrdb ~/.Xresources例配置生效

    編輯~/.emacs文件(最新版在我的wiki
    ;;設(shè)置個(gè)人信息
    ;;
    (setq user
    -full-name "Jarod Liu")
    (setq user
    -mail-address "liuyuanzhi(at)gmail.com")

    ;;添加自定義loadpath
    ;;
    (
    if (fboundp 'normal-top-level-add-subdirs-to-load-path)
        (let* ((my-lisp-dir "/home/jarod/.myemacs/")
               (default-directory my-lisp-dir))
          (setq load-path (cons my-lisp-dir load-path))
          (normal-top-level-add-subdirs-to-load-path)))


    ;;設(shè)置字體 
    ;;
    (set-default-font "Monospace-14")
    (set-fontset-font (frame-parameter nil 
    'font)
              
    'unicode '("Microsoft YaHei" . "unicode-bmp")) 
    (set
    -fontset-font (frame-parameter nil 'font)
              
    'han '("Microsoft YaHei" . "unicode-bmp"))
    (set-fontset-font (frame-parameter nil 
    'font)
              
    'symbol '("Microsoft YaHei"  . "unicode-bmp"))
    (set
    -fontset-font (frame-parameter nil 'font)
              
    'cjk-misc '("Microsoft YaHei"  . "unicode-bmp"))
    (set-fontset-font (frame-parameter nil 
    'font)
              
    'bopomofo '("Microsoft YaHei"  . "unicode-bmp")) 


    ;; 
    For my language code setting (UTF-8)
    ;;
    (setq current
    -language-environment "UTF-8")
    (setq default
    -input-method "chinese-py")
    (setq locale
    -coding-system 'utf-8)
    (set-terminal-coding-system 
    'utf-8)
    (set
    -keyboard-coding-system 'utf-8)
    (set-selection-coding-system 
    'utf-8)
    (prefer
    -coding-system 'utf-8)


    ;;啟動(dòng)服務(wù)器(for emacsclient)
    ;;
    (server-start)


    ;;自定義按鍵
    ;;
    (global-set-key [f1] 
    'shell);F1進(jìn)入Shell 
    ;(global
    -set-key (kbd "C-SPC"'nil);用win+space為set-mark鍵,留出ctrl+space熱鍵作為輸入法
    ;(global-set-key (kbd "S-SPC") 
    'set-mark-command)


    ;;使用習(xí)慣配制
    ;;
    (setq default
    -major-mode 'text-mode);一打開(kāi)就起用 text 模式。
    (global-font-lock-mode t);語(yǔ)法高亮
    (auto-image-file-mode t);打開(kāi)圖片顯示功能
    (fset 
    'yes-or-no-'y-or-n-p);以 y/n代表 yes/no
    (setq default-fill-column 80);默認(rèn)顯示 xx列就換行
    (column-number-mode t);顯示列號(hào)
    (show-paren-mode t);顯示括號(hào)匹配
    (setq show-paren-style 
    'parentheses);括號(hào)匹配時(shí)顯示另外一邊的括號(hào),而不是跳到另一個(gè)括號(hào)
    ;(display
    -time-mode 1);顯示時(shí)間,格式如下
    ;(setq display
    -time-24hr-format t)
    ;(setq display
    -time-day-and-date t)
    (tool
    -bar-mode nil);去掉工具欄
    (scroll
    -bar-mode nil);去掉滾動(dòng)條,可以使用鼠標(biāo)滾輪
    (setq scroll
    -margin 3 scroll-conservatively 10000);防止頁(yè)面滾動(dòng)時(shí)跳動(dòng), scroll-margin 3 可以在靠近屏幕邊沿3行時(shí)就開(kāi)始滾動(dòng)
    (mouse
    -avoidance-mode 'animate);光標(biāo)靠近鼠標(biāo)指針時(shí),讓鼠標(biāo)指針自動(dòng)讓開(kāi)
    (setq mouse-yank-at-point t);支持中鍵粘貼
    (transient-mark-mode t);高亮顯示要拷貝的區(qū)域
    (setq x-select-enable-clipboard t);支持emacs和外部程序的粘貼
    (setq interprogram-paste-function 
    'x-cut-buffer-or-selection-value) ;
    (setq frame
    -title-format "%b");在標(biāo)題欄提示buffer名
    (setq
    -default make-backup-files nil);不要生成臨時(shí)文件
    (setq visible
    -bell t);關(guān)閉煩人的出錯(cuò)時(shí)的提示聲
    (setq inhibit
    -startup-message t);關(guān)閉起動(dòng)時(shí)的那個(gè)“開(kāi)機(jī)畫(huà)面”
    (setq 
    kill-ring-max 64);undo number
    ;; 縮進(jìn)
    (setq default
    -tab-width 4);;    設(shè)置tab為4個(gè)空格的寬度
    (setq tab
    -width 4)
    (global
    -set-key "\C-m" 'newline-and-indent)
    (global-set-key "\C-j" 
    'newline);; 交換這兩個(gè)按鍵。因?yàn)榇蠖鄶?shù)情況下,回車后是要縮進(jìn)的。

    ;; mode alist
    (mapcar
     (function (lambda (setting)
             (setq auto
    -mode-alist
               (cons setting auto
    -mode-alist))))
     
    '(("\\.xml$".  sgml-mode)
       ("\\\.bash" . sh-mode)
       ("\\.rdf$".  sgml-mode)
       ("\\.session" . emacs-lisp-mode)
       ("\\.l$" . c-mode)
       ("\\.css$" . css-mode)
       ("\\.cfm$" . html-mode)
       ("gnus" . emacs-lisp-mode)
       ("\\.idl$" . idl-mode)
       ("\\.rb$" . ruby-mode)
       ("\\.rhtml$" . html-mode)))




    ;; tabbar
    ;;
    (require 
    'tabbar) ; http://liuyuanzhi.googlepages.com/tabbar.el
    (tabbar
    -mode)
    ;(global
    -set-key (kbd ""'tabbar-backward-group)
    ;(global-set-key (kbd "") 
    'tabbar-forward-group)
    (global
    -set-key (kbd "C-`"'tabbar-backward) ;切換TAB的快捷鍵
    (global-set-key (kbd "C-<tab>") 
    'tabbar-forward)
    ;(set
    -face-attribute 'tabbar-default-face nil :family "Tahoma") ;設(shè)置tabbar字體


    ;; color-theme 
    ;;
    (require 
    'color-theme) ;http://liuyuanzhi.googlepages.com/color-theme.el
    (color
    -theme-gnome2)


    ;; ruby                                                                         
    ;; based on http
    ://www.rubygarden.org/Ruby/page/show/InstallingEmacsExtensions  
    ;;                                                                              
    (
    require 'ruby-mode) ;安裝ubuntu中的ruby-elisp包
    (autoload 
    'ruby-mode "ruby-mode" "Ruby editing mode." t)
    (modify
    -coding-system-alist 'file "\\.rb$" 'utf-8)
    (modify
    -coding-system-alist 'file "\\.rhtml$" 'utf-8)


    (autoload 
    'run-ruby "inf-ruby"
      "Run an inferior Ruby process")
    (autoload 
    'inf-ruby-keys "inf-ruby"
      
    "Set local key defs for inf-ruby in ruby-mode")
    (add
    -hook 'ruby-mode-hook
              
    '(lambda ()
                 (inf
    -ruby-keys)))
    ;; 
    If you have Emacs 19.2x or older, use rubydb2x                              
    (autoload 
    'rubydb "rubydb3x" "Ruby debugger" t)

    配置文件都是從網(wǎng)上直接copy來(lái)的,把一些不用的注釋了
    posted @ 2007-12-19 10:29 Jarod 閱讀(3718) | 評(píng)論 (0)編輯 收藏

    2007年10月28日 #


    由于iBATIS方面的書(shū)本來(lái)就不多(這是我除了官方文檔外找到的唯一一本),使這本書(shū)無(wú)疑是學(xué)習(xí)iBATIS不二的選擇。而這本書(shū)本身也是不錯(cuò)的,囊括了幾乎所有的iBATIS的知識(shí)點(diǎn)。很適合作為iBATIS的入門(mén)和參考書(shū)籍。
    我讀這本書(shū)的時(shí)候并沒(méi)接觸過(guò)iBATIS相關(guān)的知識(shí),但憑借本身的編程經(jīng)驗(yàn),看這本書(shū)也不必細(xì)看,也是匆匆看完,然后在實(shí)際使用中遇到問(wèn)題再參考此書(shū),比官方的文檔好多了。
    posted @ 2007-10-28 12:34 Jarod 閱讀(351) | 評(píng)論 (0)編輯 收藏

    昨天由于有點(diǎn)時(shí)間,就想找本書(shū)看看。在手頭上找了本最薄的書(shū)-《MySQL Phrasebook - Essential Code and Commands》。最近因工作需要,剛從Hibernate轉(zhuǎn)到iBatis。這個(gè)轉(zhuǎn)變感覺(jué)自己離OO遠(yuǎn)了一點(diǎn),而離DO(DB-oriented)卻近了一點(diǎn),現(xiàn)在要對(duì)數(shù)據(jù)庫(kù)級(jí)的細(xì)節(jié)要更加了解了。
    看標(biāo)題"Phrasebook"感覺(jué)就像時(shí)下不少的“XXX高手箴言”之類的書(shū),沒(méi)翻之前還抱著希望是一些經(jīng)驗(yàn)總結(jié)的精華集。當(dāng)看完整本書(shū),發(fā)現(xiàn)大部分篇幅都是講SQL語(yǔ)法和MySQL的一些基礎(chǔ)指令。也有一點(diǎn)cookbook的味道,講述解決某一類問(wèn)題時(shí)的方案。還有一些安全小tips是不錯(cuò)的。還有一章講MYSQL對(duì)各語(yǔ)言的接口的,我是直接跳過(guò)了。
    剛翻完的時(shí)候其實(shí)我想罵,“什么爛phrasebook,要學(xué)這些基礎(chǔ)語(yǔ)法指令我不如去看MYSQL的官方教程”,但想到它的副標(biāo)是“Essential Code and Commands”。。。算了
    總的來(lái)說(shuō),這本書(shū)對(duì)于MYSQL的新手還是有點(diǎn)用的,可以讓你了解有些什么要注意的,有些什么小技巧之類的。但對(duì)大部分用過(guò)MySQL一段時(shí)間的人來(lái)說(shuō),這本書(shū)是不值得買(mǎi)的。

    書(shū)雖然是不怎么好,但在其中學(xué)到了一些新東西:
    DELAY_KEY_WRITE
    作用:減少M(fèi)yISAM表更新索引的次數(shù)
    用法:ALTER TABLE table_name DELAY_KEY_WRITE = 1;

    LIKE中的'_'
    作用:匹配一個(gè)字符(我以前只知道%)

    <=>
    作用:"NULL安全”的不等,正常的!=遇到NULL時(shí)不會(huì)返回0(false),1(true),而是返回NULL,用<=>就會(huì)得到你想要的結(jié)果了

    啟動(dòng)選項(xiàng)--safe-updates
    作用:不執(zhí)行無(wú)WHERE子句的DELETE和UPDATE語(yǔ)句
    posted @ 2007-10-28 12:25 Jarod 閱讀(318) | 評(píng)論 (0)編輯 收藏

    2007年10月27日 #

    Registers



    General-purpose registers


    Register Description
    EAX Accumulator for operands and results data
    EBX Pointer to data in the data memory segment
    ECX Counter for string and loop operations
    EDX I/O pointer
    EDI Data pointer for destination of string operations
    ESI Data pointer for source of string operations
    ESP Stack pointer
    EBP Stack data pointer


    Segment registers


    Segment Register Description
    CS Code segment
    DS Data segment
    SS Stack segment
    ES Extra segment pointer
    FS Extra segment pointer
    GS Extra segment pointer


    Instruction pointer register


    EIP keeps track of the next instruction code to execute


    Control registers


    Control Register Description
    CR0 System flags that control the operating mode and states of the processor
    CR1 Not currently used
    CR2 Memory page fault information
    CR3 Memory page directory information
    CR4 Flags that enable processor features and indicate feature capabilities of the processor




    Sections



    .section .data


    section for variables declaration

    Directive Data Type
    .ascii Text string
    .asciz Null-terminated text string
    .byte Byte value
    .double Double-precision floating-point number
    .float Single-precision floating-point number
    .int 32-bit integer number
    .long 32-bit integer number (same as .int)
    .octa 16-byte integer number
    .quad 8-byte integer number
    .short 16-bit integer number
    .single Single-precision floating-point number (same as .float)

    .equ static variables


    .section .rodata


    section for constants declaration


    .section .bss


    buffers

    Directive Description
    .comm Declares a common memory area for data that is not initialized
    .lcomm Declares a local common memory area for data that is not initialized


    .section .text


    assembly codes

    Directive Description
    .global _start entry point
    posted @ 2007-10-27 17:36 Jarod 閱讀(283) | 評(píng)論 (0)編輯 收藏

    一、工具準(zhǔn)備


    Apache Web服務(wù)器:httpd-2.2.4.tar.bz2
    Subversion源碼包及依賴包:subversion-1.4.3.tar.bz2,subversion-deps-1.4.3.tar.bz2
    (下面假設(shè)apache和svn源碼都解壓到了/home/tmp下)

    二、安裝Apache


    Apache的安裝就根平時(shí)安裝Apache沒(méi)什么兩樣,都記得要打開(kāi)dav模塊和動(dòng)態(tài)模塊選項(xiàng)。安裝安裝命令如下:
    tar xfj httpd-2.2.4.tar.bz2
    cd httpd-2.2.4
    ./buildconf
    ./configure --enable-dav --enable-so
    make
    make install


    三、安裝Subversion


    SVN的安裝一定要注意:

    • SVN 依賴的APR版本要正確。如果Apache為2.0.x,對(duì)應(yīng)的APR版本應(yīng)為0.9.x;Apache為2.2.x,對(duì)應(yīng)的APR版本應(yīng)為1.2.x。 由于subversion-deps包里的APR是0.9.x的,因此編譯svn時(shí)要?jiǎng)h除從deps里解壓出來(lái)的apr, apr-util,改而使用apache 2.2里提供的。

    • 如果apache不是安裝在默認(rèn)路徑,configure必須加上--with-apxs選項(xiàng),如:./configure --with-apxs=/home/apache2/bin/apxs


    安裝命令如下:

    tar xfj subversion-1.4.3.tar.bz2
    tar xfj subversion-deps-1.4.3.tar.bz2
    # subversion-deps的文件也會(huì)解壓到subversion-1.4.3目錄中
    cd subversion-1.4.3
    rm -rf apr
    rm -rf apr-util
    ln -s /home/tmp/httpd-2.2.4/srclib/apr apr
    ln -s /home/tmp/httpd-2.2.4/srclib/apr-util apr-util
    ./configure &&amp;amp; make && make install

    安 裝完成后,查看是否存在文件$APACHE_HOME/modules/mod_dav_svn.so(默認(rèn) /usr/local/apache2/modules/mod_dav_svn.so)。另外,如果該機(jī)器上以前是裝過(guò)舊版本的SVN,要把 "/usr/local/lib/libsvn*"文件都刪除。

    四、在apache中配置svn


    創(chuàng)建SVN庫(kù):
    cd /home/svn
    svnadmin create repo1


    在Apache 的配置文件httpd.conf中加入以下代碼,Apache中就可以配置好一個(gè)虛擬主機(jī)svn.mydomain.net,并把該域名下的根路徑配置給 Subversion。通過(guò)AuthzSVNAccessFile和AuthUserFile指令分別配置SVN用戶的用戶名和密碼文件。
    <virtualhost *:80>
    DocumentRoot /home/svn/htdocs
    <directory>
    Options Includes
    AllowOverride All
    Order allow,deny
    Allow from all
    </directory>

    <location />
    DAV svn
    SVNParentPath /home/svn/svnroot
    AuthzSVNAccessFile /home/svn/svnroot/conf/accessfile
    Require valid-user
    AuthType Basic
    AuthName "Subversion System"
    AuthUserFile /home/svn/svnroot/conf/passwdfile
    </location>

    ServerName svn.mydomain.net
    DirectoryIndex index.html
    </virtualhost>



    創(chuàng)建文件/home/svn/svnroot/conf/accessfile:

    [groups]
    user = jarod
    anonymous = guest
    [/]
    * = r
    @user = rw
    @anonymous = r


    再用htpasswd命令創(chuàng)建/home/svn/svnroot/conf/passwdfile文件:

    htpasswd -c /home/svn/svnroot/conf/passwdfile jarod
    # 這時(shí)會(huì)提示輸入密碼


    最后把/home/svn目錄的擁有者設(shè)為啟動(dòng)apache服務(wù)的用戶,apache-2.2默認(rèn)會(huì)由daemon用戶啟動(dòng):
    chown daemon.daemon -R /home/svn
    chmod 777 /home/svn -R


    大功告成,通過(guò)瀏覽器或SVN客戶端測(cè)試http://svn.mydomain.net/repo1
    posted @ 2007-10-27 17:32 Jarod 閱讀(5948) | 評(píng)論 (1)編輯 收藏

    主站蜘蛛池模板: 猫咪www免费人成网站| 中文字幕 亚洲 有码 在线| 深夜a级毛片免费视频| 国产美女a做受大片免费| 亚洲高清乱码午夜电影网| 无码高潮少妇毛多水多水免费| 亚洲fuli在线观看| 日本亚洲免费无线码| 亚洲一卡2卡4卡5卡6卡残暴在线| 亚洲精品视频免费在线观看| 亚洲欧洲自拍拍偷午夜色| 国产1000部成人免费视频| 亚洲人成77777在线播放网站不卡| 毛片免费vip会员在线看| 亚洲国产成人久久精品大牛影视| 日韩成全视频观看免费观看高清| 久久久久久亚洲精品无码| 国产免费午夜a无码v视频| 一级一看免费完整版毛片| 九月丁香婷婷亚洲综合色| 99国产精品免费视频观看| 亚洲人成网站日本片| 暖暖免费高清日本一区二区三区| 日韩精品免费一线在线观看| 久久精品国产亚洲精品| 中文字幕免费视频| 国产精品亚洲综合五月天| avtt亚洲天堂| 99re视频精品全部免费| 亚洲av无码无线在线观看| 久久久久亚洲av成人无码电影| 日韩精品在线免费观看| 亚洲中文字幕一区精品自拍| 免费很黄很色裸乳在线观看| 日韩免费观看一区| 亚洲欧洲无码一区二区三区| 国产亚洲综合网曝门系列| 4hu四虎最新免费地址| 特级毛片全部免费播放| 久久久久亚洲Av无码专| 国产午夜鲁丝片AV无码免费|