記得我在《知識管理系統Data Solution研發日記之一 情境設計與需求列出》中提到的一個需求,使用者先選擇一段文本,然後調用快速鍵,也叫熱鍵(Hot Key),資料與資料就自動儲存到我的筆記庫中。Data Loader已經完美的實現了這個功能,協助你儲存筆記資料。
開啟Data Loader程式,到Setting中進行初試設定,請看圖
Wire Shortcust是熱鍵,直接敲鍵盤,它會記錄到你正在按的鍵。如果有對它進行修改,請重啟動Data Loader以讓Key Hook應用新的設定;另一個開關是Clear Clipboard after fetch its data,當您選中一段文字,用Ctrl+C拷貝到剪貼簿中後,再按Ctrl+Q,也就是你設定的Wire Shortcust,它就會自動從剪貼簿中的資料產生一個筆記項,同時如果這裡有打勾,則清空剪貼簿。這個選項可以避免重複的增加相同的項到筆記庫中。
在MS Word中選擇一段文本,Ctrl+C拷貝到剪貼簿中,再按Ctrl+Q,這時,可以看到介面的效果是這樣的
在MS Word選擇的文檔,自動被添加到Wire Note的筆記庫中,同時在右下角有彈出提示。
同樣的情況,你也可以嘗試從Notepad,Visual Studio中拷貝文字,它的效果也相當不錯,請看
這樣,如果你在看其它同事的代碼,如果你想收集裡面寫的好的代碼,不妨用這個功能試一下,可以協助你節省很多整理代碼的時間。所以我在標題中提到的,建立程式碼片段資料庫,也就是這個意思。開啟你的Visual Studio,瀏覽你需要的代碼,Ctrl+C放到剪貼簿,再發送Ctrl+Q建立一個筆記項。
再推薦另一個用途,在網頁中瀏覽新聞或是查閱資料時,通常會碰到一些重要的,或是有價值的資料。那麼,你也可這樣,先選擇你需要的資料,拷貝到剪貼簿中,再按Ctrl+Q,以增加到筆記庫中。請看這個
這是我在MSN頭條新聞中看到的內容《金融大鱷索羅斯秘會開發商 伺機抄底中國樓市_樓市_理財_MSN中文網》,於是我把它拷貝到剪貼簿中,再按Ctrl+Q,這條新聞的主要內容,就被自動添加到筆記庫中,是不是很方便?
這可以改變我以前搜集網頁的習慣。以前看到好的有價值的網頁,會把它存在html檔案,但是html會包含圖片,增加大量的沒有用的檔案(圖片和css),這很惱火; IE6之後,預設的儲存格式變成mht檔案,方便了很多,把圖片和網頁內容存到一個mht檔案中,但是,開啟這個檔案通常很慢,而且會有無法清除的help protect提示,用了很多辦法不讓它提示也沒有成功,最主要的,mht格式要用瀏覽器開啟,很慢不方便,也沒有開源的程式碼程式庫對它進行讀取。
我做了一個改善,使用Site Rebuild應用程式,把網頁存成doc文檔,方便編輯和儲存,請參考文章《分享製作精良的知識管理系統 部落格備份程式 Site Rebuild》以體驗這種方法。
思考產生進步。把一整篇網頁存成MS Word文檔,有很多地方是不需要的,但是它也儲存到WORD檔案中,比如
這篇網頁中,我用紅色文字放寬圈起來的部分,是不需要的,我只想看它的主要新聞內容。所以,我一直在想,如何抓取我需要的資料,一種辦法是使用Rule Editor編輯規則,來抓取指定的資料,需要熟悉Regex,另一種辦法就是我這裡實現的Wire Note。您選擇您需要的資料內容,再發送一個Hot Key,Wire Note把它作為新的筆記內容。
繼續瞭解Wire Note中其它的功能,請看,在筆記項中點右鍵,彈出context menu,它的內容如下
一共有六個功能表項目,它們的含義請看下面的表格
| Remove Selected Item |
刪除當前選擇的筆記項 |
| Copy to Clipboard |
把當前的筆記項拷貝到剪貼簿中 |
| Copy as new note |
拷貝當前的筆記項,產生一個與它相同的筆記 |
| Make it as document |
根據當前的筆記項, |
| Remove all records |
刪除所有的筆記項,僅僅是清空介面 |
| Clear All Note |
刪除所有的筆記項,清空介面,同時也清空資料庫 |
解釋一下Make it as document,當選擇一項筆記,點擊這個菜單後,再到Document Explorer中看到,已經根據那篇筆記項,產生了一篇文檔(document),請看下面的兩張圖,選擇原筆記項內容
再到Document Explorer中瀏覽內容,請看
筆記項正確的轉化為了文檔,你可以繼續對文檔進行分類,編輯整理工作。
Document Explorer採用了Sql Cache Dependency查詢跟蹤技術,所以無需要重新整理它的介面,當有把筆記Make it as document時,Document Explorer中會正確顯示更新後的文檔內容,增加了方便性。基於這個原因,你需要SQL Server 2005或以上的資料庫,以保證查詢跟蹤技術可以正常工作。如果開啟Document Explorer表單時有提示錯誤
No permission,please run sql script first,請先運行下面的指令碼(可以在Document.sql中找到)。
--enalbe sql server 2005 cache dependencyDECLARE @dbname NVARCHAR(100)SET @dbname=DB_NAME()EXECUTE('ALTER DATABASE '+ @dbname + ' SET NEW_BROKER WITH ROLLBACK IMMEDIATE' )GO DECLARE @dbname NVARCHAR(100)SET @dbname=DB_NAME()EXECUTE(' ALTER DATABASE '+ @dbname + ' SET ENABLE_BROKER')GO
關於Wire Note,有幾點需要說明一下
1. 把筆記項存到SQL Server中去是一項敗筆。這個觀點基本正確。使用者不太可能為了記一下筆記,還需要裝一個龐大的SQL Server,這顯然不合理。Access不支援x64,首先排除,SqlLite資料庫移動檔案而不影響使用,Db4o也是綠色版的資料庫,這兩者是優先考慮的。資料庫遷移,搬家很方便,這是主要的要求。現在Wire Note還在技術評估階段,如果你有好的資料庫方案,歡迎推薦給我。
2. EverNote,OneNote是市面上流行的筆記軟體。OneNote會把一個個的筆記項當成一個物理檔案,這個feature我不喜歡。搬動檔案的時候麻煩,不過是出自微軟,又是Office套件中的一個,與Office系列產品的整合性相當高,方便靈活。EverNote則是小巧好用的筆記軟體,綠色版,一共才10M左右,基本的功能都有,從畢業到現在一直都是有這個軟體搜集資料。不過,沒有信心保證,有一天我放到它裡面的資料會能讀出來。筆記放得越多就越有點擔心,有一天它的筆記資料庫崩潰了我該怎麼辦,這麼多年的技術,人文的積累資料都讀取不到了,好像一下子回到零一樣,這種情況你不希望發生,我也一樣。把作業系統升級到Windows 7,許多軟體如果沒有更新,則或多或少的都有些問題。比如著名的Microsoft Visual C++ 6.0,居然在Windows 7上面無法安裝。而我的Wire Data,所有的筆記以RTF格式存到SQL Server資料庫中,你不會擔心我以後不維護Data Loader了,你的筆記資料就無法使用,你完全可以自己寫一個閱讀工具,讀取存放在SQL Server中的筆記資料,而且通常只要這麼幾行代碼就可以
System.Windows.Forms.RichTextBox rtfBox = new System.Windows.Forms.RichTextBox();string note=GetNoteFromDatabase(1020);rtfBox.Rtf = note;
甚至你可以寫一個匯出工具,把所有存在SQL Server中的筆記項匯出為RTF文檔,這也只需要幾行代碼就搞定
// create a writer and open the fileTextWriter tw = new StreamWriter("ISL.rtf");// write a line of text to the filestring note=GetNoteFromDatabase(1020);tw.Write(note);tw.Close();
通過對比你看到了,我的優勢是,格式開放。採用開放的RTF格式作為筆記項的格式,你可以找到大量的軟體,工具,第三方類庫對筆記內容進行讀寫,二次開發,再加工處理。
3. 考慮整合性。在Office 文檔中增加Add-in,可以把Office文檔轉化為Wire Note的筆記項。在常見的文文書處理工具中增加Add-in,把當前正在處理的文字轉化為筆記項。這樣會方便很多。
4. 考慮把Wire Note作為一個單一個的應用程式運行,而不應該混合在Data Loader應用程式集合中,以方便資料搬家。通常搬動資料,也是連軟體一起複製的,軟體只有幾MB,而資料常常會有幾個GB,軟體搭配著資料移動,換電腦或是換系統了,還是可以運行。
5. EverNote用的雲端運算的筆記同步技術,在任何地方都可以上傳自己的筆記,以方便在任何地方可以下載同步筆記。Data Loader 沒有這個實力做到這項功能。雲端運算是商人操作的概念股票,就好比當初的Web 2.0一樣,不適合我們做程式員的。
請到epn.codeplex.com(http://epn.codeplex.com/releases/view/68647)中下載最新版的Data Loader。