摘要:搜索是分词的一个重要应用,本文参考Lucene.Net.Analysis.PanGu,实现了jieba.NET分词和Lucene.Net的简单集成,望有所帮助。 阅读全文
[置顶]jieba中文分词的.NET版本:jieba.NET
2015-09-08 20:05 by Anders Cui, 22778 阅读, 75 推荐, 收藏, 编辑
摘要:分词、词性标注和关键词提取是jieba中文分词的三个主要功能,jieba.NET实现了与jieba一致的功能和接口。jieba.NET的开发刚刚开始,还有很多细节需要完善。非常欢迎大家的试用和反馈,也希望能和大家一起讨论,共同实现更好的中文分词库。 阅读全文
[置顶]编写自文档化的代码
2009-06-21 23:02 by Anders Cui, 11510 阅读, 5 推荐, 收藏, 编辑
摘要:我们编写的代码需要具有高度的可读性,这样其他的程序员可以更容易地对代码进行修改和扩展。两种传统的方式是使用外部文档和编写大量注释,其实它们都不是好的选择。自文档化的目标是使代码成为良好的文档,一种人人可以读懂的文档,本文介绍了多种提高代码自文档化的技巧,最后给出了我最近在尝试的一种方式。 阅读全文
[置顶]Visual Studio 2008 可扩展性开发(九):总结篇
2009-05-30 22:30 by Anders Cui, 8280 阅读, 10 推荐, 收藏, 编辑
摘要:VS越来越强大了,在VS 2010 Beta1中我又看到一直想要的两个功能,但我确信,扩展仍是不可避免的,因为VS面向的是所有的开发人员,它只能够提供最通用的功能,所以就有了这个文章系列。在这个过程中,我尽量以有用的实例介绍VS 2008可扩展性开发的每个方面,希望这些能给你带来一些帮助。 阅读全文
[置顶]F#系列随笔索引
2008-10-08 00:18 by Anders Cui, 8733 阅读, 7 推荐, 收藏, 编辑
摘要:在当前的背景下,如果一门语言的广告不能雷到人,还面对C#这样成熟的语言,就真的很难引起人们的兴趣。初学F#会让人一头雾水,我希望能有一个F#教程,它能在一些简单的例子中帮我们拨开乌云,《Foundations of F#》这本书不错,不过有些繁琐、冗长。我把书中的内容整理了一下,也把在《Expert F#》或者网上其它文章的一些内容加进来,另外我还喜欢把自己想到的F#与C#的异同点给写出来,这些就是我的《F#探险之旅》。 阅读全文
[置顶]增强我们的Visual Studio(更新中)
2007-10-22 22:09 by Anders Cui, 13285 阅读, 3 推荐, 收藏, 编辑
摘要:在一篇文章《Visual Studio vs Eclipse》中,Jon Skeet对两者进行了对比。VS2005确实有其不足。还好,当前已经有了一批不错的Add-In了,适当地应用,会让我们的VS更为强大,我这里推荐了4个不错的Add-In,尤其是其中的DPack,强烈推荐。最希望的还是大家能群策群力,一起打造更好的VS IDE!
更新: 至2007-10-31, add-in列表已增加到14个,推荐Clipboard Manager。
2008-11-12,添加VS2008 add-in:CodeRush Xpress for C#
阅读全文
[置顶]iBATIS In Action:序言和目录
2007-09-07 00:40 by Anders Cui, 7279 阅读, 4 推荐, 收藏, 编辑
摘要:iBATIS In Action翻译系列第一篇
1.iBATIS In Action 序言
2.阅读此书需要的前提知识
3.本人的一点感想和提示
4.已完成部分的索引 阅读全文
迷人的斐波那契数
2012-04-19 00:31 by Anders Cui, 5462 阅读, 4 推荐, 收藏, 编辑
摘要:繁殖力超强的兔子说到斐波那契数,我们自然会想到曾经有一群繁殖力超强的兔子。比萨的商人斐波那契(Fibonacci,12-13世纪,称为比萨的列奥那多)接触到阿拉伯数学后,在其著作《Liber Abaci》中,引入了这个著名的兔子问题。但如果向前追溯下去,则可以追溯到古老的印度数学。斐波那契使用了一个理想化了的兔子生长模型进行研究,并假设:第一个月初有一对刚诞生的兔子两个月之后(第三个月初)它们可以生育每月每对可生育的兔子会诞生下一对新兔子兔子永不死去从第一个月开始,兔子的数目(对)依次是:1,1,2,3,5,8。。。这样就形成了一个序列,记为{Fn},则该序列存在一个递推关系:F(n)=F(n 阅读全文
趣题一则:交替放置的碟子
2012-04-16 21:43 by Anders Cui, 3003 阅读, 0 推荐, 收藏, 编辑
摘要:有数量为2n的一排碟子,n黑n白交替放置。现在要把黑碟子都放在右边,白碟子都放在左边,但只允许通过交换相邻碟子的位置来实现。实现这个过程要交换多少次?分析首先把问题转化一下,用1表示黑碟子,0表示白碟子,那么目前的顺序是:1010...1010结果要求1都放在右边,0都放在左边。这个题目看起来很眼熟。看关键字:交换相邻的碟子,排好顺序。嗯,就是经常出现在面试中的冒泡排序了。为便于观察,假设目前有6个碟子:101010。使用冒泡排序,第一次迭代,碟子序列变为:010101,交换3次。在进行第二次迭代之前,观察一下。现在,不仅第一个碟子就位,最后一个也是了,因此第二次迭代只需要对第2到第5个进行排 阅读全文
趣题一则:寻找那扇门
2012-04-10 23:51 by Anders Cui, 2419 阅读, 1 推荐, 收藏, 编辑
摘要:现在出现在你面前的是一堵朝两个方向无限延伸的墙。墙上有一扇门,但你并不确定门离你有多远,也不知道门位于哪个方向(左边或是右边)。你只有在走到门面前才能看到它。假设从当前位置到门要走n步(n大小未知),那么怎样走O(n)步就能找到那扇门?分析这道题让人“左右为难”,因为不确定如何才能走到尽快确定方向和位置。首先想到在错误的方向上走得越远,就意味着离正确的位置越远,因此较为保险的方法是,第一步向右走,看看有没有门;第二步——为了防止在错误的方向上渐行渐远——向左走,走两步,这样就可以确定在最初位置的一步范围内有没有门了。接下来,按照类似的方式左右徘徊,依次确定在最初位置的2,3,...,n有没有门 阅读全文
HashSet的实现(下)
2011-06-17 17:19 by Anders Cui, 6391 阅读, 4 推荐, 收藏, 编辑
摘要:在HashSet的实现(上)中,简要介绍了散列法(hashing)的内容,并以二次探测法实现了一个简单的HashSet。在本文中,将进一步讨论散列法,尤其是GetHashCode方法的实现,最后给出完整的HashSet实现。 阅读全文
HashSet的实现(上)
2011-06-13 02:03 by Anders Cui, 14353 阅读, 2 推荐, 收藏, 编辑
摘要:本文主要讨论了散列法和散列函数的基本概念以及解决散列冲突的两种方法:线性探测法和二次探测法,并以二次探测法简单地实现了HashSet的Hash这一部分。 阅读全文
趣题一则:如何快速过桥?
2011-06-03 00:31 by Anders Cui, 1378 阅读, 3 推荐, 收藏, 编辑
摘要:有四个人打算过桥,他们都在桥的某一端,他们的任务是在17分钟内全部到达桥的另一头。当时是晚上,他们只有一只手电筒,最多只能有两人同时过桥,因为伸手不见五指,必须要携带手电筒。必须步行将手电筒带来带去,即扔来扔去是不行的。每个人走路的速度是不同的:甲过桥需要1分钟,乙需要2分钟,丙需要5分钟,丁需要10分钟。两个人一起走的速度等于其中较慢的人的速度。例如,如果第一次让甲和丁一起过桥,当他们到桥的另一端时,已经用了10分钟,如果由丁带回手电筒,那么20分钟就过去了,于是任务失败。那他们到底该怎样过去呢?如何完成任务?第一次甲和乙同行,然后乙回去送手电筒,用掉4分钟;下一次丙和丁同行,甲回去,用掉1 阅读全文
制作自己的wikibook
2011-05-03 21:38 by Anders Cui, 2493 阅读, 1 推荐, 收藏, 编辑
摘要:wikipedia.org是我特别喜欢的网站,首先是它的信息量极为丰富,不管是文章本身的内容,还是它所引用的外部资源;而且文章的风格也很让人喜欢,简约的文本,配以适量的图片,很对我的口味;另外一个重要的地方是,文章内容比较可靠。如果看到一篇喜欢的wiki文章,想打印出来,那么看页面的左边侧栏: 可以使用Printable版本打印,也可以保存为本地的PDF文件。最有趣的地方是“Create a book”:一旦开始书籍的创建,在页面的页首部分就会出现一个功能区域: 当我们把需要的文章都添加进来后,点击Show book,即进入书籍的管理页面,甚至还可以组织书籍的章节!然后,可以保存为本地文件,格 阅读全文
玩儿一下Word Search Puzzle
2011-03-20 00:40 by Anders Cui, 4203 阅读, 1 推荐, 收藏, 编辑
摘要:单词搜索迷宫(Word Search Puzzle)问题的输入是一个二维的字符数组和一组单词,目标是找出字符数组网格中的所有单词。本文讨论了它的实现,以及Array.BinarySearch方法的一个值得注意的地方。 阅读全文
离散数学拾趣(三):集合的子集有多少个
2011-03-10 02:54 by Anders Cui, 4499 阅读, 0 推荐, 收藏, 编辑
摘要:集合广泛应用于计数问题,这类问题需要讨论集合的大小。令S为集合。若S中恰有n个不同的元素,n是非负整数,就说S是有限集合,而n是S的基数,用|S|表示。若S={ 1, 2, 3 },则|S| = 3。有时候需要考虑一个集合的元素所有可能的组合,看它们是否具有某种性质。为此构造一个新的集合,它以S的所有子集作为它的元素,该集合称为S的幂集合,记为P(S)。比如:本文的主题也就是:对于集合S,P(S)的基数是多少?方法一:首先观察上面例子中的三个集合,它们的基数分别是0、1、2,而它们的幂集合的基数分别是,于是可以猜想n个元素的集合有个子集,下面用数学归纳法证明。基础步骤:由上面例子可知,当n=0 阅读全文
离散数学拾趣(二):逻辑难题
2011-03-04 00:28 by Anders Cui, 3381 阅读, 2 推荐, 收藏, 编辑
摘要:可以用逻辑推理解决的难题称为逻辑难题,解决这样的问题是实践逻辑规则的一种好方法。本文介绍了Raymond Smullyan的岛屿居民难题与爱因斯坦难题。 阅读全文
离散数学拾趣(一)
2011-03-04 00:05 by Anders Cui, 1473 阅读, 2 推荐, 收藏, 编辑
摘要:在学习英语的时候,会有一种感受,“记住它”不算是好的方法,也许记住了单词的含义,也许掌握了语法的规则,但是仍然很难用英语来表达自己的想法。这里面的问题在于,没有“用英语去思考”,也就是以英语的方式去掌握它。学习计算机,亦是如此,往往有人说学习一门编程语言只要几天就够了,听到这样的话,我的理解是:你在说它的语法容易理解,真正学好这门语言,当然应该以它应有的方式去写代码。而且,不仅仅是学习编程语言是如此,整个计算机科学的学习都会是这样,应该了解计算机的语言,用它来理解计算机。计算机的基础是数学,尤其是离散数学。近日在读《离散数学及其应用》(第五版),才体会到离散数学在计算机学习中的重要性,当其中的 阅读全文
关于命名中的数量和人称
2011-01-26 00:16 by Anders Cui, 3009 阅读, 7 推荐, 收藏, 编辑
摘要:我们都明白命名的重要性,如果对命名不断地关注,就需要考虑命名中的动词和名词,特别的情况是动词的人称和名词的数量。在.NET Framework的Guideline中,有专门一章讨论了命名规范,包括大小写、单词的选择等,却没有涉及到人称和数量,下面来讨论一下这两方面的内容。名词的数量首先来看数量。名词的单数和复数在语义上有着明显的不同,为了提高可读性,数量需要认真地考虑。比如:属性(Property):System.Collections.Generic.DictionaryTKey, TValue中的Keys和Count是好的例子。字段与此类似;方法名中的名词:在JS中我们熟悉的getEl 阅读全文
扩展方法浅谈
2010-01-18 22:01 by Anders Cui, 6148 阅读, 0 推荐, 收藏, 编辑
摘要:扩展方法首先让我们获得了很强的扩展性方面的能力,可以将很多代码抽象为扩展方法,同时它也会让代码变得更为简洁、直接,这样就带来了一个额外的好处:可读性的提升。 阅读全文
最近遭遇的两个VS配置
2009-12-15 21:44 by Anders Cui, 1396 阅读, 1 推荐, 收藏, 编辑
摘要:1. 一直比较习惯使用英文版的VS,因为其界面会比较一致,不像中文版会有夹生的感觉。但是最近想学习下SQL Server 2008,由于下载的是中文版,安装完毕后,它顺便把VS 2008也变成中文的了,还不吱一声。本来想就这么着吧,但是每次打开VS都会不爽一下,于是想切换回英文界面。网上有人说再安装下SP1就好,结果不行。于是打开那熟悉的Tools –> Options,发现在E... 阅读全文
VS Addin开发小技巧:获取Solution Explorer中文件项的路径
2009-08-30 21:58 by Anders Cui, 3808 阅读, 2 推荐, 收藏, 编辑
摘要:Copy Full Path和Open Containing Folder是VS中当前打开文档所提供的两个有用功能,但是这两个功能却没有出现Solution Explorer的文件项上,本文介绍了如何弥补这个缺憾。 阅读全文
F#中的事件(下)
2009-08-21 00:56 by Anders Cui, 2942 阅读, 3 推荐, 收藏, 编辑
摘要:本文首先介绍了如何使用Event.create方法创建新的事件,然后在此基础上讨论了如何发布和订阅事件,这样可以更符合我们的编码习惯。不过这种方式发布的事件在C#等其它.NET语言中却难以使用,所以最后介绍了如何发布标准的.NET事件,这样就可以兼容于F#和其它的.NET语言了。 阅读全文
F#中的事件(上)
2009-08-19 01:01 by Anders Cui, 4125 阅读, 5 推荐, 收藏, 编辑
摘要:在.NET开发中,事件以及基于事件的编程是颇为重要的概念,它得到了该平台下各种语言的支持。而F#将事件视为一等公民,这个特性使得我们可以通过更为有趣的方式对事件进行组合处理。 阅读全文
更好的单元测试准则(转载)
2009-07-26 22:43 by Anders Cui, 1786 阅读, 1 推荐, 收藏, 编辑
摘要:一篇不错的文章,除了有不少好的单元测试准则外,还提供了一些额外的资料。 阅读全文
我喜欢的工具列表
2009-07-18 15:43 by Anders Cui, 3166 阅读, 4 推荐, 收藏, 编辑
摘要:这里推荐些比较喜欢的工具,它要够小巧,也要够强大,另外还要开源、免费或够便宜。 阅读全文
文曲星猜数游戏的一个简单实现
2009-07-08 22:17 by Anders Cui, 1750 阅读, 1 推荐, 收藏, 编辑
摘要:最近比较希望能做一些敏捷开发的实践,昨晚向Nick Wang请教了一下,结合自己的体会,感觉应当从单元测试开始入手,逐步了解XP的相关内容。Nick刚刚出了个小题目,感觉这是学习TDD的一个好机会。今天看到麒麟.NET的一个非TDD实现,一时手痒也尝试了一下。 阅读全文
给VS添加代码转换功能
2009-05-30 20:45 by Anders Cui, 2573 阅读, 0 推荐, 收藏, 编辑
摘要:本文借助于SharpDevelop的一个Web Service,将代码转换功能集成到了VS,顺便介绍了如何为命令添加快捷键。 阅读全文
如何移除VS Add-In残留的菜单项
2009-05-28 14:26 by Anders Cui, 3930 阅读, 0 推荐, 收藏, 编辑
摘要:有时候Add-In明明已经卸载了,它的菜单却还是挥之不去。本文介绍了两种方法,希望能解决这个问题。 阅读全文
推荐F#最近的一些资源
2009-05-25 00:08 by Anders Cui, 4147 阅读, 1 推荐, 收藏, 编辑
摘要:看着新版本的F#发布,忍不住看了几眼,收集了最近的一些关于F#的文章。其中的一篇Brian的文章中,包含了目前大多数F#专家的博客/站点,不容错过。 阅读全文
如果您下载的Add-In代码不能调试运行
2009-05-24 17:00 by Anders Cui, 2119 阅读, 0 推荐, 收藏, 编辑
摘要:如果您下载了他人编写的Add-In代码,那么在尝试调试运行时,可能会遇到问题,本文也许能帮上忙。 阅读全文
Visual Studio 2008 可扩展性开发(八):关于用户界面的种种(下)
2009-05-24 16:39 by Anders Cui, 5087 阅读, 0 推荐, 收藏, 编辑
摘要:本文着重介绍了如何为Add-In添加选项页(Options Page),这样可以为用户提供较为专业的配置界面,然后简单介绍了如何设置菜单项的图标。这一次的例子是SearchTextInWeb,可以直接打开浏览器搜索VS的选中文本,相信会你带来一些方便。 阅读全文
Visual Studio 2008 可扩展性开发(八):关于用户界面的种种(上)
2009-05-10 00:25 by Anders Cui, 7566 阅读, 1 推荐, 收藏, 编辑
摘要:本文介绍了VS工具窗口相关的内容。首先是如何访问、操作那些内置的工具窗口,如Solution Explorer、Output Window等等;然后介绍了如何创建自定义的工具窗口,在这个窗口中可以查看VS的快捷键列表。 阅读全文
NASA庆祝地球日:50年地球最精美图片亮相(转载)
2009-04-25 00:58 by Anders Cui, 1363 阅读, 0 推荐, 收藏, 编辑
摘要:美国宇航局为了纪念庆祝地球日,特意发布了具有代表性的一组地球图片。这些照片是过去50年来从太空角度观测地球最令人惊叹的图片,看看在外太空我们的地球是什么模样的。 阅读全文
烟花三月江城之行
2009-04-12 02:04 by Anders Cui, 1687 阅读, 0 推荐, 收藏, 编辑
摘要:清明时节去武汉游玩了一次。武汉这个地方非常符合我的口味,有自然山水,有丰富的人文,有众多的(辣)小吃,美女也多,作此文以记之。 阅读全文
与武汉和黄州相关的几首诗词赋
2009-04-02 22:35 by Anders Cui, 2240 阅读, 0 推荐, 收藏, 编辑
摘要:明天就要动车去武汉了,补下课先,遂收集了一些比较喜欢的诗词赋,希望游玩时能有更多的体会。 阅读全文