Thursday, March 04, 2010

Blogger FTP 迁移工具发布

今天下午 2 点左右,Blogger 专门发布 FTP 功能关闭及转移相关信息的 Blog “Blogger FTP Info”发布消息说 Blogger FTP 的迁移工具上线了Twitter 上的 Blogger 官方帐号也同步发布了这条消息。

目前这个迁移工具还在试用和观察阶段,因此仅在“Blogger in draft”有效。如果你的 Blogger 是基于 FTP 发布且开启了 Blogger in draft,那么现在登录你的 Dashboard,就会发现如下图的一块提示信息,告诉你 FTP 发布功能将会关闭,建议迁移到 BlogSpot 或者用 Custom Domain 功能代替。

Blogger FTP 移植工具提示框

消息以及以上提示框中都提到,FTP 发布功能停止的期限是 2010 年 5 月 1 日,比起先前通知的 2010 年 3 月 25 日,期限又宽限了一个多月。

这则消息还提供了一个视频,用来指导用户如何使用迁移工具对 FTP 发布的 Blog 进行迁移。主要包括以下步骤:
  • 用户选定一个 BlogSpot 二级域名或者 Custom Domain 的域名
  • 如果是 Custom Domain,则需要把自己选定的域名的 CNAME 记录指向 ghs.google.com
  • Blogger 根据用户选定的方案和域名创建新的站点
  • Blogger 向原 FTP 服务器重新发布所有的页面,给所有 HTML 页面添加两条标签:rel-canonicial,用来指示页面的新 URL;meta-refresh,当读者访问旧页面时自动跳转到新的 URL。如果文章数量很多的话,该操作会花费很长时间。工具提供了一个选项,可以让该操作完成时发送邮件通知你。
  • Blogger 向原 FTP 服务器发送一篇新文章,告知所有的读者该 Blog 发生了迁移,同时也通知所有的订阅读者更新订阅地址
  • Blogger 随机请求一些原 FTP 服务器上的页面,确保迁移跳转的内容添加成功
  • 迁移完成,读者用新的地址访问 Blog

总的来讲迁移过程还算简便,对原 Blog 的影响应该说也降到了最低。但其中涉及到重新发布所有页面的环节,对于文章数量很多的博主来说,这个过程及有可能会中断或者失败。至少最近几个月以来,我发布文章时,FTP 上传操作几乎没办法一次成功,更何况是重新发布整个 Blog。

我之前有篇文章提到 Blogger FTP 发布功能关闭的应对措施,因为 BlogSpot 和 Custom Domain 功能在国内都因被墙而无法使用,另外 Blogger 提供的 Layout 模版管理对于我来讲仍然不够灵活,没有对整个网站所有文件的完全控制权,因此我无法,也不会将目前 FTP 发布的 Blog 迁移到 BlogSpot 或者 Custom Domain。解决方案是利用 Blogger 提供的 Feed 接口将所有文章数据同步到本地数据库,然后自己写一些 PHP 脚本利用这些数据直接在服务器上生成静态 HTML 文件。这样,既可以继续使用 Blogger 网站来编辑文章,保存文章;读者访问时直接访问静态页面或使用本地数据库,页面打开速度仍然有保证;我也可以按照自己的方式随心所欲编辑模版,开发各种功能,可谓一举数得。目前这个工作已经开始了,加上 Blogger 又宽限些时间,因此一定可以赶在 FTP 发布功能失效前完成。

Tuesday, March 02, 2010

NOKIA 手机安装 MIDlet 时出现“Conflicting application”错误及解决

最近发现在某些诺基亚(NOKIA)手机上安装带有 Push Registry 功能的 MIDlet 时,会发生安装失败的情况。错误信息有可能是“Push registry failure”(S60v3),或者“Conflicting application”(S40v6),出现这个错误的直接原因,应该是安装程序在执行 Push Registry 注册时失败,认为要注册的目标端口已经被其它应用程序占用。

实际的情况是之前安装过同样的 MIDlet 的旧版本并已经删除。然而,无论是软格机、硬格机,用 Nokia Software Updater 重装/升级 Firmware,都无法解决。

最后发现一个简单但有效的解决办法:
  • 将 JAD Property 的 MIDlet-Push-1 中 Push Registry 的端口改成别的端口
  • 这时 MIDlet 应该能够正常安装。如果你的应用并不在乎使用哪个具体的端口,那么到这里问题就已经解决了
  • 如果应用必须使用之前的那个固定端口,那么将安装好的 MIDlet 删除(卸载)掉,将 JAD 中的端口再改回去,然后就可以正常安装了