才在想 reStructuredText 好像還不能畫圖,就看到一月這個 thread。還可以畫偽.UML,有趣!
Python:
Python@TW planet
Python.Org.Tw
Python.Org
Other:
Planet Linux of Taiwan
Planet DebianTW
yurenju 介紹了一個書籍、音樂管理網站 - listal,我下午看到了以後,馬上就把最近看過與正在看的書建到資料庫裡去。
listal 這個網站如上所述,是一個書籍與影音的管理資料庫系統,以社會化為前飾詞。我手上的 DVD/CD 很少,也幾乎沒在閱聽,書倒是很多,所以只建了一些書籍的資料。listal 資料庫裡的書分為兩種:Owned (擁有的) 與 Wanted (想要的)。如此一來它不但能管理已有的書籍,當你在博客來或金石堂,甚至 amazon 逛來逛去的時候,也能順手記下感興趣的書籍,不必放進購物車 (留待 findbook 進行後處理 :p)。入手以後,馬上就可以改 Wanted 為 Owned。
理所當然地,listal 裡所有的書籍分類都以標籤 (tag) 進行。標籤是很好的管理技巧,就不必多作介紹了。listal 作為一個社會化的書籍管理系統,當然要準備評註的工具;使用者可以寫書評、評分。更社會化的是,listal 具備友伴 (friend) 系統,使用者可以向朋友要書、借書,也可以把自己的書標記為 loaned 「已借出」 (標記 loaned 這個功能比較偏管理取向一點,但不失為有趣的社會化功能)。
目前 listal 對中文的支援還可以,唯一的問題是無法搜尋中文內容。另外有一個小問題是:nickname 一經註冊好像還沒地方可以改。
剛剛在某頻道,由沒什麼辦不到的 pcman 所開示,看起來是 Python+GTK 的 IDE,比 Glade 完成度更高的樣子。手邊沒有 Debian,暫時不能用用看。
先記下來。不知道用它來寫 GUI 程式會有多快。
這兩天被 comment spam,於是 google 了一下,找到一個網頁,不能直接跑,但小改一點就可以砍 spam 了。在 COREBlog root 裡建一個 Script (Python) 物件:
for i in range(1, 465): try: ent = container.get_entry(i) for com in ent.comment_list(): if com.author == "Charge Back": ent.deleteComment(int(com.id)) print "%s: %s deleted" % ( com.id, com.author ) except: pass print "Done." return printed
現在想起來,一直以來都沒有把 COREBlog 的架構弄清楚過呢;連砍 spam 都要用抄的 ;p
政府的政策很多地方都讓人感受不到的。
花了 2,400 大洋,請頂順把我 X21 鬆掉的 LCD panel hinge 和破損的 LCD panel bezel 換掉,昨天晚上來收件,今天晚上就換好送回來了。感謝您,吳老闆。
不過這台老 X21 鍵盤的 shift 鍵還是不靈光,總要按很多次以後才會有作用。交給吳老闆之前我自己拆下來用高壓空氣吹了一吹,似乎有一點好轉,但修回來以後 shift 鍵又不聽話了。看來又得麻煩一下吳老闆,請他帶個鍵盤給我。
犬太郎的 X20 還更老個一歲,都沒有這些問題,看來我的使用習慣真是很差了。
scipy 社群似乎覺得 Plone 太難用了,http://www.scipy.org/ 舊站已有一年沒新東西上線。
現在新的資源可以在 http://new.scipy.org/Wiki 取得,包括 scipy 與 numpy 兩個主要計畫的 subversion repository 與 trac management system。
今天把 scim 昇級到 1.4.2-1,發現會和 gnome-panel 衝突;讓 gnome-panel 開不出任何對話盒,包括 "Run Application"。這實在不能被接受,太難用了。
於是到 gcin 同好會查了一下,先 vi /etc/apt/sources.conf,apt-get install gcin,再把我用的嘸蝦米弄進來,最後重新啟動 Gnome;又可以打中文了。
比起 scim 來,gcin 真的是新一代的中文輸入法,整個介面都是以中文輸入為前提進行輸入的,對每一類中文輸入法都有對應的選項;即使我在 en_US.UTF-8 locale 下,程式訊息也都是中文的。
我想我會用上一段時間的 gcin。
原來用 PHP 要變出漂亮的網址還得動到 mod_rewrite,好辛苦,而且 CGI 模式也不適用。
相比之下,Django 採用 regular expression (regex; re) 來訂製 URL,真是個聰明的作法。
在 Django 之下,可以寫
( r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/media'} )
這個由簡單的 regex 所構成的 URL dispatcher 來 (在開發階段) 服務靜態檔案 (上線之後要把這件工作換給 webserver 來作,免得不安全);也可以用包含了一大堆群組的 regex 來定義複雜的 URL/view 對應。
今天剛把 COREBlog 的資料匯入正在用 Django 開發的程式裡,透過 Django 的 URL dispatch by regex,用來存取每個 blog entry 的 URL path 都可以調成與原先完全一樣;相當地方便。