6年以后的变化

我都忘记曾写过这样一篇文章《Google总让我惊喜》,居然被网友翻出来评论了一把。Google Reader 要关闭这件事,的确让人伤心,因为:

From your 189 subscriptions, over the last 30 days you read 258 itemsclicked 7 itemsstarred 13 items, and emailed 0 items.

Since October 30, 2006 you have read a total of 62,661 items.

其实这心,在 Google Reader 中的 Share 按钮被改成 +1 以后,已经伤了一次了。在我这样一个中国用户眼里,Google Reader 曾是 Google 最好的 SNS 产品,就是因为 Note 和 Share。

不太能理解 Google 放弃 Reader 的决策。基于自己的很多优秀产品(Gmail, Reader, Android, Google+),Google 吸引了很多忠实的注册用户,这一点被其它很多公司羡慕——包括百度,除了腾讯。产品推广的时候,吸引用户注册使用往往是一件很困难的事情,这时就能凸显出用户基数大的好处了。好产品越多,用户的忠诚度肯定越高。如果只有单一的产品,产品没落后用户就会轻易地流失,从这个角度看,我觉得保留 Google Reader 看起来不是一件坏事。

无论如何,Google Reader 是快没了,总要寻找其它的替代品。从目前我的探索来看,Feedly 像是一个比较好的选择,但它的连接不是 https 的,可能会被关键词过滤(或者直接被封掉)。鲜果阅读器看起来也还可以,起码比 QQ 阅读看着更像 Google Reader。豆瓣 9 点就不说了,同步的速度是个渣,也没用心做。

RSS Feed 迁移方法

由于政策的调整,目前很多博主都将博客域名从 .cn 迁出,相信很多朋友都会遇到 RSS Feed 迁移的问题。如果一直使用 Feedburner/Feedsky 这种第三方烧录网站管理订阅,只需要更换第三方抓取的源即可;但是如果之前订户多用 WordPress 原始的源 example.cn/feed/、example.cn/?feed=rss2,或者使用自定的域名 feed.example.cn 的话,当域名迁移时,原来的 example.cn 被弃用后,订户就无法得到文章更新了。

我之前一直使用 feed.solrex.cn 作为 Feedsky 的自定义域名,因为我觉得 solrex.cn 可能比 feedsky.com 更长久,后来发现这是非常愚蠢的想法。当我把域名迁移到 .org 时,就面临 feed 迁移的问题。

最简单的方法是将原来的 feed url 重定向到 Feedburner/Feedsky,但这要求网站主必须仍然控制原来域名,那就没有更换域名的必要了。

或者使用一篇博客来通知订户更换 feed url,但是实践证明这种方法收效甚微。很多人(包括我)不会去看自己使用的是什么源,认为自己使用的就是正确的 feed url。

起初我是使用的直接重定向,但后来一封域名注册商的邮件,威胁如果不办理某些手续,24日之后会停止我的 .cn 域名解析。我想,还是用一些略显卑劣的手段通知大家更换订阅源吧。这种卑劣的方法是:如果使用原来的源订阅本站,就会看到每天一篇的“网站迁移通知”,直到用户更改订阅源,或者无法忍受直接删除 feed。

其技术实现方法是:使用 php 模仿 WP 的 rss 源生成一个 xml 文件,该文件只包含一篇文章,将原来的源指向它(或者 url 重定向到它)。该 xml 中的更新日期、文章 url 每天更新一次,这样阅读器就会认为博客有更新,把这篇文章抓取回去。我本以为阅读器是根据更新日期判断文章是否重复,后来发现是根据文章 url 来判断。为减少工作量,我们可以将文章的 url 指向某篇目标文章,然后在 url 后面加上 “?date=***”,这样阅读器就不会认为是同一篇文章,而且读者仍然能够点入目标文章。

方法很简单,如果您比较懒的话,可以参考我使用的文件(也可以从这里直接下载 php 源代码):

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'."\n"; ?>
<?php echo '<?xml-stylesheet type="text/xsl" media="screen" href="http://feeds.feedburner.com/~d/styles/rss2chinesetwfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?>'; ?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">

<channel>
    <title>Solrex Shuffling</title>
   
    <link>http://blog.solrex.org</link>
    <description>Engineering a better life, programming a great future.</description>
    <pubDate><?php echo date('D, d M Y ', strtotime("+7 hour")); echo '00:00:00 GMT'; ?></pubDate>
    <generator>http://wordpress.org/?v=2.7.1</generator>

    <language>en</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
        <item>
        <title>站点迁移通知-<?php echo date('d M Y', strtotime("+7 hour")); ?></title>
        <link>http://blog.solrex.org/?p=638679&amp;q=<?php echo date('Ymd', strtotime("+7 hour")); ?></link>
        <comments>http://blog.solrex.org/?p=638679&amp;q=<?php echo date('Ymd', strtotime("+7 hour")); ?>#comments</comments>
        <pubDate><?php echo date('D, d M Y ', strtotime("+7 hour")); echo '00:00:00 GMT'; ?></pubDate>
        <dc:creator>Solrex Yang</dc:creator>
       
        <guid isPermaLink="false">http://blog.solrex.org/?p=638679&amp;q=<?php echo date('Ymd', strtotime("+7 hour")); ?></guid>
        <description><![CDATA[您好,您之所以看到这篇文章是因为您仍在使用被遗弃的 feed 地址 http://feed.solrex.cn 订阅我的博客Solrex Shuffling。我已经将网站从 http://blog.solrex.cn 迁移到了 http://blog.solrex.org。由于 .cn 域名潜在被删除的危险,为了不丢失和您交流的渠道,我不得不出此下策以每天一篇博客的方式提醒您更新 feed 地址,希望您能谅解!...
]]></description>
            <content:encoded><![CDATA[<p>您好,您之所以看到这篇文章是因为您仍在使用被遗弃的 feed 地址 http://feed.solrex.cn 订阅我的博客<a href="">Solrex Shuffling</a>。我已经将网站从 <a href="">http://blog.solrex.cn</a> 迁移到了 <a href="">http://blog.solrex.org</a>。由于 .cn 域名潜在被删除的危险,为了不丢失和您交流的渠道,我不得不出此下策以每天一篇博客的方式提醒您更新 feed 地址,希望您能谅解!</p>
<p>如果您觉得<a href="">本站</a>对您还有点儿用处,可以使用以下方式继续订阅:</p>
<ul>
<li><p>如果您使用离线阅读器,请将本站的 feed 地址 <a href="http://feeds.feedburner.com/solrex">http://feeds.feedburner.com/solrex</a> 或者 <a href="http://feed.feedsky.com/solrex">http://feed.feedsky.com/solrex</a> 添加到您的订阅器中,并删除现有这个 feed。</p></li>
<li><p>如果您使用在线阅读器,比如 Google Reader、抓虾 之类,您可以点击<a href="">这里</a>到本站首页,在右侧选择您的在线阅读器,重新订阅,并将现在这个 feed 删除。</p></li>
</ul>
<p>如果您觉得<a href="">本站</a>对您不再有用,可以使用以下方式退订:</p>
<ul>
<li><p>如果您使用离线阅读器,请咨询阅读器帮助如何删除 feed,一般情况下在 feed 上直接点 del 键即可。</p></li>
<li><p>Google Reader 用户可以在左侧 Subscriptions 中找到本 feed(一般名为 Solrex Shuffling),将鼠标移动至其上,您会发现右侧有一个向下的小箭头,点击箭头,您就会发现有 Unsubscribe 的选项;或者您也可以到右上角的 Setting 中,点入 Subscriptions 标签页,对所有 feed 进行管理时删除 Solrex Shuffling 这个 feed。您可以在<a href="http://www.google.com/support/reader/bin/answer.py?hl=zh_CN&answer=73062">这个页面</a>找到更多帮助。</p></li>
<li><p>抓虾用户可以在<a href="http://zhuaxia.com/help.php#3_3">这个页面</a>找到退订的帮助。</p></li>
<li><p>其它在线阅读器用户请咨询该网站帮助。</p></li>
</ul>
<p>无论如何,感谢您一直以来对本站的支持,我希望能在<a href="">新的站点</a>继续收到您的批评或支持!祝您好运!</p>
<p>Solrex Yang</p>
<p><?php echo date('D, d M Y ', strtotime("+7 hour")); ?></p>
]]></content:encoded>
            <wfw:commentRss>http://blog.solrex.org/?p=638679&amp;q=<?php echo date('Ymd', strtotime("+7 hour")); ?>/feed/ ?></wfw:commentRss>
        </item>
</channel>
</rss>

您可以到 feed.solrex.cn 查看效果。

Feedburner and Feedsky 的点击统计

我发现我真傻。

由于文章的原始链接被 Feedburner 修改,而 Feedburner 的子域名被封,以前一直无法从 Google Reader 里点击文章标题进入我的博客网站,我也一直以为这是件没办法的事情。今天无意中看别人的文章才发现,这是因为在 Feedburner 中启用了 Item link clicks 功能的缘故,我郁闷啊!

所以今天我把 Feedburner 和 FeedSky 的文章点击统计功能都关闭了,啊哈,链接干净了!现在总算可以直接点击订阅的文章标题进入我的博客文章页面了!

solrex.cn 的新子域名

由于对某些服务感到新鲜,所以为我的域名添加了几个子域名:

1. http://m.solrex.cnhttp://wap.solrex.cn

我的手机版博客,使用 WireNode 提供的服务,上面两个域名均重定向到 http://solrex.wirenode.mobi,我用自己的手机访问测试正常。

2. http://feed.solrex.cnhttp://feeds.solrex.cn/solrex

将博客 FeedSkyFeedBurner 烧录绑定到了自己的域名,不影响原有的 feed 地址。

其中 http://feed.solrex.cnFeedSky 提供的域名绑定服务,http://feeds.solrex.cn/solrexFeedBurner 提供的 MyBrand 服务,这两个域名均为直接 CNAME 绑定。所以,FeedBurner 那个在国内仍然无法正常访问,不过可以通过阅读器订阅。

Google Reader 的一点问题

Google Reader 是我非常喜欢的在线博客订阅器,自从发现这个服务之后我就结束了尝试 N 个离线博客订阅软件的历史。用 Google Reader 看别人的博客好像看邮件一样,而且可以抓取一些国内无法访问的国外博客系统的 feed,很方便。

自从使用以来它就一直很稳定,不过这两天我发现 GR 貌似出现了一些小问题:一个是抓取我的博客 feed 有错,订阅的 http://feeds.feedburner.com/solrex 的条目中忽然多出了十条和我同一服务器的某个博客条目,而 feedburner 的原始连接中并没有这十条内容;二是抓取 feed 的时候没有通知订阅用户数,所以我的 feedburner 和 feedsky 显示的订阅用户一下子少了一大半,本来就只有一百多人订阅,现在显示的订阅数就更可怜了。

本来我以为这可能是个别问题,可是著名博客和菜头也在文章中说某些用户的订阅在 GR 中显示为乱码。这就叫人奇怪了,为什么 GR 在这几天发生那么多问题?难道是 GR 在测试新功能?

虽然 GR 这两天出了那么多问题,我仍然要推荐它,下面简单介绍一下我觉得比较好的特色:

1. 共享阅读。一种方法是把共享阅读块放在自己的主页上(看我的博客右侧栏),另一种是在 GR 的阅读视图里与 Google 好友共享阅读条目,还有一种方法就是把条目直接 email 给别人。

2. 快捷键操作。GR 有很多键盘快捷键,比如:j 阅读下一条,k 阅读上一条,n 移到下一条,p 移到上一条,o 打开列表项,这样操作起来非常方便。

3. 使用安全连接(https)的 GR,避免连接被重置。在中国国内某些网络条件下,明文传输的网页是会被过滤的,如果订阅的博客文章中有敏感词条,路由器就会重置网络连接,比如经常看到的浏览器提示“与服务器的连接被重置”就是由于这个原因。使用安全连接的 GR https://www.google.com/reader/view/ 能避免此类状况的发生。(此方法同样适用于 Gmail 的连接不稳定现象)

4. feed 阅读趋势。GR 可以统计你的阅读情况,并提供一些阅读趋势排行榜,以供你了解自己的阅读习惯。

暂停更新一段

明天就要开学了,今天是我在公司的最后一天。现在自己还没有个人电脑,以后大概就失去了持续的 Internet access,所以标题就叫做暂时安静。博客更新频率、信箱登录频率、IM 上线频率、BBS 和 SNS 网站刷新频率都会放慢,等十一后我买了电脑再说吧~_~。

由于个人时间安排和公司接受程度,暂时不会在公司继续兼职了。以后是否有机会再出来做事,就得看情况了。刚开学这段时间应该比较忙,再加上我还有 7 本正在读的书没有读完 [href: http://www.douban.com/do/Solrex/book/ ],空闲的时间恐怕还是很少滴。

不知道要住什么样的宿舍,不知道要学什么样的课程,不知道要做什么样的研究,一个数学系的学生去读工程方向的网络安全,应该还是有很多东西要学,最基本的通信和编码这块就有很多需要弥补的差距。我想刚进实验室时导师是不会对我太满意的,不过咱数学系的学生,数分高代常微偏微离散数值概率运筹泛函近世实变复变都学过,还怕什么?

最近身体也不是很好,因为吃饭麻烦,饮食总不是那么有规律,期望开学以后会好一些。十一要回南京,去看 xixi,嘿嘿还有一个额外的计划是教她学 TeX,这样以后我就不用干排版的活了~~~

今天徐宥的 Gtalk 签名改成了“中国网,封天下”,唉,我也深刻地体会到了。和“墙”打交道也很久了:刚开始 Blog 用 MSN Space,因为 Space 没有到信息产业部备案,05年下半年和06年上半年访问都不正常,直到咱们主席造访盖茨家为止,总算没再出大问题;个人主页用 Google Page,隔三岔五总要封几天,这不这两天正封着呢;后来 Blog 用 Blogspot,封的时间比能访问的时间多;正想到 Flickr 上开个相册,被封掉了;刚用上 Feedburner,这两天又被封了,这次封得更绝,不封主页封子域名;Wikipedia 就不用说了,祈祷吧!

所以我的博客现在在三个地方同步更新:http://blog.solrex.cn , http://solrex.spaces.live.com , http://solrex.blogspot.com ,我只能希望不会被同时“墙”三个,这样我还有点写博客的念想。另外我也劝各位使用 Feedburner 烧制的 RSS feed 订阅别人博客的同学(不管是订阅谁的),把阅读器换成 Google Reader(已经支持离线功能,下载浏览器插件即可)吧,那样不管怎么“墙”你都可以得到博客更新(如果这个世界上还有 Google 服务器不能抓到的网页,那么这台服务器 80% 的可能是物理层隔离于 Internet 的)。

罗嗦完了,我 peace out~~~~~~