這是程序自動創建的分類。

Thinkpad X200拆機及清灰

[| 不指定 2012/05/05 15:59]
    又到夏天了,電腦底面的溫度直線上升,準備清一下灰塵,之前清過一次,用清潔氣吹了下,但沒有合適的工具,擰不開風扇,只能從散熱器外側向內側吹,效果不好,吹過一次后還變響了,這次有了全套螺絲刀,準備徹底清潔一下。

   底面的螺絲很順利,很快都擰開了,取下鍵盤和掌托,然后把屏幕的螺絲擰開,把屏幕下的u型塑料拿下來,開始準備拆主板,主板弄不下來,被無線網卡壓住了,于是就開始拆無線網卡,結果悲劇發生了,擰下第一個螺絲后,第二個螺絲擰了幾下沒擰下來,因為選的十字螺絲刀頭的尺寸大了點,又擰了幾下,結果擰花了,鴨梨很大,搞了半天搞不下來,只能先將旁邊的聲卡/sd模塊拆下來,騰出地方,搗鼓了半天搞不定,于是決定先搞個小刀把螺絲劃出一個溝再擰,找不到小刀,去小區門口5角錢買了個,回來發現螺絲擰起來跟豆腐一樣,用小刀劃起來還挺硬,把小刀刀頭都劃平了,勉強在右邊劃了一個小溝,左邊劃了幾個痕跡,螺絲刀還是吃不上力氣,到了吃飯的日子,于是先吃了飯,吃完飯想起來指甲刀,指甲刀一般比較厲害,用指甲刀剪了幾下左邊,果然剪出一個凹槽,還是不好用力,但指甲刀也無能為力了,蛋疼,期間還試過用核桃夾夾住螺絲刀擰、用螺絲刀頂著側邊的凹槽用核桃夾敲等方法,都紋絲不動。搞了很久耐心快到極限了,之前屏幕還和主板上的無線網卡有信號線連接,現在把信號線拔掉,屏幕取下,然后換了一個稍小一點的一字螺絲刀大力擰了幾下,期待奇跡的發生,結果發現螺絲真的動了。趕緊又擰了幾下,終于擰下來了。

    主板取下后直接就開始拆散熱器了,發現cpu上的三個大螺絲是用彈簧壓的,估計防止力度過大把cpu壓壞,之前以為銅散熱器下有空間,里面是很多灰塵,結果拆下來后發現銅散熱器直接是整個和cpu/gpu接觸的,沒有縫隙,cpu上是導熱硅脂,gpu上是導熱海綿(不知道是不是這么叫,不過樣子挺像),由于手頭沒有新的,所以不能重涂了,怕灰塵進去,急忙又把散熱器擰上了。
    然后擰風扇和散熱器之間的三個螺絲,上次就是在擰三個螺絲中的一個的時候擰不下來放棄的,這次有了合適的螺絲刀,很快擰下來了,把風扇和散熱器分離后,散熱器內側的景象展現在眼前,怪不得之前吹的沒效果,原來散熱器和風扇之間的那個界面上覆蓋了一層黑乎乎毛毛的東西,把散熱器的縫隙塞住了一半,急忙把臟東西清理出來,用清潔氣吹了一下,干凈了。

    然后開始擰螺絲,比較順利,無線網卡右側那個螺絲用旁邊預留槽的螺絲替換了,發現那個位置的四個螺絲都跟豆腐一樣,稍微一擰就花了,別的地方都還好,看來thinkpad也開始偷工減料了,我的還是08年的tp,現在出的估計更沒法用了。

    擰好后用魯大師看了看,貌似效果不錯,不過壓力壓一會后還是比較燙,但平時使用時底座溫度降下來了,爽。


Tags: ,
    現在主流搜索引擎都支持ping功能了,每當網站更新時可以主動向搜索引擎發一個xml格式信息,稱之為”ping“,通知搜索引擎來抓取,對于收錄是非常有好處的。
    之前一直懶得搞,今天弄了一下。
    參照百度站長工具里提供的格式,搞了一個,試試是否好用呢。

    添加了baidu和google的ping地址:

    http://ping.baidu.com/ping/RPC2
    http://blogsearch.google.com/ping/RPC2
Tags:
    今天用nginx作為trac的反代,發現一個問題,就是登入登出跳轉的時候是白頁,看了下網頁相應內容,發現相應的location是空的。查了一下發現是只單純用了proxy_pass,沒有使用proxy_redirect.
    假設前端url是example.com。后端server域名是in.com,那么后端server在返回refresh或location的時候,host為in.com,顯然這個信息直接返回給客戶端是不行的,需要nginx做轉換,這時可以設置:
    proxy_redirect http://in.com  /
    nginx會將host及port部分替換成自身的server_name及listen port。不過這種配置對server_name有多個值的情況下支持不好。
我們可以用nginx內部變量來解決這一問題:
    proxy_redirect http://in.com http://$host:$server_port


    搞定

    如果不設定的話,proxy_redirect默認是default屬性,官網例子是這樣介紹default的:
引用
location /one/ {
  proxy_pass       http://upstream:port/two/;
  proxy_redirect   default;
}

location /one/ {
  proxy_pass       http://upstream:port/two/;
  proxy_redirect   http://upstream:port/two/   /one/;
}


  
    我試了下,location /{}規則時似乎不太正常,會導致location為空。這個有待詳細考證
之前安裝了redmine,確實功能多、使用簡單,但ror架構實在是吃內存,小vps根本hold不住,于是還是選用python寫的trac。豐富的插件使trac只要配置得當,功能還是很強大的。

首先安裝setuptools。這個可以用apt或yum安裝,也是一個類似于apt的包管理器,是針對python的。安裝后可使用easy_install命令
然后配置PYTHONPATH,使用easy_install默認是安裝到系統路徑下的。需要root權限。不推薦使用這種方式,這樣會把文件放到用戶不可控的位置,為以后的升級備份帶來困難。所以就需要--install-dir參數(使用--prefix參數無效,不知為何),但單純使用該參數會報指定目錄不在PYTHONPATH里。這是easy_install會推薦去看一個網頁,我看了下,講的幾個方法都很繁瑣,也沒什么理由。其實只需要export PYTHONPATH=${PYTHONPATH}:your_dir即可。在.bash_profile里設置一下,避免每次都要手動。
這里建議在.bash_profile里設置一下alias easy_install='easy_install --install-dir=your_dir',這樣就不用每次安裝時都手動輸入一大坨地址了。
設置完后source .bash_profile生效一下。
然后開始安裝,先執行:easy_install Babel==0.9.5   這個一定要裝,否則安裝后的trac沒有中文。
然后easy_install Trac
ok,trac的安裝就完成了。

現在需要建立項目,trac需要為每個項目建立一個實例。這時在your_dir里找到trac-admin,這個是用來管理項目實例的工具。
運行:trac-admin your_proj_dir initenv
會提示項目名和使用的數據源。
在數據源那里我使用官方推薦的:mysql://name:[email protected]:3306/test報錯:trac TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'   看了下代碼,是數據庫沒有配成utf8字符集導致的。配了一下,ok了
建立數據庫時要使用:CREATE DATABASE IF NOT EXISTS test default charset utf8 COLLATE utf8_general_ci;
建好項目后就可以登陸進行進一步設置了。
首先配置用戶具有admin權限:
trac-admin your_proj_dir permission add user TRAC_ADMIN
然后指定使用web auth進行用戶驗證:
./tracd --port 8000 --auth="*,/your_dir/user.htdigest,trac" /your_dir
user.htdigest文件是用戶名密碼文件,需要自己生成,比較麻煩,反正也是臨時使用,這里貼個成品:

user:trac:fb05f80adf782a74f48a5acdc71dba65
這個的文件名和密碼分別是“user”,“password”
啟動后進入控制臺
進入管理,插件,開啟TracAccountManager 0.3.2
修改trac.ini,
[components]下添加trac.web.auth.loginmodule = disabled
然后在account配置里SessionStore選一個1,(為啥不知道),但不開這個就不能注冊
然后手動添加管理員賬戶
然后可以用./tracd --port 8000  /your_dir   啟動了。
用permission add給剛才添加的用戶加上管理員權限。然后ok了。可以使用web登陸了

然后添加git支持:
easy_install http://github.com/hvr/trac-git-plugin/tarball/master
暫時沒找到支持遠程git的方法

Tags: ,
    前幾天把一個函數的返回值由int改為size_t了。當時心想就是改個類型的問題,邏輯沒啥要動的。反正都是算數。
編譯器什么也沒報。似乎沒什么問題。
    后來湊巧又改了一下另外一個程序的相同函數,結果編譯的時候報了error,說試圖轉換-1到unsigned。一檢查,果然程序中的異常分支返回了-1.急忙改了過來。
    所以在返回值是size_t類型的函數中,異常處理要注意。(主要是c程序,因為沒有異常)
Tags:

為nginx生成自簽名ssl證書

[| 不指定 2012/03/03 00:00]
    今天要搭一個ssl加密的站點,由于是自用,所以就準備自簽發一張證書。之前搞過幾次,比較復雜,早忘光了。找到一篇不錯的文章,留下備份。
http://blog.duyao.de/posts/to-generate-an-ssl-certificate-for-nginx-in-linux.html

這里說下Linux 系統怎么通過openssl命令生成 證書。

首先執行如下命令生成一個key

openssl genrsa -des3 -out ssl.key 1024
然后他會要求你輸入這個key文件的密碼。不推薦輸入。因為以后要給nginx使用。每次reload nginx配置時候都要你驗證這個PAM密碼的。

由于生成時候必須輸入密碼。你可以輸入后 再刪掉。

mv ssl.key xxx.key
openssl rsa -in xxx.key -out ssl.key
rm xxx.key
然后根據這個key文件生成證書請求文件

openssl req -new -key ssl.key -out ssl.csr
以上命令生成時候要填很多東西 一個個看著寫吧(可以隨便,畢竟這是自己生成的證書)

最后根據這2個文件生成crt證書文件

openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
這里365是證書有效期 推薦3650哈哈。這個大家隨意。最后使用到的文件是key和crt文件。

如果需要用pfx 可以用以下命令生成

openssl pkcs12 -export -inkey ssl.key -in ssl.crt -out ssl.pfx
在需要使用證書的nginx配置文件的server節點里加入以下配置就可以了。

ssl on;
ssl_certificate /home/ssl.crt;
ssl_certificate_key /home/ssl.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
然后重啟nginx就大功告成了
Tags: ,

strncpy和snprintf

[| 不指定 2012/02/29 19:06]
    之前用strncpy總是感覺比較惡,老是要考慮最后\0的問題,今天仔細看了下,發現如果源串長度大于等于最大長度的話,strncpy會直接拷貝最大長度,不在后面加\0,也就是說在用一個字符串覆蓋另一個字符串一部分的時候用strncpy是很不錯的,但全覆蓋的話比較麻煩,很容易出bug。
    而snprintf會拷貝最大長度-1的字符數,并在后面加\0,使用一個字符串覆蓋另一個時很不錯。
    看了一下資料,發現snprintf的效率也要高于strncpy。
    日常字符串拷貝還是推薦snprintf。
Tags: ,

Soso Spider 不支持base屬性

[| 不指定 2011/10/27 19:17]
    今天博客新遷移,由于對靜態化url的改動非常大,難免有遺漏的地方,所以非常關注access日志,看看爬蟲們遇到了哪些困擾。

    在看日志的時候發現一個有意思的現象,google和百度的蜘蛛今天很不活躍,對于站點的大規模改變似乎并不感興趣,對css,js不屑一顧,而soso的spider非常活躍,把每個鏈接都詳細爬了一遍,但發現一個問題:

     新博客的url是采用base設置+相對url的模式,soso的spider似乎并不識別base標簽,直接把相對url附加到當前url之后進行抓取,導致了很多404請求。查了一下,base屬性是html標準屬性,soso不支持這個屬性應該算是個bug了。




Tags: , , ,

HTTP請求返回碼204

[| 不指定 2011/10/27 18:49]
    今天測試lighttpd是否支持delete請求,發現webdav模塊可以實現此功能。不過發現http返回碼是204,查了一下,原來此狀態碼的意思是說請求成功了,但是沒有結果返回來。搜到鳥哥一篇文章,講的很不錯,轉載一下:


http://www.laruence.com/2011/01/20/1844.html

之前和人討論過這個問題,,, 今天感冒在家休息, 就回憶了一下, 整理如下.

我們很多的應用在使用Ajax的時候, 大多數情況都是詢問型操作, 比如提交數據, 則Ajax只是期待服務器返回:

{status: 0, message:""} //status 0代表成功, 非零的時候, message中包含出錯信息.
我們知道HTTP的狀態碼, 2xx都是表示成功, 而HTTP的204(No Content)響應, 就表示執行成功, 但是沒有數據, 瀏覽器不用刷新頁面.也不用導向新的頁面.

在HTTP RFC 2616中關于204的描述如下:

引用
If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent’s active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent’s active view.


類似的還有205 Reset Content, 表示執行成功, 重置頁面(Form表單).

引用
The server has fulfilled the request and the user agent SHOULD reset the document view which caused the request to be sent. This response is primarily intended to allow input for actions to take place via user input, followed by a clearing of the form in which the input is given so that the user can easily initiate another input action.


于是, 當有一些服務, 只是返回成功與否的時候, 可以嘗試使用HTTP的狀態碼來作為返回信息, 而省掉多余的數據傳輸, 比如REST中的DELETE和如上所述的查詢式Ajax請求.

最后說說205, 205的意思是在接受了瀏覽器POST請求以后處理成功以后, 告訴瀏覽器, 執行成功了, 請清空用戶填寫的Form表單, 方便用戶再次填寫,

總的來說, 204適合多次對一個Item進行更新, 而205則適合多次提交一個系列的Item.

但, 請注意, 目前還沒有一個瀏覽器支持205, 大部分的瀏覽器, 都會把205當做204或者200同樣對待.
Tags: , , , ,
最近又看了幾個vps,總感覺為啥相同配置,相同線路,人家跑wp,我跑自制小博客。人家都比我快得多。

之前一直想當然,認為是網絡問題之類的。由于今天考慮到了博客遷移,所以這個問題就提上日程了。于是打開chrome調試工具,看了下時間。

一看不要緊,終于找到瓶頸了。。

首先是jquery.js,最早用本機,后來嫌大,用了google提供的,由于最近和諧,google的連接速度非常慢,導致頁面一直卡在下載jquery.js上。
由于是靜態文件,比較大的體積,且seo無關,這就需要考慮把文件放在一個網絡連接比較快的地方,顯然放到國內是值得考慮的。
首先試了一下一款云存儲產品,發現速度倒是很快,但是無法開啟gzip,這個無法忍受。轉而考慮比較專業的web托管,一想,sae就是專門干這個的,直接放到sae上最好。于是在sae上申請了個應用,吧jquery.js和幾個比較大的圖片移過去了。立竿見影,速度提升極大。

再看,發現google的統計代碼加載也很慢,反正我也不怎么看google的統計,注釋掉。

再訪問,飛一般的速度~~~~~~
分頁: 1/23 第一頁 1 2 3 4 5 6 7 8 9 10 下頁 最后頁 [ 顯示模式: 摘要 | 列表 ]
黄se大片全集,s8视频 情色视频,国产在线久久播放,天天鲁天一鲁,第一色色资源站 一色屋,3X免费视频 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>