在平時開發的過程中,經常會查找一些資料,從網上下載一些網頁,壓縮格式文件到自己的電腦中,然后閱讀。程序有別于其他行業的一個特征是,所有的資料,數據,壓縮文件,只用于產生可以工作的代碼,這才算達到目的,解決問題。再漂亮的文檔,源代碼,如果沒有解決問題,產生代碼,這樣的搜索也是失敗。一般在解決問題之后,這些文章,也遺落在硬盤里面,像下面的文件這樣
從技術的角度,來看圖中的文件,我是在以下幾個問題的解決方法:設置VSS2005使支持通過Internet訪問。可是一不小心,看到有用的資料,比如電子書《喬布斯傳——神一樣的傳奇》,也順便把他們下載到了硬盤中。隨著時間的積累,這樣的文檔形式,技術和非技術的文件會越來越多,而自己通常很懶惰,不想去仔細的把他們整理到一起。
在剛開始參加工作的時候,遇到好的技術資料,會用EverNote軟件,規范的整理好
這個動作是需要花時間和耐心,我承認隨著工作年限的變長,這方面的激情越來越缺乏。
?
再來看另一種形式的數據,片段式的數據,格式因數據源的不同有差異,請看下圖
這是博客園網站上人才招聘的一則信息,這則信息的要點是,公司名稱,職位描述,技術要求,聯系方式。通常在上網之后,會把這個網頁存到本地硬盤中,以方便查找。隨著時間的積累,這樣的文檔也越來越多。這個例子解釋的是,對于零散的,片段式的數據,也需要一種方式整理到一起,以方便查看。
來設計一下找工作的場景,以增加對片段式數據的理解。打開已經設計好的應用程序,運行它,應用程序會自動在人才網站(中華英才網,無憂人才)中搜索合適的公司信息,并且把它存到本機數據庫中,大約一杯咖啡的時間,再用寫好的程序從本機數據庫中讀取工作數據,根據情況,適當的發送簡歷或是打電話。如果還想對公司的情況進行判斷,比如我想查一下這個公司的信用記錄,是否被網友曾經很嚴厲的批評過,借助于IT公司速查數據庫系統,可以看到這個公司的評價。以這樣的情景來找工作,找到合適的機率會高一些。記住,這里面所指的程序,都是已經寫好的程序,不需要開程序語言和編譯器,這些程序會在后面的章節中展現出來。
?
互聯網時代,訂閱RSS聚合數據,是一種簡單方便的搜集資料的方法。我選擇Greate News作為RSS聚合軟件
Greate News有一個非常優秀的地方是,它的數據庫系統是Sql Lite,也就是說,可以用它作為RSS訂閱工具,然后再用代碼,讀取它的有數據庫文件到我的文檔管理系統中。本來是要完全寫一個RSS聚合軟件的,雖然不難,但是要做到穩定,好用也不容易,當我發現Greate News的數據庫類型時,欣喜若狂。這也讓我的知識管理系統,多了一層數據來源,RSS聚合數據。Web 2.0這個名詞已經很老了,得到實實在在的技術創新的好處,我看到的就是RSS。
?
再看別外一種情況,在網頁中瀏覽數據,請看下面的圖片
這是MSN中國的一篇文章,《中國式金融壟斷——致溫州中小企業“跑路潮”》,我覺得這幾個原因分析的不錯,于是有Ctrl+C的沖動,但是,這要求我必要開Word或是WordPad文字處理軟件,來保存這一段文件,而且還要給出文件名,保存到硬盤中,時間一長,就又回到了第一種情景,大量的文章,技術,非技術的,片段式的,夾雜在一起。于是,我想到網上有一種專門從網頁中拷貝數據,然后進入到自定義的程序中。對頭,我就是要造出這個程序來,選中需要的文件,點熱鍵,然后這個片段文字,溫州老板“跑路”內部原因,就進入到了我的數據庫系統中。
?
整理一下,到現在為止,已經提到了三種場景
- 本地文件,需要導入到本機數據庫系統中,以方便查找,編輯。
- 網頁數據,不帶格式,一小段數據,需要保存到本機數據庫系統中
- 網頁數據,帶格式,比如上面提到的找工作的情形,需要有公司簡介,職位要求,聯系方式,是格式化的數據
- RSS 聚合數據源 以Sql Lite數據庫格式存在
對于本地文件,擴展一下上面的認識和理解,需要對本機文件系統中的任何格式的文件,掃描然后導入到數據庫系統中。經常遇到的doc/docx,pdf,pst/ost/eml,htm/mht,txt/rtf,應用程序可以讀取這些格式,并導入到數據庫中。
這里要提出兩點差異化的內容,按照是否可以對數據庫中的文檔進行編輯,劃分出兩類的文檔管理系統。一種是只能Viewer,只能查看,不能進行編輯,另一種則可以編輯文檔。很明顯,我這里是掃描文件進入系統,肯定有很多不需要或是雜亂的內容,肯定需要Edit功能。另外,文檔數據庫系統,一種形式是把文件放在原始的地方,在數據庫中中予以引用,另一種是直接把文件存到數據庫中,拷貝數據庫,就可以完成數據庫系統的部署,對于這兩者的選擇,肯定后者優于前者,比如我要共享我的開發文檔給同事,我只需要把我的數據庫文件mdf/ldf拷貝給同事就可以,而不需要再對我的電腦進行任何形式的共享。
?
當把文檔保存到數據庫中后,要在海量的數據庫中查找需要的內容,肯定需要搜索功能。數據庫選擇SQL Server 2005,這樣優秀的數據庫系統,平時我們都用來存采購單,銷售單,在這個知識管理系統中,我用來保存文檔,這個文檔可以是任何格式的。因為SQL Server 內置了全文搜索,所以保存為varbinary(max)格式。在Google中找到的精準的描述是:Store the document in a varbinary instead,not ntext,image to use build-in full text search。這是依照后期的需求,對文檔進行搜索而做的改變。關于SQL Server的全文搜索,可以參考這本書《Apress.Pro.Full-Text.Search.in.SQL.Server.2008》,這個知識點在后面的文章中會有詳細解釋。SQL Server的Product Sample中也有一個ItemFinder可以參考。
?
最后來看一下這個軟件的目標群體。一開始我想到的是給自己整理文件用的,后來擴展到整理任何形式的數據。這樣一來,喜歡搜索資料和數據的朋友,肯定會喜歡這個軟件,既節省硬盤空間,又很有條理和邏輯的歸納數據。我一開始出來工作時,把做好的網站給客戶之前,還要先輸入一些文章,數據到系統中,以讓網站的內容豐滿,頁面漂亮,這樣一說,這個軟件也適合網站編輯。我那時有一個工作項就是去別人的網站,比如東莞陽光網(sun0769.com)拷貝數據到客戶的網站中,現有有這個軟件系統了,設置好目標網站和抓取規則,程序后臺自動運行,完全可以留更多的時間,做更有意義的內容編輯工作。再擴大一下目標群體,比如我有一個朋友,喜歡讀小書,特別是最新的網絡小說,可以通過這個程序,自動抓取最新的小說(起點小說網)到本機數據庫系統中,通過導出功能,下載到手機中。這樣可以省去了手工操作的時間。最后,所有需要對數據和文檔進行歸納整理的朋友,都可以從這個軟件系統中獲益,它對數據的編輯整理能力,可以讓你節省大量的時間和精力。本來是以編輯數據,資料Data為主的軟件,經過演化,數據就是知識Knowledge,所以這個系列的軟件就叫知識管理系統Data Solution。下圖是組件之一Data Loader的主界面
?
在博客園看到一篇很好的文章,介紹知識管理系統VS文檔管理系統的區別,其中有一個表格,借用一下
?
這里還要解釋下,為什么沒有選擇SharePoint作為文檔管理系統。SharePoint是個優秀的平臺,如果要把我的目標架設在它的既定的架構上,需要花很多精力和時間去研究Sharepoint,這在后面的擴展部分,會提到Data Solution與SharePoint集成,但是,現在是我需要的知識管理系統,不單指文檔,還有片段式數據。所以在項目決策時,沒有考慮用SharePoint作為基礎的框架和平臺。
?
希望能給你的工作,學習帶來幫助。