网络蜗居 之 RSS的生成、发布与订阅

这两天为了在当前theme里添加RSS订阅,把RSS的生成、发布和订阅顺带研究了下。看完了刚好以bmlzf.intscan.org为例,讲讲RSS的工作机制。

  1. 什么是RSS
  2. 怎样生成RSS文件
  3. 网站怎样发布RSS源
  4. 客户端如何订阅RSS

什么是RSS

简单的说,RSS是一种消息来源格式规范。网站通过更新RSS文件(包含发布资料的部分内容或全文,以及一些资料发布元信息)发布资料,读者使用阅读器订阅RSS文件来获取网站资料的更新。

详细定义在这里,具体规范在这里。看不懂的拿Google Reader试下就知道了

怎样生成RSS文件

首先看下RSS文件的格式。实际上RSS文件就只是一个xml文件(废话一句,在JSON之前,我是大爱XML啊),在上面的具体规范里有xml格式的具体定义。以bmlzf.intscan.org提供的rss文件为例,用chrome浏览器的developer tool抓到的HTTP Response:

从里面可以很清楚的看到RSS文件的格式。在<channel>下包含了一些网站的元信息,和发布的资料信息。在示例中,每篇blog作为一个<item>元素存在。

知道了格式之后,生成RSS文件就非常简单,任何文本或者XML编辑器都可以制作。不过这个不用自己写,有很多现成的RSS生成工具可以用来制作RSS文件。就算是变成实现也不是很难,wordpress的php实现在feed-rss2.php里,需要的可以参考

网站怎样发布RSS源

生成好RSS文件之后,怎么告诉别人我的网站提供了RSS功能呢?对人来说简单当然简单,用经典的黄色小图标提供链接,从页面上点一下触发请求就行了。但是对于很多订阅客户端来说怎么知道呢?比如说,在Google Reader里,我只需要在添加订阅框内输入http://bmlzf.intscan.org,Reader自己会找到http://bmlzf.intscan.org/?feed=rss2,这又是怎么做到的呢?答案在html header里

在HTML的<head>tag里,有两行<link type=”application/rss+xml”>的tag,他们的href属性告诉了订阅者RSS文件从哪里可以访问的到。从例子也可以看出,虽然我在页面上只加了一个图标link,但实际上wordpress提供了两个RSS feed:) 除此之外,有关wordpress更多的RSS信息在这里

客户端如何订阅RSS

RSS客户端包括很多种,网页版客户端版多的是,功能也不尽相同。大致流程是读取RSS文件解析内容并展现。功能集多少取决于各自的实现。我比较喜欢的是Google Reader,很幸运这款有开放API,有兴趣的可以去这里下载源自己看看

今天在页面上添加了订阅按钮,因为wordpress本身已经提供了RSS文件生成函数,所以实现相当简单。在右边的边框里加入图标外加链接就行,也就是在当前theme目录下的sidebar.php文件里添加下面的代码就可以了

<a href=”<?php bloginfo(‘rss2_url’); ?>” title=”<?php _e(‘Syndicate this site using RSS’); ?>”>
<img src=”xxxx” alt=”RSS Feed” title=”RSS Feed” />
</a>


有的网站是提供专门的订阅页面,支持一键订阅到很多著名的RSS客户端的,比如说个人比较喜欢的月光博客。实现也不难,基本上都是第三方提供好的API(所以API是个好东西,嗯),具体见下面图中的示例。有需要的同学直接抄就行了

feed_google

网络蜗居 之 用Google Webmaster工具做SEO

用自己架的主页的好处是自由,坏处是没有搜索排名。用google和baidu搜了几篇blog标题,发现搜索结果里基本上都是新浪博客上镜率最高。翻了半天也找不到自己的,借spaces.live.com东风的往事一去不复返了……小本经营,没钱竞价排名。没关系,我们有穷苦挨踢民工的守护天使Google。这两天用google的webmaster tool做了些初步的SEO,简单记录下。

首先,先去http://www.google.com/webmasters/创建google webmaster帐号,找到“Add a site”把bmlzf.intscan.org加入我的站点。这一步需要认证,确认网站确实归我所有。我选的第三种,下载google提供的html页面,上传到网站根目录就可以了。认证成功后就可以进入这个网站的管理页面

第二步,创建robots.txt文件,允许搜索引擎的网络爬虫抓到我的页面(有关robots的更多问题看这里http://www.robotstxt.org/faq.html)。robots.txt文件用任何文本编辑器都可以创建,注意文件名小写、公开访问权限,以及放在网站根目录上。试试twitter的,在这里http://twitter.com/robots.txt。我的可以在这里看到http://bmlzf.intscan.org/robots.txt。这里有一个问题是,泄露了某些隐私。比如说我的robots.txt阻止了admin目录,这偏偏告诉了好奇的同学哪里有好戏看。如果真的不想被人看也没关系,用apache的.htaccess和.htpasswd保护此目录的访问就可以了。用Google的webmaster工具创建和测试robots的功能非常方便,web界面点个按钮就可以了。昨天做好的robots,今天在baidu里搜索,就发现了下面的记录,日期是昨天的

第三步,制作sitemap文件,告诉搜索引擎网站上有哪些可供他们抓取的网页。其实就是个xml文件,具体的书写说明看这里http://www.google.com/support/webmasters/bin/answer.py?answer=183668。当然这个不需要自己做,有很多做好的第三方工具。这里有一陀http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators。我试了两个,Google Sitemap Generator需要重启apache,弃之。最后用的是Enarion phpSitemapsNG,有管理页面做sitemap,还可以看到哪些页面已经被爬过。做完后把结果上传到webmaster就可以了。当然结果并不局限于google搜索引擎,具体看http://www.sitemaps.org/

以上三步做完,就可以找个沙发喝喝茶等着看结果了。试着搜了几篇blog的标题,就可以看到关键字了。大功告成:)

在google webmaster网站上还给了很多SEO的建议(http://www.google.com/support/webmasters/bin/answer.py?answer=35769),在我看来好玩的几点:

1. 确保robots.txt没有拦截搜索引擎,当然故意的除外……

2. 用lynx文本浏览器来检查网站,因为大多数搜索引擎信息采集软件查看您网站的方式与Lynx几乎一样,防止一些javascript、flash等复杂功能造成网页无法访问。(用lynx访问bmlzf.intscan.org无法显示中文,一开始以为是lynx设置的问题,试了www.google.com.tw发现中文可以,貌似是网站的问题……求解)

3. 确保您的网络服务器支持If-Modified-Since HTTP标头。用这个HTTP头可以查出自上次某段时间以来网站的更新。用curl命令可以测试:curl -v -H “If-Modified-Since: Sat, 01 Jan 2011 19:43:31 GMT” http://bmlzf.intscan.org

其他还有一些内容相关的,大意是苦心经营关键字,控制外链数目,不要链接恶意网站

网络蜗居 之 添加“分享到”按钮

“There are things that we don’t want to happen but have to accept,things we don’t want to know but have to learn,and people we can’t live without but have to let go”

近来不得不accept的一件事是live space到期。感谢以B同学为首的公司内部小团体,才能租了这个地盘暂时蜗居。也感谢wordpress,不费吹灰之力就盖好了房子,连基本装修都省了。

好不容易有个窝,当然要认真对待。以后会慢慢的往这里加入更多练手的东西,虽然是蜗居也得好好装修。

昨天完成的第一个元素是“分享到”按钮,这个别人已经做好了,所以做法非常方便,在自己的页面里嵌入一段code就可以了。code在哪里?右键“view page source”找找看:)(不同的“分享到”样式可以去http://www.jiathis.com/找)。

为了避免每次写blog都要添加,我实际上是改了wordpress的theme,把这段code加到了framework里面去。听高人说,wordpress新的theme里面已经包含了这些元素,所以最方便的方式是换个theme就好可以了。本着专一的原则,我还是一个theme用到底好了……

以后所有的blog会集中在这里发布,然后分享到不同的地方。唯一麻烦的是不知道怎么处理微博消息。现在通过饭否->intscan、饭否rss->google reader->google buzz……折腾得很,如果有好方法能够做到一处更新多出同步的朋友,欢迎交流

更新:“分享到”按钮从主页面挪掉,打开单篇博客里的仍然保留

八月,我在台湾

(注:主旋律文章)

其实这次台湾行开始的并不顺利。由于碰上军事演习空中管制,我们的飞机在禄口机场的跑道上停了两个多小时;又因为飞机的延时,行李第二天才到,除了不得不把当天的衣服洗了穿在身上晾干外,还因为没有泳衣辜负了酒店大好的泳池……

不过在随后的6天5夜的行程里,一路见识的台湾风景迤逦的山水名胜,碰到的无数可爱好心的台湾人民,还有同团帅哥美女们一起嬉笑怒骂结交下的友谊,都让我在回到南京之后的很长时间里仍然念念不忘

疯话少说,先看风景。以下排名不分先后:

  • 最具自然风光奖:野柳女王头

野柳怪石 野柳全景

这里其实是野柳地质公园,以因风化作用产生的各种地质奇石著称。其中有一块从侧面来看特别像英国女王头像,因此闻名。我们在在野柳的那天天气出奇的好,蓝天白云海风吹,配上怪石嶙峋绿茵青翠,很是谋杀胶卷。随便哪个角度相机随便抓拍,都可以拍出一幅风景日历画来。值得一提的是,在这里碰见一位很有缘的mm,请我帮她拍照,发现我们竟然用的是同款相机

  • 最具历史底蕴奖:故宫

有句谚语是,“北京的故宫是有宫无物,而台北的故宫是有物无宫”。没去过北京,所以不知道究竟是怎么样的有宫;但是去过台北,却一定要惊呼是怎么样的有物的。网上盛传翠玉白菜,但是跟转心瓶和象牙镂刻套球比起来,立马失了风采。就连盛放宝贝的各式盛器,精巧的就足以让人叹为观止。可惜不让拍照,便宜不了大家了啊

  • 最具文化气质奖:佛光寺

佛光寺1 佛光寺3

走遍大江南北,见过的寺庙很多。个人的排名里,高雄的佛光寺和杭州的灵隐寺是比较像寺庙的寺庙。前者虽然没有后者一层又一层的宝殿,但是环境的幽雅和寺庙石阶两旁的醒世箴言很让人印象深刻。特别是清幽的后院,还有后园里萌萌的小娃娃思考者,都颇有“菩提本无树,明镜亦非台”的意境。如果能在高雄久居,周末的午后来这里喝喝茶看看书真的非常不错啊

  • 最具娱乐休闲奖:日月潭

日月潭 日月潭上看灰机

日月潭应该算是台湾标志性的景点了,知道台湾的大陆人民基本上都知道有日月潭这么个所在。听导游说,这也是蒋介石先生非常中意的地方。可惜水位涨了,今天已经分不出日坛和月坛。没关系,不影响团员们泛舟游湖的雅兴,大家一起分享照片、互开玩笑好不热闹。嗯,当时应该让团长站在船头指挥大家一起唱“让我们荡起双桨”的~~离开的时候还碰上大学生送填调查问卷,嗯,也算为台湾做贡献了?

  • 最具探险环境奖:鹅銮鼻

鹅銮鼻2 鹅銮鼻1

之所以把鹅銮鼻和探险挂上钩,一来是因为这里是台湾的最南端,来这里很有天涯海角的纪念意义;二来是因为这里有一片很容易让人迷路的热带海岸树林。我们是真有团员在这里迷路哦,让大家虚惊一场:)

除此之外,台湾人民也非常可爱。可以不提地铁里要给我推荐信用卡的大叔,可以不提商场里用一半英文一半日文努力给我讲解创意商品的日本小男孩,也可以不提那个嗲嗲音的爬了两层楼给我送赠品还给我画地图的售货员mm,但是机场的那位清洁工阿姨是非提不可的。其实回来的那天我在台北机场弄丢了钱包,这位阿姨捡到一直收着等我回头去找,真的十分感谢,让人在异地他乡倍感温暖。

听说现在的台湾游已经开放了东海岸,希望有机会可以再去看看

那些电影教我的事

按时间排序,非影评排名

1. 《大话西游》大话西游

应该是高二或者高三上的时候第一眼看到这部片子,记得为了把这部片子完整看完,特地买了份广播电视报安排日程甚至请假一个晚自习。星爷的片子一直很火,无厘头的很有喜感,雅俗共赏,老爹都很喜欢。但是直到这部片子,才开始崇拜星爷。这部片子本身应该没什么好说的,跟我一个年纪且没有看过的朋友应该几乎没有吧,那么看过却说这部片子不好的朋友,我相信是肯定没有的。经典台词不用再重复,其实当年我对那段台词并不感冒,倒是为至尊宝拉着死去的紫霞久久不肯放手的场景崩溃不已。如果非要说选一个最经典的台词的话,我倒觉得是“他好像条狗哦”。当年年轻看不懂,现在才知道这话有多触动。其他喜欢的星爷的片子,应该是《喜剧之王》

2. 《东邪西毒》东邪西毒

其实这部电影不出名,相反,他的衍生电影要出名的多,《东成西就》。据说当年云集大牌明星花了很多钱很久时间拍了《东邪西毒》,但是投资商都很不喜欢,觉得挣不回票价。于是王导只好在短时间内用原班人马赶出了《东成西就》。结果果然,后者火了。刚好,双赢,他们没有损失金钱,我没损失一部好电影。这部电影被我列为最爱的电影。第一眼看也是高中,看了半天,看不懂。直到大四,在进导师公司实习的第二周,看了第二遍才看懂,惊为天人,捧为经典,从此对王先生仰慕不已。个人心中还有喜欢的王先生的电影,是《花样年华》,一部没有台词的电影,哭到人稀里哗啦。

当年的影评,但并不推荐同学们看,真的,去年重新搞了遍,英文名很好听,叫<ashes of time>
“从里面每个人的身上,都可以反省出一部分的自己。然后你就看着这部分的自己在戏剧冲突里挣扎,很是过瘾。有人说它反映的是都市爱情,可我认为,王家卫的电影我最喜欢它,正是因为它不止在说爱情:“都市人是离家出走的流浪者”。最爱的电影,可惜没有六颗星。给我这部电影,我可以一个人度过整个周末,百看不厌。”

3. 《情书》情书

大学的时候被关在鸟不生蛋的乡下,乐趣之一就是每个周末的露天电影。有一天吃完饭去自习的路上,散布绕道操场,看到了这部电影,然后,然后的然后就没有了那天晚上的自习。第一次看到这么干净的电影,第一次喜欢的日本电影,还有这辈子唯一承认的日本帅哥:柏原崇,虽然柏同学只在里面露过两次脸,且还是朦胧照……这辈子也只看过两部日剧,一部《东爱》,一部《一吻定情》,后者就是柏同学主演的,推荐青春小mm观看。

当年的影评,同样,慎入
““你~好~吗~我~很~好”里面有柏原崇和初恋的感觉,对二者任一感兴趣的都可以去看看”

3. 《千与千寻》千与千寻

其实我对动画片类的电影很不感冒,所以尽管有技术青年力荐宫崎骏先生的电影,也一直都不太愿意去看,直到后来看了《龙猫》。画面非常的漂亮,动画人物相当逼真传神,小孩子的动作细节抓得非常到位,影片本身也是十分干净。《情书》是初恋的干净,《龙猫》是人性温暖的干净。我一直都觉得,小孩子是很干净很漂亮的生物,这部电影很有这点意思。但当时也只局限于好的电影,并没有到经典的程度。然后有一天,蔡康永提起他非常喜欢《神隐少女》,搜了下,发现就是大陆翻译的《千与千寻》,宫崎骏的电影。其实《千与千寻》在大学的时候看过,室友很喜欢,当时并没有太大感觉。后来听蔡康永说后又重看了一遍,才感慨说,幸好没有错过。

一个十多岁的小女孩在教道理,成人贪婪与无奈的世界中总需要那么一点纯净
“还好再看了一遍,6星的电影,很温暖很有力量。白龙给千寻饭团的那一刻真的太经典了,就算是随随便便的小角色都深刻至极”

4. 《肖申克的救赎》肖申克的救赎

第一次看也是高中,记得还是和爸爸一起看的,那时候央视放的译制片。当时只记得电影里的故事很精彩,连爸爸都说这是部好电影。不过那时候并没有印象把它封为经典,甚至连名字都忘了。后来和同事们讨论电影时,很多人都说这个经典,听了剧情描述才想起内容来,当时也没怎么觉得经典。直到最近,也许是二十九岁效应,才忽然觉得,原来我们所经历的,正是这部电影所说的

网上的影评被我的经典的多,强烈推荐,居家旅行必看美片
“看过很多年了,看过很多遍了。直到最近才忽然察觉这是部多么了不起的电影。监狱就是个社会,体制内比有他的生存法则,怎么寻找突破越狱是个问题,慢慢的适应游戏中的制式是个问题,没有人是无辜的也是个问题,所有的一切都有关救赎。六星的电影,没话说”

5. 《禁闭岛》禁闭岛

这个是最近几个月才看的,其实严格说来这部影片本身并谈不上经典,但是最近迷这类主题的电影,这部算是这类电影中比较好的一个代表。什么主题?个人定义为,另类恐怖片。这种恐怖不是日本的气氛悬疑,不是欧美的恶心泛滥,而是世界观和人生观的颠覆。如果有一天,你发现长这么大以来,所有的一切认知都是不真实的或者是被别人捏造的,那会怎样;又或者忽然有一天,如果所有的人都不相信你说的话,那又怎样。OMG,这话说的貌似自己是庄子,因为庄子梦过蝴蝶,类似的主题……同类的电影还有《记忆碎片》、《异次元骇客》、《小岛惊魂》。据说《楚门的世界》是贴合这个主题最经典的电影,没看过,不做评论,最近也不想看了,避免自己变成神经病

当年的影评是一定要炫耀下的,因为有我喜欢的神经病理论
“以前听过一种说法,说精神病人是最接近上帝的人,他们发现了上帝的秘密,所以上帝为了惩罚他们,让世间所有的人都不再相信他们所说的话。我认为这话部分在理,因为梵高疯了,牛顿信了神。这可以解释为一个反抗,一个屈服。可惜我每次跟旁人说起这个故事的时候,别人都觉得我疯了……好吧,精神病患真的不太适合看这部电影”