昨天用gaim設置不成功…
今天一逛之下,才發現是我設置錯誤了…
真是…. @_@”
看這篇:Google Talk by Gaim跟這篇:How do I configure GAIM for Google Talk?吧…
蘭嶼。岸邊有事
嗯嗯~~
希望是有人能看到這一篇…
蘭嶼。岸邊有事
待會去找找行政院還是某某報的信箱來丟好了….
應該會比較有效吧…
這種問題還是應該早點解決比較好,要不然,台灣又少一個地方可以玩了…
其實我想媒體應該可以固定(好吧,念在追八卦的人要很多的份上,”偶爾“也不錯)去追蹤一些在地在人的消息,像是,捐款哪裡去啦,某些事情的處理狀況啊…等等的,這樣會比較好吧.
免得像現在,要等到有人報說國庫還沒撥捐款下來,才在報,這就已經是太晚啦…
Google Talk
今天的熱門消息…逛了幾個 blog, 都有在報…
Google Talk
不過逛Forever geeks的時候看到,原來Google Talk是jabber?!
看這幾篇文章:
應該是沒錯囉…
國內也有人提到這消息了
不過,我自己用gaim試的結果,目前還沒成功
設置方法如下:
Server: talk.google.com
Username: youremail@gmail.com
Password: yourpassword
這樣就行啦…
用 flickr 搞雜誌封面
逛到的….
flickr 的玩法還真不少.
http://www.flagrantdisregard.com/flickr/magazine.php
成果:

RFMaintainer 的 statechart (補)
昨天的RFMaintainer 的 statechart並沒有實作部份,今天補上…
你可以看到這些都是寫在 Form 裡面,並沒有跟 UI 切開….
這就是我疑問的地方…
不過對照圖之後,你會發現這樣的寫法很清楚…不會有補東牆挖西牆,東改一塊西改一塊的問題…
#region State Chart Implementation. private int _StateVariable = 0; private int _StateVariable_A = 0; private int _StateVariable_B = 0; private int _StateVariable_C = 0; ////// State 1: Transient /// private void go_state_1() { _StateVariable = 1; if( txtConnectString.Text == "" ) go_state_2(); else go_state_3(); } ////// State 2: Connection string null /// private void go_state_2() { _StateVariable = 2; // disable controls. radioButton1.Enabled = false; radioButton2.Enabled = false; dtpFrom.Enabled = false; dtpTo.Enabled = false; cboType.Enabled = false; txtPath.Enabled = false; btnBrowse.Enabled = false; btnExport.Enabled = false; } ////// State 3: Connection string not null /// private void go_state_3() { _StateVariable = 3; // enable controls. radioButton1.Enabled = true; radioButton1.Checked = true; radioButton2.Enabled = true; cboType.Enabled = true; txtPath.Enabled = true; btnBrowse.Enabled = true; go_state_4(); go_state_7(); go_state_10(); } ////// State 4: Region A: Transient /// private void go_state_4() { _StateVariable_A = 4; if( radioButton2.Checked ) go_state_5(); else if( radioButton1.Checked ) go_state_6(); } ////// State 5: Region A: "Period" checked /// private void go_state_5() { _StateVariable_A = 5; dtpFrom.Enabled = true; dtpTo.Enabled = true; } ////// State 6: Region A: "All" checked /// private void go_state_6() { _StateVariable_A = 6; dtpFrom.Enabled = false; dtpTo.Enabled = false; } ////// State 7: Region B: Transient /// private void go_state_7() { _StateVariable_B = 7; if( txtPath.Text == "" ) go_state_8(); else go_state_9(); } ////// State 8: Region B: "output file" null /// private void go_state_8() { btnExport.Enabled = false; } ////// State 9: Region B: "output file" not null /// private void go_state_9() { btnExport.Enabled = true; } ////// State 10: Region C: "Export type" is XML /// private void go_state_10() { _StateVariable_C = 10; cboType.SelectedIndex = 0; } ////// State 11: Export /// /// private void go_state_11() { } #endregion #region UI independence routines ////// I don't consider this button in State chart. /// And I am lazy to change.... /// /// private bool testConnection( string connectString ) { } private bool export( int type, DateTime dtFrom, DateTime dtTo, string outputFile ) { } #endregion #region Event handler private void btnExport_Click(object sender, System.EventArgs e) { int iType = 0; if( radioButton1.Checked == true ) iType = 1; else if( radioButton2.Checked == true ) iType = 2; if( export( iType, dtpFrom.Value, dtpTo.Value, txtPath.Text ) ) MessageBox.Show( "Finished!" ); else MessageBox.Show( "Fail!!" ); } private void btnBrowse_Click(object sender, System.EventArgs e) { // Displays a SaveFileDialog so the user can save the Image SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "XML file|*.xml"; saveFileDialog1.Title = "Save to XML File"; saveFileDialog1.ShowDialog(); saveFileDialog1.OverwritePrompt = true; // If the file name is not an empty string open it for saving. if(saveFileDialog1.FileName != "") { txtPath.Text = saveFileDialog1.FileName; } } private void btnTest_Click(object sender, System.EventArgs e) { testConnection( txtConnectString.Text ); } private void radioButton1_CheckedChanged(object sender, System.EventArgs e) { go_state_6(); } private void radioButton2_CheckedChanged(object sender, System.EventArgs e) { go_state_5(); } private void txtPath_TextChanged(object sender, System.EventArgs e) { go_state_7(); } private void txtConnectString_TextChanged(object sender, System.EventArgs e) { go_state_1(); } #endregion }
RFMaintainer 的 statechart
看Constructing the user interface with statecharts之後,應用到自己的小程式上…
書上建議先大致勾勒出畫面,然後寫出 screen rule.
我的畫面:

而 screen rule 大致如下:
*”Connection string” must be specified.
*如果”Connection string” is not specified, “All”, “Period”, “From”, “To”, “Export type”, “output file”, “browse”, “export” 都會被 disable.
*當按下 “Export” button 會開始進行 export 動作.
*當按下 “Browse” button 可以指定 output file
*如果 output file 未指定, “Export” 按鈕無法被 click.
*選擇 Option “All”, Option “Period” will be disabled.
*選擇 Option “Period”, Option “All” will be disabled.
*Export type 目前只有一個可以選擇: XML
所以,可以導出這樣的 statechart,只是不知道對不對…

最後寫 code 的時候,我為每個 state 加上編號,如圖:

然後再寫,的確是比較容易寫 code, 也比較容易了解.
只是,看來並沒有跟 UI 分離,或許是我自己理解錯誤…
slzzp.info

這網站很好玩,我點過去,本以為真的找不到這網站,就在關掉分頁的瞬間,我看到”廢柴”,”仆街”?!
趕緊再從 url history 撈回來看,果然是……障眼法.
有興趣的人可以順便過去看看:
http://slzzp.info
也可以直接去看他的blog-小睡睡的胡言亂語
BBC中文網-免費報紙爭奪戰
在 BBC feeds 上看到這篇:BBC中文網-免費報紙爭奪戰
在香港,每天清晨出家門上班,下樓在屋苑大堂,索取一份免費的《頭條日報》,走了300米,快到地鐵站的路口,有人又遞送一份免費的《大紀元時報》,步入地鐵站進了票閘,在一排固定的存放報紙柜子裡,再取一份免費的《都市日報》。手持三份報紙,走進列車車廂。車裡兩排乘客,還有擠佔了六七成空間的站著的乘客,絕大部分都在埋頭讀這些報紙。這已是香港周一至周五清晨上班、上學一族的常態了。
不知道台灣什麼時候會颳起這陣風潮?
也許不會發生也不一定,仔細想想:
- 台灣對於看報紙這檔子事的需求似乎並沒那麼高.
- 地鐵沒香港那麼發達.
現在的確有一些小報會在捷運附近發送,老實說我覺得挺不錯的.
Google maps my home
吃飽沒事幹,在 Google Maps 找到我家了…

mod_aspdotnet
久久沒去Apache網站,想不到 HTTP server 專案下多了一個子專案: cli(.NET).
簡單的說,他就是把 Request 都轉成 ASP.Net 可以接的 WebRequest, 然後再讓 ASP.Net application 去處理. 太神奇了,你可以就這麼讓 Apache 把 IIS 替代掉…
目前只支援 Win32 平台上的 .Net 1.0 / 1.1 / 2.0, 而不支援 rotor, mono…
這裡有他的Introduction…
早知道就不把家裡的 IIS 裝起來了,嗚嗚嗚…