控制Google +1加载顺序

Nov 8th,2011 No Comments

种种原因,在天朝用Google+会经常影响到页面加载,下面JS可以让页面显示完再加载plusone。

优化过的OCR

Nov 7th,2011 No Comments

人机识别新进展,近日从斯坦福大学某个研究团队传出:这些研究人员做出来的DeCaptcha工具采用改进的OCR技术,在对包括Google、百度、Visa、暴雪战网、维基百科、eBay和CNN在内的15个知名网站测试中或多或少破解了其中13个的验证码,有兴趣可以考虑其服务,Decaptcha(PDF)

reCaptcha

Read More…

小规模低性能低流量网站优化

Nov 6th,2011 1 Comment

假定现在你已经有了一个基本的 VPS 可用,基本内存 512MB 。参考官方提供的各种安装指导将 LAMP 这个组合运行了起来,操作系统一般 Ubuntu ,Web 服务器 Apache ,数据库 MySQL ,然后是 PHP ,以及需要安装的应用软件,WordPress 、Drupal 或是 OpenCart 什么的,一步一步配置好,能够正常的浏览页面。按照官方指导文档操作的一个好处是会包括一些基本的优化一点的配置。不至于出现太大的错误。

一旦应用就绪后,登录到操作系统中,通过 top / iostat / free 等基本操作系统命令收集基准数据,做记录。收集信息越全面,对于后面的优化就越便利。优化没有魔法,只有合理的方法。

Read More…

统战官员的幽默

Nov 5th,2011 No Comments

中央国家机关工委统战(群工)部部长谈宜彦4日在召开的“机关统战工作规律研讨会”上指出,机关党外人士队伍后继乏人、普遍面临青黄不接的问题,特别是一些民主党派,由于门槛过高等原因,成员发展比较困难,应引起关注。

一直很佩服LD们的智慧,今天这位统战官员再次印证这点。个人猜想下LD当时说这些话的可能心态,如下:

  1. 生活实在太无聊了,没事出来表示表示,博人一笑
  2. 想升官了,引起上面领导注意
  3. 第三个可能。。。

PPTP yum安装

Nov 4th,2011 No Comments

用PPTP做代理,被证明是非常易用。它更容易与CentOS 5的内核MPPE和MPPC加密和认证,是个很不错的VPN解决方案。不过由于在64位系统下用pptp rpm包安装过程中出现一些问题,如提示:

ppp = 2.4.4 is needed by pptpd-1.3.4-1.rhel5.1.x86_64

如果愿意,可以通过yum安装,如下。

首先,确保PPP是使用yum安装。

yum install ppp

yum默认源没有pptp,可以使用下面源。其中也有一些其他的更新包,如修补iptables的L7的过滤,你可以通过创建一个新的文件“/etc/yum.repos.d/Doylenet.repo“,并添加以下行:

[doylenet]
name=Doylenet custom repository for CentOS
baseurl=http://files.doylenet.net/linux/yum/centos/5/i386/doylenet/
gpgcheck=1
gpgkey=http://files.doylenet.net/linux/yum/centos/RPM-GPG-KEY-rdoyle
enabled=1

最后就就可以正常yum了,配制这里就不说了,网上很多。

yum install pptpd

feedsky只输出一条信息

Oct 19th,2011 No Comments

feedsky添加完后出现只有一条信息或一篇文章,原因是所有节点的guid参数都一样,可能出现在自己写rss过程中。
<item>的子节点<guid>
<GUID>是一个可选的<item>子节点。
为全球唯一的GUID代表标识符。 这是一个字符串,它唯一标识item。 如果存在,当item发布之后,聚合器可以选择使用该字符串判断该item是否是新的。
<guid> http://some.server.com/weblogItem3207 </的GUID>
guid没有特定的语法规则,聚合器必须将他们看作一个字符串。生成具有唯一性的字符串guid取决于种子的源头。
如果guid节点有isPermaLink属性,并且值为真,读取器就会认为它是item的permalink。permalink是一个可在web浏览器中打开的url链接,它指向<item>节点所描述的全部item。
<guid isPermaLink=”true”>http://inessential.com/2002/09/01.php#a2</guid>
isPermaLink是可选属性,默认值为真。如果值为假,guid将不会被认为是一个url或指向任何对象的url。

ping服务误区

Oct 17th,2011 No Comments

误区一:Pingomatic的重复

WordPress后台自带了http://rpc.pingomatic.com/地址,然而不少网上的推荐地址列表可能会造成重复。
比如推荐地址列表是这样:

http://rpc.pingomatic.com/
http://blogsearch.google.com/ping/RPC2
http://ping.feedburner.com/
http://api.my.yahoo.com/RPC2

Read More…

破解防盗链,js设置空白referer图片

Sep 26th,2011 4 Comments

大部分防盗链都是判断referer,可以通过在客户端本地改变图片调用破解之。

//破防盗链js
function ImgRebuild() {
	$("#post img").each(function(i){
		url = this.src;
		width = this.width;
		height = this.height;
		var imgid = Math.random(),
		frameid = 'frameimg' + imgid;
		window['img'+imgid] = '<img id="img" src=\''+url+'?kilobug\' /><script>window.onload = function() { parent.document.getElementById(\''+frameid+'\').height = document.getElementById(\'img\').height+\'px\'; }<'+'/script>';
		img_r = '<iframe id="'+frameid+'" src="javascript:parent[\'img'+imgid+'\'];" frameBorder="0" height="' +height+ '" scrolling="no" width="100%"></iframe>';
		$(this).replaceWith(img_r);
	});
	return '';
}
ImgRebuild();

Demo:
http://www.tiham.com/page/anti-anti-hotlinking.html
兼容性:已测试IE6、IE7、IE8、chrome 7、FF3.6、Opera10.63

防御方法:
1、不允许referer为空(不建议,因在某些开启隐私模式的浏览器中,或https页面引用下,referer是空的);
2、地址变更(lighttpd的是根据有效时间,nginx的根据是md5);
3、登录校验(如必须登录网站帐号后才能访问);

LCS最长公共子串算法

Sep 26th,2011 No Comments

LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长匹配子串的位置.

下面是字符串21232523311324和字符串312123223445的匹配矩阵,前者为X方向的,后者为Y方向的。不难找到,红色部分是最长的匹配子串。通过查找位置我们得到最长的匹配子串为:21232

字符串相似/差异度算法(Levenshtein Distance)

Sep 9th,2011 1 Comment

Levenshtein Distance算法(中文翻译:编辑距离算法) 由俄国科学家Levenshtein在1965年提出。

编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

例如将kitten一字转成sitting:
sitten (k→s)
sittin (e→i)
sitting (→g)

Read More…