NGINX不允许向静态文件提交POST方式的请求,否则报405错误。测试方法为,使用curl向服务器上的静态文件提交POST请求:
curl -d 1=1 http://localhost/version.txt
得到以下结果:
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.0.11</center>
</body>
</html>
网上传抄的添加以下配置的解决办法不可用:
error_page 405 =200 @405;
location @405
{
root /srv/http;
}
一种不完美但可用的方法为:
upstream static_backend {
server localhost:80;
}
server {
listen 80;
# ...
error_page 405 =200 @405;
location @405 {
root /srv/http;
proxy_method GET;
proxy_pass http://static_backend;
}
}
即转换静态文件接收的POST请求到GET方式。
Posted via UltraBlog.vim.
Blueman不能記憶藍牙的關閉狀態,每次登入桌面都會自動打開藍牙,既費電又不安全。
一種方法是禁止bluetooth服務自動啟動,缺點是使用藍牙時不方便,還要手工啟動bluetooth服務。
另一種方法是登入桌面後自動關閉藍牙,即使用如下命令:
sudo rfkill block bluetooth
但XFCE不能定製自動啟動程序的順序,所以可以寫下面這麼個腳本,然後添加到自動啟動程序列表中:
#!/bin/bash
blueman-applet &
sleep 5
sudo rfkill block bluetooth
當然,還要取消自動啟動程序列表中原來的Blueman。
Posted via UltraBlog.vim.
元旦假期第三天,還是把域名給換了。
原因主要是.it太貴,年費十幾刀,而.org只有它的一半。另外,原來的sinolog.it有點兒長,也顯老氣,想換個更個性、更短的。
可惜中意的0xff有主了,只好退而求0x3f。0x3f在ASCII裡面代表問號,象徵“保持好奇心”。
按照上次的經驗,對著數據庫一通改,加上這兩年四處沾花惹草,很多網站上的相關信息都得跟著改,長此以往,以後連域名都換不起了。
好在RSS訂閱早已經換成了FeedBurner燒錄,只是對於直接用原域名訂閱的需要改一下訂閱地址了。
用了幾年國家域名,現在也用上國際域名了……
Posted via UltraBlog.vim.
幾年沒讀過小說了,上次讀劉慈欣的《球狀閃電》還是在學校的時候,多年後再次讀小說的感覺怪怪的,有點陌生,也沒有激情。雖然早就知道這部書,一直沒看,現在終於利用零散時間在Kindle上讀完了它。
我不是個科幻迷,但也覺得這部書寫得挺好。有懸念,立意新穎,尤其是據說在後兩部裡乾脆把地球給寫毀滅了!我要接著往下看。

Posted via UltraBlog.vim.
作者對Vim很有心得,分享了很多好的經驗。這本書於新手可以用來入門,於老手也多有可取之處,是本學習Vim很不錯的參考書。

Posted via UltraBlog.vim.
兩年前我曾在Vim郵件列表裡問怎樣高亮配對的HTML標籤,但沒能解決。今天意外收到一封郵件,Linqq童鞋在StackOverflow上問了同樣的問題,有人就寫了這個插件。

Posted via UltraBlog.vim.
这是最好的時代,这是最壞的時代。現在還有像人人影視的BT種子FTP这樣的站點,實在不容易。但是所有種子列在一塊,想看看最近幾天都更新了甚麼都很困難,於是早想寫個腳本省時省力。这週末終於實現了这個想法。
主要功能
- 按關鍵詞查詢種子
- 限制查詢範圍為最近幾天新增的
- 下載符合查詢條件的種子,允許下載前編輯任務列表
使用說明
環境
- Python 2.7,不支持Python3
- Mac OS X Lion,Archlinux測試通過,理論上支持Windows
配置
如果需要編輯下載任務列表(即使用-s選項),應事先配置環境變量YYETS_EDITOR,將值設定為一個文本編輯器的路徑,或者修改腳本的私有屬性__editor__也一樣。如果这兩個位置都沒有設置,則使用環境變量EDITOR。否則,將報“Command not found”的錯誤。
有一點提示,如果使用GVim或MacVim,需要加上選項-f,以阻塞的方式啓動它,否則會導致下載結果不能達到預期。例如對於MacVim,可配置YYETS_EDITOR為:
mvim -f
使用舉例
# 列出所有種子
./yyets.py
# 搜索關鍵詞
./yyets.py 猩球崛起 1080p
# 搜索最近三天新增的種子
./yyets.py --past=3
# 搜索最近七天內新增的、滿足關鍵詞條件的種子
./yyets.py --past=7 蓝精灵
# 下載滿足查詢條件的種子
./yyets.py -d --past=30 1080p
# 下載滿足查詢條件的種子,下載前編輯任務列表
./yyets.py -d -p --past=30 1080p
# 更多詳細信息,參閱幫助
./yyets.py -h
./yyets.py --help
下載
移步GitHub獲取最新版本:
https://github.com/xbot/shell
Posted via UltraBlog.vim.
花了大約一周的時間,周日晚上讀完《Pro Git》的最後幾頁。
高效、安全的分布式和強大的分枝合併是Git的殺手級特性,这本書在語言上淺顯易懂、簡明扼要,在章節安排上循序漸進,在內容講解上有較深入的挖掘,當屬眼下Git方面最好的教材。此外,这本書的中譯水平也很高,必要的地方還有譯注,能看出譯者不是外行。

Posted via UltraBlog.vim.
距離上一個版本的釋出已經有三個月了,这次新版並沒有增加多少功能性的內容,主要是代碼的重構和對在MacVim下穩定性的改進。
對依賴關係檢查的不細緻導致了一些麻煩,拋出的錯誤信息有時與實際原因相距甚遠。由於開始時是以實現功能為主,所以都是直接用函數實現的,之後修修補補,代碼冗余而且維護麻煩。於是著手重構主要功能的源碼,面向對象,把所有檢查邏輯放到父類中去實現,子類只關注自身邏輯,最後新版減少了二百多行的代碼量。
在重構的過程中偶然發現,在MacVim中,程序拋出任何異常,即便是有捕獲邏輯,也會導致編輯器崩潰。在这裡簡略地提到:
the failure was actual a crash, through some strange combination of threading, matplotlib pyplot backend, and ssh X11 forwarding, sys.stderr had somehow been assigned to something which python complained wasn’t a file-like object
於是將所有標準輸出與標準錯誤輸出語句換成另一種形式:
# 原形式
sys.stdout.write('xxx')
sys.stderr.write('xxx')
# 新形式
print >> sys.stdout, 'xxx'
print >> sys.stderr, 'xxx'
以上是新版主要變更的內容,此外,也順便解決了開發過程中發現的個別Bug和做了其它一些改動:
- Change: The key "xmlrpc" of the settings list is dropped, a new one with the name "url" is added, you should set its value to the blog url.
- Change: Source code refactorings.
- Change: Solve the crash problem existing in MacVim only.
- Change: :UBConv can be used in any buffer.
- Change: :UBThis now has a third parameter, which enables convertions between syntaxes.
- Bugfix: The second parameter of :UBThis cannot take effect.
这也是將源碼從Google Code遷移到GitHub後發佈的第一個新版本,更詳細的信息請移步插件主頁或GitHub上的代碼倉庫。
Posted via UltraBlog.vim.