發表文章

目前顯示的是 2009的文章

C#單元測試--使用Pex

今天看到一篇MSDN上的新文章,在 介紹有關單元測試的資訊 。 微軟團隊最近發表了一套可以配合Visual Studio來使用的單元測試軟體-- Pex 。這套軟體可以針對您所開發完成的程式碼,實際分析其中的程式碼語意,自動地產生所需的單元測試範本及相關的程式。 在Pex的網站中,有許多詳細的說明,而且還有 介紹的影片可線上觀看 。 在程式開發過程中,需求不斷地在變更的事實,算是不可否認的現象之一了。就算再如何地做好需求訪談、分析,也無法避免未來開發過程中,或進入維護階段時,所需面對的功能修正的問題。 為了能確保每次進行的軟體功能修正都能正確無誤,而且就算在加入新功能時,也能同時確保原有功能的正常的話,使用測試導向的開發模式是勢在必行的了。 當然,要程式開發人員再多費心思去撰寫測試程式或準備測試範本的話,可能會多佔用他們的寶貴時間,造成一般開發人員在開發過程中,都不太會去花時間在測試的方面。 有了Pex的輔助,可以將測試流程大量地自動化的話,一定可以改善開發流程及品質的。 Pex使用了參數化單元測試(Parameterized Unit Test -- PUT)的技術。以下節錄自Pex的說明文件: A unit test is a method without parameters represents a test case which typically executes a method of a class-under-test with fixed arguments and verifies that it returns the expected result. A parameterized unit test (PUT) is the straightforward generalization of a unit test by allowing parameters. PUTs make statements about the code’s behavior for an entire set of possible input values, instead of just a single exemplary input value. A unit test is a method without parameters represent

Subversion版本控制

Subversion算是一個成熟的OpenSource程式碼版本控制軟體。 本來公司都是使用VSS。在家裏,本來也是想用VSS的。不過因為版權的問題,加上想要試用一下其它的版本控制軟體,就找到了Subversion。 Subversion同樣是要安裝一個伺服器。您可以使用 VisualSVN 的免費版本,喜歡的話,再昇級到企業版。或是您也可以到 SilkSVN 這個網站中去註冊並申請一個免費的空間,它可以提供Subversion的版本控制。讓您在只要能上網的地方,就可以存取到程式碼。 有了Subversion的伺服器之後,就要有用戶端軟體來存取它。您可以使用SilkSVN所提供的免費用戶端軟體。或是您是使用vistual studio的開發環境的話,就可以安裝 AnkhSVN 這套跟Visual Studio整合在一起的Subversion版本控制套件。

C# Dictionary.ContainsKey()釋懝

今天在使用C#中的泛型集合Dictionary<TKey,TValue>時,發現它的ContainsKey()竟然不能使用我自訂的Key類別所覆寫的Equals()函式。這點著實令我感到不可思議。 ContainsKey()這個函式我已經使用很久了,可這還是第一次發現ContainsKey()傳回來的結果,令我訝異。 我想要的很簡單,就是我有一個資料型別,而我另外定義一個跟這個資料型別相互配合的Key類別。我想要將相同Key值的資料群組起來。於是我宣告了以下這樣的Dictionary<>: Dictionary<TKey,TValue> dic = new Dictionary<Tkey, TValue>(); 接著我就依續為每筆資料產生它對應的Key物件,將它放到這個Dictionary中。當然我的Key類別有覆寫了Equals()函式,而且我用ContainsKey()函式來判斷是否有相同Key的資料存在這個Dictionary中。可是當程式執行完後,發現沒有一筆資料的Key是相同的。我確認過資料,應該是會有Key是相同的才對。此時的我開始感覺不妙。難道Dictionary不再是我所認識的那個Dictionary了嗎!! 於是我開始查詢網路上相關的資料,有人提到在 MSDN中有相關的說明 。看了之後才恍然大悟,原來是這麼一回事啊。 IEqualityComparer 首先來看一段程式碼,這是我一開始以為可以正確地讓Dictionary<>.ContainsKey()為我找到相同Key值的寫法: class MyKey { public int ID; } static void Test1() { Dictionary dicTest = new Dictionary(); MyKey key1 = new MyKey(); key1.ID = 10; dicTest.Add(key1, "Test"); MyKey key2 = new MyKey(

Windows 7 @ ASUS F8sg

圖片
這次買了Windows7家用進階版(昇級版),安裝在ASUS F8sg上。 指紋辦識登入 這個部份,看了ASUS官網上的討論區後,安裝了一堆程式及驅動程式,結果還是無法使用指紋辦識登入。結果在安裝印表機驅動程式時,突然就設定好了。 1. 首先要下載 指紋辦識驅動程式 ,安裝完後,基本上還是無法使用。在查詢驅動程式時,請選作業系統Windows 7。目前F8sg是用 AuthenTec指紋辨識驅動程式 Win7 32 位元版 這個版本。 2. 再到Windows 7的裝置及印表機中,應該會看到有一個指紋辦識器。 對它按下右鍵,會看到一個Biometrics的選項。 點選它後會看到如下圖的畫面: 按下右邊的管理你的指紋,就可以開始註冊指紋。註冊完後,再重新登入,就可以選要輸入密碼或指紋登入了。 HP M1120印表機 這台印表機在Win7上安裝也是有點小麻煩。一開始我用的是Vista版本的全版本驅動程式光碟安裝,安裝到一半時就要偵測印表機。可是就一直偵測不到。後來就到HP官網中下載支援Windows7的全版本驅動程式,結果還是一樣。 原本想放棄的,後來又看官網上看到有分 全版本及單純驅動程式版本 。想說不然就下找純驅動程式版本安裝看看好了。沒想到就安裝成功了。 Fn + F9 TouchPad開關 一開始Fn + F9的功能無法使用,也就是無法開啟或關閉TouchPad。後來到網路上查了一下,原來是要安裝ASUS的TouchPad驅動程式。安裝完後,就可以正常使用Fn+F9了。

用ActiveSync可以跟Google行事曆同步了耶

這幾天開始發現原本在使用的GoogleSync程式無法再用來同步我PDA跟Google上的行事曆了。 為了解決這個問題,就到網路上Google了一下。沒想到在Google本身的網站中就找到了如何 利用ActiveSync來跟Google行事曆進行同步的設定方式 。雖然這裏的設定方式跟我的PDA上的畫面上有點不一樣,不過算是大同小異,在經過設定後,就可以直接同步了。而且原本使用GoogleSync只能同步行事曆而已,現在連聯絡人、工作項目、郵件都能同步了。真是太強了。 不過,要注意的是,目前還不支援同步「工作」項目的功能。所以請不要勾選它。不然會造成無法同步的問題。這點我也是查了一陣子,才發現的

大話設計模式--簡單書評

自從女兒出生後,就很少再去跑圖書館了。直到不久前,想說由網路上去查一下看有沒有什麼書可借來看看的,正好就看到 「大話設計模式」 這本書。先前逛書店時就有看到這本書了,只是一直沒拿起來翻閱。這次正好圖書館可以外借,就借回家來看看囉。 說真的,每次看書時都只是大略地瞄過書中的序言。但這本書,可能是一開始作者的文筆就吸引了我吧,沒想到就將這本書的序言給看完了。 在序言中,作者主要是在教學過程中,體會到要用更貼近生活化的方式來傳授物件導向的概念。就如同作者說的,當我們在閱讀一本小說時,都能逐字地將它讀完。可是當我們在閱讀技術書籍時,可能都是前面幾張會仔細閱讀,可到了後面就虎頭蛇尾地草草結束了。個中原由,作者體會到原來要能像小說一樣地,用文字將讀者的注意力吸引住,讓他們能將整本小說讀完。 像物件導向中的設計模式的概念,其實坊間已有不少的書藉出版。像最有名的GoF出的設計模式書籍,幾乎是大家都一定要讀過的。可是真正讀完的有多少人呢。像我本身也是前面幾個模式看過後,後面就等要用時再查了。無法全部讀完主要也是因為書中的寫作方式太過制式,難以引人入勝。所以作者這本書就以小說的方式,透過小菜及大鳥(合起來就是菜鳥吧,哈)兩人的對話,來說明物件導向的概念及設計模式。 設計模式的確是物件導向中一項重要的概念,所以坊間的書出版的還不少。直接讀GoF的書,是直接看到前人所討論出來後的最後結果,如果你能吸收當然是最好。如果不行的話,可能就是要用一步步的方式推導出來,這時可以看 「重構--向範式前進」 這本書。如果你想知道如何應用的話,那「大話設計模式」這本倒是不錯的選擇。 本書中,個人覺得不錯的地方還有一個就是作者 在p.17這頁中利用一張UML的圖型,將所有UML中會使用到的物件導向分析圖案都應用上了 。沒學過的人可以利用這張圖有個全盤的概知,而學過的人,可以再驗証一下自己的觀念。 不過,書中作者提到物件導向有三大精神:封裝、繼承、多型。可個人在以前學習時,還多了一項 虛擬 。我覺得「多型」可能還不包含有「虛擬」的概念,所以應該要再加入這一項才行。

免費瀏覽器書籤轉換器

一直以來比較喜歡使用的瀏覽器是Firefox。除了它是開放源碼的軟體外,另一方面就是它有許多好用的擴充套件可用。 每次在備份及還原書籤時,總是覺得很麻煩。後來發現在Firefox中有一個免費的書籤管理及同步程式,可讓它在不同電腦中的Firefox同步使用相同的書籤。當然,如果你重灌電腦時,也可以利用它來取回先前所記錄過的書籤。真的是非常好用的功能之一。 後來Google推出新的免瀏覽器,訴求的就是顯示網頁的速度快速。的確Chrome真的在瀏覽網頁時非常的快速。可惜,它只能一開始時同步一次Firefox的書籤。不過,後來發現它也有匯入書籤的功能,可使用Firefox備份下來的檔案來匯入成為它的書籤。算是要同步的話,也是OK。不過,要將Chrome的書籤匯入到Firefox就沒辦法了。 沒想到今天在 網路上 看到有免費的各家瀏覽器書籤同步程式 Transmute 。當下就 下載 回來使用。這樣就可以解決Chrome書籤無法匯入Firefox的問題了。

ARR( Application Recovery and Restart)

再完美的應用程式,還是有可能會發現當使用者操作到一半時就不小心當機的問題。 如果只需要重新啟動程式的話,那或許還好。如果在程式操作中,使用者有一些資料正在編輯中,而程式的不正常終止會造成這些編輯中的資料遺失的話,那你最好是有一套方式可定期地儲存正在編輯中的資料。當程式不正常終止,下次再重新啟動時,可詢問使用者是否載入先前所正在編輯中的資料。 這套流程如果要自己寫程式開發的話,當然也是沒有問題。不過微軟有預想到會有人需要這種功能,所以就提供了一組API,叫作Application Recovery and Restart(ARR) 。 透過ARR,你只要跟Windows作業系統註冊,它就會讓它具用這種功能。當然,您要依它所定義的介面完成一些基本的實作,這樣Windows才能跟您的程式通力合作,完成這項需求。 在CodeGuru網站中有 ARR 相關的文章可供參考。

免費的數學軟體(MATLAB替代品)

最近因為需要用C#來實作一些基本的矩陣運算功能,所以需要有可以用來驗証我的程式碼是否正確的工具。 提到矩陣運算軟體的話,大家一定都會想到MATLAB。的確,MATLAB算是很多人在使用的一套數學軟體。可惜的是,它是需要付費買版權的。 如果是個人在家裏開發的話,當然就是可以偷偷使用「免費」的版本。不過,因為是在公司開發的,怕會惹來麻煩,無法自行安裝MATLAB。 只好上網找看看有沒有替代品了。沒想到真的讓我找到一個免費的矩陣運算軟體 FreeMat 。沒多久就將它下載下來測試了。 使用上它的畫面編排還真的跟MATLAB蠻像的。所以看起來就格外的熟悉。 而且它是使用QT開發的,所以可以支援各種作業系統。有Windows、Linux、MAC OS等。算是一套不錯的MATLAB替代品。

ln(x) for C#

在C#的Math類別中,並沒有ln(x)的函式。 其實ln(x)就是以指數為底的log()函式啦。 所以要求ln(x)是多少的話,可以用Math.Log( x, Math.E) 來表示。

實作Queue

現在不論使用何種語言,基本的資料結構大都不用再自己動手實作。有可能語言本身就有提供不錯用的資料結構物件,或是多多少少也都可以拿到免費的實作完成版本。 不過,說真的有時你還真的會需要自己去動手實作某種資料結構物件。 最近,我就有一個需求需要自己動手做一個Queue。姑且不論我的需求是什麼,單是要實作一個基本型的Queue就花了我一些時間。主要的問題就在於: 如何判斷Queue是空的,還是滿的:基本上在實作Queue時,一般都是先配置一個固定大小的空間,這空間可能是以陣列的方式實作的。接著就是用兩個指標的代表可放置資料的索引值(TailIndex),以及要取得第一份資料的索引值(HeadIndex)。這兩個索引值在這個固定大小的空間中,基本上就是巡迴使用的。也就是當某個指標移動到所配置空間的結尾時,就要再移到第一個位置,從頭再來。所以有可能HeadIndex會是<TailIndex的。這樣你要如何才能判斷資料是空的,還是滿的呢? 當空間不足時,你如果決定採用自動增加空間的演算法的話,那你要如何配置空間,以及將舊資料移到新的空間呢? 這些問題是我在實作一個Queue時遇到且花了一些時間思考的。雖然,終就是實作出我自己的一個Queue版本,而且也再接續改良出我所需的Queue。但還是覺得自己的實作版本可能有缺陷。 於是就上網查了一下資料,沒想到就查到兩篇看起來像是學術性的文章。一篇是 用陣列來實作Queue ;另一篇是 用linked-list來實作Queue 的。有興趣的人可參考一下囉。

太神奇了吧,可以這樣讓小孩不哭

今天突然在Mobile01上看到的一些文章,其中有個國外在教導 如何讓小孩不哭的方法 。 相當神奇喔,有興趣的人可以去看看。

Ubuntu 9.0.4 在VirtualBox 2.2.4中使用全螢幕

今天在VirtualBox 2.2.4中重新安裝了新版的Ubuntu 9.0.4。 安裝一切還算順利,不過,當我將VirtualBox的視窗放大到全螢幕時,發現Ubuntu並不會跟著放大到全螢幕。於是就上網查詢了一下資料,原來只要再額外安裝Virtual Box的額外套件就可以了。 最近版本的VirtualBox 2.2.4要安裝額外套件的設定也比較簡單了。只要到Virtual Box視窗上方的工具列的「裝置」中,選取最後一個選項「安裝客端額外功能」,此時Virtual Box就會自動將它的ISO檔掛載到您的磁碟機中。 一般來說,Ubuntu應該會自動執行才對。不過,我的狀況是它並沒有自動執行。所以我是開啟這個ISO檔的內容,並手動執行其中的autorun.sh。執行後,它會進行自動化的安裝。安裝完成後,重新啟動,只要變更視窗的大小,Ubuntu的桌面也就會自動跟著變更了。

wicatch免費無線網路

現在離開家中到外面時,如果想要上線的話,不外乎要使用以下幾種方式: WiFi:要收費的,而且只有幾個特定的熱點 店家提供的免費網路:店家有時會提供免費的無線網路供消費者使用,不過,這樣的店家也是可遇不可求。 3G上網:自己申請電信業者的3G上網,只要有信號的地方就可以上網。不過,費用也是不便宜。 除了上述幾種方式之外,最近開始流行一種 wicatch免費無線上網 。 這種方式跟上述第二種的方式差不多,不過店家如果採用wicatch的方式的話,或許還可以從中得到一些回饋金。比自行免費提供要來得更有經濟效益。 wicatch的作法就是店家提供免費的無線上網頻寬,而結合wicatch來提供給使用者。不過使用者必須安裝wicatch的用戶端軟體才能連上無線網路。當然使用上是完全免費的,不過就是用戶端軟體會在使用者的螢幕的某個小區塊,播放一些廣告。而播放廣告的收入則會回饋給店家。 目前加入wicatch的店家其實還不多,大都是集中在台大公館附近的咖啡店。 個人覺得這樣的作法應該可以使提供無線上網頻寬的店家再多出一些額外的收入,未來應該也可以支撐提供無線上網頻寬的費用,強化服務。這樣總比完全免費提供要來得更有經濟效益吧。

A股、B股、H股

一開始有點搞不懂這些股,正好看到一份資料,就寫下來當作筆記囉。 A股:以人民幣計價,針對中國公民發行且在中國境內上市的股票;簡單說,就是大陸人民才能買的股票 B股:以美元、港幣計價,針對境外投資者發行且在中國境內上市的股票;簡單說,就是讓外國投資者買的中國股票。 H股:以港幣計價,在香港發行並上市的中國境內企業股票。

OpenCV使用MSVCR80.dll

在開始第一個OpenCV專案時,跟著網路上的範例將程式碼輸入一個新建的Win32命令列專案中,經過編譯及連結,所有過程完全順利,最後產生了一個可執行檔。 結果一執行時,就出現缺少MSVCR80.dll的訊息。怎麼會這樣呢?我執行的環境中是有安裝Visual Studio 2005的開發環境的啊。照理說,在這樣的環境下是不會缺少什麼DLL的吧。而且,這種一看就是Visual Studio本身會有的DLL,一般而言都是安裝到System32中了,不需要再另外複製一份到程式的執行檔目錄中才對啊。 於是就上網查了一下相關的資訊,原來大家都有遇過這種問題。只不過,他們可能不是使用OpenCV。 解決的方式好像有三種 。不過這篇文章中最後一種方式,我試過是沒有用的。後來是使用了第二種方式才解決問題。第二種方式主要是 在manifest檔案中加入相依性的參考 。 一開始如果方案建置完成時,你的manifest檔的內容應該是: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> </dependentAssembly> </dependency> <dependency> <dependentAssembly> <assemblyIdentity type=&q

在VC++中使用OpenCV

在 VC++中使用OpenCV ,主要就是先設定好環境變數,將Lib、Header、以及source code的路徑設好,再開始一個新的專案。 在這篇文章中,作者是叫我們連結cv.lib、cxcore.lib以及highgui.lib這些函式庫。不過,如果你是在Debug模式下的話,那建議你要連結debug版本的,也就是cv100d.lib(100是版本號,表示1.0.0,也可以用新版的1.1.0)、cxcored.lib、highguid.lib。 假如你是自行編譯OpenCV函式庫的話,那請開啟OpenCV的方案檔,再設定成Debug模式,重新編譯。 如果你有注意看到OpenCV函式庫的編譯模式的話,會發現它多了一種Debug OpenMP 以及 Release OpenMP。 OpenMP 是平行式運算,主要是一組能同時利用多個CPU來進行運算的函式庫。OpenCV因為是影像處理的函式庫,為了加速運算速度,所以也提供了平行式運算的版本。

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

Socket程式設計

在程式設計俱樂部看到的一篇有關 Socket程式設計技巧 的文章,先註記一下。 http://www.ibm.com/developerworks/linux/library/l-hisock.html?ca=dgr-lnxw01BoostSocket

小筆電當電子書

繼上次 在公館的Starbucks用小筆電上網 後,由於那間Starbucks的插座不是很多(只有一個),如果用小筆電加PDA手機3G上網的話,目前3Cell的電池,可能只能撐大約1.5小時。使用時間算有點短,而且我又是使用威寶旺卡,預付卡的方式申請一天3G上網要99元的那種。如果只用個1.5小時,那真是虧大了。 這次就改變策略,不上網了。可不上網,如果帶幾本雜誌的話,又太重。沒雜誌看,又有點無聊。幸好最近發現在網路上可以下載到最近幾期的各式各樣的雜誌。好心人士都將這些雜誌數位化了。全部整本轉換成PDF檔。只要下載個幾本,應該就可以在速食店花上好幾小時等人了。所以就利用時間下載了好幾本雜誌來看。 原本一直有想要去買電子書的閱讀器,像是Amazone的Kinddle之類的。現在發現原來小筆電,配合一些PDF檔,也可以當作是一個方便攜帶的電子書閱讀器。

U100安裝Ubuntu 9.04

自從上次安裝了Ubuntu 8.04版後,在幾經努力下,才將ADSL、無線網卡、PDA 手機3G上網給安裝好。 後來,為了測試Vista,加上因為第一分割區安裝Windows XP,第二分割區安裝了Ubuntu 8.0.4,結果造成後面的空間無法被Windows XP認得,而型成浪費的空間。那就決定先改裝Mac OS 10.4。 後來Mac OS又不太好用,無法3G上網,就又改回Vista。結果裝了Vista Ultimate,竟然吃掉我20G的空間,真是大怪物。 不過,它跟PDA手機算是比較合得來的,就暫時保留它囉。 今天想到先前有下載新版的Ubuntu 9.0.4,想說就來安裝看看吧。 試用Ubuntu 9.0.4後,覺得還真不錯用。一開始我先試用Live CD模式,發現它可以直接安裝好U100的無線網卡,以及籃芽、而且在網路設定上也算方便。於是就打算裝它安裝下來好了。 更令我神奇的是,原本在8.0.4版時,每次要安裝,它就會要去搶人家XP的空間,明明後面就有空白的分割區給它,它還不要。造成只能手動配置分割區。可是在9.0.4版中,它就知道要乖乖地去用其它的分割區,而不是死要用人家XP的空間。 不過,由於我的空間都用完了,所以只好手動調整一個分割區的空間來安裝Ubuntu。這次的安裝算是很順利,設好分割區,及其它設定值後,就讓Ubuntu自己去安裝了。而且更妙的是,一安裝好,它也就自動上網取得中文語系套件,所以重開機後,所有選單就都是中文的了。 我在想說,這是不是因為我是先進入Live CD模式,設好網路後,再安裝Ubuntu的關係。就由於這樣,它才能在安裝完畢時,一併透過網路將所需的語文套件下載下來呢? 這點我就不確定了。 不過,總而言之,這次安裝Ubuntu還蠻順利的。目前就差3G上網了。等有空再來設定囉。 更值得一提的是,先前安裝好Ubuntu 8.0.4後,還真是受不了它的字型,就想辦法再上網去下載了一些字型來用。總算是有更換到好一點的字型了。 而這次新版的Ubuntu9.0.4,竟然一安裝完就使用了不錯看的字型。所以連找字型這個動作也省下來了。 2009/6/18 測試3G上網 在看PCHome時,發現裏面也有在介紹Ubuntu 9.0.4,而且3G上網的套件預設就有安裝了。立即拿起我的ASUS P750用USB接上Ubuntu 9.0.4。哇,它出現

U100安裝Vista

自從買了U100之後,不到一個月的時間,就試過了三、四種作業系統。XP的內建的,當然一定是要安裝的了。 ubuntu也是網路上大家經常會試用的作業系統,當然也試著安裝了一次。基本上使用上來說,算是還好。唯一的缺點就是,它自己一定要用 GRUB的開機管理程式來管理多重開機才行。如果不小心在安裝後用了SPFDisk,那就只好重灌或是上網找重設的方式了。 後來又想要安裝Mac OS來試試,因為在網路上找不到有人分享給MSI Wind用的版本,正好先前有買到一片10.4的版本,就試著安裝了一下。安裝也算是完成了,至少網路、無線網路都可以使用。只是用WM6 PDA  3G上網的方式,一直找不到解決方案。而至於中文輸入法的部份,使用無蝦米的部份,有人分享用OpenVanilla的方式,我是安裝不起來。只好先去無蝦米的網站下載試用版本。倒還是可以用。 可惜,Mac OS 只存活不到一天。因為其它的部份使用上還是很不習慣。所以想想還是只能走回微軟的作業系統了。 Vista也是有人試著安裝過,於是就想說改安裝Vista來玩玩。不過,一安裝好Vista,發現一些上網的模組都無法正常驅動。所以就開始一個個將它救回來了。我參考的是 MSIWind Forum 上的一篇文章。 一開始就是先設定好無線網卡,所以就去網站上下載了驅動程式。不過,我找到的網站是 Model-Help 。在這裏我打關鍵字RT2700E找到了驅動程式。安裝後,無線網卡就可以使用了。 而在MSIWind Forum文章中,依它的指示,到Intel的網路中,找到了VGA的驅動程式。安裝後,Vista的畫面果然比較能看了。 在安裝網路卡時,文章中說只要無線網卡安裝好,並可上網後,利用自動更新驅動程式的方式,就能自動找到正確的網路卡驅動程式。可惜這種方式行不通。所以就google了一下。發現在Mobile01中有人說要自己去下載 網路卡(RTL8101)的驅動程式 ,於是就查了一下,也順利地找到了驅動程式。

製作還原磁區

http://blog.xuite.net/tim13/vampire/13034726   http://tw.myblog.yahoo.com/jw!W2rVGcmZGB7KLzJgoiUhVxo-/article?mid=3857   http://tw.myblog.yahoo.com/up-station/article?mid=113&next=112&l=f&fid=41

星巴克 3G上網,U100第一次出擊

星期日上午總是需要送老婆到台大附近的教會參加禮拜。有時就會到附近逛逛等她。 長久以來就一直希望能拿台筆電到附近的星巴克去上網,消磨時間。可惜目前的ASUS F8sg好像有點重,有時帶出去又沒機會用時,那它的重量還真是不可小看的呢。所以又興起來買小筆電的念頭。 正好最近PXHome的 MSI U100 在特賣,就買了一台回來。心想著,應該會有機會用到它在星巴克上網吧。 今天,這個夢想總算實現了。 一早就開車送老婆去教會,接著就是開始去找停車位了。很幸運的,在汀州路找到一個停車位。星期日台北市是用不收費的。停好車後,就開始往星巴克前進。一路上盤算著,如果在星巴克無法上網的話,那可能就要買份報紙,以備不時之需了。在快到星巴克時,正好有間全家,就進去買了一份報紙。就這樣,在有了萬全準備下進入了星巴克。 怪哉,今天這間星巴克的人還真不少呢。可能是正好對面的台大在舉行畢業典禮吧。進去後就用公司福委會送的統一7-11禮券,點了一杯冰咖啡。拿到冰咖啡後,就開始往樓上去找位子。二樓的人數還不少,於是就直接上到三樓。一上樓就看到有人也在用 NB,而且它那邊正好有插座。唉,不好意思坐它對面,就只好找靠窗的座位了。 調好咖啡後,就先拿出手機來試看看威寶在這裏的3G信號。威寶的3 G上網,我用的是威寶旺卡,預付卡的型式。在家裏都只有3G信號。沒想到一試,就發現威寶來 台大公館這裏有3.5G的信號 。太好了,這樣就能高速上網了。 於是就拿出小筆電,開始上網。可惜,小筆電的電池是3cell的,大約只能用兩小時。不過,我要等待的時間也大約是兩小時,所以就拼拼看囉。 可能是我效能開太強,大約用了一小時後,它就自動進入休眠狀態了。我想應該是沒電了。好吧,那就換看報紙囉。 就這樣,今天總於是在星巴克上網、喝咖啡了。

Ubuntu WM 3G 上網

一 大堆參考,看不懂   最後使用的方式,不過,應該是要重開機才行

Ubuntu U100 無線網路安裝

搞了好久,總算是將U100的無線網卡在Ubuntu上順利地安裝起來了。 安裝的方式我是 參考這篇安裝說明來進行的 。沒辦法,還是得拿原始程式碼下來自行編譯才行。

DOS下使用USB CD-ROM

取得USB CD-ROM 的DOS驅動程式 在上面的網頁中主要是取得DSUE.exe這個驅動程式。 這些則是有關 DSUE的使用方式   不知有多少人以為DOS不支持USB設備。因為USB設備標準是在Windows 95之後才制定的,而當時DOS的老東家微軟早已決定放棄繼續發展其MS-DOS了。這樣一來,當您想在DOS下操作USB設備的時候,往往只能望洋興歎了。即使您使用的系統是Windows,當Windows崩潰要制作備份或恢複數據時,平時使用的USB硬碟等USB設備也都成了擺設。 幸好微軟並不能決定一切,Pocketec公司開發的DUSE就為我們提供了在DOS下對USB存儲設備(USB硬碟、軟式磁碟機、光碟)的支持,不過它目前還不支持較一般的USB ThumbDrive(即USB碟)。若要在DOS下驅動USB的USB碟,請使用Motto Hairu驅動程式。另外,如果想在純DOS下使用其它USB設備,如USB滑鼠、USB列印機等,則可以使用其它的USB驅動程式,如USB_Link中的OHCI/UHCI,以及USB4DOS等,均可在本站的「驅動程式」中找到相應的連接,並可在「DOS使用中的一般問題解答(FAQ)」中看到一些DOS下使用USB設備的信息。 DUSE是DOS下的USB存儲設備的驅動程式,目前的最新版本為4.2,是今年剛推出的。它的用法很簡單,可在CONFIG.SYS中載入,也可以用它自帶的DUSELDR.COM程序來實現在DOS指令行下(包括批次處理文件中)的載入。例如在CONFIG.SYS中加上一行:DEVICE=C:\DOS\DUSE.EXE或在DOS指令行下執行DUSELDR C:\DOS\DUSE.EXE均可。 如果要載入的是USB光碟,除載入DUSE驅動程式外,還需執行光碟擴展驅動程式,通常可以使用DOS自帶的MSCDEX.EXE。DUSE的預設光碟設備名是USBCDROM,在DOS指令行下可以像下面這樣執行MSCDEX.EXE: MSCDEX /D:USBCDROM /K 如果要更好地使用和控制DUSE,可以使用它提供的參數,DUSE的執行參數如下表: (說明:以下為它的4.2版的參數,其最新4.4版又增加了EMUIRQ、UBNU、DDWAIT等參數。[]中表示可以省略的,以VER[BOSE]為例,VERBOSE是參數的完整寫法,而VER則

MSI 安裝Mac OS

MSI 安裝MAC OS說明 用硬碟模擬開機光碟來安裝 Vista XP Max OSx 可開機隨身碟製作 製作可開機隨身碟的Clonzilla

格式工廠-MP4轉檔利器

圖片
最近PDA手機上也都開始可以支援MP4格式的影像檔了。不過影像檔格式百百種,每種可能都有對應的轉換器。要同時安裝這麼多種轉換器,及熟悉這些軟體的操作介面,可能也是一件大工程。 而且有許多軟體還是要有版權的呢。 所幸,現在有一套免費且支援各種格式的軟體: Format Factory  

安裝OpenCV--解決foreground_regions變數不見了的問題

圖片
一直有聽說OpenCV是一套免費的開發源碼影像處理函式庫。很想找個機會來試用一下。 最近有點時間了,就去下載了它 for windows 的最新版本 OpenCV 1.1 pre a 。安裝後,發現它裏面就有兩個Visual Studio的方案檔。我選擇先使用Visual Studio 2005。結果一編譯就發生錯誤: 心想說,怎麼這個開發源碼的品質這麼差呢? 就上網查詢了一下,結果發現這方面的資料很少,好像大家用起來都沒這問題似的。不過還是查到了一篇簡體的文章。它的大意是說要去將foreground_regions改為foreground_region,也就是後面不加s。 於是我就去搜尋了一下原始碼,才發現怎麼在檔案中的foreground_regions變成註解了。 原來在CvMemStorage*這後的註解後面的*,可能由於編碼的問題,變成一個問號,造成 foreground_regions變成註解了。難怪錯誤會說找不到這個變數。 而且也難怪其它外國人都沒這個問題。因為他們的編碼都是正確的。當然不會有這種錯誤啦。 解決的方式。當然就是在CvMemStorage這行後面的註解結尾前加上 *囉。 重新編譯後,就成功了。

Google App Engine

今天在看ITHome時,突然看到有個 Google 2008 程式開發日 的相關連結。點進去看時,發現有人提供了 Google 2008程式開發日 的相關資訊,像是演講的錄影等等的。 項目很多,我第一個先選了Google App Engine來看。原來Google為了讓大家能方便地開發網站應用程式,發展出一個平台及配合的程式語言,讓大家可以在這裏快速地開發自己的應用程式。 在演講中,其中有一段是從無到有地產生了一個留言版的網站。更令我佩服的是,那個人打字的速度好快喔。 演講說到後面時,才知道原來Google也提供了免費的平台給一般人去申請,以便可以在這裏放置自己用 Google App Engine 開發出來的網站應用程式。 另外還有一堂演講是有關 進階的Google App Engine程式設計 的。 有興趣的人快去玩玩看囉。

匯錯款怎麼辦

我想經常在網路上進行二手拍賣的人,應該都會害怕匯錯款吧。 今天在電子報中看到一些有關「 匯錯款怎麼辦」 的報導,原來匯錯款,只要經過法院訴訟,還是有機會追回款項的。

安裝Ubuntu

這次安裝Ubuntu算是第三次安裝了。 第一、二次是在NB上的VirtualBox中安裝的。 這次則是在一台舊PC上安裝。它的CPU是Pentium800。 安裝完後,Ubuntu的主選單還是英文的。首先就是要設定好上網的功能,我是使用ADSL上網的,所以查了一下網頁,要利用終端機模式,進入管理者權限中設定。也就是用 sudo pppoeconf 設定好之後,基本上每次重新開機後,就會自動連上ASDL。不過萬一有問題無法連線時,可以用sudo pon dsl-provider來連線。若是要斷線的話,可用sudo poff dsl-provder。 如果不確定目前是否有連線中的話,可以於終端機模式中,輸入ifconfig來確認。正確的話,應該會有pppn(其中n是序號)的連線。

ASP GridView

讓GridView有凍結窗格功能   設定GridView的CSS

GooSync "Demo Expired"

不知怎麼地,最近我的PDA P750一直出問題。現在連免費的GooSync也出現了「Demo Expired」的錯誤,無法上網同步。 一開始還以為GooSync轉性了,開始要收費了。不過還是上他們的網站查了一下。原來,他們自己也知道這個 Demo Expired 的錯誤,開始提供新版的程式供大家下載。 有需要的人, 快去更新囉 。

ASUS P750 昇級128MB RAM

有關中華電信3G上網設定。   有關自己刷ROM   Vista用戶刷ROM前需安裝的軟體 刷ROM步驟   2009/5/4 自從昇級記憶體後,發現問題越來越多。今天因為使用中的電池沒電後,關機並換上另一顆電池。重開機後,就發現開機後執行的速度明顯的變慢了。一直無法理解是什麼原因。原本以為是上次那個記憶卡中毒的問題。試著在重開機時,不插入記憶卡。可是問題還是一樣存在。 後來就再重灌,重新設定。一開始都還很正常。可是只要一重新開機(也就是所謂的冷開機模式),就會再度出現同樣的狀況。在測試很久後,發現,冷開機後一定會有問題。不過,只要再冷開機後,利用暖開機的方式(就是所謂的撮屁屁模式),之後就一切正常了。   2009/5/4  背光自動亮起 也是在昇級記憶體後,發現怎麼有事沒事P750就自動亮起來。一開始以為是昇級記憶體的後遺症,後來又想說會不會是安裝了SPB Mobile Shell 3.0的問題。沒想到今天到Mobile01上逛時,發現有人說原來這是一個原廠的問題,需要去ASUS網站下載 背光模組自動亮起修正檔 來修正。 不過原PO中的連結網址有誤,可由此下載 背光模組自動亮起修正檔 。

買Solution,還是買Package

乍看之下,Solution跟Package看起來好像是很類似的東西,不過在「 您買的是一個Solution或是Package」 這篇文章中,一位有多年經驗的IT人員利用實際的例子為我們解釋了這兩個名詞的差異。 看過之後,才能真正地體會出這兩者的差異所在。

IT人員的特質:耐操、耐罵、愛溝通

最近在網路上看到一篇在分享 有關IT人員該有的特質 的文章,作者是某醫院的資訊單位主管,他從事IT工作已有25年的經驗。在這麼多年的經驗累積下,得到的一個心得就是: IT人員的特質:耐操、耐罵、愛溝通 。 看了之後,真的是非常有同感。想想自己在IT工作中,這些年來,不就是符合上述的寫照嗎?

.NET 應用程式設定檔

在.NET 2.0開始,每個應用程式都可以有一份對應的設定檔。這份設定檔是以XML格式撰寫的。在程式中可以直接讀取這份設定檔,在預設格式下,.NET會自動剖析設定檔的內容,程式中可輕易地取用到其中的設定值。 這篇 有關.NET設定檔 的一系列文章可供有興趣的人參考一下。 不過,在讀取設定檔時,基本上一定要跟應用程式的名稱相同。例如應用程式名稱為MyApp.exe的話,那設定檔就必須是MyApp.exe.config。這樣的話,.NET才能剖析其中的內容。否則就算是內容一樣,只是改個名稱,並利用ConfigureManager.OpenExeConfiguration()函式,帶入指定的檔案名稱來開啟設定檔的話,.NET就是不會幫你進行剖析。 網路上還有人說 .NET設定檔模組存在一個Bug 。

Excel2007中如何使用增益集

圖片
今天有需要將一個原本來Excel2000中使用的增益集加到現在的Excel2007中。一開始還真不知如何加入。因為在上方工具列中找不到任何相關的項目。 後來查了一下 微軟網站 ,雖然有大約的說明,可是一時還真是看不太懂。不過,算是給了我一些指引。就在誤打誤揰下,終於是讓我試出來了。 1. 首先就是在Excel中(或是其它Office軟體 Work、Outlook等)的左上方的Office圖示上按下右鍵。說真的這還是我第一次知道那個圖示原來還有其它功能的耶。進入下方的「Excel選項」。 2. 在「增益集」中,選取要使用的項目。一開始這個項目可能是位於下方「非使用中應用程式增益集」。選取後按下下方「執行」。 3.接著會出睍引用的視窗,勾選要使用的增益集就可以了。

SandCastle -- .NET說明文件產生器

原本用來產生.NET說明文件的開放源碼 NDoc因為原作者已不再進行維護,所以少了一項可用來產生.NET說明文件的工具。所幸的是,微軟本身出了一套用來產生.NET說明文件的工具--SandCastle。 有興趣的人可以到微軟網站下載 SandCastle 來使用,若有需要說明的話,可以參考這篇 SandCastle說明網站 。

RUN! PC有網站了

今天在逛天瓏的網站時,發現它的側邊有一個 RUN!PC 的連結,於是就順手點進去看了一下。 哇!竟然就連到RUN!PC的網站了。 為何我會這麼驚喜呢?因為RUN!PC這本雜誌由我讀大學時就看時接觸了。有時會發現它裏有的一些技術文章都寫得很不錯,所以就會想要買一本回家。可是久了呢,家裏的雜誌就開始佔據許多空間。不得已就只好每隔一陣子就丟棄一些舊雜誌。 其實那時心裏就在想,為何這樣的一本雜誌沒有自己的網站來放置這些文章,以及提供相關的程式碼讓讀者下載呢? 沒想到,這個心願在今天總算是看到RUN!PC幫我完成了,它有了自己的網站了。 這不只是讀者的福氣,也是一些原本沒買這本雜誌的網友的福氣,因為現在在網站上就可以看到一些不錯的舊文章了。

圖庫素材網站

最近因為專案的需要,要找一些可以用的素材圖片。上網一找,倒是找到一個不錯的 圖庫素材網站 。 製作圓角區塊 。   不錯的網頁編輯工具: 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以外的播放器播放? 選中媒體文件→右鍵菜單→打開方式→

VirtualBox昇級

自從使用VirtualBox後,先後安裝了兩個作業系統,一個是Linux Mandriva 2009,另一個是Vista。Mandriva是用來學Linux用的。而Vista呢,則是用來進行一些測試用的。 最近,每次使用VirtualBox時,它總是會提醒說有新的版本可以下載來進行更新。可是,我上網站看了一下,結果都沒有提到如何昇級的部份。在網路上又搜尋不到其它的說明,就這樣一直使用舊的版本。 今天,終於是忍不住了,就下載新的版本下來。想說如果沒有特別說明的話,那應該就是先解除舊版的安裝,再安裝新版的吧。其它部份的設定,大不了就重新設定好了。於是就進行這樣的昇級。 結果,一切正常。而且新版本還可以沿用舊的設定值,我想應該是解除前一版本時沒有將設定值給清除吧。而且,舊的作業系統檔也都自動被轉換成新版本了。

const_cast的應用

話說我正在處理一個小程式時,需要用CListCtrl來顯示資料。此時我有一個函式: void ShowOnListCtrl( const cLocation a_Location ) {       ...       LVITEM Item;       ...       Item.pszText = a_Location.m_Name; // m_Name的型別為CString } 很直覺的,我就寫出了上面的程式碼。結果,一編譯就錯了。 我的專案使用的是UNICODE,所以Item.pszText的型別為LPWSTR。於是我想說那改成這樣應該可以吧: Item.pszText = (TCHAR *)a_Location.m_Name.GetBuffer(); 結果還是錯。來來回回試了好幾次,最後才發現,原來a_Location是個const修飾的變數,所以無法直接將它的內容指派給一個非const的變數。而且,我本來是想說用static_cast()會reinterpret_cast()的方式來處理,不過都還是錯誤。因為前提就是a_Location就是個const的變數。 最後還是得解決const這個問題。所以就找到const_cast()這個巨集。有了const_cast(),我又改為下面的寫法:   Item.pszText = const_cast<cLocation>( a_Location ).m_Name; 還是錯!原來const_cast沒辦法轉換非指標的變數,所以只能以如下的方式來寫了:  Item.pszText = (const_cast<cLocation *>( &a_Location))->m_Name; 終於可以編譯成功了。 這次用到了我以前都沒有用過的const_cast巨集,而且它竟然只能針對指標來運作,而無法套用於非指標變數中。真是又學了一招。

UNICODE環境下使用STL

最近在處理一個小程式時,發現以往寫的小工具類別程式碼,因為都是基於多位元組字組的方式開發的,所以在使用STL時,也都直接使用多字元組字集(MBCS)的函式。 這些程式碼在引用到用新的V S2008(或VS2005)上面時,因為新專案一開始就預設是使用UNICODE了,所以一編譯起來就出現一堆的錯誤。 為了改正這些錯誤,並且讓舊程式碼也能在舊程式中正常編譯,就必須使用一些小技巧。 目前己知的錯誤大都是: string在UNICODE環境中,要改為wstring ifstream 在UNICODE環境中,要改為wifstream 為了能通用於所有環境,我是寫了一個小的標頭檔,在這個標頭檔中會依目前是否有定義巨集UNICODE 或 _UNICODE來決定要使用string / wstring 大致上的內容如下: #pragma once #include <string> using namespace std; #if defined( _UNICODE )  || defined( UNICODE ) typedef wstring STLString; typedef wifstream tifstream; #else typedef string STLString; typedef ifstream tifstream; #endif   不過,使用這個標頭檔的話,還是得要將舊程式碼中的string改為STLString才行。大部份舊程式就不用改了,那新的程式可能就是要養成習慣都使用通用的類別名稱STLString(之類的) 在CodeProject中也有找到類似的資料, 可參考一下 。

製作自已的徽章

無聊在網路上看文章,發現竟然有個網站可以該你 製作自己的徽章 。還蠻好玩的。

MFC Button使用PNG圖示

最近在寫個小程式時,突然想要在MFC的CButton按鈕物件中顯示一個PNG圖示。所以就在網路上搜尋了一下,發現有 篇文章 有提供一個已開發好的新類別來完成這項功能。

C# 非同步函式呼叫

最近在CodeProject看到一篇文章,在討論C#中的非同步函式呼叫( Asynchrous Method Invoke )。這篇文章中對BeginInvoke()/EndInvoke()的非同步呼叫說明的非常詳細,而且也用了很多程式碼範例來輔助說明。 其中它有證明說在使用BeginInvoke()這種非同步函式呼叫方式時,它當然會需要使用到執行緖,所以它會用到的就是C#中的ThreadPool。要確認目前執行的程式碼是否在ThreadPool的執行緒中執行的話,可以用: Thread.CurrentThread.IsThreadPoolThread 這個屬性來確認。 使用ThreadPool當然有它的好處,因為它可以限制同一時間最多只會使用到某一定量的執行緒。這樣就不會因為同時間有太多的執行緒在執行,造成CPU秏費過多的時間在執行緒間進行切換(ContextSwitch)。 不過,使用ThreadPool的執行緒時,要小心一點,就是不要一直佔用執行緒不放。例如有一項工作會等到預訂的時間才開始進行的話,那一般就會用Thread.Sleep()一段時間後,再接續執行。而在Thread.Sleep()時,CPU的執行時間雖然會被切換給其它執行緒來執行。可是您用來Sleep()等待的執行緒此時也被您給佔住了。造成ThreadPool中可用的執行緒就會少一個。 這種情形一多的話,說不定就會用光ThreadPool中的執行緒,而造成後續的工作都無法處理。

雲端運算-將控制權交給別人

雲端運算原來就是將一些原本要在個人主機上運算的工作,透過網路交由廠商的伺服器來進行運算。這些廠商可能是像Google、微軟等大型廠商,可提供大量的運算能力。 可是這樣一來就表示您必須將資料交給別人來進行處理,而且運算上也都是「看別人」的臉色。等於將控制權也交給了別人。這樣看來,好像也不太好。哈。 參考資料: http://www.zdnet.com.tw/news/software/0,2000085678,20132147,00.htm

雲端運算跟Azure

自從Google提出「雲端運算」的概念後,這個名詞就一路流行了起來。其實本質上來看,雲端運算就像是以前提過的一個概念:「分散式運算」一樣。應該是將工作折解成數項工作,再分散給不同的伺服器來進行運算。 微軟最近也開始提出一套類似雲端運算的架構供程式開發人員使用。名稱叫作Azure。以下是 一篇不錯的介紹 ,如果有需要SDK的話,可到這 下載 。不過,感覺上好像使用Azure SDK開發的應用程式要在執行Azure作業系統上執行。當然目前微軟是提供免費的Azure平台給大家使用。不過等到技術成熟時就要開始收費了。 說到分散式運算,其實應該也可以用其它方式來達成吧。看網路上有人說 BOINC 是目前最好用的一套分散式運算作業系統。有興趣的人可以去玩看看囉。另外,分散式運算也有 討論區 喔。 如果你想要使用BOINC參加柏克萊大學無線電波望遠鏡的訊號處理計畫,提供您的電腦運算能力幫他們計算的話,可參考 這篇文章 。

便宜的防毒軟體-avast 三年版,二人授權

最近在Mobile01看到有人分享說最近 avast! Profession Edition,3年版、2人授權只要NT3704元 。算算每人/每年只要617元。 avast!算是一套不錯的防毒軟體。以前使用Norton時,有一陣子有個些毒都無法掃出。後來,看到有人說avast!有免費版,就去申請了一年的授權。安裝後,它第一次會在開機時進行掃毒。這時就會將一些毒給掃出來。這是Norton無法做到的。所以後來有一陣子就都用avast!而不用Norton了。 現在avast!有便宜的版本了,有興趣的人可以去試試。至於我,因為前陣子有人說7-11在買的PCDIY有搭售Norton 2009,只要一本雜誌的費用。等於Norton 2009是免費的,所以現在就先用Norton一年再說囉。

PHP之父談網站程式開發

最近在iTHome上看到一篇專欄,在介紹PHP之父Rasmus Lerdorf談論他的 開發秘訣 。雖然他主要談論的都是有關網站應用程式的開發,不過,從這篇文章中大致上也可以學到一些一般應用程式開發的概念。 不要使用開發框架 他提到一點就是開發時不要套用開發框架。因為一般的開發框架大多會有一些限制存在。當然如果你要開發應用程式的原型的話,那倒是可以套用開發框架,因為這樣開發的速度比較快。當您要正式開發時,這時就只要擷取開發框架中的優點來套用,再加上自己針對本身要開發之應用程式的需求規劃出來的架構來開發,會比完全套用開發框架來得好。 規劃未來的擴充性不要超過半年 「當你無法預測未來,你就無法幫未來作決定。」這段是文章中Rasmus Lerdorf所提到的。我本身也有同感。因為未來的需求實在太不確定了。變化一直在發生,再如何詳儘的規劃都趕不上變化的。所以預先規劃是要,但是只要預想半年後的需要就好了。

PDA畫面擷取工具-MyMobile

最近想要來擷取一下PDA上的畫面,所以就到Google上查了一下。在 Mobile01中是有一篇不錯的介紹 ,不過裏面介紹的工具,有些都是要註冊費的。另外一點就是這些工具大部份都是要在PDA上進行畫面的擷取。在操作上就有點不太方便。 於是就另外再查了幾篇文章,最後發現有人介紹一套免費的擷取畫面工具-- MyMobile 。 其實MyMobile這套軟體本質上是用來在PC端操作PDA用的,在操作的過程中,還可以將過程錄影下來。可以錄影的話,當然也就可以擷取畫面囉。所擷取的畫面還可以儲存成多種格式,像是BMP、PNG 、JPG等。 整體用起來算是不錯的畫面擷取工具。有需要的人也可以試用一下。 以下是MyMobile的基本資料: MY MOBILER v1.23 (06/15/2008) - FREEWARE View your mobile screen on your desktop. Control your mobile by using desktop keyboard and mouse. Copy/Cut/Paste text between mobile and desktop. Capture mobile screen. Drag and drop files to your mobile. Support ActiveSync / IP Connection Support Mobile Explorer (File Browse) DOWNLOAD Download MyMobiler v1.23 (PC Install) Download MyMobiler v1.23 (ZIP file) Support Windows Mobile 2003 Support Windows Mobile 5.0 / 6.0

分析統計你的部落格(Google Analytic)

圖片
如果您有興趣知道您的部落格的一些統計資料,像是每日造訪人數、來源等等的話。那您可以試試 Google Analytic 。 當您在Google Analytic申請好帳號(也可以用GMail的帳號)後,就可以註冊數個網站的分析設定。註冊過程中,Google Analytic會給您一段script,讓您加入到您的網站中,以便進行統計。 這段script要加在每個網頁中。因為每個人的網站都不一樣,所以要加的地方也不同。通常這段script要加在網頁的</Body>之前。所以您可能要想一下看您的網站中,如何設定才能讓每份網頁都含有這段script。當然最好不要是一份份網頁檔案都去加。這樣太沒效率,而且如果有新的網頁出現,那您不是要再加一次嗎! 就拿WordPress為例。可以在您使用的theme(主題)中,找到footer.php。這是一個.php檔,一般會放在主題的目錄中,不過,也有可能會放在主題目錄下的子目錄中。所以您可能要自行找一下了。找到之後,確認一下是否有</Body>這個標籤,有的話,就可以加入了。 加入之後,可能要過個20-30分鐘,Google Analytic才能開始統計。統計設定生效後,應該可以看到如下圖中的「狀態」一欄是勾選的狀態:   [caption id="" align="alignnone" width="600" caption="GoogleAnalytic"] [/caption] 如果你更換了主題,需要重新知道如何取得你原先加入的那段分析用的程式碼的話,可參考 Google Analytic的說明 。

為你的WordPress找個好「圖床」

過年前去逛了一下書店,正好看到「 WordPress部落格架設與經營:站長親授的十堂課 」這本書。想說過年應該有點時間來看書,就買了一本回家看。 書中有許多位用WordPress架站的站長分享了許多有關利用WordPress架站的經驗。其中就有一小部份是提到要為你的網站找一個好的「圖床」。什麼叫作「圖床」呢?在撰寫部落格的文章時,多多少少都會用到圖片。有些人用來架站的伺服器因為是免費的,所以流量上以及下載速度上可能都會受到限制。所以可以將所需的圖片上傳到另外一個容量比較大、速度較快的網站。再由部落格文章中提供連結連到這張圖片中。這樣這個放置圖片的網站就好像是你的「圖庫」一樣,而書中的作者則稱之為「圖床」。 這樣做還有另一個好處,就是可以為您的圖片進行備份。以免主機損毀時圖片也不見了。 目前能做為圖床的其它部落格好像也不多,在 這篇文章 中,作者也分享了數個他測試過可以用來提供圖片外連功能的部落格。

雜誌下載、雜誌製作

大家最常用網路做的事之一應該是下載了。相信每個人都會由網路上去下載一些自己想要的資料。至於下載什麼呢,那就因人而異囉 ^_^ 開始放年假的第一天,一整天沒事就在網路上逛,逛著逛著,沒想到看到一個討論區中有提供一些市面上出版的雜誌讓人家下載。想說反正過年可能也沒事,加上天氣又不是很好,在家渡過年假的時間可能也不短。不如就下載一些雜誌來打發時間好了。 下載當然是很方便的啦。只要有人上傳到網路硬碟中,再轉貼網址供人下載就好了。不過,在下載的同時,突然想到,過年到了,要大掃除了。有些過期的雜誌,當然就是要清一清丟掉囉。可是其中有些資料又想要將它留下來。看到網路上大家在分享雜誌,突然想到說那我是不是也可以將這些過期的雜誌製作成PDF檔來保存呢。 有了這個想法,當然就是要想看看別人是如何完成的。將雜誌掃描成一頁頁的圖檔當然是再容易不過的。不過怎樣才能將這麼多頁的圖檔製作成一本,或是一個PDF檔呢? 這時當然就要請出G大神了。問了一下G大神,發現有一套免費的軟體 Scan2PDF 可以達到這樣的目的。所以就下載來試看看囉。

將網頁內容存成PDF檔

對於經常在網路上瀏覽找尋資料的人而言,當找到一份覺得不錯的資料時,一般的作法就是將它加入到書籤中來保存。下次如果有需要時,就開啟書籤來瀏覽。 另一種作法就是將它儲存下來,這種作法就是將網頁的內容下載下來保存,好處就是可以進行離線瀏覽,不用連上網路,就能閱讀資料的內容。缺點就是各家的保存方式不同,而且有的是網頁跟內部的影像檔分開儲存。如果誤砍了其中一部份,那剩下的可能也就無法瀏覽了。 目前我的作法就是將這些網頁資料「列印」成PDF檔來保存。一方面這樣列印出來的就是一份資料,所有的內容都在一個檔案裏面。不會散落各地。另一方面就是PDF也能獨立瀏覽,不用連上線路。再者有很多免費的PDF列印工具,安裝之後就可以新增一台虛擬的印表機,將資料輸出到這部虛擬印表機,就能產生一份PDF檔案了。這種保存方式真的不錯。在此提供給大家參考。

離線編輯軟體Zoundry中文化

由書中看到原來還有WordPress可用的離線編輯軟體 Zoundry ,當然二話不說下載下來用囉。 不過,一開始它是沒有中文化的。所以又到網路上找了一些中文化的資料。在 這個網站 下載到正常的中文化檔案,更新後,果然是有中文了。 不過,如果WordPress要能支援Zoundry的話,還必須利用管理員的身份,到設定中,將xml-rpc功能開啟才行。

Google瀏覽器不支援Yahoo Blog

繼上次發現Google新瀏覽器可以支援WordPress後,原本以為從此之後就可以改用這個瀏覽器了,沒想到在Yahoo Blog上,又發現它不支援Yahoo Blog的文章編輯介面。 唉! 看來大家還是以IE為主了。

Google瀏覽器支援WordPress

自從發現Firefox有點不太支援WordPress後,就只好改用IE了。後來發現Google的瀏覽器開始可以下載正式版了,就去下載並安裝。 一安裝完,就開始試WordPress。太好了,它可以支援WordPress。也就是在編輯文章時,若要插入一段URL連結時,它是可以正常運作的。

C# 使用DDE

DDE是一套很古老的架構了,在Window 3.1時間就開始推出。主要是讓Window系統中不同的應用程式間能互相交換資料用的一套通訊協定。 在C#之後,要實作這套架構就比較困難了。因為DDE走的就是Windows底層的Win32 API方式,主要都是透過windows訊息接收的方式來進行資料的傳遞。而在C#中要用到這些unmanaged程式碼的話,通常就是要處理許多的P/Invoke相關事項。像是函式的呼叫,準備所要傳送的資料等等的。這些應該是使用C#的程式設計人員最不想碰觸的了。 幸好在網路上有一套免費的開放資料函式庫,可以讓C#的程式設計人員輕易地使用DDE通訊協定來跟其它提供DDE通訊協定的程式進行溝通。這最函式庫就是 NDe 。有興趣的人可以試用一下囉。 這裏有篇文章有大致上的說明,可 參考一下 。

WordPress不太支援Firefox

目前發現在firefox中使用WordPress時,如果要為文章加入一段連結URL時,都會無法加入。雖然只要選取要加入的字串,再按下文章編輯畫面上的工具列中的加入連結按鈕,加入連結的編輯視窗會正常出現,也都可以正常地填寫,但是在最後要按下確認的按鈕時,就會失效。按鈕按下後沒有任何反應。 唉!還是只能乖乖地用IE了。

15本物件導向必讀書摘

最近又去逛了一下許久沒去逛的網站 - iThone Online。發現它有一個單元。:IT書訊。想到最近很少在讀書了,就順手就點了一下。看看是否有一些不錯的書可以讀的。 發現其中有一個單元是介紹一些學習物件導向概念的人會需要讀的幾本算是 必讀書籍 。中英文都有。有興趣的人可以去看看,讀過其中幾本後,想必一定也能加強您的物件導向概念的。

WordPress 2.6 昇級 2.7

不久前上WordPress時,就一直看到提示說有新版本2.7出來了,請我要去更新。 老實說,因為跟WordPress還不是很熟,好不容易將2.6版弄上去了,現在一下要我昇級到2.7還真的有些怕怕的。 今天,因為有點空閒的時間,所以就想來試試看是不是可以昇級。一開始還在想找一些如何昇級的說明,結果WordPress網站中都沒有看到相關的說明。 最好,只好先下載新版下來再說了。於是就將2.7版下載下來,並解開。才發現,原來裏面有一份讀我文件,有說明如何昇級。 其實昇級的步驟算簡單的,就是先備份舊版本,再將新版本上載到網站中,並執行wp-admin中的upgrade.php。看起來很簡單,可是我昇級起來還真是有點複雜。 我的作法是,仍舊保留舊版的。只是先將新版本上載到網站中,並給它一個新的目錄名稱。一開始我給的目錄名稱第一個字母是大寫的,結果還一度無法正常進入新版本。後來改為小寫字母就好了。這可能是我網頁主機本身的限制吧。 接著,我就執行wp-admin中的upgrade.php。一開始也是無法執行,它說我沒有wp-config.php。問我是否要新設定一份。我就去查一下舊網站,發現有一份wp-config。所以我就將它複製到新網站中。這樣就可以正常執行upgrade.php了。 在upgrade.php中有出現英文的昇級指示,依它的指示按下昇級好像就好了。不過,它昇級完後,好像會回到我的舊網址。後來我想可能是因為舊網站中,有寫說我的網址是xxxx,所以它預設會回到那個網址。這時,我就將新舊網站的目錄對調。再執行昇級後,就可以正常地進入到管理介面了。 不過,當我要看新網頁時,發現是一片空白。這時才想到可能是我沒有放我的主題吧。於是就到管理頁面中,將主題設回wordPress預設的主題。這樣就可以進入到新的網站了。 最後就是將我想要的主題,以及中文化的檔案上傳到新網站中。到此算是昇級完畢了。 不過我是在錯誤中試出來的方式。如果有人要昇級的話,我會建議: 1.先建一個新目錄,將新版本上傳 2.將舊網站的設定檔複製到新網站 3.將中文化檔案及主題複製到新網站 4.對調新舊網站的目錄名稱 5.執行新網站中的wp-admin/upgrade.php 6.昇級完成!!