Archive for the 'python' Category

Psychotic

今年有一個跟 python 相關的 joke,好像沒看到有人在提…雖然晚了一點,還是簡單介紹一下 Read more »

加入水銀黨

前陣子一直覺得 cvs 和 svn 並不是真的那麼好用,因此在看了許多人的介紹後,我也決定加入水銀黨了 (誤… Read more »

列印程式本身代碼的 quine.py

以前曾經在 language 信區看到有一篇文章在分析這類程式的寫法。剛剛一時興起自己亂兜了一下,沒想到就兜出來了

s = ‘”print \’s =\’, `s`, \’;\’, eval(s)”‘ ; print ’s =’, `s`, ‘;’, eval(s)

不過 python 的話應該可以再簡化,有空再來玩玩看。

Python challenge

Python challenge

這遊戲以前就開始玩了,可是一直卡關
上禮拜又找出來試試,果然連續幾關都過的很順利
不過目前繼續卡死在 level 13

據說網路上有解答?我是一直忍著不去找啦
上禮拜卡在 level 12 的時候跑去 irc 問了一下
結果不小心被我找到解法 所以找解答的事又擺一邊了
想想還是自己解比較有樂趣 (不過 level 13 已經卡兩天了@@)

其實以前太執著用 python 解
除了某幾題非得用 python 不可 其他的題目其實隨意
所以有兩題我是先用 perl 解出來了 再回頭想 python 的解法

這遊戲最妙的是找問題本身就是一個樂趣
有時候只給一張圖 根本不曉得問題在哪….
不然就是有一堆害死人的提示 搞半天才發現解法 trivial

題庫好像一直有在增加,目前是 33 題
看來我還有好長一段路要走@@

visitor/command

老實說我搞不清楚這算哪個  pattern,所以一起列出來

假設有三個函式  f1,  f2,  f3  定義如下

  def  f1(s):  return  s+’-1′
  def  f2(s):  return  s+’-2′
  def  f3(s):  return  s+’-3′

想把一筆資料依序丟進  f1  f2  f3  處理
(這邊簡單加上一個  suffix  代表處理過)
最後會得到新的結果,這相當於丟進一個  (f3。f2。f1)()  函式裡
其實很直覺就會這樣寫

  f3(f2(f1(data)))

不過萬一  pipeline  很長,就變成要一直套上去
pipeline  需要更動的話,這樣寫也不好維護
但在  python  中,其實有另一種處理方式

def  process(data,  flist):
  return  reduce(lambda  s,f:f(s),  [data]+flist)

往後只要編輯好一個  function  list,連同待處理資料一起丟進去

filters  =  [f1,f2,f3]
result  =  process(’img’,  filters)

得到的  result  就會是  ’img-1-2-3′

一般支援部份  functional  的程式語言應該都辦得到
這個可以用在哪裡呢?我都寫那麼清楚應該不用再多說了
事實上我就是拿來處理影像用的,而且的確很方便
當然也有很多其他的用途啦,就看怎麼應用了

Python 2.5 released

最近有一些振奮人心的好消息,繼 Debian etch 改用 python 2.4 為主要版本後,python 2.5 final 也在昨天釋出了。根據 changelog,這次修了一大堆 bug,也加入不少新的語法和 library。

例如 conditional expression。以前寫 c 常常用 ?:,放進 expression 裡很方便,但 python 因為沒有這種東西,所以得用 and/or 去組合出一個來用,現在總算是加入了。還有 partial function 的支援,事實上就是 curry 的實作啦。另外 standard library 也加入 sqlite 支援了,這是我最期待的,不過 db api 如果能標準化就更好了 (記得有看到 proposal,但不曉得有沒有被採用)。還有很多有趣的東西請自己到官方網站看一下吧。

順帶一提,apt 已經可以找到 python2.5 了,動作真快阿 :)

Slashdot
New features in 2.5

音樂軟體 Jokosher

Jokosher 是一個用 pygtk 寫的音訊編輯軟體
Linux 在多媒體編輯這方面還是有很多東西可以開發的
不過拿 Goldwave / Cakewalk 之類的軟體來比較也不太公平
畢竟這些軟體都發展那麼久了,功能性會完整很多
所以目前我要編修多媒體檔案還是會回到 Windows 環境處理

Linux 上雖然也能找到幾個不錯的套件,但似乎都還不是很成熟
比較完整的軟體目前只找到 audacity,不曉得還有沒有其他選擇
有空再來搜尋看看。

Jokosher [Link]

Audacity [Link]
Audacity 教學 [Link]

O’Reilly CodeZoo

剛剛在逛  Google  Code  時看到幾個好玩的套件
丟進  google  找相關資料時就找到這個  Code  zoo
目前只收集了三種程式語言的套件
有空再來挖挖看有沒有好玩的東西吧

Google  Code  [Link]
O’Reilly  CodeZoo  [Link]

Default python version in Debian

這件事困擾我很久了,Debian  一直不把預設的  python  version  改到  2.4
雖然目前  2.3  2.4  都有,但有些套件還是相依於  2.3,要拿又拿不掉   :(
mail  list  上也有人抱怨這件事,但大概只能自己安裝  module  來解決了

Re-setting  Debian  default  python  version  [Link]
How  can  I  change  Debian’s  default  Python  version?  [Link]

不久前在  LWN.net  上也提過這件事
Debian  Python  packages  in  sid  [Link]

看起來要靠官方機制的話,一時半刻還等不到…

來看看把  python2.3  移除會變怎樣

#  apt-get  -s  –purge  remove  python2.3
[skip]
Purg  gazpacho  [0.6.5-2]
Purg  libglade2-dev  [1:2.5.1-2]
Purg  python-gtk2  [2.8.6-3]
Purg  python-support  [0.3.8]
Purg  python-pyx  [0.9-2]
Purg  python-numeric  [24.2-5]
Purg  python2.4-pysqlite2  [2.2.2-1]
Purg  python2.4-pexpect  [2.0-2]
Purg  python2.4  [2.4.3-7]
Purg  python2.4-minimal  [2.4.3-7]
Purg  python-cairo  [1.2.0-1]
Purg  python-central  [0.5.1]  [python2.3  ]
Purg  python  [2.3.5-11]  [python2.3  ]
Purg  python2.3  [2.3.5-14]

看吧,真是可怕的東西….竟然想移除所有  python  相關套件
我對於  Debian  這種自作聰明的做法一直很感冒,但這功能好像蠻受歡迎的@@
很多人厭惡  Windxxz  的  *貼心*,卻能容忍  apt  的雞婆?
也許趕快弄出一個  slackware  版本的  colinux  image  才是長久之計XD

Debian  Python  FAQ  [Link]
Debian  Python  Policy  [Link]
New  Policy  [Link]

lambda 的改進 2

※ 引述《letoh (@heaven)》之銘言:

會去玩這個主要是因為要改 python 的 Expect 模組
我只試了 perl 跟 python
perl 的部份我沒仔細去看 python 的話是直接用 pty 實作
應該不算 binding 只是提供類似 Expect 的語法 Read more »

Next Page »