昨天在某頻道和 thinkerping 大戰 Python 程式碼該如何縮排。老實說這還真是觸動所有 Python 程式員敏感神經的事。幸好,我們三人各執一端,看來是把可能出現的狀況都吵了一遍 (呃,至少吵得差不多了吧)。

因此,我把 Python 縮排上需要注意的地方,以及昨天討論的成果作個整理。當然,從後文你或許看得出來我是如何進行縮排的 (笑),所以描述上若有偏頗的地方全都是我的錯 (畢竟我懶得改編輯器的設定啦)。

» continue reading
Posted by yungyuc at 17:47, 2 comments, 0 trackback.

版權沒有,翻印不究。

# -*- coding: UTF-8 -*-

import sys, os
from urllib import urlretrieve

def ratio_changed(ratio, last_ratio, tick):
    return int(ratio/tick)-int(last_ratio/tick) > 0

last_ratio = 0.
def report(block, size, total):
    global last_ratio
    ratio = float(block)*size/total*100
    if ratio_changed(ratio, last_ratio, 10):
        sys.stdout.write("%.1f%%"%ratio)
    elif ratio_changed(ratio, last_ratio, 1):
        sys.stdout.write(".")
    last_ratio = ratio

if len(sys.argv) < 2:
    sys.stdout.write("Please specify a url.\n")
    sys.exit()
url = sys.argv[1]
filename = url.split('/')[-1]
os.unlink(filename)
sys.stdout.write("[start]")
urlretrieve(url,filename,report)
sys.stdout.write("[done]\n")
sys.stdout.write("%s saved.\n"%filename)
Posted by yungyuc at 08:30, 0 comment, 0 trackback.

Python 2.4, 2.5 官方的 installation 版是用 Visual Studio .Net 2003 編的,所以,如果想用 gcc/mingw 來對官方版 Python 寫 extension,有點小麻煩;我一直弄不大起來。

有人作了一包 Gcc 4.1.x 的 mingw,把這件事簡化了。裝了這懶人包 mingw 之後,就可以看到快樂的畫面:

http://farm1.static.flickr.com/190/521574311_f5423eecea_m.jpg

喔,對了。雖然此懶人包會把 C:\mingw\bin 加到 path 裡,但 cc1.exe 不在其中。請把 C:\mingw\libexec\gcc\i686-pc-mingw32\4.1.2 也加到 path 裡喔。不然,你可能會遇到 _spawnvp: No such file or directory 這一類的錯誤

什麼 6.0? (嘿

Posted by yungyuc at 22:48, 2 comments, 0 trackback.

【必死】堀江由衣所屬「ArtsVision」社長,被控猥褻聲優志願少女

這個世界難道還缺少罪惡和不公嗎。社會真實的面貌除了不堪就是不堪啊。

Posted by yungyuc at 06:47, 0 comment, 0 trackback.

Mercurial 的 merge 程式在 Windows 上是跑不起來的。幸好,因為我們雖然有了 mercurial,也不能隨便丟掉 subversion 和它的好兄弟烏龜。所以我們可以偷用 TortoiseMerge。

請在你的 Mercurial.ini 裡加入下列設定:

[ui]
merge = "C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe"

Good job. 現在我們可以快快樂樂地 hg merge。come on baby.

Posted by yungyuc at 17:35, 0 comment, 0 trackback.

本站舉家遷移到 site5。為了不要因為吃太多資源被趕出家門,得好好改進程式了。

Posted by yungyuc at 17:18, 0 comment, 0 trackback.

這是一篇對 Python 2.3 的介紹文章:http://tech.seety.org/python/python_intro.html。真的是相當古老,不過 Python 歷久彌新,用在 2.5 上也不會有什麼問題。

在 Windows 上,Python 2.5 對 2.3 最讓我心歡的進步,應該是預設圖示吧 (笑

Posted by yungyuc at 16:33, 3 comments, 0 trackback.

有圖有真相:

http://farm1.static.flickr.com/196/503912291_2804afa2b2_m.jpg

hgk 是一支圖形介面程式,用來瀏覽 mercurial 的 repository。分散式版本控制系統可以弄到關係很複雜,關係很複雜的東西,有圖形介面不但比較好,有時候還很必要。hgk 是學 gitk 來的,以 TCL 撰寫,從圖裡你就可以看到它會把 mercurial repository 給畫了出來;順便給你看一些 metadata。

在 Windows 上用 hgk,除了照 hgk 的說明 (Windows NT 那一段) 來作之外,還要安裝 TCL。我用 ActiveTCL。裝好 TCL,設好 hgk (設在 C:\Documents and Settings\yourname\Mercurial.ini 裡) 以後,就可以用 hg view 來看你的 repository 囉。

Posted by yungyuc at 08:43, 0 comment, 0 trackback.

以前給雜誌社寫的稿子:http://tech.seety.org/python/python_linux_admin.html。已經過了禁止重新發佈的限制時間了;當時一共寫了好幾篇,現在可以慢慢貼出來。

指令行的好處就是歷久不衰。寫作的當時我還死守 Python 2.3,所以也老到沒有什麼過時的問題 (笑)。

Posted by yungyuc at 20:40, 0 comment, 0 trackback.

很少人用 rst (reStructuredText) 來當文件格式。

不過rst 很棒!除了還看不懂 TeX 數式之外,幾乎適用於所有種類的文稿。可以用來寫日記、寫心得、寫報告、寫書。當然,rst 是「文稿」格式,所以不符合排版需要。但是,rst 可以轉成 LaTeX 再作後處理!

我用 rst 寫文稿寫了好多年;這個 blog 主要的稿子都是用 rst 寫就的。當然,本站的讀者看不到 rst markup (想想真可惜,rst 格式比較簡潔,也許以後改版加上 rst format download link?),因為每發佈一次文章,後台就會把該文稿用 docutils 把 rst 格式轉為 HTML 格式。

docutils 是什麼?其實就是 rst 文稿處理器,現在已經算是 Python 世界裡 de facto 的文稿處理標準了。

docutils 為 rst 提供了好些轉換程式,讓 rst 非常好寫好用。可是,這樣還不能解放 rst 完整的威力!如果要用 rst 再強化我們的文稿撰寫效率,那就要自己寫程式轉檔,這樣才能載入批次威能,引入ベルカ式系統能力。

為了在撰寫 script 批次轉換 rst 檔為 HTML 的時候,可以把 docutils 組態寫在 script 本體裡面 (就不要再多一個 docutils.conf 組態檔啦,累贅),就這麼作:

settings_overrides = {
    # general.
    'language_code': 'zh_tw',
    'input_encoding': 'utf-8',
    'output_encoding': 'utf-8',
    'footnote_backlinks': 1,
    'toc_backlinks': 'top',
    # html4css1 writer.
    'compact_lists': True,
    'embed_stylesheet': True,
    'stylesheet_path': os.path.splitext(__file__)[0]+'.css',
    'footnote_references': 'superscript',
}

src = "source text"
dst = "destination path"
writer_name = "html"

publish_file(
    source_path=src,
    destination_path=dst,
    writer_name=writer_name,
    settings_overrides=settings_overrides, )

快樂 docutils scripting!

Posted by yungyuc at 12:08, 0 comment, 0 trackback.
Change to page (10 entries in each page): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
© hover year to navigate month: powered by django