我的open source專案整理列表
從很久以前,我就覺得open source是一件很酷的事,覺得能夠免費讓大家用自己心血的結晶真的是件很了不起的事,因此我自己除了使用了不少的open source資源,也一直希望自己也能夠多少有點貢獻,所以在過去多年中確實也有寫了一些open source的專案,雖然都不大,但都很多都是我自己會用到的工具,雖然以前可能有寫過一些介紹,但其實還有不少是沒有介紹過的,會寫open source專案其實多少就是希望有人能使用,而隨著時間久了,我自己會在看到時才想起原來我有寫過這個專案,所以想說弄篇文章來整理一下我所做過的open source專案
Python HGE
HGE以前是一款商用的2D遊戲引擎,後來開源,因為我覺得他的引擎挺簡單好用的,重點是有硬體加速,不像SDL純軟體算圖很慢,所以想說把它移植到Python,於是就用Boost.Python寫了一個專案,完成度大約7~8成,裡面有些比較難處理的部份還沒弄好,但主要功能大多都已經可以使用
專案網址:
http://code.google.com/p/python-hge/
Gluttony
Glottony是一個用來分析Python函式庫在PyPi上的相依情況,主要是有一次我安裝TurboGears時遇到其中一個package的伺服器似乎掛掉了,整個進度就因為那個檔案載不了而無法進行,因此我覺得或許這種相依的情況也是選工具時重要的考量,於是就寫了這樣的工具
專案網址:
https://bitbucket.org/victorlin/gluttony
Po translator
這是一個用來將.PO檔中的內容透過Google自動翻譯的工具,主要是因為我自己的網站有中文版,想翻成簡體中文,手動一個一個實在太花時間,於是就寫了一個這樣的工具,不過目前有個缺點是當送的量太多,會被Google擋掉一陣子的樣子
專案網址:
https://bitbucket.org/victorlin/po_translate
Apply firewall
iptable幾乎是所有用Linux主機多少都會用到的服務,但是在重設iptable的過程中,難免有時會不小心擋掉自己,如果是遠端登入就麻煩大了,主機在美國也碰不到,只有遠端重開機一條路可走,為了解決這問題,我做這個小工具,可以讓設定iptable像是切換螢幕解析度一樣,會有一段時間讓你確認,沒反應的話會自動取回更動前的設定
專案網址:
https://bitbucket.org/victorlin/apply_firewall
Correct pycountry
這是一個pycountry的fork,主要是因為pycountry引用ISO裡的國家名稱,但大家都知道台灣的名稱被ISO亂訂,看了心情就不是很爽,所以就fork出一個專案然後改掉裡面的名稱部份
專案網址:
https://bitbucket.org/victorlin/correct_pycountry
Middleman
Middleman是一個基於gevent的簡單網頁proxy,主要是我自己寫來抓論文用的,不過現在已經沒在使用,middleman的名稱主要是取自middleman attack
專案網址:
https://bitbucket.org/victorlin/middleman/
Logy
一個簡易的中央日誌記錄用的網頁服務,目前沒有繼續開發的打算
專案網址:
https://bitbucket.org/victorlin/logy
Loso
Loso主要是我替Plurk寫的一套中文斷詞系統,稍後有空我會寫篇文章來介紹這套系統
專案網址:
https://github.com/victorlin/loso
Avoid Disaster
Avoid disaster是一套用來備份資料用的工具,這也是我會加入Plurk的原因,當時我替我的Now.in寫了備份資料庫的工具,剛好看見Amir也寫了一套,裡面有個做法我覺得很不錯,於是就把兩套合在一起,做了一個fork,Amir看了就邀請我加入Plurk,這套工具不只可以備份到Amazon S3去,只要新增不同的storage類別,例如FTP storage,就能改將資料備份到FTP去
專案網址:
https://github.com/victorlin/avoid_disaster
License
這裡的專案所有的License應該都是MIT,好像只有少數幾個BSD,為什麼選MIT呢? 一來是我覺得GPL那種病毒式的,修改了想散播就得強迫你加入的自由算哪門子的自由,其實這點反而讓它變成很多商業產品喜歡使用的授權,因為你改了要散播也得開放出來,對於競爭對手有所限制,但BSD like就沒這問題,我這些東西都沒有商業考量,我覺得要開放就是要做到你拿去做商業軟體散播也無所謂的地步,就像天元突破裡的一段,他們之所以想開源
不過如果我也不是什麼聖人,或許哪天我的開源專案有了商業考量,或許我也會使用那病毒GPL來防止別人競爭吧,但是應該是不會,我覺得要開源就不怕別人用,就算用了GPL對方也不一定會照著規則走
第二個用MIT的理由,是因為MIT聽起來很酷!
第三,就是因為 MIT = Made in Taiwan :D