feedcat.net的订阅数上升很快呀

7

分类 : 网络日志 | 发表时间 11-10-2008

前几天在忙活rSSa时,在“怀念1997年的秋天”那里看到了feedcat.net的订阅,比feedsky的多了许多,考虑着,难道这个feedcat流行度很厉害吗?不管怎么样,试上一试。

看了网上的一些评论,功能和现在火热的feedburner、feedsky差不多,不过没两者那么功能强大、影响力大,似是feedsky的删减版本,不管怎么样,注册了试下功能。

感觉汉化得不是太好,很多页面还是直接英文了,这里有一位说是他汉化的feedcat,不知道是否确实?如果真是,那就加油啊!

 

这周热门站点 TOP 100 排行最高的订阅数是98065,很high了!排行的中文博客没有出现在前10,最高在18位,更新也不是很及时。

 

简单订阅了以后,把代码贴在主页上,检测通过,聚合的rSS界面确实和feedsky界面差不多,但没看到类似feedsky的自定义域名访问功能,这个对于广大博主来说也比较重要,以免发生被封时,能够及时更新rss提供源地址,而订阅地址可以保持不变。

更新了主页以后,又浏览了几位rSSA博友的日志,回到主页时,刷新一下,feedcat的订阅图标显示为6个了,这么快?这是什么机制?到今天,订阅数已经显示119个了,估计还要不断增长,这可比我的feedsky订阅发展到现在的144要快上多少倍呀!

为什么这么快?为什么它就是这么快?它就是……

什么呢?

各位仁兄,有知道的没?

林网博客RSS入门及订阅指南

2

分类 : 网络日志 | 发表时间 24-04-2008

林网博客成立这二年多来,也是随着网络的很多技术发展而来的,很高兴林网博客能够随着互联网的发展,学得一些有用的东西,同时也分享给大家一些经验和资源,最近一年来,经历了换域名由linwan.com更换为linwan.net.cn,也跟随大家,重视了RSS的发展,还不错,已经发展了将近一百位朋友了。

简单讲述下RSS入门知识以及订阅指南:什么是RSS呢? 根据百度百科的解释,是这样讲的:

RSS(也叫聚合内容,Really Simple Syndication)是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用。个人认为,它就是资源共享模式的延伸。

RSS是一种起源于网景的推技术,将订户订阅的内容传送给他们的通讯协同格式(Protocol)。RSS可以是以下三个解释的其中一个:

Really Simple Syndication

RDF(Resource Description Framework) Site Summary

Rich Site Summary

订阅林网博客

其实很多网站上都有这个链接. 通常为一个小小的图标按钮.  这个RSS的定义在网上搜索一下就有不少关于它的定义, 而要弄懂它是什么东西, 大家最好是实践一下, 去使用它。当初我最早用RSS功能是,用的是新浪点点通,为的是看即时更新内容,并且没有广告,省得去新浪各频道点着过度看。后来用rss是订阅很多的博客,这样就一个界面下就能每天看到大家的更新内容了。

大家看到本博客左边栏那些订阅按钮了吗? 就是使用这个RSS功能的;试想一下, 如果你喜欢好几个网站,你会把它收藏起来,下次上网时,就不用再次输入网址了,更不用记住它的网址了。而订阅RSS功能就是让你收藏这些好网站,而且是把这些好网站都收藏在一个提供订阅功能的网站上。例如,你可以选择"抓虾"网来收藏你喜欢的网站,本博客左边栏就有一个"抓虾"订阅的链接按钮。建议新手使用一下那个"抓虾"订阅, "抓虾"订阅非常简洁;也可以用“鲜果”网订阅,这几个都是最近几年国内比较火的聚合RSS订阅的网站。另外的像feedburner和feedsky,也很经典,feedburner以前很主导,但被封了一段后,给博客的订阅造成很大不便,因此,feedsky才火了起来。

现在林网博客也一直用的feedsky:http://feed.linwan.net.cn,支持绑定域名,的确不错。另外,像rss也可以提供类似的手机订阅,在手机上输入以下地址,即可实时阅读林网博客了http://wap.feedsky.com/linkeronline,邮件订阅:http://www.feedsky.com/msub_wr.html?burl=linkeronline,订阅后每天登陆邮箱即可阅读到林网博客的最新日志。

说了这么多,知道rss的巨大方便作用了吧?赶快试试吧!

合并RSS Feeds的10个网站工具

0

分类 : 业界动态 | 发表时间 17-02-2008

博客形式的大量网站,以及论坛、cms等各类网站不断涌现,伴随着rss的浒,线上或线下RSS feed管理工具跟随网络需求而产生,其中Feedburner和Feeblitz是行业领袖。每当你想从不同的渠道获取信息时,使用工具对RSS Feeds的内容进行过滤是必要的,同时将同类RSS Feeds合并,消灭内容重复的RSS Feeds,似乎更加重要。这有助于你整合Feeds内容,打造统一的RSS Feeds。十个能完成此类任务的工具值得介绍一下:

1. RSS Mixer —— 只要输入需整合的RSS Feed链接地址和合并后Feed的名称,然后点击“Mix”按钮,就能得到所有单一feeds的整合版。而且还有很多格式供选:苹果式面板widget、网页嵌入式widget、iPhone支持版,等等。

2. FeedBlendr —— 简简单单合并feeds的又一线上服务。输入想合并的feeds地址,然后点“Blend Your Feed”按钮即可,无需注册或下载什么东东。得到的输出有RSS/ATOM格式、浏览器用HTML链接、移动工具用(.m)链接、OPML格式和用以显示feed内容的widget的Javascript代码。

3. FeedTwister —— 这个服务允许你合并你喜爱的feeds并将最新的更新显示在你的站点上。想创建多少feed列就可以创建多少,每列可塞进50个feeds;而且还可以给每个feed加张图释,选择是按时间还是按标题排列文章,以及选择文章输出的条目数,或者每个feed最多显示出几条标题。

4. BlogSieve —— 通过过滤、整合、分类现有feeds以创建新feeds的一款免费的线上服务。BlogSieve可以识别各种标准的feed格式,并依据用户的选择生成对应的feed格式。

5. RSSMesh —— rssMesh.php脚本可以将多个feeds的最新条目整合到一个feed中。针对每个生成的feed,RSSmesh通过一个配置文件予以构造。

6. RSS Mix —— 可将任何数目的feeds合并到一个单独的feed里,也是基于线上的服务,界面简单,只要复制已存的feeds地址,粘贴到选框中点击创建即可。

7. BlastFeed —— 可以让用户聚合feeds、过滤feeds内容的一款线上服务,而且BlastFeed可以马上通知用户信息整合过滤的结果。BlastFeed只收集每个feed里符合用户订制标准的条目,并以单一的文件通过email或即时通信消息或新feed的形式,在用户需要的时候发布出来。

8. Feed Combine —— 就像名字一样,用户可以用它无缝拼贴feeds,整合feeds迅速高效。

9. FrankenFeed —— 一款开源应用,以Ruby写成,同样可将多个RSS或ATOM格式feeds(xml)合并为单一的feed,想法在于让RSS和ATOM应用的老主顾为新手打造一个单一的feed。

10. Yahoo Pipes —— 最后的才是最好滴。以上这些线上feed合并服务的问题是,它们随时会消失。Yahoo Pipes则是最稳的选择,原因简单,因为是雅虎滴嘛。虽然对于新手来说听起来有点悬乎,但真正掌握之后,你就会发现她的魅力了。
以上部分内容源自:http://feed.yeeyan.com/articles/view/Chris/4755

我是比较喜欢feedburner,但前期由于一段时间的被封,后来全部转为feedsky了;feed阅读工具,呵,还是feeddemon!免费了呀!

NewsGator客户端FeedDemon 2.6等全面免费

0

分类 : 业界动态 | 发表时间 13-01-2008

博客形式的出现,随之的rss阅读方式,就非常流行起来;简洁、高效,没有广告,这是最重要的原因;我用工具读rss,最早是新浪的那个工具,看新浪新闻用的,但后来发现一直没有升级,并且这个软件在长久运行后,会吃内存,并且引起系统很缓慢,因此,就放弃了;也就很长时间没用了。后来,博志重开后,觉得有必要了解业界情况,有必要用这么一个工具来记录收藏,就决定找一款;

搜索网络资讯和众多评论(如果暂时不知道某件事物的好坏,那么就随波逐流),SharpReader,GreatNews,FeedDemon;听说GreatNews使用人数居多,但我用了之后,虽然感到免费,但使用起来,总是那么不顺;后来又看到月光的一些简介,就又使用FeedDemon,这个版本2.5时,还是收费阶段,当时也没用最新版本,用了网上比较流行的汉化版本,毕竟在功能摸索初期,用汉化版还是比较方便些。

由于FeedDemon支持关键字搜索rss,因此,初期一时之间找不到合适内容时,通过关键字来查询网志,的确方便了很多;自主添加博主日志,更是方便;这样一用,就是两个多月,期间看到多次cnbeta上面,不断出现FeedDemon的更新,并且cnbeta的评论也有不断的评说,收费限制了普及;

免费终于来临了。

NewsGator刚刚正式推出了其客户端系列产品的最新版,包括FeedDemon 2.6NetNewsWire 3.1Inbox 3.0 (beta)以及NewsGator Go! for Windows Mobile 2.0。除了功能及易用性上的更新外,这些新版也同时全部变为了免费软件!而且,NewsGator的同步功能,包括对Blackberry、iPhone以及其它移动设备的支持,也都变为了免费服务。

NewsGator作出这样重大的决定,无疑是和去年年末的时候又收获了一大笔风险投资不无关系。在NewsGator对所有的个人服务免费化以后,它也能更专心的致力于面向企业的业务发展。

而从NewsGator的Press Release中也可以看出,NewsGator也希望通过免费化为它的客户端软件带来更多的用户,从而为NewsGator积累更多的数据来分析用户习惯,便于为将来的决策系统提供量化的依据。

安装最新的FeedDemon以后,自动覆盖之前的2.5版本(已经备份过),但之前的中文语言包,是不能用了;但我现在要的不是语言方便的便捷性了,要的是性能上的高效;OK,看了一下,关于中的信息,依信息来看,果然是免费了。

WordPress简明使用指南

0

分类 : 技术文摘 | 发表时间 13-06-2006

作者: 黄晶(Alex Huang) 网址: alexhuang.org



从2005年9月到现在,我用Wordpress也有些时日了。现将自己使用中的一些体会分简介、安装、编辑、管理、主题、插件、设置、代码修改等几个部分逐一概述如下。也算是为对Wordpress有兴趣的同志提供一些方便和借鉴吧。
注意:我使用的版本是成熟、稳定的1.5.2,而不是最近才发布的、小问题多多的2.0。
1. 简介
WordPress是全球最棒的免费个人内容(Blog)发布平台之一,其下载量即将突破1000000(详细数据请参考Wordpress Download Counter)。它用经典的PHP+MySQL搭建而成,两者都是开源的软件,其中PHP用于编写相应的操作代码、生成页面,MySQL数据库则用于保存用户发布和编辑的内容。
WordPress并不大,最新的稳定版本1.5.2的zip压缩包仅360KB左右,你如果用快点的宽带上网的,几秒钟就可以下载完毕。相应地,软件的开发人员也少,主要的程序员仅两名,即来自美国达拉斯(Dallas)的Ryan Boren ,和来自德州奥斯汀的小帅哥Matthew Mullenweg(一般都称他为Matt)。前者是网络硬件巨头 – 思科公司(Cisco Systems) – 的一名工程师,以开发免费软件为乐。后者则主要为知名IT媒体CNet Networks工作,并有自己的咨询公司(Mobius Limited),时常还做一些中介业务。开发Wordpress,其实只是他们的业余爱好而已。
“麻雀虽小,但五脏俱全”,Wordpress就是这样的小麻雀。有了它,你就可以:

是全球最棒的免费个人内容(Blog)发布平台之一,其下载量即将突破1000000(详细数据请参考)。它用经典的PHP+MySQL搭建而成,两者都是开源的软件,其中用于编写相应的操作代码、生成页面,数据库则用于保存用户发布和编辑的内容。Wordpress并不大,最新的稳定版本1.5.2的zip压缩包仅360KB左右,你如果用快点的宽带上网的,几秒钟就可以下载完毕。相应地,软件的开发人员也少,主要的程序员仅两名,即来自美国达拉斯(Dallas)的 ,和来自德州奥斯汀的小帅哥(一般都称他为Matt)。前者是网络硬件巨头 – 思科公司() – 的一名工程师,以开发免费软件为乐。后者则主要为知名IT媒体工作,并有自己的咨询公司(),时常还做一些中介业务。开发Wordpress,其实只是他们的业余爱好而已。“麻雀虽小,但五脏俱全”,Wordpress就是这样的小麻雀。有了它,你就可以:

1.进行文章发布、分类、归档。
2.支持文章、评论、分类等多种形式的RSS输出。
3.提供链接的添加、归类功能。
4.支持评论的管理,防垃圾功能。
5.支持对风格(CSS)和程序本身(PHP)的直接编辑、修改。
6.在Blog系统外,方便的添加所需页面。
7.通过对各种参数进行设置,使你的Blog更具个性化。
8.生成静态html页面(需要mod_rewrite支持)。
9.通过选择不同主题,方便地改变页面的显示效果。
10.通过添加插件,可提供多种特殊的功能。
11.支持Trackback和pingback。
12.支持针对某些其它blog软件、平台的导入功能。
13.支持多用户。
这些功能,已经能够满足个人用户绝大多数的需求,并且,对于中小企业来说,它也是建立内容或资讯发布平台的得力工具。
个人认为,与其它的Blog发布软件相比,Wordpress的主要优势在于:

安装最简单。
Web标准支持非常好。
使用比较简单。
主题与插件丰富。因此可以方便地打造自己喜欢的Blog显示效果和功能,让它在简单的同时,变得更加美观、强大。
功能设置比较合适、合理,不像有些软件那样多而无用。
代码修改比较方便、容易。
也正是上述这些原因,我最终选择了Wordpress。
2. 安装
WordPress的安装非常的简单,如果一切顺利的话,只需要几分钟就可以搞定。当然,妥善的前期准备工作在这里是必要的前提。
为了放置你的Wordpress文件,你必须得先找到一台合适的主机。至于它是你自己搭建的,还是去服务商那里租用的,这并不重要。(这里只介绍后一种情况)
前面的简介中已经说过,Wordpress是用PHP+MySQL实现的,因此,它的安装对主机有一个基本的的要求,即主机必须支持高于4.1版本的PHP和高于3.23.23版本的MySQL。另外,主机的Apache(地球上最流行的Web服务器,类似于微软的IIS – Internet Information Services)最好还要支持mod_rewrite功能,这样就可以生成各种指定形式的Permalink(一个静态html形式的页面地址),便于搜索引擎的查找和用户的使用。否则,页面链接的形式就只能是我Blog这样的,如http://alexhuang.org/?p=1。当然,这并不影响它的正常使用。
如果你对permalink没有太多的要求,那么,使用的由edong网提供的K300型虚拟主机将 是不错的选择。以我目前的使用情况来看,还是比较满意的。这个空间容量共为300M,其中数据库为100M(WordPress只在数据中存放文本化的 XHTML代码,因此,完全够用了)。PHP版本为4.3.11,MySQL版本为3.23.28,都符合Wordpress的要求。每年的费用为300 元,相比其它服务商,算是比较实惠的价格了。速度还行,稳定性也比较不错。
购买主机以后,你就可以登录管理页面,然后通过设置MySQL数据库的面板,定义一个自己的数据库,它的名字以及你的用户名和密码都由你自己决定。这三个东东非常的重要,请你一定要记下来。
接下来,就可以到这里下载最新版本的Wordpress程序包,进行正式的安装了。
首先,用解压缩软件如WinRAR将程序包解压。
然后,找到解压后目录中的wp-config-sample.php文件,用文本编辑软件如notepad打开它。
接下来是最关键的步骤了,即填写你的MySQL数据库信息,这些信息由你自己在虚拟主机服务商提供的设置面板中定义。在wp-config-sample.php文件的头部,你会发现类似如下的代码:

define(’DB_NAME’, ‘wordpress’); // 把wordpress用你的MySQL数据库名字代替
define(’DB_USER’, ‘username’); // 用你的MySQL数据库用户名代替username
define(’DB_PASSWORD’, ‘password’); // password即你的MySQL数据库密码
define(’DB_HOST’, ‘localhost’); // 一般来说,这一行就不需要修改了
按照我中文所说的要求,填写相关的信息即可。以“另存为”的方式将wp-config-sample.php文件改名为wp-config.php保存。
文件修改完毕后,用FTP软件如Filezilla将 整个解压目录上传至你虚拟主机上的Wordpress目录,上传时所需的相关资料如主机IP地址、用户名、密码等服务商会提供给你,至于FTP客户端的使 用,这里暂不细讲。Wordpress目录由你自己决定,可以是根目录,也可以是你自己定义的新目录,它将决定你的Blog将以什么样的地址进行访问。我 放在根目录下,就可以用http://alexhuang.org/访问我的Blog,如果放到如/blog/目录下,那么,访问这个Blog就要输入http://alexhuang.org/blog/才行(当然,可以在后台进行设置改变这一限制)。
安 装工作的最后一步,就是获取你的Wordpress用户名和密码了。在地址栏中输入install.php文件的URL,它位于你的Wordpress目 录下的wp-admin子目录中,因此一般的形式为http://wordpress目录/wp-admin/install.php。这个安装文件会生 成一个用户名和密码给你,通过它们,你就可以进入Wordpress的管理面板进行相关的操作了,并且,拥有的是最高权限。这个密码非常的重要,请你一定 要记牢,当然,你也可以在登录后将密码修改为你自己喜欢的字符串。 />补充:
当然,还有第三种方式可以让你更为方便地使用Wordpress,那就是找一个以Wordpress为基础平台的Blog服务商,你注册后就可以立即感受使用Wordpress的乐趣了。我还是推荐几个这样的服务商给大家吧:
· wordpress.com (wordpress团队自己弄的)
· wordpress.com.cn (好象是国内做的,我试过还行)
· blogsome.com (我以前最喜欢用的)






3. 一般使用
前面,我花了一定的篇幅对Wordpress的来历、用途,以及安装进行了一个简要的介绍。接下来,我则会对它的使用进行较为详细的说明了,这些内容将是本系列文章的重点。
WordPress分前端和后台,为了获得一个初步的印象,你可以点这里先看看其官方网站提供的截图。前端是所有用户都能看到的,也即你的Blog最终的外在表现形式,如我的Blog此刻呈现在你面前的样子。后台则仅对管理员和有一定权限的注册用户开放,Wordpress的管理全部都是在后台进行的。
在 地址栏输入”你的域名/wp-admin/”或”你的域名/wp-admin/index.php”,如http://alexhuang.org/wp -admin/或http://alexhuang.org/wp-admin/index.php,填好你的用户名和密码,即可进入行你的 WordPress后台管理界面的主页面。当然,你还可以输入更为具体的地址,直接进入行后台管理界面中的相应功能模块。如”你的域名/wp- admin/post.php”(直接写文章),”你的域名/wp-admin/themes.php”(直接管理主题),”你的域名/wp- admin/link-manager.php”(直接管理链接)等。另外,如果你是管理员或注册用户的话,也可以在前端的页面中点击”Site Admin”(用户名和密码已被系统记住时)或”Login”(你已退出登录或用户名和密码还未被系统记住时)进入后台管理界面。Wordpress后台 管理界面主页面的大致模样请点这里查看。
进入Wordpress后台管理界面的主页面后,你会在最上方看到一个主菜单,通过它们,你就可以完成对Wordpress的主要管理工作了。由于这一部分的内容较多,所以,我决定再将该部分的内容根据与Wordpress后台管理主界面相似的分类细分为七个部分,即:

1. 写文章(Write)
2. 内容管理(Manage)
3. 链接管理(Links)
4. 主题功能(Presentation)
5. 插件功能(Plugins)
6. 用户管理(Users)
7. 设置(Options)
在接下来的文章中,我将依次对它们逐一地进行介绍。
建议:
Tiger Style Administration是一个非常不错的Wordpress后台管理界面转换插件,它可以将你初始的后台管理界面改造成苹果电脑所使用的操作系统的风格,非常的漂亮,喜欢的朋友可以试试。








3.1 写文章(Write)
首先,你可以点这里对Wordpress的文章编辑页面形成一个初步的印象。
撰 写文章的页面主要有四个区域。最上面是选择Wordpress后台管理面板中其它功能页面的菜单,中间左边是编辑区域,用于文章的编写,它的右边是内容分 类选择区域,可以用它为当前编写的文章选择相应的分类,最下方是则为了当前文章选择参数和增加用户自定义内容的地方。如果你选择了”Advanced Controls”(高级编辑页面)的话,在它的下方还会看到当前编辑的文章在前端(Front-End)的最终显示效果,它与外部用户能看到的效果保持 一致。
四个区域中,选择菜单前面已有提到。内容分类选择也很简单,你自己可以依情况而定,需要提一下的就是,分类可以选择一个,也可 以选择多个。它的下方还有三个选项,包括”Allow Comments”(是否允许评论)、”Allow Pings”(是否允许本文去Ping它指向的文章)、”Password”(为本文设定一个密码,只有拥有这个密码的人者可以进行编辑)
编辑区域和用户自定义区域的使用相对要复杂一些,因此,要多做一点介绍。
编辑区域的最上方”Title”处,用于填写你的文章标题。
再 往下,会根据你选择是”Simple Controls”(一般编辑页面)还是”Advanced Controls”(高级编辑页面)而有所不同。它的设置我们会在后面的内容中讲到。由于高级编辑页面包含了一般编辑页面中所有的选项和功能,因此,我们 这里的介绍以它为准。
在”Title”的下方,就是”Excerpt”(摘要)区域,这里用于编写针对你文章的摘要。用于读者在以摘 要的模式订阅和浏览文章的时候,显示相关的内容。针对他们的设置将在后面介绍。当然,你也可以不写摘要,这不会对文章造成什么影响。事实上, WordPress自带了个摘要抽取功能,它会在必要的时候执行,只是其内容可能没有自己撰写的准确而已。
再往下走,就是文章编辑页面最重要的地方了,”Post”即文章内容编辑区域,它的大小可以进行设定,留到以后再讲。这里关键讲一下”Quick Tags”(便捷标签),它对你的文章编写是比较有帮助的。
WordPress每一篇文章的内容是由标准的XHTML语言构成,这些标签对应的就是相应的标签功能。它们分别是:

B – 粗体字
i – 斜体字
link – 添加链接
B-Quote – 引用文字
del – 文本加删除线
ins – 文本加下划线
img – 添加图片
ul – 定义有标记的列表
ol – 定义有序号的列表
li – 定义列表项
code – 设置文本为代码风格
more – 添加注释
look up – 在文章内进行查找
Close Tags – 关闭打开的标签(好象不起作用?)
当 然,这些标签的功能还比较有限,因此,为了实现更多的功能,如插入Flash对象等,你最好还得进一步地学习一相XHTML语言的相关知识。不过,对于一 般内容的编写而已,它也已经够用了。需要特别提一下的是,文章的最终显示效果主要还是由主题下的核心样式表(一般叫style.css)来进行控制。
编辑区域的下方,是进行参数选择和设置自定义内容的地方。这些选项有:

Post Status: 文章的当前状态。可以是”Published”(已发布)、”Draft”(草稿)、”Private”(私人日记,选择这种状态,那么该篇文章就只有作者自己能看到)
Send Trackbacks To: 通过它,你可以在发布该篇文章的同时向指定的地址发去一个通告。比如,在你引用了某人Blog中的文章时,你希望告知他,就可以利用这个功能。
Post Slug: 当你使用Permalinks功能的时候(前面提到过,需要Apache的mod_rewrite,反正edong网是 不支持,所以我也没体验过),Wordpress将为你的每一篇文章生成一个类似”你的域名/year/month/day/文章标题/”这样的静态 HTML地址(当然,怎么生成permalinks,你自己还可以定义)。当你想用自己设定的内容来代替permalinks最后的一段字符时,就需要指 定一个Post Slug,这样,Wordpress生成的permalinks的形式就成了”你的域名/year/month/day/post-slug/”。因此, 可以看到,Post Slug主要作用就是可以为每篇文章形成一个更合理、更具个性的静态链接地址。Slug这个字串符最好使用英文或阿拉伯数字的组合,对中文支持怕是不大好 的。
Post author: 文章作者,谁登录编辑此文,谁就是默认的作者。在有多个注册用户的情况,可选相应的作者。
Edit Time: 默认情况下,以系统的当前时间为发贴时间。但你也可以根据自己的情况需要进行修改,比如说把时间提前,这样,该篇文章就插入到你指定的时间所在文章集合中对应的位置。
Custom Field(s): 用户自定义区域。这一块的内容相对比较复杂,它会根据你的加入的插件而有所改变。它包括两个部分,即”Key”(自定义
区域名字)和”Value” (值)。默认情况下只有”enclosure”,可以定义你的文章中加入了哪些资源(如音乐)。当然,Wordpress允许用户自己加入新的内容,如我 每篇文章下的Technorati区域,就是在这里进行定义的。其具体的使用方法后面加讲。
初 次文章编辑完成后,点”Publish”按钮就可发布,点”Save”则只进行保存。当重新编辑时,点”Save”则可实现文章内容的更新。默认情况下, WordPress会为每一文章生成一个唯一的、按顺排列的ID,你可以用”你的域名/?p=[文章ID]”这样的形式支持访问它,如这当前这篇文章就 是”http://alexhuang.org/?p=169”
3.2 内容管理(Manage)
点击主菜单上的”Manage”即可进入内容管理页面,当然,也可在地址栏输入”你的域名/wp-admin/edit.php”直接访问该页面。
管 理页面的还下辖多个子页面,点页面上方的相应链接即可进入。默认情况下,有”Posts”(文章)、”Pages”(独立页面)、” Categorires”(内容分类)、”Comments”(评论)、”Awaiting Moderation”(等待审核的评论)、”Files”(系统文件)等六项。另外,如果你安装了某些插件,可能同时也会在这里增加针对管理它们的相应 选项。
3.2.1 文章管理(Posts)
打开内容管理页面,默认显示的就 是文章管理页面。为了方便地找到你希望编辑的文章,在页面的上方增加了一个文章搜索(Search Post)功能,以及显示指定月份文章(Browse Month)的选项。因为随着你写作的时间越来越长,文章可能会变得比较多,这样就不容易找到你想编辑的文章,而这两项功能,就是为了给用户提供更多的便 利而专门设置的。
再往下,Wordpress会按你的要求,显示详细的文章信息列表,每一篇文章占一行。这些信息从左至右包括:
唯一编号(ID)、最后更新时间(When)、标题(Title)、文章所属分类(Categories)、文章评论数(Comments)、作者(Author)。在每一行的最右边,有三个针对该文章的操作按钮,即:

查看(View) – 直接回到前端(Front-End),显示该篇文章的最终显示结果。
编辑(Edit) – 进入文章编辑页面,它和前面所讲的撰写文章的页面几乎一样,只是文章不再是从零开始进行撰写,而是在已有的基础上进行修改。因此,这里就不再深入介绍了,看我前面的文章即可。
删除(Delete) – 删除该篇文章。
如果指定要列示的文章比较多,一页不够显示(默认一页显示15篇文章的信息)。那么,文章管理页面的最加方还会出现一个名为”更多前面的文章”(Previous Entries)的链接,让你查看更多文章的信息。
3.2.2 独立页面管理(Pages)
点内容管理页面最上方的Pages项,即可进行独立页面管理界面。独立页面的撰写和管理与文章的撰写和管理十分的相似,因此,就里就不再赘述了,相信大家都能举一反三。
3.2.3 内容分类管理(Categories)
内容分类是为了更好的组织文章的一种方式,它不仅可以让作者更容易地管理的自己的文章,还可以让读者更方便的阅读自己喜欢的内容。
WordPress 提供了方便的分类功能。在内容分类管理页面中,有一个”加入一个新的分类”(Add New Category)区域,在这里填上分类的名字(Name),选择好上级分类(Category Parent),再填写好分类的说明(Description,选填项目),然后,点”增加一个分类”(Add Category)按钮,就可以完成内容分类的添加工作了,非常的简单。添加好分类后,你就能够在撰写文章的页面中,方便地使用它们了。
在内容分类管理页面中,分类的信息用与文章管理页面中的文章信息相似的方式显示。一个分类占一行,从左到右分别是:

分类唯一标识(ID)
分类名称(Name)
分类说明(Description)
分类下辖文章数(# Posts)
编 辑按钮(Edit) – 点击它,会进入下分类编辑页面,与”加入一个新的分类”区域中的内容相似,只是多了一个Category Slug选项,你可以在这里填入一个字符串,其具体作用不详,应该是用在permalinks功能中,用于生成该分类的子目录。最终生成类似”你的域名/ [category slug]/[post slug]”这样的静态HTML页面。
删除按钮(Delete)
3.2.4 评论管理(Comments)
评论是读者在看了你的文章后作出的反馈(当然也有垃圾评论,如广告),是Blog作者与读者进行交互的重要手段。
评论管理页面的最上方,有一个搜索区域,在这里可以方便地找到你希望直接进行管理的评论。
在 它的下面,有两个选项,用于要求Wordpress以指定的方式列出评论管理页,其中”View Mode”以向下一个个显示评论及操作选项的方式列出评论,而”Mass Edit Mode”则与文章管理页面相似,以一个表格来显示相应的评论,每个评论占据一行的位置。
根据你使用评论列示方式的不同,系统显示出的信息和针对它们的操作都是也会略有区别。关于评论的信息大致有:

评论者(Name)
评论者电邮(E-Mail)
评论者IP地址(IP)
评论内容的摘要(Comment Excerpt)
评论的时间(”View Mode”下才显示)
而相应的操作则包括:

编辑评论(Edit Comment)
删除评论(Delete Comment)
编辑被评论的文章(Edit Post,”View Mode”下才支持)
显示被评论的文章(View Post,”View Mode”下才支持)
到前端查看评论(View按钮,”Mass Edit Mode”下才支持)
删除多篇文章(点每个评论前的复选框,再按最下方的”Delete Checked Comments”,在”Mass Edit Mode”下才支持)
在”View Mode”下点”Edit Comment”,在”Mass Edit Mode”下点”Edit”按钮,都可以立即进入评论编辑页面,在这个页面中,你可以修改:

评论者的名字(Name)
评论者的电邮地址(E-Mail)
评论者留下的唯一资源标识(URI)
评论内容本身(Comment)
评论的状态(Comment Status), 包括”Approved”(允许该条评论发布)、”Moderated”(等待审核,不会被显示)、”Spam”(垃圾评论,不会被显示)
评论的时间(Edit Time)
删除该评论(Delete Comment)
操作完毕后,点”Edit Comment”按钮,即可完成对该条评论的修改。
3.2.5 等待审核的评论(Awaiting Moderation)
这是Wordpress为了防止垃圾评论、广告的骚扰而提供的功能。它的设置要在”Options”模块中完成,如你可以规定评论中的链接超过五个,则该 评论被暂定为垃圾评论(具体的设置后面再讲)。当发现的相应的垃圾评论时,Wordpress不会让该评论直接显示在前端的页面中,而是把它放到的这里来 进行管理。这些评论必须要通过了你的允许,才会被显示出来,当然,你也可以方便地编辑或删除它们。其操作与评论管理类似。
3.2.6 系统文件管理(Files)
系统文件这里指的是Wordpress的核心文件,包括程序本身、主题、插件等用到的PHP程序文件、CSS样式定义文件及其它一些可编辑的文件。在系统 文件管理页面中,你可以对Wordpress进行最底层的操作,如果你不了解XHTML、CSS、PHP、Javascript语言,建议你就不要到这里 来了。
如果你认为自己有能力对这些文件进行修改、编辑,那也不用我再介绍这个页面里的内容了,因为你应该看得懂的。毕竟,就只有两个按钮:

Update File – 更新你当前编辑的文件
Edit File – 选择你要编辑的文件,直接输入它们的URL地址即可。如果你不清楚它们的地址在哪儿,可以打开你的FTP客户端查看。




3.3 链接管理(Links)
点后台管理面板上的”Links

搏杀秒关:一秒钟关机的危害

0

分类 : 技术文摘 | 发表时间 19-05-2006

有一种在网上流传的快速关机方法:调出任务管理器,按住Ctrl键,点击关机,这样可三秒关机,速度很快。另外,也有一些快速关机软件,如:SuperFast Shutdown,用它也能快速关机。

我们都知道,系统关机时要进行一系列的操作,包括:关闭窗口、结束进程和服务、保存数据等等。而像上面那样快速关机是否省掉了某些步骤,这样做又会不会对系统有所危害呢?

先来看看系统正常关机要经历哪些步骤:

①关机指令通知Windows子系统CSRSS.EXE,CSRSS.EXE,收到通知后会和Winlogon.EXE做一个数据交换,再由Winlogon.EXE通知CSRSS.EXE开始关闭系统的流程。

②CSRSS.EXE依次查询拥有顶层窗口的用户进程,让这些用户进程退出。

③接着开始终止系统进程。

以上3个步骤是整个Windows关机过程中最耗费时间的一段,大多数关机缓慢的原因都是因为这3个步骤引起的。

④Winlogon.EXE调用NtShutdownSystem()函数来命令系统执行后面的扫尾工作,最后关机。

看来Windows关机过程还挺复杂的。而使用Ctrl键关机或是使用某些快速关机软件,并不会经过完整的四步过程,而往往是跳过前三步而直接调用NtShutdownSystem()函数进行关机的。

很多软件在运行时会将数据写入内存,在退出时再保存到文件。如果不经过前面的步骤关机,会导至程序不能正常退出而丢失数据,这样就可能因重要数据丢失造成一些意外的错误,对系统是有危害的。

所以,在此建议大家尽量不要使用Ctrl键关机或是某些快速关机软件,毕竟数据的安全性比节省的那一点关机时间重要得多。

Linux网络安全经验之谈

0

分类 : 技术文摘 | 发表时间 23-04-2006


关于分区

一个潜在的黑客如果要攻击你的Linux服务器,他首先就会尝试缓冲区溢出。在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种形式了。更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权!

为了防止此类攻击,我们从安装系统时就应该注意。如果用root分区纪录数据,如log文件和email,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还有建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。

关于BIOS

记着要在BIOS设置中设定一个BIOS密码,不接收软盘启动。这样可以阻止不怀好意的人用专门的启动盘启动你的Linux系统,并避免别人更改BIOS设置,如更改软盘启动设置或不弹出密码框直接启动服务器等等。

关于口令

口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN(口令最小长度)。同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS(口令使用时间)。

关于Ping

既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行,这样就可以阻止你的系统响应任何从外部/内部来的ping请求。

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

关于Telnet

如果你希望用户用Telnet远程登录到你的服务器时不要显示操作系统和版本信息(可以避免有针对性的漏洞攻击),你应该改写/etc/inetd.conf中的一行象下面这样:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login。

关于特权账号

禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击。

为删除你系统上的用户,用下面的命令:userdel username

为删除你系统上的组用户帐号,用下面的命令:groupdel username

在终端上打入下面的命令删掉下面的特权用账号:

userdel adm

userdel lp

userdel sync

userdel shutdown

userdel halt

userdel mail

如果你不用sendmail服务器,就删除这几个帐号:

userdel news

userdel uucp

userdel operator

userdel games

如果你不用X windows 服务器,就删掉这个帐号。

userdel gopher

如果你不允许匿名FTP,就删掉这个用户帐号:

userdel ftp

关于su命令

如果你不想任何人能够su为root的话,你应该编辑/etc/pam.d/su文件,加下面几行:

auth sufficient /lib-

/security/pam_rootok-

.so debug

auth required /lib-

/security/pam_wheel-

.so group=isd

这意味着仅仅isd组的用户可以su作为root。如果你希望用户admin能su作为root.就运行下面的命令:

usermod -G10 admin

suid程序也是非常危险的,这些程序被普通用户以euid=0(即root)的身份执行,只能有少量程序被设置为suid。用这个命令列出系统的suid二进制程序:

suneagle# find / -perm -4000 -print

你可以用chmod -s去掉一些不需要程序的suid位。

关于账户注销

如果系统管理员在离开系统时忘了从root注销,系统应该能够自动从shell中注销。那么,你就需要设置一个特殊的 Linux 变量“tmout”,用以设定时间。 同样,如果用户离开机器时忘记了注销账户,则可能给系统安全带来隐患。你可以修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。 编辑文件/etc/profile,在“histfilesize=”行的下一行增加如下一行:

tmout=600

则所有用户将在10分钟无操作后自动注销。注意:修改了该参数后,必须退出并重新登录root,更改才能生效。

关于系统文件

对于系统中的某些关键性文件如passwd、passwd.old、passwd._、shadow、shadown._、inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。 如将inetd文件属性改为600:

# chmod 600 /etc/inetd.conf

这样就保证文件的属主为root,然后还可以将其设置为不能改变:

# chattr +i /etc/inetd.conf

这样,对该文件的任何改变都将被禁止。 你可能要问:那我自己不是也不能修改了?当然,我们可以设置成只有root重新设置复位标志后才能进行修改:

# chattr -i /etc/inetd.conf

关于用户资源

对你的系统上所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数,内存数量等。例如,对所有用户的限制, 编辑/etc/security/limits.con加入以下几行:

* hard core 0

* hard rss 5000

* hard nproc 20

你也必须编辑/etc/pam.d/login文件,检查这一行的存在:

session required /lib/security/pam_limits.so

上面的命令禁止core files“core 0”,限制进程数为“nproc 50“,且限制内存使用为5M“rss 5000”。

关于NFS服务器

由于NFS服务器漏洞比较多,你一定要小心。如果要使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。你可以编辑文件/etc/exports并且加:

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)

其中/dir/to/export 是你想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。最后为了让上面的改变生效,还要运行/usr/sbin/exportfs -a

关于开启的服务

默认的linux就是一个强大的系统,运行了很多的服务。但有许多服务是不需要的,很容易引起安全风险。这个文件就是/etc/inetd.conf,它制定了/usr/sbin/inetd将要监听的服务,你可能只需要其中的两个:telnet和ftp,其它的类如shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth, etc. 除非你真的想用它。否则统统关闭之。

你先用下面的命令显示没有被注释掉的服务:

grep -v “#” /etc/inetd.conf

这个命令统计面前服务的总数:

ps -eaf|wc -l

需要提醒你的是以下三个服务漏洞很多,强烈建议你关闭它们:S34yppasswdd(NIS服务器)、S35ypserv(NIS服务器)和S60nfs(NFS服务器)。

我们可以运行#killall -HUP inetd来关闭不需要的服务。当然,你也可以运行

#chattr +i /etc/inetd.conf

如果你想使inetd.conf文件具有不可更改属性,而只有root 才能解开,敲以下命令

#chattr -i /etc/inetd.conf

当你关闭一些服务以后,重新运行以上命令看看少了多少服务。运行的服务越少,系统自然
越安全了。我们可以用下面命令察看哪些服务在运行:

netstat -na –ip

如果你用的是Redhat那就方便多了。^_^ Redhat提供一个工具来帮助你关闭服务,输入/usr/sbin/setup,然后选择”system services”,就可以定制系统启动时跑哪些服务。另外一个选择是chkconfig命令,很多linux版本的系统都自带这个工具。脚本名字中的数字是启动的顺序,以大写的K开头的是杀死进程用的。

关于日志

所有的日志都在/var/log下(仅对linux系统而言),默认情况下linux的日志就已经很强大了,但除ftp外。因此我们可以通过修改/etc/ftpaccess 或者/etc/inetd.conf,来保证每一个ftp连接日志都能够纪录下来。下面是一个修改inetd.conf的例子,假如有下一行:

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -L -i -o

注释:

-l每一个ftp连接都写到syslog

-L纪录用户的每一个命令

-i文件received,纪录到xferlog

-o文件transmitted,记录到xferlog

不过你也不要太相信日志,因为绝大部分黑客都有“擦脚印”的“好”习惯啰!如果你不放心,最好安装一个Sniffer吧。

关于TCP_WRAPPERS

默认的,Redhat Linux允许所有的请求,这是很危险的。如果用TCP_WRAPPERS来增强我们站点的安全性简直是举手之劳,你可以将禁止所有的请求放入“ALL: ALL”到/etc/hosts.deny中,然后放那些明确允许的请求到/etc/hosts.allow中,如:

sshd: 192.168.1.10/255.255.255.0 gate.openarch.com

对IP地址192.168.1.10和主机名gate.openarch.com,允许通过ssh连接。配置完了之后,用tcpdchk检查,你可以直接执行:tcpdchk 。在这里,tcpchk是TCP_Wrapper配置检查工具,它检查你的tcp wrapper配置并报告所有发现的潜在/存在的问题。

关于补丁

你应该经常到你所安装的Linux系统发行商的主页上去找最新的补丁。例如:对于Redhat系统而言可以在:http://www.redhat.com/corp/support/errata/上找到补丁。幸运的是,在Redhat6.1以后的版本带有一个自动升级工具up2date,它能自动够测定哪些rpm包需要升级,然后自动从Redhat的站点下载并完成安装。这对某些懒惰的管理员来说,可是个省精神的福音哦!^_^

RSS安全隐患探讨

0

分类 : 网站技术 | 发表时间 31-03-2006

作者:[曾伟] 来源:[世纪安全网络--21SaFe.CoM]

又是枫红叶落金秋时,秋风渐起,带来的除了飞舞的落叶与阵阵寒意,还有CEO们期盼着以web 2.0这个定义模糊的概念带来利益的希望。在此,天缘姑且抛开以用户为主导的web2.0不谈,只就其中的一个重要组成部分——目前已经比较广泛使用的RSS技术与各位朋友作简单地探讨。

RSS是以xml技术为基础,以聚合信息为目的进行信息表现的一种技术手段。其发展到目前,有多个版本及派生,比如ATOM等。随着对信息内容处理/包含的多样化,RSS的设计者将其功能与以加强,支持了js,ActiveX等多样丰富内容及处理表现的技术。而我们在享受着越来越便利的信息获取的同时,安全隐患的潘多拉盒子却慢慢地开启了。

下面,就让天缘带着大家一起,用一个个简单地小例子,将RSS的隐患一一暴露出来吧。破坏RSS在大家心目中美好的期望并不是我所愿意的,但“不破不立,破而立之”。能在RSS更广泛流行之前,把问题暴露出来,总比事后补救更好一些呢。

1.Web网页有繁人的弹出窗口,RSS能避免掉吗?

在浏览网页的时候,第一讨厌的就是弹出的广告窗口,那么在RSS中,我们是否就可以静静地阅读文章而不受打扰呢。愿望是美好的,现实却是残酷的,看看下面的一个小例子:

<?xml version=”1.0″ encoding=”gb2312″ ?> 
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
 <item>
<title>
<![CDATA[ 测试 ]]>
 </title>
<description>
<![CDATA[<font color=’red’ onMouseOver="javascript:window.open(’http://skylove.study-area.org’);">一个测试,把鼠标移动上来吧.</font>]]>
</description>

 <link>http://skylove.study-area.org/bbs/read.php?tid=752</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=752</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=752</guid>
<author>
<![CDATA[ skylove ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=752″>喜欢稀饭BBS</source>
 <pubDate>Mon, 10 Oct 2005 11:50:08 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS ]]>
 </category>
 </item>
</channel>
</rss>

以上的文本,请保存为一个xml文件,之后在rss浏览器中打开就能看到效果。当鼠标移动到那行文字的时候,竟然新开了一个web页。当然,在此例中我所指向的是一个安全的地址。然而,如果是一个恶意的rss文件,打开的是一个含有恶意代码的web页,那样会如何呢?相信结果大家都能想到了。在rss中,允许利用<![CDATA[ 和]]> 包含按原格式输出的html文本,本身是为了丰富页面元素,允许方便地用html的元素来规定字体,颜色,图片显示等元素。由于是对html代码进行解释,因此,大多的RSS浏览器在设计的时候,对这部分元素的解释,直接采用调用ie浏览器内核的方式来完成。由此造成了css和js代码也可以被方便地解释执行——“剑本双刃,为仁为恶,存乎一心。”但由此带来的问题是——比直接ie浏览web页面更糟糕的是,很多RSS自带的web浏览功能中,是没有带恶意javascript脚本过滤功能的,因此相对于ie那比较糟糕的防御而言,RSS则更是心不设防。同样类似的例子是outlook等邮件客户端在浏览多媒体邮件时候带来的麻烦,不过现在outlook的漏洞已经被微软patch了。而众多RSS浏览器,由于不是微软出品或是windows捆绑,就只好期待各浏览器的软件作者尽快更新此类功能了。所幸的是截至截稿时候为止,天缘所使用的GreatNews RSS浏览器已经加上了弹出窗口屏蔽地功能。

2.象牛皮藓一样的漂浮广告在RSS时代是否终结了呢?

漂浮的广告总是在我们浏览网页的时候,阻挡着我们的视线,曾经在RSS初出的时候,我们认为找到了救星,那么是否在RSS里,漂浮的广告就会消失掉呢? 试一下以下的代码吧:

<?xml version=”1.0″ encoding=”gb2312″ ?>
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
 <item>
<title>
<![CDATA[ test ]]>
 </title>
<description>
<![CDATA[ 
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
 if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
  document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
 else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_timelinePlay(tmLnName, myID) { //v1.2
 //Copyright 1997, 2000 Macromedia, Inc. All rights reserved.
 var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
 if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
 tmLn = document.MM_Time[tmLnName];
 if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
 if (myID == tmLn.ID) { //if Im newest
  setTimeout(’MM_timelinePlay(“’+tmLnName+’”,’+myID+’)’,tmLn.delay);
  fNew = ++tmLn.curFrame;
  for (i=0; i<tmLn.length; i++) {
   sprite = tmLn;
   if (sprite.charAt(0) == ’s’) {
    if (sprite.obj) {
     numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
     if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
      keyFrm=1;
      for (j=0; j<sprite.values.length; j++) {
       props = sprite.values[j];
       if (numKeyFr != props.length) {
        if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
        else    sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr];
       } else {
        while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
        if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
         if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
         else    sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
    } } } } }
   } else if (sprite.charAt(0)==’b’ && fNew == sprite.frame) eval(sprite.value);
   if (fNew > tmLn.lastFrame) tmLn.ID = 0;
 } }
}

function MM_initTimelines() { //v4.0
  //MM_initTimelines() Copyright 1997 Macromedia, Inc. All right
s reserved.
  var ns = navigator.appName == “Netscape”;
  var ns4 = (ns && parseInt(navigator.appVersion) == 4);
  var ns5 = (ns && parseInt(navigator.appVersion) > 4);
  document.MM_Time = new Array(1);
  document.MM_Time[0] = new Array(1);
document.MM_Time["Timeline1"] = document.MM_Time[0];
  document.MM_Time[0].MM_Name = “Timeline1″;
  document.MM_Time[0].fps = 15;
  document.MM_Time[0][0] = new String(“sprite”);
  document.MM_Time[0][0].slot = 1;
  if (ns4)
    document.MM_Time[0][0].obj = document["Layer1"];
  else if (ns5)
    document.MM_Time[0][0].obj = document.getElementById(“Layer1″);
  else
    document.MM_Time[0][0].obj = document.all ? document.all["Layer1"] : null;
  document.MM_Time[0][0].keyFrames = new Array(1, 15);
  document.MM_Time[0][0].values = new Array(2);
  if (ns5)
    document.MM_Time[0][0].values[0] = new Array(“30px”, “34px”, “39px”, “43px”, “47px”, “52px”, “56px”, “61px”, “65px”, “69px”,
“74px”, “78px”, “82px”, “87px”, “91px”);
  else
    document.MM_Time[0][0].values[0] = new Array(30,34,39,43,47,52,56,61,65,69,74,78,82,87,91);
  document.MM_Time[0][0].values[0].prop = “left”;
  if (ns5)
    document.MM_Time[0][0].values[1] = new Array(“20px”, “35px”, “50px”, “65px”, “81px”, “96px”, “111px”, “126px”, “141px”, “156
px”, “171px”, “187px”, “202px”, “217px”, “232px”);
  else
    document.MM_Time[0][0].values[1] = new Array(20,35,50,65,81,96,111,126,141,156,171,187,202,217,232);
  document.MM_Time[0][0].values[1].prop = “top”;
  if (!ns4) {
    document.MM_Time[0][0].values[0].prop2 = “style”;
    document.MM_Time[0][0].values[1].prop2 = “style”;
  }
  document.MM_Time[0].lastFrame = 15;
  for (i=0; i<document.MM_Time.length; i++) {
    document.MM_Time.ID = null;
    document.MM_Time.curFrame = 0;
    document.MM_Time.delay = 1000/document.MM_Time.fps;
  }
}
//–>
</script>
<body onLoad=”MM_timelinePlay(’Timeline1’)”>
<div id=”Layer1″ style=”position:absolute; width:200px; height:115px; z-index:1; left: 30px; top: 20px; background-color: #FFFF66; l
ayer-background-color: #FFFF66; border: 1px none #000000;”>测试层</div>
</body>
]]>
</description>
 
 <link>http://skylove.study-area.org/bbs/read.php?tid=752</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=752</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=752</guid>
<author>
<![CDATA[ skylove ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=752″>喜欢稀饭BBS</source>
 <pubDate>Mon, 10 Oct 2005 11:50:08 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS
 ]]>
 </category>
 </item>
</channel>
</rss>

以上的代码,保存为一个xml文件,在RSS浏览器中看看效果吧? 能看到一个层移动着。由此可以遇见,漂浮广告这个幽灵,不仅不会在RSS上消失,反而会因为无所过滤而更加放肆了呢。当然,我想也有一部分ICP们很乐意看到此情形吧——因为盈利点找到了!

#p#

3.ActiveX

微软的ie之所以在很多领域受到欢迎,与ActiveX技术带来的方便与实用性分不开。但ActiveX也时常会出现一些漏洞。那么在RSS之中,这个令人又爱又恨的功能,是否可以被使用呢?下面的例子里,天缘试着调用了一个媒体播放器:

<?xml version=”1.0″ encoding=”gb2312″ ?> 
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
<item>
<title>
<![CDATA[ [喜欢稀饭特别版]——-<<美丽心情>>——– ]]>
 </title>
<description>
<![CDATA[  电台地址:<a href=’http://skylove.study-area.org/ssqx/mlxq.mp3’ target=_blank>http://skylove.study-area.org/ssqx/mlxq.mp
3</a><br/><br/><br/><br/><br/><br/><object class="OBJECT" id="MediaPlayer" width=336 height=256 classid="CLSID:22d6f312-b0f6-11d0-94
ab-0080c74c7e95" align="middle" height="256" width="314"><param value="-1" name="ShowStatusBar"><param value="http://skylove.study-a
rea.org/ssqx/mlxq.mp3" name="SRC"><embed type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mpla
yer/en/nsmp2inf.cab#Version=5,1,52,701" flename="mp" src="http://skylove.study-area.org/ssqx/mlxq.mp3" width=314 height=256></embed>
<param name="AutoStart" value="1"></object><br/><br/><br/>制作剪辑:素手清弦<br/>感谢我的支持者:天缘(SKYLOVE)<br/><br/><br/><a href=’
/UpLoadFiles/NewsPhoto/12595936.gif’ TARGET=_blank><img src=’http://bbs.oodiy.com/UploadFile/2005-4/200542612
595936.gif’ border=0 alt=’点击打开新窗口查看全图’ onload=’javascript:if(this.width>screen.width*0.7)this.width=screen.width*0.7’></a
><br/><br/><br/>PS:因为设备(软件)出了点问题,导致声音效果不太好,或者有些突兀,刺耳,请原谅;<br/>   ^_^
 ]]>
 </description>
 <link>http://skylove.study-area.org/bbs/read.php?tid=645</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=645</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=645</guid>
<author>
<![CDATA[ 素手清弦 ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=645″>喜欢稀饭BBS</source>
 <pubDate>Sat, 04 Jun 2005 23:41:55 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS ]]>
 </category>
 </item>
 </channel>
</rss>

测试的方法同样是保存为一个xml文件,然后在RSS浏览器中打开即可。在此例中,天缘引用了一个普通的mp3节目,而如果此功能被恶意利用,那么可能被包含的就是一个有漏洞的ActiveX控件,进而导致用户的防线被撕开,埋下安全的隐患。关于利用ActiveX漏洞进行攻击的文章是很多的,各位朋友以“ActiveX”、“漏洞”作为关键字,能搜索到不少的。

4. 页面跳转

有时候,我们常常在浏览某个网页的时候,被突然转到一个无关甚至有害的站点,这真的是很令人郁闷和危险的事情呢。而在使用RSS浏览器的时候,是否也会出现同样尴尬的事情呢?

<?xml version=”1.0″ encoding=”gb2312″ ?>
<rss version=”2.0″>
<channel>
 <title>伊人有约 喜欢稀饭BBS</title>
 <link>http://skylove.study-area.org/bbs/thread.php?fid=18</link>
 <description>拒绝浮躁,让我们沉寂下来认真学习</description>
 <copyright>Copyright(C)喜欢稀饭BBS</copyright>
 <managingEditor />
 <language>zh-cn</language>
 <ttl>10</ttl>
 <generator>喜欢稀饭BBS</generator>
<item>
<title>
<![CDATA[ [ 测试页面跳转 ]]>
 </title>
<descri
ption>
<![CDATA[ <script Language=JavaScript>window.location="http://skylove.study-area.org/bbs/";</script> ]]>
 </description>
 <link>http://skylove.study-area.org/bbs/read.php?tid=645</link>
 <comments>http://skylove.study-area.org/bbs/read.php?tid=645</comments>
 <guid>http://skylove.study-area.org/bbs/read.php?tid=645</guid>
<author>
<![CDATA[ skylove ]]>
 </author>
 <source url=”http://skylove.study-area.org/bbs/read.php?tid=645″>喜欢稀饭BBS</source>
 <pubDate>Sat, 04 Jun 2005 23:41:55 +0800</pubDate>
<category>
<![CDATA[ 伊人有约 喜欢稀饭BBS ]]>
 </category>
 </item>
 </channel>
</rss>

当天缘将此脚本在GreatNews中进行测试的时候,毫无预警地,页面被跳转到了 http://skylove.study-area.org/bbs/ 上面。由此可见,页面跳转的安全隐患问题依旧是存在着的。

  5. 服务器端的跨站脚本

  RSS不光是给最终的浏览用户带来危险,在RSS的最大卖点之一“聚合”方面,写得不够严谨的代码甚至会导致聚合服务器的安全隐患。
以著名的共享开源软件lilina为例,在其PHP代码中进行include某页面操作的时候,用require_once(‘页面url’) 的方式进行引用。而问题就在于,如果在被聚合的多个rss源中,有一个恶意的站点,利用<?与?>标记进行php代码编写,那么当在聚合过程中,该rss的php代码部分事实上是在聚合服务器上被执行了。简单地来说,比如a站点的rss文件中有<?echo ‘skylove’;?>这样一行文字,那么b服务器如果对a站的这则rss进行聚合引用,而且b服务器恰好是使用php程序进行聚合,那么上面的那句代码,事实上就会在b服务器上被执行。此漏洞我是在车东先生的blog上了解到的,url是http://www.chedong.com/blog/archives/001047.html#more 。关于对此等可能包含有程序代码的rss文件的包含,php 4.3版本以后可以采用file_get_contents 函数来完成,详细可见http://cn.php.net/manual/zh/ref.stream.php 有详尽的解释和用法示例。

  行文至此,大抵也是到了结束的时候。文章不长,对于如何进行恶意操作的细节更是未提及,或许有些意犹未尽?但相信有心的朋友已经可以从此文中了解到RSS目前存在的一些漏洞以及如何利用它们了,事实上比在web页上包含恶意代码更简单,因为根本没有进行必要的安全检查。而且目前的RSS浏览器大多内嵌了网页浏览的功能,却没做在浏览网页的时候进行代码安全检查的功能。因此事实上用RSS浏览器跳转到网页后比用ie直接浏览更为危险,因为连必要的基本安全检查也没有了。至于当前的解决办法呢——暂时没有太好的,因为目前的RSS浏览器中暂时没看到有限制js代码执行与ActiveX控件执行的功能。就目前而言,如果需要保证RSS浏览的安全性,天缘个人推荐试着使用Maxthon 浏览器附带的RSS阅读功能,至少在被跳转到恶意站点的时候,还有Maxthon本身可以进行网页的安全过滤。

  此文写作的目的,是希望此文可以对RSS的浏览器作者在添加功能的时候有所帮助,同时也能使国内的杀毒厂商意识到RSS浏览器安全方面存在的一些问题,除了在web网页需要实时监控恶意代码外,RSS浏览器的实时监控或许也是不该放过的。目前就国内而言,利用到以上RSS漏洞的恶意站点并不多,这也同RSS 浏览方式在国内的普及和认同有关。但RSS浏览这一块存在重大的安全隐患,是很值得重视的。目前RSS 3.0的标准已基本制定完成(http://www.rss3.org/main.html),新设计的3.0中又新增了许多元素特性,不知道是“技术为人所用,还是人为技术所惑”呢。值得一提的是一位资深hacker Aaron Swartz(其主页在http://www.aaronsw.com/)在自行设计的rss 3.0标准中(http://www.aaronsw.com/2002/rss30),有提出返朴归真的想法,用类似ini文件的格式来表达元素,完全鄙弃html代码解释只用纯文本包含内容。回想起从最早的纯文字邮件,到后来的多媒体邮件——我们真的回的去么?不管如何,希望RSS这一良好的信息表达方式能更好地为大众造福。

文章的最后,由于此文的特殊性,天缘不得不做个免责声明:由于此文中的代码稍加修改即可能造成实际测试时候被转向恶意站点,因此天缘仅保证在此文的首发站点,也就是唯一支付给我稿酬的yesky站点上此文中代码的正确性、安全性与完整性,用户从其他转载站点上依照代码进行测试所造成的后果均与本人无关。

作者介绍:天缘(skylove),本名 曾伟 ,26岁,目前就职于西华师范大学网络中心。

web2.0关程序员什么事?

0

分类 : 业界动态 | 发表时间 27-03-2006

不 久前,当我试图说服一 位Web程序员深入研究 Web2.0时,失败了。失败的原因在于对方认为Web2.0是一个被人为炒起来的虚幻名词。这并非少数 人的想法。很多程序员认为,他们需要的是实在的利益和做法,只有具体的技术才能引起足够的兴趣并深入钻研,而像Web2.0这样的思想没有必要去深入了 解。


不过,吴孙滨却不这样想,这位证券网站的程序员同时和同伴共同在维护名为“超越PHP”的网站。除了技术之外,他还和经常与合 作伙伴一起探讨如何让技术和用户双赢。最近,他们发布的新一期电子杂志中就探讨了Web2.0。吴孙滨说:“Web2.0有利于让程序员明白很多道理,比 如不一定最先进的技术才能带来最大变革。”


与吴孙滨一样,曾经从事多年硬件和系统开发的霍炬现在也醉心于研究Web2.0,他参与开发的365Kit(www.365kit.com) 就是代表。作为一个通讯录网站,365Kit除了可以让用户在线更新查询联系人信息外,还提供了与Outlook和手机进行同步的软件和功能,而且通过系 统后台,联系人之间还可以产生社会性的关联。不久前,365Kit还发布了一个新功能,将365Kit和Msn连接起来的Msn机器人——小强。“利用小 强,你根本不需要登录网站,只需要在Msn中输入希望查询的人,它会自动帮你把联系人的信息查询到并返回Msn信息。”Donews创始人刘韧说,“我经 常会被朋友问一些人的联系方式,一天有几十次,用了小强,可以最快速的查询信息,节省大量时间。”


事实上,大部分被称为Web2.0的应用都是由程序员角色的人员率先开发的。从RSS标准的建立到Del.icio.us社会书签系统的流行,都证实了这点。


因 此,程序员不应无视Web2.0这种自己创造的新模式。当然,陷入那些关于Web2.0特性的争论中是没有意义的,我们需要的是拨开浮躁的面纱,真正关注 Web2.0到底如何指导Web应用和产品开发,会给程序员的工作和发展带来怎样的变化,程序员又如何更好适应这些变化。

设计理念的变化

对 程序员来讲,首先带来了一种设计理念上的改变。以前的Web开发,往往由于系统是给少数人使用的,因此开发时会以Web集中式管理为中心。著名 blogger、Donews总编辑洪波表示,“比如新浪的内容发布系统,因为是给编辑使用的,强调的是功能和对权限的管理。”但是,现在的Web功能越 来越需要开放给普通用户,很多以前认为通过培训可以解决的问题,现在会由于成本太大而行不通了。


这与Web数据越来越分散的趋势有 关。原来Web强调以门户网站为标识,其内容自成一体。但现在由普通用户创造的大量微内容是新的驱动力。一个小的独立应用和服务提供给用户,每个用户产生 的内容可能意义都很小,但这些内容组合起来,就会产生很大的价值。洪波认为,“而且随着信息越来越分散,用户也需要一种新的组织方式。他们希望不同网站能 够提供不同的微内容输出。” 正是在这样的大前提下,很多技术萌发了活力。RSS技术就是代表,因为这个技术很早就有了,但当时互联网上的使用模式主要是门户模式,RSS的分享特性并 不符合这种模式。而现在互联网的方向则是去中心化,所以,突然RSS这种技术变得非常有价值了。可以说,使用模式上的变革让一些老技术“老树开新花”。


这 就要求程序员必须要研究一些公共标准,提供符合规范、能够交互、分散聚合的内容。Web2.0时代的新应用往往只是一个很小的功能,因此开发者需要考虑如 何与其它的Web应用进行结合。而且用户也希望很方便的在自己需要的地方出现需要的内容,而这些内容不一定是自己来做的,很可能是由那些更专业的人士开 发。“你的Web程序不仅要能够很方便的聚合其它的应用,而且也可以输出自己的应用。”因此,Web程序员需要考虑到接口的开放,以及能不能方便的调用聚 合其它应用,这就会给系统设计思想上带来很大的变化。


整个Web世界也确实在按照这样的规则来发展。不久前,Alexa开放了自己 的世界网站排名信息的API接口,而Google、Amazon、Ebay等网站也很早便开放了API接口,一些书评网站就是直接调用的Amazon的 API接口。“不能开放接口的,也会通过输出RSS等方式让其他的网站很容易聚合内容。”洪波说。

以用户为中心


有过网上购物经历的人都知道,当我们选中购买一个产品时,都会弹出新的窗口,列出刚才选择的物品,然后请你确认数量,接下来再选择购买或者结账。实际上,看起来用户都已经被动的接受了这种模式。


然 而,当你看到Loopo购物网站时,你会对其它网站的购物流程有新的认识。Loopo的界面看起来与其他网站一般无二,使用的也同样是PHP和脚本,但在 使用习惯上有了变化。用户看中某个物品后,可以直接拖动物品放到购物车中,系统会自动记录你要购买的物品名称。看起来很小的一个变化,却让这个网站吸引了 很多人的目光,因为这更接近日常生活的使用习惯。可以说,当程序员认为弹出新页面天经地义的时候,他们其实已经漠视了用户的使用习惯。除了这个功能, Loopo还做了很多符合用户习惯的改进,也因此,Loopo被一些用户称为2005年最酷的购物网站。


Web2.0改变了一些产 品特性的优先级。原来做产品,可用性的优先级会往后放,而把功能放在首要位置。现在则由于要给普通用户使用,必须要以用户为中心,肯定要从易用的角度出发 了。可以说,Ajax技术的流行,首先解决的也是一个观念问题。虽然这时Pageview无法获得增长了,但是它却可以给用户带来更为便利的网络访问。霍 炬说,“365Kit提供的功能让用户在手机上看到的只是一个简单同步按钮,这就大大降低了用户的使用门槛。”洪波就非常推崇著名的图片分享网站 Flickr,这也是Web2.0的代表性网站。“我在使用Flickr的时候,任何我希望修改的部分,我随时可以修改。而以前需要弹出新的页面,再修 改。可以说,技术变化带来了一种面向用户的新体验。”


现在的网站开发不是为了追求Pageview了,而是为用户提供需要的功 能,满足他们的需求。现在很流行书籍音乐电影的评论网站豆瓣也是一个代表。创始人杨勃在物理学博士毕业后,曾在IBM公司工作,2000年回国后曾担任一 家物流管理软件公司的CTO。不过,热爱编程的他看到了人们在书籍、音乐和影视作品分享方面的空缺,从2004年开始设计豆瓣网。杨勃表示,对大部分人来 说,书籍、音乐、电影的选择特别多,这就带来一个方向,也就是需要发现和分享。每个人的口味都不一样,大家共享之后就会产生口碑传递。“所以,一开始就豆 瓣不是为了做一个网站,而是满足人们的一个需求,如果对用户没用,只是新鲜是远远不够的。”


然而,国内很多程序员在观念上还没 有转到Web2.0的路径上,仍然持有一些比较老的观念。洪波说,“我也接触了很多开发者,这个观念他们不是特别容易改变。程序员往往喜欢按照自己的思 路,有一种比较固执的想法。但当他们的想法遇到没有任何培训的用户时,就会碰壁,因为用户根本不会像他们那样去理解。”


技术高低影 响不是特别明显,但领悟Web2.0的
真谛后一下就可以明白很多差距。吴孙滨表示,原来公司的同事之间的讨论可能仅仅限于了解对方有什么需求,考虑一下功 能如何实现。现在,公司的程序员在学习了Web2.0后,出现了新的变化,大家会考虑几种完成的方式,相互之间有什么不同。大家会经常问这样的问题:这样 做会不会更用户带来更多的方便?用户的感受是怎样的?如何做的更好?

简单的前台与复杂的后台


符合用户的习惯,简单的前台界面不代表系统的简单。事实上,正相反,在Web2.0的系统中,后台需要做更多的工作。一些表面看起来很简单的功能背后可能需要大量的程序和计算的支撑。


豆 瓣网就是最具代表性的例子。与大多数网站不同的是,最早开发的部分是一套推荐引擎,这是基于数学统计的计算模型。在用户点击过看过的东西以后,这套模型可 以自动分析出“与其口味最像的人”,并主动地推荐用户最有可能喜欢的书籍、音乐或者电影。比如,豆瓣网是100%动态网站,没有一个静态的页面。我们完全 可以将其看做一个个人管理书籍、音乐、影碟的工具,只是将工具放在网上了。现在,很多人抄袭了豆瓣网的模式和资源,但杨勃表示,仅仅抄袭一个网站的表面是 没有价值的。“Google的界面更简单,但系统核心不在这里。豆瓣比Tag这些表面的东西多做了一步,采用了统计模型和一些程序算法,事实上,这才是豆 瓣网的核心。”


霍炬从传统程序员转向Web开发,就是因为他认为Web开发足够复杂之后才行动的。“现在的Web程序员比过去要求 高多了。最初的Web程序员会一些Asp,Php的脚本,稍微懂一点交互就可以。Web2.0出现之后,很明显系统复杂了。现在Web程序员需要掌握的技 术很多。”


现在在Web上,从服务器到脚本,技术体系和思想发展也很快,技术架构也迅速发展。甚至2005年一年的变化可能比之前 所有的都大。Web2.0出现后,我认为网站的复杂度与软件相差无几了。”霍炬说,“在我做365kit这个项目的时候能够深刻体会到这点。365kit 前台展现就是一个通讯录,但后台不仅要把这些数据放在一起分析,要发现联系人之间的关系,建立连接,同时还需要针对这样大的一个数据量如何方便的存储和查 询。同时,很多辅助的工具,如客户端、手机上的同步工具,Msn的机器人都需要相当的技术实力。”


Web越来越像一个计算平台。通过各种Web应用将计算机连接起来,比如需要相册时可以使用Flickr,需要地图时调用Google Map的Api。随着很多服务商逐渐将自己的服务开放出来,每个网站都可以看做一个软件服务提供商,相互之间的联系让系统越来越复杂。


现在看来,很有可能Web2.0将加速推动传统程序员向Web开发转移的潮流。这从Web2.0网站的数量增长速度之快也可以看出端倪。


霍 炬看科幻大片《黑客帝国》时,,剧中有一个机器人将人类称为电池,用于作为能源供应的场景给他很深的触动。“其实大家都写blog,这就是共享自己的能 力,最后形成社会化的知识体系,我就突然感觉这个东西肯定会有很大的发展,能够通过某种方式出来。我周围和我一样的一批老程序员,有很多都转向Web方面 的项目了,过去做客户端的,也转向Web服务的方式。而且原来大家只是用Web技术来写脚本、做网站,现在逐渐开始Web方式来写应用级软件了。”

快速开发


一个令人难以置信的事实是,豆瓣网拥有十多万的注册用户,Alexa的流量排名在一千左右,过去却一直只有一台八千块钱攒起来的服务器,一两个人的开发团队。


为 了适应这种规模,开发模式也需要进行改变。这在很多Web2.0的网站中都有所体现,有人称之为简单哲学。“Web2.0不像企业级应用有那么多的流程和 模块。”霍炬说,“在365Kit这个项目中,我们放弃了重量级的那种开发方式,所以现在代码量也就是中等水平,再加上服务器端程序的维护成本很低,几个 人的小团队就可以做到。”


为了快速开发,系统设计也需要进行简化。杨勃说,“豆瓣网中间也做过一些变动,最初还是受原来做企业系统的影响,结构设计的太复杂,甚至还分了很多层。后来就简化了,因为太复杂之后就难以做快速开发。”
豆瓣网站采用了敏捷开发的模式,这是一个快速开发、快速变化的体系。平均每两天就有新的功能出现。

“Web2.0 网站是快速变化的,并不是把所有的功能都在开始阶段完全实现。”杨勃说,“这就要求系统构架的可扩展性要做的很好。而且必须考虑将来规模可能带来的问题。 豆瓣网一开始的架构设计就可以支撑上百万用户。”同时,基于Web的开发省去了客户端分发、维护的成本,因此可以做到“永远的BETA”,随时更新和升级 服务。洪波表示,据说Flickr的升级是以小时为单位的。


Web2.0与用户的交互也是让网站快速完善的动力。网站运行之后,听 取用户的反馈,指导下一步的应用开发。“豆瓣网有一个站务论坛,很多人经常发言提出自己的需求。”比如豆瓣刚开张时,由于每个人都可以自由创建小组或者参 加小组,于是用户可能会同时参加几十个小组。但由于很多小组人数比较少,可能很长时间才会有人发言,于是大家就要求有一个功能,把所有小组的最新发言聚合 在一起。杨勃很快实现了这个功能,事实也证明非常受欢迎。


杨勃认为,由于是小团队,工作模式就不能是一个经理带一帮人,而是大家都 需要参与编程。而且,对综合学习能力的要求比较高。“因为技术变化很快,现在对任何技术再熟悉,经验再多,过几个月可能又出现了新的技术,因此最重要的是 要能够跟踪最新的知识。而且由于最新的Web2.0模式和思想都是从国外发起的,所以程序员要具有在英文环境中直接沟通的能力,能够直接参与到国外的开源 项目中,而不是看已经翻译为中文的文档。”杨勃表示,自己学习Python也是随豆瓣网开始的。“Python很适合敏捷开发,最初的时候曾经尝试过使用 Ruby,后来由于豆瓣网需要很多后台的程序,Python更适合编写一些后台模型程序,最终前台也统一为一种语言。”杨勃之前对MySQL了解很少,但 在做豆瓣网的过程中,很快将知识弥补上来。“现在我们有几个数据库都可以做同步,有些内容我们还向开源社区进行了回馈。”


豆瓣网选 用了很多开源产品,杨勃认为:“用好开源产品是非常关键的。豆瓣的平台是基于Linux,数据库用的是MySQL,除了数据挖掘和搜索,其它都是在开源产 品之上开发的。因为现在有很多非常成熟的产品和模块,没有必要从头做,只要有能力了解获得这方面的知识,都能够很快在别人的基础上开发自己的系统。”

web2.0的盈利模式


可 能很多程序员都会对一个问题表示出疑问。Web2.0的商业模式和盈利模式在哪里呢?事实上,Web2.0的出现并不是为了解决商业和盈利的问题,它是一 种做好Web应用的新模式。至于商业模式,那是企业家更擅长的事情。就像Google的两位创始人创造出了一个更好用的搜索引擎,但最初他们也不知道如何 用这个来挣钱,但当商业人士负责公司的运营后,帮公司找到了销售关

新型网络搜索服务欣然登场

0

分类 : 技术文摘 | 发表时间 21-02-2006

互联网搜索是眼下的热门话题,但大多数的讨论都集中在它产生的广告收入上,而非搜索过程本身正在经历的变化。此外,大部份的注意力都集中在Google和雅虎(Yahoo)这些搜索巨头上,而不是那些正在尝试通过新技术来完善搜索服务的小公司。

  这些小型网站致力于完善搜索服务,提高搜索的准确度,使之更方便、更个性化。我刚刚试用了两个──PubSub和Rollyo,发现它们具备一项Google和雅虎等主流搜索引擎不具备的特色。

  PubSub是一套自动系统,它不间断地在数以百万计的博客、在线讨论、新闻稿和美国证券交易委员会(SEC)存档文件中寻找和你的关键词匹配的内容,一旦找到就会通知你。Rollyo则允许你创建自己的小型搜索引擎,把焦点放在你感兴趣的话题以及你偏好的资源上。这两项搜索服务提供的都是传统搜索引擎办不到的。

  Rollyo的意思是“启动你自己的搜索引擎”。虽然它用的也是雅虎的搜索技术,但允许你把检索的网站限制在那些你相信能产生最佳效果的网址上,从而锁定你的查询。如果你想找关于面包的信息,那么你可以把搜索限制在一系列你认为能提供最佳相关信息的网址上,而不必在互联网的汪洋大海中只捞到一个“发酵的酸面团”。这种个性化设置的搜索引擎叫“searchroll”

  要创建一个searchroll,先登陆Rollyo网站(rollyo.com),你可以设定多达25个你认为和某个主题最为相关的网站。如果你不想手动输入要加进searchroll中的网站,也可以把浏览器里的书签上传到Rollyo,只挑选你要用的网址就行了。

  创建一个searchroll后,你就可以反复用它来搜索与该主题相关的任何信息,其他访问Rollyo网站并对相同主题感兴趣的人也可以使用。同样,你也可以利用别人已经创建的searchroll。如果通过一个searchroll搜索仍然找不到自己想要的信息,只需点击一下就能把搜索范围扩大到整个互联网。

  每一个searchroll都有自己的网络地址,因此你可以直接找到它,而不必在整个Rollyo网站中跋山涉水般寻找,你也可以把这个地址用电子邮件寄给别人。你甚至可以把searchroll加到Firefox网络浏览器工具栏的搜索引擎的下拉列表中去,这样不必先登陆Rollyo网站就能找到它在哪儿。

  比如,我创建了一个关于我热爱的波士顿红袜棒球队(Boston Red Sox)的searchroll,里面有我最喜爱的25个关于波士顿红袜的网站,你不妨在rollyo.com/wmossberg/red_sox_nation上试一试。

  Rollyo也包括由一些 “高级玩家”(High Rollers)创建的searchroll,这些是各个不同领域中的名人或专家。例如女演员黛布拉?梅辛(Debra Messing)创建了一个关于在线购物的searchroll,设计师戴安?冯?弗斯腾伯格(Diane Von Furstenberg)创建了关于时装的searchroll,专栏作家兼活动分子亚里安娜?赫芬顿(Arianna Huffington)创建了一个政治博客的searchroll。

  并不是每一次搜索都要用到Rollyo,但如果你经常在几个特定的主题范围内搜索,那就值得使用或创建一个关于这个领域的searchroll。

  Pubsub则是完全不同的另一种工具,它能持续更新与某个特定主题相关的信息,搜索内容包括博客、被称为新闻组的在线讨论、SEC档案和新闻稿。

  在一般的搜索中,你输入一个关键词,然后搜索引擎尝试在网址索引中找到与之匹配的项目,这是一个一次性的过程。而在PubSub搜索中,关键字会持续生效,搜索引擎会一直在不断变化的、从PubSub资源中收集到的数据流中寻找匹配项目。即使在输入关键字过后好几个月,只要匹配项出现,它就会在PubSub中跳出来通知你。

  PubSub自称是一个“匹配引擎”,并宣称自己是“前景光明的”、“未来的”的搜索引擎──在可能尚未出现的数据中查找。比如,我去年夏天通过PubSub进行了一次搜索,直到昨天它还在报告最新搜索结果,这些信息在我开始搜索那会儿还没有上网。

  要创建一个PubSub搜索器──公司称之为“预订”,先登录pubsub.com,输入一个或多个你想让Pubsub持续搜索匹配项的关键字。你可以有很多预订项,全部免费。

  你可以访问PubSub的网站来查询结果,也可以通过下载一个“侧栏”模块把PubSub加到你的浏览器中,这个模块会在一个特殊窗口中列出PubSub查询的结果,一旦发现新的匹配项就会通知你。这些侧栏适用于Windows IE以及Windows、Macintosh和Linux上的Firefox。

  PubSub也能把搜索限制在某些类型的资源上,比如,只限于新闻稿。PubSub希望在未来逐渐增加更多类型的资源。

  一些主要的搜索引擎正在实验跟Rollyo类似的模式,你可以在某些管理博客概要和新闻网站的“RSS读者”程序中实现PubSub的某些功能。但Rollyo和PubSub十分好用,值得一看。

无觅相关文章插件,快速提升流量