2011年3月18日 星期五

三門問題

有許久沒有寫blog了,會寫這篇是因為上課時聽到老師精闢的解說,所以借花獻佛分享給大家,以下是三門問題的解說

為遊戲節目,三個門中其中一個門後方有車子,其餘二個門為山羊,參賽者先選擇一個門後,主持人會開啟另一個門會出現山羊(主持人一定會開門且出現的一定是山羊),當主持人問參賽者時,參賽者是否要換

門後的東西:羊1、羊2、車

換可獲得機率為66%
if 參賽者原選羊1 then 車 (主持人開羊2)
if 參賽者原選羊2 then 車 (主持人開羊1)
if 參賽者原選車 then 羊 (主持人開羊)

不換可獲得機率為33%
if 參賽者原選羊1 then 羊1 (主持人開羊2)
if 參賽者原選羊2 then 羊2 (主持人開羊1)
if 參賽者原選車 then 車 (主持人開羊)

原本三個門選一個得到車子的機率為1/3,但在主持人會開另一個門且一定為羊,並給予參賽者更換門的機會,參賽者如果選擇換,得到車子的機率會從33%->66%,雖然網路上有其他人的論點為50%,但我認為是66%,有興趣的看倌不訪上網查詢三門問題。

2011年1月24日 星期一

如何檢查圖檔是否存在遠端主機

最近負責的案子,有些圖檔是來自遠端的Web主機,使用者希望如果遠端圖檔不存在時能以自訂的預設圖檔取代,以下的程式正是因應此需求

步驟1.
using System.Net;

步驟2
public static bool CheckWebReference(string url)
{
bool exists = false;
WebRequest request = WebRequest.Create(url);
request.Proxy = null;

try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
exists = true;
response.Close();
}
catch
{
exists = false;
}
request.Abort();
return exists;
}

上方的url是要檢查的網路資源網址,ex: http://xxx.xxx.xxx/xxx/xxx.png

2010年12月3日 星期五

.Net Reflector (二)

繼上篇.Net Reflector介紹,這次再說明.Net Reflector的Export功能,至於為什麼要說明是源自於辦公室同事專案裡引用的DLL檔Source Code沒有了,所以想藉由.Net Reflector產出Source Code,因為操作簡單我不做過多解釋會直接以圖例說明

1.開啟 .Net Reflector(例子的.Net Reflector版本為6.5)


2.選取欲Export的DLL檔


3.點選組件SSOUtil後再按滑鼠右鍵Export


4.點選Start按鈕


5.點選Close按鈕


6.產出路徑(XP 環境)

2010年11月1日 星期一

線上網頁編輯器FCKeditor(二)

最近要開發的系統有引用到FCKeditor,但Toolbar並不需要所有的項目,只需要部份項目,經由google大神的幫忙找到了解決方式,解決方式分為二步驟

步驟一:修改fckconfig.js


FCKConfig.ToolbarSets["JSSG"] = [
['Bold', 'Italic', 'Underline', '-', 'FontSize', 'TextColor', 'BGColor'], '/',
['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyFull']
];


上面的程式碼片段'-'代表每一列Toolbar各區塊的分隔符號,'/'則代表換列

步驟二:設定.aspx上的FCKeditor控制項屬性







*相關參考
1.http://docs.cksource.com/FCKeditor_2.x/Developers_Guide/Configuration/Toolbar
2.http://m955.com/wp/archives/77

2010年10月22日 星期五

在MasterPage引用jquery檔案

以往在使用MasterPage時,都和引用它的.aspx檔案放在同個目錄,最近想把MasterPage檔案與aspx檔案分開放在不同的目錄,可是在實作過程發生了一些問題,所以記錄下解決方法

目錄結構
\
|___\Styles
| |_styles.css
|___\Scripts
| |_jquery-1.4.1.min.js
| |_DD_roundies_0.0.2a-min.js
|___\MasterPages
| |_DefaultMaster.master
| |_DefaultMaster.master.cs
|_Default.aspx
|_Default.aspx.cs

底下為程式碼

2010年10月10日 星期日

Tech.Days 2010 SQL Server 2008 R2 T-SQL心得

今年Tech.Days有參加楊志強老師SQL 2008 R2 T-SQL技術與建議的課程,覺得獲益良多,因此想寫入以加深印象,以下是 Where Clause使用 Like 子句與 Left的差別

測試環境
Cpu:T4200
Ram:2G
OS:winxp sp3
DB:Microsoft SQL Server 2005 Developer Edition

測試資料表為一訂單主檔資料表,筆數為122798

以下語法為找出2006年9月的訂單

SELECT IssNum
FROM IssMaster
WHERE IssNum LIKE '200609%'

SELECT IssNum
FROM IssMaster
WHERE LEFT(IssNum, 6) = '200609'



可以看出採用 Like子句的成本花費較Left函數來得小,原因在於Like是採用clustered index seek而Left函數會採用index scan,這裡要注意的是如果Like由 '200609%'改為'%200609%'則會變成index scan,相關資料可由google鍵入index seek index scan得到

2010年10月5日 星期二

新版Microsoft SQL Server Management Studio摘要在那裡?

最近工作上的SQL Server從2005升級到2008,所以SSMS(SQL Server Management Studio)也安裝了新版。在使用新版的SSMS居然找不到摘要可供物件的排序,後來利用google搜尋後才知道新版的SSMS已經不叫摘要而叫物件總管詳細資料,使用方式可以在「檢視」點選「物件總管詳細資料」或直接按F7。