最近在 ptt 和 python.tw@ggroup 上看到一些關於 Python 下 Unicode 的討論,發現很多人在寫 Python 的時候,遇到 non-ASCII 字元就頭痛。Python 的 Unicode 支援非常直接易懂,透過 unicode 物件,non-ASCII 字元可以處理得非常漂亮。Python 程式員很幸福,標準程式庫已經把工具排在那裡,用就好了。

在 Python 中對 non-ASCII 字元的處理,大概可以分成兩類:

  1. 原始碼的編碼。
  2. non-ASCII 資料。

通常會遇到 1. 的問題,就是因為想對付 2. non-ASCII 資料。不過在 Python 原始碼檔案裡一旦出現了 non-ASCII 字元,就有多一點地方要注意。

» continue reading
Posted by yungyuc at 04:32, 0 comment, 0 trackback.

世理是拳頭力量大。當我拳頭小的時候,不是很喜歡這樣。

ISO 3166 是定義國家/獨立地理區的國際標準。不過它很討人

討厭歸討厭,如果想要一份「正確的」國家列表,它大概是最容易拿到的資料;我們常用的 TW, CN, US 等雙字母國別代碼是編在 ISO 3166 的 alpha-2 表裡面。

在 Python 下有 pycountry 替 ISO 3166 實作了一份 mapping。pycountry 內部存了一組 XML-based 的資料庫,在被 import 的時候會 on-demand 載入這份資料庫,然後生成一份 iterable mapping-like 的物件,當作這些資料的模型。除了 ISO 3166 之外,pycountry 還包裝了 ISO 639 語言代碼表,以及 ISO 4217、ISO 15924。

» continue reading
Posted by yungyuc at 07:30, 0 comment, 0 trackback.
Django 1.0
tag on Django Python

Django framework 1.0 released!

雖然我一路 SVN 跑上來,又沒花時間追 mailing list,所以沒什麼真實感,不過在此一賀!相關報導請參閱偉大提姆的文章

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

重灌了 XP,拿掉了 TortoiseHg,又拿掉了 TortoiseSVN。

» continue reading
Posted by yungyuc at 11:18, 0 comment, 0 trackback.

On etch

apt-get install libstdc++5 lib32gcc1 ia32-libs
Posted by yungyuc at 23:54, 0 comment, 0 trackback.

這篇文章寫於兩年前,主題鎖定在以 Python 寫 Linux 的 script。討論了 Python script 的慣用寫法、字串處理、字元編碼、檔案與目錄處理、呼叫外部程式,以及利用內建程式庫進行網路通訊。

» continue reading
Posted by yungyuc at 06:35, 2 comments, 0 trackback.

據說裡面是 Django,不過註冊有人數限制,現在只好先 K API 過過癮...

Posted by yungyuc at 19:24, 5 comments, 0 trackback.

本文是過去發表在雜誌上的文章,為了重新登在這裡,我作了一些編輯,不過因為是舊文,之中有些內容是已經過時了。類似的文章還有一些,我會慢慢地整理到這個 blog 上。

» continue reading
Posted by yungyuc at 07:27, 5 comments, 0 trackback.

http://www.selenic.com/pipermail/mercurial/2008-March/018014.html

在 Windows 上安裝 Mercurial 又安裝了 TortoiseHg 的人請注意,TortoiseHg 在 HKEY_LOCAL_MACHINESOFTWAREMercurial 裡塞了它自己的 hgrc,啟用了 1.0 裡沒了的 hgext.qct 和 hgext.hgconfig。錯誤訊息很擾人,可用:

hgext.qct=!
hgext.hgconfig=!

關掉。

Posted by yungyuc at 10:23, 3 comments, 0 trackback.
#!/usr/bin/env python
from mercurial import demandimport; demandimport.enable()
import cgitb; cgitb.enable()
import os; os.environ["HGENCODING"] = "UTF-8"

from mercurial.hgweb.hgwebdir_mod import hgwebdir
from mercurial.hgweb.request import wsgiapplication
import mercurial.hgweb.wsgicgi as wsgicgi
def make_web_app():
    return hgwebdir({
        'name1': '/path/to/the/repository',
        'name2': '/path/to/the/repository',
    })
wsgicgi.launch(wsgiapplication(make_web_app))
» continue reading
Posted by yungyuc at 10:18, 0 comment, 0 trackback.
Change to page (10 entries in each page): 1 2 3
© hover year to navigate month: powered by django