發表文章

目前顯示的是 3月, 2009的文章

圖庫素材網站

最近因為專案的需要,要找一些可以用的素材圖片。上網一找,倒是找到一個不錯的 圖庫素材網站 。 製作圓角區塊 。   不錯的網頁編輯工具: KompoZer

用Clonezilla複製硬碟到USB外接硬碟

圖片
話說最近想換NB的硬碟,所以就在討論區中詢問了一下相關資料,有人說可以用Clonezilla來進行硬碟的複製。於是在新硬碟拿到手後,就開始試著用Clonezilla來進行硬碟的複製了。不過,過程相當驚險,差點就將我原本NB硬碟中的原版還原光碟給刪除掉了。所以就想說要來寫一篇文章分享一下如何用Clonezilla複製硬碟到USB外接硬碟。 首先,當然我也是有先到網路上去查一下資料,看有沒有人有分享這方面的經驗。發現某位不知名的人士已經寫了一段有關 如何使用Clonezilla的文章 。文章中雖然各種情況都有提到,不過就是沒有提到如何將本機硬碟中的資料複製到另一顆USB的外接硬碟中。其實,雖然Clonezilla選單中沒有複製到USB外接硬碟的選項,不過實際上就是使用「local drive to local drive」這項功能就可以了。雖然如果,還是在此說明一下好了。 首先,要準備一片Clonezilla的開機片,可以到 Clonezilla 網站中下載。 另外,確認一下你的USB外接硬碟是正常的。 好,那現在就開始說明用Clonezilla複製硬碟的部份了。 先將Clonezilla開機片放入光碟機中,並用它來進行開機。(有需要的話,可能要先進BIOS中設定一下) 開始開機時會出現如下的畫面,讓你選擇使用何種解析度。 選好解析度後 ,開始進入開機流程。因為是使用Linux作業系統,所以看起來都是文字介面。 開機流程後,接著會出現一個使用者介面語言的選單,當然就選「繁體中文」囉。 接著它會問你是否要修改鍵盤的對應方式。一般都是不用修改。 接下來就是選擇主要功能項目了。這裏有兩種方式,一般也是使用第一項:Start Clonezilla。 開始使用後,它會問你你想要的作業方式是什麼。因為我們想要的是複製整顆硬碟,所以就選「device to device」。 確認之後,Clonezilla會開始進行偵測。如果你只有一顆碟碟的話,它會出現警告訊息,告知你只有一顆硬碟無法進行複製。所以在這些前,最好先能將你的USB外接硬碟接上。 如果Clonezilla偵測到你有兩顆以上的硬碟的話,就會出現如上的選單讓你選擇來源硬碟是哪顆。請注意,如果是IDE介面的話,那就是hda、hdb依序下去。如果是SATA介面的話,就是sda、sdb依序下去。所以就算你是USB外接硬碟,也都把你當

MSBuild相關資源

MSBuild Team Blog

中文圖床:Po圖客

圖片
需要圖床的人又有福了。最近有發現了一個新的圖床網站。而且還是中文的喔。中文介面相信大家用起來比 上次介紹的外國圖床 還要來得親切吧。 這次的圖床是: Po圖客 。 首先當然就是要先註冊一組帳號。同樣的也要透過電子郵件來完成認證的手續。 註冊好帳號後,就可以開始上傳圖片囉。上傳完圖片後,要如何找到這張圖片的連結網址呢? 你可以點選這張圖,首先它會進入一個編輯圖片說明的頁面。 在這個頁面中,再於圖片上按一下,就可以看到圖片的原始大小。上面可以選擇圖片的尺寸。那連結網址呢? 不要緊張,將網頁往下捲動。看到沒,就在下面啦。

NB更換新硬碟,還原磁區複製問題

最近想幫我的NB更換容量大一點的硬碟,不過因為現在的NB中的硬碟都會有一個磁碟是用來放置還原光碟的資料用的。所以如果要更換新硬碟的話,就要想辦法將這個磁碟一併複製過去才行。畢竟這個還原光碟也是有版權的耶。 一開始我的想法是要請NB原廠的服務站幫忙進行複製的動作,不過在還不確定是否可以下,就先到Mobile01上問看看有沒有其它有有這方面的經驗。過了幾天,有位好心的站友提供了一個不錯的方式可以自行複製整顆硬碟,連還原光碟中的資料也可以一併複製過來。 不過,我還沒有實際測試。如果有興趣的人可以參考這些有關 如何複製NB還原磁區 的文章。

解密SEO:如何讓網站排名第一

自從開始自己架設Blog網站後,就買了一本 WordPress部落格架設與經營:站長親授的十堂課 。在那本書中,才第一次知道原來Google這些搜尋引擎在搜尋網站時所使用的排名是有一定的演算法的,而且每個站長無所不用其極的想要讓自己的網站在搜尋的排名上能被排到前幾名,以便增加人氣。 而這種要在搜尋網站中得到更好的排名名次的作法有個通行的名稱可以用來稱呼它:SEO(Search Engine Optimization)。所以在這本書中我第一次學到了SEO這個名詞。 最近在書店看書時,發現架上有一本有關SEO的書,它的書名是: 解密 SEO :如何讓網站排名第一 。一開始我以為作者很快地就會切入主題,提供許多有關如何增加自己網站排名的方法。不過,看了前幾章後 ,發現作者倒是花了不少的時間在解釋有關各家搜尋引擎的搜尋演算法。當然,說明最多的就是Google囉。而且令我驚訝的是,作者還說明了許多有關Google這些年來在改進搜尋引擎上,以及跟許多使用不良手段獲得很高的排名的網站間的戰爭歷史。 當然,後面幾章也是有提供一些不錯的方法,讓讀者可以參考,以便增加自己的排名。前提就是,一定要用合法的方式。不然,Google就會讓你一夕之間消失囉。 雖然沒有整本看完,不過,大致上知道,在網頁中的自己連外的部份,在連結的用詞上可能本身也要注意一下。選擇適當的用詞。以便搜尋引擎的剖析及分類。這讓我想到,有時我的文章中連外的連結,都是用請參考這篇、參考這裏之類的。其實這樣搜尋引擎可能就很難建立這種關鍵字了。所以最好的方式當然就是選擇比較貼切的用詞囉。

開發多執行緒程式時應注意的小細節

最近多核心處理器已成為主流,且多執行緒的程式也隨之出現。使用多執行緒的方式來開發應用程式,無非就是想利用多核心處理器來加快處理時間。可是一個設計不良的多執行緒程式,執行起來的效能可能比單執行緒程式來得差。所以在設計多執行緒程式時,有些細節也是要多加注意的。 當然,在開發多執行緒程式時,一些基本的常識是一定要知道的。像是死結(Dead Lock)、同步(Synchronization)、競速(Racing)、挨餓(Starving)、執行緒佇池(ThreadPool)等。 其它還應該注意的細節則有以下幾項。 公平 V.S. 效率 (Fairness & Performance) 在使用ThreadPool時,大家一定都認為先放到工作佇列中的工作就該優先派送給執行緒來執行。這樣當然是符合了公平的原則。可是這種方式會是最有效率的嗎?這可不一定了。有可能第一件工作所需的資料,跟最後一件工作所需的資料不想關。而第一件工作跟第二件工作所需的資料類似,也就是它們可能因為同步的需要而造成第二件工作會等第一件工作執行後才能執行。這種情況下,如果能安排第一件工作跟最後一件工作一起執行的話,那可能會更有效率些。 同步(Synchronization) 在同步的議題上,需注意的是有些在單核心處理器上使用的同步物件,在多核心處理器上可能效率上會打折扣。所以在這種同步物件的選用上也要格外留意。 記憶體階層(Memory Hierarchy) 有些系統的記憶體儲存方式是需階層式的方式來儲存及管理的。這表示要存取較遠階層的記憶體的話,會需要花費更多的時間。所以在程式設計上也要考量這點。 小心調整(Dangeous Tuning) 有時某種效能上的校調可能會造成反效果。例如在多核心處理上的某種演算法,用在單核心處理器上可能就沒那麼好。針對CPU的使用率上,在單核心處理器中用滿CPU的使用率可能是不錯的方式,可是在多核心處理器上則可能不是那麼好的方式。 雜訊(Noise) 有時在校調時,可能會受到同一部電腦中同時執行的其它程式的影響。例如在跟A程式一起執行時,可能用某種調整的結果執行起來會比較有效率;可是在跟其它程式一起執行時就不好了。 執行緒數目(Currency Level) 要使用多少個執行緒也是沒有一個定論。這都是要經過測試才能得知的結果。 並行運算(Parallelism) 在將程式

初試.NET Remoting

圖片
雖然使用.NET Remoting已經一陣子了,不過,最近對於它的生命週期的議題有點疑惑。所以就想說自已寫一個簡單的Remoting來測試一下。如果想看英文的.NET Remoting相關文章的話,可以參考 這篇 。 首先因為Remoting物件是需要在兩個不同的AppDomain中使用的,所以這個物件的定義應該是要讓Remoting Server及Remoting Client兩邊都能認得。要達到這樣的目的,一種作法就是在專案中建立一個「類別庫」。在這個類別庫中,定義一個介面。例如本範例中的IRemoteServer: 接著再新增一個主控台專案來實作一個RemoteServer: 上面只是用先前定義的IRemoteServer介面實作出一個伺服器而已。這個伺服器類別除了要實作IRemoteServer外,另外還要再繼承自MarshalByRefObject。一般而言,只要繼承MarshalByRefObject類別就好了,不用再另外寫其它的程式碼。這樣的伺服器就可以使用了。 而在這裏的範例中,我另外還覆寫了MarshalByRefObject的InitializeLieftimeService()這個函式。主要的用意就是要在覆寫的函式中傳回一個null值,表示這個Marshal By Reference的物件它的「租約」是無限期的。這樣.NET中的GC就不會自動回收這個物件了。 實作完伺服器類別後,接著就是要寫一段程式碼就它能被註冊成運作中的伺服器。 要註冊一個Remoting的伺服器,一開始就是要先決定所要使用的通訊協定。通訊協定主要有兩種型式,一種是HTTP;另一種是TCP。在這個範例中,我是選擇使用TCP。當然你也可以選用HTTP。 建立好Channel物件後,再用ChannelServices.RegisterChannel()來註冊這個通道。 最後就是利用RemotingConfiguration.RegisterWellKnownServiceType()這個函式來註冊你要用來在上面所註冊的通道中提供服務的伺服器。需要給的參數有:   伺服器類別的型別 提供服務的服務名稱,也是一個識別碼 建立伺服器物件時的型式 Singleton:只會產生一個伺服器物件來服務每次連線進來的要求 SingleCoall:每次連線進來的要求都會建立一個

免費圖床-ImageShack

圖片
最近在網路上看到有人在介紹一個不錯的免費圖片分享網站 ImageShack 。因為先前在這個Blog中分享圖片時都是用Pixnet,而Pixnet又只有大約200MB而已。說小不小,但說大也不大。所以就一直留意看是否有其它方式可以用來分享圖片。沒想到就看到ImageShack這個網站。 ImageShack的基本容量有5GB,每日的流量是10GB。對我來說算是很夠用的了。所以就立即試用。   1. 先到www.imageshack.us註冊一個帳號 註冊好後,它會先寄送一封電子郵件給您,其中包含一個啟動及登入的連結。成功登入後,建議您先去更改您的密碼。因為 它使用的是它幫您產生的密碼,這組密碼應該不是很好記憶,所以可以改一組自己比較好記的密碼。 2. 上傳檔案 在登入網站後,由上方的工具列中,選擇「My Images」 由右方工具列中的選單「Upload Image」或「Upload Multiple Images」來上傳單張或多張影像 3. 分享影像 要取得您上傳影像的分享網址的話,可在影像的右邊那個「i」的圖示上按一下,就會出現一些可以分享的方式。 像是網址,或內嵌HTML語法。

設定Host Interface Network

圖片
使用VirtualBox安裝好Guest OS後,一般在網路設定上都是預設使用NAT的模式。也就是VirtualBox軟體本身模擬成一個Router,並扮演著DHCP的角色,當Guest OS啟動後,就會連上這個Router,並透過DHCP取得一組網路IP。 不過,使用NAT模式的話,會有以下幾個限制: Guest OS無法跟外部的網際網路連線,如果要的話,就只能用Port Forwarding的方式。 使用Port Forwarding的話,Host OS就不能同時使用相同的Port。 所以,如果你要在Guest OS中架設一些網際網路的服務程式的話,那一個就是利用Port Forwarding的方式;另一個就是要改用Host Interface Network。 在這裏先說明一下如何改成Host Interface Network的設定。 首先,在VirtualBox中,當您的Guset OS尚未啟動時,先利用「設定值」的功能,到「網路」中,將「Attach To」設定成「主端介面」。並在下方的「主端介面卡」清單中,選取你要連結的介面卡。 接著,開啟你的Guest OS,進入系統後,一開始可能就會出現無法上網的情況。這時,您就要像在Host OS那樣,設定一些網際網路連線的方式。如果您的Host OS是用ADSL上網的話,那就一樣要在Guest OS中設定ADSL連線。 這樣您的Guest OS就跟Host OS一樣了,兩者間也可以互相看見,以及利用網路溝通了。

小心Math.Round()

double d = Math.Round(20.5); d = Math.Round(21.5); 在C#中,執行上面的兩行程式會出現什麼結果呢? Math.Round()一般給人的感覺就是要進行四捨五入。所以就會想說,那應該是 21.0跟 22.0吧。 可是在C#中執行的結果,卻出乎意料,結果是20.0跟22.0。 怎麼會這樣!! 看起來有點不按牌理出牌。我查了一下MSDN,Math.Round()的運作原理如下: 傳回值 最接近 a 的整數。如果 a 的小數部分落在兩個整數中間,一個是偶數,另一個是奇數, 則會傳回偶數 。 說明 這個方法的行為遵循 IEEE Standard 754 第 4 節。這種捨入有時稱為捨入至最接近值或銀行家捨入。 這樣 會將一致四捨五入單向中點值得出的四捨五入錯誤降至最低。   它的原理是希望能將誤差降到最低,不過,卻跟一般人的想法不一樣。 另外還發現原來Math.Round()的引數不只一個,它還可以有第二個引數。 第二個引數是一個列舉值,叫作 MidPointRounding 。 它有兩個列舉值: AwayFromZero 以及 ToEven 。預設下就是使用ToEven。不過,一般人比較能接受的應該是AwayFromZero吧。 所以下次要使用Math.Round()時,請確定你要的運作模式,以免算出來的結果不是你預期的。

同步Google Calendar及PDA

最近發現有一套軟體GooSync可以用來進行Google Calendar跟PDA行事曆間的同步。所以就下載來試用一下。 首先要到 GooSync 網站中註冊一個帳號。只有完成註冊後才可以下載用戶端的程式來進行同步。註冊完後,GooSync會寄送一封電子郵件到您的信箱,必須利用它寄送來的連結進行確認後,才會開通帳號。 確認帳號後,就可以登入GooSync的網站,第一次登入時,它會要求你設定你所使用的手機型號。一開始在所有的手機型號中還找不到我的ASUS P750。想說,怎麼會這樣,難道ASUS真的只是一個「Local」的品牌嗎?後來再往選單下方找,發現最後一項就是Windows Mobile。原來所有PDA手機都適用Windows Mobile型號。不管你是哪一牌的,就是用這個了啦。 設定好所使用的手機型號後,接下來就是要下載用戶端的程式。程式下載完後,就複製到PDA中進行安裝。安裝完成後,可依GooSync的 設定說明 進行設定。 手機設定完成後,接著就是要回到GooSync中再重新登入,它應該就會要求你去設定要同步的Google Calendar。因為要先通知Google Calendar說你要利用GooSync來進行同步。 設定好用戶端程式,且開通Google Calendar後,就可以進行同步了。

22個最實用的Windows Vista技巧和常見問題整理

1. 如何關閉UAC? 控制台→用戶帳戶→打開或關閉用戶賬戶控制→取消使用用戶賬戶控制(UAC)幫助保護您的電腦。 2. 如何關閉系統備份與還原? 控制台→備份和還原中心→創建還原點或更該設置→系統保護→自動還原點→取消已經選中的磁盤上的還原點。 3.為什麼在某個固定的時間會出現狂讀硬碟的現象? 這是因為Vista自動執行磁盤碎片整理計劃的緣故,關閉的方法是通過開始菜單→附件→系統工具→磁盤碎片整理程式→取消「按計劃執行(推薦)」 4. 如何關閉電腦進入休眠狀態? 桌面右鍵→個性化→螢幕保護程式→更改電源設置→更改電腦的睡眠時間→使電腦進入睡眠狀態設為從不。 5. 開始菜單電源按鈕預設置設定為「休眠」,如何更改為「關機」? 控制面版→電源選項→選中的「首選計劃」→更改計劃設置→更改進階電源設置,在彈出的設置視窗中找到「電源按鈕和蓋子」→「開始」菜單電源按鈕→設置→關機,確定即可 完成設置。 6.每次開機時在安全中心都會提示,如何關閉這個提示訊息? 控制台→安全中心→更改安全中心通知我的方法→選擇不通知我,但顯示圖示。 7. 如何在非傳統開始菜單中顯示執行命令? 任務欄和開始菜單內容→開始菜單→自定義→選中「執行命令」。 8.如何取消每次開機的預設置共享? 使用Vista優化大師,或者將下列內容匯入註冊表,重啟即可(前提是要關閉UAC)。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanserverParameters] AutoShareWks=dword00000000 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa] restrictanonymous=dword00000001 9.如何實現自動登入? 開始→執行→輸入「rundll32 netplwiz.dll,UsersRunDll」命令打開帳戶視窗,先選中要自動登入的賬戶,去選「要使用本機,用戶必須輸入用戶名密碼」選項框,輸 入該帳戶的 密碼即可(前提是要關閉UAC),,使用Vista之家出品的Vista優化大師更簡單實現。 10. 如何更改媒體文件使用WMP以外的播放器播放? 選中媒體文件→右鍵菜單→打開方式→