西格玛向量™

分类存档: IT悟语

Fedora14下pgsnmpd的安装

Author:西玛哒   IN:IT悟语, Linux, 软件   标签: , ,    评论: 0

景介绍:

net-snmp 是一套简单网络管理协议snmp(Simple Network Management Protocol)的支持工具,它基于BSD许可发布了支持SNMP v1, SNMP v2c 与 SNMP v3,并可以使用 IPV4 及 IPV6 的工具包,用以从SNMP设备上获取信息,达到监视设备运行及相关衍生目的。
postgresql是同样以BSD协议发布的对象关系型数据库,它和Mysql,Oracle等数据库一样具有丰富的数据库功能,可以用于建站等诸多目的。
数据库的运行需要保证其良好的稳定性,特别是一些对数据操作比较敏感的关键项目,需要对数据库的运行进行监视,这里就需要为net-snmp实现接口,开源项目pgsnmpd便实现了这个功能。
项目主页:
http://pgfoundry.org/projects/pgsnmpd
继续阅读 »

05-02
2011

Gentoo下也有彩蛋~

Author:西玛哒   IN:IT悟语, Linux   标签:    评论: 2

在早先的文章中,曾经提过在Ubuntu中apt-get的母牛彩蛋。今天发现Gentoo中也有一样的~
#emerge moo
have fun~
5633924984 a193c5e90d Gentoo下也有彩蛋~

04-18
2011

Gentoo USE标记全记录(转编自论坛)

Author:西玛哒   IN:IT悟语, Linux   标签: ,    评论: 0

USE 标记系统是Gentoo 系统的精髓之一,一个好的USE标记设定能让系统的好钢用在刀刃上,虽然轻量却依旧功能齐全。之前没有好好研究USE标记,基本上都是拿别人的直接用了。
今天在论坛上看到一篇总结USE标记的帖子,就无耻的转过来了,权当是做个笔记吧。

继续阅读 »

04-12
2011

蛋疼的startdict使用方法

Author:西玛哒   IN:IT悟语, Linux, 软件   标签: ,    评论: 0

自从配好了Gentoo之后就一直在写****的论文翻译,由于英文对我来说目前就是个灾难,因此除了Goole Translate之外,一个本地的电子辞典是十分必要的。
Linux下的辞典当然是雷打不动的startdict喽,我使用的是xfce4,所以需要安装startdict +gtk

  emerge -av startdict
  emerge -s startdict-

China Overlay 的Portage中放了不少实用的辞典,省了不少麻烦,按需安装即可。
当然,我还是搞到了500M+的超级辞典库,为了把他们放到我的辞典目录还真费了我一番心思,由于辞典库解压后,每一个辞典都在一个独立的文件夹内,而/usr/share/stardict/dic只有一个文件夹,里面放置了所有辞典,因此需要遍历这些文件夹,将所有文件拷贝过去。这里借用了一个遍历脚本:
继续阅读 »

03-30
2011

试用VimRepress写博客

Author:西玛哒   IN:IT悟语, Linux   标签: , ,    评论: 2

最近在配置我的vim ,目前一切安好,由于之前多次失败,现在已经有丰富的乱码问题解决经验,
乱码已经不是问题了。

   #include 
   int testing;

本文使用 www.isspy.com 那里获得的vimrepress插件书写,仅作测试~

03-23
2011

mini2440 Helloworld驱动

Author:西玛哒   IN:C/C++, IT悟语, Linux, 硬件与嵌入式   标签: , ,    评论: 1

 

  Mini2440 是基于S3C2440(2410工业版) 的Arm9平台,实验平台已经移植了Linux,目前正打算添加RF24L01接口驱动程序。

  首先建立Helloworld驱动程序,作为驱动开发的模版,记录如下:

   一、建立编译环境:

   mini2440开发环境

    编译器 : arm-linux-gcc    3.4.1

    linux内核版本 : 2.6.32.2

    解压并记录内核源码树 位置例:/opt/FriendlyARM/mini2440/linux-2.6.32.2

   二、编写驱动程序文件:

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "Hello modulen");
    return 0;
}
 继续阅读 » 
03-01
2011

apt-get 的彩蛋

Author:西玛哒   IN:IT悟语, Linux   标签:    评论: 0

之前用过一段时间的Ubuntu/Debian 系列,倒是对apt-get稍微熟悉,不过,彩蛋什么的是绝对没有想到过,程序员总是会适当的幽默自己,并把这种幽默传递出去。^_^

       #apt-get moo

   
5245894075 318332baa8 apt get 的彩蛋
有时候还真是不明白为什么都爱拿母牛开玩笑…

12-09
2010

fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾

Author:西玛哒   IN:IT悟语   标签: , ,    评论: 0

之前在VC6.0中的一个MFC工程,转移到VS2010中,修改了一些小问题,Debug编译终于通过了,但是在Release的时候出现了以下Error~

XXX.cpp(189) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾

  出现这样的问题很不解,但是提到预编译头,在MFC中就只有那个stdafx.h了,而且错误提示中也亲切的告诉你<是不是忘了添加#include “stdafx.h”了>,当然 如果这是一个MFC模块,那么很快就能解决问题:

#include “stdafx.h”

  就可以了,当然,如果这个模块是一段标准C++代码,没必要加入stdafx预编译,那么需要针对这个文件去掉预编译支持

   

  这样一来,编译就顺利通过了。

  不过,Release之后的工程出现了更大的Bug,看来设计的有些问题,估计是优化造成的~ Keep working~

12-02
2010

UNIX的救赎

Author:西玛哒   IN:Linux, SigTwit, 笑看人生   标签:    评论: 0

Those who do not understand Unix are condemned to reinvent it, poorly.
                                              ----Henry Spencer
不懂Unix 的人注定最终还要重复发明一个蹩脚的Unix。
                                      ——亨利·斯宾赛   1987 年11 月

是的,没错,UNIX 不是电影演员,也不是不是什么哲学家,不是某子、某克斯人名的缩写,而是一种计算机操作系统。你我可能都不熟悉它,我甚至也说不出它现在具体都用在哪儿,也许说BSD,Linux,Mac的各种猛兽操作系统上仍然是Unix的灵魂附体。然而Unix已经不仅仅是一个操作系统了,并且它的概念也并不能说明什么问题。即便是学过了电脑的我们最多也只是知道除了windows的疆域之外,还有广阔的领土,他们打从C语言诞生前就在那儿,优雅的跨越四分之一个世纪,踏过PC、windows和互联网井喷式扩张的版图,正如所说的那样:

Unix is not so much an operating system as an oral history.

与其说Unix 是个操作系统,不如说是一部口述的历史。

<author>Neal Stephenson</author>

他比我们大部分的人都要年长很多。然而即便如此,我也从来没有想过UNIX可以出现我生活中在除了打开一个console去玩儿vim和gcc之外的任何角落。也从来没有想过UNIX拥有什么哲学。想来,自己没有想什么“哲学”之类的东西已经很久了。

但,正如触发我所思所想的书中提到的那样:

哲学:很有所谓

在从CSDN上看到了对《UNIX编程艺术》|“The.Art.of.UNIX.programming”一书的推荐之后,想起之前看到这本书时,并不觉得它对我Coding有什么帮助,于是就打入冷宫了,惭愧之极。如今找出来仔细的阅读了一遍,发现其中的很多东西实在是太给力了。最直接的感受便是:

凡事都有哲学,写操作系统、编程序和日常生活中,没有什么区别。

哲学很有所谓,现在反而在我们的生活中很少再有哲学的思考。大家过着快餐一样的生活,不去思考原则信仰。然而UNIX却维系着这样一个庞大的疆域,这里的人们有着他们的行为准则,没有什么法律要求他们这么做,然而他们如此自觉的遵守着他们点滴积累下来的一切“哲学”,如此富有哲理,我实在想不出作为程序员如何能独占这样美妙的东西。我觉得这足以让沉淀了几千年的景德镇文化大叫情何以堪了,所以在粗粗略读了这些原则之后,我实在是想分享一些东西:

生活与程序都需要系统,代码生活于UNIX,我们生活与China 、US什么的whatever~ 但是系统与“系统”没有本质的区别,如果我们失去的哲学的方向,也许,UNIX的哲学是一场救赎

这一切与编程和无关。

UNIX 十七戒

在《UNIX编程艺术》中,作者给了UNIX哲学一些通俗的描述:

Unix 哲学(同其它工程领域的民间传统一样)是自下而上的,而不是自上而下的。

Unix 哲学注重实效,立足于丰富的经验。你不会在正规方法学和标准中找到它,它更接

近于隐性的半本能的知识,即Unix 文化所传播的专业经验。它鼓励那种分清轻重缓急的

感觉,以及怀疑一切的态度,并鼓励你以幽默达观的态度对待这些。

UNIX有很多复杂的哲学、也有很多领域内如同马克思黑格尔之类的灵魂人物,每个人有不同的说法,然而他们的思想一致的看起来都有些假。仿佛他们开了个代表大会商量过一样。这些哲学莫不如说是他们手中诞生代码的行为准则,作者将这些原则总结成了UNIX的十七条戒律,这是他们在程序世界中的定义:

1. 模块原则:使用简洁的接口拼合简单的部件。

2. 清晰原则:清晰胜于机巧。

3. 组合原则:设计时考虑拼接组合。

4. 分离原则:策略同机制分离,接口同引擎分离。

5. 简洁原则:设计要简洁,复杂度能低则低。

6. 吝啬原则:除非确无它法,不要编写庞大的程序。

7. 透明性原则:设计要可见,以便审查和调试。

8. 健壮原则:健壮源于透明与简洁。

9. 表示原则:把知识叠入数据以求逻辑质朴而健壮。

10. 通俗原则:接口设计避免标新立异。

11. 缄默原则:如果一个程序没什么好说的,就沉默。

12. 补救原则:出现异常时,马上退出并给出足够错误信息。

13. 经济原则:宁花机器一分,不花程序员一秒。

14. 生成原则:避免手工hack,尽量编写程序去生成程序。

15. 优化原则:雕琢前先要有原型,跑之前先学会走。

16. 多样原则:决不相信所谓“不二法门”的断言。

17. 扩展原则:设计着眼未来,未来总比预想来得快。

这些看起来有些太专业了,然而他们着实可以运用于我们的日常生活:

1、模块原则: 没有万能药

不要指望生命中你能创造一个万能的自我角色,你就如同程序中的一个模块,你要做的是简洁而准确的做好自己的事情,你做的事情将与这个世界上所有的其他人一起,构成这个世界完整的功能。

2、清晰原则: 清晰胜于机巧

用清晰的方法做事,不要饶太多的弯子,否则总有一天自己会被自己的弯子绕晕。

3、组合原则: 沟通十分重要

正如程序中模块之间要通信一样,人要学会与别人沟通,从别人那里正确的了解信息,并且向别人清晰的输出你能提供的信息。不在于沟通的多么优雅,而在于让对方感到舒适,清晰的得到你要表达的东西(正如数据的传输一样)。

4、分离原则:分清不同的角色

正如程序的设计需要分层一样,人的生活也要分层。你有家庭环境,有与朋友、同事一起工作的环境。认清自己的角色,而把所有的事情都混为一谈的做法是危险的,无论对自己、他人还是整个“系统”而言。

5、简洁原则:简洁即美

“错综复杂的美妙事物”听来自相矛盾。Unix 程序员相互比的是谁能够做到“简

洁而漂亮”并以此为荣,这一点虽然只是隐含在这些规则之中,但还是很值得公开

提出来强调一下。

—Doug McIlroy

大道至简,不要仅仅因为虚荣心理就去鼓捣那些最错综复杂的东西。了解你该做什么,用简洁的方式做好它。

6 、吝啬原则: 如果你明知道没有用,那就不要做

不要浪费时间在犯过的错误或者已经证实无用的工作上,鼓起勇气走新路是好事儿,鼓起勇气跳进陷阱只能叫做愚勇。

7、透明性原则: 让事情有条理

生活有时候会有很多bug,就像软件崩溃了一样,一个有条理的设计能让你一眼看出问题出在哪儿,生活也是如此,在你能掌控的范围内保证事情条理清晰绝对没有坏处。

8、健壮原则:   磨练自己,或是给自己留条后路

生活无处不在的压力面前,不一定你的生活系统就是十全十美的,当然,你要保证考虑到了所有可能发生的最坏情况,和如何去处理你考虑不到的应急情况。这确实需要磨练和经验,然而重要的是意识,最起码的一点,在可能的时候要给自己留后路。

9、表示原则:   自己有什么和想要什么

生活和程序无论如何都会有输出,如果你的生活和程序都正常并符合“哲理”,那么没有什么“输出”是没用的,正如Rob Pike, 最伟大的C 语言大师之一, 在《Notes on C Programming》中所说的那样:编程的核心是数据结构,而不是算法。同理,我们生活的核心不是我们怎么做了什么事儿,而是我们所有的东西和所寻求的东西,正如那些数据一样重要。你可以用很笨的方法搞到你要的,然而如果你不知道它们是啥或是不知道它们被你放在了哪儿,那就麻烦了。

10、通俗原则: 创新不等于毫无来由的标新立异和自作聪明

不要把事情都寄托在别人能谁够理解你的基础上,特别是你自认为与众不同的时候。尽量和大家一样做事,所谓低调做人。如果你有真正的创新,它不久就会变成这个庞大系统的新的“通俗原则”,所以不必担心自己碌碌无为。

11、缄默原则:如果没什么好说的,就保持沉默

不经过大脑的胡说八道是没有任何好处的,发表意见要经过认真的思考,确定是否有必要之后在一个正确的时机、在一个正确的地点,说给正确的人。正如一个程序一样,你觉得某些软件的弹窗在你不需要的时候会让你有好感吗?

12、补救原则: 老老实实的承认错误并在第一时间补救

在出了错误的时候,不要狡辩或是为了“面子”做无谓的行为,要赶快集中精力将你的错误造成的损失降到最低。这无论是从自身发展角度还是对于别人和你的工作都是最好的选择。

这 里还有一个原则:“宽容地收,谨慎地发”,要尽量包容别人,而在自己做事情的时候要谨慎,即使出错也要保证明确的知道自己错在哪儿,以便自己更正或是在别人的帮助下更正自己的行为。

13、经济原则:   把能省的时间都省掉

时间和精力的价值绝对大于金钱,所以,在这个庞大的社会系统中,我们把精力集中与我们擅长的事情上,而其他的事情交给其他的人去做。所谓术业有专攻,正如“宁花机器一分,不花程序员一秒”,生活中我们学会要把事情交给社会这台“机器”去做。

14、生成原则:  把事情按照顺序串起来,而不是一个个手工的去做

工作、知识和机遇有时候是有继承关系的,就像一些程序可以去配置和生成另一些程序,我们不必也不应该浪费时间去一点点找和做,如果我们掌握了使用这个顺序的方法,就可以更轻松的生活。

15、 优化原则: 雕琢前先得有原型,跑之前先学会走

不要想着你做的事情一下子就是最好的,事情都要有循序渐进的过程,而且大部分时候你会做的很烂,别灰心,优化和进步都要一点点进行。

16、 多样原则 : 你完全不可能完全独立于其他人,也不可能永远不改变自己

一个僵化、封闭、不愿与外界沟通的软件,简直就是一种病态的傲慢。人也是如此,你和这个世界永远脱不了干系,而且你总要不断的完善自己使自己适应社会,不可能有人一出生就什么都应付得来。

17、扩展原则:   着眼未来,未来总比预想快。

这条本身就是它的原则。

综上十七条,广阔而全面的概括了UNIX的哲学准则,然而,我还是喜欢一些总括的哲学总结:

UNIX的原则

更好的,或者说我更喜欢的表述是Unix 管道的发明人、Unix 传统的奠基人之一的Doug McIlroy 在[McIlroy78]中所说的:

Write programs that do one thing and do it well.

只做一件事,并把它做好

Write programs to work together.

以团队的方式合作

Write programs to handle text streams, becauset hat is a universal interface.

时刻面对挑战,牢记你面对的是整个世界

我的翻译出于我对这些原则的理解,当然,还有一个更好的原则,那就是各种编程大师们奉为圭臬的“KISS”原则:

Unix01 UNIX的救赎

我不知道如何翻译这个原则,我也不想翻译它,因为它的韵味本身就是它原则的组成部分。正如之前乔布斯大神演讲中提到过的“Stay  hungry,Stay  foolish”一样,还是原汁原味一点比较好吧。每个人有不同的理解,但是它的内容是明显的。生活并没有那么复杂,而把它变复杂的正是我们自己。

救赎

这个词用的有些大了,然而我指的是救赎我自己,恐怕也不过分,但愿这些原则能让我活的更加简单,而不会因为某数字和某企鹅的娱乐新闻而动摇自己,也不会为了高墙之内的各种不给力事件而碌碌无为,总有一些事情需要我去做,而我只需要做好自己。我知道我改变不了什么,但愿UNIX能,当然,我也有自己的原则,虽然同样是借来的:

世界由两部分组成,你和除了你之外的一切,改变了自己,就改变了世界的一半。

当我们都能够用自己的原则与UNIX作比较的时候,我们会发现我们的“系统”中,所看到的种种丑态,都是些浮云罢了。

一个Shell,一次救赎,一个clear,还原我世界原本的样子。

11-08
2010

无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

Author:西玛哒   IN:IT悟语, 我的大学, 网络   标签: , , ,    评论: 6

自从上次写了“从邮箱查看学院新闻——网站信息的2.0大迁移(Beta)”之后,这个Beta版就石沉大海,什么RTM之类的完全没有,懒人自有懒的原因,本人也没怎么用学院新闻的RSS,回想起来惭愧之极,连维护的意识都没有,太没有艺德了…

<扯淡>

只到偶尔见到某亮仔,问起上次那篇文章如何如何,这才想起来我这货除了扯皮之外也干过点儿事情,顿感有负国家四个现代化建设和和谐社会balabala对我的期望,内牛满面之余决定在这个大家都在狂刷学院新闻的多事之秋(你懂的)完成上次没有干完的活儿,以示对钓鱼岛主权的支持(汗……)

</扯淡>

本文主要讲解从某某大学某学院学院新闻的静态PHP网页中制作全文RSS的过程,如果不想看其中的过程,可以直接跳转到最后看RSS的应用部分~

一、RSS和Yahoo!Pipes

对于RSS的介绍,上篇文章中已经说过了,简单的说,就是将信息以一个约定俗成的格式推送给你,而你可以决定用什么方式来阅读和处理这些信息(QQ阅读器、GoogleReader、甚至Windows的桌面小工具等等)。

RSS是一个好东西,他可以不限制你所访问的地方,而让你同时获取不同渠道的信息,但是一些网站,大抵是由于懒得做啊、懒得做啊或是懒得做之类的缘故(…),总之是自觉没有必要提供这样的东西,因此大家就只能痛苦的去登陆某网查看信息,这样当然不符合网络中心化的原则,因此,就有必要从静态网页着手,做一个RSS源。

之前提供的方法都是通过在线的一些服务商提供的RSS生成服务来进行的,虽然效率很高,但是这些服务商必然不能为你自己服务,要么有广告,要么有限制,人家是要赚money活路地,既然这样,就要寻找一些比较自由的方式,这样的神器当然也有,那就是传说中的YahooPipes

以下是Yahoo Pipes的简介,来源:百度百科

       Pipes is a powerful composition tool to aggregate, manipulate, and mashup content from around the web.

顾名思义,Pipes就是提供一个信息流动的“管道”,在管道中间,你可以定制规则,进行裁剪,定制信息等等工作,最后将输出的信息烧制成RSS供你使用~

4989072413 837ea08e23 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

登录http://pipes.yahoo.com 如上图所示,点击Create a pipe 就可以免费创建一个自己的“管子”~ 当然,不知为何,pipes在教育网享受了http://www.python.org 一样的悲惨待遇,它的登录界面被Wall了,如果你在用教育网,请用搜狗浏览器开启教育网代理进行访问

4989080015 7aa1727097 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

使用代(敏感)理:
4989689170 94be0f2f49 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

  二、从HTML下手获取RSS

首先熟悉一下Pipes的工作环境,登录后点击Create a pipe 就会出现一个如下的工作界面:

4989086217 3e80867ddb 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

左侧的工具栏中放着各种兵器,用于获取,处理各种信息格式,常用的有Source下,用于抓取网页代码的工具,Operations中放着Loop等常规操作方式,还有Regex等工具可以使用,之后会说到用法。工具的使用都靠“拖”,脑海中不禁浮现出了Csharp的英雄形象。Pipes的目标是大众化信息处理,因此上手并不难,拖动模块进入后,圆圈代表输入或输出,从任意一端点击那个“圈”就会出现pipe,拖动到另一个模块的圈上,两个模块就连接好了。

这里以学生周知http://ssdut.dlut.edu.cn/news/student.php为例,首先在Pipe中添加Sources下面的FetchPage一项,在URL中填入http://ssdut.dlut.edu.cn/news/student.php,这样网页的信息就输入到管道的“入口”了。下面打开上面的网页,右键点击选择查看源代码,可以看出,网站的有用信息是有一定格式的,它的开头和结尾和条目之间的分割如下:

开头:<td height=”24″ align=”center”>

结尾:<tr bgcolor=”#CCCCCC”>

分隔符:</tr>

4989120999 df5c5c1288 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅
于是在Cut content from 中写入 :<td height=”24″ align=”center”> to:<tr bgcolor=”#CCCCCC”>  delimiter:</tr>

这时再将输出与Outpu相连,就可以看到预输出结果。

4989151913 5e6184dbfb 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

这时条目的实际代码如下:

1.
&nbsp;<a rel=”nofollow” target=”_blank” href=”http://ssdut.dlut.edu.cn/news/show.php?id=6310” title=”2009&#x007ea7;&#x00672c;&#x0079d1;&#x00751f;&#x0082f1;&#x008bed;&#

x00542c;&#x008bf4;&#x004e8c;&#x008865;&#x008003;&#x005b89;&#x006392;”>2009级本科生英语听说二补考安排</a>
2010-09-14
<a rel=”nofollow” target=”_blank” href=”http://ssdut.dlut.edu.cn/news/studentlist.php?comefrom=2″>教务办公室</a>           

我们需要的信息实际上之有 http://ssdut.dlut.edu.cn/news/show.php?id=6310 这个link 和 “2009级本科生英语听说二补考安排” 这个title而已,其他的都是浮云,一个feed的一个条目最少需要这两个信息:link和title 但是我们的条目中目前只有一个孤军奋战的content 因此需要增加一些内容,将Operator下的Rename拖入工作区,并将Fetch的结果与之相连,然后如下操作:

4989769792 f6f44135d9 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

这样就有了title与link两项,剩下的就是过滤掉没用的信息,留下有用的了,这时需要正则表达式起作用了~ 拖入Operator下的Regex模块,添入过滤用正则表达式:

4989772878 a1080f18a2 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

这里的正则表达式如下:

.*href=”(.*?)”.*”>(.*)</a.*

以下是分项解析:

.*  –> 表达任意数量的不包含换行的字符,我们这个例子里表达的就是…target=”_blank”

href= –> 就是它本身href=

“(.*?)” –> .*? 意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。小括号来指定子表达式(也叫做分组)。”代表它本身(也就是”)

.*”> –> 表达的就是……x005b89;&#x006392;”>

(.*) –> 又表示了一个分组

</a.*  --> <表示它本身(也就是<),/表示/(这里如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用来取消这些字符的特殊意义。因此,你应该使用.和*。当然,要查找本身,你也得用\)。这样,这里就表达成了</a> 2010-09-14 <a rel=”nofollow” target=”_blank” 这一连串字符

通过表达式过滤,获得了想要的部分,利用Regex模块,获取正确的信息:

Regex模块的规则是这样的形式:

In[element] replace [regex pattern] with [value]

Value可以设置成任何字符,比方说我们输入狗*日的腾讯,就会显示成狗*日的腾讯。

实际上,link我们使用的是$1,这个就和我们前面使用的正则表达式有关了。

对于表达式之中匹配的()圆括号之类的内容,会为之创建带有数字编号的引用,引用的格式是以$美元符号开头,它就可以代替()圆括号内匹配的内容。

对于我们的正则表达式,我们使用了两个()圆括号,所以$1作为引用,它的内容就是(.*?)匹配出来的内容,就是我们所要寻找的link。$2作为引用,它的内容就是(.*)匹配出来的内容,就是我们所要寻找的title。

另外勾选上s

如刚才的图所示,这时,将输出与Output连接,就可以看到结果了:

4989792014 38f3ea135b 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

这个Pipe就可以当成RSS用了,点击Save 起名,之后点击Run pipe 这时候结果就会在下方显示出来,点击获取RSS按钮,这时浏览器中的URL就是你烧出来的RSS了。

4989797642 e03be3f0c9 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

我烧制RSS的地址:

http://pipes.yahoo.com/pipes/pipe.run?_id=4008466210fa86043ccdcee0388f4a6b&_render=rss

   三、从RSS到全文RSS

到这里,要求不高的童鞋可以拿去玩儿去了,起码可以做做标题党,然而这毕竟不符合我们的要求,为啥非得跳转下才能看新闻呢?因此这时我们需要全文RSS,就是将该新闻的内容一起和RSS的link与title推送过来,我们以刚刚做好的rss为蓝本,(当然一个普通的标准RSS也符合这个条件)制作一个全文RSS。

仍然新建一个Pipe,从Sources中拖入Fetch Feeds 添入刚刚做好的Rss地址:

4989199757 fe4ae11d70 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

与之前相比,多了一对乱码七糟的东西,那是yahoo给我们加上的RSS标准格式,这里不做介绍。既然有link,自然想到可以读link的页面,与之前获得item同样的原理去获取内容,但是条目很多,不至于一个个去访问,于是就要用到一个编程常用工具:Loop。将Operator下的Loop拖入工作区。

其中的For each是循环的迭代器接口,这里我们不用填写,当将Feed的输出与之连接时,它的默认值为feed item,就是对每个项如何如何操作,中间的区域就是我们要做的操作了,我们将Sources下面的Fetch Page拖入其中,那么每次loop就会执行Fetch 。在URL中,我们可以选择item.link一项,让它去fetch我们提供的link,就是新闻的链接页面了。我们如法炮制,分析新闻正文的页面:

<td class=”content”><P>时间:9月15日(本周三)下午13:00</P>

<P>地点:教学楼A415</P>

<P>请补考同学准时参加。</P></td>

</tr>

找了个短的,很明显,开始位置是<td class=”content”> 介绍位置</tr> 只有一个正文因此不用分割。

照搬的添入Fetch选项中,最后assign 选择all 就是将所有FetchLoop的结果保存到哪儿,我们RSS中声明正文的信息叫做item.description 因此添入,如图所示:

4989215393 5d5a8e99ba 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

就这样,全文RSS的制作就完成了,可以点击Save 然后Run ,最后happy或者不happy(那是有bug,检查一下)的看到最终的结果,与上面一样,制成RSS,这个RSS地址就可以使用了。

4989220873 3d1d8e01ea 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

三、RSS的使用

用yahoo pipes产生的RSS与正常RSS使用一样,但是据说:

这样获取的全文RSS肯定没有直接获取的高效,大概会有半小时左右的延时吧。

全文RSS在这里!!:

      http://pipes.yahoo.com/pipes/pipe.run?_id=3ed58d9916f74a6f67963b5936032ad3&_render=rss

是可以正常使用的,使用方式参见上一篇文章“从邮箱查看学院新闻——网站信息的2.0大迁移(Beta)”以及到百度上Google一下Google Reader ,QQ reader和本地阅读器的使用方法。

这里提供使用的截图,看起来还是蛮不错的。

4989835476 b72f6086b3 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

Google Reader

4989229571 2dfe8d70e5 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

QQ邮箱阅读器。

除此之外RSS还有很多神奇的用途,比如,人人的某些特殊用户可以导入新闻RSS,这样方便上人人的同学了解最新情况:

4989839836 0da7b8517a 无中生有:神器Yahoo!pipes之从静态网页到RSS订阅

有了RSS 一些皆有可能。

   四、无耻的免责声明

本人制作的RSS只为个人用途,不保证RSS的实时性,30分钟至1小时的延时是正常现象,并且不保证信息的完整有效,对信息很苛刻的同学建议仍然坚持通过刷屏的方式查收信息,本RSS制作不触犯国家法律,不撞墙,不敏感,五毛退散……

   五、杂记

本人在这个敏感时期,仍然不无正业的做着基本上毫无意义的边角工作,是在是让我自己都感觉不争气,然而既已如此,那就只要放任,望广大童鞋以我为戒,不要无所事事,要为伟大的共产主义事业贡献终身…

六、参考文献

1、http://bbs.pxysm.com/thread-5116-1-1.html

2、http://cuefor.tk/?p=101

3、http://cuefor.tk/?p=51

感谢RSS燃烧室http://cuefor.tk/ 提供了详细的教程支持,本文很多文章属于过度引用,请作者见谅。

09-14
2010
loading...