研究如何防范垃圾pingback

关于wordpress的防垃圾评论, 可以使用验证码来实现, 虽然只能防范程序自动pingback, 但已然好了很多.

而对于自动pingback的垃圾信息却无法防范, 如果不想屏蔽一切pingback的话.

今天想到一个方法, 一篇post收到某个URL对自己进行pingback, 说明该URL引用了当前POST, 如果这里可以写一个检测机制, 回访一下该URL, 看是否该页面真的存在对当前POST页面的引用, 不就可以知道这是否是一个垃圾pingback了么.

插件研究中, 若有进展, 一定跟大家分享.

七夕记事

  1. 微信加了按地理位置”找附近朋友”的功能, 发现小区里用iPhone的人还真多
  2. QQ2011 iPhone版升级, 可以视频了, 不过测试了一下, 发现只能移动设备互相视频, 还不能和PC视频, 而且似乎传输效率不及facetime.
  3. “梅花”来了, 写日志的时候, 刚好听到外面开始下雨了.

纵欢时刻

  隔了好些天,一个朋友将MSN昵称改成“力挺窦唯”,我才后知后觉地了解到砸车事件的来龙去脉。坚忍的品性固然是在复杂社会里保全自己的良方,偶尔的血性迸发却弥足珍贵,令人心头热。
  贡献一条之后不久的动物新闻。2006年5月17日这天,一头懵懂的野猪溜进陕西一所法院,悄然酣睡在后院过道。被工作人员发现之后,野猪大发脾气,不肯乖乖离去,颇是闹了一阵,最后被闻讯而至的武警同志乱枪击毙,付出鲜血的代价。
  比起一本正经的人类,动物虽然更彪悍、野性十足,但在日常生活中,它们同样也表现得颇为隐忍。它们晓得如何在动物园里保全自己,不给饲养员叔叔添麻烦,如何乖巧谄媚从游人那弄得吃食。家养的宠物,性情更是温顺柔弱,像极了婴孩,满足人类怜宠的心理。实验室的老鼠和猴子,为了搞点小零嘴,不厌其烦地走迷宫,在电脑屏幕前一遍遍做傻兮兮的选择题,只在被捕杀的刹那,才做抵死的挣扎。连放纵在自然界的野兽,也通常远远作路过状,若非惹急了,不轻易与人类为敌。
  不过呢,就像我们要时不时除去正装跑到KTV去吼一下,动物也不乏性情流露和放纵享乐的时刻。性格静默的狼,会在月光下放声悲鸣,宫崎骏的动画里,狸猫在夜晚变化成人形,跑进城市来撒欢。
  现实生活中,宠物猫是温顺的典范、受虐事件的主角,但它们也有勾起野性的小命门:猫薄荷。猫薄荷是有着灰绿色叶子、紫白色花的薄荷科植物,是诱惑猫儿进入狂欢舞会的入场券——那些优雅从容的高贵猫种,根本无法抵挡它浓郁的香味。把猫薄荷的叶子弄碎扔地上,它们就会跑来,围着转,用爪子刨。如果味道足够强烈,猫便成虎,狂暴,流口水,神志不清地在地上打转,简直像人磕了摇头丸。
  猫薄荷里催情的成分是荆芥内脂,这种挥发性的物质,多半是通过猫犁鼻器中的受体分子,触动了体内掌管性欲或情绪的神经通路。有意思的是,对人类来说,猫薄荷意外地有镇静作用——有些人说猫薄荷的香味能帮助他们入睡。此外,猫薄荷还有治疗偏头痛的用途。
  动物不单单喜欢“磕药”,它们也爱沉溺于酒精世界,大象就是其中臭名昭著的一员。非洲象在吃了发酵果后,会变得极其兴奋而富于攻击性,而它们的亚洲兄弟同样常常因为“醉行”而被新闻朋友关照——2002年12月,在印度东北部,有几头大象在破坏一个谷仓后意外找到几桶米酒,喝完之后,它们就开始横冲直撞,巨大的身躯甩啦甩啦,造成一起六人死亡的交通事故。
  酒后飞行则更危险。常有报道说,吃了发酵果子的醉醺醺的鸟儿撞到建筑物或树上,然后一头栽下来,翘掉。这些肇事者尤以知更鸟和腊翅鸟为甚。每年冬春天,冻僵的果子开始解冻,某些鸟类就统统吃掉这些容易发酵的果子。曾有研究表明,有些腊翅鸟因为毫不节制地吃了过多的发酵果而引发酒精性肝病。放纵,足以危害禽兽。
  守株待鸟拣几只醉鸟来吃,想来倒是不错的主意,不过,文献记载中,这样的遭遇并不愉快。据密歇根州立大学的斯科特?菲兹杰拉德报道,有位妇女曾因一些腊翅鸟猛然从房顶坠落而受到了惊吓,“它们乱哄哄地飞,就像喝醉了,然后突然直直掉在地上”。你永远无法预料什么会降临到头上——等的是幸福,结果是傻鸟——这是什么鸟事啊。研究者对两只死于这场坠机案的鸟儿进行解剖,在体内找到了一些发酵过的山楂果,并发现肝内的酒精量足够让这些鸟完全醉倒。
  猴子也喜欢喝酒,但是它们更接近人类的风格,懂得克制——嗯,是某些人。曾有研究者在加勒比海的一个岛屿上观察一群猴子的喝酒行为,发现大约有15%的猴子是绝对的禁酒主义者,而剩下的也多显得有节制,甚至会用果汁兑了酒精来喝。只有5%的猴子纵情饮酒,喝高到烂醉如泥。嗯,像某些人类。
  近日有项研究颇为细致地比较了猕猴和人类的饮酒行为。研究者先将21只猴子做好标记,让它们集体在一个房间里随意饮用一种甜酒,度过“欢乐时光”;在另外一回,其中10只猴子分别被弄到单独的房间,关起门独酌杯中物。研究者测定两次实验后猴子体内的酒精浓度,想对比它们在不同环境下的饮酒行为。
  这项滑稽的实验有何意义?实验的研究者之一,美国马里兰健康动物中心的一位科学家表示,“看到猴子们跌跌撞撞、翻跟头、呕吐真是件不寻常的事,有些嗜酒的猴子会一直喝到倒下为止。”看得出他也很欢乐。
  当然,他解释道,这篇发表于2006年5月的科学论文并非只是看猴戏。猴子的“血液酒精浓度超过了美国许多州的合法水准”,还有,猴子的饮酒行为像极了人类,“比起在群体中,单独饮酒的猴子会多喝2到3倍。在集体中时,有许多因素限制了它们尽情享用酒精,例如社会地位或等级制度。”等级高的猴子似乎有所顾忌,在大伙面前不怎么喝酒,颇为自制。很明显,装的啊。
  此外,像人类一样,猴子的纵欢也随心情而异,若是经过长时间的实验后,情绪紧张,猴子们就更倾向于狂饮一番。要知道,它们不用买单,干吗憋着呢。

使用Linode遇到的若干问题

最近用了Linode, 一直没用过Linux, 遇到许多问题.

1. 权限问题
经常遇到权限问题引起的FTP无法上传, FTP无法启动等问题

2. WORDPRESS上传问题
两个博客, 权限设置完全一样, 其中一个就是无法上传图片, 百思不得其解, 最后发现居然是上传目录有问题(其中一个博客是从其他地方转移来的, 设置的上传目录是绝对的物理地址, 换了服务器自然无法成功).

敏捷开发:从外到内,自上而下

传统的系统开发, 首先确定数据库结构, 然后是核心数据处理, 调用, 模型建立, 最后才是模板, 界面的设计.

今天想尝试一种新方法, 从外到内, 自上而下.

受启发于敏捷开发中的测试单元.

界面体现了我们最终想实现的样子, 有哪些数据需要被展示, 调用计算.

模板决定了这些数据在以后的二次开发中希望怎样被调用.

相信完成这两个步骤以后, 对框架的结构和数据库的结构也就明了了.

更新, 直接Edit Permalink的Custom-Permalinks 插件

很多人一定都使用了Custom-Permalinks这个WordPress插件. 它可以自定义你的博客URL.
但是有个比较别扭的地方, 就是在Post中,Custom Permalink的制定是放在表单最下面的, 使用起来很不方便.
我经常一不小心就想要点击Title下面的Change permalinks, 而实际上这个链接是指向系统设置页面的.

我修改了一下这个插件, 现在使得Post中修改Permalink就像在Page页面中一样, 直接Edit就可以(替换了原来的’Change Permalinks’按钮).

 

DIY的Custom-Permalinks插件

 

点击下载更新后的custom-permalinks插件

使用404.php重写wordpress的URL, 导致分页URL出错的终极解决方案

如题, 当使用404.php重写URL的时候, 会导致文章分页的URL混乱.

网上盛传的解决方法是修改wp-setting.php文件.

但是存在一个问题, wordpress版本更新很快, 每次更新版本后, wp-setting.php文件都会自动更新, 从而导致修改被覆盖.

而且每次修改wp-setting.php很麻烦, 另外, 修改后发现中文slug的文章category页面显示不正常了.

最后反复研究url的问题, 得出终极解决方案: 只需要更新你的404.php, 一劳永逸, 而且中文url打不开的问题也一并解决了!!!

不多废话, 贴出代码:

< ?php
$qs = $_SERVER['QUERY_STRING'];
 
$qsu = mb_convert_encoding("$qs","UTF-8","UTF-8");
 
$_SERVER['REQUEST_URI'] = substr($qsu, strpos($qsu, ':80')+3);
 
if(strpos($_SERVER['REQUEST_URI'],'?')>0)
{
	$_SERVER['SCRIPT_NAME'] = $_SERVER['ORIG_PATH_INFO'] = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'));
	$_SERVER['QUERY_STRING'] = substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], '?') + 1);
}
else
{
	$_SERVER['SCRIPT_NAME'] = $_SERVER['ORIG_PATH_INFO'] = $_SERVER['REQUEST_URI'];
	$_SERVER['QUERY_STRING'] = '';
}
 
include("index.php");
?>