十一月 15

你博客的 ping 列表真的全在工作吗?

我们知道在博客发表文章时,可以利用 XML-RPC 技术将更新通知到各种 Blog 的服务商、搜索引擎等,好让它们主动来抓取,从而提高博客文章被收录的速度和范围。

Google 的 Blogger 不像 WordPress,后者提供了一个方便的 Update Service,只要将 Blog 服务商公布的 XML-RPC 接口地址填进去就可以方便的在发布的时候 ping 这些地址。Blogger 只是在 Settings » Basic 有一个“Add your blog to our listings?”的选项,解释说选择了“Yes”,Google Blog Search 以及 Weblogs.com 就会来收录,除此之外并没有一个可以设置 ping 接口地址列表的地方。

我强烈怀疑 Blogger 这个选项的作用,因为曾经有很长一段时间 Google Blog Search 都没有收录我的文章,后来为了确保收录效果,每次发布文章后我都手工 ping,于是通常 5 分钟内文章就会被收录,而 10 分钟左右,Google 的网页搜索也会收录这篇文章(观察到的最快纪录为 8 分钟)。但是每次都要手工去 ping 确实很麻烦,于是今天就琢磨着自己用 PHP 写一个简单的 XML-RPC 客户端来做这个工作,顺便还可以把其它主流的 ping 服务地址加进去,批量执行。

结果是不试不要紧,一试吓一跳。 继续阅读 »

十一月 07

Google 手机地图 2.2.1.5 发布

最近几天在国内的 IT 媒体纷纷报道 Google 手机地图发布了最新版本。原本还在纳闷九月底的新闻怎么现在大家才反应过来,后来看到 Google 黑板报消息,Google 手机地图 2.2.1.5 发布了。和之前发布的 2.2.0 版本相比,除了已经有的“我的位置”、“行车路线”和“公交换乘”功能意外,显著的改动就是增加了“实时路况”功能,可惜目前只支持北京和上海两个城市,希望支持的城市能够逐渐多起来。

在自己的手机上试装了一下 Symbian S60 v3 版本,中文版安装时显示的系统版本号为 2.02(1),之前版本为 2.02(0);安装完毕后“关于”界面显示版本号为 2.2.1.5。测试地点和上次一样,而这次利用 GPRS 基站信号定位的地点比上次更接近于实际位置,相差大约为 20 米,可能是因为所处位置并不在道路上。上次定位于实际相差至少 100 米,不知道这次版本升级对“我的位置”定位是否也做了改进。

由于“实时路况”功能尚不支持成都,开启后显示“正在加载路况信息……”不久显示“无此处的路况信息可用”。待以后支持成都市地图后再行测试。

另外顺便也安装了一下英文版,版本号为 2.02(0),仍然和上次一样,安装后 About 页面显示版本号 2.2.0.13,但功能上也多出了“Traffic Info”选项,开启后出现的情况和中文版一致。

十月 28

向微软 Live Search 提交 Sitemap

作为 Webmaster,您一定知道 sitemap;您应该也知道使用 Google 的网站管理员工具来提交 sitemap 让 Google 收录您的网页;您或许还知道 Yahoo! 具有同样的站长工具(及其英文版)。

最近发现微软还在 beta 测试中的 Live Search 也推出了这样方便站长的工具 Webmaster Center

和 Google 及 Yahoo! 的类似,以上 Webmaster Center 工具会让您提供网站的入口地址和 sitemap 地址,然后 Live Search 会提示您下载一个 LiveSearchSiteAuth.xml (文件名真是个微软特色十足啊)文件,其中含有和网站对应的校验码。上传至您网站的根目录,使其能够用

http://www.mysite.com/LiveSearchSiteAuth.xml

这样的形式访问到即可。过一段时间 Webmaster Center 就会自动处理您提交的 sitemap 了。

对于已经录入过的网站,可以在 Site List 页面上的站点列表中点击网站地址的链接进入每个网站查看具体信息,包括摘要、属性、抓取问题、反向链接、链出链接、关键字和网站地图等信息。当网站地图发生改变时,可以通过 Ping 地址

http://webmaster.live.com/webmaster/ping.aspx?siteMap=[your sitemap web address]

来主动通知 MSNBot。

相信有了这个工具后,我们的网站就更容易被 MSN 和 Live Search 收录了。如果您的网站有 sitemap 而还没有提交给 MSN,不妨试一下这个办法。

十月 10

MIDlet 在索爱手机上安装失败

最近在工作中,发现一部分索爱 (SonyEricsson) 手机,在安装 MIDlet 时发生“Downloading failed”错误。具体情况发生在手机通过 OTA 安装 MIDlet,Jar 文件下载完毕并开始安装后,系统询问是否允许应用程序自动启动,以及是否允许应用程序收发短信,接下来就出现“Downloading failed”。

在出现此问题时,使用的是 Orange France 的 SIM 卡,考虑到 GPRS 漫游可能会带来的问题,我们改用中国移动的 SIM 卡,则安装正常。看来和 SIM 卡有关系。但同时,在索爱手机上无法安装的 Orange France 的 SIM 卡,在其它一些索爱手机以及所有 NOKIA 手机上都能正确安装,所以并不是由 SIM 卡本身 GPRS 漫游引起的。

几个星期以来,一直被这个问题困扰,百思不得其解。今天修改一个关于 PushRegistry 的 bug,突然想起来可能和 PushRegistry 有关,又重新 Google 了一番,发现了索爱官方论坛上的这个帖子:

https://developer.sonyericsson.com/thread/17306

帖子的作者遇到和我们完全一致的问题,而最终的解决办法,由索爱的技术人员给出了答案。

这个无法安装的错误,确实和 PushRegistry 有关系。如果把 JAD 中“MIDlet-Push-*”的属性去掉,则可以正常安装。但导致出问题的最终原因,是手机短信选项设置中存在没有值得空选项,如“Service center”、“Message type”、“Validity period”。SIM 卡通常都会为这些选项自动设置,但如果某一个选项没有设置,成为空值,则会导致上述情况。

我仔细查看了我们有问题的手机,所有手机上的“Validity period”都为空。设置成“Network maximum”后,MIDlet 安装和 PushRegistry 注册就完全正常了。

另外,我们发现有问题的手机包括 K700、K500、W800、S700、K600 等,多为 JP-3、JP-5 平台的手机。

十月 09

用微软正黑代替新明细

之前说到过在 Windows XP 系统下使用 Vista 的新中文字体“微软雅黑”,而对应繁体中文,Vista 同样有一款字体——“微软正黑”。(点击这里下载

繁体中文 Google 下使用“微软正黑”的截图

繁体中文 Google 下使用“微软正黑”的截图

可能是由于繁体中文汉字笔划相对较多,这款“微软正黑”和雅黑比起来要淡一些。除此之外其它的使用方法都类似:需要打开 ClearType,粗细浅淡的使用习惯也可以通过 ClearType Tuner 的 Windows XP PowerToy 来调节。总体来说,和雅黑还是有着同样的水准,和以前的“新明细”体比起来,也更遵行当前平面设计审美需求的潮流吧。

另外,据说 Windows Vista 下日文和韩文也有类似的字体,有需要的朋友也可以找一下,同样可以用在 XP 下。

十月 02

宋体-PUA

最近发现系统里多了个新的字体——宋体-PUA,Google 了一番,才知道是随着 Windows XP SP3 更新新增的字体。

仔细研究了一下,和通常宋体最大的区别在于,这个“宋体-PUA”在西文部分(半角 ASC-II 字符)使用了和 Times New Roman 一样的字体,而不再是以往难看凌乱的样子。以下列出了四种字体的对照图:

宋体-PUA 与相关字体比较

可以看出,在将字体设置成“宋体-PUA”时,显示出来的效果和“Times New Roman”一致。“Times New Roman”是西文字体,显然不会带有汉字的字体,这是因为系统默认的汉字字体是“宋体”。

我以前有文章提到过以前的宋体自带西文字体很难看,字体比较小时,粗体的字母 M 会缩成一团,而大篇幅排版时,整个版面显得非常凌乱,因此我会在任何场合都避免使用宋体的默认西文字体。

而现在微软终于意识到了这个问题,将其默认字体换成了西文系统(至少是英文系统)中衬线字体的默认字体“Times New Roman”,和同是衬线字体的宋体搭配起来,可谓相得益彰。

第四行相信大家都不陌生了,是 Windows Vista 系统默认的“微软雅黑”字体(看另文介绍),与宋体不同的是,微软雅黑是黑体的一种,属于非衬线字体。

通常来讲,大篇幅的正文部分排版应该用衬线字体,如宋体,Times New Roman 等,然而中文较英文来说笔划较多,在字体比较小的时候,显示起来有很大的困难,如果再加上衬线部分,可能会更难。而非衬线的字体在这种情况下,反而显得清晰整洁,可能这也是为什么在追求界面视觉效果的今天,微软的 Vista 和 Macs 系统都选择的黑体的原因吧。

Google 网页搜索在 9 分钟内就收录了文章
九月 28

让 Google Blog Search 收录文章

Google 除了网页搜索外,还有个专门搜索博客文章的引擎,叫做 Blogsearch。基于 Google Blogger 构建的博客里面,反向链接的数据就来源于此。每次打开 Blogger 文章页面,实际上都会通过 JavaScript 作一次 Blogsearch 搜索,并把返回结果作为反向链接显示。

你可能觉得既然 Google 网页搜索都收录了,那同是一家的 Blogsearch 一定也收录了。事实并非如此。

通过 Google 的 Webmaster 管理工具 向 Google 提交自己的 Sitemap,有利于让 Google 在第一时间收录网站更新的页面,但是,这仅限于网页搜索。

最近发现 Blogsearch 似乎没有收录我的文章,仔细查看发现居然已经有两个月之久了,而这些文章通常在发布后快则数小时慢则最多一天内就被网页搜索收录,很是诧异。Google 了一把,找到这篇文章分析原因,说是因为 Blogsearch 和 Feedsky 的自定义域名不兼容有关。

我确实是在 FeedBurner 被封后改在页面上使用 Feedsky 的服务,但对于 Google 的 Blogsearch,向来是由 FeedBurner 自动去 Ping 的,就算 FeedBurner 被封但这个机制应该是仍然在工作的。而且要出问题早该出了,也不至于是在最近这两个月发生吧。百思不得其解,打开 FeedBurner 仔细查看了一下设置,发现设置中“Publicize » PingShot » Google Blog Search Pinging Service”前面的复选框没有勾上!难怪 Blogsearch 不收录文章了,都没人通知它了啊…… 至于为什么 FeedBurner 上这个选项是关闭就不得而知了。如果你也使用 FeedBurner 的服务,也发现 Blogsearch 收录有问题,那么最好也去检查一下。

把这个选项打开后,为了以防万一,又到 Blogsearch 的网址提交页面重新提交了一下网站的 feed 地址。大约过了一小时后,最近两个月没有被收录的文章就立即能够被搜索到了。注意这是一次性的通知服务,如果没有自动 Ping 的机制,则每次网站更新后都要手动执行这个操作。

如果使用其它支持自动 Ping 的 BSP 的话,可以添加 Blogsearch 的 Ping 服务 API 地址:

http://blogsearch.google.com/ping/RPC2

如使用 WordPress 的话,在 Update Services 里面添加这个地址就可以了。更多详细内容可以参考 Blogsearch 的常见问题API 接口文档

Updated on 2008/10/29:

实践证明,使用 Google Blog Search 对 Google 文章的收录是有显著成效的。如下图,在文章发布后,立即 Ping 了 Google Blog Search,不多久就被收录;9 分钟后,Google 的网页搜索便也收录了这篇文章。

九月 24

Google 手机地图 2.2.0 版

Google 黑板报消息称 Google 的手机地图升级到了 2.2 版本,和之前的版本相比,多了“我的位置”、“行车路线”和“公交换乘”功能。

这些功能在以往的 Google 地图英文版是有的,只是先前的英文版本中没有国内的地图信息,于是就造成了中文版有地图不能使用 GPS 辅助,英文版有 GPS 辅助没有国内地图数据的尴尬境地。

我使用的是 Symbian S60 v3 的版本。这次升级时,手机上中英文版本显示的版本号都是 2.02(0)。简单的试用了一下,在没有 GPS 功能的情况下,也能通过 GPRS 基站数据获得大概的当前位置,只不过精度范围 2500 米至 5000 米,似乎实用性并不大。行车路线和公交换乘倒是比较方便,只是后者的公交数据仍然相对滞后。例如搜索从“成都市游乐园”到“成都市九眼桥”,会显示出 60 路,而这条线路已经在几个月前就取消了。

比较奇怪的是,在仅安装 2.2 中文版的情况下,程序中并没有找到“GPS 辅助”的选项,而 2.2 的英文版中却有“Use GPS”的选项。匪夷所思的是,英文版安装好后,中文版的“GPS 辅助”选项又神秘的出现了。在 Nokia N95 8G(自带 GPS)和 Nokia N73(蓝牙连接外置 GPS)上测试,情况一样。

另外,在英文版中,国内的行车路线和公交换乘功能似乎不可用。所以,看来比较理想的解决办法,就是同时安装中文版和英文版,这样才能在中文版中使用所有的功能……

最后,SISX 文件的下载地址:中文版英文版

九月 23

MIDlet 在 NOKIA 手机上安装失败

这两天发现一个奇怪的问题,就是 MIDlet 在 NOKIA 6680 上无法安装。在 Jar 下载完成后,会显示“Unable to install. Not enough memory!”而安装之前手机刚刚执行过出厂复位操作,机身空余存储空间约 7MB,因此,安装失败不可能是装不下 MIDlet 的内容而导致的。

经过反复研究,终于发现问题出在 Jad 文件属性 MIDlet-Data-Size 上。这个属性是 MIDlet 用来告诉手机,该应用程序将需要多少 RMS 存储空间。由于 NOKIA 6680 的 RMS 容量,实测有 7128 KB,和机身的空余存储空间相等,也就是说理论上手机能装多少,MIDlet 的 RMS 就能装多少,因此应用程序的 Jad 里头,MIDlet-Data-Size 设置的值是 133072,也就是 128KB。

经过反复修改 Jad 文件里 MIDlet-Data-Size 的值,发现允许的最大值为 65536,也就是 64KB。任何超过这个值的应用程序,在安装时手机都会拒绝。

同样的问题在 NOKIA 6131 上也同样存在。如果有其它手机也有类似问题,以后会随时更新。

九月 05

测试手机的 User-Agent

由于最近工作中需要得到一些手机的 User-Agent 以及 X-Wap-Profile 两个 HTTP 头的值,于是写了个简单的 PHP 程序,检测 HTTP 头,输出到 Response,然后放到网站上,让手机用 WAP 浏览器打开查看。

开始这个程序只是简单的输出纯文本,结果是 NOKIA、Sony Ericsson 以及 Samsung 手机都能正确读出,而 Motorola 却不行(实际测试过程中用的是 Motorola RAZR V3i),仅显示白页。

后来把程序改成输出标准 WML 页面,HTTP 头的 Content-Type 设置成 application/vnd.wap.xhtml+xml,NOKIA、Sony Ericsson 以及 Samsung 仍然能够正确显示而 Motorola 还是不合作。

最后找到答案,Content-Type 要设置成“text/vnd.wap.wml”,这下 Motorola 终于老实了…… 可是结果中只有 User-Agent,没有 X-Wap-Profile。

另外,在用中国移动的 SIM 卡测试的时候,发现 HTTP 请求中并没有 User-Agent 和 X-Wap-Profile 这两个头,而有个奇怪的

VIA: HTTP/1.1 SCCD-PS-WAP-GW02 (infoX-WISG, Huawei Technologies)

开始以为是手机的问题,但看到“Huawei”字样,觉得很蹊跷,后来换成 Orange France 的 SIM 卡,则一切正常了。

看来拦截 HTTP 请求是中国运营商的“优良传统”啊!

Update 2009/08/03:

最近发现中国移动这个问题只存在于 cmwap,用 cmnet 则正常。

正在加载在更多文章…