Friday, January 27, 2006

Wordpress简明使用指南

从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就是这样的小麻雀。有了它,你就可以:

  • 1.进行文章发布、分类、归档。
  • 2.支持文章、评论、分类等多种形式的RSS输出。
  • 3.提供链接的添加、归类功能。
  • 4.支持评论的管理,防垃圾功能。
  • 5.支持对风格(CSS)和程序本身(PHP)的直接编辑、修改。
  • 6.在Blog系统外,方便的添加所需页面。
  • 7.通过对各种参数进行设置,使你的Blog更具个性化。
  • 8.生成静态html页面(需要mod_rewrite支持)。
  • 9.通过选择不同主题,方便地改变页面的显示效果。
  • 10.通过添加插件,可提供多种特殊的功能。
  • 11.支持Trackbackpingback
  • 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文件的头部,你会发现类似如下的代码:

  1. define(’DB_NAME’, ‘wordpress’); // 把wordpress用你的MySQL数据库名字代替
  2. define(’DB_USER’, ‘username’); // 用你的MySQL数据库用户名代替username
  3. define(’DB_PASSWORD’, ‘password’); // password即你的MySQL数据库密码
  4. 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功能的时候(前面提到过,需要Apachemod_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”项,即可进入Wordpress的链接管理界面。在这个界面的上方,有四个大的项目,分别是:

  • Manage Links - 管理当前已有链接(链接管理界面的默认项)。
  • Add Link - 添加链接。
  • Link Categories - 链接分类管理。
  • Import - Links - 导入链接。可以从相应的Blog服务商及OPML文件导入。

下面,分别对上述前三项进行介绍。
链接管理界面的 上方,有两个下拉列表框,分别是”Show Links in Category”(显示指定分类中的链接)和”Order By”(显示的链接以什么方式排序)。选好后,点”Show”按钮,Wordpress就会根据你的选择,以相应的方式将链接显示出来,方便你的管理。
链 接是以列表的方式显示的,每个链接一行,从左至右分别显示的是链接的名字(Name)、地址(URI)、所属分类(Category)、与该链接关系 (rel)、是否含有图片(Image)、可见性(Visible),及可进行的操作,一般是编辑(Edit)和删除(Delete)。每个链接右边还有 一个复选框,结合最下方的”Manage Multiple Links”(管理多个链接)区域中的功能选项,用户就可以方便地对多个链接同时进行操作。
链接管理最重要的内容是对链接及链接分类的设定(编辑),因此,要重点说明一下。
点页面上方的”Add Link”或列出的链接右边的”Edit”按钮,都可以进入链接添加(编辑)页面。从上到下,其选项包括:

  • URI - 链接地址。
  • Link Name - 链接的名字。
  • Short Description - 对链接的简要说明。
  • Category - 链接所属分类。

上述四项是基本信息,填写完毕后,就可支持点”Add Link”(Save Changes)添加(保存)该链接了。
当然,Wordpress还提供更为丰富的选项,它们是:

  • rel - 该链接与你的关系。它是根据你就XFN Creator的选择自动生成的。
  • XFN(XHTML Friends Network) Creator - 定义你与该链接的关系。可以是Friendsip(朋友)、Family(家人)等多个选项。
  • Image URI - 加入图片链接。
  • RSS URI - 定义该链接的RSS地址。
  • Notes - 对链接的详细说明。
  • Rating - 链接等级。
  • Target - 打开该链接的方式。_blank(新开一页)、_top(新开一页,并在顶层)、none(不作选择,在当前页面打开)
  • Visible - 该链接是否可见。

填写完毕后,点下方的”Add Link”(Save Changes)就可以添加(保存)这些信息。
链接分类管理页面分两部分,上面列出了各个链接分类的情况,下面则提供了一个方便地加入新链接的区域。上下两部分中涉及的内容相似,就一起讲了:

  • Name - 链接分类名。
  • ID - 链接分类的ID。为一数字,由Wordpress自动生成。
  • Show - 针对该链接分类的显示选项。Image(该分类的链接含图片)、Description(显示该分类中链接的说明,在每个链接的下方。一般来说不必,因为 Wordpress会在链接的title属性加入说明)、Rating(显示该分类下链接的等级)、Updated(显示该分类是否有更新)
  • Sort Order - 该链接分类中链接的排序方式,可以是前述六种值。默认为升序排列,点选Descending后为降序排列。
  • Limit - 限定该链接分类的链接数。
  • Toggle - 这是个比较特别的属性。点选它后,当该分类中加入了新链接时,其它的链接会变为不可见。一般都不需要点选的。
  • Before Link、Between Link and Description、After Link - 这三个值一般不需要修改。它是主题显示链接内容时必要的设定。要改它,则必须还要改主题中相应的CSS文件。

参数填写好以后,点Add Category就可以加入一个新链接分类了。链接分类的编辑页面与添加页面类似,就不再赘述了。

3.4 显示效果,即主题(Presentation,也即Theme,以下通称主题)
点开后台管理主界面上”Presentation”项,就进入了Wordpress的主题管理页面。
主题管理界面只有两部分 - Themes(主题的选择) & Theme Editor(主题编辑器),默认情况下打开第一部分。在这里,你可以选择使用哪一个主题来做为你的Blog的最终显示效果(风格)。除了少数的两至三个 默认主题外,其它的主题都是你自己通过互联网等渠道来获得的,然后用FTP客户端软件将它们上传到主机上指定的主题目录(通常是”你的域名 /worpress目录/wp-content/themes”),就可以在主题管理界面看到了。它们都将会被一一的列示出来,点击主题右方的” Select”即完成了对主题的选择。当前被使用的主题会被标记为”Active Theme”。
主题编辑器(Theme Editor)是Wordpress提供的一个让用户自行修改指定主题的工具。在界面左上象,你可以选择要编辑的主题。选好后,Wordpress会在界 面的右方列出该主题下所对应的所有文件,一般来讲就是PHP或CSS文件了,点击这些文件名,它们就会被加载到左边的编辑区域。在这里,可以自由地修改这 些文件的代码,然后点击”Update File”按钮,就保存好了。
想要获得更多的主题资源,你可以点下面的链接:

3.5 插件(Plugins)
如果说主题是对Wordpress显示效果的扩展,那么插件则是对Wordpress的应用功能的扩展了。通过主题和插件,Wordpress可以变得既漂亮又强大,真正成为了一个优秀的内容发布工具。
插件的管理页面与主题管理页面非常的类似,也只有两个部分,分别是Plugins(插件选择) & Plugin Editor(插件编辑器),默认情况下也是打开第一部分。在插件选择页面里,插件被一行一行的列示出来,相关的信息包括插件名(Plugin)、版本 (Version)、作者(Author)、说明(Description)、当前可用的操作(Action)。点右方的按钮,就可以完成对相应插件的激 活(Activate)或放弃(Deactivate)了。当然,与主题一样,为了让Wordpress检测到插件,你首先得用FTP客户端软件将它们上 传到主机上指定的插件目录(通常是“你的域名/wp目录/wp-content/plugins/”)。
插件编辑器(Plugin Editor)是Wordpress提供的一个便于用户修改插件的工具。界面也与主题编辑页面很象。各个插件的主程序会在界面的右方列出,通常都是PHP 文件,点击相应的文件名,它们就会被加载到左边的编辑区域。在这里,可以自由地修改这些文件的代码,然后点击”Update File”按钮,就保存好了。
最后,需要提一下的是:

  • 与主题不同的是,插件可激活多个,而主题同一时间只能有一个是激活状态。
  • 某 些插件会在Wordpress中增加一些页面,用于定义或管理这些插件,这些增加的页面通常是在后台主管理界面的”Manage”或”Options”分 类之下。如WordPress Database Backup会在”Manage”页面中,增加一个Backup选项页面。Technorati Tagging会在Options页面中增加一个Technorati Tagging选项页面等。

想要获得更多的插件资源,你可以点下面的链接:

3.6 用户管理(Users)
Wordpress允许多个用户对其进行操作,包括发文章、管理文章及分类、修改设置等等,而对用户的等级(权限)的设定、管理,就是在用户管理页面完成了。
用户管理页面下辖Your Profile和Authors & Users(用户管理)两个选项页,下面一一作个说明。
Your Profile页面中,你可以填写关于你的一些说明性的内容,包括:

  • First name - 你的”名”, 如Alex。
  • Last name - 你的”姓”, 如Huang。
  • Nickname - 昵称。
  • How to display name - 规定在Wordpress中如何显示你的名字。
  • E-mail - 你的电邮。
  • Website - 你的网站。
  • ICQ、AIM、MSN IM、Yahoo IM: 你的即时通讯(IM)软件号。
  • Profile - 你的个人简介。
  • New Password - 新的密码。

填完后,点下方的”Update Profile”按钮,就可以了。
Authors & Users页 面中,则可以进行对用户的管理了。管理的内容主要包括添加新的用户和对用户赋予一定的等级(Promote或加减等级)。添加用户十分的简单,只要在下方 的”Add New User”区域中,填好Nickname、First Name、Last Name、E-mail、Website、Password(记得要输入两次)几项后,点”Add User”按钮,就完成了。
当然,用户也可以自己通过注册来加入当前这个Blog的活动,前提是管理员在后台主管理界面(菜单)的Options下的General页面中关于成员关系(Membership)的一项里,选择了”Anyone can register”(打勾即是选中)。
对用户赋予等级(权限)时,有两种情况:

  • 用 户等级为零的用户(含新用户) - 这些用户会被Wordpress分列出来,显示在Authors区域的下方。由于它们的用户等级都是零,因此对Wordpress的管理能力非常之低,除 了登录、看文章、编辑自己的简介外,几乎没有其它的权限。如果你希望给它们更多的操作空间,那么,首先就要点Promote按钮,将它们加入到 Authors群中,此时,它们的等级也会由0增加到1,具有了最基本的发布文章的功能。
  • 用户等级大于零的用户 - 这些用户会在Authors & Users页面的上方Authors区域中被列示出来,每行一下。其中,每个用户都有一个Level(等级)值,这个值左右两边会分别出现一个”-”和” +”,点击它们,就可以相应地减少或增加用户的等级了。

附加内容:
对用户等级及其对应权限的说明(内容来源: Wordpress Wiki - User Levels)
用户等级(权限)用一个0-10之间的整数表示,数值越大,等级越高,管理员(Admin)拥有最高的等级 - 10。
一个等级高的用户,可以编辑或修改比它等级低的用户的文章及设置。一般来说,主要的区别体现在等级介于0-5之间的用户,而等级在6-10之间的用户,对系统的控制权几乎没有什么区别,只是显示出来的级别高低不同而已。
下面,就0-5之间的每个等级的用户的权限进行一个说明:
user level 0:

  • menu = * My Profile * View site * Logout
  • Can login
  • Can see existing posts.
  • Own posts have (non-functioning) edit/delete buttons
  • Can edit own profile.

user level 1:

  • menu = * Post / Edit * My Profile * View site * Logout
  • Can post.
  • Can edit/delete own posts.
  • Can edit/delete comments on own posts

user level 2:

  • menu = * Post / Edit * My Profile * View site * Logout
  • can promote/demote/delete lesser team member in the range 0 - (your level - 1)

user level 3:

  • menu = * Post / Edit * Team * Options * Categories * Template * My Profile * View site * Logout
  • cannot edit the template (ML removed from menu)
  • can add/edit/delete categories
  • cannot edit options (ML removed from menu)
  • cannot see team members login name!

user level 4:

  • menu = * Post / Edit * Team * Options * Categories * Template * My Profile * View site * Logout
  • can see team members login name!
  • can edit options
  • can edit template

user level 5:

  • menu = * Post / Edit * Team * Options * Categories * Template * Manage Links * My Profile * View site * Logout
  • Can edit timestamps
  • can edit links (default value)

3.7 设置(Options)
设置模块是对Wordpress系统本身进行设定的地方,包含有众多的选项,下面就比较重要的内容进行说明。
General (一般设置)
在这里,你可以设定你的Blog的一些基本信息。如名字、说明、地址,Wordpress安装地址,邮件地址等等。还可以在成员关系 (Membership)中规定是否任何人都可以注册,以及是否必须要登录才可进行评论。在页面的下方,则是关于时间的格式、日历的显示方式等内容。
Writing (写作设置)
写作设置用于配置你在Wordpress中写文章时的一些环境。包括:

  • 以简易模式(Simple controls)还是高级模式(Advanced controls)打开编辑页。
  • 编辑区的大小(行数)。
  • 是否转换表情符号及自动匹配XHTML标签。
  • 文章默认分类。
  • 新注册用户的编辑权限等等。

在这里,你还可以设定通过e-mail发表文章的一些选项。
Reading (文章输出设置)
这类设置主要规定Wordpress如果发布文章。主要的选项包括:

  • 每页显示多少篇文章或多少天的文章。
  • 对于订阅的用户,发布最近的多少篇文章,是以摘要方式还是全文方式发布。
  • 文章的编码方式。(默认为UTF-8)

Discussion (评论设置)
评论设置的选项主要有:

  • 是否允许Pingback和Trackback。
  • 是否允许评论。
  • 在哪些情况下发邮件通知作者: 当有人评论时,当有等待审核(moderation)的评论时。
  • 在哪种情况下让评论可见: 得到管理员允许后,评论者填好了名字和邮件地址,该评论者必须有评论曾经被管理员允许发布过。
  • 哪些情况下,评论要先等待管理员的审核: 评论中链接数超过多少(一个整数),评论中含了某些单词。
  • 黑名单。(这些人的评论将不会直接发表出来)
Permalinks (静态页面生成方式)
你可以在Structure框及Category base框中设置你期望的静态页面结构。详情请见这里
Miscellaneous (杂项)
该类设置主要包括:是否允许上传文件至主机,上传文件的存放目录,上传文件的大小限制,上传文件的格式设定,拥有上传权限的用户等级等等。
4. 结语
Wordpress简明使用指南到这里就写完了,一共10个部分。至于更高级的使用技术,在这里就不多说了,但我想应该包括主题的修改与创建,插件的修改与制作,对系统文件的修改及设定(特别 是模板标签[Template Tags])等等。有兴趣的读者可以到Wordpress的官方网站上了解更多这方面的信息。
最后,祝大家Blog之路能越走越顺,越走越好。
(全文完)

Tuesday, January 24, 2006

ASP.NET Screen Scraping

ASP.NET and the .NET framework make it unbelievably easy to retrieve web content (that’s it, whole web pages) from remote servers. You might have various reasons to retrieve remote web content, for example you might want to get the latest news headlines from popular news sites and link to them from your website.

To accomplish screen scraping in classic ASP, we had to resort to COM objects like AspHttp, ASPTear and Microsoft.XMLHTTP. The good news is that the .NET framework has built-in classes allowing getting remote web content with ease.

We are going to use 2 .NET classes found in the System.Net namespace - WebRequest and WebResponse, to get the remote web page content.

Here is how ASP.NET screen scraping works. We need to create an instance of the WebRequest class and request a web page through it. We can request either a static page (.htm, .html, .txt, etc.) or dynamic page (.asp, .aspx, .php, .pl, etc.). The type of the page we are requesting it’s not important, because we are getting what the page displays in the browser (usually HTML), not the actual page code.

After we have requested the page with our WebRequest object, we’ll have to use the WebResponse class in order to get the web page response returned by the WebRequest object.

Once we get the response into our WebResponse object, we use the System.IO.Stream (this class provides a generic view of a sequence of bytes) and System.IO.StreamReader classes to read the web page response as a text. The StreamReader class is designed to read characters from a byte stream in a particular encoding, while the Stream class is designed for byte input and output.

In our example below, we just print the response in the browser window with Response.Write, but you can parse this content and use only the parts that you need.

Here is a full working example of ASP.NET screen scraping, written in ASP.NET (VB.NET):

Sub Page_Load(Sender as Object, E as EventArgs)

Dim oRequest As WebRequest = WebRequest.Create("http://www.aspdev.org/asp.net/")
Dim oResponse As WebResponse = oRequest.GetResponse()

Dim oStream As Stream = oResponse.GetResponseStream()

Dim oStreamReader As New StreamReader(oStream, Encoding.UTF8)

Response.Write(oStreamReader.ReadToEnd())
oResponse.Close()
oStreamReader.Close()


End Sub

创业者融资指南――与风险投资者会面之前应该做哪些准备工作?

有些创业者并不熟悉如何向机构投资者进行融资来发展事业。创业者一般用个人投资来组建公司,并且支持随后的公司发展计划,这些个人投资可以来自公司创立者自己、朋友、家庭等,有时也来自银行或者政府。

风险投资现在是一种越来越重要的融资方式,特别是在高科技公司这样的高成长性行业。但不幸的是,许多创业者并不知道如何与机构投资者打交道,如何向他们介绍一个投资机会,也不知道从他们那里除了获得融资之外还能获得些什么。

在开始一项投资的分析和谈判阶段,创业者通常对风险投资者的情况会有很多问题。为了解释清楚风险投资者如何进行投资的工作方式,本文整理出一个清单和相应的说明,这个清单不一定完整,但是对创业者会有一些指导,以帮助他们如何准备投资建议书,以及如何与风险投资者打交道。


在投资过程中的关键问题和步骤包括如下:

向风险投资进行融资的目的是为了发展一个商业机会。

站在投资者的角度考虑问题,并对自己的投资建议书提出批评。

了解你的听众。

准备好一份商业计划书(business plan),以及一份执行摘要(executive summary)。

对自己的商业机会进行估值,并准备好谈判底线。

融资有成本的,要花费时间和金钱。

可能会需要有经验的法律帮助。

准备好做路演。

准备好开始谈判,并且对你的公司进行外部审查。

准备好公司治理结构的改变。

理解创业者、首席执行官(CEO),以及股东之间的区别。


向风险投资进行融资的目的是为了发展一个商业机会。


为一个新项目融资有很多方法。银行对于紧急的资金需求来说,有时是个很好的选择,但是融资成本比较昂贵。如果创业者能够提供实际的担保,比如固定资产或者应收款项,银行才有可能借钱给创业者。


而风险投资者不同。他们 获得来自第三方的资本,承受适当的风险,投资给高成长性的商业机会和公司,当这些公司在市场上获得成功时有公司规模可能扩张好多倍,从而当资本能够流动性 的时候就能使初始投资获得非常吸引人的回报。风险投资通常不需要担保,但是需要签订保护性条款,并且需要创业者分一部分公司管理权给风险投资。不要期望获 得免费的资本,融资通常都需要付出成本。

站在投资者的角度考虑问题,并对自己的投资建议书提出批评。


投资者选择投资建议书时脑子里通常至少有3个关键要素:一个强大的管理团队、一个在快速发展的市场和行业中的好公司、以及一个清晰的未来愿景。所以创业者在敲开潜在投资者的门之前最好做好准备能够证明这3个关键要素。


风险投资者可能还会问几个关键问题。是否同时在找其它投资者?团队对于公司发展的愿景是否意见一致?是否能够建立需要的销售渠道?是否有明确的计划来达到目标?需要从投资者这里获得什么?需要钱用于什么?这个过程需要创业者在向机构投资者提出融资申请之前做好准备工作。


有很多工具能够创业者帮 助回答这些问题,因此最好在与投资者交谈之前就试着回答好这些问题。还有很多信息和参考书指导创业者如何写出有条理的商业计划书,在互联网上做个简单的搜 索就可以搜出这些信息。记住,投资者每天都分析无数计划书,他们手上会有很多类似的项目。为什么要选你的,而不是别人更有条理的计划书?

了解你的听众。


一个好的商业机会总能找到投资者。有很多基金和个人都愿意投资于好的商业机会。但也并不是所有投资者都愿意这样做。根据对交易和风险方面的不同偏好,投资者有很多不同类型,包括:朋友和家庭的资金、天使投资者、政府种子资金、早期风险投资、后期风险投资、私有股权投资等。

另外根据风险投资公司与 其资产组合中公司打交道的方式,投资者也可被不同类型。有些风险投资公司在这方面非常主动,会介入其资产组合中公司的日常决策,帮助建立关系网、销售、以 及财务。另一些风险投资公司与其资产组合中公司联系很少,对公司运营尽量少进行干涉。一般来说,后一种倾向于投资于较多的项目,而较少关注每个项目公司的 运营问题。对于创业者来说,预先了解潜在投资者的情况,以及是哪种类型,是很重要的。

准备好一份商业计划书(business plan),以及一份执行摘要(executive summary)。


融 资的第一步应该是与潜在投资者建立联系。现在你已经瞄准了一个行业,并且知道了谁会对你的建议书感兴趣,下面要做的就是联系他们。你手上必须要有一份关于 你公司的执行摘要,主要内容应该包括:这个商业机会的要点(你做什么)、市场细分(你的客户是谁)、以及为什么你会成功(你相对竞争对手有什么优势)。执 行摘要通常是个四页(或者更少)的文件,不包括任何保密内容,可以通过电子邮件发给潜在投资者。


执行摘要应该同时也是商业计划书的前两页,用来给读者一个指引。一份商业计划书应该描述公司的整个发展策略,包括:管理团队、市场策略、产品定义、竞争环境、投资计划、现金需求等。商业计划书不需要100页那么长,但是必须内容丰富,并且明确说明你的竞争优势。


在商业计划书里面,你需要解释清楚这个商业机会是什么,你将给市场提供什么样的解决方案,你将如何执行你的策略,以及你为什么会成功。图片、数据、表格可以帮助你表达你的观点。


商业计划书里面最重要的部分是财务预测。投资者在寻找成长性机会,但是不代表会盲目的夸大对成长性的期望。风险投资者通常会做出资金的预测,与你的数字进行对比,因此你需要做好资金的预测,并且准备好用事实回答他们将提出的问题。


保证你的商业计划书具有严密性的一种很好的方式是:按照自底向上的方式来组织计划书(从你手头的资源推导出潜在的收入),并且按照自顶向下的方式来怀疑计划书(从整个目标市场规模推导出你的市场份额)。这种方式将使计划书有一种逻辑上的严密性。


商业计划书的预测将会在谈判中被使用,并且将会投资之后的业务目标指导。创业者,作为公司管理者,将会按照这个预算下达到的业绩来被评价。


请注意在收到任何机密信息之前,可以签一个保密协议。你当然不希望你的商业计划书被提供给第三方,用这种法律保证的方式,你可以保护自己的权利。。


关于商业计划书,做好准备回答投资者下面这些问题:

管理团队:介绍你的团队,背景和工作经验。

预测:结合现在的情况,对未来五年的预测。

客户:谁使你现在的客户?

商业模式:你如何销售,以什么价格?你的目标市场细分?

主要竞争对手:谁是你的目标行业细分中的主要玩家?

策略和战术:你为什么会成功。你的差异化是什么?

收益的使用:解释如何使用融来的资金。

投资者:谁是本轮投资的其它投资者?

对自己的商业机会进行估值,并准备好谈判底线。


投资者用来对潜在交易进 行估值的技术没有多少变化。你应该自己预先做好准备,给你的公司估值。这将会避免因为你和投资者的期望不同而导致的没完没了的谈判。投资者通常使用比较法 来对你的公司进行估值,也就是说用类似公司的价值作为参考,(这里的类似公司是相同细分市场里面的公司,如果是公开上市公司就用其市值,或者用被并购时的 交易价值)。另一种常用的估值方法是现金流预测折扣法,每个投资者都有自己的风险因子,用来作为在这一方法中折扣。你可以自己先用这些方法来估算一下。


通常有这样一个误解:开 始的时候先做一个较高的估值来申请融资,之后才能够达成一个适中的协议价值。这样做通常会使你失去很多潜在投资者,因为他们会认为这么高的一个估值,与自 己的期望值相差太大,很难达成协议。所以比较好的方法是:开一个你认为是合适的价格,然后坚持住这个价格。一般来说这个价格已经会高于投资者的心理价位 了,因为创业者与财务投资者所感受到的风险往往是不同的。

融资有成本的,要花费时间和金钱。


与互联网泡沫高点时期相比,现在的投资者会花费更多的时间在项目考察过程上,包括:与客户交谈、做背景调查、访问目标公司、寻找外部推荐人等。成功的项目通常一轮考察要持续大约4个月,有时甚至要长达1年。


许多投资者由投资委员会来做出批准决定,在交易的不同阶段,只有获得批准通过,交易团队才能继续进行下一步。下面是两个这种批准的例子:第一个批准通常发生在初始调查结束之后,但是在投资者拿出投资条款表(term sheet)之前;第二个批准通常发生在谈判之后,以及各方开始交流最终合同文件草案之前。在这两次对批准进行审核的委员会会议上(或者甚至进行调查之中),交易都可能被终止。


创业公司应该明白他们的所有花费都是为了融到资金,因此所有法律、审计、以及其它费用都将由创业公司支付。交易费用通常也由创业公司来支付。然而,如果交易没有成功,或者服务提供者是由风险投资者雇用的,费用也可能会由投资者来支付。

可能会需要有经验的法律帮助。


律师将会帮助创业者与潜在投资者的法律代表打交道。你和律师的交流和合作将帮助你更好的融到自己。当雇用你的律师时,需要确保他有很强的公司法律专业知识,最好是以前有过风险投资交易方面的经验。同时,律师的专业建议对于保护你的知识产权也很重要。


尽管投资者往往强调法律帮助的重要性,创业者应该自己和投资者谈好商业方面的问题(估值、股权分配、资产流动性偏好等)。这种谈判产生的文件被称为投资条款表(term sheet)。 这个投资条款表背后的思想就是用简单的语言描述交易各方的权利和义务。一旦你与投资者达成了协议,律师的任务就是确认投资条款表中的所有条款完整表达了你 们的协议,然后以法律文件的形式写出来。投资条款表是写这些文件草案的指导书,因此是比较简化的,实际的交易文件将包括各方的权利和义务方面的更多细节。

准备好做路演。


接下来就是实际的融资了,准备好与投资者的见面。你必须就你的商业计划书做演讲,参加会议、并且介绍将和你一起执行这个项目的团队。记住,团队中的某个人将作为随后融资过程的领导者,通常公司创立者中的一个将作为首席执行官(CEO),或者首席财务官(CFO),花费很多时间来做融资工作(通常是其100%的时间)。你也许必须重复几十次讲你们的故事,但是这些时间花的值得。保持乐观和主动,如果你不知道什么时候,不要回避,就说你不知道好了,也不要过度的推销你的投资建议书。

准备好开始谈判,并且对你的公司进行外部审查。


拿着你的商业计划书,并且经过一些讨论之后,投资者会拿出一个投资条款表出来,上面写了些他们需要的条款,从而可以继续下面的投资过程。一般来说对于这个投资条款表,可以有一段时间让双方来谈判,继续对投资条款表进行更新,从而达成一致,最后形成一个最终版本。


一旦每个人都同意了这些 条款,尽职审查的过程就开始了。如果你已经准备好了相关的合同文件,并且更新了所有法律和税务文件,这个过程可以被大大加快。许多公司准备好一份尽职审查 书,以及所有需要的文件的一份拷贝,当投资者需要时就提供给他,这样做可以表现出一种专业性的沟通方式。有时需要雇用独立的审计师和律师,通常由创业公司 支付其费用,用来评估所有的公司潜在负债(人事、税务等方面)。这些分析中如果由对公司不利的结果,一般通过谈判的方式进行沟通,尽可能减少对现有投资者 产生负债的影响,

准备好公司治理结构的改变。


如果这是你第一次把你的公司所有权分配给别人,你需要意识到:即使你仍然持有大多数股份,投资者通常也将会对公司治理结构和透明度做重大的调整。现在公司创立者是在为股东工作了,而不仅仅是为自己。

投资者会试图构造一个平 衡的董事会,他们能够充分的发表观点和获取信息。他们会要求得到董事会席位,并建立某种特权,从而保证能做关键的决策,或者对某些事务具有否决权。这些做 法的理念就是为了当公司策略发生改变,但其没有董事会多数席位时,能够保护其投资权益,记住是你在过去做了一个商业计划书,而所有投资者都批准了你的计 划,并决定给了你投资,现在你该保证他们的权益了。

理解创业者、首席执行官(CEO),以及股东之间的区别。


创业者和CEO之间有重要区别,在刚开始的时候确实比较难注意到,但随着时间的流逝,公司决策将不再会基于简单的创业冲动,而变得越来越结构化和流程化,并且需要各个股东的批准。


通常好的创业者做决策很快,有点倾向于把决策权集中在自己手里。这在商业发展的早期当然是至关重要的,但是当公司成熟之后,这将会危害一个健全公司的发展。发展到一定阶段,就需要一个CEO,由董事授权来管理公司,同时向董事会汇报工作。有时在公司发展过程中,公司创立者也可能离开管理岗位,这些情况下,创立者仍然会通过董事会来介入决策制定,而把日常管理交给专业管理团队。


同样很重要的是需要理解:虽然股东对于公司发展有着同样的利益,但是他们应该较少接入公司日常运营。他们必须给执行管理团队充分的自由度和授权来执行商业计划。

最后一点:融资仅仅是一 个开始。目标是发展和开拓一个商业机会,从而能够为股东创造出很高的价值。资金仅仅是成功方程式的一个部分,关键的是:建立一个有着同样愿景理念的团队, 然后向着这个愿景开展有效的工作。这一点不光对雇员是这样要求,寻找谁来投资的时候也需要这样要求,要确保投资者有相同的愿景和价值观,并且能够真正帮助 发展你的公司。

Monday, January 23, 2006

风险投资行业概述

风险资本是由专业人员管理的资本,主要投资于有潜力带来巨大经济回报的新兴高成长公司。风险资本是创业公司股权资本的重要来源。

对风险资本进行专业管理的公司通常是这样一些形式:私有合伙人制、由私有或公共养老基金投资的封闭式公司、慈善捐款、基金会、大企业、富有个人、外国投资者、以及风险投资者自己。

风险投资者通常:

  • 投资于新兴高成长公司;
  • 购买股权;
  • 帮助新产品或新业务的开发;
  • 参与公司运营活动使公司增值;
  • 期望高投资回报,同时承担相应的高风险;
  • 投资周期较长。

当 风险投资者考虑一项投资时,会对需要投资的公司的技术和商业价值进行认真的筛选。风险投资者只会对研究过的公司中的极少数进行投资,并且期待有长期的回 报。进一步的,风险投资者会和被投资公司的管理层一起工作,运用自己的经验和过去帮助其它类似成长机会公司的商业教训来帮助被投资公司。

风险投资者通过使用单个风险基金投资于新兴公司的一个资产组合的方式来降低投资风险。通常还会和其它专业风险投资公司共同进行投资。另外许多风险投资者同时还管理多个基金。多年来风险投资者培育了美国的高科技和创业群体,并且创造了大量工作机会、经济发展、国际竞争力。像DEC、苹果、联邦快递、康柏、SUNINTEL、微软、基因技术这些公司都是在公司发展初期获得风险投资的著名例子。

私有股权投资

风险投资从上世纪60年代和70年代早期开始出现和发展,现在已经成为主流的资本,在机构投资和企业投资组合中占有重要地位。近年来一些投资者把风险投资和buyout投资都称为私有股权投资。但投资行业的有些人用私有股权只是指buyout投资,因此这个术语的外延有点不确定。一般来说,一个机构投资者会分配机构资产组合的2%到3%投资于多样化资产(多样化资产一般指除了公开市场上交易的资产,如股票、债券、外汇,之外的其它资产种类),比如私有股权或者风险投资,作为整个资产组合的一部分。现在风险投资和私有股权投资中有超过50%的资本来自机构公共或私有养老基金,其它来源包括慈善捐款、基金会、保险公司、银行、个人、以及其它寻求投资资产组合多样化的个体。

什么是风险投资者?

大 众对风险投资者的印象是对创业公司进行投资的富有的金融家。感觉上是:一个开发了一种全新的能改变世界的发明的人需要资金,并且他无法从银行或者自己口袋 里得到资金,于是就争取风险投资者的帮助。事实上是:风险投资和私有股权公司是一个资金池,组织形式一般是有限合伙人制,投资于有机会在57年内获得高回报率的公司。风险投资者可能研究了数百个投资机会后,仅仅选择几个有较好投资机会的公司进行投资。与简单的被动的金融家不同,风险投资者通过参与被投资公司的管理、策略营销和计划,来培育公司的成长。可以说风险投资者首先是创业者、其次才是金融家。

风险投资者可能是个人。在上世纪5060年 代,风险资本投资的早期,个人投资者是主要风险投资者。虽然现在个人投资者没有完全消失,现代风险投资公司已经成为风险投资的主体。而近些年,个人投资者 又重新成为创业公司生命周期早期阶段的主要投资者。这些天使投资者将会指导公司经营,并提供需要的资本和专业知识来帮助公司发展。天使投资者可能是具有管 理专业知识的富人,或者是寻找第一手商业发展机会的退休商人。


投资重点

根据风险投资者投资策略的不同,他们可能是通才型投资者,或者是专家型投资者。通才型投资者投资于不同行业,或者是不同地理位置,或者是公司生命周期的不同阶段。专家型投资者只投资于一到两个行业,或者只投资于一个地理位置。

并不是所有的风险投资者都投资于创业公司。有的风险投资公司投资于处于创业初期的公司,而另一些风险投资公司也会投资于处于商业生命周期其它不同阶段的公司。风险投资者可能在有一个产品或者公司组织之前就进行投资(这种投资被称为种子投资),或者可能在创业公司的发展早期提供资本(被称为早期投资),也可能向公司提供融资,以帮助公司跨越发展临界点获得更大的成功(被称为扩张阶段融资)。

风险投资者也可能投资于公司的整个生命周期,因此有些基金主要做后期投资,提供融资来帮助公司突破发展临界点,通过发行股票吸引公开市场融资。另外风险投资者也可能帮助公司吸引其它公司并购,来提供资本的流动性,实现公司创立者的退出。

另一方面,有些风险投资者专门对有投资机会的公司进行收购、反向收购、或资产重组。

有些风险投资基金会进行非常多样化的投资,投资于不同行业的公司,如半导体、软件、零售、餐饮、以及一些某种技术的专业公司。

尽管在美国高技术投资占了风险投资的大部分,并且风险投资行业因为高技术投资受到很多关注,风险投资者也会投资于传统行业,如建筑、工业产品、商业服务等。有些公司专门进行零售公司的投资,而有些专门对有较好社会效益的创业行为进行投资。

风险投资公司的规模各异,从只管理几百万美元的专业种子投资公司,到管理超过十亿美元在全球进行投资的公司。风险投资者的共性是都不是被动投资者,而是主动的进行投资,并且对被投资的公司进行指导和帮助,通过他们的经验来使被投资公司增值。

有些风险投资公司对被投资的不同公司进行组合,进行成功的合作互补。例如一家被投资公司有很好的软件产品,但没有足够强的销售渠道,这一点可以由风险投资公司的投资公司组合中有更强销售渠道的公司来进行合作互补。

投资周期

风险投资者将会帮助被投资公司成长,但是最终将在37年内寻求退出机会。早期投资一般需要710年才能成熟,而后期投资只需要较短的几年,因此投资公司对投资生命周期的偏好必须适合于有限合伙人(LP)对资本流动性的偏好。风险投资一种短期性的具有流动性的投资,而是一种需要认真调查和专业知识的投资。

投资公司类型

风险投资公司有各个种类,但是大多数主流公司通过基金方式进行投资,基金的资本提供者作为有限合伙人(LP),风险投资公司作为一般合伙人(GP)。 大多数一般形式的风险投资公司是与其它任何金融机构都没有关系的独立风险投资公司,这些公司被成为私有独立公司。风险投资公司也可能是其它金融机构的关联 公司或下属公司,如商业银行、投资银行、或保险公司,代表外部投资者或母公司的客户进行投资。还有另一些公司可能是其它非金融机构、工业公司的下属公司, 代表其母公司进行投资。这些投资公司一般被称为直接投资者或企业风险投资者。

其它风险投资组织可能包括政府用来支持帮助创业公司的投资项目。比如美国小企业管理局管理下的小企业投资公司或者SBIC项目,这些项目支持下的风险投资公司可以利用政府基金来增加其自由基金,或者对被投资公司进行杠杆投资。

尽管有限合伙人制是风险投资公司通常的组织形式,近年来美国税法也开始允许有限责任合伙人制(LLP)、或者有限责任公司(LLC)作为其组织形式。不同组织形式所区别的就是责任、税务、管理责任等方面的优势和劣势。

风险投资公司将其合伙人组织为一个基金池,即由一般合伙人(风险投资公司管理人)以及有限合伙人(提供资本的投资者)组成的基金。这些基金一般组织为固定期限的合伙人制,一般是10年。每个基金由有限合伙人的资本提供资金。一旦合伙人制的基金达到其目标规模,基金就对新投资者或现有投资者的进一步投资封闭了,从而基金保持固定资本池规模来进行投资。

就像共同基金公司一样,风险投资公司也可以同时管理多个基金。风险投资基金可以在封闭第一个基金的几年后筹集另一个基金,从而对现有和新的投资者提供更多机会来对公司进行投资。对于一家成功的风险投资公司,在1015年间,连续筹集67个 基金也是常见的。每个基金被分开管理,有其有限合伙人和一般合伙人。这些基金的投资策略可能与公司的另一些基金类似。然而风险投资公司也可能使一个基金有 其专门的投资重点,另一个有另外的投资重点,而再另一个具有多样化的投资组合,这由风险投资公司自身的投资策略和重点所决定。

企业风险投资

在上世纪80年代曾经流行过的一种投资形式现在又开始非常流行,那就是企业风险投资。通常是指非金融企业的风险投资项目或下属公司对资产组合公司进行直接投资。这些投资寻找并发现合格的投资机会,这些机会需要适合母公司策略和技术,或者能提供合作互补或节约成本。

这些企业风险投资项目可能是与现有商业发展项目相关联的松散组织项目,或者可能是独立的实体,具有策略使命,进行适合母公司策略使命的投资。有些风险投资公司专门对公司风险投资项目进行咨询顾问和管理。

企业风险投资和其它类型的风险投资的区别是:企业风险投资通常以企业策略为目标进行投资,而其它类型风险投资以投资回报或财务目标作为主要的目的。这并不是说企业风险投资项目就不考虑财务回报,但是这种区别确实存在。

企业风险投资风险投资项目的其它区别是:企业风险投资通常用其母公司的资本进行投资,而其它风险投资用外部投资者的资本进行投资。

委托和基金筹集

风 险投资公司的投资过程从寻找来自投资者的投资委托开始,这被称为基金筹集。这不应该与风险投资公司对被投资公司或资产组合的实际投资行为混淆起来,实际投 资有时也被称为筹集资金(但是这是从创业公司的角度来看的)。资本委托来自投资者:风险投资公司将为投资者设立一个基金的目标规模,发布说明书给潜在投资 者,并且花费数周到数月的时间来筹集需要的基金。基金寻找的资本委托将来自机构投资者、慈善捐款、基金会、以及寻找高风险高回报投资机会作为其资产组合一 部分的个人。

因为风险投资具有的高风险,将考虑其投资周期和非流动性,并且因为最低委托需求的数额一般都比较高,风险投资基金通常超出普通人的能力范围。风险投资基金将由少数有限合伙人(最多100个)组成,具体数量由基金目标规模决定。一旦风险投资公司筹集了足够的委托,将开始进行投资。

资本调用(Capital Calls

当风险投资公司开始进行投资时,需要开始调用有限合伙人的委托。公司将从有限合伙人那里收集或者调用需要的投资资本,按照一系列的资本部分(一般被称为资本调用)。这些来自有限合伙人委托给风险投资基金的资本调用有时也被称为takedowns或者paid-in capital。过去,风险投资公司将会调用资本,利用按照3年期限分为3等份。而近年来,风险投资公司都是在其基金生命周期中按照投资实际需要同步进行资本调用。

非流动性

有限合伙人知道其对风险投资基金的投资将是长期性的。一般需要数年第一笔投资才能开始获得回报收益,许多情况下投资资本将被约束为710年。有限合伙人理解这种非流动性是其投资决策的一部分。

其它类型的基金

因 为风险投资公司是私有公司,基金合伙人在完全到期或终止之前无法退出。近年来,一种风险投资公司的新形式出现了,被称为二级合伙人,专门向现有风险投资公 司收购被投资公司的资产组合。这种合伙人的类型为原有投资者提供了一定的流动性。这种二级合伙人投资与其认为价值被低估的公司,以期望获得高回报。

投资顾问和基金的基金(Advisors and Fund of Funds

评估投资于哪个基金类似于选择一个好的股票经理或共同基金,除了风险投资决策是一个长期性的委托。这种投资决策需要有限合伙人投资者具有相当的投资知识和时间。更大型的机构投资了超过100个不同的风险投资和buyout基金,并且还在继续投资于新组成的基金。

有些有限合伙人投资者可能没有资源和专业知识来管理和投资多个基金,因此会寻找投资顾问(或被称为守门员)来代理进行投资决策。投资顾问将把其不同客户的资产累积在一起,作为有限合伙人投资于一个正在筹集资金的风险投资或buyout基金。另外,投资者也可以投资于基金的基金(FoF),这是一个投资于其它基金的合伙人基金,为有限合伙人投资者提供了进一步多样化,并且可以有能力投资更小的数额于多个基金。

资本支出(Disbursements

风 险投资基金对被投资公司进行的投资被称为资本支出,被投资公司将会接受一轮或多轮融资。风险投资公司可能自己进行投资,或者许多情况下会和其它风险投资公 司共同进行投资(被称为共同投资或联合投资)。这种联合投资能给被投资公司提供更多的资本来源。公司进行合作投资是因为:不同公司的投资需要适合于各自不 同的投资策略,并且每家公司都能给这项投资带来一些不同的竞争优势。

风 险投资公司将提供资本和管理专业知识,并且通常会在被投资公司董事会中占据一席,从而确保投资有最大机会获得成功。被投资公司在其生命周期中可能需要接受 一轮,或者往往是多轮风险融资。风险投资公司也不会用其所受委托的所有资本进行投资,而是保持一部分资本,当其投资的成功公司需要进一步资本时进行后期投 资。

退出

根据风险投资公司的投资重点和策略的不同,在进行首次投资后的35年内,将寻求退出机会。尽管风险投资者最重要的退出方式是首次公开股票发行(IPO),大多数成功的退出也可以通过创业者回购或者其它公司并购的方式来实现。另外,风险投资在退出方面的专业知识将决定其退出成功的可能性。

首次公开股票发行(IPO

首次公开股票发行(IPO)是最重要的风险投资退出方式。在近年的IPO高峰中,高技术公司的IPO是 最引人注目的。在公开股票发行时,风险投资公司被作为公司所有人,将接受公司内部股,但是被规定在数年期限内股票被限制出售和清算。一旦股票可以自由交 易,通常是两年后,风险投资公司将把这些股票和现金分配给其有限合伙人投资者,这些投资者随后将这些股票作为普通股进行持有或者出售。在过去20年,大约有3000家接收风险投资融资的公司的股票公开上市。

并购

并购也是风险投资最重要的成功退出方式。在并购的情况下,风险投资公司将接受进行收购的公司的股票或现金,并且将收益分配给有限合伙人。

估值

就 像共同基金一样,一个风险投资基金有净资产价值,或在任何给定时间点投资者所持有的基金价值。然而,和共同基金不同的是,这个价值不是通过公开市场交易决 定的,而是通过其投资的公司资产组合的估值所决定的。风险投资在任何时间点是非流动性的,因此合伙人基金可以同时持有在其所投资公司资产组合中的私有公司 和公开上市公司股票。这些公开股票通常收到持有期的限制,并且在资产组合估值时受到流动性折扣。

每 家被投资公司的价值由进行投资的风险投资公司共同协商决定,随后风险投资者将保持这个价值不变,直到有实质性的事件发生改变价值。风险投资者试图通过某种 指导方法或标准行业实践(在其投资说明书中一般会列出这些条款),对其投资进行合理估值。风险投资者一般在对公司进行估值时会比较保守,但通常早期投资基 金对其投资进行估值时会更加保守,因为早期投资基金相对其它基金来说生命周期太长了。

管理费

作为投资经理,一般合伙人一般会收取管理费,用于对委托资本进行管理的成本费用。管理费通常在基金生命周期中按季度支付,并在基金生命周期的后期会逐渐降低。管理费一般由投资者通过投资基金条款的方式谈判决定。

提成(Carried Interest

提成(Carried interest)是一个术语,用来指支付给一般合伙人的收益利润。这是一般合伙人对其基金承担管理责任,提供需要的专业知识对投资进行管理,所获得的费用。这部分的利润有很多种形式:数额不同,如何计算等。

Saturday, January 21, 2006

Windows2000终端服务许可证过期解决办法

windows2000终端服务有两种模式,一种是远程管理模式,一种是应用程序模式。

在远程管理模式下,没有使用期限限制,但最多只允许五个不同IP同时登录;应用程序模式则对同时登录的IP没有限制,但是有使用时间限制,在没有注册前,免费使用期是90天,超过90天再想使用,需要提供相应的LICENSE

关于应用管理模式下的许可证注册,可以参见如何通过 Internet 激活终端服务许可证服务器并安装 CAL”(Microsoft Knowledge Base Article - 237811),这是正式渠道,需要花$

但大多数人只是出于个人使用需要,为了避开使用期限的限制,常用的有三种方法:

l 第一种最简单,就是在许可证过期后更改系统时间,改为期限内。这种方法简单但不实用。

l 第二种方法是在安装终端服务的时候,调整系统时间为2099年,也即调整到很远的将来。在系统时间为2099年的时候,客户端登录一次服务器,然后再把系统时间调回现实时间,这样也可以避开时间限限。这种方法麻烦,但是比较实用。

l 第三种方法是骗取微软的许可证,具体做法如下(摘自水木清华BBS windowsTec版面)

去微软注册(https://activate.microsoft.com/),购买方式选择:Select or Exterprise Agreement,得到7组数字字母的服务器ID,服务器上选择选择电话注册,然后获取客户机许可证,数量随便填,注册号码可用:4954438 (这儿是关键)

OKID拿到了,再也没有什么90天的限制。

这时会提示:

已成功处理您的客户端许可证令牌请求。

您应该立即打印这个页面

您需要在终端服务器 CAL 安装向导中输入的许可证密钥包 ID :

YVVXH - XYCVP - 8YPFH - RHG9B - TCJJV - 8D6TG - H34JD

许可证服务器 ID 如下的许可证服务器: VM8BR-WGJD8-RJ6KK-MRCCC-6B97Y-TV2PH-JFM87

谢谢您激活终端服务许可证! 69813-640-3867693-45693

这种方法应该也适用于windows2k3的终端授权。

以上几种是比较常用的绕开终端服务时间限制的方法。

其实还有一种方便、折衷的方案。介绍如下。

终端服务在客户端没有许可证的情况下,会临时颁发一个临时许可证给客户,这个许可证的有效期是90天,过了90天,如果客户访问服务器的时候,服务器发现客户已经被颁发过临时许可证,就不再颁发,这样客户在90天外就不可以再访问服务器了。但是这个许可证是存储在客户机上的。只要把这个许可证删掉,在访问服务器的时候,就又会颁发一个临时许可证给客户,这样就又有90天的访问权限。

这个临时许可证存储在客户机的注册表中,位于: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing 把这项删掉,就可以删除颁发的临时许可证。

Sunday, January 15, 2006

介绍 Nutch 第一部分:抓取

by Tom White
01/10/2006

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。可以为什么我们需要建立自己的搜索引擎呢?毕竟我们已经有google可以使用。这里我列出3点原因:

  1. 透 明度:Nutch是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的。商业的搜索引擎排序算法都是保密的,我们无法知道为什么搜索出来的排序 结果是如何算出来的。更进一步,一些搜索引擎允许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的。因此 Nutch 对学术搜索和政府类站点的搜索来说,是个好选择。因为一个公平的排序结果是非常重要的。
  2. 对 搜索引擎的理解:我们并没有google的源代码,因此学习搜索引擎Nutch是个不错的选择。了解一个大型分布式的搜索引擎如何工作是一件让人很受益的 事情。在写Nutch的过程中,从学院派和工业派借鉴了很多知识:比如:Nutch的核心部分目前已经被重新用 Map Reduce 实现了。看过开复演讲的人都知道 Map Reduce 的一点知识吧。Map Reduce 是一个分布式的处理模型,最先是从 Google 实验室提出来的。你也可以从下面获得更多的消息。
    http://www.domolo.com/bbs/list.asp?boardid=29
    http://domolo.oicp.net/bbs/list.asp?boardid=29
    并且 Nutch 也吸引了很多研究者,他们非常乐于尝试新的搜索算法,因为对Nutch 来说,这是非常容易实现扩展的。
  3. 扩展性:你是不是不喜欢其他的搜索引擎展现结果的方式呢?那就用 Nutch 写你自己的搜索引擎吧。 Nutch 是非常灵活的:他可以被很好的客户订制并集成到你的应用程序中:使用Nutch 的插件机制,Nutch 可以作为一个搜索不同信息载体的搜索平台。当然,最简单的就是集成Nutch到你的站点,为你的用户提供搜索服务。

Nutch 的安装分为3个层次:基于本地文件系统,基于局域网,或者基于 internet 。不同的安装方式具有不同的特色。比如:索引一个本地文件系统相对于其他两个来说肯定是要稳定多了,因为没有 网络错误也不同缓存文件的拷贝。基于Internet 的搜索又是另一个极端:抓取数以千计的网页有很多技术问题需要解决:我们从哪些页面开始抓取?我们如何分配抓取工作?何时需要重新抓取?我们如何解决失效 的链接,没有响应的站点和重复的内容?还有如何解决对大型数据的上百个并发访问?搭建这样一个搜索引擎是一笔不小的投资呀!在 " Building Nutch: Open Source Search," 的作者 Mike Cafarella 和 Doug Cutting 总结如下::

... 一个具有完全功能的搜索系统:1亿页面索引量,每秒2个并发索引,需要每月800美元。10亿页面索引量,每秒50个页面请求,大概需要每月30000美元。

这篇文章将为你演示如何在中等级别的网站上搭建Nutch。第一部分集中在抓取上。Nutch的抓取架构,如何运行一个抓取程序,理解这个抓取过程产生了什么。第二部分关注搜索。演示如何运行Nutch搜索程序。以及如何订制Nutch 。

Nutch Vs. Lucene

Nutch 是基于 Lucene的。Lucene为 Nutch 提供了文本索引和搜索的API。一个常见的问题是;我应该使用Lucene还是Nutch?最简单的回答是:如果你不需要抓取数据的话,应该使用 Lucene。常见的应用场合是:你有数据源,需要为这些数据提供一个搜索页面。在这种情况下,最好的方式是直接从数据库中取出数据并用Lucene API建立索引。中文用户,可以参考 WebLucene 或者 车东 的一些列文章。如果需要中文分词帮助还可以联系作者。 http://domolo.oicp.net/bbs/list.asp?boardid=24 Erik Hatcher 和 Otis Gospodnetić's 的 Lucene in Action 中详细讲述了这个过程。Nutch 适用于你无法直接获取数据库中的网站,或者比较分散的数据源的情况下使用。

架构

总体上Nutch可以分为2个部分:抓取部分和搜索部分。抓取程序抓取页面并把抓取回来的数据做成反向索引,搜索程序则对反向索引搜索回答用户的请求。抓取程序和搜索程序的接口是索引。两者都使用索引中的字段。()

实际上搜索程序和抓取程序可以分别位于不同的机器上。()

这里我们先看看Nutch的抓取部分。

抓取程序:

抓取程序是被Nutch的抓取工具驱动的。这是一组工具,用来建立和维护几个不同的数据结构: web database, a set of segments, and the index。下面我们逐个解释上面提到的3个不同的数据结构。

The web database, 或者WebDB, 是一个特殊存储数据结构,用来映像被抓取网站数据的结构和属性的集合。WebDB 用来存储从抓取开始(包括重新抓取)的所有网站结构数据和属性。WebDB 只是被 抓取程序使用,搜索程序并不使用它。WebDB 存储2种实体:页面 和 链接。页面 表示 网络上的一个网页,这个网页的Url作为标示被索引,同时建立一个对网页内容的MD5 哈希签名。跟网页相关的其它内容也被存储,包括:页面中的链接数量(外链接),页面抓取信息(在页面被重复抓取的情况下),还有表示页面级别的分数 score 。链接 表示从一个网页的链接到其它网页的链接。因此 WebDB 可以说是一个网络,节点是页面,链接是边。

Segment 是 网页 的集合,并且它被索引。 Segment 的 Fetchlist 是抓取程序使用的 url 列表 , 它是从 WebDB中生成的。Fetcher 的输出数据是从 fetchlist 中抓取的网页。Fetcher 的输出数据先被反向索引,然后索引后的结果被存储在segment 中。 Segment 的生命周期是有限制的,当下一轮抓取开始后它就没有用了。默认的 重新抓取间隔是30天。因此删除超过这个时间期限的segment是可以的。而且也可以节省不少磁盘空间。Segment 的命名是 日期加时间 ,因此很直观的可以看出他们的存活周期。

索 引库 是 反向索引所有系统中被抓取的页面,他并不直接从页面反向索引产生,它是合并很多小的 segment 的索引中产生的。Nutch 使用 Lucene 来建立索引,因此所有 Lucene 相关的工具 API 都用来建立索引库。需要说明的是 Lucene 的 segment 的概念 和 Nutch 的 segment 概念是完全不同的,不要混淆哦。 可以参考 车东 的相关文章。 www.chedong.com 简单来说 Lucene 的 segment 是 Lucene 索引库的一部分,而 Nutch 的 Segment 是 WebDB 中 被 抓取和索引的一部分。


下面的部分翻译中。。。

原文地址:
http://blog.csdn.net/accesine960/archive/2006/01/14/579535.aspx

http://today.java.net/pub/a/today/2006/01/10/introduction-to-nutch-1.html

Friends By Outline - 一个开放式社会化网络的尝试

开放式社会化网络的尝试有不少,比如XFN和FOAF,这两种技术都着眼于建立网络,我以前分析过,一个社会化网络应用,只有网络是不够的,至少不够有趣。
blog天然具备一些社会化网络的要素,个人提供内容,blogroll提供网络框架。个人作为互联网中的节点,除了blog,大多还会提供图片、网摘等等内容。为什么不能将这些元素组合起来,建立一个完整的开放式社会化网络呢?
第一个能想到的是把RSS作为切入点。但RSS倾向于“内容”,缺乏把节点连接成网络所需的信息。另一方面,RSS提供的语义也不够丰富。RDF也是一个 可能的选择,很容易提供资源到url的联系,语义也非常丰富,唯一的问题是结构相对复杂,当年在xml sync这一功能上RDF远早于RSS,最后RSS胜出,就败在复杂上。
再来看一下OPML。目前OPML在互联网上被广泛应用于表示RSS聚合集。其实OPML定义了语法,但并没有限制语义,用它来outline的东西几乎可以是无限的。mac上的OmniOutline就可以以opml作为文件格式之一。
以outline的方式来组织互联网中的个人节点是一个很自然的过程:

写成OPML就是这样:





...



...


...

每个互联网上的个人节点都可以生成这样一个outline文件,在网页的head里加入一个rel是outline的

通过这个outline文件,很容易得到关于这个个人节点的内容信息,更重要的是,outline中提供了延伸的可能性,通过friend部分的链接,可 以探测朋友的outline文件,再到朋友的朋友。保证了可延伸,可被探知,并提供内容,一个Friends By Outline的开放式社会化网络就自然形成了。
outline中的内容可以不限于blog、图片和网摘。加入图书、电影和唱片,就可能产生一个开放式的豆瓣。加入To Do List,就可能产生一个开放式的43things。加入你要卖的二手货,就可能产生一个开放式的ebay。
为了实践这个这个想法,我做了一个wordpress插件,这个插件可以帮我做下面几件事:

  • 根据我提供的内容生成一个outline文件。
  • 在页面的head里加入outline文件的link。
  • 探测我的朋友的outline文件。

安装了这个插件以后,在Option中可以做如下设置:

插件可以通过这些信息和blog的内容生成一个fbo.opml文件,我的fbo.opml在这里。通常情况下,这个文件是自动生成的,不需要Force rebuild。
如果你的朋友也有这样的outline文件,你可以去Dashboard下的Friends里查看插件自动帮你搜集来的内容:

也可以通过template做一个这样的页面。这些页面也都是自动更新的。
如果你也想加入实践Friends By Outline的行列,并且在使用wordpress1.5.2以上的版本,可以在这里下载这个插件。 在plugin目录下展开。这个插件会在blog根目录下写outline文件,在plugin/fbo目录下写入搜集来的outline文件,所以你需 要赋予这两个目录的写权限。通常不需要做额外设置。同时,如果你愿意,可以要我把你加入我的Friends By Outline的Link List中,你的outline就会被包含在我的Friends页面中了。

Sunday, January 01, 2006

RSS阅读的深度思考

1. RSS阅读器为什么会出现阅读瓶颈 ?


RSS阅读器,作为个人的阅读空间,在用户订阅到一定数量的RSS后,往往对RSS列表更新比较慢,也就是很少加入新的RSS,对于一些老的RSS也懒得去删除。出现这一现象的原因有许多,下面逐个分析。

(1)阅读时间瓶颈
用户订阅的RSS数量和用户的阅读时间基本成正比,而一天中的阅读时间是有限的,因人而异。阅读时间多的人,通常可订阅到几百到几千个。在接近阅读时间的RSS数量后,RSS订阅将长期处于平缓期。

(2)阅读空间瓶颈
阅读空间是指RSS界面空间部分。对于"树-列表-阅读区"类型阅读器,可以订阅较多的RSS,但是对于Web Desktop上以Block显示的阅读器,阅读空间受到显示空间的限止,当RSS订阅超过了视觉承受能力后,订阅新的RSS的兴趣也会受到影响。

(3)阅读兴趣减少
从开始使用RSS阅读器产生一定兴趣,到热心搜索RSS,到RSS订阅数量积聚到一定程度,用户的订阅兴趣减少,是一个普遍的过程。

当RSS订阅到平缓期时,用户接收新信息的来源便是这些订阅RSS的内容,用户的知识来源也收到了限止。更令人担忧的是,RSS的内容仅仅是网站信息的一小部分,用户习惯了RSS阅读后,很少再到提供RSS的网站上获取新的信息。

解决RSS订阅瓶颈的问题,已经被推到了RSS阅读器提供商面前。


2. 您的RSS阅读器是动态的吗?


这里的动态是指RSS阅读器能否自动订阅新的RSS、和自动清理旧的RSS。就我所知,目前还没有这样的RSS阅读器。以下是可能的解决方案。

解决方案一:订阅OPML
既然RSS可变,那么我们就不能把RSS作为RSS阅读器订阅的基本单位,而应当在更高的层次订阅,比如OPML。把OPML做为订阅的最小单位,而OPML中的RSS条目是可变的。这相当于我们选择一些大的分类去订阅。比如IT类。OPML可由独立的服务商提供。

解决方案二:显示拆分的RSS
如果RSS作为最基本的订阅单位,那就只好改变RSS阅读器的显示方式达到动态阅读的目的。这就是RSS拆分问题,请看下节。

解决方案三:个性化订阅
本方案中RSS阅读器必须支持自动挖掘网页RSS功能和智能推荐功能。网页RSS挖掘比较简单,智能推荐的智能程度则直接关系到本方案的成败。智能推荐需要用户设定自己的个性化信息,当挖掘到RSS后,RSS阅读器获取RSS的内容,甚至获取RSS条目的内容,和用户的个性化信息作智能匹配,如果合适则自动推荐给用户的相应订阅分类中。

解决方案四:自动个性化RSS搜索
这需要RSS搜索引擎支持个性化搜索。自动搜索,并自动推荐则是这个方案的关键。

解决方案五:关联RSS服务
当用户订阅了某个RSS后,推荐给用户和这个RSS相关联的RSS(最好支持本地的智能推荐)。当用户浏览RSS时,也动态地推荐相关联的RSS。关联 RSS可以作为一种独立的服务来做,这种服务器可以做得很细致、准确,因为这种服务可以在后台靠强大的数据库和处理能里来做。关联RSS服务,在RSS搜索服务完善之前,将是RSS订阅服务的一种最实用的服务。


3. 为什么需要拆分RSS?


RSS为基本的阅读单位,使我们走入了误区。现在需要反思一下了。

以博客为例,一个人写的文章有好有差、有各种类型,而它们混在同一个RSS里面,浪费了用户的阅读时间,甚至影响了用户的阅读兴趣。而RSS阅读器的真正目的正是阅读效率的产物,所以需要对RSS进行拆分。RSS阅读器是Item Based,而不是RSS Based。

拆分后的RSS以独立的文章存在,这需要有一个分类系统和评价系统,让用户能够快速有效地阅读。

我们已经从FeedBurner, Digg, Google Feed API中嗅到了这种拆分的原型。

FeedBurner, 通过拆分RSS,可以获得用户对每一篇文章的评价,从而提供基于文章的Ranking系统。这个改进,将对Burner形式产生重要影响,同时给公司带去其它相关业务。

Digg,一个以用户评价为主体的系统,其基本单元是文章,如果Digg提供RSS订阅,则RSS阅读器可以订阅到高质量的RSS。当然这不是我们最终的获取RSS 的形式,因为它的RSS,除了一个Rank数值以外,与普通的RSS没有什么区别。改良的Digg系统,将是RSS订阅的一个最好的来源。

Google Feed API,Google将开放其FEED的用户接口,用户可以通过此接口来评价任何一个RSS中的条目,同时还可以附加自己的TAG等等。当此API成为 RSS阅读器普遍接受的一个评价入口的时候,Google便拥有了一个强大的带有Rank的RSS/RSS Item数据库。Google再次把其它公司放到了一个打工的位置。