摘要:A keyword match server为什么需要关键字匹配服务器?你可能想用正则去匹配,不过细想一下,如果有10万个关键字,那不是要用正则匹配10万次。 而是用关键字匹配服务器只需要匹配一次即可,速度非常快,速度只跟你要匹配的原文长度有关。此外,使用此服务器还可以过滤敏感词之类的用途。#安装方法# 1.安装libevent(http://monkey.org/~provos/libevent/) 2.安装libdatrie(http://linux.thai.net/~thep/datrie/datrie.html) 3.make PHP接口: 存储<?phpinclude( 阅读全文
Git服务器 Gitosis
2012-10-11 09:38 by 爱车龟速兔, 254 阅读, 0 推荐, 收藏, 编辑
摘要:Git是非常著名的分布式版本控制系统。Gitosis 则是方便通过 Git 与 ssh 架设中央服务器的软件。参见https://github.com/res0nat0r/gitosisGit服务器Gitosis架设指南.http://www.oschina.net/question/12_72988配置 Gitosishttp://www.oschina.net/question/12_72989 阅读全文
Silverlight中,很多实例可以使用Xaml的方式进行配置实现的注意事项和原理
2012-10-09 14:00 by 爱车龟速兔, 375 阅读, 0 推荐, 收藏, 编辑
摘要:Silverlight中,很多实例可以使用Xaml的方式进行配置实现,但是应该怎么配置呢? 实际上,就像实例化一个对象一样, 需要声明民名空间,对象的属性等等. 下面有一个例子: Prism中配置module可以使用Xaml来配置, 实际上就是配置的一个ModuleCatalog的实例,和我们一般在Xaml页面中什么一个对象是一样的.<Modularity:ModuleCatalog xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schema 阅读全文
.NET基础扩展系列-事件的实现原理
2012-04-09 17:41 by 爱车龟速兔, 789 阅读, 1 推荐, 收藏, 编辑
摘要:CLR VIA C#这本书中, 写到了事件的实现原理, CLR是使用委托字段来实现事件的:// 1. A PRIVATE delegate field that is initialized to null static EventHandler<EventArgs> NewMail = null;// 2. A PUBLIC add_Xxx method (where Xxx is the Event name) // Allows methods to register interest in the event. static void add_NewMail(EventHa 阅读全文
.NET基础扩展系列-如何获取事件的响应函数列表
2012-03-19 17:57 by 爱车龟速兔, 845 阅读, 0 推荐, 收藏, 编辑
摘要:很多对象实现了IDispose接口的, 例如Socket对象. 在使用后, 需要及时调用Dispose()方法销毁.但是如果对象上的事件注册了事件响应函数, 那么就必须等待事件响应函数所在的对象回收以后, 它才能回收, 这个很容易导致程序出问题.所以比较理想的方案是在调用Dispose()之前, 把时间的事件响应函数注销掉. 这个就ok了. 但是对象的事件响应函数可以添加多个, 而且一个事件可能在若干个对象中被注册了响应函数, 如何获取调用函数的列表呢, 然后住校呢. <CLR VIA C#>的事件一章, 详细讲解了.net的事件是通过字段+方法来实现的. 也就是说, 事件会被翻译 阅读全文
你当下的决定, 可能能够影响你未来5年的幸福. 所以, 最好考虑一下5年后的你最这件事情的看法.
2012-02-19 15:30 by 爱车龟速兔, 178 阅读, 0 推荐, 收藏, 编辑
摘要:你当下的决定, 可能能够影响你未来5年的幸福. 所以, 最好考虑一下5年后的你最这件事情的看法. 阅读全文
字符串生成Hash值后转换成Guid的若干方法和一个重要问题
2012-02-17 17:55 by 爱车龟速兔, 1186 阅读, 0 推荐, 收藏, 编辑
摘要:字符串计算成Hash值的代码如下:MD5 md5 = MD5.Create();byte[] data = System.Text.Encoding.Default.GetBytes(str);byte[] md5data = md5.ComputeHash(data);计算出Hash值后,结果是一堆byte, 不方便多个hash值进行比较.由于Hash值计算出来是一个128位的值, 转换成字符串表达形式就好对比多了,也就是MD5码的字符串形式, 另外由于Guid也是128位的,所以可以用guid来存储这个MD5码.先说一种不正规的MD5生成方法: return new Guid(md5dat 阅读全文
告别2011,走进2012,你终于来了.
2012-01-01 15:32 by 爱车龟速兔, 196 阅读, 0 推荐, 收藏, 编辑
摘要:记得去年年初的时候, 在回北京的飞机上, 看了一篇文章, 是一本杂志的新年辞, 什么题目不太记得了, 只记得里面列举了一大堆2011之前没有的东西.每天生活都在变.一年前,我还在梦想去华为或者哪家跨国公司, 继续在北京蚁这, 但是这一年,我从北京到了重庆,开始了新的人生;一年前,重庆的房子还没有那么贵, 贷款利率还不上调,一年后的我们依然没有钱, 望着小房子,感受着自己的卑微;一年前,还是一个人,现在,要带着两个人的梦想, 继续前进.还有很多…生活在继续…2012,你终于来了. 阅读全文
正则表达式如何匹配换行符
2011-12-26 11:51 by 爱车龟速兔, 1500 阅读, 0 推荐, 收藏, 编辑
摘要:正则表达式中, .通配符是不匹配换行符的. 那么怎样能够匹配换行符号呢,使用\s就能匹配了,\s 匹配任意的空白符. 阅读全文
关于单元测试
2011-08-13 00:08 by 爱车龟速兔, 241 阅读, 0 推荐, 收藏, 编辑
摘要:关于单元测试:我们为什么要做单元测试?引入单元测试是很简单的,因为它本身就充满了乐趣。然而在项目交付的时候,我们给客户和最终用户的仍然是产品代码,而不包含单元测试的代码;因此,我们必须对单元测试的目的有个充分的认识。首先也是最重要的,使用单元测试是为了使你的工作——以及你队友的工作——完成得更加轻松。是不是编写单元测试会增加编码的时间, 是不是在浪费时间?如果你仍然认为在编写产品代码的时候,还是没有时间编写测试代码,那么请先考虑下面这些问题: 1. 对于所编写的代码,你在调试上面花了多少时间? 2. 对于以前你自认为正确的代码,而实际上这些代码却存在重大的bug,你花了多少时间在重新确认这些代 阅读全文