<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>健人稽掰話@Blogger</title><description>胡言亂想，稽掰一通</description><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><pubDate>Fri, 8 May 2026 16:21:51 +0800</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">356</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://mattyy.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>胡言亂想，稽掰一通</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>使用 cmd line 切換 DNS</title><link>http://mattyy.blogspot.com/2015/08/cmd-line-dns.html</link><category>Computer</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sat, 22 Aug 2015 03:33:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-7109707997688137600</guid><description>&lt;h2&gt;
使用 cmd line 切換 DNS&lt;/h2&gt;
&lt;h4&gt;
---身為 geek，當然要打指令才帥啊&lt;/h4&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
有時候，某些突發狀況，不得不更換 DNS IP，以期讓網站瀏覽更順暢。&lt;br /&gt;
比如我個人比較偏好使用 google DNS 甚於中華電信提供的。偶發的情況下也得互換使用了。&lt;br /&gt;
利用 gui 界面可能直覺一些，但就是不夠敏捷。那就改成使用 cmd 指令來進行切换，帥氣又快速。
&lt;br /&gt;

&lt;br /&gt;
主體指令長這樣，&lt;strong&gt;netsh interface ip&lt;/strong&gt;&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4u6445g640Jy3hn4WwIyigDZx3uRy9HpSdbvmz1IW_RndZJ8zvB31yyneXVadqvJQCujaOWcUX0urrNns2tJNtov2iSKAyiWkpZX70jXEK-Dh7pD3cg5s8QFSO-z1pEkaSFz/s1600/pic1.png" /&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
接著，因為是要設定 DNS，所以使用 &lt;strong&gt;netsh interface ip set dnsservers&lt;/strong&gt;&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXVY6ndicLqwmARXUX-j6PrrFVw_EcZE1qH4RRgyTiK2C7XmIWQ1VQUnuSVmxdyc7yUTnkkFMKQcXOCoLKpZNIlM2vg_Y2N237AOnSgLmdrNJ_61vE3wuUKVuR72QRLoaI7X4I/s1600/pic2.png" /&gt;&lt;br /&gt;
PS: 後段的指令 Windows 10 與 Window 7、8 稍有不同，請自行參照。
&lt;br /&gt;

&lt;br /&gt;
從上圖的範例指令，可以發現 name 的設定，這個 name 很重要，設定錯誤，指令就會失效。那麼 name 要怎麼來？&lt;br /&gt;
我們可以執行 cmd &lt;strong&gt;ipconfig /all&lt;/strong&gt; 來取得。&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguzZ6iCJISbL9bA7dYce3zs8kIufbMnsJ50xV6Hinqt1r0g4xIj_CrVE0EGpegOvHvDMpoGdv0qPIE8N7bEmWviTdT0BzbfBQWWweYIru75c5zTXJoril1bFST2DxYsDbo9rSV/s1600/pic3.png" /&gt;&lt;br /&gt;
或是在 &lt;strong&gt;控制台 &amp;lt; 網路和網際網路 &amp;lt; 網路連線&lt;/strong&gt; 看到名稱。
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIZtgwWfJj85FOh28GjKJwWakca6tWyTSYNkkRrCSnF44Od82UqoQPROFgM5wdR0jkBhZAQ1DKhDj-HMRG7Js5MlS5XhL91nR22ltRqXkDKJbyRL_g2yywCnAH-ObPsPlCSIkA/s1600/pic4.png" /&gt;&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMZBSdZE54t_zrTW6FQBubRidJklroeHGglVMMxcytKDsigJWY1LfwPVg3Dh_aKhhu4jEE-0LofD9nPnDzw5pMhvsiXIA98f8JSX2Pk8JaroOFdUwEoxoceJrLdxgAsrpnROB2/s1600/pic5.png" /&gt;&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVZ-gDt80VfLL1_eZBSvjNg1QerruBMUUsCT9KGRFqAuorB8IZuRn_nb2lftYO2AtI3c_4BUZO6wilEzaWbMNtNC_dOAL3pzaSn1un98qEWB10NiT-wG9WoXigqZYk2Khmy8bY/s1600/pic5-1.png" /&gt;
&lt;br /&gt;

&lt;br /&gt;
到這裡，我們的第一段指令－設定主 DNS 就完成了。&lt;br /&gt;
指令範例：&lt;br /&gt;
&lt;strong&gt;netsh interface ip set dnsservers "Wired Ethernet Connection" static 10.0.0.1 primary&lt;/strong&gt;
&lt;br /&gt;

&lt;br /&gt;
接著就是要設定備用 DNS，&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_H0WxjbiNgKSWDK2NcoSFm7lzimeqUt_renWm1RVcg8IseEN_carvLdc7h3rWrFq818dGNvOwpYqJkjWM_QTsm5U4T5vt82dze0OuQAb-gA-zJWTBx6I99NQKMYfGdaivpOjW/s1600/pic6.png" /&gt;&lt;br /&gt;
指令範例：&lt;br /&gt;
&lt;strong&gt;netsh interface ip add dnsservers "Wired Ethernet Connection" 10.0.0.3 index=2&lt;/strong&gt;
&lt;br /&gt;

&lt;br /&gt;
最後，我們把上述二列指令另存成一個 .bat，或 .cmd 檔就可以了。&lt;br /&gt;
範例：&lt;br /&gt;
---&lt;br /&gt;
&lt;strong style="color: blue;"&gt;
@echo off&lt;br /&gt;
netsh interface ip set dnsservers "Wired Ethernet Connection" static 10.0.0.1 primary&lt;br /&gt;
netsh interface ip add dnsservers "Wired Ethernet Connection" 10.0.0.3 index=2&lt;br /&gt;
&lt;/strong&gt;
---
&lt;br /&gt;

&lt;br /&gt;
最後的最後，這個 cmd 必須利用「以系統管理員身份執行」，才能成功執行。&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDeaXCfCIG1hmR7NpdL7TTBu6ejMqxlrBbqY0mst961cdNjcSrQW2kSkkUBAG7SCSdoqJvKl1NeInqMtIPyinLeNFa_SfZQ-B6DWhRvayDayrD6HxA2dgFjA0Vg1-R3Gvn64ya/s1600/pic7.png" /&gt;
&lt;br /&gt;

&lt;br /&gt;
ref:&lt;br /&gt;
&lt;a href="https://technet.microsoft.com/en-us/library/bb490943.aspx" target="_blank"&gt;https://technet.microsoft.com/en-us/library/bb490943.aspx&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://tweaks.com/windows/40339/configure-ip-address-and-dns-from-command-line/" target="_blank"&gt;http://tweaks.com/windows/40339/configure-ip-address-and-dns-from-command-line/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4u6445g640Jy3hn4WwIyigDZx3uRy9HpSdbvmz1IW_RndZJ8zvB31yyneXVadqvJQCujaOWcUX0urrNns2tJNtov2iSKAyiWkpZX70jXEK-Dh7pD3cg5s8QFSO-z1pEkaSFz/s72-c/pic1.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SFTP 傳檔</title><link>http://mattyy.blogspot.com/2015/02/sftp.html</link><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sun, 1 Feb 2015 04:02:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-4109594395046064975</guid><description>&lt;h3&gt;
前言、&lt;/h3&gt;
工作專案需要，須使用 SFTP 上傳檔案到指定路徑，與下載指定檔案回來分析。
因為自已阿呆，傻傻以為 SFTP 是一種 FTP，直接採用 .Net Framework 原生的 FTP 功能來實作 SFTP 上傳下載。不斷撞牆之後，這才發現，實在天真的可以。這兩種根本就是不一樣的 protocol 啊。
欲知詳情，請跳轉 &lt;a href="http://www.jscape.com/blog/bid/75602/Understanding-Key-Differences-Between-FTP-FTPS-and-SFTP" target="_blank"&gt;Understanding Key Differences Between FTP, FTPS and SFTP&lt;/a&gt;。&lt;br /&gt;
&lt;h3&gt;
內容、&lt;/h3&gt;
花了點時間用功，&lt;a href="http://www.tamirgal.com/blog/page/sharpssh.aspx" target="_blank"&gt;SharpSSH&lt;/a&gt; 已經相當穩定，也可以很簡單使用（根本無腦）。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;1、引用參考
把下載回來的 sharpssh package 解開後，會發現 3 個 .dll 檔，因為目前只使用上傳下載簡易的功能，需要把 Tamir.SharpSSH、DiffieHellman 這兩個組件加入參考。
&lt;br/&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixS12YWDwoqg_So5qka20HEqUX6BivDPW3aEs_foHPUiAGJqfbyN8LaZDG6lGOJuw5ID-lEMXtcZHn3ydwHlZf8AlXVpzgpsEPKs7rar7Jqq-woIHY2dchmcHidt04RE704jNJ/s1600/sharpssh_ref.png" /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;2、程式
我們要手刻的程式碼也相當簡單，首先引用 Tamir.SharpSSH 這個命名空間，實作的程式碼如下圖。
&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZQZBLHP8kAZqN3-5ntiDYYo_rMTKSiNnpDEfGg4R3B716p8NkY0aDSp3PbV6Zo7FNm_2-FlUIG7kcPGcGJ_xS3yLgK65oAUiUIYT7O2Q3khfna3Lk8rFmQ69lA6EO3zOYuOC/s1600/sharpssh_code.png" /&gt;
&lt;br /&gt;
&lt;br /&gt;
簡單說明，&lt;br /&gt;
上傳 &lt;b&gt;Put&lt;/b&gt;：fromFilePath 指的是本機端的完整檔案名稱。toFilePath則為遠端 SFTP 的完整檔名，若不指定路徑則會上傳至登入帳號的預設路徑。&lt;br /&gt;
&lt;br /&gt;
下載 &lt;b&gt;Get&lt;/b&gt;：fromFilePath 表示遠端檔案的完整名稱，若不指定路徑則為登入帳號的預設路徑。toFilePath 則代表本機端的完整檔名。
&lt;br /&gt;
&lt;br /&gt;
如果我們需要用到 remote 功能呢？如變更 SFTP 上的檔名、或是刪檔等功能，當然也能實作。不過程式將會變得稍微複雜一點，此時會使用到 ssh channel。或者也可以參考這個教學影片。&lt;br /&gt;
SFTP Download, Upload and Delete File using SharpSSH library&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="510" src="https://www.youtube.com/embed/VVqh0BCgFpM" width="854"&gt;&lt;/iframe&gt;
https://www.youtube.com/watch?v=VVqh0BCgFpM
&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixS12YWDwoqg_So5qka20HEqUX6BivDPW3aEs_foHPUiAGJqfbyN8LaZDG6lGOJuw5ID-lEMXtcZHn3ydwHlZf8AlXVpzgpsEPKs7rar7Jqq-woIHY2dchmcHidt04RE704jNJ/s72-c/sharpssh_ref.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Dosbox (0.74) 不能執行的問題</title><link>http://mattyy.blogspot.com/2014/08/dosbox-074.html</link><category>Games</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Mon, 4 Aug 2014 01:50:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-7970949197335910586</guid><description>VAIO Duo 可以輕鬆安裝並正確執行之，反而是桌機無法順利執行。因為一執行就閃退，後來想到用抓圖的方式，順利得到錯誤訊息。&lt;br /&gt;
「&lt;b&gt;can't init SDL DirectInputDevice&lt;/b&gt;」&lt;br /&gt;
&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgfBgOzbbiIR0zhOEJDQyGK9yJQsr9GnPFpK6LFO4JT_L9Gsnm-gBT5F-WT5jCPgW5t4uxZmayHEnHges9HZ6BVZixDKw02TetMdOj4m5oFYAThcmGOVIewRubwWSKRS6Op209/s1600/dosbox0.74-error!.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
估狗了一些文章，發現也有其他人曾經過到，有的是 graphic driver 的問題、joystick 的問題，也有人有發現 SDL.net 會被 Comondo 攔截而不能執行。&lt;br /&gt;
試了幾個方法都無效，後來無意中想到，不如換掉 SDL.dll 試試。在 &lt;a href="http://www.libsdl.org/download-1.2.php"&gt;官網&lt;/a&gt; 找到了比較新的版本，也有區分 x86 及 x64 二種，經實測，終於發現 &lt;b&gt;SDL.dll 1.2.14.0 x86&lt;/b&gt; 這版本可以讓 Dosbox 0.74 正確動起來了。&lt;br /&gt;
後來也試著更新 SDL_net.dll，在 &lt;a href="https://www.libsdl.org/projects/SDL_net/release-1.2.html"&gt;官網&lt;/a&gt; 找到新版，也有區分 x86 及 x64 版，測試後，&lt;b&gt;SDL_net.dll 1.2.8 x86&lt;/b&gt; 也可以讓 Dosbox 0.74 正常執行。&lt;br /&gt;
這兩個檔案，都比 Dosbox 裡包含的檔還新一點，也能正確啟動 Doxbox。如果你也剛好遇到這樣的情況，也許可以依此解決。&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgfBgOzbbiIR0zhOEJDQyGK9yJQsr9GnPFpK6LFO4JT_L9Gsnm-gBT5F-WT5jCPgW5t4uxZmayHEnHges9HZ6BVZixDKw02TetMdOj4m5oFYAThcmGOVIewRubwWSKRS6Op209/s72-c/dosbox0.74-error!.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>使用 Barcode Rendering Framework</title><link>http://mattyy.blogspot.com/2014/03/barcode-rendering-framework.html</link><category>Barcode</category><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sat, 8 Mar 2014 19:36:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-3743152781434300095</guid><description>&lt;p&gt;很久沒寫文了，來補一下 :p&lt;/p&gt;

&lt;p&gt;有一個需求，得要產生條碼圖使用。當然首選是 &lt;a href="http://barcoderender.codeplex.com/" targer="_blank"&gt;Barcode Rendering Framework / BRF&lt;/a&gt; 這個套件。原因無他，除了是 OpenSource 外，支援廣度夠，還有一個主因就是，使用 BRF 不用再額外安裝條碼字形即可產生條碼圖。&lt;br /&gt;
這次的應用平台是在 ASP.Net MVC5 上，有些要稍微留意地方，在這裡記錄一下。&lt;/p&gt;

&lt;p&gt;首先，先到 &lt;a href="http://barcoderender.codeplex.com/downloads/get/464135" target="_blank"&gt;codeplex&lt;/a&gt; 下載最新版的 BRF .dll 檔。&lt;/p&gt;

&lt;p&gt;解壓縮後，將 Zen.Barcode.Core.dll、Zen.Barcode.Web.dll、Zen.Barcode.Web.Mvc.dll 三個檔案加入專案參考。&lt;br /&gt;
&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiJMhStTpO2vZ_5UCJqwQ8bZ0o-Xck-csvL2OuBXa1thd5UwqHKosk7Dbp1gZLow7VtasJ0Cb42as-4n9FUyiVoj0xafs7ZNwmiv3hUK3ycGYq9DI-O8XydB4GykCeAH3bL9i0/w224-h115-no/1.png" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;接著，在 RouteConfig.cs 裡增加一個 route 設定，如下：&lt;br /&gt;
&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjixJzSXWkIS87e7JgUf2Hazr926QkJ7Zqr1g1DxaQai3_WKe4H0JeAoutfgBfS7SxSQY-Z95gIuo9A9fmruoPEQHR7niMwa5ZKnVcUbLvGx2cA5d2vujJeBL1OHWZTYlXqpW3l/w842-h427-no/2.png" alt="" /&gt;&lt;br /&gt;
&lt;strong&gt;routes.Add(&amp;quot;BarcodeImaging&amp;quot;, new Route(&amp;quot;Barcode/{id}&amp;quot;, new BarcodeImageRouteHandler()));&lt;/strong&gt;&lt;br /&gt;
為什麼要加這一段，稍後解釋。&lt;/p&gt;

&lt;p&gt;再來，我們在需要產生條碼的 View 上，引用&lt;br /&gt;
&lt;strong&gt;@using Zen.Barcode.Web.Mvc&lt;/strong&gt;&lt;br /&gt;
接著就頁面上就能呼叫下列的 barcode sample 了。&lt;br /&gt;
&lt;strong&gt;&amp;lt;img src=&amp;quot;@Url.Barcode(&amp;quot;123456789&amp;quot;, Zen.Barcode.BarcodeSymbology.Code128, 30, 1, true)&amp;quot; /&amp;gt;&lt;/strong&gt;&lt;br /&gt;
執行後，我們就可以看到一個很簡單就產生的條碼圖了。試著看它的 HTML 原始碼，會發現條碼圖的 html 的長相如下，&lt;br /&gt;
&lt;strong&gt;&amp;lt;img src=&amp;quot;/Barcode/77u_QmFyY29kZVs0LDYwLDYwLDEsMSwxXTo5MjM2NTE4MjQwMTE5MDAwMDAwMTo5MjQyODQwMjY1&amp;quot; /&amp;gt;&lt;/strong&gt;&lt;br /&gt;
如果，沒有在 RouteConfig 加上上一步驟的設定程式碼，那麼就不能看到條碼圖了。因為 mvc route 無法辨別 Barcode 這個 controller，所以得再 render 之前加上該 BarcodeImageRouteHandler 的程式碼。&lt;/p&gt;

&lt;p&gt;就是這麼簡單。&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiJMhStTpO2vZ_5UCJqwQ8bZ0o-Xck-csvL2OuBXa1thd5UwqHKosk7Dbp1gZLow7VtasJ0Cb42as-4n9FUyiVoj0xafs7ZNwmiv3hUK3ycGYq9DI-O8XydB4GykCeAH3bL9i0/s72-w224-h115-c-no/1.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>在 YouTube 音樂獎的「年度最佳響應獎」候選名單中，我投票給向大衛庫塔 (David Guetta) 致敬的這首經典曲目。youtu.be...</title><link>http://mattyy.blogspot.com/2013/10/youtube-david-guetta-youtube.html</link><author>noreply@blogger.com (Anonymous)</author><pubDate>Wed, 23 Oct 2013 01:02:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-3861843325468013755</guid><description>&lt;iframe allowfullscreen="" frameborder="0" height="344" src="//www.youtube.com/embed/oeD0gZASnTY" width="459"&gt;&lt;/iframe&gt;&lt;br /&gt;
Titanium/Pavane&lt;br /&gt;
好音樂，不聽嗎 :p&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>瞎逛愛河</title><link>http://mattyy.blogspot.com/2012/02/blog-post.html</link><category>Something in My Head</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Mon, 27 Feb 2012 17:30:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-1307862874338412877</guid><description>下午趁著陽光出門到愛河閒晃。順便試試 arc S 的拍照。&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
忘了這是要拍什麼主題了
&lt;img alt="" border="0" height="768" src="http://dl.dropbox.com/u/721748/post/arcs/DSC_0006s.JPG" width="1024" /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
發現 85 地標，拍一下XD
&lt;img alt="" border="0" height="1024" src="http://dl.dropbox.com/u/721748/post/arcs/DSC_0007s.JPG" width="768" /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
突然發現平板河面觀光船，追個焦
&lt;img alt="" border="0" height="768" src="http://dl.dropbox.com/u/721748/post/arcs/DSC_0008s.JPG" width="1024" /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
走進國小，看到好久沒見過的磚紅跑道
&lt;img alt="" border="0" height="768" src="http://dl.dropbox.com/u/721748/post/arcs/DSC_0009s.JPG" width="1024" /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
陽光西照，水面波光潾潾
&lt;img alt="" border="0" height="768" src="http://dl.dropbox.com/u/721748/post/arcs/DSC_0010s.JPG" width="1024" /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
稍事休息。空著的位置誰來補上
&lt;img alt="" border="0" height="768" src="http://dl.dropbox.com/u/721748/post/arcs/DSC_0011s.JPG" width="1024" /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
夜拍。蕭風颯颯，一盞燈叫我快回家
&lt;img alt="" border="0" height="768" src="http://dl.dropbox.com/u/721748/post/arcs/DSC_0012s.JPG" width="1024" /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
src S 的拍照能力果真比 X10 進步不少，特別是夜間攝影。
&lt;br /&gt;
&lt;br /&gt;
另外，這裡也長期長蜘蛛絲，不太好，多少還是要回來放個文嘛，哈:p&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Upload Zip file  and unpack on the fly to Windows Azure Blob 上傳 Zip 壓縮檔並即時解壓縮檔案儲存到 Blob</title><link>http://mattyy.blogspot.com/2011/03/upload-zip-file-and-unpack-on-fly-to.html</link><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Wed, 23 Mar 2011 17:34:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-4576142913832135481</guid><description>上傳 Zip 壓縮檔並即時解壓縮檔案儲存到 Blob&lt;br /&gt;&lt;br /&gt;為求方便(懶惰的做法XD)，我直接借用小朱在 邊做邊學 Windows Azure 應用程式開發基礎 Part 2：開發 BLOB、Table 與 Queue 應用程式 一文中的例子來改寫。&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/721748/post/Upload%20Zip%20file%20%20and%20unpack%20on%20the%20fly%20to%20Windows%20Azure%20Blob.png" alt="code: Upload Zip file  and unpack on the fly to Windows Azure Blob" /&gt;&lt;br /&gt;&lt;br /&gt;如圖中紅色框框：其中最大的不同是使用 DotNetZip 這個元件以資料的方式流來進行解壓縮 (on the fly)，這方法有個好處，在解壓縮時可以越過 Windows 的檔案系統，不會產生實體檔案在硬碟上暫存。&lt;br /&gt;將上載的檔案，利用 FileUpload.PostedFile.InputStream 這個屬性轉換為資料流，再由 DotNetZip 讀取。這時，輸出的每一個 ZipEntry 當然也是資料流。程式中，資料流的操作與實體檔案無異；差別在於儲存到 Blob 時，呼叫的方法不同。&lt;br /&gt;另外，例子中，blob.UploadByteArray(ms.ToArray())、blob.UploadFromStream(ms) 二者皆可以達成目的，擇一即可。&lt;br /&gt;&lt;br /&gt;這個範例程式在實際執行時，可能會遭遇到的一個問題 System.Web.HttpException 超出最大的要求長度。試問，該如何調整？&lt;br /&gt;這是因為上載檔案太大，超過 4096KB 預設上限值所導致。&lt;br /&gt;根據 MSDN 的說明：MaxRequestLength 屬性可用於防止因使用者張貼大型檔案至伺服器所造成的服務拒絕攻擊。要解除這個限制，可在 Web.config &amp;lt;System.Web&amp;gt; 段落中，覆寫 maxRequestLength 的值，&lt;br /&gt;&amp;lt;System.Web&amp;gt;&lt;br /&gt;    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;httpRuntime maxRequestLength="10240" /&amp;gt;&lt;br /&gt;&amp;lt;/System.Web&amp;gt; &lt;br /&gt;如上設定，則 ASP.Net 允許上載 10MB 的檔案。&lt;br /&gt;&lt;br /&gt;完整範例檔 &lt;a href="http://dl.dropbox.com/u/721748/post/BlobExample.aspx.cs.zip" target="_blank"&gt;BlobExample.aspx.cs.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ref:&lt;br /&gt;1. &lt;a href="http://msdn.microsoft.com/zh-tw/windowsazure/ff477598" target="_blank"&gt;邊做邊學 Windows Azure 應用程式開發基礎 Part 2&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://dotnetzip.codeplex.com/wikipage?title=CS-Examples&amp;referringTitle=Examples" target="_blank"&gt;DotNetZip with Streams&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://msdn.microsoft.com/zh-tw/library/system.web.configuration.httpruntimesection.maxrequestlength%28v=vs.80%29.aspx" target="_blank"&gt;HttpRuntimeSection.MaxRequestLength 屬性&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;===&lt;br /&gt;補充：&lt;br /&gt;設定本機測試的 Storage Service 時 ( dsinit /sqlinstance:. )，可能遇到 ｢provider: 具名的管線提供者，error: 40 - 無法開啟至 SQL Server 的連接｣ 的錯誤。此時，請檢查通訊協定中的 TCP/IP 是否有被啟動。接著，調整 TCP 通訊協定的 Port 值。&lt;br /&gt;或是直接參考 &lt;a href="http://itgroup.blueshop.com.tw/st890409/txshop?n=convew&amp;i=20254" target="_blank"&gt;這裡&lt;/a&gt; 有詳細的圖文教學。 &lt;br /&gt;或是 &lt;a href="http://suntsu.ch/serendipity/index.php?url=archives/190-Visual-Studio-2010-Problem-Windows-Azure-Tools-Failed-to-initialize-the-Development-Storage-service..html" target="_blank"&gt;這篇&lt;/a&gt; 也可。&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>jQuery + 自訂屬性的妙用</title><link>http://mattyy.blogspot.com/2011/01/jquery.html</link><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Wed, 19 Jan 2011 01:44:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-3892872051314752800</guid><description>0. 前言、&lt;br /&gt;最近處理一個專案碰到的例子很有趣，提出來與大家分享一下下。畫面中，經過一串的運作產生一群動態產生的下拉選單。這一群群的選單中，數量不同，選中的值也不同。問題，我們要如何才能快速取出同一群組中被選中的值呢？&lt;br /&gt;起初，我也被這問題困擾了一下。後來想到曾經看過黑大、小喵大二位大哥學長的文。欸～靈光一閃，隨即動手 try 了。&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/721748/post/sample.gif" title="sample" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;1. 實作、&lt;br /&gt;我們知道，.find(':selected').text(); 可以取得下拉選單中所選中的文字。而 .find(':selected').val(); 則可以取得所選中的值。&lt;br /&gt;接著，要怎麼挑出一批我想要的群組文字呢？此時，自訂屬性的方便就突顯出來了。利用 $('select[myattr="val"]')，這意思是取得帶有 myattr="val" 屬性/值的 select tag。要注意的是，在群組選取時，所有選中的值會依序不斷累積成一大串字串。如果我們可以分割出那一大串字字，就可以得到各別的選中值來加以運用了。&lt;br /&gt;我自己是異想天開地在 text 下手，直接在該值上加個「空白&amp;nbsp;字串」來欺騙眼睛，又可以達到分割的效果。&lt;br /&gt;若想以 .find(':selected').val(); 取值，很抱歉，這方法只會傳第一個下拉選單的選中值而已。&lt;br /&gt;&lt;br /&gt;以 group a 為例，$('select[tgroup="a"]').find(':selected').text(); 式中得到的長字串為 3221。&lt;br /&gt;以 group c 為例，$('select[tgroup="c"]').find(':selected').text(); 得到的長字串為 33空白44空白，長度 = 6。&lt;br /&gt;求 group b 選中值的和，&lt;br /&gt;&lt;br /&gt;var total = 0;&lt;br /&gt;var Tb = $('select[tgroup="b"]').find(':selected').text();&lt;br /&gt;Tb = Tb.substr(0, Tb.length - 1); //去掉最後一個分隔符號「.」&lt;br /&gt;for (i = 0; i &lt; Tb.length - 1; i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;total += parseInt(Tb.split('.')[i]); //把長字串以「.」分割&lt;br /&gt;}&lt;br /&gt;//total = 9&lt;br /&gt;&lt;br /&gt;以上。這個小技巧，希望大家不棄嫌:p&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/721748/post/sample.htm"&gt;範例檔&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ref:&lt;br /&gt;&lt;a href="http://api.jquery.com/selected-selector"&gt;jQuery :selected Selector&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/05/12/jquery-for-select-object.aspx"&gt;TIPS-用jQuery操作select&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotblogs.com.tw/topcat/archive/2009/12/14/12434.aspx"&gt;透過自訂屬性，Table中focus使用方向鍵上下移動&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Android App</title><link>http://mattyy.blogspot.com/2010/10/android-app.html</link><category>Android App</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Mon, 25 Oct 2010 10:21:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-1837574705990657588</guid><description>Android App&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SQLite to EF 筆記</title><link>http://mattyy.blogspot.com/2010/09/sqlite-to-ef.html</link><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Tue, 14 Sep 2010 14:20:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-7437683198381986547</guid><description>&lt;b&gt;前言&lt;/b&gt;、&lt;br /&gt;&lt;a href="http://www.sqlite.org/" target="_blank"&gt;SQLite&lt;/a&gt; 是一個小型嵌入式資料庫，具有高度可攜性。小巧方便效率佳，無怪乎越來越多系統採用。當然 SQLite 不是無敵的，適材適用才是王道。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;前置作業&lt;/b&gt;、&lt;br /&gt;至 &lt;a href="http://sqlite.phxsoftware.com/" target="_blank"&gt;phxsoftware&lt;/a&gt; 下載 System.Data.SQLite 元件。它有內建一個 Designer，可與 VS2008/2010 整合，直接對 SQLite 資料列進行操作。&lt;br /&gt;PS：該 Designer 尚在發展中，可能會遇到部份操作上的問題。此時只得由其他工具程式代勞了。&lt;br /&gt;&lt;br /&gt;推薦使用 &lt;a href="http://osenxpsuite.net/?xp=3&amp;uid=managementtools" target="_blank"&gt;SQLite2009 Pro Enterprise Manager&lt;/a&gt; 可以擁有更多特異的操作，如大量匯入資料等。&lt;br /&gt;&lt;img src="http://p8i2ka.bay.livefilestore.com/y1pSAYerGjW7_OAtQwmurnNPcTbDYcMKsCJwWLlz2UHHG6qJQONt9uWrwMsDlSu5LhV2v8-b1lCpunOvms68De1KDdhoqvgSOmW/SQLite2009%20Pro.png" width="80%" height="80%" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;大致流程&lt;/b&gt;、&lt;br /&gt;1. 先建立起資料庫連線，方便後續的操作&lt;br /&gt;&lt;img src="http://p8i2ka.bay.livefilestore.com/y1pneU0QvcdsQlCrcPlQQIFuImO8kFTi3poJpmFhhUnVoFEDyQJL9ttUr9jx0mWvvQ9LmsBz5dmCsXDq93bmlSYaaV7zYp32xut/step1.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;2. 加入新類別項目，這裡選用 ADO.NET 實體資料庫模型&lt;br /&gt;&lt;img src="http://p8i2ka.bay.livefilestore.com/y1pneU0QvcdsQk74t0WGU_xqWonks4qnWK3SNHZTF3DneHFkJgPyYSd6Bb4N4usa_YEQXoUrbHyMEdWl6iNgDvpdl1NxN4WWNnE/step2.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;3. 利用精靈加入 Entity Data Model&lt;br /&gt;&lt;img src="http://p8i2ka.bay.livefilestore.com/y1pCL8nnwHX_GyM3elMHAMa42kup3uP6wPsVZ5DAbKRg9ZCDqYH7XbEv0Yyf-yKVIHgSR6xQuEk58aYU0-xYxiLfUKBjTy8jKFG/step3.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;4. 選擇資料連接。這裡可看到 SQLite 資料庫的實體連接字串。因連接字串為實體檔案，倘若是虛擬主機，那可能就有問題了。得思考其他可行方案。&lt;span style="font-size:9pt;color:navy;"&gt;我現在就遇到了，還不知道該怎麼解決XD&lt;/span&gt;&lt;br /&gt;&lt;img src="http://p8i2ka.bay.livefilestore.com/y1pHYIQAcFuIrfYQDq1beFk9Gz7Jj7duFXMiNA0vJhI3zlpqhy7RN6sDI9EX2MHHi_z-ur2vsREXG-D8e7WP0AthKJT8fiHWGAW/step4.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;5. 最後 SQLite to EF 已經建立完成，可以在其他專案中被取用。&lt;br /&gt;&lt;img src="http://p8i2ka.bay.livefilestore.com/y1pneU0QvcdsQk5m6vDgIw9apo7QLfxCyfe-eaCMqPxumwGRTM6esyvw7LEuZIA0MKiQJAmYUq_zoTJ4v8o4yxelzlTTS4vV6Y4/step5.png" width="80%" height="80%" alt="" /&gt;&lt;br /&gt;提醒一下，SQLite 的資料型別與 MSSQL(等) 不盡然相同，這要稍微留意一下。如 SQLite 沒有 Boolean 型別，是用 Int 型別來代替的。&lt;br /&gt;&lt;br /&gt;我們可以在 MVC 專案中，可以直接利用強型檢視的方式&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&amp;lt;%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable (Of Models.DimProspect))" %&amp;gt;&lt;/span&gt;&lt;br /&gt;將需要的資料列表在網頁上。PS：這是一個奇妙的例子，我個人認為這會讓維護有一定的難度。但是敝公司 ERP 的資料庫全都是這個樣。我猜，這樣的設計應該是故意的，這樣客戶端才比較不容易直接到資料庫去玩耍 (真的嗎)？&lt;br /&gt;&lt;br /&gt;對了，記得抽空去看看 (YourEFInstace).Designer.vb，好明白系統幫你做了什麼事，Property Sets、Sub Sets、Function Sets 等等。如一個 Data Table 有 100 個 Data Schema，那麼會有 100 個物件屬性，手工打造的話會浪費掉不少時間。Designer 的方便性就在這裡。而且尚有一個好處，了解 Designer 做了哪些機制，將有助於除錯。&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>根過以後</title><link>http://mattyy.blogspot.com/2010/08/blog-post.html</link><category>3C</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 6 Aug 2010 01:27:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-3344307863855437628</guid><description>Hero 2.1 姍姍來遲，而之後當然就是期待 Rooted Hero 2.1 的方法。如果先前有試過 Rooted Hero 1.5 的順暢、寬廣，那麼這個更新肯定會更期待。&lt;br /&gt;&lt;br /&gt;許久，我也完成根化，輕輕鬆鬆就搞定。根化之前，無所不用其極，換上 Lanucher Pro 取代 HTC Sence，加諸 Auto Task Killer 定期清記憶體，但也只獲得差強人意的效果。&lt;br /&gt;&lt;br /&gt;完成根化之後，隨即找到 Root Explorer 裝上，刪去極少用的程式，如 HTC Plruk、HTC Twitter、HTC Stock、Mail、HTC Weather Provider 等，不但釋出更多 ROM 的空間，也把 Startup-Services 一併解決，加快開機速度。接著再裝上 Startup Manager，檢視開機啟動的各種程序，移去非必要開機即啟動的程式，如 Google Map。什麼該移什麼該留，則依個人使用狀況選擇。並不是移去越多越好，移去必用的 Service 反而造成困擾，不見得好。&lt;br /&gt;裝上 Root Explorer 有一重要功用，可以把部份程式移到 ROM 裡 (/system/dapp)，用以加大 RAM 的使用空間，好裝入更多應用程式。至於哪些程式要移入，我自己則是認為常用與穩定少更新的程式移入會比較好些。畢竟 ROM、RAM 的操作大不相同。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://ikqtca.bay.livefilestore.com/y1prDYPJG68mO1Wzu4ypaZMdD95YfoRhoEKK7962IyRUWrFiwqeeUFgO618AdGtKB0KCBjh1if4UiyHkhvVYXzj3ufS4iG10g08/CAP201008060027.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://ikqtca.bay.livefilestore.com/y1piL7hckPw4WYjXbN4oZ4iARQVrw9NyonMv34GarpZ7CC42o20H455FGscddofLpS9t-3LDppoIjJpJM45WpTRMSgEf1Z1TrAz/CAP201008060019.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;另外，根化後必裝程式之一，Auto Memory Manager，完全懶人式設定，不用大腦也可會操作，用來管理記憶體輕鬆方便。我自己是採用 Balance Mode 就覺得很棒了。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://ikqtca.bay.livefilestore.com/y1pe7BgXrtuOGgsaVYnTVKh5bg6ocPh9Vw97wJpuNOEA_KePbDOqJo3l_XJG5m9dfMezxyv_JmsB5XFdSqPrlgMl8J0XX24t-KY/CAP201008060025.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Titanium Backup，也是根化後必裝的程式，截至目前為止，只有這支程式可以把 Hero 上的 Application + User Data 完全備份，想當然爾，必裝。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://ikqtca.bay.livefilestore.com/y1pk9ZHlYObXs0eJLavV8tYKhvOgaf5cE8aRkt3T35IYid2-FAhmms_iIIR8B8YFpIBFGx40zrqSYiU2qgCUt2shNUGtbJX61BB/CAP201008060044.png" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;根化之後，會發現 Hero 又是一尾活龍，有更多空間可以發揮，Market Enabler、Wifi Tether 等等。雖然根化是破保行為，但是得到的效果卻遠比固守原樣來得多很多。要不要根，答案很明顯了吧。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;另一篇很讚的參考：&lt;a href="http://nate-young.blogspot.com/2010/08/hero-root.html" target="_blank"&gt;HERO root 前後 in Nate's Log&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS: 後記，&lt;a href="http://explore.live.com/windows-live-writer" target="_blank"&gt;Windows Live Writer&lt;/a&gt; 真他媽好用到極點啊。&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Hero + App Organizer 使用心得</title><link>http://mattyy.blogspot.com/2009/12/hero-app-organizer.html</link><category>3C</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Thu, 10 Dec 2009 17:05:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-4171377050190023697</guid><description>經過幾天的調整，Hero 的桌面算是就定位了，有沒有很清爽、乾淨啊，啾咪 ~&gt;.*&lt;br /&gt;配合 App Organizer 強大的標籤分類功能，收納各種同類、相關的應用程式，讓各式應用程式的取用更加方便。&lt;br /&gt;&lt;a href="http://9if0pw.bay.livefilestore.com/y1pB3cyMyXUQfH6GLu4H1AhjfVoBS1ofhSjvwEVkuw_5PwVPPCPTm-OxUtKephzEETBcxCftCTTqinHovAro403vZrqpBfQGMjv/Hero_xmind.png"&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1psw0wvBYwYkaCItz2SC_3X-GSX5M2ZvsdzNE8eOzODW4WteO-JgwTDyn5jQkaeVRg9hj7ojkUxZ7IV1JFPWcrWpKLPhdKUUMJ/Hero_xminds.png" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;各畫面大圖&lt;br /&gt;主畫面&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1p45CgIaykCU7otfQAEtKDJM32gdfQcskR15T6ween6yfnHxEz20BwgUzpDJoWP2PVnC93LHDOCl0bRB9Pa96E9zCC9p6rMBux/M0.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;左一&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1pgUq5pGhEaLV8iB9P64LDDZpx3L5XhwpUu_Df79sn7XgafdNsPIPJu66HojVVa_6us36CGL5sDABy8MOYSOZ2jfE21uDmbxnA/L1.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;右一&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1podOEj56aNeg8CUMihtnJ1Je1qUDMtPTV_H8PJFnlFK6Sv6LaH6V4NDC9hdT6PBzpxRfjgDgKgNhVc6d-sS5ZQGANy_-oPGkd/R1.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;左二&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1p6mdtKRxXB9VWZbZOXfsoYeE9AFE44sT76MyFBgrx5v0zT4eyUqiq7RXFwQdbTgMZDyR5hig7BtJVogJnPak9xSBzgetgJvUp/L2.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;右二&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1pTLgVRA2mCKzHWjMDpH1qbeswBWSBHmAmz6GDuJs8UgFvTrpfxbnQZSCTvBgCCzSLi_cfqWI4GPRKpFMfpL_wCQFOl-bgC3ET/R2.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;左三&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1pi6s2DyIxZVXpTiBvnOxFgKT61eEWG9Ena-jMy3C3V3t6UPIoId-BgCrsImFETkyorF_yQlWyLJe6e44VsfkfFnsGqHWzkGWq/L3.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;右三&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1pdVTJVBm78DhfWUfI85wuOslIEuiypSrOMIyeyes0BM1tQgwvsl-wauZhK9Y-lFePz5RPk_QtizCOXrgqyR3JPdBNnpvPquyO/R3.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;應用工具 ← 主 → 休閒網路&lt;/b&gt;&lt;br /&gt;分頁的方式，大概是以上述的原則來分門別類的。&lt;br /&gt;為了更方便識別出桌面上的 ApO 捷徑，我在標籤命名上加了個前綴字元 &lt;b&gt;#&lt;/b&gt;，以期望迅速尋找到正確目標的目的。經過試驗，這招挺有效率的。&lt;br /&gt;再來，ApO 的捷徑資料夾裡，有一個 Favorite 星號，原意是用來做為該類別項目中常用程式的快速選取。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1pbd0KPMtS__80byJ0tzsLZ5ry6RVdBx9OmRnneUV7S6NxgdO3YXQds0nuebrLjabD3uUCoBWAC1404iHOu5eZETdKIeVF0fxs/app%20organizer.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;不過，我把它誤用了，點亮這個星星，可以製作出類似子分類的標籤功能來。如圖，檔案工具快速被分離出來了。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1pwm_vDd3_GJierIeMeyN7NxCFRk-rb3CIGyWfhqPCdAXQ3yLLRK6M3td8o5qkn3GEC4XymS-Ve_Ae9AADanojH7gZ1LYqjV8f/app%20organizer%20with%20favorite.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;另外，我也發現原本的資料夾裡，也可以放上 ApO 的捷徑，如圖。只是我目前還沒找到比較好的應用實作方式。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://9if0pw.bay.livefilestore.com/y1pJnbeOLp0xysfiKKPvI9QVnQPvQ_y6WShyBp4cf7KCFeBRXiDKMGcaojWEsgmr6SOqB9NxRmjwGTsouXgFGjOFhHv9NkyIOIp/experiment.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以上，你英雄了嗎？&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>如何把網頁內容存成圖檔</title><link>http://mattyy.blogspot.com/2009/11/blog-post.html</link><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 13 Nov 2009 18:10:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-3537557684989146503</guid><description>&lt;a href="http://www.plurk.com/p/2lks7s"&gt;昨天看到雞皮哥寫把網頁內容寫成圖檔存查&lt;/a&gt;，今天就換我被要求要處理這樣的功能。幸好之前有先做過功課，怎麼做這樣的功能心裡早有個底。 程式很易了解，一路順手寫下，也完全沒有做任何註解。&lt;br /&gt;應用原理很簡單，以多執行緒，偷開一個瀏覽器把指定的網頁讀出來，然後再把瀏覽器讀到的內容寫成指定圖檔格式。真的就這麼簡單。不信，來看看程式碼吧。 &lt;code class='prettyprint'&gt; Imports System.Drawing&lt;br /&gt; Imports System.Windows.Forms&lt;br /&gt; Imports System.Threading&lt;br /&gt; &lt;br /&gt; Public Class PageContentToImage&lt;br /&gt; &amp;nbsp;&amp;nbsp;Private _height As Integer = 0&lt;br /&gt; &amp;nbsp;&amp;nbsp;Private _width As Integer = 0&lt;br /&gt; &amp;nbsp;&amp;nbsp;Private _pageurl As String = String.Empty&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Private img As Bitmap = Nothing&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Public Property Height() As Integer&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return _height&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Get&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set(ByVal value As Integer)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_height = value&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Set&lt;br /&gt; &amp;nbsp;&amp;nbsp;End Property&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Public Property Width() As Integer&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return _width&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Get&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set(ByVal value As Integer)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_width = value&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Set&lt;br /&gt; &amp;nbsp;&amp;nbsp;End Property&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Public Property PageUrl() As String&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return _pageurl&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Get&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set(ByVal value As String)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_pageurl = value&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Set&lt;br /&gt; &amp;nbsp;&amp;nbsp;End Property&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Private Function ConvertPage() As Bitmap&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim thrdCurrent As New Thread(New ThreadStart(AddressOf CreateSnap))&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;With thrdCurrent&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.SetApartmentState(ApartmentState.STA)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Start()&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Join()&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End With&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return img&lt;br /&gt; &amp;nbsp;&amp;nbsp;End Function&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Private Sub CreateSnap()&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Using browsePage As New WebBrowser()&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;With browsePage&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.ScrollBarsEnabled = False&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Navigate(Me.PageUrl)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddHandler .DocumentCompleted, AddressOf Browser_LoadCompleted&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;While .ReadyState &amp;lt;&amp;gt; WebBrowserReadyState.Complete&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.DoEvents()&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End While&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End With&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Using&lt;br /&gt; &amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Private Sub Browser_LoadCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim pageOpened As WebBrowser = DirectCast(sender, WebBrowser)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;With pageOpened&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.ClientSize = New Size(Width, Height)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.ScrollBarsEnabled = False&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;img = New Bitmap(Width, Height)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.BringToFront()&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.DrawToBitmap(img, .Bounds)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End With&lt;br /&gt; &amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;Public Sub SaveAsFile(ByVal pathtosave As String)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ConvertPage.Save(pathtosave, Imaging.ImageFormat.Png)&lt;br /&gt; &amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt; End Class&lt;br /&gt; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;稍微解釋一下，圖檔的格式我直接指定為 png，可視需求改變。或者也可以改寫，依狀況自動調整存檔格式，讓它更有彈性。 我們只要把上面的程式，建立成一個類別庫，再由需要使用的網站程式中來引用即可。&lt;br /&gt;&lt;br /&gt;要如何使用呢？如下面的示範&lt;br /&gt;&lt;code class='prettyprint'&gt; Dim slice As New HtmlToImage.PageContentToImage&lt;br /&gt; With slice&lt;br /&gt; &amp;nbsp;&amp;nbsp;.Height = 600 ''圖高&lt;br /&gt; &amp;nbsp;&amp;nbsp;.Width = 1024 ''圖寬&lt;br /&gt; &amp;nbsp;&amp;nbsp;.PageUrl = &amp;quot;http://www.dotblogs.com.tw&amp;quot; ''要存成圖的網頁&lt;br /&gt; &amp;nbsp;&amp;nbsp;.SaveAsFile(MapPath(&amp;quot;&amp;quot;) &amp;amp; &amp;quot;\screenshot.png&amp;quot;) ''存檔於指定的路徑&lt;br /&gt; End With&lt;br /&gt; &lt;br /&gt; Response.Write("&amp;quot;&amp;lt;img src=&amp;quot;&amp;quot;screenshot.png&amp;quot;&amp;quot; with=&amp;quot;&amp;quot;50%&amp;quot;&amp;quot; height=&amp;quot;&amp;quot;50%&amp;quot;&amp;quot; /&amp;gt;&amp;quot;")&lt;br /&gt; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;下圖是用該元件抓下來的點部落的例圖&lt;br /&gt;&lt;br /&gt;&lt;img src="http://jqybng.bay.livefilestore.com/y1pOljK3a6IPzYyF1rHMGtrI9LsC8tJVyOFfTa3gjlikWdMgR19Lp3pUpMQup4fFKbP70ofWgSgcqvbQ7-i9GAFm0Zjr4AdITVF/screenshot.png" /&gt;&lt;br /&gt;&lt;br /&gt;要注意的是，存檔的路徑必須有 asp.net 可以寫入的權限，否則會有錯誤產生。 另外，因為技術限制，無法自動求得網頁的實際高度(總長)。只得從 javascript 下手，求得網頁寬度，及高度，再以 __doPost(); 的技巧來實作。 以上，謝謝收看 :)&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Button.Click 處理完成後，再 POST 到指定 URL</title><link>http://mattyy.blogspot.com/2009/10/buttonclick-post-url.html</link><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 9 Oct 2009 17:38:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-6242617756827346066</guid><description>&lt;p&gt;昨天，剛好有小蝦在問這樣的問題。Button.Click 在 Server Side 做完相關的邏輯運算之後，一般都是利用 Response.Redirect 或 Server.Transfer 到某一指定 URL，並把相關的資料以 QueryString 來傳遞，此法相當於 GET Submit，資料串容易被目視發現。如果，我們希望改用以 POST Submit 來傳遞資料，避免資料直接透露在網頁上，這時該怎麼做呢？小蝦用了個很天真的方法，他直接 在 Page Load 把 Button.PostBackUrl 改為指定的 URL。   &lt;br /&gt;&lt;code class="prettyprint"&gt;Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load     &lt;br /&gt;&amp;#160;&amp;#160; Button1.PostBackUrl = &amp;quot;http://test.url/abc,php?itemA=A&amp;amp;itemB=B&amp;quot;      &lt;br /&gt;End Sub&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;好啦，問題來了，當 Button.Click 事件被觸發時，網頁馬上就跑到指定的 URL 了，原本希望要執行的運算都沒有做到。其實這很簡單的，我們只要搞清楚 runat server 與 PostBackUrl 之間的關連，就已經決定一半的問題了。   &lt;br /&gt;而剩下的另一半呢，也不難懂，有點類似以 server side 的程式來呼叫 Client 端的 Javascript function。但是別忘記，要 POST 資料就得需要 form 來支援。&lt;/p&gt;  &lt;p&gt;ClickAndPost.aspx，布置網頁   &lt;br /&gt;&lt;code class="prettyprint"&gt;&amp;lt;body&amp;gt;     &lt;br /&gt;&amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;asp:Button ID=&amp;quot;Button1&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Button&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;lt;/form&amp;gt;      &lt;br /&gt;&amp;lt;asp:Literal ID=&amp;quot;ltrJS&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:Literal&amp;gt;      &lt;br /&gt;&amp;lt;/body&amp;gt;&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;ClickAndPost.aspx.vb，程式邏輯   &lt;br /&gt;&lt;code class="prettyprint"&gt;Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ' 這裡是希望要處理的邏輯，請把它獨立成一個 Sub 或 Function 來呼叫，不要學範例偷懶      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If (Now.Second Mod 2 = 0) Then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; With js      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Append(&amp;quot;&amp;lt;form id=&amp;quot;&amp;quot;form&amp;quot;&amp;quot; method=&amp;quot;&amp;quot;post&amp;quot;&amp;quot; action=&amp;quot;&amp;quot;http://test.url/abc.php&amp;quot;&amp;quot;&amp;gt;&amp;quot;)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Append(&amp;quot;&amp;lt;input name=&amp;quot;&amp;quot;TRADE_NO&amp;quot;&amp;quot; type=&amp;quot;&amp;quot;hidden&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;quot; &amp;amp; &amp;quot;DEMO&amp;quot;.ToLower &amp;amp; Now.ToString(&amp;quot;yyyyMMddfff&amp;quot;) &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;quot;)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Append(&amp;quot;&amp;lt;/form&amp;gt;&amp;quot;)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Append(&amp;quot;&amp;lt;script type=&amp;quot;&amp;quot;text/javascript&amp;quot;&amp;quot;&amp;gt;document.getElementById('form').submit();&amp;lt;/script&amp;gt;&amp;quot;)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ' 請留意 getElementById 裡的的 form id 要與 form tag 的一致      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ltrJS.Text = .ToString      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; End With      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End If      &lt;br /&gt;End Sub&lt;/code&gt; &lt;/p&gt;  &lt;p&gt;稍微解說一下，當按下 Button 時，在條件成立時，會在 Literal 裡產生一個 form，並且利用 javascript 把它 submit。   &lt;br /&gt;當然我們也可以把上述的 form 改以 javascript 來 layout，並用 ScriptManager.RegisterClientScriptBlock 註冊以執行。只是我個人覺得以 javascript 寫會比較麻煩一些。&lt;/p&gt;  &lt;p&gt;很簡單的應用技巧，這樣有了解了沒？&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>讓人昏倒的暈倒柒</title><link>http://mattyy.blogspot.com/2009/09/blog-post_24.html</link><category>Murmur</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Thu, 24 Sep 2009 15:40:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-7941284665589171941</guid><description>&lt;p&gt;看到暈倒柒的價格(&lt;a href="http://taiwan.cnet.com/crave/0,2000088746,20141407,00.htm" target="_blank"&gt;資料A&lt;/a&gt;、&lt;a href="http://windows7.ithome.com.tw/question/10004577?tag=hp.all" target="_blank"&gt;資料B&lt;/a&gt;)，真的是會讓人昏倒啊。沒有想唱衰，但是這樣的高價，在一個月後正式上架開賣，會不會累積到500套的預購量都是個問題。&lt;/p&gt;  &lt;blockquote&gt;10590 x 500 = 5,290,000&lt;/blockquote&gt;  &lt;p&gt;反觀，如果售價調整為目前的一半，我相信願意花錢預購的，衝過10000套是可以預期的。&lt;/p&gt;  &lt;blockquote&gt;(10590 x .5) x 10000 = 52,950,000&lt;/blockquote&gt;  &lt;p&gt;更豪洨一點，售價直接少掉一個零，幹～搞不好會變成百萬大碟，整體業績並不會因為低售價而比原價來得更差，這豈不妙哉？&lt;/p&gt;  &lt;blockquote&gt;(10590 x .1) x 1000000 = 1,059,000,000&lt;/blockquote&gt;&lt;br /&gt;read more: &lt;a href="http://www.plurk.com/p/21dnih" target="_blank"&gt;my plurk&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>獻寶之多彩許願帶</title><link>http://mattyy.blogspot.com/2009/09/blog-post.html</link><category>Something in My Head</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Tue, 15 Sep 2009 14:55:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-8598475643402487279</guid><description>&lt;img src="http://pss3kw.bay.livefilestore.com/y1pkLbTPpsUZG82dxE871_3vHnNIUQIdDO41rofhsvCHWEY0ikm9jQt6Gq6zravlpaRrRTbHxVx6hWI8jRCfybNTuQCL09dzPDZ/002_handwish.JPG" /&gt;   &lt;p&gt;這是X小姐(X表妹的表姐，啦啦啦)送來的彩色許願帶，只是我手太細，綁在手上偏偏像留了很長的八字鬍，哈哈 &lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZo6CeXCqeiF7GY4VYxmp3QA4TWT7IZi_HvU_2sXKjrI6FRAhEQLQmlGpuOtmBEXG9vvJTOZ1ANX1jMuN7E8NF4sXAMJJgUs5KPDf4VvOC51PqGx5R8t3OOWvTPOE5Z3qGmNC_/s400/hg_unun.gif" /&gt;&lt;/p&gt;  &lt;p&gt;有人說這是一隻婦貴手，也是一隻宅很久的手XD    &lt;br /&gt;ref a: &lt;a href="http://www.plurk.com/p/1xeotx"&gt;my plurk (you maight not read it.)&lt;/a&gt;     &lt;br /&gt;ref b: &lt;a href="http://www.plurk.com/p/1xcw46"&gt;missx plurk (you maight not read it.)&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZo6CeXCqeiF7GY4VYxmp3QA4TWT7IZi_HvU_2sXKjrI6FRAhEQLQmlGpuOtmBEXG9vvJTOZ1ANX1jMuN7E8NF4sXAMJJgUs5KPDf4VvOC51PqGx5R8t3OOWvTPOE5Z3qGmNC_/s72-c/hg_unun.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>實用小工具-CopyPasteTool</title><link>http://mattyy.blogspot.com/2009/09/copypastetool.html</link><category>Computer</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sun, 13 Sep 2009 00:24:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-7567482554639598618</guid><description>今天要來介紹一個實用小工具 &lt;a href="http://www.copypastetool.com" target="_blank"&gt;CopyPasteTool&lt;/a&gt;。   &lt;p&gt;&lt;img src="http://pss3kw.bay.livefilestore.com/y1pjIvQbczq0u2lXFSnxvXsze11wQrGRWtCGDm54bdTA3UGR1C7lPrlhVD4DVQpdWFin5ZxYIIiBolLY6PcfPElPjhdG-6SlQB7/CPT.png" /&gt;     &lt;br /&gt;由工具名稱即知它的功能是用來加強 Copy-Paste (複製貼上) 的實用度 (注意，程式只對文字有效)。安裝後，Ctrl+C 可以記憶多組字串，目前實測&lt;b&gt;似乎&lt;/b&gt;是沒有上限。Ctrl+V、V... 可以循環選擇記憶中的字串。Ctrl+C+ C 可以清空記憶中的字串組。這個小工具用在 coding 上會很方便，推薦給大家。&lt;/p&gt;  &lt;p&gt;檔案下載 1 &lt;a href="http://www.copypastetool.com/copypastetool-setup.exe"&gt;Setup 安裝檔&lt;/a&gt;     &lt;br /&gt;檔案下載 2 &lt;a href="http://www.copypastetool.com/copypastetool.zip"&gt;程式檔 (建議)&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>WLW Style Test</title><link>http://mattyy.blogspot.com/2009/09/wlw-style-test.html</link><author>noreply@blogger.com (Anonymous)</author><pubDate>Thu, 10 Sep 2009 02:35:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-3142591864954112718</guid><description>&lt;p&gt;&lt;a href="http://abc.htm" target="_blank"&gt;some url&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;原來如此，不能自己寫 tag 標籤，要用選的，冏&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh45Me70nEmWoJVGtTi4G5cun1N2vwPUJMY-TNpv2Rr5-7jJI7IKUUHCyfLOxBKh4RyN4Eu5xXTvjqSAtuAWTzcjOUN4KCnnnUjyMKWrfFnDpnq0jhu2ExeiCstsByQLyTZhpjW/s1600-h/th_nanajig%5B2%5D.gif"&gt;&lt;img style="display: inline" title="th_nanajig" alt="th_nanajig" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYv0oocGoJkVB2lTnSClLxfKp38nWl-0LF950cNDOObd-D3Sc7sGa57Zx9smJSDYCWrHlGowEe6w4xRC848ekxsQNCFDDGyY10XYnhb3jU3ZLMnkDqeVJeGQX-tkD0auR_3aSk/?imgmax=800" width="66" height="36" /&gt;&lt;/a&gt; 了&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYv0oocGoJkVB2lTnSClLxfKp38nWl-0LF950cNDOObd-D3Sc7sGa57Zx9smJSDYCWrHlGowEe6w4xRC848ekxsQNCFDDGyY10XYnhb3jU3ZLMnkDqeVJeGQX-tkD0auR_3aSk/s72-c?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>利用 UriBuilder 實作 HTTPS 重導網頁</title><link>http://mattyy.blogspot.com/2009/09/uribuilder-https.html</link><category>Programming</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Mon, 7 Sep 2009 16:15:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-8628556487681547281</guid><description>某些時候，程式需要在 SSL 協定下運作才會比較安全，如登入頁。我原先是採用 javasctip 重導的偷懶方式，此法容易理解卻也經常重導失敗，如果 Browser 把 javascript 停用就破功了。而且，就算重導成功了，部份頁面可能會遇到「&lt;a href="http://support.microsoft.com/kb/971691/zh-tw" target="_blank"&gt;是否僅要檢視安全傳送的網頁內容？&lt;/a&gt;」的安全性警告，也挺困擾的。所以乾脆寫個類別來使用好了。&lt;br /&gt;&lt;br /&gt;建立一個父類別 CBasePage&lt;br /&gt;&lt;code class="prettyprint"&gt;Public Class CPageBase&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inherits System.Web.UI.Page&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;''' &lt;summary&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;''' 是否要使用SSL，而父類別是不使用SSL的&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;''' &lt;/summary&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;''' &lt;remarks&gt;&lt;/remarks&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Protected Overridable ReadOnly Property IsUseSSL() As Boolean&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Property&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NeedNotSSL()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Private Sub NeedNotSSL()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If (Not Me.IsUseSSL) AndAlso (Me.Request.IsSecureConnection) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim NewUrl As New UriBuilder(Me.Request.Url)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;With NewUrl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Scheme = Uri.UriSchemeHttp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Port = 80&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End With&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Me.Response.Redirect(NewUrl.ToString)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt;End Class&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;再建立一個子類別 CBasePageSSL&lt;br /&gt;&lt;code class="prettyprint"&gt;Public Class CPageBaseSSL&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inherits CPageBase&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Protected Overrides ReadOnly Property IsUseSSL() As Boolean&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Property&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NeedSSL()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Private Sub NeedSSL()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If (Me.IsUseSSL) AndAlso (Not Me.Request.IsSecureConnection) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim NewUrl As New UriBuilder(Me.Request.Url)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;With NewUrl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Scheme = Uri.UriSchemeHttps&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.Port = 443&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End With&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Me.Response.Redirect(NewUrl.ToString)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End Sub&lt;br /&gt;End Class&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;多數的網頁只需繼承 CBasePage，有要用到 SSL 協定的頁面再繼承 CBasePageSSL 就可以了。&lt;br /&gt;&lt;br /&gt;透過 &lt;a href="http://msdn.microsoft.com/zh-tw/library/system.uribuilder_members.aspx" target="_blank"&gt;UriBuilder&lt;/a&gt; 可以很方便的取得、改變所要求的網址。&lt;br /&gt;&lt;br /&gt;寫完這篇之後，才發現我 Delay 了，哈哈。&lt;a href="http://blog.miniasp.com/post/2009/09/How-to-modify-Url-structure-in-aspnet-and-csharp.aspx" target="_blank"&gt;保哥早就發表了相同的文章了&lt;/a&gt;，冏&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SE DS-980 遇上 Windows 7 (解)</title><link>http://mattyy.blogspot.com/2009/09/se-ds-980-windows-7_06.html</link><category>Computer</category><category>Problems</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sun, 6 Sep 2009 02:55:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-1676643499110354223</guid><description>為解 &lt;a href="http://mattyy.blogspot.com/2009/09/se-ds-980-windows-7.html"&gt;DS980 無法順利連接上 HP 2133 with Windows 7 的問題&lt;/a&gt;，經過幾小時的資料搜集，我終於找到問題所在了。主因就是 Driver 啦。&lt;br /&gt;Windows 7 安裝完畢後，雖然 BT Device 有被啟動，但是真正的 BT Adpter 是沒被啟動的，所以當我把 DS980 接上時，會多出幾項未知的裝置。但目前 Windows Update 尚未提供相關的 Driver，我便回頭安裝了 &lt;a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;prodTypeId=321957&amp;prodSeriesId=3687084&amp;prodNameId=3687085&amp;swEnvOID=2096&amp;swLang=8&amp;mode=2&amp;taskId=135&amp;swItem=ob-59504-1"&gt;Software Support for HP Integrated Module with Bluetooth Wireless Technology (&lt;span style="color:blue;"&gt;SP38457&lt;/span&gt;)&lt;/a&gt;，安裝完成後，裝置管理員會多出幾項新的裝置來，DS980 可以用了，YA!!!&lt;br /&gt;&lt;img src="http://pss3kw.bay.livefilestore.com/y1pfqnjstPaIOebVRBbtraj3XhiWVXfFxA2gEfwkYiGHuAf0a04ZvEXX26v65-LHSmUmsFQR_OAn-5TqJZdpGubRHk5tyZBmtkz/ds980_done.png" /&gt;&lt;br /&gt;&lt;br /&gt;不過，又遇到另一個小小的問題了。當我把 DS980 連接上時，聲音沒有辦法由耳機自動接管，必需手動調整設定才可以。這個之前我在用 XP 時是可以自動完成的。&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SE DS-980 遇上 Windows 7</title><link>http://mattyy.blogspot.com/2009/09/se-ds-980-windows-7.html</link><category>Problems</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 4 Sep 2009 16:13:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-3735094381758657212</guid><description>Windows 7 的 BlueTooth 裝置的操作 UI 變得更方便便容易使用了，相較 Vista 而言。&lt;br /&gt;不過，怪事來啦。我的 DS-980 接上後，卻噴出一堆錯誤，之前用 XP、Vista 反而沒這問題，如圖。&lt;br /&gt;&lt;img src="http://pss3kw.bay.livefilestore.com/y1pnDodjiABuPB6qRD1vocj9rI1Dq2_5MyBFlOArBZgeQuJc3pdb-zd1TA2dQciJ5BLk6h1NQL6iK0dqRiMDRELPtASYpcWwePN/ds980-error.png" /&gt;&lt;br /&gt;&lt;br /&gt;有另外帶出訊息視窗，並連往 Broadcom 下載 BT Driver(?!)，很可惜，一樣無效。要花點時間來射茶包了。&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>jQuery 太威了</title><link>http://mattyy.blogspot.com/2009/09/jquery.html</link><category>Something in My Head</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 4 Sep 2009 01:51:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-5809281932518032661</guid><description>&lt;span style="font-size:11pt;"&gt;&lt;br /&gt;我又換版型了。是不是更清爽了呢？&lt;br /&gt;&lt;br /&gt;這次配合了 &lt;a href="http://www.jquery.com"&gt;jQuery&lt;/a&gt; 強大的威力，我自己動手加寫了一些玩具，讓部落格更容易閱讀。例如在右側的欄位上，Labels (分類標籤) 那列，點一下滑鼠左鍵，可以把該欄折疊起來，再摁一下又可恢復。&lt;br /&gt;&lt;br /&gt;那麼，我來稍微解釋一下我的做法，code 如下&lt;br /&gt;&lt;code class="prettyprint"&gt;&lt;br /&gt;  1. //Labels toggle;&lt;br /&gt;  2. $("#Label1 &amp;gt; :contains('Labels')").click(function(){&lt;br /&gt;  3.   $("div.list-label-widget-content").toggle("middle");&lt;br /&gt;  4. });&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;其中第2行，表示 Label1 這個 div 中所下屬的子標籤裡含有文字 &lt;b&gt;Labels&lt;/b&gt; 的標籤，在這裡點下左鍵，其內容會發生折疊效果。如果只寫 jQuery("#Label1")，那麼，我們在內容摁下左鍵時仍會發生折疊，這樣就不是我所需要的樣子了。我也是多次 try and error 才發現其中的奧妙所在。&lt;br /&gt;&lt;br /&gt;另外，我也有引用了 Google Code 美化程式碼，詳細可以參考 &lt;a href="http://www.hsiu28.net/html/peruse.php?id=18"&gt;這篇&lt;/a&gt; 的介紹。&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;PS: 為什麼我不用 $ 來執行 jQuery？因為我的 template 有引用別的 library 剛好也有用到 $，所以只好使用 jQuery Alias 囉。&lt;/span&gt;&lt;br /&gt;後來我又花了些時間，把樣版裡的 javascript code 重新檢視了一次，清掉了不必要的部份。&lt;br /&gt;另外，讀了&lt;a href="http://at.u41.tw/2009/09/jquery.html"&gt;阿特的文章&lt;/a&gt;，他寫的 code 給了我不一樣的參考方向。我採用類似 ByVal 的方法，而他是採用類似 ByRef 的方式，其實是就 Index 取值。寫法不同，作用相同。&lt;br /&gt;&lt;code class="prettyprint"&gt;&lt;br /&gt;  1. //Arcieve Calendar toggle;&lt;br /&gt;  2. $("#HTML3 h2:first").click(function(){&lt;br /&gt;  3.   $("div#blogCalendar").toggle("middle");&lt;br /&gt;  4. });&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>超酷的</title><link>http://mattyy.blogspot.com/2009/03/blog-post_27.html</link><category>Have fun</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 27 Mar 2009 22:45:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-635240243104245848</guid><description>&lt;span style="font-size:11pt;"&gt;&lt;br /&gt;這應該有算18禁吧，但是很傳神也很好笑。&lt;br /&gt;&lt;br /&gt;機會就像老二，握久了總會變大些；時間有如乳溝，擠一擠還是會有的；承諾就像幹你娘，說的出口總是做不到。&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>小王子下午茶</title><link>http://mattyy.blogspot.com/2009/03/test.html</link><category>Something in My Head</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sun, 22 Mar 2009 21:25:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-2486763969464491120</guid><description>太陽超大，懶得出門騎車...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;p&gt;睡到下午，看了看外頭，太陽超大，懶得出門騎車，也不想宅在家。乾脆下樓去吃下午茶好啦。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;帶了小2133準備邊吃邊噗，也帶了本書(&lt;a href="http://www.books.com.tw/exep/prod/booksfile.php?item=0010332423" target="_blank"&gt;紙房子裡的人&lt;/a&gt;)解解悶。誰知店裡的 Wifi 又不讓連了，順手拿了 W880i 亂拍一通(所以畫質就不用計較啦)，哈哈。&lt;/p&gt;  &lt;p&gt;@. 氣氛不錯的位置&lt;br /&gt;&lt;img style="display: inline" title="氣氛不錯的位置" alt="氣氛不錯的位置" src="http://7tovzg.bay.livefilestore.com/y1pT3a1smfOF1EErxIH417DqA4iQJuLctn-eT71hnrXG52sIKOnVpQEDvjENURR79O9XbvExKhsqgCXMX10ZdScrJ7fO5fZRkQh/DSC00040ss.JPG" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;@. 窗台上的貓似乎想來搶我的牛角麵包&lt;br /&gt;&lt;img style="display: inline" title="窗台上的貓似乎想來搶我的牛角麵包" alt="窗台上的貓似乎想來搶我的牛角麵包" src="http://7tovzg.bay.livefilestore.com/y1pvjDSiUaX0icDdLcuUJCZwSFVtC9qlnIObSZJbOI3eKirULBRN2N-3t4U8M0QBDsLI0MEDgCnJqFYG13urn4VAbLXbZvSt9q0/DSC00041ss.JPG" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;@. 凝了水的玻璃杯與昏黃的燈光交織成奇妙的影子&lt;br /&gt;&lt;img style="display: inline" title="凝了水的玻璃杯與昏黃的燈光交織成奇妙的影子" alt="凝了水的玻璃杯與昏黃的燈光交織成奇妙的影子" src="http://7tovzg.bay.livefilestore.com/y1pjnbaYA5yK3w9fuowWyzqqy1Iq7HGhGuzgbD6Fdmx1HbtLmWBnYOE126a-MXTBM6bTFwe5L6UnLKhGe1-XBhcxx4FwJD4Z6dh/DSC00042ss.JPG" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;@. 奇妙的影子似乎在告訴我吃晚餐時間到了&lt;br /&gt;&lt;img style="display: inline" title="奇妙的影子似乎在告訴我吃晚餐時間到了" alt="奇妙的影子似乎在告訴我吃晚餐時間到了" src="http://7tovzg.bay.livefilestore.com/y1p5FDmgS8D3UnjpUqi0Ndr85Tcnt-Fb3IHaQ9DGvArQYviH15unu-_udG9w_9EXcw-ZxyPAU3x0pFs_MVY01T8siVDzOZtHLtI/DSC00044ss.JPG" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>帥哥美女公司(?!)</title><link>http://mattyy.blogspot.com/2009/03/blog-post.html</link><category>Something in My Head</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sat, 21 Mar 2009 23:27:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-11212865.post-5159986084489376690</guid><description>每每跑完山路後，我會很喜歡一路亂逛回家...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;p&gt;每每跑完山路後，我會很喜歡一路亂逛回家，而今天則選擇由大立百貨轉往中山路。這路段其實我經常走，路旁有一家公司我也留意過多次。為什麼會想特別留意咧，因為每次經過，都會見到一群男男女女在門口圍圈圈，而且那些男女都十分年輕，也當相有姿色(誤XD)，可謂男的帥、女的美。認得我的人，會知道我的眼光也十分高(爆)，能被我稱為帥哥美女的，肯定是上好貨色，哈。&lt;/p&gt;  &lt;p&gt;而這回經過，我特別用了相當緩慢的速度(&amp;lt;10km/hr)經過門口，當然小圈圈也出現了，而圈內的主講(可能是職等相當高的人物)是個美女，身著及膝窄裙的米色套裝，讓我多看了幾眼，甚至180度回車再望幾眼(剛好停紅燈)。所以，我也特意記住了那公司的名字了－天獅健康產品有限公司(荷屬安地列斯商)。真是個特別的名字。&lt;/p&gt;  &lt;p&gt;回到家 Google 了一下，嗯，果真如我想的一樣，原來真是傳直銷的公司。出動一群帥哥美女軍團，業績會比較好做出來嗎？嗯～真的會嗎？&lt;/p&gt;  &lt;p&gt;Ref，有興趣的朋友可以自己解碼後查看   &lt;br /&gt;網頁 http://tw(dot)tiens(dot)com    &lt;br /&gt;人力銀行上的 &lt;a href="http://www.1111.com.tw/talents/employeeList.asp?nNo=51472263" target="_blank"&gt;徵才資料&lt;/a&gt;，整個讓人傻眼，真的是傳直銷的 fu。    &lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;來來來，進來看完整的文章吧。&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>