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

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

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

    于吉吉的技術(shù)博客

    建造高性能門戶網(wǎng)

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      65 隨筆 :: 6 文章 :: 149 評論 :: 0 Trackbacks

    2010年12月3日 #

    posted @ 2014-03-04 10:49 陳于喆 閱讀(450) | 評論 (0)編輯 收藏

    posted @ 2014-02-23 12:54 陳于喆 閱讀(418) | 評論 (0)編輯 收藏

         摘要: 最近接手項(xiàng)目從cocos2dx 2.0 升級為 3.0 ,至于為什么要升級我也弄不清楚,只感覺3.0是要擺脫cocos2d-iphone的身影,這是要作死的態(tài)度嗎,沒時(shí)間去了解3.0的核心發(fā)生了神馬變化,只為了從cocos2dx2.0經(jīng)常適應(yīng)到3.0做了一些紀(jì)錄,以便查閱和方便正在從2.0到3.0的朋友。  閱讀全文
    posted @ 2013-12-27 23:29 陳于喆 閱讀(18057) | 評論 (5)編輯 收藏

    posted @ 2013-07-05 17:18 陳于喆 閱讀(4527) | 評論 (6)編輯 收藏

    posted @ 2012-03-19 16:33 陳于喆 閱讀(4380) | 評論 (3)編輯 收藏

         摘要: 其實(shí)為什么javascript的定時(shí)器會(huì)出現(xiàn)所謂的不可靠或偏差的情況,這是可以理解的,最主要的問題是它們并不是所謂的線程,其實(shí)
    javascript是運(yùn)行于單線程的環(huán)境中,而定時(shí)器只是計(jì)劃代碼在未來某個(gè)執(zhí)行的時(shí)間,執(zhí)行的時(shí)間點(diǎn)是不能被保證的,因?yàn)樵陧撁娴纳芷谥?,不同時(shí)間可能存在其他代碼,或各個(gè)瀏覽器的內(nèi)核控制住javascript進(jìn)程。  閱讀全文
    posted @ 2012-01-10 15:15 陳于喆 閱讀(3547) | 評論 (6)編輯 收藏

    posted @ 2011-12-06 16:22 陳于喆 閱讀(4991) | 評論 (7)編輯 收藏

    posted @ 2011-08-21 15:55 陳于喆 閱讀(6426) | 評論 (0)編輯 收藏

    posted @ 2011-08-15 16:51 陳于喆 閱讀(6334) | 評論 (13)編輯 收藏

         摘要: Starting and Stopping Mongo
    Security and Authentication
    Monitoring and Diagnostics
    Backups
      閱讀全文
    posted @ 2011-07-30 18:23 陳于喆 閱讀(20569) | 評論 (2)編輯 收藏

    posted @ 2011-06-15 15:07 陳于喆 閱讀(893) | 評論 (0)編輯 收藏

         摘要: objectid是一種輕量型的,不同的機(jī)器都能用全局唯一的同種方法輕量的生成它,而不是采用傳統(tǒng)的自增的主鍵策略,因?yàn)樵诙嗯_(tái)服務(wù)器上同步自動(dòng)增加主鍵既費(fèi)力又費(fèi)時(shí),不得不佩服,mongodb從開始設(shè)計(jì)就被定義為分布式數(shù)據(jù)庫。
    下面深入一點(diǎn)來翻翻這個(gè)Objectid的底細(xì),在mongodb集合中的每個(gè)document中都必須有一個(gè)"_id"建,這個(gè)鍵的值可以是任何類型的,在默認(rèn)的情況下是個(gè)Objectid對象。
    當(dāng)我們讓一個(gè)collection中插入一條不帶_id的記錄,系統(tǒng)會(huì)自動(dòng)地生成一個(gè)_id的key  閱讀全文
    posted @ 2011-06-12 18:30 陳于喆 閱讀(15259) | 評論 (8)編輯 收藏

    posted @ 2011-06-02 16:11 陳于喆 閱讀(969) | 評論 (0)編輯 收藏

         摘要: google map測距的實(shí)現(xiàn)和分析
    不斷有傳聞google map在今年的7月1號之后在大陸停止運(yùn)營,具體原因是因?yàn)樘斐呐普諉栴},這個(gè)就不多講了,可以發(fā)現(xiàn)現(xiàn)在搜房網(wǎng)的地圖,和安居客等的地圖紛紛都撤下 google map,而重新選擇了mapabc或baidu,當(dāng)然網(wǎng)易房產(chǎn)地圖也不例外,現(xiàn)在也在使用mapabc作為網(wǎng)易房產(chǎn)地圖的開發(fā),預(yù)計(jì)將在6月底前上線,到 時(shí)再跟大家分享一下mapabc的一些開發(fā)實(shí)踐。
    還是說回google map的開發(fā),自從上次建了個(gè)qq群就有不少人在問測距怎么實(shí)現(xiàn),當(dāng)然很多人想的是拿來主義的,當(dāng)時(shí)是拿http://xf.house.163.com /gz/map/000B.html的例子出來,但確實(shí)頁面上進(jìn)行了封裝也寫得比較亂,所以還是比較難以抽離,先給個(gè)簡單實(shí)現(xiàn)的例子:  閱讀全文
    posted @ 2011-06-02 14:01 陳于喆 閱讀(3966) | 評論 (1)編輯 收藏

         摘要: 有朋友去一家大型的互聯(lián)網(wǎng)公司參加了java程序員的筆試,抄下了一些筆試題,可能有的抄的并不全,試了解答一下,有些還真的答不出來

    1.cookie和session的作用以及他們的應(yīng)用場合
    2.怎樣讓jvm加載一個(gè)Class的同時(shí)執(zhí)行一段代碼
    3.post和get區(qū)別
    4.事務(wù)的屬性有哪些?寫出spring或jdbc管理事務(wù)的例子
    5.實(shí)現(xiàn)一個(gè)高并發(fā)、高性能的hashmap。寫出偽代碼
    6.解析一段xml,拼接成一個(gè)url。  閱讀全文
    posted @ 2011-04-21 17:23 陳于喆 閱讀(3770) | 評論 (9)編輯 收藏

         摘要: 好吧,這個(gè)錯(cuò)誤浪費(fèi)了我今天幾個(gè)小時(shí)的時(shí)間,必須把它記錄下來。
    問題是這樣的,在啟動(dòng)更新了portmap,exportfs,一些沒問題后,在做/etc/init.d/nfs-kernel-server restart 出現(xiàn)

    /etc/init.d/nfs-kernel-server start
    Exporting directories for NFS kernel daemonexportfs: /etc/exports [1]:
    Neither 'subtree_check' or 'no_subtree_check' specified for export
    "foobar".
    Assuming default behaviour ('no_subtree_check').
    NOTE: this default has changed since nfs-utils version 1.0.x

    .
    Starting NFS kernel daemon: nfsd
    Not st  閱讀全文
    posted @ 2011-04-06 17:13 陳于喆 閱讀(1927) | 評論 (1)編輯 收藏

         摘要: NFS服務(wù)器端
    apt-get install nfs-kernel-server nfs-common portmap

    vi /etc/hosts.allow
    portmap: 192.168.0.
    lockd: 192.168.0.
    rquotad: 192.168.0.
    mountd: 192.168.0.
    statd: 192.168.0.

    vi /etc/hosts.deny
    portmap:ALL
    lockd:ALL
    mountd:ALL
    rquotad:ALL
    statd:ALL

    vi /etc/default/portmap
    將 -i 127.0.0.1 注釋掉  閱讀全文
    posted @ 2011-04-06 17:09 陳于喆 閱讀(1460) | 評論 (0)編輯 收藏

         摘要: google Map的交互基本都是事件驅(qū)動(dòng)的,這表示js是通過生成時(shí)間來響應(yīng)交互的,并且處于監(jiān)聽我們設(shè)定的事件,每個(gè) Google Maps API 對象都可導(dǎo)出大量已命名的事件。如果程序想要實(shí)現(xiàn)某些事件,則會(huì)為這些事件注冊 Javascript 事件偵聽器,并會(huì)在通過在 google.maps.event 命名空間中注冊 addListener() 事件處理程序接收這些事件時(shí)執(zhí)行相應(yīng)的代碼。

    初步的事件響應(yīng)

    google map中的所有對象都可以對用戶事件監(jiān)聽并作出響應(yīng),用戶的事件可以包括鼠標(biāo)或鍵盤,對象可以監(jiān)聽以下這幾種事件:
    'click','dblclick','mouseup','mousedown','mouseover','mouseout'
    這些事件看上去很像標(biāo)準(zhǔn)的DOM事件,但這些時(shí)間可以在不同的瀏覽器實(shí)現(xiàn)不同的DOM事件模型。  閱讀全文
    posted @ 2011-03-30 16:58 陳于喆 閱讀(26593) | 評論 (0)編輯 收藏

         摘要: 在微博看到介紹的一款linux系統(tǒng)信息神器,dstat,收藏一下

    dstat可以直接可直接替換vmstat, iostat, netstat ,nfsstat, ifstat等系統(tǒng)工具,監(jiān)控cpu、disk 、mem、load、interrupt、net、proc、CS....

    安裝
    wget http://rpmforge.sw.be/redhat/7.3/en/i386/rpmforge/RPMS/dstat-0.6.9-1.rh7.rf.noarch.rpm
    rpm -ivh dstat-0.6.9-1.rh7.rf.noarch.rpm
    or
    apt-get install dstat
    yum install dstat  閱讀全文
    posted @ 2011-03-24 17:15 陳于喆 閱讀(2265) | 評論 (3)編輯 收藏

         摘要: 本來是想將房產(chǎn)地圖google map的應(yīng)用記錄一個(gè)系列,但繼1)記錄完之后總找不到時(shí)間繼續(xù)記錄下去,1)中主要解決了Google Maps JavaScript API V3 與 Google Local Search API兩者由于版本問題帶來的一系列麻煩,思路是使用一個(gè)iframe作為兼容的跳板,子頁面應(yīng)用Local Search API獲得查詢的result后返回給父頁面,下面再記錄一些地圖坐標(biāo)的定位和一些UI的組成。

    可參考 http://xf.house.163.com/gz/map/00Xa.html  閱讀全文
    posted @ 2011-03-05 16:02 陳于喆 閱讀(4418) | 評論 (2)編輯 收藏

         摘要: 一直以來似乎都有一個(gè)錯(cuò)覺,認(rèn)為map跟其他的集合類一樣繼承自Collection,其實(shí)不然,Map和Collection在結(jié)構(gòu)層次上是沒有任何關(guān)系的,通過查看源碼可以發(fā)現(xiàn)map所有操作都是基于key-value對,而不是單獨(dú)的元素。

    下面以HashMap為例子,深入對Map的實(shí)現(xiàn)機(jī)制進(jìn)行了解,在這個(gè)過程中,請打開jdk源碼。

    Hash算法

    HashMap使用Hash算法,所以在解剖HashMap之間,需要先簡單的了解Hash算法,Hash算法一般也成為散列算法,通過散列算法將任意的值轉(zhuǎn)化成固定的長度輸出,該輸出就是散列值,這是一種壓縮映射,也就是,散列值的空間遠(yuǎn)遠(yuǎn)小于輸入的值空間。
    簡單的說,hash算法的意義在于提供了一種快速存取數(shù)據(jù)的方法,它用一種算法建立鍵值與真實(shí)值之間的對應(yīng)關(guān)系,(每一個(gè)真實(shí)值只能有一個(gè)鍵值,但是一個(gè)鍵值可以對應(yīng)多個(gè)真實(shí)值),這樣可以快速在數(shù)組等里面存取數(shù)據(jù)。

    下面我們建立一個(gè)HashMap,然后往里面放入12對key-value,這個(gè)HashMap的默認(rèn)數(shù)組長度為16,我們的key  閱讀全文
    posted @ 2011-02-15 19:18 陳于喆 閱讀(10174) | 評論 (6)編輯 收藏

         摘要: 以前的房產(chǎn)地圖一直都是使用有道地圖,雖然有道地圖是很好,但是為了更好,還是決定使用google地圖來重新開發(fā)^_^,下面是一個(gè)開發(fā)完畢的簡單應(yīng)用http://xf.house.163.com/gz/map/000B.html

    1)整合Google Maps JavaScript API V3 與 Google Local Search API

    Google Maps JavaScript API V3
    地址 http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/

    Google Maps JavaScript API V3 文檔讀起來真的是很清晰,各種demo也很齊全,并且論壇的擁有巨大的論壇支持,對比了一下Google Maps JavaScript API V3 和 V2 的版本,雖然第3版的 Google Maps API 看上去跟第2版挺相識(shí),但在內(nèi)在機(jī)制上有了較大的變化,尤其在對移動(dòng)瀏覽器的支持上,專門針對iphone和android  閱讀全文
    posted @ 2011-02-12 15:57 陳于喆 閱讀(4964) | 評論 (6)編輯 收藏

         摘要: 對于進(jìn)程管理工具平時(shí)大多用的是ps,kill,top,sleep等等這些命令,平時(shí)linux的一些指令我都會(huì)做一些記錄,本著好記性不如爛博客的精神,也把進(jìn)程管理的命令做一點(diǎn)系統(tǒng)性的記錄,參考資料基本是鳥哥還有網(wǎng)上的一些文章。

    ps
    ps命令主要是查看系統(tǒng)進(jìn)程的狀態(tài),平時(shí)最常用的命令是ps aux,然后再使用管道導(dǎo)向到grep查找特定的進(jìn)程,然后進(jìn)此特定進(jìn)程進(jìn)行操作。
    要對進(jìn)程進(jìn)行操作必須先了解到當(dāng)前進(jìn)程的情況,ps命令體現(xiàn)了現(xiàn)實(shí)當(dāng)前運(yùn)行進(jìn)程的快照,ps和top和相似,但ps提供了更多的信息,可以確定哪些進(jìn)程正在運(yùn)行,哪些進(jìn)程被掛起,運(yùn)行了多長時(shí)間,以及進(jìn)行使用的資源和進(jìn)程的優(yōu)先級,這些信息對我們都有很重要的作用,當(dāng)我們使用ps aux可以獲得終端所有用戶的有關(guān)進(jìn)程信息。  閱讀全文
    posted @ 2011-01-21 17:56 陳于喆 閱讀(1100) | 評論 (0)編輯 收藏

    posted @ 2011-01-21 12:34 陳于喆 閱讀(595) | 評論 (0)編輯 收藏

         摘要: 問題是這樣的,有個(gè)腳本需要10秒鐘執(zhí)行一次,腳本具體功能就不細(xì)說,定時(shí)任務(wù)自然選用crontab,但是crontab最小的執(zhí)行時(shí)間為分鐘,最后決定選用死循環(huán)進(jìn)行實(shí)現(xiàn)。

    腳本
    vi hello.sh
    #!/bin/sh
    while :
    do
    echo `date` >> /home/chenyz/1 //這里是任務(wù)的實(shí)現(xiàn)
    sleep 10
    done

    這里的程序運(yùn)行時(shí)間間隔是10s,小心咯,如果沒有加sleep 10,你的機(jī)器很快就會(huì)耗盡資源,負(fù)載會(huì)狂飆。

    接著需要把腳本用后臺(tái)守護(hù)進(jìn)程來運(yùn)行,避免用戶退出而導(dǎo)致腳本失效  閱讀全文
    posted @ 2011-01-19 17:47 陳于喆 閱讀(2554) | 評論 (0)編輯 收藏

         摘要: 對于用戶管理工具平時(shí)大多用的是groupadd,useradd,usermod等等這些命令,平時(shí)linux的一些指令我都會(huì)做一些記錄,本著好記性不如爛博客的精神,也把用戶管理的命令做一點(diǎn)系統(tǒng)性的記錄,參考資料基本是鳥哥還有網(wǎng)上的一些文章。

    用戶組的管理
    linux可以對一個(gè)用戶組中的所有用戶進(jìn)行集中的管理,用戶組的管理包括用戶組添加,刪除修改,實(shí)際上這些操作就是對/etc/group文件作出修改。

    groupadd 新增一個(gè)用戶組
    groupadd [-g gid [-o]] [-r] [-f] group
    -g 其中g(shù)id是指定新用戶組的標(biāo)識(shí)號,除非配合使用-o參數(shù),不然該值必須是唯一的
    -o 標(biāo)識(shí)新用戶組gid可以和系統(tǒng)中原有的用戶組的gid值相同
    實(shí)例:
    groupadd chenyuzhe1
    groupadd -g 789 chenyuzhe2

    groupdel 刪除用戶組
    實(shí)例:
    groupdel chenyuzhe1  閱讀全文
    posted @ 2011-01-19 15:36 陳于喆 閱讀(1459) | 評論 (0)編輯 收藏

         摘要: 對于磁盤管理工具平時(shí)大多用的是df,du這些命令,平時(shí)linux的一些指令我都會(huì)做一些記錄,本著好記性不如爛博客的精神,先把磁盤管理的命令做一點(diǎn)系統(tǒng)性的記錄。

    du
    du的英文為:disk usage,含義是磁盤空間使用情況,功能是逐級進(jìn)入指定目錄的每一個(gè)子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊的情況,如果沒有指定目錄,則對當(dāng)前的目錄進(jìn)行統(tǒng)計(jì)。
    du的命令各個(gè)選項(xiàng)含義如下:

    a:顯示全部目錄和其次目錄下的每個(gè)檔案所占的磁盤空間
    s:只顯示各檔案大小的總合
    b:大小用bytes來表示
    x:跳過在不同文件系統(tǒng)上的目錄不予統(tǒng)計(jì)
    a:遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數(shù)據(jù)塊數(shù)  閱讀全文
    posted @ 2011-01-19 13:08 陳于喆 閱讀(510) | 評論 (0)編輯 收藏

         摘要: List在數(shù)據(jù)結(jié)構(gòu)中表現(xiàn)為是線性表的方式,其元素以線性方式存儲(chǔ),集合中允許存放重復(fù)的對象,List接口主要的實(shí)現(xiàn)類有
    ArrayList
    ArrayList 其實(shí)就是一組長度可變的數(shù)組,當(dāng)實(shí)例化了一個(gè)ArrayList,該數(shù)據(jù)也被實(shí)例化了,當(dāng)向集合中添加對象時(shí),數(shù)組的大小也隨著改變,這樣它所帶來的有優(yōu)點(diǎn)是快速的隨機(jī)訪問,即使訪問每個(gè)元素所帶來的性能問題也是很小的,但缺點(diǎn)就是想其中添加或刪除對象速度慢,當(dāng)你創(chuàng)建的數(shù)組是不確定其容量,所以當(dāng)我們改變這個(gè)數(shù)組時(shí)就必須在內(nèi)存中做很多的處理,如你想要數(shù)組中任意兩個(gè)元素中間添加對象,那么在內(nèi)存中數(shù)組要移動(dòng)所有后面的對象。

    LinkedList
    LinkedList 是通過節(jié)點(diǎn)的連接實(shí)現(xiàn)鏈表的數(shù)據(jù)結(jié)構(gòu),向linkedList中插入或刪除元素的速度是特別快,而隨機(jī)訪問的速度相對較慢,這個(gè)是由于鏈表本身的性質(zhì)造成的,在鏈表中,每個(gè)節(jié)點(diǎn)都包含了前一個(gè)節(jié)點(diǎn)的引用,后一個(gè)節(jié)點(diǎn)的引用和節(jié)點(diǎn)存儲(chǔ)值,當(dāng)一個(gè)新節(jié)點(diǎn)插入式,只需要修改其中相關(guān)的前后關(guān)系節(jié)點(diǎn)引用即可,刪除節(jié)點(diǎn)也是一樣。操作對象只需要改變節(jié)點(diǎn)的鏈接,新節(jié)點(diǎn)可以存放在  閱讀全文
    posted @ 2011-01-16 17:36 陳于喆 閱讀(11409) | 評論 (1)編輯 收藏

         摘要: 我們都知道Set是一種最簡單的集合,對象的排序無特定的規(guī)則,集合里面存放的是對象的引用,所以沒有重復(fù)的對象,在上面的代碼中,程序創(chuàng)建了a、b、 c、d、e五個(gè)變量,其中a和c,b和e所引用的字符串是一致的,然后向set添加了這5個(gè)變量。打印出來的size()只有3個(gè),實(shí)際上向集合加入的只有3個(gè)對象,在執(zhí)行Set的add()方法時(shí)已經(jīng)進(jìn)行了判斷這個(gè)對象是否存在于集合,如果對象已經(jīng)存在則不繼續(xù)執(zhí)行。
    Set的接口有兩個(gè)實(shí)現(xiàn)類,HashSet和TreeSet,HashSet是按照哈希算法來進(jìn)行存取集合中的對象,存取速度比較快,TreeSet類顯示了SortedSet接口,具有排序功能

    HashSet
    HashSet是按照哈希算法來存取集合中的對象,具有很好的存取和查找性能,當(dāng)向集合中加入一個(gè)對象時(shí),HashSet會(huì)調(diào)用對象的hashCode()方法來獲取哈希碼,然后根據(jù)這個(gè)哈希嗎來計(jì)算對象在集合中的存放位置。
    在Object類中定義了hashCode()和equal(),equal()是按照內(nèi)存地址比較對象是否相同,如果 object1.equal(  閱讀全文
    posted @ 2011-01-06 18:07 陳于喆 閱讀(8611) | 評論 (0)編輯 收藏

    posted @ 2011-01-04 14:10 陳于喆 閱讀(71443) | 評論 (6)編輯 收藏

         摘要: The minimum requirement for a POM are the following:

    project root
    modelVersion - should be set to 4.0.0
    groupId - the id of the project's group.
    artifactId - the id of the artifact (project)
    version - the version of the artifact under the specified group

    Here's an example:  閱讀全文
    posted @ 2010-12-29 17:50 陳于喆 閱讀(328) | 評論 (0)編輯 收藏

         摘要: 由于歷史原因,幾個(gè)項(xiàng)目都選用hessian作為web service的實(shí)現(xiàn)方式,hessian的確是非常輕量級,基于http協(xié)議進(jìn)行傳輸,通過自定義的串行化機(jī)制將請求信息進(jìn)行序列化,以二進(jìn)制傳輸節(jié)省了不少的開銷,速度跟socket差不多.客戶端和服務(wù)器發(fā)起和接收請求都是通過spring提供的hessian api進(jìn)行請求和接收,但是在服務(wù)端中并沒有記錄和控制遠(yuǎn)端ip地址和主機(jī)的信息,所以需要對源碼進(jìn)行一些重寫

    對org.springframework.remoting.caucho.HessianServiceExporter進(jìn)行重寫

    /**
    * 重寫HessianServiceExporter.handleRequest(),攔截獲取遠(yuǎn)端調(diào)用信息
    * @author chenyz
    *
    */
    public class HouseHessianServiceExporter extends HessianServiceExporter {

    private static S  閱讀全文
    posted @ 2010-12-21 16:05 陳于喆 閱讀(3027) | 評論 (0)編輯 收藏

         摘要: 目前幾套系統(tǒng)中主要使用的hessian進(jìn)行遠(yuǎn)程調(diào)用webservice服務(wù)的有hessian的 HessianProxyFactory(com.caucho.hessian.client.HessianProxyFactory)和 spring的 HessianProxyFactoryBean(org.springframework.remoting.caucho.HessianProxyFactoryBean).

    1.HessianProxyFactory
    查看HessianProxyFactory源碼后發(fā)現(xiàn),hessian在創(chuàng)建http請求連接webservice服務(wù)并沒有對連接超時(shí)進(jìn)行相關(guān)的參數(shù)設(shè)置,所以當(dāng)網(wǎng)絡(luò)出現(xiàn)問題就會(huì)造成整個(gè)hessian處理的阻塞,進(jìn)而阻塞整個(gè)線程后續(xù)的處理
    以下是HessianProxyFactory對連接處理的源碼

    protected URLConnection openConnection(URL url)
    throws IOException
    {
    URL  閱讀全文
    posted @ 2010-12-16 14:46 陳于喆 閱讀(12039) | 評論 (11)編輯 收藏

         摘要: 對很久以前的一個(gè)bug進(jìn)行分析和總結(jié)

    function parsePost(data, action) {
    try {
    var postData = eval("(" + data + ")");

    // TO DO1
    } catch (e) {

    // TO DO2
    }
    }


    這是一段頁面的老代碼,data是數(shù)據(jù)庫body字段,既是用戶錄入并取出的數(shù)據(jù),由于業(yè)務(wù)的關(guān)系,data是以json格式保存的,為了使數(shù)據(jù)能實(shí)現(xiàn)兼容,這里使用try...catch...方式處理,如果變量data能被轉(zhuǎn)換成對象,則執(zhí)行TO DO1,否則執(zhí)行TO DO2.

    我們知道eval的作用很簡單,就是把一段字符串傳遞給js解析器,由javascript解析器將這段字符串解釋成為  閱讀全文
    posted @ 2010-12-15 11:31 陳于喆 閱讀(4359) | 評論 (2)編輯 收藏

         摘要: 上次因工作的需求對一臺(tái)apache的log做了一次整體的分析,所以順便也對apache的日志分析做下簡單的介紹,主要參考apache官網(wǎng)的Log Files,手冊參照 http://httpd.apache.org/docs/2.2/logs.html

    一.日志分析
    如果apache的安裝時(shí)采用默認(rèn)的配置,那么在/logs目錄下就會(huì)生成兩個(gè)文件,分別是access_log和error_log
    1.access_log
    access_log為訪問日志,記錄所有對apache服務(wù)器進(jìn)行請求的訪問,它的位置和內(nèi)容由CustomLog指令控制,LogFormat指令可以用來簡化該日志的內(nèi)容和格式
    例如,我的其中一臺(tái)服務(wù)器配置如下

    CustomLog "| /usr/sbin/rotatelogs /var/log/apache2/%Y_%m_%d_other_vhosts_access.log 86400 480" vhost_combined

    -rw-r--r-- 1 root root 22310750   閱讀全文
    posted @ 2010-12-10 17:52 陳于喆 閱讀(12485) | 評論 (3)編輯 收藏

         摘要: 下載地址 http://awstats.sourceforge.net
    下載最新版本

    安裝
    cd /home/download
    wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz
    tar zxf awstats-7.0.tar.gz
    mv awstats-7.0 awstats
    perl awstats_configure.pl

    在[y/n]選擇時(shí),輸入y
    接著輸入你要分析的域名,輸入tech163
    一路Enter

    配置
    vi /etc/awstats/awstats.tech163.com  閱讀全文
    posted @ 2010-12-10 17:28 陳于喆 閱讀(1231) | 評論 (0)編輯 收藏

         摘要: 下面一個(gè)伴隨了好幾個(gè)工程的時(shí)間操作的工具類,提供了一些常用的時(shí)間操作和計(jì)算的方法,每段時(shí)間都會(huì)進(jìn)行一次整理,希望能去冗余和得到好的擴(kuò)展

    package com.***.product.util;

    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.regex.Pattern;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;


    public class DateUtil {
    protected static Log logger = LogFa  閱讀全文
    posted @ 2010-12-09 18:37 陳于喆 閱讀(456) | 評論 (0)編輯 收藏

         摘要: 大名鼎鼎的分布式緩存系統(tǒng)memcached,在開源社區(qū)中可謂是無人不知無人不曉,memcached支持分布式的橫向擴(kuò)展,但memcached的服務(wù)端卻是單實(shí)例,并無"分布式"的功能,所謂的分布式只是客戶端在存儲(chǔ)的主鍵做分布的存儲(chǔ);還有memcached組件緩存對象,如果組件無進(jìn)行序列化必定無法正確取得數(shù)據(jù);如何使用memcached的java組件來監(jiān)控memcached的運(yùn)行狀態(tài);以上等等的問題是我在日常的工作中碰到并解決的,拿出來跟大家做個(gè)分享^_^

    對象的序列化
    首先memcached是獨(dú)立的服務(wù)器組件,獨(dú)立于應(yīng)用系統(tǒng),從客戶端保存和讀取對象到memcached是必須通過網(wǎng)絡(luò)傳輸,因?yàn)榫W(wǎng)絡(luò)傳輸都是二進(jìn)制的數(shù)據(jù),所以所有的對象都必須經(jīng)過序列化,否則無法存儲(chǔ)到memcahced的服務(wù)器端.
    正如我們以往在集群中應(yīng)用的序列化一樣,memcached的序列化的性能也是往往讓大家頭疼,如果我們對我們的domain類進(jìn)行對象的序列化,第一次序列化時(shí)間會(huì)比較長,但后續(xù)會(huì)優(yōu)化,也就是說序列化最大的消耗不是對象的序列化,而是類的序列化,如果存儲(chǔ)的只是一個(gè)String  閱讀全文
    posted @ 2010-12-08 15:00 陳于喆 閱讀(5619) | 評論 (4)編輯 收藏

         摘要: 很久以前就見過這本1000頁的書<代碼大全>,覺得應(yīng)該是說些寫代碼的東西,沒怎么又興趣去讀它,一次偶然的機(jī)會(huì),發(fā)現(xiàn)自己是誤解了它,<代碼大全>覺得應(yīng)該叫軟件百科好像更合適一點(diǎn),因?yàn)樗锩婧w了架構(gòu),分析,設(shè)計(jì),編程,測試,重構(gòu),面向?qū)ο?調(diào)試,規(guī)范,管理,軟件質(zhì)量控制,協(xié)作,優(yōu)化,開發(fā)工具,注釋,甚至個(gè)性,開發(fā)藝術(shù)等等等,讓人感覺就是一本軟件百科全書.

    書讀的不多,不過剛開始讀了100多頁有一點(diǎn)感悟,所以做了一點(diǎn)記錄,叫讀<代碼大全>的一點(diǎn)記錄之1.

    利用隱喻
    隱喻通過把軟件開發(fā)與你所熟知的事情聯(lián)系在一起,從而使你對其更有深刻的理解,正是因?yàn)槿绱嗽谟?jì)算機(jī)中的發(fā)展不過僅有數(shù)十年的歷史,卻擁有著所有科學(xué)最為豐富多彩的語言

    蓋房子的隱喻
    狗屋
    霹靂啪啦,木材加鐵釘,犯錯(cuò)了怎么辦?無所謂,拆了再來過  閱讀全文
    posted @ 2010-12-07 17:59 陳于喆 閱讀(1251) | 評論 (0)編輯 收藏

         摘要: memcached需要依賴到以下的一系列包
    gcc
    libevent
    glibc-devel

    下載
    cd /home/download
    wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
    wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz

    安裝
    tar -zxvf libevent-1.4.13-stable.tar.gz
    cd libevent-1.4.13-stable
    ./configure --prefix=/usr/local/libevent
    make && make install

    tar -zxvf memcached-1.4.0.tar.gz  閱讀全文
    posted @ 2010-12-07 16:34 陳于喆 閱讀(347) | 評論 (0)編輯 收藏

         摘要: 上個(gè)月參加的網(wǎng)易游戲部QA組的黑盒測試培訓(xùn),覺得挺有意思的,不過最讓我感興趣的是,能和真正專業(yè)的測試人員做了一點(diǎn)討論,發(fā)現(xiàn)站在開發(fā)人員的角度看待測試和站在測試人員看待測試時(shí)完全不同的一種東西.

    程序員和測試人員的心理差別
    程序員和測試人員的心理差別可以簡單的歸納為以下幾種

    成功 / 不成功
    什么才是一次成功的測試,大多數(shù)的開發(fā)人員對自己的程序測試完沒發(fā)現(xiàn)錯(cuò)誤,就會(huì)說"這是一個(gè)成功的測試",如果發(fā)現(xiàn)某些新的錯(cuò)誤則稱"這是不成功的測試";而測試人員剛好相反,當(dāng)然這也是因?yàn)殡p方的職責(zé)不同而引起的

    維護(hù) / 破壞,施虐
    開發(fā)人員對測試往往是一種維護(hù)性的測試,目標(biāo)在于證明自己開發(fā)的程序沒有錯(cuò)誤,可能跟我們開發(fā)人員經(jīng)常做建設(shè)性工作,更傾向創(chuàng)造事物,而不是將事物破壞有關(guān);而測試人員在測試更多是一種破壞的過程,甚至是一種施虐,擺出一種把雞蛋打碎攪黃來挑骨頭的姿態(tài)  閱讀全文
    posted @ 2010-12-03 16:00 陳于喆 閱讀(1728) | 評論 (3)編輯 收藏

    主站蜘蛛池模板: 亚洲综合色婷婷七月丁香| 最近免费mv在线观看动漫| 亚洲av鲁丝一区二区三区| 日本高清免费aaaaa大片视频| 免费女人高潮流视频在线观看| 日本激情猛烈在线看免费观看| 久久精品国产亚洲AV蜜臀色欲 | 精品免费久久久久久成人影院| 鲁丝片一区二区三区免费| 处破女第一次亚洲18分钟| 亚洲图片校园春色| 亚洲AV永久无码精品一百度影院| 免费在线精品视频| 国产片免费福利片永久| 可以免费看的卡一卡二| 亚洲一级毛片免费看| 久久青草免费91观看| 国产一级婬片A视频免费观看| 看免费毛片天天看| 亚洲国产欧美日韩精品一区二区三区| 亚洲视频免费在线看| 18亚洲男同志videos网站| 亚洲va久久久噜噜噜久久男同 | 国产精品亚洲va在线观看| 亚洲熟女综合一区二区三区| 亚洲日产2021三区| 亚洲综合激情视频| 亚洲欧洲国产精品久久| 亚洲视频在线一区二区三区| 亚洲色大成网站www永久| 亚洲一区二区三区夜色| 亚洲午夜免费视频| 精品亚洲麻豆1区2区3区| 亚洲视频精品在线观看| 亚洲麻豆精品果冻传媒| 亚洲精品在线免费看| 亚洲最新在线视频| 亚洲人精品亚洲人成在线| 亚洲一区二区三区高清在线观看 | 亚洲精品在线免费观看视频 | 亚洲AV无码乱码国产麻豆 |