python耶~~
今天同事跑來問我mips上有否uc版本的python,
一問之下原來是某版子的tv tuner附的sample application是日本人用python寫的, 沒python的話沒辦法試.
也剛剛好我也才剛編完mips uc版本的python 2.5.1沒多久,
所以就剛好直接拿過去用.
不過嚇我一跳,
以前都是得主動出擊之外還要忍受冷嘲熱諷,
這可是第一次有embedded業務上的code是要求"必須"有python的.
:D
"拜Python教" 是一個低耦合高熱血密度的小型地下傳教組織.
專門研究並推廣Python崇拜
"Django光明會支部"
是一實驗性分享Python, Django及自由軟體心得的中文部落格
今天同事跑來問我mips上有否uc版本的python,
一問之下原來是某版子的tv tuner附的sample application是日本人用python寫的, 沒python的話沒辦法試.
也剛剛好我也才剛編完mips uc版本的python 2.5.1沒多久,
所以就剛好直接拿過去用.
不過嚇我一跳,
以前都是得主動出擊之外還要忍受冷嘲熱諷,
這可是第一次有embedded業務上的code是要求"必須"有python的.
:D
張貼者:
使徒提姆 !?
於
星期四, 12月 13, 2007
0
意見
因為lloyd大大說他可愛的老婆說, 『不要因為便宜而買,然後嫌棄壞掉,還不如買好一點,用久一點來的划算』,於是就買了一支logitech的g5滑鼠, 但是linux下沒有windows上的setpoint driver, 所以就自己來了.
一插上就會自動有的功能包括左右中鍵滾輪上下跟硬體dpi設定,
不過滾輪向左向右水平滾動的功能未啟動,
另外大姆指鍵要自己做一些設定以符合自己的需求.
首先是/etc/X11/xorg.conf的基本配置
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "G5" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "InputDevice"
Identifier "G5"
Driver "evdev"
Option "Name" "Logitech USB Gaming Mouse"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "no"
EndSection
pointer = 1 8 3 4 5 7 6 2 9 10 11 12 13 14 15 16 17 18 19 20
(xbindkey '("b:6") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[Page_Up]'")
(xbindkey '("b:7") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[Page_Down]'")
(xbindkey '("b:8") "/usr/bin/xvkbd -window gnome-terminal -xsendevent -text '\\[Control_L]\\[V]'")
這句可能會成為Python Programmers的本月(年?)最經典.
此句的出典為本月在駭客圈裡非常知名但原本推崇perl語言的XKCD網站漫畫 (xkcd的作者昨天學了python, 注意看的話會發現Tooltip上還寫著Perl, I'm Leaving you.):
隨即有網友作了T-shirt:
加上 TIOBE Programming Community Index 的本月頭條: December Headline: Python surpasses Perl for the first time in history.
這個月似乎python推廣的好消息不斷. (或是perl ain't cool anymore?!)
所以,
下次記得老闆要叫你"""飛給他看"""的時候,
python可是連反重力模組都幫你寫好了.
;)
I've found trac's fastcgi backend simply out-dated. I thinks it's direct copied from an old flup source, and since then flup really updates a lot, I've already use thread pool techniques everywhere in our web applications/frameworks for a while, so current trac's fastcgi backend implement just so out-dated and looks wierd when I installed it, really.
But thanks there's WSGI to save us ! I could just replace the fastcgi backend to flup-0.5 (latest, and author claims it maybe final version of flup) and SAVE MEMORY !
and it's simple too,
just install the flup package, and edit your old trac.fcgi / lighttpd's settings.
trac.fcgi:
try:
import pkg_resources
from trac import __version__ as VERSION
from trac.web.main import dispatch_request
from flup.server.fcgi import WSGIServer
WSGIServer(dispatch_request,maxSpare=100,minSpare=100,maxThreads=100).run()
except SystemExit:
raise
except Exception, e:
print 'Content-Type: text/plain\r\n\r\n',
print 'Oops...'
print 'Trac detected an internal error:'
print e
import traceback
import StringIO
tb = StringIO.StringIO()
traceback.print_exc(file=tb)
print tb.getvalue()
fastcgi.server += ("/sandbox" =>
("sandbox" =>
("socket" => "/tmp/trac-sandbox.sock", #need to change for each
"bin-path" => "/var/trac/cgi-bin/trac.fcgi",
"max-procs" => 1, #default 4
"check-local" => "disable",
"bin-environment" =>
("TRAC_ENV" => "/var/trac/sandbox")
)
)
)
來自 Slashdot 的報導:
耶魯大學政治聯盟(Yale
Political Union, YPU,美國最古老的學生政治組織)的學生
仿效著名geek漫畫xkcd, 在耶魯一場Stallman對於DRM(Digital restrictions management)議題的演講裡, 對Stallman進行(玩笑似的)攻擊.
Richard Stallman主要在耶魯大學講述的議題為DRM,
RMS 認為現在大型商業公司(Apple,Microsoft,Sony)推動的DRM(數位著作權管理)是非法的,
常用的DRM限制包括:
* 必須在指定電腦或播放機才能播放
* 必須在特定的日期前才能播放
* 播放的次數
* 傳輸到播放機的次數
* 燒錄到光碟的次數
* 以上限制的混合
(引用自Wikipedia的DRM條目)
而GPLv3也可說是RichardStallman對DRM全面宣戰的GPL改進條款.
耶魯大學政治聯盟在RMS演講之後, 進行對 "DRM是非法的"這個議題的投票, 以33對20票通過.
不論我喜不喜歡GPL, RMS無疑是自由軟體界真正的鬥士,
他對於他眼中的惡向來從不讓步,
沒有GPL與FSF, 今日的自由軟體絕不能如此蓬勃.
而這樣具有風骨的人物跟信念堅持, 不論我是否同意他的論點, 都是讓我值得尊敬的.
張貼者:
使徒提姆 !?
於
星期日, 10月 21, 2007
0
意見
標籤: drm, humor, opensource, talk, xkcd
我下的果然是聳動的標題 :X
不過這陣子來Theo de Raadt (正反評價兩極化的openbsd hacker)對GPL的抨擊可以說是將沈睡已久的聲音再吶喊出來.
關於這件八卦有興趣的人其實可以在網上搜索一下,應該可以查到不少消息. 所以我只發表一下我無聊的感想.
一直以來信仰GPL的人們對於BSD license的評價就是以BSD-like版權放出的程式有機會被大企業給偷盜,然後變成close sourced的商業軟體. 所以最好自由軟體都使用GPL license才不會有問題.
簡而言之以GPL信仰者的觀點就是:
GPL --> 正義的一方
商業公司,closed source --> 邪惡的一方
BSD --> 爛好人,鄉愿
不過以BSD版權使用者的觀點來看, 似乎就不是這樣了.
大部份使用BSD版權釋出的軟體, 在實務上即使是被公司當作是closed source軟體販賣, 這些公司經常仍會回報patch給原本的團隊或作者. 此外, 增加使用的人數並真實的在商業上運用也有助於程式的測試改進.
所以公司或商業化的軟體 就算沒有幫助 基本上對BSD版權的危害並不如GPL的信仰者們所說的大.
而如果有人將軟體做了一些改進, 並用GPL版權釋出, 結果會變成怎樣呢?
今天舉個例子,比如說如果某個原本是用BSD版權開發的blog軟體,被某個GPL信仰者做了一些改進,並且改用GPL版權釋出. 這會造成原本都是自由軟體的使用族群分散之外, 另外如果新的修正是基於GPL版本的blog做的修正, 原本的BSD軟體就不再能拿回來用了. 因為新的修正會受到GPL的影響. 不得不變成一個GPL patch.(任何基於GPL衍生的程式碼均得為GPL授權), 知道這樣的嚴重性了吧, 也就是說GPL比封閉軟體還狠, 作完自己的修正之後不僅要奪走BSD版權的軟體現在的顧客,還要剝奪未來原本BSD可參考改進的程式碼, 變成只剩GPL-only授權釋出的程式有做修正. (當然 可以請求每個patch的原作者再用BSD版權釋出,然後再基於這個patch再做修改,不過在實務上似乎很少能做到如此)
Theo事件的導火線也在於此, linux people將BSD/GPL dual license的driver版權宣告拿掉, 然後re-license成GPL. 拿掉別人原本的版權宣告沒有任何問題吗? GPL people認為是沒有的, 總而言之 為了GPL people相信的正義 是可以犧牲BSD people的, 即使以後所有在linux上的driver的code patch都不得不為GPL, BSD版權的人們一點都不能拿來用也無所謂, 非我族類, 其心必殊.....
所以說... 就算theo過去怎樣怎樣 這次我覺得他講的倒有點道理... gpl 信仰者們, 也許BSD對於你們是異教徒, 但, 所謂自由軟體的正義真的是只有一條道路吗? 刪掉別人的雙版權宣告, 然後改成GPL only 真的是那麼的正義那麼理所當然吗? 我想值得再思考思考.
張貼者:
使徒提姆 !?
於
星期六, 9月 29, 2007
0
意見

看了Digg上這篇文章之後, 才發現gimp建圖檔時可以選衛生紙這個選項~~
試了一下還真的哩...
喔 這個概念真不錯 不過我家印表機可能印不出來吧....
還是美國的衛生紙現在改用 Double A材質了 ??? XD
張貼者:
使徒提姆 !?
於
星期一, 9月 24, 2007
0
意見
不知道國家找我這種沒戰鬥力的文官去幹嘛~~ 我當兵都在寫公文跟當客服處理客訴啊~~
哪會作啥戰...
還要去屏東某營區一個禮拜~~ 禮拜天早上就得出發~~
唉唉~~ 真不想去~~
我是很愛好和平的啊~~ (其實是不爽錯過一個禮拜的新番 Arrrrrgh~~ XD)
祝我平安歸來吧~~
張貼者:
使徒提姆 !?
於
星期五, 9月 07, 2007
0
意見
Part I
Part II
Slide
這兩部影片是在OSCON2007裡Simon Peyton-Jones的Haskell演講, 其實已經隔了一段時間, 今天晚上才一時興起去看,
因為知道是Microsoft Research裡的Haskell創造者之一,
原本是預期一個長得鬍鬚長長的老頭 然後開始講一些誰都聽不懂的玄學...
不然應該至少要長得像星際大戰的尤達吧~~
結果看了影片之後發現根本就大錯特錯... 大師不僅可以把玄學講成簡單的道理,
長得還比較像歐比王跟魁剛金...
連我都似乎開始有點聽懂了 @@ (雖然說這肯定是大師的催眠術)
Haskell最大的賣點不僅在於他是一個純粹的functional programming language,
更重要的是Haskell還帶有非常多在其他語言看不到的高等特性,包括惰性(laziness),型態類別(type classes), monads等等, 而這些特性將有可能會強烈的影響到我們下一個世代的程式設計語言.
也因此在諸多語言裡面也慢慢可以看到Haskell的色彩, 包括Simon Peyton-Jones所提到的C# 3.0, (LINQ據說是受到monads的直接影響), 還有python2之後的list comprehension等等都是例子,我覺得這些特性應該會慢慢的從Haskell中被帶出來讓世人所熟知.
(對了 講到python, lambda,map,filter都還在python 3.0a的builtin/keywords裡面,
只有reduce被移到functools裡. 之前map filter說要被降級好像是誤傳?(未查證))
Simon一開始講的是xmonad, 主要是一個haskell寫的
window manager, 非常的小所以他拿來作說明, 然後就開始講一些functional programming的基礎特性, 我主要注意到他說Haskell的types跟UML一樣是用來表示High level design, 這倒很有意思, 我是個python user/advocators我會喜歡duck typing跟lisp這種dynamic types的語言是很自然的, 但是像Haskell這樣的static typing語言不僅有type inference可以減少累贅感, 另外還可以透過compiler檢查高階設計, Data types的construct語法看起來其實也很接近BNF, 倒是讓我覺得static typing也沒有那麼壞了起來.
不過type classes有點複雜, 這是連Simon這種神人都覺得未來仍有發展空間的東西 我並沒有完全跟上, 改天還要再深入研究.然後就開始講到I/O跟scripting, IO的部份, 並不是很直觀, 網路上對於monad的討論也多到暴 所以我也是聽得很霧 另外也提到了Haskell library的現狀(就我以前try過的一些經驗, Haskell的library不算多, Cabel比較像是python的distutils, 可以裝一些3rd party的module, 不過dependency的部份有點麻煩, 似乎現在有人在發展一些工具在處理不過還是沒有很成熟), 這部份其實我目前比較沒有那麼大的興趣, 所以聽得有點散, 其實python就目前實務使用(套件,標準庫...等等)來說還是比Haskell成熟的多,並沒有很急著要學太多實務部份, 但我覺得Haskell是非常具未來性的語言, 所以現在多花點時間了解一些更基礎的特性或許也是對的.
之後開始聽到有關laziness跟first-class control structures, 這很有趣, 如果有學過lisp的話肯定知道lisp有所謂的special form跟macro, 因為lisp是一種語言的語言(meta language), 可以透過macro來無限制的擴展語言, 所以雖然是在1990年代的OOP風潮前就有的語言但卻可以不改變語言的本身特性而發展CLOS這樣的物件系統, 這也是為甚麼lisp之所以吸引人並且長久有穩定支持族群的原因, Haskell的laziness就是讓function跟data constructors不在第一時間就被evaluate, 直到真正需要的時候才去eval, 而這讓Haskell靠著laziness來取代lisp透過macro來支援special form的方法, 只要單純的撰寫函式就可以更動control structure, 這真是非常酷的特點.
最後simon講到Haskell跟其他語言採取完全不同的方法設計, 其他語言主要是一開始先想辦法讓語言有用(Useful)而慢慢的再來加一些限制讓語言更安全(safe), 而Haskell則是採取一開始是Useless(無用處)但是Safe的設計,然後慢慢的讓語言更加具有功能性.
之後simon也講了一些工具跟網站 畢竟這個演講也只是粗淺的導引, 還是有很多深入的內容要多看多玩才會了解 不過之前也看過一些Haskell的介紹跟導引, 他的演講對於個人提高興趣及指點迷津上我倒覺得成效還不錯.
看完演講總算比較有信心覺得這是個正常人可以玩的程式語言了, 知道玩這個語言沒那麼容易變成瘋狂數學家總是安心不少 ;) 不知道為啥突然想起研究所唸過的Kiyoshi Itō這個超神的家伙,記得聽以前的教授說Ito calculus是他的碩士論文發明了之後, 讓我真是想去再生兩個腦袋, 不過還好haskell裡的lambda caluli沒那麼困難, 只要知道\在haskell裡面是代表lambda, 其他只要lisp學好的話搞不好會更欣賞haskell滿直覺的表示法, 型別的理論我比較少接觸看起來還要多摸, 比較困難的是monad, 有時間的話繼續努力玩玩. (話說大師的催眠術果然是無敵的, 看來只要一直想著這很簡單這很簡單終究會變得..感覺..簡單起來 XD)
張貼者:
使徒提姆 !?
於
星期五, 9月 07, 2007
0
意見
標籤: haskell, link, programming
替你的iphone灌個django吧.... (不過沒iphone orz)
圖片:
http://www.flickr.com/photos/jacobian/1160698795/
iPhone call database using django
一些文章:
http://simonwillison.net/2007/Aug/19/worked/
http://livinghardknox.com/2007/08/20/django-and-the-iphone/
http://livinghardknox.com/2007/08/21/more-on-django-and-the-iphone/
張貼者:
使徒提姆 !?
於
星期三, 8月 22, 2007
0
意見


