发现一款高性能的PHP博客程序:Sablog-X

标签:PHP

提到博客程序,大多数人第一反应就是WordPress了,毕竟用户最多,插件和主题也众多。
不过今天在闲聊中发现WordPress性能有很大问题:在我自己电脑上测试时,打开使用默认主题、没装插件、只有2篇文章的首页需要25次数据库查询,后续访问需要17次数据库查询,花费0.3~0.4秒;而同样是在我电脑上,打开有上万帖的Discuz!论坛首页需28次查询,后续为6次,花费0.1~0.2秒。不得不说WordPress这样差强人意的性能实在太让人吐血了。

用deferred时遇到个PicklingError

标签:Google App Engine, Python

用deferred写了个任务,本以为没错的代码,测试时却遇到这个错误:
<class 'pickle.PicklingError'>: Can't pickle <function generate_categories at 0x6a4387e469f6a3b8>: it's not found as model.generate_categories
研究了半天才明白过来,model.generate_categories这个玩意我当然没有定义,我是在model模块里调用Category.generate_categories()这个静态函数。看来pickle这个玩意比较傻,只能识别全局对象。

于是加了一行赋值代码,问题解决:
generate_categories = Category.generate_categories

原来count(None)就不限制最大值了

标签:Google App Engine

今天在GAE论坛里看到的,特意去查了下代码,发现为None时就不调用set_limit(),直接返回总结果数了。(查看请求pb,发现会设为0x7fffffff。)

当然结果集太大时仍然不推荐,毕竟count也是很费时的。

此外fetch仍然没有这种便利,必须传一个整数。

用Google Buzz API获取Google Profile头像链接

标签:Google, JavaScript

昨天gravatar被墙了,不知道有多少WordPress用户受害,好在目前https还是能正常访问的。

不过为了保险,我还是去找了条后路,就是使用Google Profile头像。每个Google账号都可以在Google Profile里设置自己的头像,麻烦的是Google一直不开放Google Profile API,于是没法根据email地址获取头像链接。
找了半天后发现Google Buzz API里有获取Google Profile的方法,于是试验了一下,果然成功了。

« 看看还有什么好玩意