Search Google

Thursday, March 27, 2008

wx.BoxSizer使用須知

使用wx.FlexGridSizer的時候通常不會在將widget加入sizer時設定proportion,例如:
bgSizer.Add(button, 0, wx.EXPAND)
如果將這個壞習慣使用於wx.BoxSizer的話就會形成很醜的畫面,例如將BoxSizer的方向設定為wx.VERTICAL,則在resize視窗時widget只會做橫向的resize,縱向將不會改變,要避免這種狀況就必須記得在將widget加入sizer時設定proportion,如下:
bgSizer.Add(button, 1, wx.EXPAND)

Monday, March 24, 2008

wxPython設定視窗最小顯示尺寸

最直覺會想到使用wx.Window的SetMinSize(wx.Size(x, y)),但是需要不斷的try & error而顯得不太實際。
接著想到將wx.Window的GetBestSize()或GetEffectiveMinSize()直接傳入SetMinSize(),但是GetBestSize()與GetEffectiveMinSize()所回傳的(x, y)值總比實際需要的大小稍微少一點,就缺這麼臨門一腳。
最後終於找到wx.Window的GetSize(),直接在SetMinSize()中套入GetSize()即可設定視窗的最小尺寸。

範例:
self.SetMinSize(self.GetSize())
self.SetMaxSize(self.GetSize())

self為wx.Frame的custom class

Yet Another 悲劇英雄?

節錄自Hinet新聞網

再次成功營造出悲劇英雄。。。不知道有沒有付版稅給Evita (Don't cry for me Argentina)?

Friday, March 21, 2008

Python 編碼轉換

以前都必須將檔案另存成utf-8格式,現在發現其實檔案格式為ansi一樣可以儲存utf-8的資訊。
請參考政大應數的討論版
重點是:
# -*- coding: utf-8 -*-

var.decode('編碼') & var.encode('編碼'),常用編碼為utf-8 & big5

Tuesday, March 18, 2008

在wxPython與Tkinter中bind lambda callback的差異

單就argument mapping而論:

Tkinter要對每個傳入的arg做mapping。
self.listboxAlbumList.bind('', lambda a='aa', b='bb': self.ClickOnListbox(a,b))

wxPython則只需要告知有傳入arg即可,不需要一一mapping。
self.Bind(wx.EVT_BUTTON, lambda a: self.OnCloseMe(a, 'aa', 'bb'), button)

Thursday, March 13, 2008

使用putty觀看big5/utf8字型

有鑒於家中電腦是utf8編碼,使用putty連上去之後再轉連到ptt.cc的話會出現排版跑掉的問題(每次移動游標的時候都會亂掉),因此特別研究了一下putty的設定方法。


因為字型現在是big5,因此要看主機上的utf8(eg. ls的output)就必須借助於screen,執行或繼續screen session之後輸入"ctrl-a + :",接著輸入"encoding utf8 big5"就可以將原先顯示的編碼由big5改成utf8。如果使用telnet連上ptt的話雖然putty的設定已經是big5編碼但是依舊會看到亂碼,這時候需要輸入"ctrl-a + :"加上"encoding big5 "將screen中的編碼強制設定為big5,接著變能夠順利看到ptt的內容 :-)

Tuesday, March 11, 2008

convmv

更改檔案內容使用iconv,更改檔名則使用convmv :)

nano設定範例

nano設定範例

Thursday, March 06, 2008

單字錯誤使用範例

話說前幾天我在email中向某公司的 HR反應面試通知書上的職位與當初寫的不一樣,於是他很有禮貌的回我:

"Sorry for mistake. I resent it."

hm... 注意到了嗎?他可以說:
"I've re-sent it"
or
"I will resend it"

但用resent卻是天大的錯誤!讓我們來看看resent真正的意思是什麼。
根據Yahoo字典:

resent

vt. (及物動詞 transitive verb)
憤慨;怨恨[+v-ing]
He did not appear to resent it.
他好像對此並不生氣。

[Python & Tkinter] 瓶頸

似乎在thread中無法create/update widget,應該說還不知道如何正確的辦到這件事情。。。
每次想做這些事情程式就hang住=.=
研究中!

Updated @ 20080310, quoted from Oreilly's Programming Python, 2nd Edition, 2nd paragraph of Chapter 8.7.1

If you do use threads in Tkinter programs, however, only the main thread
(the one that built the GUI and started the mainloop) can make GUI calls. Even
things like the update method described in the previous section cannot be called
from spawned threads in a GUI program -- they'll likely trigger very strange
program crashes. This GUI thread story may be improved in future Python and
Tkinter releases, but imposes a few structural and platform-specific constraints
today.

Sunday, March 02, 2008

xen的初體驗

xen與一般的vm不同在於他是kernel level的vm,從底層直接做virtualization,因此搭載的OS的執行效率也近似於直接安裝於硬體上(據說driver也有相同的水準,我還沒體驗到),也因為他是kernel level的東西,安裝上也與一般的vm有所差異。
首先,並不是裝一裝然後執行個執行檔就開始作業了,安裝的部份可以參考Installing Xen On An Ubuntu Feisty Fawn Server From The Ubuntu Repositories安裝完後第一個遇到的問題便是為什麼沒有辦法連上Internet了呢?這時候再參考Small Tip: How to set up two interface Xen machine,這下終於可以開始嘗試玩xen

完成開機程序

銷售的技術

今天陪媽媽到家樂福買東西,路過冷凍水餃的地方剛好有擺出試吃攤位,於是媽媽興致勃勃的跑過去問銷售人員該牌的水餃好不好吃,當下得到的答案是兩個字 --> "好吃",可能是太早了,所以還沒開始煮,於是工作人員便說還要再等兩分鐘,一切都非常的制式化~
當場覺得這個銷售人員真不會作生意,趕快介紹這個冷凍水餃特別的地方然後多少加上生動的表情或肢體語言虎爛一下把氣氛弄得輕鬆一點當作跟朋友在聊天不是很好嗎?
不過也有可能是真的不太好吃,連他自己都不想吃,所以也懶得花力氣虎爛?
只是,騙人之前不是要先騙過自己嗎[1]?!

[1] 千王之王:"
周星星:我帥嗎?
張家輝:帥
周星星:你帥嗎?
張家輝:比你更帥!
周星星:哇,連自己都騙!
"