Tag Archives: RSS

Gregarius 更新到 0.5.5

开源 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.

此文作者:, 位于 Web 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

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.

http.304.png

如上图.目前 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