为Gravatar设计的摄像头拍照功能上线

之前介绍过Gravatar这样一个“全球通用头像”的小玩意。今天,我很高兴地宣布,Gravatar已经支持了在线摄像头拍摄。其实上线已经有一周多,但今天fix了两个比较严重的拼写bug,所以我这篇日志今天才发表:)

具体使用方法:

一、登录Gravatar之后,在左上角的菜单点击“Add an image”,进入添加图片的页面:

二、在添加图片的页面中选择“A webcam attached to your computer”:

之后,就可以进行拍摄了。如果你没有摄像头,也可以看看这张界面截图,图片是我的鼠标手腕垫:

最后想说的是,这虽然只是一个非常简易的功能,不过其界面和交互设计完全由我一人完成。请大家多提意见。

WordPress 2.6彩蛋演示视频

Donncha几天前公布了一个2.6的彩蛋,而实际上我也是看了他的文章才知道。看了Donncha的视频,我也录制了一段视频:

另外,国内的wangyh小朋友可能是我周围发现这个彩蛋最早的一名Blogger,他的视频早在8月份就录制好了:)

要想激活这个彩蛋,只需要按照如下步骤操作即可:

  1. 确认你的Blog开启了版本修订功能:在wp-config.php中有
    define('WP_POST_REVISIONS',true);
  2. 找到一篇文章的“Revision”列表,选择两个相同的修订版
  3. 点击“Compare”按钮进行比较即可

其实这个版本修订功能并没有太大价值,而且会影响文章ID号的连续,平时建议将它禁用。禁用的方法只需要在上面提到的wp-config.php中加入

define('WP_POST_REVISIONS',false); 

即可。

之前,也有许多WordPress博客社区建议大家取消这一功能。如此看来,Automattic那帮工程师辛辛苦苦折腾出来的“版本修订功能”最终只有这么一个彩蛋能讨好用户啊:)

如果用IP地址能访问到你的WP blog,请立即更新WordPress到2.6.5

Automattic官方发布了2.6.5版的WordPress,更新了/wp-includes/下的post.php、version.php、feed.php以及/xmlrpc.php和/wp-admin/users.php

如果你的blog能够通过IP地址访问,例如:http://xxx.xxx.xxx.xxx/,最好立即更新到2.6.5

值得一提的是,由于之前曾经有一版伪造的含有木马的WordPress 2.6.4流传出来,官方决定跳过这个版本号。请看截图:

关于WordPress 2.6.4的诈骗,这里有非常详细的图文说明。

给页面加上Loading效果最简单实用的办法

虽然现在的GMail已经看不到这个效果,但之前那个可爱的深红色Loading仍然让许多人喜爱。我也将这款效果融入了我自己的WordPress主题TES中:

其实我的方法非常简单,也可以说没什么技术含量,甚至还不支持IE6,但据我长期的观察,确实非常实用的。Analytics的统计数据表明,加入了这一效果之后,用户的“平均停留时间”的确有所提高。可见,一个“正在加载”让许多用户都有更多的耐心等待,而不会因为屏幕空白太久而不耐烦地离开。

最近,又有不少朋友留言询问这个Loading的实现原理。这里我就分享一下:

首先,在页面的最上部输出一个Loading文字,比如“正在加载”,用div标签包含,并给它一个id,比如loading:

<body>
  
正在加载

你可以直接放到页面的<body>标签后面,亦可以用script.write输出(如果你有SEO洁癖的话)

然后,在你的样式表中,对这个loading设定一个简单的样式:

#loading{z-index:1;padding:5px 0 5px 9px;
background:#c44;left:0;top:0;width:90px;
color:#fff;position:fixed}

接下来,在你<body>标签闭合之前,将这个loading隐藏掉就可以了。最简单的方法是输出一段<style>标记:

  document.write('#loading{display:none}');
</body>

如果你有jQuery之类的JavaScript库,就更方便了,例如jQuery可以使用:

  $('#loading').hide()
</body>

这样,当页面完全加载完毕之后,loading就隐掉了。

对于WordPress博客,如果你对页面代码没有太苛刻的洁癖,我个人建议把一些重量的JavaScript库都放到这段loading之后引入。这样在浏览器端,你的“Loading”会飞快地出现,用户会觉得你的服务器响应非常迅速。然而,如果你从各种不同的域名下先加载几百kb的JavaScript库,估计用户在你的“Loading”出现之前就已经关闭页面了。

最后,希望这个老土的技巧能帮到你:)

WordPress2.7的XMLRPC Comments API会颠覆一些SNS领域的规则么?

在“关于WordPress 2.7你最喜爱的新功能官方投票”里,WordPress2.7的新功能“XMLRPC Comments API”仅获得了1%的支持。不过,这个API的意义还是非常重大的。

光是与IntenseDebate的集成我们已经可以预料到未来的评论系统有多强大了。如果说WordPress颠覆了传统网络媒体和人们表达声音的模式,那么XMLRPC Comments API很可能会颠覆SNS的游戏规则!

细节方面,我认为可能集成一些身份整合服务,openID或者其他Passport,例如强大的Google ID,而评论系统本身的交互性、立体感也会更好:Rating、Digg等可能的设计都会集成过来(例如我就比较喜欢牛博网的“支持”和“反对”);数据统一化之后,IntenseDebate更能帮助管理员统一地分析、处理这些评论,将Spam的几率降低到极限。进而让Blog的信息质量和交互效率提高相当的程度。

反观SNS,流量最高的仍然是日志照片Profile页面,交互性最强的仍然是好友之间的留言。而Social App,说的好听点,任重而道远,你认为一个人会在好友买卖上连续玩3个月么?我也认识一些朋友通过抄袭Flash和他人创意挂广告赚了不少钱,但他们都知道这不是长久之计。信息的原始产生者会牢牢把握住内容的,抄袭者迟早要缴枪, 

说一个题外话,XMLRPC Comments API对于管理体验来说,也是有潜力可期待:Adobe在刚成立(感谢老友7yue提醒)的AIR官方Blog中就提到一位叫做Daniel Dura的平台evangelist(布道者)制作的AIR产品“Moderator”。遗憾的是在2.6由于没有XMLRPC Comments API支持,安装起来不够完美(需要独立安装一个plugin)。但有了XMLRPC Comments API之后,安装插件、管理评论会变得非常轻松:)

当然,这一切都还需要时间,但我相信会有一天,这篇文章中所陈述的一些观点会得到证明:)

PS:虽然我和Automattic有项目合作,但那也是基于单个项目的,我介绍的Automattic和WordPress的内容纯属爱好。我不怕被人说我在为谁打广告,我只是在按照我的真情实感陈述一些事实而已。如果你不喜欢(例如很多人认为我对MSN的批评过了)你可以建立一个Blog来发出你的声音,然后往各大媒体投稿淹死我:)

为WordPress博客集成IntenseDebate服务

IntenseDebate是一款由Automattic刚刚收购的服务,可以有效地提升Blog评论系统体验、质量以及提高站长的管理效率。

在管理页面找到这个链接:

目前集成IntenseDebate需要邀请码(今天有幸收到)。如图:

然后就会看到安装向导:

安装完毕之后去setting即可。我的blog目前正在调试。

十分抱歉,目前评论的数据库同步遇到了一些问题,这篇文章暂时无法评论,不过也发现了一个很不错的的答疑系统……

WordPress 2.7集成开源项目SWFObject、SWFUpload及其他

刚刚从SVN更新了最新的WordPress2.7,看到这么几条:

我顿时反应过来,这就是著名的开源项目SWFObjectSWFUpload,分别是SWF嵌入脚本(将Flash嵌入网页)和SWF上传脚本(利用FlashPlayer API上传文件,可支持批量上传并跟踪进度)。其灵活性、可维护性、稳定性都非常优秀。目前,这两个项目均是Google Code托管。

了解Flash技术的朋友应该对SWFObject不陌生了,这是一个历史悠久的开源项目了,在微软对SWF嵌入进行了很无奈的“单击激活”检测之后,顿时流行起来。我也有幸参与了SWFObject 1.5简体中文版的文档翻译工作(目前已经升级到2.0并由Google Code托管,地址见上文)。

而SWFUpload,则是我去年秋天关注的一个新兴项目。它的前身似乎是叫做“mmSWFUpload”。众所周知,Flash8之后提供了基于文件的API,而在Flash9(ActionScript3)之后,这款API得到了极大的完善和规范。同时,2005年发布的Flash8本身又提供了一个ExternalInterface的接口,这样我们很容易地能够让JavaScript(其实就是DOM,通俗地“HTML”)和ActionScript互动。进而,就有了mmSWFUpload这样一个项目:让上传的界面完全用HTML呈现,用户在页面中的体验更加统一化。

说到这里,还有一个小故事:2007年秋天,这个项目还只有ActionScript 2.0的版本,我当时曾看过其源代码,并不是特别满意,而且官方也一直没有更新。正当我刚刚自己动手写完ActionScript3(当时也正在建立as3blog.com)的脚本时,官方突然放出了ActionScript 3的API,令我颇为郁闷。

WordPress自从1.5版之后,在插件和内核方面都有长足的进步,尤其是Automattic开放性和兼容并包、兼听则明的特点,我认为很可能会是互联网寒冬中活的最好的一个企业:看看TechCrunch和Facebook正为新闻稿和融资(传言)忙的不可开交,而Matt Mullenweg同学却悠闲地从北京到上海,从柏林到夏威夷,进行着他作为WordPress evangelist的环球旅行呢。没错,WordPress的理念并不是“一家独大”,而是“百花齐放、百家争鸣”:这一点,我想TinyMCE项目的负责人应该更清楚:)