开源 RSS 聚合工具 Gregarius 一直在持续的改进. 最新的 0.5.5 版本相对于以前的老版本有了许多新功能. 升级安装已经变得非常容易. 可以选用安装界面的方式, 管理密码也可以在安装后直接创建.新的主题 UI 已经足够好(参见 OpenRSS.net). 可以配置选择中文界面(简体/繁体).
现在插件也远比以前丰富多了.插件也有针对与 del.icio.us 等站点的交互的.这次新选用了 Google Adsense 插件.
依然存在的问题:
1) Tag 仍然不支持中文;
2) 中文子目录的 URL 重写还是有 Bug;
3) 不支持多用户;
4) Bug , 大量的 Bug !
相对于 Bloglines 等联机 Blog 阅读工具, Gregarius 的速度仍然是最大的优势.
–End.
Tag Archives: RSS
RSS Feed 提供全文输出
1) 如果二次点击看到全文让许多人都感觉麻烦, 那么就一次把内容给足吧. 陆续有朋友提出这样的建议, 所以这次对 Blog 模板进行了调整.RSS Feed 提供全文输出! 如果显示仍有问题, 请留言告诉我.谢谢!
2) 修正了 Index.XML 中一处与标准不兼容的小 Bug. 现在 Feed 可以通过标准验证了.
我用 GreatNews 作为 Blog 阅读工具. GreatNews 最近做了一次小版本的升级, 推荐大家使用 :)
如何订阅我的 Blog
今天看到我的 Blog 显示的订阅数量已经到了 171 了.
如何得知本站的更新 ? 您可能并不知道 RSS 这玩艺儿是干啥的,只是想知道本站的最新内容,那么请往下看。
首先,建议最好用一款专门的阅读 Blog 的软件。虽然 Maxthon/Firefox 等浏览器工具已经通过插件或者特有功能能够订阅 Blog . 但是功能上会差很多. 本站强烈推荐 GreatNews . 这款工具是免费的, 可以绿色安装, 支持多语言, 界面设计也比较人性化 ,抓取 Blog 的速度飞快. 当前的 GreatNews 还是 Beta 版本,但不要担心,已经非常的稳定啦。下载! 安装完后 , 如果界面是英文,通过 View –>Language 可以设定界面语言.
然后请看本站的右边栏, 如下图:
Http 1.1 Etag 与 Last-Modified
在 Blog 盛行的今天,一些 Web 应用需要解析大量的 RSS Feed .如何提高效率是个非常重要的问题.在 MagpieRSS 的 Features 中列举了这样的一条: HTTP Conditional GETs
Save bandwidth and speed up download times with intelligent use of Last-Modified and ETag.. 这里的 Etag 引起了我的注意.
什么是 Etag ?
通过阅读 RFC 2616 ,得到了对 Etag 的一点印象:
The ETag response-header field provides the current value of the entity tag for the requested variant……Entity tags are normally “strong validators,” but the protocol provides a mechanism to tag an entity tag as “weak.” One can think of a strong validator as one that changes whenever the bits of an entity changes, while a weak value changes whenever the meaning of an entity changes. Alternatively, one can think of a strong validator as part of an identifier for a specific entity,
while a weak validator is part of an identifier for a set of semantically equivalent entities.
从上我们可以大致得知,Entity tags 本质上说是一种”强校验器”,但是 HTTP 协议提供了一种通过给 Entity tags 打标签的”弱”的机制(类似于内容的校验码).虽然这段话后面通过两种方式进行了解释,但是还是有些晦涩.我看了这段话之后只是得出了 Etag 的 “E” 代表 “Entity” 而已.
Magpie 首页上提到了一篇文章: HTTP Conditional Get for RSS Hackers ,拜读之后清晰了许多.要先说说 HTTP Conditional GETs 的基本原理,很简单,就是说,从 Web 服务器取数据的时候,如果文件变化了,给我新的文件,如果文件没有变化,只需告诉客户端没有变化即可,不必再把文件取回来.这样就可节省大量的网络带宽和资源.
Etag 与 Last-Modified 是从 HTTP 1.0 到 HTTP 1.1 才有的概念.当我们从 Web 服务器获取文件的时候,只需要读取 HTTP 响应头的 Etag 与 Last-Modified 字段即可,这两个字段里面的具体内容是什么可以不管(可能会千奇百怪,RFC 2616 对 Etag 没有具体值的定义),把这两个值 Cache 在本地,下次检查文件是否更新的时候比对这两个值即可.如果没有变化,服务器的响应代码不是 HTTP 200 (OK) , 而是 304.
如上图.目前 OpenRSS 虽然订阅了40 多个 Feed,但是响应速度很不错.在使用 Gregarius 的过程中(Lilina 也应用了 ETag),发现了 FeedBurnrer 烧录的 Feed ,几乎都是用了 Etag 的(否则估计服务器要瘫痪,Hoho).我们再测试一下 HTTP header 的响应情况:
$ curl -I http://feeds.feedburner.com/dbanotes HTTP/1.1 200 OK Date: Tue, 25 Oct 2005 11:34:15 GMT Server: Apache Last-Modified: Tue, 25 Oct 2005 04:30:12 GMT ETag: U4q478bDKLqZ8UMMC8A5afZuHug Content-Type: text/xml;charset=utf-8 $ curl -I http://feeds.feedburner.com/dbanotes HTTP/1.1 200 OK Date: Tue, 25 Oct 2005 11:34:21 GMT Server: Apache Last-Modified: Tue, 25 Oct 2005 04:30:12 GMT ETag: U4q478bDKLqZ8UMMC8A5afZuHug Content-Type: text/xml;charset=utf-8
在这个期间,我的 Blog 没有更新.所以 Last-Modified 和 ETag 返回的都是相同的值.这样 Gregarius 就不必重新解析了. 国内的 GreatNews 是支持 HTTP Conditional GETs 的,更棒的是还支持 gzip/deflate encoding.而另一个 RSS 阅读工具 POPU (周博通) 就不知道了.
以上是我的笔记,如有理解错误,请指正!
–EOF–