推荐制作精良的笔记软件Wire Note 应用键盘钩子技术获取即时数据 资料查阅的好工具 建立代码片段数据库
记得我在《知识管理系统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编辑规则,来抓取指定的数据,需要熟悉正则表达式,另一种办法就是我这里实现的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 dependency DECLARE @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 file TextWriter tw = new StreamWriter("ISL.rtf"); // write a line of text to the file string 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。