现在的位置: 首页 > 综合 > 正文

推荐制作精良的笔记软件Wire Note 应用键盘钩子技术获取即时数据 资料查阅的好工具 建立代码片段数据库

2012年04月10日 ⁄ 综合 ⁄ 共 5551字 ⁄ 字号 评论关闭

记得我在《知识管理系统Data Solution研发日记之一 场景设计与需求列出》中提到的一个需求,用户先选择一段文本,然后调用快捷键,也叫热键(Hot Key),资料与数据就自动保存到我的笔记库中。Data Loader已经完美的实现了这个功能,帮助你保存笔记数据。

打开Data Loader程序,到Setting中进行初试设置,请看图

image

Wire Shortcust是热键,直接敲键盘,它会记录到你正在按的键。如果有对它进行修改,请重启动Data Loader以让Key Hook应用新的设置;另一个开关是Clear Clipboard after fetch its data,当您选中一段文字,用Ctrl+C拷贝到剪贴板中后,再按Ctrl+Q,也就是你设置的Wire Shortcust,它就会自动从剪贴板中的数据生成一个笔记项,同时如果这里有打勾,则清空剪贴板。这个选项可以避免重复的增加相同的项到笔记库中。

在MS Word中选择一段文本,Ctrl+C拷贝到剪贴板中,再按Ctrl+Q,这时,可以看到界面的效果是这样的

image

在MS Word选择的文档,自动被添加到Wire Note的笔记库中,同时在右下角有弹出提示。

同样的情况,你也可以尝试从Notepad,Visual Studio中拷贝文字,它的效果也相当不错,请看下图

image

这样,如果你在看其它同事的代码,如果你想收集里面写的好的代码,不妨用这个功能试一下,可以帮助你节省很多整理代码的时间。所以我在标题中提到的,建立代码片段数据库,也就是这个意思。打开你的Visual Studio,浏览你需要的代码,Ctrl+C放到剪贴板,再发送Ctrl+Q新建一个笔记项。

 

再推荐另一个用途,在网页中浏览新闻或是查阅资料时,通常会碰到一些重要的,或是有价值的资料。那么,你也可这样,先选择你需要的资料,拷贝到剪贴板中,再按Ctrl+Q,以增加到笔记库中。请看这个效果图

image

这是我在MSN头条新闻中看到的内容《金融大鳄索罗斯秘会开发商 伺机抄底中国楼市_楼市_理财_MSN中文网》,于是我把它拷贝到剪贴板中,再按Ctrl+Q,这条新闻的主要内容,就被自动添加到笔记库中,是不是很方便?

 

这可以改变我以前搜集网页的习惯。以前看到好的有价值的网页,会把它存在html文件,但是html会包含图片,增加大量的没有用的文件(图片和css),这很恼火; IE6之后,默认的保存格式变成mht文件,方便了很多,把图片和网页内容存到一个mht文件中,但是,打开这个文件通常很慢,而且会有无法清除的help protect提示,用了很多办法不让它提示也没有成功,最主要的,mht格式要用浏览器打开,很慢不方便,也没有开源的代码库对它进行读取。

image

我做了一个改善,使用Site Rebuild应用程序,把网页存成doc文档,方便编辑和保存,请参考文章《分享制作精良的知识管理系统 博客备份程序 Site Rebuild》以体验这种方法。

 

思考产生进步。把一整篇网页存成MS Word文档,有很多地方是不需要的,但是它也保存到WORD文件中,比如

image

这篇网页中,我用红色文字放宽圈起来的部分,是不需要的,我只想看它的主要新闻内容。所以,我一直在想,如何抓取我需要的数据,一种办法是使用Rule Editor编辑规则,来抓取指定的数据,需要熟悉正则表达式,另一种办法就是我这里实现的Wire Note。您选择您需要的数据内容,再发送一个Hot Key,Wire Note把它作为新的笔记内容。

 

继续了解Wire Note中其它的功能,请看下图,在笔记项中点右键,弹出context menu,它的内容如下

image

一共有六个菜单项,它们的含义请看下面的表格

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),请看下面的两张图,选择原笔记项内容

image

再到Document Explorer中浏览内容,请看下图

image

笔记项正确的转化为了文档,你可以继续对文档进行分类,编辑整理工作。

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。

抱歉!评论已关闭.