Archive for the Programming category

[plagger] patch to Plugin/CustomFeed/GoogleNews.pm

In order to process rss from news.google.com.tw, I’ve made the following tiny patch:

Index: lib/Plagger/Plugin/CustomFeed/GoogleNews.pm
===================================================================
— lib/Plagger/Plugin/CustomFeed/GoogleNews.pm (revision 1948)
+++ lib/Plagger/Plugin/CustomFeed/GoogleNews.pm (working copy)
@@ -18,7 +18,7 @@
sub handle {
my($self, $context, $args) = @_;

- if ($args->{feed}->url =~ m!^http://news.google.(?:co.jp|com)/! && $args->{feed}->url !~ /output=(?:rss|atom)/) {
+ if ($args->{feed}->url =~ m!^http://news.google.(?:co.jp|com(?:.tw)?)/! && $args->{feed}->url !~ /output=(?:rss|atom)/) {
$self->aggregate($context, $args);
return 1;
}

maybe someone can commit it back….

Technorati Tags:


[perl] XOR?

為了某個原因,要對兩個變數做 XOR 的檢查,除了這個之外不知道有沒有更好的寫法:


OSDC.tw 2007

很奇怪,我放了 OSDC.tw 的照片,可是卻沒寫 blog ,然後 hackathon 的我寫了 blog ,卻沒放照片。這件事我怎麼想都想不透。…


[hackathon] 黑客鬆2007

今年內應該都不會再有 hackathon 了,所以加個 2007 應該不為過。


[Note] svn + trac 備忘錄

快速設定:

  1. 設定 subversion (svnadmin create…), say path is
    /var/svn/yasa
  2. 設定 trac, say path is
    % trac-admin /home/trac/yasa initenv
  3. 填有的沒有的 (under trac-admin)
  4. 在 Path to repository [/path/to/repos]> 中填入 /var/svn/yasa (第一步中 svn repo 的目錄)
  5. 這步也許你不用,但我要:
    chmod -R www:www /home/trac/yasa

可能會遇到的錯誤是如 repository not found…之類的,解法是:

  • 編輯你的 conf/trac.ini ,修正裡面的
    repository_dir = /var/svn/yasa
  • 要 re-sync 一下:
    % trac-admin /home/trac/yasa resync

Technorati Tags: , , , ,


Perl 屬於專業編程語言

是的,不要懷疑,就如同標題所說的,「Perl 屬於專業編程語言」。看標題就知道這些日子以來我並沒有因為學了 pythonruby 就把 Perl 丟到一旁(1)

  1. 看我多重視,Perl 的 “P” 還大寫哦[back]

[ruby] 第一支 ruby 程式

寫 paper 寫到快瘋掉時,就會想做點奇怪的事。


快快樂樂學 Python - 由 Ferret 與 PyLucene 談起

標題當然是假的,又不是天才,怎麼快快樂樂學 Python 。也不是要出書,只是不知道要下什麼標題。

事情由來是這樣的,我在 survey 在 FreeBSD 上可以 run 的 lucene 程式,原本中意的是 ferret(1) ,不過看了一下文件發現

  1. API 不相容
  2. 不能讀 dotLucene(2) 的 index ,其實意思就是跟原生的 Java lucene 不相容啦

基於上述兩個理由,我只好含淚斬 Ruby 了。不然上面那個標題就會是「快快樂樂學 Ruby」了。

Python 有個 PyLucene 可以用,而它其實有點接近原生版本的 Lucene ,因為

  1. API 大致相容,說大致是因為我才剛學,不敢保證
  2. 可以 access dotLucene 的 index file ,這很重要,敝實驗室的流派就是點點點(3)
  3. 它是用 gcj 編譯的,感覺會比 Java 快一點,而我也可以確定大部份的功能是相同的。籠統地說,算是 Lucene 的 Python-binding 。

不過說要學個語言不是那麼容易,雖然說比起英語德語加法語來說,學個程式語言比較起來容易太多了,可是沒有個入門文件也是不行的。上網一查「Python」,結果台灣陣亡,第一頁最有用的就是第一筆: Python 教學文件。這可以位在香港的,看來我以前沒學 Python 也不能怪自己,資源少的可憐的感覺,隨隨便便要找個論壇都還來個 404 。

有了入門文件,沒有個中文文件是不行的。在我安裝了 PyLucene 之後,發現要查找中文還真是不可能的任務。程式一 run 下去就來個

SyntaxError: Non-ASCII character xxx’ in file xxxx.py on line xx, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

的訊息,當然人家在 error message 都給了資料了,不去看一下也不對吧。所以,找出原因,只要在程式碼中加入

# -*- coding: utf-8 -*-

就沒事了。…當然不會就這樣沒事,結果你不找問題,問題還是會找上你:

UnicodeEncodeError: ‘ascii’ codec can’t encode character …..

這就糗大了,它又沒說要怎麼辦?只好再次求助 Google 了。結論是,在字串後面加上 .encode(”utf-8″) 就可以了。(現在大家都老大不小了,應該改用 utf-8 了吧)

當然在做 Text Processing 的人,少不了要用到 Regular Expression,那入門文件當然是沒有啦。目前我是正在看這裡,如果有人可以指點一二的,也麻煩告訴我一下吧。 :)

先就這樣吧,反正趁有點小空的時候來學學 Python 也不錯,希望以後可以快快樂樂啦。

Reference:

Technorati Tags: , , ,

  1. ruby 版的 lucene[back]
  2. dotNet 版的 lucene[back]
  3. 甚麼?不不不,我們不是兄弟象[back]

A new home for Pugs!

Pugs 是可期待的 perl6 的實作版本。這裡就不多談了。

其實要講的是一個穩定的系統對於使用者有多麼重要。很多人其實不知道, pugs 之前是放在 ossf ,啊網站看起來好好的,為什麼要搬咧?難不成是 audrey 不愛台灣嗎? :[ 答案其實很簡單,一句話而已:

10:37 < @audreyt> 不幸的是 pugs 即將移出有時候會隔週休二日的 openfoundry

所以說,不管是無名還是 ossf ,也許你們都該思考一下這件事情。

所以, pugs 搬家了。


[OSSF新聞] 「授權精靈 v3.0」正式上線

整個標題都是從OSSF 第65 期電子報剪貼過來的,內容就不轉了,原文在,請自行點閱。

相對於3.0版,「授權指引 v2.1」採取問答的篩減方式,讓使用者必須回答完所有問題之後,才能得知哪些建議的授權條款可以適用,這樣的方式操作簡易、版面清爽,但是對某些使用者來說,只有其中數道特定問題才是關心的重點,卻一樣必須回答完所有問題,這是十分不便的。

剛剛實際操作了 v3.0 的系統,比起 v2.1 果然有顯著的進步。雖然我不確定是否一般使用者對於互動回答的方式較為習慣,但就個人而言,這種明確的是非選項即時過濾的選項,的確是方便不少。先前總是會擔心回答一串問題之後,出現的 License 反而不是自己喜歡的 :p 。現在這種方式,不但可以讓我確保自己選擇的 License 是自己想要的,同時也是一種學習授權的好介面 (Y)。

授權精靈在
一個字形容心得:


Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Taiwan
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Taiwan