2010年9月4日 #
摘要: 最近接手項(xiàng)目從cocos2dx 2.0 升級(jí)為 3.0 ,至于為什么要升級(jí)我也弄不清楚,只感覺(jué)3.0是要擺脫cocos2d-iphone的身影,這是要作死的態(tài)度嗎,沒(méi)時(shí)間去了解3.0的核心發(fā)生了神馬變化,只為了從cocos2dx2.0經(jīng)常適應(yīng)到3.0做了一些紀(jì)錄,以便查閱和方便正在從2.0到3.0的朋友。 閱讀全文
摘要: 其實(shí)為什么javascript的定時(shí)器會(huì)出現(xiàn)所謂的不可靠或偏差的情況,這是可以理解的,最主要的問(wèn)題是它們并不是所謂的線程,其實(shí)
javascript是運(yùn)行于單線程的環(huán)境中,而定時(shí)器只是計(jì)劃代碼在未來(lái)某個(gè)執(zhí)行的時(shí)間,執(zhí)行的時(shí)間點(diǎn)是不能被保證的,因?yàn)樵陧?yè)面的生命周期中,不同時(shí)間可能存在其他代碼,或各個(gè)瀏覽器的內(nèi)核控制住javascript進(jìn)程。 閱讀全文
javascript是運(yùn)行于單線程的環(huán)境中,而定時(shí)器只是計(jì)劃代碼在未來(lái)某個(gè)執(zhí)行的時(shí)間,執(zhí)行的時(shí)間點(diǎn)是不能被保證的,因?yàn)樵陧?yè)面的生命周期中,不同時(shí)間可能存在其他代碼,或各個(gè)瀏覽器的內(nèi)核控制住javascript進(jìn)程。 閱讀全文
摘要: objectid是一種輕量型的,不同的機(jī)器都能用全局唯一的同種方法輕量的生成它,而不是采用傳統(tǒng)的自增的主鍵策略,因?yàn)樵诙嗯_(tái)服務(wù)器上同步自動(dòng)增加主鍵既費(fèi)力又費(fèi)時(shí),不得不佩服,mongodb從開(kāi)始設(shè)計(jì)就被定義為分布式數(shù)據(jù)庫(kù)。
下面深入一點(diǎn)來(lái)翻翻這個(gè)Objectid的底細(xì),在mongodb集合中的每個(gè)document中都必須有一個(gè)"_id"建,這個(gè)鍵的值可以是任何類(lèi)型的,在默認(rèn)的情況下是個(gè)Objectid對(duì)象。
當(dāng)我們讓一個(gè)collection中插入一條不帶_id的記錄,系統(tǒng)會(huì)自動(dòng)地生成一個(gè)_id的key 閱讀全文
下面深入一點(diǎn)來(lái)翻翻這個(gè)Objectid的底細(xì),在mongodb集合中的每個(gè)document中都必須有一個(gè)"_id"建,這個(gè)鍵的值可以是任何類(lèi)型的,在默認(rèn)的情況下是個(gè)Objectid對(duì)象。
當(dāng)我們讓一個(gè)collection中插入一條不帶_id的記錄,系統(tǒng)會(huì)自動(dòng)地生成一個(gè)_id的key 閱讀全文
摘要: google map測(cè)距的實(shí)現(xiàn)和分析
不斷有傳聞google map在今年的7月1號(hào)之后在大陸停止運(yùn)營(yíng),具體原因是因?yàn)樘斐呐普諉?wè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)地圖的開(kāi)發(fā),預(yù)計(jì)將在6月底前上線,到 時(shí)再跟大家分享一下mapabc的一些開(kāi)發(fā)實(shí)踐。
還是說(shuō)回google map的開(kāi)發(fā),自從上次建了個(gè)qq群就有不少人在問(wèn)測(cè)距怎么實(shí)現(xiàn),當(dāng)然很多人想的是拿來(lái)主義的,當(dāng)時(shí)是拿http://xf.house.163.com /gz/map/000B.html的例子出來(lái),但確實(shí)頁(yè)面上進(jìn)行了封裝也寫(xiě)得比較亂,所以還是比較難以抽離,先給個(gè)簡(jiǎn)單實(shí)現(xiàn)的例子: 閱讀全文
不斷有傳聞google map在今年的7月1號(hào)之后在大陸停止運(yùn)營(yíng),具體原因是因?yàn)樘斐呐普諉?wè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)地圖的開(kāi)發(fā),預(yù)計(jì)將在6月底前上線,到 時(shí)再跟大家分享一下mapabc的一些開(kāi)發(fā)實(shí)踐。
還是說(shuō)回google map的開(kāi)發(fā),自從上次建了個(gè)qq群就有不少人在問(wèn)測(cè)距怎么實(shí)現(xiàn),當(dāng)然很多人想的是拿來(lái)主義的,當(dāng)時(shí)是拿http://xf.house.163.com /gz/map/000B.html的例子出來(lái),但確實(shí)頁(yè)面上進(jìn)行了封裝也寫(xiě)得比較亂,所以還是比較難以抽離,先給個(gè)簡(jiǎn)單實(shí)現(xiàn)的例子: 閱讀全文
摘要: 有朋友去一家大型的互聯(lián)網(wǎng)公司參加了java程序員的筆試,抄下了一些筆試題,可能有的抄的并不全,試了解答一下,有些還真的答不出來(lái)
1.cookie和session的作用以及他們的應(yīng)用場(chǎng)合
2.怎樣讓jvm加載一個(gè)Class的同時(shí)執(zhí)行一段代碼
3.post和get區(qū)別
4.事務(wù)的屬性有哪些?寫(xiě)出spring或jdbc管理事務(wù)的例子
5.實(shí)現(xiàn)一個(gè)高并發(fā)、高性能的hashmap。寫(xiě)出偽代碼
6.解析一段xml,拼接成一個(gè)url。 閱讀全文
1.cookie和session的作用以及他們的應(yīng)用場(chǎng)合
2.怎樣讓jvm加載一個(gè)Class的同時(shí)執(zhí)行一段代碼
3.post和get區(qū)別
4.事務(wù)的屬性有哪些?寫(xiě)出spring或jdbc管理事務(wù)的例子
5.實(shí)現(xiàn)一個(gè)高并發(fā)、高性能的hashmap。寫(xiě)出偽代碼
6.解析一段xml,拼接成一個(gè)url。 閱讀全文
摘要: 好吧,這個(gè)錯(cuò)誤浪費(fèi)了我今天幾個(gè)小時(shí)的時(shí)間,必須把它記錄下來(lái)。
問(wèn)題是這樣的,在啟動(dòng)更新了portmap,exportfs,一些沒(méi)問(wèn)題后,在做/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 閱讀全文
問(wèn)題是這樣的,在啟動(dòng)更新了portmap,exportfs,一些沒(méi)問(wèn)題后,在做/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 閱讀全文
摘要: 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 注釋掉 閱讀全文
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 注釋掉 閱讀全文
摘要: google Map的交互基本都是事件驅(qū)動(dòng)的,這表示js是通過(guò)生成時(shí)間來(lái)響應(yīng)交互的,并且處于監(jiān)聽(tīng)我們?cè)O(shè)定的事件,每個(gè) Google Maps API 對(duì)象都可導(dǎo)出大量已命名的事件。如果程序想要實(shí)現(xiàn)某些事件,則會(huì)為這些事件注冊(cè) Javascript 事件偵聽(tīng)器,并會(huì)在通過(guò)在 google.maps.event 命名空間中注冊(cè) addListener() 事件處理程序接收這些事件時(shí)執(zhí)行相應(yīng)的代碼。
初步的事件響應(yīng)
google map中的所有對(duì)象都可以對(duì)用戶事件監(jiān)聽(tīng)并作出響應(yīng),用戶的事件可以包括鼠標(biāo)或鍵盤(pán),對(duì)象可以監(jiān)聽(tīng)以下這幾種事件:
'click','dblclick','mouseup','mousedown','mouseover','mouseout'
這些事件看上去很像標(biāo)準(zhǔn)的DOM事件,但這些時(shí)間可以在不同的瀏覽器實(shí)現(xiàn)不同的DOM事件模型。 閱讀全文
初步的事件響應(yīng)
google map中的所有對(duì)象都可以對(duì)用戶事件監(jiān)聽(tīng)并作出響應(yīng),用戶的事件可以包括鼠標(biāo)或鍵盤(pán),對(duì)象可以監(jiān)聽(tīng)以下這幾種事件:
'click','dblclick','mouseup','mousedown','mouseover','mouseout'
這些事件看上去很像標(biāo)準(zhǔn)的DOM事件,但這些時(shí)間可以在不同的瀏覽器實(shí)現(xiàn)不同的DOM事件模型。 閱讀全文
摘要: 在微博看到介紹的一款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 閱讀全文
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 閱讀全文
摘要: 本來(lái)是想將房產(chǎn)地圖google map的應(yīng)用記錄一個(gè)系列,但繼1)記錄完之后總找不到時(shí)間繼續(xù)記錄下去,1)中主要解決了Google Maps JavaScript API V3 與 Google Local Search API兩者由于版本問(wèn)題帶來(lái)的一系列麻煩,思路是使用一個(gè)iframe作為兼容的跳板,子頁(yè)面應(yīng)用Local Search API獲得查詢(xún)的result后返回給父頁(yè)面,下面再記錄一些地圖坐標(biāo)的定位和一些UI的組成。
可參考 http://xf.house.163.com/gz/map/00Xa.html 閱讀全文
可參考 http://xf.house.163.com/gz/map/00Xa.html 閱讀全文
摘要: 一直以來(lái)似乎都有一個(gè)錯(cuò)覺(jué),認(rèn)為map跟其他的集合類(lèi)一樣繼承自Collection,其實(shí)不然,Map和Collection在結(jié)構(gòu)層次上是沒(méi)有任何關(guān)系的,通過(guò)查看源碼可以發(fā)現(xiàn)map所有操作都是基于key-value對(duì),而不是單獨(dú)的元素。
下面以HashMap為例子,深入對(duì)Map的實(shí)現(xiàn)機(jī)制進(jìn)行了解,在這個(gè)過(guò)程中,請(qǐng)打開(kāi)jdk源碼。
Hash算法
HashMap使用Hash算法,所以在解剖HashMap之間,需要先簡(jiǎn)單的了解Hash算法,Hash算法一般也成為散列算法,通過(guò)散列算法將任意的值轉(zhuǎn)化成固定的長(zhǎng)度輸出,該輸出就是散列值,這是一種壓縮映射,也就是,散列值的空間遠(yuǎn)遠(yuǎn)小于輸入的值空間。
簡(jiǎn)單的說(shuō),hash算法的意義在于提供了一種快速存取數(shù)據(jù)的方法,它用一種算法建立鍵值與真實(shí)值之間的對(duì)應(yīng)關(guān)系,(每一個(gè)真實(shí)值只能有一個(gè)鍵值,但是一個(gè)鍵值可以對(duì)應(yīng)多個(gè)真實(shí)值),這樣可以快速在數(shù)組等里面存取數(shù)據(jù)。
下面我們建立一個(gè)HashMap,然后往里面放入12對(duì)key-value,這個(gè)HashMap的默認(rèn)數(shù)組長(zhǎng)度為16,我們的key 閱讀全文
下面以HashMap為例子,深入對(duì)Map的實(shí)現(xiàn)機(jī)制進(jìn)行了解,在這個(gè)過(guò)程中,請(qǐng)打開(kāi)jdk源碼。
Hash算法
HashMap使用Hash算法,所以在解剖HashMap之間,需要先簡(jiǎn)單的了解Hash算法,Hash算法一般也成為散列算法,通過(guò)散列算法將任意的值轉(zhuǎn)化成固定的長(zhǎng)度輸出,該輸出就是散列值,這是一種壓縮映射,也就是,散列值的空間遠(yuǎn)遠(yuǎn)小于輸入的值空間。
簡(jiǎn)單的說(shuō),hash算法的意義在于提供了一種快速存取數(shù)據(jù)的方法,它用一種算法建立鍵值與真實(shí)值之間的對(duì)應(yīng)關(guān)系,(每一個(gè)真實(shí)值只能有一個(gè)鍵值,但是一個(gè)鍵值可以對(duì)應(yīng)多個(gè)真實(shí)值),這樣可以快速在數(shù)組等里面存取數(shù)據(jù)。
下面我們建立一個(gè)HashMap,然后往里面放入12對(duì)key-value,這個(gè)HashMap的默認(rèn)數(shù)組長(zhǎng)度為16,我們的key 閱讀全文
摘要: 以前的房產(chǎn)地圖一直都是使用有道地圖,雖然有道地圖是很好,但是為了更好,還是決定使用google地圖來(lái)重新開(kāi)發(fā)^_^,下面是一個(gè)開(kāi)發(fā)完畢的簡(jiǎn)單應(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 文檔讀起來(lái)真的是很清晰,各種demo也很齊全,并且論壇的擁有巨大的論壇支持,對(duì)比了一下Google Maps JavaScript API V3 和 V2 的版本,雖然第3版的 Google Maps API 看上去跟第2版挺相識(shí),但在內(nèi)在機(jī)制上有了較大的變化,尤其在對(duì)移動(dòng)瀏覽器的支持上,專(zhuān)門(mén)針對(duì)iphone和android 閱讀全文
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 文檔讀起來(lái)真的是很清晰,各種demo也很齊全,并且論壇的擁有巨大的論壇支持,對(duì)比了一下Google Maps JavaScript API V3 和 V2 的版本,雖然第3版的 Google Maps API 看上去跟第2版挺相識(shí),但在內(nèi)在機(jī)制上有了較大的變化,尤其在對(duì)移動(dòng)瀏覽器的支持上,專(zhuān)門(mén)針對(duì)iphone和android 閱讀全文
摘要: 對(duì)于進(jìn)程管理工具平時(shí)大多用的是ps,kill,top,sleep等等這些命令,平時(shí)linux的一些指令我都會(huì)做一些記錄,本著好記性不如爛博客的精神,也把進(jìn)程管理的命令做一點(diǎn)系統(tǒng)性的記錄,參考資料基本是鳥(niǎo)哥還有網(wǎng)上的一些文章。
ps
ps命令主要是查看系統(tǒng)進(jìn)程的狀態(tài),平時(shí)最常用的命令是ps aux,然后再使用管道導(dǎo)向到grep查找特定的進(jìn)程,然后進(jìn)此特定進(jìn)程進(jìn)行操作。
要對(duì)進(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)行了多長(zhǎng)時(shí)間,以及進(jìn)行使用的資源和進(jìn)程的優(yōu)先級(jí),這些信息對(duì)我們都有很重要的作用,當(dāng)我們使用ps aux可以獲得終端所有用戶的有關(guān)進(jìn)程信息。 閱讀全文
ps
ps命令主要是查看系統(tǒng)進(jìn)程的狀態(tài),平時(shí)最常用的命令是ps aux,然后再使用管道導(dǎo)向到grep查找特定的進(jìn)程,然后進(jìn)此特定進(jìn)程進(jìn)行操作。
要對(duì)進(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)行了多長(zhǎng)時(shí)間,以及進(jìn)行使用的資源和進(jìn)程的優(yōu)先級(jí),這些信息對(duì)我們都有很重要的作用,當(dāng)我們使用ps aux可以獲得終端所有用戶的有關(guān)進(jìn)程信息。 閱讀全文
摘要: 問(wèn)題是這樣的,有個(gè)腳本需要10秒鐘執(zhí)行一次,腳本具體功能就不細(xì)說(shuō),定時(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,小心咯,如果沒(méi)有加sleep 10,你的機(jī)器很快就會(huì)耗盡資源,負(fù)載會(huì)狂飆。
接著需要把腳本用后臺(tái)守護(hù)進(jìn)程來(lái)運(yùn)行,避免用戶退出而導(dǎo)致腳本失效 閱讀全文
腳本
vi hello.sh
#!/bin/sh
while :
do
echo `date` >> /home/chenyz/1 //這里是任務(wù)的實(shí)現(xiàn)
sleep 10
done
這里的程序運(yùn)行時(shí)間間隔是10s,小心咯,如果沒(méi)有加sleep 10,你的機(jī)器很快就會(huì)耗盡資源,負(fù)載會(huì)狂飆。
接著需要把腳本用后臺(tái)守護(hù)進(jìn)程來(lái)運(yùn)行,避免用戶退出而導(dǎo)致腳本失效 閱讀全文
摘要: 對(duì)于用戶管理工具平時(shí)大多用的是groupadd,useradd,usermod等等這些命令,平時(shí)linux的一些指令我都會(huì)做一些記錄,本著好記性不如爛博客的精神,也把用戶管理的命令做一點(diǎn)系統(tǒng)性的記錄,參考資料基本是鳥(niǎo)哥還有網(wǎng)上的一些文章。
用戶組的管理
linux可以對(duì)一個(gè)用戶組中的所有用戶進(jìn)行集中的管理,用戶組的管理包括用戶組添加,刪除修改,實(shí)際上這些操作就是對(duì)/etc/group文件作出修改。
groupadd 新增一個(gè)用戶組
groupadd [-g gid [-o]] [-r] [-f] group
-g 其中g(shù)id是指定新用戶組的標(biāo)識(shí)號(hào),除非配合使用-o參數(shù),不然該值必須是唯一的
-o 標(biāo)識(shí)新用戶組gid可以和系統(tǒng)中原有的用戶組的gid值相同
實(shí)例:
groupadd chenyuzhe1
groupadd -g 789 chenyuzhe2
groupdel 刪除用戶組
實(shí)例:
groupdel chenyuzhe1 閱讀全文
用戶組的管理
linux可以對(duì)一個(gè)用戶組中的所有用戶進(jìn)行集中的管理,用戶組的管理包括用戶組添加,刪除修改,實(shí)際上這些操作就是對(duì)/etc/group文件作出修改。
groupadd 新增一個(gè)用戶組
groupadd [-g gid [-o]] [-r] [-f] group
-g 其中g(shù)id是指定新用戶組的標(biāo)識(shí)號(hào),除非配合使用-o參數(shù),不然該值必須是唯一的
-o 標(biāo)識(shí)新用戶組gid可以和系統(tǒng)中原有的用戶組的gid值相同
實(shí)例:
groupadd chenyuzhe1
groupadd -g 789 chenyuzhe2
groupdel 刪除用戶組
實(shí)例:
groupdel chenyuzhe1 閱讀全文
摘要: 對(duì)于磁盤(pán)管理工具平時(shí)大多用的是df,du這些命令,平時(shí)linux的一些指令我都會(huì)做一些記錄,本著好記性不如爛博客的精神,先把磁盤(pán)管理的命令做一點(diǎn)系統(tǒng)性的記錄。
du
du的英文為:disk usage,含義是磁盤(pán)空間使用情況,功能是逐級(jí)進(jìn)入指定目錄的每一個(gè)子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊的情況,如果沒(méi)有指定目錄,則對(duì)當(dāng)前的目錄進(jìn)行統(tǒng)計(jì)。
du的命令各個(gè)選項(xiàng)含義如下:
a:顯示全部目錄和其次目錄下的每個(gè)檔案所占的磁盤(pán)空間
s:只顯示各檔案大小的總合
b:大小用bytes來(lái)表示
x:跳過(guò)在不同文件系統(tǒng)上的目錄不予統(tǒng)計(jì)
a:遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數(shù)據(jù)塊數(shù) 閱讀全文
du
du的英文為:disk usage,含義是磁盤(pán)空間使用情況,功能是逐級(jí)進(jìn)入指定目錄的每一個(gè)子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊的情況,如果沒(méi)有指定目錄,則對(duì)當(dāng)前的目錄進(jìn)行統(tǒng)計(jì)。
du的命令各個(gè)選項(xiàng)含義如下:
a:顯示全部目錄和其次目錄下的每個(gè)檔案所占的磁盤(pán)空間
s:只顯示各檔案大小的總合
b:大小用bytes來(lái)表示
x:跳過(guò)在不同文件系統(tǒng)上的目錄不予統(tǒng)計(jì)
a:遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數(shù)據(jù)塊數(shù) 閱讀全文
摘要: List在數(shù)據(jù)結(jié)構(gòu)中表現(xiàn)為是線性表的方式,其元素以線性方式存儲(chǔ),集合中允許存放重復(fù)的對(duì)象,List接口主要的實(shí)現(xiàn)類(lèi)有
ArrayList
ArrayList 其實(shí)就是一組長(zhǎng)度可變的數(shù)組,當(dāng)實(shí)例化了一個(gè)ArrayList,該數(shù)據(jù)也被實(shí)例化了,當(dāng)向集合中添加對(duì)象時(shí),數(shù)組的大小也隨著改變,這樣它所帶來(lái)的有優(yōu)點(diǎn)是快速的隨機(jī)訪問(wèn),即使訪問(wèn)每個(gè)元素所帶來(lái)的性能問(wèn)題也是很小的,但缺點(diǎn)就是想其中添加或刪除對(duì)象速度慢,當(dāng)你創(chuàng)建的數(shù)組是不確定其容量,所以當(dāng)我們改變這個(gè)數(shù)組時(shí)就必須在內(nèi)存中做很多的處理,如你想要數(shù)組中任意兩個(gè)元素中間添加對(duì)象,那么在內(nèi)存中數(shù)組要移動(dòng)所有后面的對(duì)象。
LinkedList
LinkedList 是通過(guò)節(jié)點(diǎn)的連接實(shí)現(xiàn)鏈表的數(shù)據(jù)結(jié)構(gòu),向linkedList中插入或刪除元素的速度是特別快,而隨機(jī)訪問(wèn)的速度相對(duì)較慢,這個(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)也是一樣。操作對(duì)象只需要改變節(jié)點(diǎn)的鏈接,新節(jié)點(diǎn)可以存放在 閱讀全文
ArrayList
ArrayList 其實(shí)就是一組長(zhǎng)度可變的數(shù)組,當(dāng)實(shí)例化了一個(gè)ArrayList,該數(shù)據(jù)也被實(shí)例化了,當(dāng)向集合中添加對(duì)象時(shí),數(shù)組的大小也隨著改變,這樣它所帶來(lái)的有優(yōu)點(diǎn)是快速的隨機(jī)訪問(wèn),即使訪問(wèn)每個(gè)元素所帶來(lái)的性能問(wèn)題也是很小的,但缺點(diǎn)就是想其中添加或刪除對(duì)象速度慢,當(dāng)你創(chuàng)建的數(shù)組是不確定其容量,所以當(dāng)我們改變這個(gè)數(shù)組時(shí)就必須在內(nèi)存中做很多的處理,如你想要數(shù)組中任意兩個(gè)元素中間添加對(duì)象,那么在內(nèi)存中數(shù)組要移動(dòng)所有后面的對(duì)象。
LinkedList
LinkedList 是通過(guò)節(jié)點(diǎn)的連接實(shí)現(xiàn)鏈表的數(shù)據(jù)結(jié)構(gòu),向linkedList中插入或刪除元素的速度是特別快,而隨機(jī)訪問(wèn)的速度相對(duì)較慢,這個(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)也是一樣。操作對(duì)象只需要改變節(jié)點(diǎn)的鏈接,新節(jié)點(diǎn)可以存放在 閱讀全文
摘要: 我們都知道Set是一種最簡(jiǎn)單的集合,對(duì)象的排序無(wú)特定的規(guī)則,集合里面存放的是對(duì)象的引用,所以沒(méi)有重復(fù)的對(duì)象,在上面的代碼中,程序創(chuàng)建了a、b、 c、d、e五個(gè)變量,其中a和c,b和e所引用的字符串是一致的,然后向set添加了這5個(gè)變量。打印出來(lái)的size()只有3個(gè),實(shí)際上向集合加入的只有3個(gè)對(duì)象,在執(zhí)行Set的add()方法時(shí)已經(jīng)進(jìn)行了判斷這個(gè)對(duì)象是否存在于集合,如果對(duì)象已經(jīng)存在則不繼續(xù)執(zhí)行。
Set的接口有兩個(gè)實(shí)現(xiàn)類(lèi),HashSet和TreeSet,HashSet是按照哈希算法來(lái)進(jìn)行存取集合中的對(duì)象,存取速度比較快,TreeSet類(lèi)顯示了SortedSet接口,具有排序功能
HashSet
HashSet是按照哈希算法來(lái)存取集合中的對(duì)象,具有很好的存取和查找性能,當(dāng)向集合中加入一個(gè)對(duì)象時(shí),HashSet會(huì)調(diào)用對(duì)象的hashCode()方法來(lái)獲取哈希碼,然后根據(jù)這個(gè)哈希嗎來(lái)計(jì)算對(duì)象在集合中的存放位置。
在Object類(lèi)中定義了hashCode()和equal(),equal()是按照內(nèi)存地址比較對(duì)象是否相同,如果 object1.equal( 閱讀全文
Set的接口有兩個(gè)實(shí)現(xiàn)類(lèi),HashSet和TreeSet,HashSet是按照哈希算法來(lái)進(jìn)行存取集合中的對(duì)象,存取速度比較快,TreeSet類(lèi)顯示了SortedSet接口,具有排序功能
HashSet
HashSet是按照哈希算法來(lái)存取集合中的對(duì)象,具有很好的存取和查找性能,當(dāng)向集合中加入一個(gè)對(duì)象時(shí),HashSet會(huì)調(diào)用對(duì)象的hashCode()方法來(lái)獲取哈希碼,然后根據(jù)這個(gè)哈希嗎來(lái)計(jì)算對(duì)象在集合中的存放位置。
在Object類(lèi)中定義了hashCode()和equal(),equal()是按照內(nèi)存地址比較對(duì)象是否相同,如果 object1.equal( 閱讀全文
摘要: 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: 閱讀全文
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: 閱讀全文
摘要: 由于歷史原因,幾個(gè)項(xiàng)目都選用hessian作為web service的實(shí)現(xiàn)方式,hessian的確是非常輕量級(jí),基于http協(xié)議進(jìn)行傳輸,通過(guò)自定義的串行化機(jī)制將請(qǐng)求信息進(jìn)行序列化,以二進(jìn)制傳輸節(jié)省了不少的開(kāi)銷(xiāo),速度跟socket差不多.客戶端和服務(wù)器發(fā)起和接收請(qǐng)求都是通過(guò)spring提供的hessian api進(jìn)行請(qǐng)求和接收,但是在服務(wù)端中并沒(méi)有記錄和控制遠(yuǎn)端ip地址和主機(jī)的信息,所以需要對(duì)源碼進(jìn)行一些重寫(xiě)
對(duì)org.springframework.remoting.caucho.HessianServiceExporter進(jìn)行重寫(xiě)
/**
* 重寫(xiě)HessianServiceExporter.handleRequest(),攔截獲取遠(yuǎn)端調(diào)用信息
* @author chenyz
*
*/
public class HouseHessianServiceExporter extends HessianServiceExporter {
private static S 閱讀全文
對(duì)org.springframework.remoting.caucho.HessianServiceExporter進(jìn)行重寫(xiě)
/**
* 重寫(xiě)HessianServiceExporter.handleRequest(),攔截獲取遠(yuǎn)端調(diào)用信息
* @author chenyz
*
*/
public class HouseHessianServiceExporter extends HessianServiceExporter {
private static S 閱讀全文
摘要: 目前幾套系統(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請(qǐng)求連接webservice服務(wù)并沒(méi)有對(duì)連接超時(shí)進(jìn)行相關(guān)的參數(shù)設(shè)置,所以當(dāng)網(wǎng)絡(luò)出現(xiàn)問(wèn)題就會(huì)造成整個(gè)hessian處理的阻塞,進(jìn)而阻塞整個(gè)線程后續(xù)的處理
以下是HessianProxyFactory對(duì)連接處理的源碼
protected URLConnection openConnection(URL url)
throws IOException
{
URL 閱讀全文
1.HessianProxyFactory
查看HessianProxyFactory源碼后發(fā)現(xiàn),hessian在創(chuàng)建http請(qǐng)求連接webservice服務(wù)并沒(méi)有對(duì)連接超時(shí)進(jìn)行相關(guān)的參數(shù)設(shè)置,所以當(dāng)網(wǎng)絡(luò)出現(xiàn)問(wèn)題就會(huì)造成整個(gè)hessian處理的阻塞,進(jìn)而阻塞整個(gè)線程后續(xù)的處理
以下是HessianProxyFactory對(duì)連接處理的源碼
protected URLConnection openConnection(URL url)
throws IOException
{
URL 閱讀全文
摘要: 對(duì)很久以前的一個(gè)bug進(jìn)行分析和總結(jié)
function parsePost(data, action) {
try {
var postData = eval("(" + data + ")");
// TO DO1
} catch (e) {
// TO DO2
}
}
這是一段頁(yè)面的老代碼,data是數(shù)據(jù)庫(kù)body字段,既是用戶錄入并取出的數(shù)據(jù),由于業(yè)務(wù)的關(guān)系,data是以json格式保存的,為了使數(shù)據(jù)能實(shí)現(xiàn)兼容,這里使用try...catch...方式處理,如果變量data能被轉(zhuǎn)換成對(duì)象,則執(zhí)行TO DO1,否則執(zhí)行TO DO2.
我們知道eval的作用很簡(jiǎn)單,就是把一段字符串傳遞給js解析器,由javascript解析器將這段字符串解釋成為 閱讀全文
function parsePost(data, action) {
try {
var postData = eval("(" + data + ")");
// TO DO1
} catch (e) {
// TO DO2
}
}
這是一段頁(yè)面的老代碼,data是數(shù)據(jù)庫(kù)body字段,既是用戶錄入并取出的數(shù)據(jù),由于業(yè)務(wù)的關(guān)系,data是以json格式保存的,為了使數(shù)據(jù)能實(shí)現(xiàn)兼容,這里使用try...catch...方式處理,如果變量data能被轉(zhuǎn)換成對(duì)象,則執(zhí)行TO DO1,否則執(zhí)行TO DO2.
我們知道eval的作用很簡(jiǎn)單,就是把一段字符串傳遞給js解析器,由javascript解析器將這段字符串解釋成為 閱讀全文
摘要: 上次因工作的需求對(duì)一臺(tái)apache的log做了一次整體的分析,所以順便也對(duì)apache的日志分析做下簡(jiǎn)單的介紹,主要參考apache官網(wǎng)的Log Files,手冊(cè)參照 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為訪問(wèn)日志,記錄所有對(duì)apache服務(wù)器進(jìn)行請(qǐng)求的訪問(wèn),它的位置和內(nèi)容由CustomLog指令控制,LogFormat指令可以用來(lái)簡(jiǎn)化該日志的內(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 閱讀全文
一.日志分析
如果apache的安裝時(shí)采用默認(rèn)的配置,那么在/logs目錄下就會(huì)生成兩個(gè)文件,分別是access_log和error_log
1.access_log
access_log為訪問(wèn)日志,記錄所有對(duì)apache服務(wù)器進(jìn)行請(qǐng)求的訪問(wèn),它的位置和內(nèi)容由CustomLog指令控制,LogFormat指令可以用來(lái)簡(jiǎn)化該日志的內(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 閱讀全文
摘要: 下載地址 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 閱讀全文
下載最新版本
安裝
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 閱讀全文
摘要: 下面一個(gè)伴隨了好幾個(gè)工程的時(shí)間操作的工具類(lèi),提供了一些常用的時(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 閱讀全文
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 閱讀全文
摘要: 大名鼎鼎的分布式緩存系統(tǒng)memcached,在開(kāi)源社區(qū)中可謂是無(wú)人不知無(wú)人不曉,memcached支持分布式的橫向擴(kuò)展,但memcached的服務(wù)端卻是單實(shí)例,并無(wú)"分布式"的功能,所謂的分布式只是客戶端在存儲(chǔ)的主鍵做分布的存儲(chǔ);還有memcached組件緩存對(duì)象,如果組件無(wú)進(jìn)行序列化必定無(wú)法正確取得數(shù)據(jù);如何使用memcached的java組件來(lái)監(jiān)控memcached的運(yùn)行狀態(tài);以上等等的問(wèn)題是我在日常的工作中碰到并解決的,拿出來(lái)跟大家做個(gè)分享^_^
對(duì)象的序列化
首先memcached是獨(dú)立的服務(wù)器組件,獨(dú)立于應(yīng)用系統(tǒng),從客戶端保存和讀取對(duì)象到memcached是必須通過(guò)網(wǎng)絡(luò)傳輸,因?yàn)榫W(wǎng)絡(luò)傳輸都是二進(jìn)制的數(shù)據(jù),所以所有的對(duì)象都必須經(jīng)過(guò)序列化,否則無(wú)法存儲(chǔ)到memcahced的服務(wù)器端.
正如我們以往在集群中應(yīng)用的序列化一樣,memcached的序列化的性能也是往往讓大家頭疼,如果我們對(duì)我們的domain類(lèi)進(jìn)行對(duì)象的序列化,第一次序列化時(shí)間會(huì)比較長(zhǎng),但后續(xù)會(huì)優(yōu)化,也就是說(shuō)序列化最大的消耗不是對(duì)象的序列化,而是類(lèi)的序列化,如果存儲(chǔ)的只是一個(gè)String 閱讀全文
對(duì)象的序列化
首先memcached是獨(dú)立的服務(wù)器組件,獨(dú)立于應(yīng)用系統(tǒng),從客戶端保存和讀取對(duì)象到memcached是必須通過(guò)網(wǎng)絡(luò)傳輸,因?yàn)榫W(wǎng)絡(luò)傳輸都是二進(jìn)制的數(shù)據(jù),所以所有的對(duì)象都必須經(jīng)過(guò)序列化,否則無(wú)法存儲(chǔ)到memcahced的服務(wù)器端.
正如我們以往在集群中應(yīng)用的序列化一樣,memcached的序列化的性能也是往往讓大家頭疼,如果我們對(duì)我們的domain類(lèi)進(jìn)行對(duì)象的序列化,第一次序列化時(shí)間會(huì)比較長(zhǎng),但后續(xù)會(huì)優(yōu)化,也就是說(shuō)序列化最大的消耗不是對(duì)象的序列化,而是類(lèi)的序列化,如果存儲(chǔ)的只是一個(gè)String 閱讀全文
摘要: 很久以前就見(jiàn)過(guò)這本1000頁(yè)的書(shū)<代碼大全>,覺(jué)得應(yīng)該是說(shuō)些寫(xiě)代碼的東西,沒(méi)怎么又興趣去讀它,一次偶然的機(jī)會(huì),發(fā)現(xiàn)自己是誤解了它,<代碼大全>覺(jué)得應(yīng)該叫軟件百科好像更合適一點(diǎn),因?yàn)樗锩婧w了架構(gòu),分析,設(shè)計(jì),編程,測(cè)試,重構(gòu),面向?qū)ο?調(diào)試,規(guī)范,管理,軟件質(zhì)量控制,協(xié)作,優(yōu)化,開(kāi)發(fā)工具,注釋,甚至個(gè)性,開(kāi)發(fā)藝術(shù)等等等,讓人感覺(jué)就是一本軟件百科全書(shū).
書(shū)讀的不多,不過(guò)剛開(kāi)始讀了100多頁(yè)有一點(diǎn)感悟,所以做了一點(diǎn)記錄,叫讀<代碼大全>的一點(diǎn)記錄之1.
利用隱喻
隱喻通過(guò)把軟件開(kāi)發(fā)與你所熟知的事情聯(lián)系在一起,從而使你對(duì)其更有深刻的理解,正是因?yàn)槿绱嗽谟?jì)算機(jī)中的發(fā)展不過(guò)僅有數(shù)十年的歷史,卻擁有著所有科學(xué)最為豐富多彩的語(yǔ)言
蓋房子的隱喻
狗屋
霹靂啪啦,木材加鐵釘,犯錯(cuò)了怎么辦?無(wú)所謂,拆了再來(lái)過(guò) 閱讀全文
書(shū)讀的不多,不過(guò)剛開(kāi)始讀了100多頁(yè)有一點(diǎn)感悟,所以做了一點(diǎn)記錄,叫讀<代碼大全>的一點(diǎn)記錄之1.
利用隱喻
隱喻通過(guò)把軟件開(kāi)發(fā)與你所熟知的事情聯(lián)系在一起,從而使你對(duì)其更有深刻的理解,正是因?yàn)槿绱嗽谟?jì)算機(jī)中的發(fā)展不過(guò)僅有數(shù)十年的歷史,卻擁有著所有科學(xué)最為豐富多彩的語(yǔ)言
蓋房子的隱喻
狗屋
霹靂啪啦,木材加鐵釘,犯錯(cuò)了怎么辦?無(wú)所謂,拆了再來(lái)過(guò) 閱讀全文
摘要: memcached需要依賴(lài)到以下的一系列包
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 閱讀全文
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 閱讀全文
摘要: 上個(gè)月參加的網(wǎng)易游戲部QA組的黑盒測(cè)試培訓(xùn),覺(jué)得挺有意思的,不過(guò)最讓我感興趣的是,能和真正專(zhuān)業(yè)的測(cè)試人員做了一點(diǎn)討論,發(fā)現(xiàn)站在開(kāi)發(fā)人員的角度看待測(cè)試和站在測(cè)試人員看待測(cè)試時(shí)完全不同的一種東西.
程序員和測(cè)試人員的心理差別
程序員和測(cè)試人員的心理差別可以簡(jiǎn)單的歸納為以下幾種
成功 / 不成功
什么才是一次成功的測(cè)試,大多數(shù)的開(kāi)發(fā)人員對(duì)自己的程序測(cè)試完沒(méi)發(fā)現(xiàn)錯(cuò)誤,就會(huì)說(shuō)"這是一個(gè)成功的測(cè)試",如果發(fā)現(xiàn)某些新的錯(cuò)誤則稱(chēng)"這是不成功的測(cè)試";而測(cè)試人員剛好相反,當(dāng)然這也是因?yàn)殡p方的職責(zé)不同而引起的
維護(hù) / 破壞,施虐
開(kāi)發(fā)人員對(duì)測(cè)試往往是一種維護(hù)性的測(cè)試,目標(biāo)在于證明自己開(kāi)發(fā)的程序沒(méi)有錯(cuò)誤,可能跟我們開(kāi)發(fā)人員經(jīng)常做建設(shè)性工作,更傾向創(chuàng)造事物,而不是將事物破壞有關(guān);而測(cè)試人員在測(cè)試更多是一種破壞的過(guò)程,甚至是一種施虐,擺出一種把雞蛋打碎攪黃來(lái)挑骨頭的姿態(tài) 閱讀全文
程序員和測(cè)試人員的心理差別
程序員和測(cè)試人員的心理差別可以簡(jiǎn)單的歸納為以下幾種
成功 / 不成功
什么才是一次成功的測(cè)試,大多數(shù)的開(kāi)發(fā)人員對(duì)自己的程序測(cè)試完沒(méi)發(fā)現(xiàn)錯(cuò)誤,就會(huì)說(shuō)"這是一個(gè)成功的測(cè)試",如果發(fā)現(xiàn)某些新的錯(cuò)誤則稱(chēng)"這是不成功的測(cè)試";而測(cè)試人員剛好相反,當(dāng)然這也是因?yàn)殡p方的職責(zé)不同而引起的
維護(hù) / 破壞,施虐
開(kāi)發(fā)人員對(duì)測(cè)試往往是一種維護(hù)性的測(cè)試,目標(biāo)在于證明自己開(kāi)發(fā)的程序沒(méi)有錯(cuò)誤,可能跟我們開(kāi)發(fā)人員經(jīng)常做建設(shè)性工作,更傾向創(chuàng)造事物,而不是將事物破壞有關(guān);而測(cè)試人員在測(cè)試更多是一種破壞的過(guò)程,甚至是一種施虐,擺出一種把雞蛋打碎攪黃來(lái)挑骨頭的姿態(tài) 閱讀全文
摘要: PHP-FPM 是 一個(gè)PHP FastCGI進(jìn)程管理器
FastCGI是一個(gè)可伸縮的,高速地在web server和腳本語(yǔ)言間交互的接口。FastCGI的主要優(yōu)點(diǎn)是把動(dòng)態(tài)語(yǔ)言和web server分離開(kāi)來(lái)。這種技術(shù)允許把web server和動(dòng)態(tài)語(yǔ)言運(yùn)行在不同的主機(jī)上,以大規(guī)模擴(kuò)展和改進(jìn)安全性而不損失生產(chǎn)效率。
php-fpm可以和任何支持遠(yuǎn)端FastCGI的web server工作
安裝
php-5.2.13.tar.gz
php-5.2.13-fpm-0.5.14.diff.gz
tar zxvf php-5.2.13.tar.gz
gunzip php-5.2.13-fpm-0.5.14.diff.gz
patch -d php-5.2.13 -p1 < php-5.2.13-fpm-0.5.14.diff (給php源碼打fpm補(bǔ)丁)
cd php-5.2.13
./configure --prefix=/usr/local/p 閱讀全文
FastCGI是一個(gè)可伸縮的,高速地在web server和腳本語(yǔ)言間交互的接口。FastCGI的主要優(yōu)點(diǎn)是把動(dòng)態(tài)語(yǔ)言和web server分離開(kāi)來(lái)。這種技術(shù)允許把web server和動(dòng)態(tài)語(yǔ)言運(yùn)行在不同的主機(jī)上,以大規(guī)模擴(kuò)展和改進(jìn)安全性而不損失生產(chǎn)效率。
php-fpm可以和任何支持遠(yuǎn)端FastCGI的web server工作
安裝
php-5.2.13.tar.gz
php-5.2.13-fpm-0.5.14.diff.gz
tar zxvf php-5.2.13.tar.gz
gunzip php-5.2.13-fpm-0.5.14.diff.gz
patch -d php-5.2.13 -p1 < php-5.2.13-fpm-0.5.14.diff (給php源碼打fpm補(bǔ)丁)
cd php-5.2.13
./configure --prefix=/usr/local/p 閱讀全文
摘要: mysql的官方網(wǎng)站是 http://www.mysql.com
tar zxvf mysql-5.1.50.tar.gz
cd mysql-5.1.50
./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client
--enable-local-infile --with-low-memory
make && make install
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf 閱讀全文
tar zxvf mysql-5.1.50.tar.gz
cd mysql-5.1.50
./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client
--enable-local-infile --with-low-memory
make && make install
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf 閱讀全文
摘要: nginx的官方網(wǎng)站是:http://www.nginx.org
Nginx ("engine x") 是一個(gè)高性能的 HTTP 和 反向代理 服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問(wèn)量第二的 Rambler.ru 站點(diǎn)開(kāi)發(fā)的,它已經(jīng)在該站點(diǎn)運(yùn)行超過(guò)兩年半了。Igor 將源代碼以類(lèi)BSD許可證的形式發(fā)布。盡管還是測(cè)試版,但是,Nginx 已經(jīng)因?yàn)樗姆€(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名了。
nginx的特性
1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系統(tǒng)下安裝和使用
2.Nginx 本身只是一個(gè)HTTP和反向代理服務(wù)器,它無(wú)法像Apache一樣通過(guò)安裝各種模塊來(lái)支持不同的頁(yè)面腳本,例如PHP、CGI等
3.Nginx 支持簡(jiǎn)單的負(fù)載均衡和容錯(cuò)
4.支持作為基本 HTTP 服務(wù)器的功能,例如日志、壓縮、Byte ranges、Chunked responses、SSL、虛擬主機(jī) 閱讀全文
Nginx ("engine x") 是一個(gè)高性能的 HTTP 和 反向代理 服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問(wèn)量第二的 Rambler.ru 站點(diǎn)開(kāi)發(fā)的,它已經(jīng)在該站點(diǎn)運(yùn)行超過(guò)兩年半了。Igor 將源代碼以類(lèi)BSD許可證的形式發(fā)布。盡管還是測(cè)試版,但是,Nginx 已經(jīng)因?yàn)樗姆€(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名了。
nginx的特性
1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系統(tǒng)下安裝和使用
2.Nginx 本身只是一個(gè)HTTP和反向代理服務(wù)器,它無(wú)法像Apache一樣通過(guò)安裝各種模塊來(lái)支持不同的頁(yè)面腳本,例如PHP、CGI等
3.Nginx 支持簡(jiǎn)單的負(fù)載均衡和容錯(cuò)
4.支持作為基本 HTTP 服務(wù)器的功能,例如日志、壓縮、Byte ranges、Chunked responses、SSL、虛擬主機(jī) 閱讀全文
摘要: 1.卸載rpm包
通過(guò) rpm -qa | grep httpd 搜索出
httpd-2.2.3-43.el5.centos.3
再
rpm -e httpd-2.2.3-43.el5.centos.3
如果出現(xiàn)提示有其他相關(guān)包依賴(lài)此rpm,可以選擇強(qiáng)制卸載
2.yum 或 apt-get 卸載
yum -y remove httpd
yum -y remove httpd* 卸載多個(gè)相識(shí)的軟件
3.卸載自編譯包
make uninstall 或 手動(dòng)刪除 閱讀全文
通過(guò) rpm -qa | grep httpd 搜索出
httpd-2.2.3-43.el5.centos.3
再
rpm -e httpd-2.2.3-43.el5.centos.3
如果出現(xiàn)提示有其他相關(guān)包依賴(lài)此rpm,可以選擇強(qiáng)制卸載
2.yum 或 apt-get 卸載
yum -y remove httpd
yum -y remove httpd* 卸載多個(gè)相識(shí)的軟件
3.卸載自編譯包
make uninstall 或 手動(dòng)刪除 閱讀全文
摘要: NET-SNMP的官方網(wǎng)站是:http://www.net-snmp.org
先閱讀一下官網(wǎng)的一點(diǎn)說(shuō)明(詳細(xì)見(jiàn)官網(wǎng))
Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg.routers), computer equipment and even devices like UPSs. Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6
...
閱讀全文
先閱讀一下官網(wǎng)的一點(diǎn)說(shuō)明(詳細(xì)見(jiàn)官網(wǎng))
Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg.routers), computer equipment and even devices like UPSs. Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6
...
閱讀全文
摘要: 剛在一臺(tái)新安裝ubuntu的機(jī)器上進(jìn)行vi,出現(xiàn)
-bash: vi: command not found
使用vim則可以正常的操作,當(dāng)然這個(gè)應(yīng)該是vi/vim沒(méi)安裝好的原因,重新執(zhí)行命令
yun -y install vim*
完整的安裝完畢后則可以正常使用vi/vim
以前只知道vim是vi的升級(jí)版,大部分時(shí)候也只使用vi,至于vim和vi的一些區(qū)別上還真的不知道,以下為在網(wǎng)上查找整理的內(nèi)容
vim,意為VI iMproved,主要的優(yōu)勢(shì)體現(xiàn)在以下幾個(gè)方面: 閱讀全文
-bash: vi: command not found
使用vim則可以正常的操作,當(dāng)然這個(gè)應(yīng)該是vi/vim沒(méi)安裝好的原因,重新執(zhí)行命令
yun -y install vim*
完整的安裝完畢后則可以正常使用vi/vim
以前只知道vim是vi的升級(jí)版,大部分時(shí)候也只使用vi,至于vim和vi的一些區(qū)別上還真的不知道,以下為在網(wǎng)上查找整理的內(nèi)容
vim,意為VI iMproved,主要的優(yōu)勢(shì)體現(xiàn)在以下幾個(gè)方面: 閱讀全文
摘要: 把我上次的工程所用到的jar包做了一個(gè)整理,也加了一些簡(jiǎn)單的描述,下面圖是上次工程用到的所有jar吧
JAR包與描述對(duì)照表 注:jar包尾后的版本號(hào)不代表當(dāng)前最高版本
activation-1.1.jar Sun的JavaBeans Activation Framework(JAF),JavaMail要運(yùn)行必須依賴(lài)于它的支持
asm-3.0.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
asm是一個(gè)輕量級(jí)字節(jié)碼處理和分析框架
alveole-struts2.jar
alveole-tools.jar
aspectjtools-1.5.3.jar
Aspect提供的注釋類(lèi)庫(kù)和相應(yīng)的解析類(lèi)庫(kù)
atomikos-util.jar
數(shù)據(jù)庫(kù)提供分布式事務(wù)支持
閱讀全文
JAR包與描述對(duì)照表 注:jar包尾后的版本號(hào)不代表當(dāng)前最高版本
activation-1.1.jar Sun的JavaBeans Activation Framework(JAF),JavaMail要運(yùn)行必須依賴(lài)于它的支持
asm-3.0.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
asm是一個(gè)輕量級(jí)字節(jié)碼處理和分析框架
alveole-struts2.jar
alveole-tools.jar
aspectjtools-1.5.3.jar
Aspect提供的注釋類(lèi)庫(kù)和相應(yīng)的解析類(lèi)庫(kù)
atomikos-util.jar
數(shù)據(jù)庫(kù)提供分布式事務(wù)支持
閱讀全文
摘要: 上周給同事講解了cacti的安裝及其使用時(shí)做了一份ppt,在這里將這份ppt簡(jiǎn)單梳理一下介紹一下cacti在我們?nèi)粘9ぷ髦械谋O(jiān)控使用
cacti的結(jié)構(gòu)
在廣義上來(lái)說(shuō)cacti是一套網(wǎng)絡(luò)流量監(jiān)測(cè)圖形分析工具,但從狹義來(lái)說(shuō)cacti只是由php語(yǔ)言實(shí)現(xiàn)的一個(gè)軟件,
它需要PHP,apache,Mysql,SNMP,RRDTool等工具的支持 閱讀全文
cacti的結(jié)構(gòu)
在廣義上來(lái)說(shuō)cacti是一套網(wǎng)絡(luò)流量監(jiān)測(cè)圖形分析工具,但從狹義來(lái)說(shuō)cacti只是由php語(yǔ)言實(shí)現(xiàn)的一個(gè)軟件,
它需要PHP,apache,Mysql,SNMP,RRDTool等工具的支持 閱讀全文
摘要: 上次寫(xiě)的中提到了openVPN,也做了一點(diǎn)點(diǎn)簡(jiǎn)單的介紹,有朋友也問(wèn)了一些關(guān)于vpn的問(wèn)題
首先,我所購(gòu)買(mǎi)的vps是基于OpenVZ類(lèi)型,無(wú)法配置標(biāo)準(zhǔn)的VPN(無(wú)測(cè)試過(guò)),部分手機(jī)可能無(wú)法支持,但OpenVZ支持pptp和openVPN
請(qǐng)登錄OPENVPN官網(wǎng)查閱最新資料
ok!在安裝之前請(qǐng)確認(rèn)一下你購(gòu)買(mǎi)的vps是否開(kāi)啟了tun/tap的支持,burst vps默認(rèn)是不開(kāi)啟tun/tap的,可以使用cat /dev/net/tun 進(jìn)行檢查
如果是沒(méi)有權(quán)限的話可以發(fā)個(gè)ticket要求客服為你開(kāi)啟tun/tap
出現(xiàn)File descriptor in bad state說(shuō)明tun/tap已經(jīng)開(kāi)啟,可以開(kāi)始進(jìn)行openVPN的安裝配置
我的vps安裝的系統(tǒng)為CentOS release 5.5 (Final),下面一系列安裝和配置都在此vps上進(jìn)行,根據(jù)配置
一.服務(wù)端安裝 閱讀全文
首先,我所購(gòu)買(mǎi)的vps是基于OpenVZ類(lèi)型,無(wú)法配置標(biāo)準(zhǔn)的VPN(無(wú)測(cè)試過(guò)),部分手機(jī)可能無(wú)法支持,但OpenVZ支持pptp和openVPN
請(qǐng)登錄OPENVPN官網(wǎng)查閱最新資料
ok!在安裝之前請(qǐng)確認(rèn)一下你購(gòu)買(mǎi)的vps是否開(kāi)啟了tun/tap的支持,burst vps默認(rèn)是不開(kāi)啟tun/tap的,可以使用cat /dev/net/tun 進(jìn)行檢查
如果是沒(méi)有權(quán)限的話可以發(fā)個(gè)ticket要求客服為你開(kāi)啟tun/tap
出現(xiàn)File descriptor in bad state說(shuō)明tun/tap已經(jīng)開(kāi)啟,可以開(kāi)始進(jìn)行openVPN的安裝配置
我的vps安裝的系統(tǒng)為CentOS release 5.5 (Final),下面一系列安裝和配置都在此vps上進(jìn)行,根據(jù)
一.服務(wù)端安裝 閱讀全文
摘要: 先感謝同事梁?jiǎn)T外在去年就給我們介紹了VPS,前段時(shí)間也購(gòu)買(mǎi)了一個(gè)VPS,使用了一段時(shí)間感覺(jué)還不錯(cuò)
先介紹一下VPS,下面是一些講座的筆記,部分內(nèi)容直接摘自梁?jiǎn)T外的ppt
What is VPS
VPS是Virtual Private Servers的簡(jiǎn)稱(chēng),也就是我們說(shuō)的虛擬專(zhuān)用服務(wù)器,在一臺(tái)物理服務(wù)器上創(chuàng)建多個(gè)相互隔離的虛擬專(zhuān)用服務(wù)器。這些虛擬服務(wù)器以最大化的效率共享硬件、軟件許可證以及管理資源。對(duì)其用戶和應(yīng)用程序來(lái)講,每一個(gè)VPS平臺(tái)的運(yùn)行和管理都與一臺(tái)獨(dú)立主機(jī)完全相 同,因?yàn)槊恳粋€(gè)VPS均可獨(dú)立進(jìn)行重啟并擁有自己的root訪問(wèn)權(quán)限、用戶、IP地址、內(nèi)存、過(guò)程、文件、應(yīng)用程序、系統(tǒng)函數(shù)庫(kù)以及配置文件。
國(guó)外的主流VPS類(lèi)型
國(guó)外的主流VPS類(lèi)型主要是OpenVZ和XEN,先介紹一下OpenVZ
OpenVZ(Virtuozzo)
SWsoft公司的商用版虛擬化技術(shù),而OpenVZ 則是基于Virtuozzo的開(kāi)源項(xiàng)目。多個(gè)虛擬服務(wù)器在一個(gè)內(nèi)核上運(yùn)行,具有高性能和出色管理等優(yōu)點(diǎn). 閱讀全文
先介紹一下VPS,下面是一些講座的筆記,部分內(nèi)容直接摘自梁?jiǎn)T外的ppt
What is VPS
VPS是Virtual Private Servers的簡(jiǎn)稱(chēng),也就是我們說(shuō)的虛擬專(zhuān)用服務(wù)器,在一臺(tái)物理服務(wù)器上創(chuàng)建多個(gè)相互隔離的虛擬專(zhuān)用服務(wù)器。這些虛擬服務(wù)器以最大化的效率共享硬件、軟件許可證以及管理資源。對(duì)其用戶和應(yīng)用程序來(lái)講,每一個(gè)VPS平臺(tái)的運(yùn)行和管理都與一臺(tái)獨(dú)立主機(jī)完全相 同,因?yàn)槊恳粋€(gè)VPS均可獨(dú)立進(jìn)行重啟并擁有自己的root訪問(wèn)權(quán)限、用戶、IP地址、內(nèi)存、過(guò)程、文件、應(yīng)用程序、系統(tǒng)函數(shù)庫(kù)以及配置文件。
國(guó)外的主流VPS類(lèi)型
國(guó)外的主流VPS類(lèi)型主要是OpenVZ和XEN,先介紹一下OpenVZ
OpenVZ(Virtuozzo)
SWsoft公司的商用版虛擬化技術(shù),而OpenVZ 則是基于Virtuozzo的開(kāi)源項(xiàng)目。多個(gè)虛擬服務(wù)器在一個(gè)內(nèi)核上運(yùn)行,具有高性能和出色管理等優(yōu)點(diǎn). 閱讀全文
摘要: 聽(tīng)DBA的人說(shuō),相比oracle,MySQL就是一個(gè)玩具級(jí)別的數(shù)據(jù)庫(kù),在網(wǎng)易門(mén)戶中,DBA基本很少去管理到MySQL的東西,所以我們產(chǎn)品使用到的MySQL的一些配置和優(yōu)化還是需要我們開(kāi)發(fā)人員自己動(dòng)手,下面就簡(jiǎn)單介紹一下實(shí)用的定期優(yōu)化方法
定期分析表
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]
本語(yǔ)句用于分析和存儲(chǔ)表的關(guān)鍵字分布。在分析期間,使用一個(gè)讀取鎖定對(duì)表進(jìn)行鎖定。這對(duì)于MyISAM, BDB和InnoDB表有作用。對(duì)于MyISAM表,本語(yǔ)句與使用myisamchk -a相當(dāng)。
MySQL使用已存儲(chǔ)的關(guān)鍵字分布來(lái)決定,當(dāng)您對(duì)除常數(shù)以外的對(duì)象執(zhí)行聯(lián)合時(shí),表按什么順序進(jìn)行聯(lián)合。
mysql> analyze table a;
+--------+---------+----------+-----------------------------+
| Table | Op | Msg_ 閱讀全文
定期分析表
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]
本語(yǔ)句用于分析和存儲(chǔ)表的關(guān)鍵字分布。在分析期間,使用一個(gè)讀取鎖定對(duì)表進(jìn)行鎖定。這對(duì)于MyISAM, BDB和InnoDB表有作用。對(duì)于MyISAM表,本語(yǔ)句與使用myisamchk -a相當(dāng)。
MySQL使用已存儲(chǔ)的關(guān)鍵字分布來(lái)決定,當(dāng)您對(duì)除常數(shù)以外的對(duì)象執(zhí)行聯(lián)合時(shí),表按什么順序進(jìn)行聯(lián)合。
mysql> analyze table a;
+--------+---------+----------+-----------------------------+
| Table | Op | Msg_ 閱讀全文
摘要: 如果你的MyIsam表存在大量高并發(fā)的讀寫(xiě),那么就可能出現(xiàn)壞表的現(xiàn)象,這是因?yàn)镸yIsam存儲(chǔ)引擎所決定的,一張損壞的表的癥狀可能是以前某些錯(cuò)誤
*.frm 被鎖定不能更改
找不到*.MYI
文件意外結(jié)束
記錄文件損壞
處理1
使用MySQL自帶的myisamchk的工具進(jìn)行修復(fù),myisamchk不僅可以檢查和修復(fù)MyIsam表,還可以進(jìn)行優(yōu)化和分析表,實(shí)際上,它集成了mysql中的check,repair,analyze,optimize的功能,下面是用myisamchk進(jìn)行修復(fù)
myisamchk -r tablename
其中-r參數(shù)的含義是recover,在以往的應(yīng)用,這語(yǔ)句幾乎可以解決上面所述碰到的問(wèn)題,如果還不行,可以使用
myisamchk -o tablename
其中-o參數(shù)的含義是--safe-recover,可以進(jìn)行更安全的修復(fù)
處理2
使用MySql的CHECK TABLE和REPAIR TABL 閱讀全文
*.frm 被鎖定不能更改
找不到*.MYI
文件意外結(jié)束
記錄文件損壞
處理1
使用MySQL自帶的myisamchk的工具進(jìn)行修復(fù),myisamchk不僅可以檢查和修復(fù)MyIsam表,還可以進(jìn)行優(yōu)化和分析表,實(shí)際上,它集成了mysql中的check,repair,analyze,optimize的功能,下面是用myisamchk進(jìn)行修復(fù)
myisamchk -r tablename
其中-r參數(shù)的含義是recover,在以往的應(yīng)用,這語(yǔ)句幾乎可以解決上面所述碰到的問(wèn)題,如果還不行,可以使用
myisamchk -o tablename
其中-o參數(shù)的含義是--safe-recover,可以進(jìn)行更安全的修復(fù)
處理2
使用MySql的CHECK TABLE和REPAIR TABL 閱讀全文
摘要: 先感謝同事renial的<解析xml時(shí)遇到的一些問(wèn)題>技術(shù)分享,下面是一些記錄和實(shí)際操作
1.使用Dom4j解析大文件時(shí)內(nèi)存溢出的問(wèn)題
問(wèn)題是這樣的,當(dāng)我用dom4j去解析一個(gè)幾十M的xml時(shí),就出現(xiàn)out of memory.當(dāng)然了,這也是根據(jù)你的機(jī)器性能而定的,我們都知道dom4j在各種DOM解析器中應(yīng)該算是性能最好的,連大名鼎鼎的Hibernate都是用dom4j來(lái)解析XML配置文件的
問(wèn)題出在于使用dom4j的SAXReader是會(huì)把整個(gè)XML文件一次性讀入,如果XML文件過(guò)大就會(huì)拋出out of memory,但即使是使用SAXParser批量讀入解析,但它也是一次解析完,假設(shè)XML文件有幾萬(wàn)條數(shù)據(jù),那么解析后就必須在內(nèi)存放入這幾萬(wàn)條對(duì)象.
常用的Dom4j文件解析方式:
InputStream is = new FileInputStream(filePath);
SAXReader reader = new SAXReader(); //將整個(gè)XML構(gòu)建為一個(gè)Document
閱讀全文
1.使用Dom4j解析大文件時(shí)內(nèi)存溢出的問(wèn)題
問(wèn)題是這樣的,當(dāng)我用dom4j去解析一個(gè)幾十M的xml時(shí),就出現(xiàn)out of memory.當(dāng)然了,這也是根據(jù)你的機(jī)器性能而定的,我們都知道dom4j在各種DOM解析器中應(yīng)該算是性能最好的,連大名鼎鼎的Hibernate都是用dom4j來(lái)解析XML配置文件的
問(wèn)題出在于使用dom4j的SAXReader是會(huì)把整個(gè)XML文件一次性讀入,如果XML文件過(guò)大就會(huì)拋出out of memory,但即使是使用SAXParser批量讀入解析,但它也是一次解析完,假設(shè)XML文件有幾萬(wàn)條數(shù)據(jù),那么解析后就必須在內(nèi)存放入這幾萬(wàn)條對(duì)象.
常用的Dom4j文件解析方式:
InputStream is = new FileInputStream(filePath);
SAXReader reader = new SAXReader(); //將整個(gè)XML構(gòu)建為一個(gè)Document
閱讀全文
摘要: 對(duì)于的用戶輸入搜索出現(xiàn)XSS漏洞的問(wèn)題,主要是由于開(kāi)發(fā)人員對(duì)XSS了解不足,安全的意識(shí)不夠造成的。現(xiàn)在讓我們來(lái)普及一下XSS的一些常識(shí),以后在開(kāi)發(fā)的時(shí)候,每當(dāng)有用戶輸入的內(nèi)容時(shí),都要加倍小心。
一、什么是XSS
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁(yè)面里插入惡意html代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。XSS屬于被動(dòng)式的攻擊,因?yàn)槠浔粍?dòng)且不好利用,所以許多人常呼略其危害性
在WEB2。0時(shí)代,強(qiáng)調(diào)的是互動(dòng),使得用戶輸入信息的機(jī)會(huì)大增,在這個(gè)情況下,我們作為開(kāi)發(fā)者,在開(kāi)發(fā)的時(shí)候,要提高警惕。
二、XSS攻擊的主要途徑
方法只是利用HTML的屬性,作各種的嘗試,找出注入的方法。現(xiàn)在對(duì)三種主要方式進(jìn)行分析。
第一種:對(duì)普通的用戶輸入,頁(yè)面原樣內(nèi)容輸出。
打開(kāi)http://go.ent.163.com/goproducttest/test.jsp(限公司IP), 閱讀全文
一、什么是XSS
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁(yè)面里插入惡意html代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。XSS屬于被動(dòng)式的攻擊,因?yàn)槠浔粍?dòng)且不好利用,所以許多人常呼略其危害性
在WEB2。0時(shí)代,強(qiáng)調(diào)的是互動(dòng),使得用戶輸入信息的機(jī)會(huì)大增,在這個(gè)情況下,我們作為開(kāi)發(fā)者,在開(kāi)發(fā)的時(shí)候,要提高警惕。
二、XSS攻擊的主要途徑
方法只是利用HTML的屬性,作各種的嘗試,找出注入的方法。現(xiàn)在對(duì)三種主要方式進(jìn)行分析。
第一種:對(duì)普通的用戶輸入,頁(yè)面原樣內(nèi)容輸出。
打開(kāi)http://go.ent.163.com/goproducttest/test.jsp(限公司IP), 閱讀全文
摘要: 先感謝同事梁?jiǎn)T外的技術(shù)分享,下面是一些相關(guān)的筆記,當(dāng)然啦,在應(yīng)用Morphia之前需要有MongoDB的使用經(jīng)驗(yàn).
What is Morphia?
Morphia is a lightweight type-safe library for mapping your Java objects to/from MongoDB
簡(jiǎn)單的來(lái)說(shuō)Morphia與MongoDB的關(guān)系就如Hibernate與關(guān)系數(shù)據(jù)庫(kù)的關(guān)系, 是一個(gè)實(shí)現(xiàn)Java對(duì)象到MongoDB雙向映射的類(lèi)庫(kù)。
下面是摘自Morphia官方的簡(jiǎn)介,帶有一定的廣告性,呵呵
Easy to use, and very lightweight; reflection is used once per type and cached.
Annotations describe mapping behavior; there are no XML files.
Provi 閱讀全文
What is Morphia?
Morphia is a lightweight type-safe library for mapping your Java objects to/from MongoDB
簡(jiǎn)單的來(lái)說(shuō)Morphia與MongoDB的關(guān)系就如Hibernate與關(guān)系數(shù)據(jù)庫(kù)的關(guān)系, 是一個(gè)實(shí)現(xiàn)Java對(duì)象到MongoDB雙向映射的類(lèi)庫(kù)。
下面是摘自Morphia官方的簡(jiǎn)介,帶有一定的廣告性,呵呵
Easy to use, and very lightweight; reflection is used once per type and cached.
Annotations describe mapping behavior; there are no XML files.
Provi 閱讀全文
摘要: 自從dropbox被墻了之后就一直在尋找更好的同步工具,畢竟使用同步工具比什么google doc和網(wǎng)易網(wǎng)盤(pán)要爽的多,起碼不用上傳下載,用了什么PathSync和DBSync都覺(jué)得不如dropbox的爽(純屬個(gè)人感覺(jué)哈).
其實(shí)我的需求倒是挺簡(jiǎn)單的,就是要同步家里和公司兩臺(tái)電腦的一些指定的文件夾,突然想到每天都在使用的rsync,自己配一個(gè)吧,反正服務(wù)器是現(xiàn)有的,只不過(guò)是linux,兩臺(tái)需要同步的電腦都是windows,下面就分享一個(gè)rsync如何在windows和linux兩個(gè)系統(tǒng)中進(jìn)行文件同步.
linux服務(wù)端
按照rsync工具
建議采用yum install rsync 或 apt-get install rsync安裝,因?yàn)榉奖懵?
安裝完畢后
vi /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
uid = nobody
gid = nobody
max connections = 36000
log file 閱讀全文
其實(shí)我的需求倒是挺簡(jiǎn)單的,就是要同步家里和公司兩臺(tái)電腦的一些指定的文件夾,突然想到每天都在使用的rsync,自己配一個(gè)吧,反正服務(wù)器是現(xiàn)有的,只不過(guò)是linux,兩臺(tái)需要同步的電腦都是windows,下面就分享一個(gè)rsync如何在windows和linux兩個(gè)系統(tǒng)中進(jìn)行文件同步.
linux服務(wù)端
按照rsync工具
建議采用yum install rsync 或 apt-get install rsync安裝,因?yàn)榉奖懵?
安裝完畢后
vi /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
uid = nobody
gid = nobody
max connections = 36000
log file 閱讀全文
摘要: mysql有4種不同的日志,分別是二進(jìn)制日志,查詢(xún)?nèi)罩荆樵?xún)?nèi)罩竞湾e(cuò)誤日志,這些日記記錄著數(shù)據(jù)庫(kù)工作的方方面面,可以幫助我們了解數(shù)據(jù)庫(kù)的不同方面的蹤跡,下面先介紹二進(jìn)制日志的作用和使用方法,并利用二進(jìn)制日志對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種維護(hù)和優(yōu)化,其他日志也會(huì)在后面陸續(xù)會(huì)做詳細(xì)的介紹。
二進(jìn)制日志(bin-log日志)
在上一篇介紹mysql主從配置的blog中,已經(jīng)提過(guò)bin-log日志的作用和使用,bin-log日志記錄了所有的DDL和DML的語(yǔ)句,但不包括查詢(xún)的語(yǔ)句,語(yǔ)句以事件的方式保存,描述了數(shù)據(jù)的更改過(guò)程,此日志對(duì)發(fā)生災(zāi)難時(shí)數(shù)據(jù)恢復(fù)起到了極為重要的作用。
開(kāi)啟
mysql默認(rèn)是沒(méi)有開(kāi)發(fā)bin-log日志,首先我們需要開(kāi)啟bin-log日志,在my.cnf中修改
指定了bin-log日志的路徑,開(kāi)啟日志后需要myssqladmin flush log才生效,重啟后我們發(fā)現(xiàn)在剛才設(shè)定的路徑新增了log文件,這就是我們需要的二進(jìn)制日志
由于日志是以二進(jìn)制方式存儲(chǔ)的,不 閱讀全文
二進(jìn)制日志(bin-log日志)
在上一篇介紹mysql主從配置的blog中,已經(jīng)提過(guò)bin-log日志的作用和使用,bin-log日志記錄了所有的DDL和DML的語(yǔ)句,但不包括查詢(xún)的語(yǔ)句,語(yǔ)句以事件的方式保存,描述了數(shù)據(jù)的更改過(guò)程,此日志對(duì)發(fā)生災(zāi)難時(shí)數(shù)據(jù)恢復(fù)起到了極為重要的作用。
開(kāi)啟
mysql默認(rèn)是沒(méi)有開(kāi)發(fā)bin-log日志,首先我們需要開(kāi)啟bin-log日志,在my.cnf中修改
指定了bin-log日志的路徑,開(kāi)啟日志后需要myssqladmin flush log才生效,重啟后我們發(fā)現(xiàn)在剛才設(shè)定的路徑新增了log文件,這就是我們需要的二進(jìn)制日志
由于日志是以二進(jìn)制方式存儲(chǔ)的,不 閱讀全文