在奇摩新聞逛到的有趣新聞…
看了半天,老實說,我真的不知道他在講什麼 Game…
MSI Robot
dotLucene(3)
為了要測知添加/刪除的效能,稍微寫了一些程式來測試.
結果還算令人滿意.
添加與刪除每種各測 10 次.
平均起來,添加只花了約一秒左右.
而刪除只花了約 0.015 秒.
算是很快的了.
測試的程序我想就不用貼上來了.
這一陣子也發現了不錯的系列文章
順便一併貼上來.
dotLucene 系列文章
白斬雞
從某電子報上剪貼下來的……還沒試過…
畢竟買一隻雞對一個小家庭來說,可能會需要蠻多時間來消化…
說明
白斬雞的作法,作料不多,能使雞體吸收的熱由外透裡,保存雞體內脂肪,所以能保存雞肉的自然風味。烹煮時可以用竹筷子插進肉質較厚的雞胸或雞腿部位,不滲出血水即為全熟。
白斬雞不但開脾健胃,還有維持神經系統健康、消除煩躁不安的功效。因為雞肉能提供我們所需的維生素B12,可以預防貧血、幫助食慾、提升睡眠品質;另外雞肉能提供礦物質硒(Se),具有提振情緒的好處。
材料
鮮雞 1 隻
蔥 2 條
薑蓉 1 湯匙
調味份量
鹽 1 茶匙
酒 1 湯匙
糖半茶匙
醬油半茶匙
作法
- 清洗雞的內腔後,以半湯匙鹽抹勻雞的表面及內腔,醃約十分鐘。
- 雞表面及內腔均抹上調味料。把蔥條及薑放進雞內腔
- 把雞放在一鍋滾水上,隔水蒸約二十五分鐘。
- 把雞沖冰水,令雞皮爽脆,待雞涼後,斬件上碟。
DataSet and xml
Export DataSet to XML 的方法:
StreamWriter xmlSW = new StreamWriter(“test.xml”, false, Encoding.Default );
ds.WriteXml(xmlSW, XmlWriteMode.WriteSchema);
xmlSW.Close();
第一行很重要,你得指定 encoding, 否則如果資料編碼不對,xml裡面的字就會顯示不出來.
所以如果你的當地編碼是 big5, 而且你的資料庫資料的編碼也是 big5, 那麼你應該使用 Encoding.Default.
Import DataSet from XML 的方法:
StreamReader xmlSR = new StreamReader( fileName, Encoding.Default );
ds.ReadXml( xmlSR, XmlReadMode.ReadSchema );
xmlSR.Close();
同理可證,你怎麼寫出去,就怎麼讀回來,這樣資料的編碼才不會有問題…
這我試了快兩個小時… =_=”
居然沒發現到 Encoding 有個 Default 的屬性,害我用 Encoding.ASCII 在那邊試半天…
Duff’s Device
在國二菜鳥忙裡偷閒看到這篇Duff’s Device.
這段 code, 真的很神奇
register n = (count + 7) / 8; /* count > 0 assumed */
switch (count % 8)
{
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (–n > 0);
}
不過我必須承認,在看了它提供的參考網址以後,我不知道這段 code 在幹麼….
參考網址:
UI/worker thread
為了要解決進度顯示的問題,上 MSDN 找了一下,果然得到圓滿答覆.
請直接參考這幾篇吧…
- Safe, Simple Multithreading in Windows Forms, Part 1
- Safe, Simple Multithreading in Windows Forms, Part 2
- Safe, Simple Multithreading in Windows Forms, Part 3
- Give Your .NET-based Application a Fast and Responsive UI with Multiple Threads
簡單說明一下,主要是應用 .Net framework 本身就提供的架構,呼叫 Control 的 BeginInvoke() 去調用自己的 delegate 來幫你畫 UI, 以避免因為訊息繁忙而來不及更新畫面的問題.
如果要讓它可以被 cancel, 那麼,可以再配合 Event 來達到這個目的.
Cancel 的部份,我後來沒有用 Event 來做,這是我比較偷懶的地方.
對這方面如果還需要更詳細的了解,可以參考侯捷的Win32多緒程式設計.
不過這本書好像絕版了?!
dotLucene(2)
其實,依照 dotLucene 網站所提供的 Tutorial,就已經蠻足夠的了.不過我還是同時參考了源碼裡所附的 Demo.
這邊我就只寫出跟 Tutorial / Demo 不同的地方…
1.在 Document 部分,我參考了 Demo 的寫法, 另外寫了一個 FileDocument, 來產生 IndexWriter 所需要的 Document 類別.
public class FileDocument
{
public static Document Document( string title, string content)
{
// make a new, empty document
Document doc = new Document();
// Add necessary fields
// 這邊要 tokenized, 為了中文…
doc.Add( new Field(“title”, title, Field.Store.YES, Field.Index.TOKENIZED));
// Add the contents of the file to a field named “contents”.
// 原來是用 stream reader 來把整個檔案內容讀進來
// 這邊改成只把欄位資料放進去.
doc.Add( new Field(“contents”, content, Field.Store.YES, Field.Index.TOKENIZED));
// return the document
return doc;
}
private FileDocument()
{
}
2. 我把原來的 QueryParser 改成 MultiFieldQueryParser, 因為我想同時搜索主旨與內容.
string[] fields = { “title”, “contents” };
Query query = MultiFieldQueryParser.Parse( txtQueryString.Text, fields, analyzer );
Hits hits = searcher.Search(query);
大致上就這樣子…
我之後想搞一個進度顯示,讓使用者不會覺得太慢,不過怎麼樣都不行.
這應該就要應用所謂的 UI/worker thread 的技術了吧…
真的是對 Windows form.Net 太不熟了…
這再慢慢摸索吧…
dotLucene(1)
上星期逛網路的時候,不小心讓我給逛到 Lucene
*Lucene:基于Java的全文检索引擎简介
*DotLucene:37行代码实现全文搜索
*DotLucene: Full-Text Search for Your Intranet or Website using 37 Lines of Code
雖然以前就大略知道 Lucene, 但卻搞不太清楚他是幹麼的,逛完這幾篇之後,才知道是幹麼的.
於是就很想應用在紅狐論壇上.
上面的文章都是很不錯的入門文章,但是在我一開始投入的時候,的確讓我有很多困擾:
1.例子多半都是用 File / Directory 當作範例,真的可以用來搜索資料庫嗎?
2.又資料庫本身就有不錯的全文檢索,那麼,還需要這個嗎??
3.DotLuceneFbDirectory: DotLucene Index Storage for Firebird 這篇文章說可以拿 Firebird database 當作 storage, 那麼,我需要參考這篇文章這麼作嗎??
想了兩三天,也仔細看了兩三天…
1. 的確可以, dotLucene 有提供 Document 類別,而此類別可以讓你自由添加 Field 進去,所以我可以直接添加 Table 裡的某些欄位進去. 在 asp.net 上應用時,我可以參考這些我自定的欄位來產生網址,讓使用者可以直接點選網址進入.
2. 像 Microsoft SQL server 的確有提供全文檢索功能,可是據說很費效能. dotLucene 還不錯,搜索的時候速度蠻快的,也沒花什麼資源(用工作管理員觀察),不過這部分還需要詳細的實驗才知道.
3. 仔細看完這篇文章以後,才發現,雖然可以利用 database 當作 storage,可是並不建議,因為效能不高. 可惜的是文章內容並沒有提供效能評比,無法作進一步的比較.
在整個考量以後,決定先以紅狐所提供的論壇資料作為一個練習,也可以順便作一些實驗.
關於台中欣晃大火的新聞
今天早上看新聞的時候,看到記者與環保署的對話,不禁讓我捧腹大笑…
場景是在河邊,因為大火的關係,所以河水顏色變了,也有許多滅火器的泡沫.
記者:”請問這樣會不會對環境造成影響??” ( 錯誤的第一句話 )
環保署人員:”……..”
環保署人員:”你說呢??”
這真是讓我肚皮快笑破了,不過我老婆覺得沒啥好笑的….
這次台中大火,媒體說可能會很嚴重,不過依據一些報告指出,汙染已經擴散出去了.
詳情可以參考這個blog氣象達人 WeatherMan:
還好汙染已經擴散出去了
環保署協助台中市工業區大火
台中爆炸大火的空氣品質擴散情形