Skip to main content

plurk + jaiku 一起發簡訊

· One min read

下載 plurkapipypython-jaiku 後,再把下面的 python 檔案另存新檔。填入必需的帳號密碼或 apikey 後,就可以同時使用 plurk + jaiku 囉。下面是 console 版本:

> #!/usr/bin/python
> #coding=utf-8
> import plurkapi #http://code.google.com/p/plurkapipy/
> import jaiku #http://code.google.com/p/python-jaiku/
>
> #plurk login infomation
> pnickname = ""
> ppassword = ""
>
> #jaiku login infomation
> jusername = ""
> japikey = ""
>
> message = raw_input("要送出的訊息:")
>
> #jaiku
> japi = jaiku.Api(username=jusername, api_key=japikey)
> print japi.PostPresence(message)
>
> # plurk
> papi = plurkapi.PlurkAPI()
> if papi.login(pnickname, ppassword) == False:
> print "login fail"
> else:
> print papi.addPlurk(content=message, lang="tr_ch")

再搭配 App Engine 的話,很快就可以寫出一個網頁介面的發訊程式囉。

「Yahoo!奇摩字典」Ubiquity Script

· One min read

把下面的 script copy 到 Ubiquity 的 command-editor 中。 每當看到不熟的生字,打開 Ubiquity,輸入「fy」,按下「Enter」鍵,即可連結到「Yahoo! 奇摩字典」看解釋。

> CmdUtils.CreateCommand({
> name: "fy",
> homepage: "zhpy.googlecode.com",
> author: { name: "Fred Lin", email: "[email protected]"},
> license: "MIT",
> description: "yahoo dict",
> help: "fy [keyword]",
>
> takes: {"keyword": noun_arb_text},
>
> preview: function( pblock, directObject ) {
> searchText = jQuery.trim(directObject.text)
> var previewTemplate = "輸入要搜尋的單字 ${query}";
> var previewData = {query: searchText};
> pblock.innerHTML = CmdUtils.renderTemplate(previewTemplate, previewData);
> },
>
> execute: function( directObject ) {
> var url = "http://tw.dictionary.yahoo.com/dictionary?s={QUERY}"
> var urlString = url.replace("{QUERY}", directObject.text);
> Utils.openUrlInBrowser(urlString);
> }
> })

我是 Python,10件所有人都想問我的事

· 2 min read

Guido 在 Jaiku 上提到一篇「Learning Python」文章

裡面提到,Python 社群的最大問題就是注意力實在太分散了。相比用 PHP 或 Ruby 語言的人,問他們「對在哪方面使用該語言開發感興趣?」這問題,你幾乎都會聽到「Web 開發」。而在 Python 社群裡隨意抽五個人,問他們對在哪方面使用 Python 語言開發感興趣,則很可能會得到不同的五個答案。

所以在該文最後也提出了兩個問題:

1. 舉出 10 件所有人會想用 Python 語言寫而不用其他語言寫的事

2. 舉出 10 個所有人都會想問的關於 Python 語言的問題。

經過一些討論後,在此舉出「 10 件關於 Python 語言所有人都想問的問題」:

1. 為什麼 Python 既是動態語言又是強型別的語言? 2. 用哪個 IDE 寫 Python 比較好? 3. 有什麼關於 Python 語言的好書? 4. 學 python 語言能找到工作嗎? 5. 為什麼用縮排而不是用括弧或「End」來分段? 6. 用哪種 GUI 好? 7. 為什麼 Python 比 xxx 語言慢? 8. 如何開始學習 Python 語言?有什麼好建議嗎? 9. 有什麼小巧的 Python source 或專案項目可以參考練手? 10. 怎麼在 Windows 上直接跑 Python 程式 (不先安裝 Python)?

8/12/2008 更新: Guido 採用了這 10 個問題,並在 python wiki 上開了專頁

三分鐘教你/妳自製閃光卡

· 2 min read

你 / 妳是否是去死去死團的一員?在這個充滿閃光與柴可夫斯基 1812 序曲的節日,有種暫時失明的感覺?

為了對抗這個節日,我們就來自製閃光卡吧!

這個閃光卡製作的方法,就是寫個單詞記憶程式,並把這個單詞記憶程式命名為 閃光卡 (FlashCard) (* 註) XD

寫一個簡單的記憶程式不用花太多時間:我們只需要一個詞庫,與一個用作檢視與複習詞條的介面。

> #!/usr/bin/python
> # -*- coding: utf-8 -*-
>
> deck = [("a","apple"),
> ("b", "boy"),
> ("c", "cat"),
> ("d","dog")] #詞庫,包含4筆詞條
>
> import random
>
> help = "commands: Fail/Lucky/Quit" #支援的命令
>
> while True:
> card = random.choice(deck) # 從詞庫裡挑一個詞條,如 ('d', 'dog')
> which = random.choice(card) # 從詞條裡挑一個詞,如 ('d', 'dog') 中挑 'd' 或 'dog'
>
> print which #顯示詞
> print card[0], card[1] #印出完整答案
>
> action = raw_input("> ").lower() #輸入命令
> if action == "q": #按其他鍵繼續,按q就跳出迴圈
> break
> if "f" in action or "l" in action: #忘記時的處理策略
> print "...recorded."
> deck.append(card) #多加本詞條入詞庫中,以提升被選中的頻率
> if "h" in action:
> print help #印出說明
>

進一步修改參考:

  • 若要用作英文學習的話,不只前項 (英文)、後項 (中文解釋),也許還要一欄音標。

  • 詞庫應該要可以抽換

  • 詞庫應該要可以合併使用 (應該支援多詞庫)

  • 要用更有效的學習模式,如sm2

  • 應該可以用圖片代替文字,以做到支援「音標」等效果。參考資料

* 註:英文中, flashcard 就是單詞記憶卡的意思。