這幾天玩MonoDevelop Stetic (gtk# 的 UI designer) 的時候,發現 gtk# 裡的 TreeView Widget 是個很有趣的元件。
有趣的原因,是因為他的設計哲學整個跟 Windows form 的設計哲學截然不同,Windows form 的 TreeView 就是很單純的 TreeView,沒別的。
而 gtk# 的 TreeView Widget 則是以所謂的 MVC Pattern 去設計,所以,其實 TreeView Widget 會根據你塞進去的 Store (Model) 來決定該怎麼去顯示。也因此,它既可以當作 Grid 來用,也可以當作 TreeView 來用,也可以當作有 TreeView 的 Grid 來用。
摸索的時候,花了不少時間,但今天打算寫這篇的時候,發現Mono官方網站就有 Tutorial:GtkSharp TreeView Tutorial,真的是白白浪費了摸索的時間…
牆
“嘿~你那邊補的怎麼樣?”,正在低頭收拾東西的人說道。
“差不多啦~”,正在對著牆上塗抹著的人回答道。
“天色也晚了,該走啦~”
“好,等我一下。”
夕陽試著想拉出他們倆的影子,可是卻不能夠…
是嗎?世界末日與冷酷異境裡的牆不會壞,所以也不需要補是嗎?
白開頭了…
WHR-G54S
家裏用了 3.5 年的 WBR-G54 最近不知怎麼地都怪怪的,上星期五嚴重地罷工了,完全無法用 ADSL modem 撥號。
於是在週六決定改刷 Tomato Firmware試試看,結果…失敗…這台 WBR-G54 就壯烈成仁了。
當機立斷地請在外頭的大妹在回家時幫我帶一台無線 AP 回來,有鑑於之前使用 Buffalo 都還蠻順利的,就指定了同一牌子。
最後買回來就是這台WHR-G54S。
目前一切順利,該設定的都設定好了,只差無線網路還沒有測試。
SyncToy
AllwaySync是可以用,但卻有限制,如果一次同步超過 20000 個檔案,抱歉,請買原版,現在有特價,約美金 20 元。該買嗎?
我不死心地再找了一次,突然想起前一陣子丟在桌面的 SyncToy,既然是Microsoft的好意,不如裝起來試試吧。
喔!
不錯用呢~ (對不起,不附圖片了…因為,豆漿濃…)
使用的體驗與 AllwaySync 接近,而且比 AllwaySync 聰明,會自動判定檔案是否被更名,而不會傻傻的刪除,再重新複製。
好東西,下載網址:SyncToy: a free powertoy download for file synchronization
p.s. 官方說法 XP/Vista 適用,經過我的實驗,Windows 2000 也可以用,只要有裝 .Net framework 2.0 即可。
如何在 Ubuntu/Debian 下重新編譯 mono/monodevelop
謝謝你,Dale E. Moore:[MonoDevelop] Can’t keep monodevelop running
信內所提供的方法,真是相當簡單又快速,也讓我學到 apt-get 的另外一個用法:build-dep
sudo apt-get build-dep mono monodevelop Download mono-1.2.5.2.tar.bz2<http://go-mono.com/sources/mono/mono-1.2.5.2.tar.bz2>and monodevelop-0.17.tar.bz2<http://go-mono.com/sources/monodevelop/monodevelop-0.17.tar.bz2>from http://go-mono.com/sources-stable/. bunzip2 mono-1.2.5.2.tar.bz2 tar xvf mono-1.2.5.2.tar.bz2 cd mono-1.2.5.2 ./configure --prefix=`pkg-config --variable=prefix mono` make sudo make install bunzip2 monodevelop-0.17.tar.bz2 tar xvf monodevelop-0.17.tar cd monodevelop-0.17 ./configure --prefix=`pkg-config --variable=prefix mono` make sudo make install
.Net framework 2.0 SP1/3.0 SP1/3.5 無法安裝
前一陣子Microsoft釋出了Visual Studio 2008/.Net framework 3.5,前兩天想裝起來看看,只是怎麼裝都不行。
經過與Google明查暗訪的結果,都說要先移除掉先前安裝的所有 .Net frameowrk以及登錄檔(Registry)裡面的資訊,再重新安裝才行。
還好,Microsoft的Aaron Stebner寫了一個工具,可以幫你作掉這些麻煩事,也因為這個工具,我先移除了先前安裝的 .Net framework 3.0,再移除掉 .Net framework 2.0,接著依序安裝 .Net framework 2.0 SP1、.Net framework 3.0 SP1、.Net framework 3.5,就大功告成了。
關於這個工具的文章與下載網址:Aaron Stebner’s WebLog : Automated cleanup tool to remove the .NET Framework 1.0, 1.1, 2.0, 3.0 and 3.5
電影流水帳(2007/11/22~2007/11/28)
最近衛視西片台在上演神鬼奇航2(IMDB),但卻都沒機會全部看完,只能片段地看,希望之後能像星際大戰一樣,來搞個連續播放,這樣才讚。
另外,昨天在 HBO 上看到超人集中營,也不錯看,是去年的片子,不過台灣好像沒上片。
- Evan Almighty(IMDB),中譯:王牌天神2,還不錯看的娛樂片,相當有趣。裡面有幾句對白,極富哲理:
「如果有個人希望,自己可以更有耐心。你認為上帝會直接賜予他耐心呢?還是給他一個培養耐心的機會」
「如果有人希望自己更勇敢。你說上帝是賜他勇敢,還是給他鍛煉膽量的機會?」
「如果又有人希望家人關係更親密。你想上帝是扔點貌似溫存的感覺給他呢?還是賜他一個和家人共渡難關的機會」 - Michel Vaillant,中譯:2004雷霆殺陣,會讓人以為是 Taxi 系列,可是它並不是,而且也不是 2004 年上映的,早在 2003 年就已經上映了。其實整個故事是由漫畫改拍,是講賽車的故事。故事好,女主角也很好看,我覺得拍的不錯。
- 救命,由李心潔跟林嘉欣主演,許志安是配角。故事從你可能在網路轉寄郵件上有看過的偷割腎事件開始,然後講兩個女主角的糾葛。兩個女主角的表現搶眼,恰如其分地詮釋這部驚悚片。故事好,講故事的跟演故事的也好。值得一看。
電影流水帳(2007/11/17~2007/11/22)
有點閒(鹹?)的一週,因為提早把預定完成的事情作完了。目前正在弄MonoDevelop的中文翻譯。
- I Now Pronounce You Chuck and Larry(IMDB),中譯:當我們ㄍㄟˋ在一起。喜劇片,笑點還不錯,故事藉著為了保險金問題的主角假扮同性戀,而帶出同性戀所遭遇到的一些問題,值得令人好好想一想。
- Good Luck Chuck(IMDB),中譯:倒數第二個男友,中譯片名翻得有點爛。基本上是一個迷信的故事,男子小時候遭遇詛咒,使得女人在上了他之後(他上女人?還是女人上他?),就會找到真愛,直到有一天,他找到真愛時,卻害怕跟他的真愛做愛做的事情…這使得 Chuck 失去理智,開始亂搞…本片帶有三級片情節,請不要帶小於 15 歲的人去看。
Show your bootchart
之前安裝 bootchart 以後,就一直沒管他,沒有認真去研究該怎麼去把圖弄出來。
前幾天把圖弄出來了,這裡把步驟紀錄一下,我的環境是 Ubuntu 7.10(Gusty):
- 安裝 bootchart,安裝完成以後,得重開機,讓 bootchart 能獲取必要的資訊。
$sudo apt-get -y install bootchart
- 重開機之後,bootchart 會把必要的資訊紀錄在 /var/log/bootchart.tgz。由於 bootchart 所提供的工具是用 Java 程式(/usr/share/bootchart/bootchart.jar)寫的,所以你還得確定有安裝 Java 或是 IKVM,我這邊是使用 ikvm。ikvm 是一個可以利用Mono(Linux 下的 .Net 執行環境)來執行 Java 程式的工具,一般來說,如果你有使用 Tomboy 或是 Beagle 的話,Mono就已經安裝了。
$sudo apt-get -y install ikvm
- 執行 bootchart.jar,這會解析 /var/log/bootchart.tgz,然後產生 bootchart.svgz 在當前目錄下。
$ikvm -jar /usr/share/bootchart/bootchart.jar
- 有了 bootchart.svgz,該怎麼去看這個圖呢?這邊提供兩種方法:
用 Python smtplib 寄信出現認證失敗
如果你使用 Python smtplib.py 寄信時,遇到認證錯誤訊息(Authentication error),不妨試試改變一下認證的順序,請在 smtplib.py 裡面找
# List of authentication methods we support: from preferred to # less preferred methods. Except for the purpose of testing the weaker # ones, we prefer stronger methods like CRAM-MD5: preferred_auths = [AUTH_CRAM_MD5, AUTH_PLAIN, AUTH_LOGIN]
然後修改一下順序,
preferred_auths = [AUTH_LOGIN, AUTH_CRAM_MD5, AUTH_PLAIN]
或許就能迎刃而解。