1. Ouch, 為什麼沒有 c720w ...

    Dopod 官方網站: http://www.dopodasia.com/global/tw/news/20070503_NR_Dopod_WM6_Upgrade_TW.html

    多普達提供Windows Mobile 6升級計畫: U1000、P800W、CHT9000與CHT9100免費升級

     

    很好很好, 沒有我這台 C720W 就算了, 但是同一台機器, 一模一樣, 為什麼國外的 T-Mobile 就提供升級到 WM6 啊啊啊啊...

    http://www.t-mobile.com/wmupgrade/

     

    雖然已經從XXX扛回這份升級程式了, 不過沒膽升級... 哈哈, 怕升級之後一些內建的軟體灌不回去, 升級後一定是沒保固了, 也沒有還原的軟體可以用, 如果升級升壞了不就欲哭無淚...

    有人聽過誰有膽量升級的消息嘛? 提供一下... :D, 不過 HTC / DOPOD 你也爭氣點, 都變一家人了, 快點提供 C720W 升級到 WM6 的 Rom Code 吧...

    2007/05/19 敗家 有的沒的

  2. Canon PowerShot S5 IS 出來了

    無意間逛了逛 Canon 網站,才發現 S5 IS 的消息 [:D]

    規格跟前一代 S3 IS 比起來沒差多少,除了相素從 600M 跳到 800M 之外,其它都差不多,除了 S5 終於多了熱靴... [:D]

    之前 S3 就是因為不能裝閃光燈害我猶豫了半天 (龜毛篇: G7S2),現在看到有了真心動,不曉得一台要價多少... 加上前陣子有人研究出 S3 如何解開封印,能夠直接存 RAW File,還不用重刷軔體,聽起來真是不錯,等一陣子看看 S5 能不能依樣畫葫蘆... 可以的話就太讚了 [Y]

    不過最近花錢花的兇,省一點好了 :~ 反正都龜了那麼久...

    2007/05/10 敗家 有的沒的

  3. 偷偷升級到 CS2007 ..

    好像沒啥人發現的樣子, 哈哈, 本站兩個禮拜前升級到 CS2007 了, 升級完面版馬上就調成舊的, 外觀看起來一模一樣...

    功能當然有差, 不過我就不提了, 請直接到官方網站看就好. 升級很簡單, DB upgrade + File upgrade 就好了. 比較麻煩的是我自己客製過的 theme 跟 control ..

    CS2007 的樣版系統, 從當年的 1.0 到 2.x 都一樣, 用了一堆動態載入 UserControl 的方式, 把版面配置的部份留在 User Control 的 TAG, 而後端的 data / logic 則是寫在 code. 因此要改它的樣版, 得花一番功夫瞭解它的作法.. 到了 CS2007, 總算改用 ASP.NET 2.0 標準作法了, 每套樣版就是一個 master page + config 而以 (theme.master, theme.config), 以 BLOG 來說, 每個頁面就很單純是一個 .aspx, 改起來方便多了, 不需要花什麼大腦就找的到要改那裡...

    另一個 User Control, 舊的 API 有些都不能用了, 趁著這次改版我就直接把這幾個 User Control 改寫一次了. 以前都要寫 DLL 也是很麻煩, 這次一起改成 .ascx + .cs 就丟著了, deployment 方便嘛...

    至於 CS2007 的新功能, 還沒很仔細的研究, 至少現在平台 ready 了 :D

    2007/05/05 .NET Community Server 技術隨筆 有的沒的

  4. Fiddler 跟 TFS 相衝的問題解決 - II

    <<續上篇>>

    計劃好之後, 我打算的流程是這樣:

    1. Fiddler 存下目前的 Proxy Config
    2. Fiddler 把 WinINET 的 Proxy 改為 127.0.0.1:8888
    3. 在 OnAttach 裡加上自定的 Script, 就抄 (2) 的 CODE 改一改再把我要的值加上去

    作法想好後, 連放 CODE 的地方都弄好了. Fiddler 直接用現成的 .net language 當成 script 使用, 就是直接修改 CustomRules.js 這個檔案. 裡面已經定義好 Method: OnAttach( ), 會在 Fiddler 開始 Capture Traffic 後被呼叫, 看來我要做的事 (3) 只要放在裡面就好, (1) 及 (2) 是 Fiddler 自己本來就會做的部份.

    而 Fiddler 不再 Capture Traffic 時, 我什麼都不必作, 因為 Fiddler 預設的動作就是把 (1) 存下來的東西再填回 IE 的 Proxy 設定...

    其實這方法還可以解決附帶的幾個問題, 像我在家用 VPN, 或是在公司用無線網路, Fiddler 也常常失效, 因為它預設都只改 [區域連線] 的 Proxy 設定... 不過 IE 又很貼心的讓每個 network adapter 都可以有自己的 proxy settings, 你只要不是用預設的 NIC 就沒救了. 雖然手動把你用的網路連線 proxy 改為 127.0.0.1:8888 就可以動, 不過每次都改也是很煩人...

    好, 有足夠的誘因了, 開始動手...

     

    A 計劃:

    開始用 Reflector 追 Fiddler 的程式, Bingo... 主程式是 Fiddler.frmViewer, 我要的東西就藏在 oProxy 這個 static field 裡. 看了 oProxy 的型別是 Fiddler.Proxy, 繼續追下去... My God.... 截到宣告如下:

       1:  internal WinINETProxyInfo piPrior;
    
       2:  private WinINETProxyInfo piThis;
    

    piPrior 放的是存起來的設定, piThis 則是被 Fiddler 填入的設定, 沒救, private field... 連用 reflection 的機會都沒有, 只好放棄, 想第二條路...

     

    B 計劃:

    碰到鐵板, 繼續鑽別條路. 我先自己開個 console application 做簡單的測試, 先把 Fiddler.exe 改成 Fiddler.dll, 然後設定 project 參考這個 .dll, 依照 Fiddler 主程式的用法測了一下這段 code:

       1:  static void Main(string[] args)
    
       2:  {
    
       3:      WinINETProxyInfo proxy = new WinINETProxyInfo();
    
       4:      proxy.GetFromWinINET(null);
    
       5:      proxy.sHostsThatBypass = "*.chicken-house.net;*.hinet.net;";
    
       6:      proxy.SetToWinINET(null);
    
       7:      return;
    
       8:  }
    

    哇哈哈, 真的有效, Run 過之後開控制台的 Internet Options 裡的 PROXY 設定, 真的被改過來了, 心想太好了, 這段 code 貼到 CustomRule.js 就一切搞定...

    對, 這麼順利的話就不會分兩篇了, 誰曉得貼上去後 Fiddler 就給我唉這段 message:

    按了 [確定] 後就變這樣:

    真是嘖嘖嘖... 大概猜的出問題在那, 這種外掛的 script 多半動態 Load Script, 動態 compile, 同時會載入到另一個獨立的 AppDomain, 看起來在 script 可用的範圍內, 是存取不到 Fiddler.WinINETProxyInfo 這個類別...

    AppDomain 真是讓人恨的牙癢癢的, 不過它還真是個很棒的設計. 在 .net 的世界, AppDomain 可以在不降低效能的前題下, 達到如傳統 OS Process 的安全隔離層級, 而且又有 thread 的快速 share data 方式... 可以說有 process 的好處, 又無 process 的負耽.

    講那麼多幹嘛? 問題還是無解... 不過有了上面 console application 試驗後, 至少讓我證明這條路是可行的, 只不過 script 得再繞一條路試看看...

     

    C 計劃:

    我的目的只是要在 CustomRule.js 的 OnAttach 裡執行那四行 code 而以, 只好脫褲子放屁了, 四行可以搞定的事多花幾行來寫, 把之前搭配 Attribute 寫 Library 學到的那套 Reflection 搬出來用, 原本的這四行 code:

       1:  WinINETProxyInfo proxy = new WinINETProxyInfo();
    
       2:  proxy.GetFromWinINET(null);
    
       3:  proxy.sHostsThatBypass = "*.chicken-house.net;*.hinet.net;";
    
       4:  proxy.SetToWinINET(null);
    

    改寫為:

       1:  System.Reflection.Assembly fiddler = System.Reflection.Assembly.LoadFrom(@"Fiddler.exe");
    
       2:   
    
       3:  object proxy = fiddler.CreateInstance("Fiddler.WinINETProxyInfo");
    
       4:  Type proxyType = fiddler.GetType("Fiddler.WinINETProxyInfo");
    
       5:   
    
       6:  proxyType.GetMethod("GetFromWinINET").Invoke(proxy, new object[] { null as string });
    
       7:  proxyType.GetProperty("sHostsThatBypass").SetValue(proxy, "http://ld-fsweb.learningdigital.com:8080;", null);
    
       8:  proxyType.GetMethod("SetToWinINET").Invoke(proxy, new object[] { null as string });
    

     

    很好, 繞了一大圈, 結果還是不行... [:@], 結果跟 B 計劃一樣, 我就不貼了...

     

    D 計劃:

    好, 最後一招了, 別轉台... 實在是受不了了, 最沒品的那招拿出來用... 把 B 計劃寫的 Console App 拿來用, 東西都寫好丟在 Fiddler 的目錄, 檔名叫 myproxycfg.exe, 然後在 CustomRules.js 裡呼叫它...

       1:  System.Diagnostics.Process.Start("myproxycfg.exe");
    

     

     

    嗯, Fiddler 啟用 Capture Traffic 後, 果然就 OK 了, 這招都出了還不行就沒辦法了.. 吊個 .exe 在那邊看了實在很礙眼, 不過眼不見為淨啦, 可以 work 就好...

    IE Proxy 的設定真的如我所料, Fiddler 啟動後就改掉了, Fiddler 停掉後就一切揮復原狀, [Y][Y][Y], 以後不用為了 TFS 要 Get Latest Version 還得去關 Fiddler ....

    果然懶才是資訊科技進步的原動力啊, 哈哈.., 謝謝收看.

    2007/04/24 .NET Tips 技術隨筆

  5. Fiddler 跟 TFS 相衝的問題解決 - I

    Fiddler, 應該不用我多介紹了, 一套很好用的 Http Debugging Tool. 它的原理是把自己當成 Proxy, 讓所有的 Http 流量都經過它再轉出去, 讓你能看到你的程式到底跟網站講了那些話, 尤其是新興的 AJAX 更需要這種 Tools, 因為一堆東西是你按右鍵 + view source 所看不到的...

    不過以上不是重點, 重點是我常常搭配 visual studio 2005 一起使用, 每當 Fiddler 開啟, 我再使用 vs2005 的 TFS 相關功能時, vs2005 跟 TFS 中間的 http connection 就被欄下來不動了.

     

    Fiddler Log:

    HTTP 401, 看起來就像是 vs2005 傳出去的身份驗證機制沒有成功的通過 Fiddler 傳到 server, 導至 server 回應 401 回報沒有權限... vs2005 回的 ERROR MESSAGE 則是看起來跟這件事一點關聯都沒有...

    正規的解法應該是想辦法讓 vs2005 的驗證能過 Fiddler Proxy ... 不過太懶了, 我發現只要開 Fiddler 等它自動改完 IE Proxy Settings 後再把 TFS 網址加到 bypass host list 後就一切正常了, 所以腦筋就動到怎麼讓 Fidder 自動調整的 Proxy Settings 能自動把 TFS 網址加到忽略清單內. 我打算的流程是這樣:

    1. Fiddler 存下目前的 Proxy Config
    2. Fiddler 把 WinINET 的 Proxy 改為 127.0.0.1:8888
    3. 在 OnAttach 裡加上自定的 Script, 就抄 (2) 的 CODE 改一改再把我要的值加上去

    想的很好, 就開始動工了, 不過開始動工才發現, 原來一路上困難重重... -_-

    << 下期待續 >>

    2007/04/23 .NET Tips 技術隨筆