元旦假期第三天,還是把域名給換了。
原因主要是.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.
由於Total Commander很貴,在Windows下又是必不可少的,我一直希望能找到一個TC的免費替代品。試用過很多免費的文件管理器,但都不理想。偶然看到Double Commander,才發現這幾乎完全就是我想要的。

特性
- 幾乎完全模仿TC,甚至連插件的API都一致
- 界面佈局、樣式高度可定製
- 熱鍵高度可定製
- 開源、免費、跨平台
侷限
- 功能相對TC少很多
- 穩定性不是非常高
- 運行速度稍嫌慢
- 開發進度慢
小技巧
熱鍵設置
每個內置命令可以設置多個熱鍵,每個熱鍵可以指定參數,參數中可以使用環境變量,如下圖所示:

針對命令cm_ChangeDir設置了兩個熱鍵,其中,給Ctrl+Home指定的參數是$HOME,給Ctrl+Shift+Home指定的參數是$HOME/Desktop,即分別切換到當前用戶的主目錄和桌面目錄。
自定義文件類型命令
可以為每種文件類型定義多個命令,這些自定義命令將顯示為上下文菜單的“動作”菜單的子菜單項。如下圖所示:

定義了名稱為“Archive”的文件類型,關聯了一系列的文件後綴名。然後添加了一個名為“解壓縮到當前目錄”的動作,並指定所執行的命令為urxvt -e aunpack %f。其中,%f是一個佔位符,代表當前文件的全名。DC預置了幾個佔位符,可以點擊命令輸入框右側圖標是加號的按鈕選擇。
最終的效果如下:

解決日期時間亂碼的問題
截至版本0.5.0 beta,如果設置了使用日期時間字符串的格式為“yyyy-mm-dd hh:mm:ss”,在zh_CN.UTF-8的區域設置下,字符串中將出現亂碼:

臨時解決辦法是以英文區域設置啟動doublecmd:
#!/bin/bash
export LC_ALL=en_US.UTF-8
doublecmd &
Posted via UltraBlog.vim.
Templates make it possible for users previewing posts in custom formats in UltraBlog.vim. However, there is more you can do with our highly customizable templates. This article discusses how to highlight code snippets in posts by the use of some third-party open-source tools.
Before setting out to work, let me introduce the tools we are about to use:
- highlight.js: A javascript library which highlights code blocks in web pages automatically.
- jquery: The famous RIA development javascript library.
Download the upper two libraries and put them under any folder accessible to your webbrowser, in my case, it is /home/lenin/.vim/bundle/ultrablog/vendor/.
Then open UltraBlog.vim and edit the template you are using, put the following lines in the <head>...</head> area:
<link rel="stylesheet" href="/home/lenin/.vim/bundle/ultrablog/vendor/highlight/styles/default.css">
<script src="/home/lenin/.vim/bundle/ultrablog/vendor/highlight/highlight.pack.js"></script>
<script src="/home/lenin/.vim/bundle/ultrablog/vendor/jquery.js"></script>
<script>
$(document).ready(function(){
$('pre').each(function(i, e){
if(typeof e.lang != 'undefined')
e.className = e.lang;
hljs.highlightBlock(e, ' ');
});
});
</script>
If you are using the default template UltraBlog.vim supplies, change .title to .postTitle in the pre-defined <style>...</style> area, and change the class name of the div element in the <body>...</body> area from title to postTitle, that is because this class name is also used by highlight.js.
An important point, the jquery selector I used in the code snippet above selects every <pre>...</pre> element and copies the value of its attribute lang to class. This is specified for the wordpress plugin wp-syntax I use. If you use another syntax highlighting tool which uses different markup for code blocks, you should modify the code above to make highlight.js find code blocks correctly.
Posted via UltraBlog.vim.