使用博客构建
说出一个围绕它有兴趣社区的主题。现在去 Google 搜索一下。很有可能在顶部结果中会包含一个或多个人的网络日志(又名博客)。让我们来看三个例子
802.11b:在 687,000 个结果中,排名第一的是 WiFi 新闻,这是一个由两位记者 Glenn Fleishman 和 Adam Engst 撰写的网络日志。IEEE 工作组的网站排名第二。WiFi 联盟的门户网站排名第三。
Segway:在 81,500 个结果中,排名第一的是 Segway 公司的网站,其次是伯克利 Segway 门户网站,然后是 Segway News——Paul Nakada 的一个网络日志。
网络日志:在 2,620,000 个结果中,排名第一的是 Aaron Swartz 的 Google Weblog,其次是 Guardian Limited 的网络日志。紧随其后的是一位《Linux Journal》编辑的博客,这位编辑也恰好在写您现在正在阅读的内容。
博客之所以成功,很大程度上是因为它们非常原生于 Tim Berners-Lee 最初构想的网络。下面是网络日志软件先驱 Dave Winer 的解释
第一个网络日志是第一个网站 info.cern.ch,这是 Tim Berners-Lee 在 CERN 构建的网站。TBL 从这个页面指向所有新上线的网站。幸运的是,该网站的内容已在万维网联盟存档。(感谢 Karl Dubost 提供链接。)
链接到来源并注明出处(就像 Dave 在最后一行所做的那样)一直是网络上原生的道德和新闻实践。虽然大型广播公司、出版商和风险投资支持的追随者继续将互联网视为仅仅是将“内容”分发给“消费者”的管道系统,但博客软件开发人员悄悄地为网络的链接和注明出处功能增加了巨大的价值。Dave 和其他独立开发人员创建了 XML-RPC、SOAP 和 RSS 等标准,以及开放 API,这些标准共同将网络变成了一种前所未有的写作和出版媒介。
博客不是关于“架构”、“构建”、“设计”或“创作”任何东西,因为博客不是通常意义上的“网站”。博客是日志。使用博客,您可以直接在网络上写作。大多数帖子都很短,尽管它们不必如此。所有帖子都具有时效性和时效性,否则它们会从聚合站点和服务中消失,并最终从其他博客上列出的喜爱链接的“博客链接列表”中消失。
每个博客都像一个壁炉,每个帖子都像一块扔在上面以保持火焰燃烧的木头。每个帖子都有自己的“永久链接”,因此其他人可以直接指向它。只要博客发出热量和光芒,其他关心作者主题的人就会被吸引到它。Google 和其他搜索引擎也是如此,它们不断地筛选灰烬。
在最好的情况下,博客既是链接磁铁,也是链接来源,这就是为什么 Google 如此喜欢它们。Google 将入站链接等同于权威,并相应地对结果进行排名。来自更多高度链接页面的更多链接会导致更高的页面排名。这就是为什么如此多的博客在如此多的主题搜索中名列前茅的原因。整个系统——包括博客、聚合器、网络服务和 Google 本身——都在自我供给、构建和增长。它还吸引并依赖于来自 Slashdot 和《Linux Journal》到纽约时报等讨论和新闻网站提供的 RSS 流。RSS 是网络日志开发人员创建和/或改进的越来越多的免费和开放技术之一。
随着网络日志在给定主题的知识流量中占据越来越多的份额,它们成为破解常识的强大工具。在许多类别中,它们正在超越主流期刊和门户网站,并在资金过多的互联网公司努力失败的地方构建有用的社区服务。最后一个类别的一个例子是 John Hiler 的 Cityblogs,它于 2002 年 12 月出现。Hiler 解释说
本地网站夹在岩石和硬地之间:要么他们聘请昂贵的专职作家来创作他们负担不起的内容,要么他们解雇他们的作家并转向自动化内容:天气预报、本地新闻和电影列表。
这是一个戈尔迪之结——聘请昂贵的作家,否则你就没有内容——博客的独特之处在于可以将其一分为二。既然我已经建立了网站,我每天可以花一两个小时来涵盖这三个类别。正如 Glenn “Instapundit” Reynolds 在最近一次关于网络日志的会议上所说,“博客很便宜”。
因此,博客正在成为各种地方的一种选择,这意味着您作为《Linux Journal》的读者,很有可能属于以下两个群体中的一个或两个
想要建立博客并开始在网络上写作的用户。
系统管理员和其他具有脚本和编程技能的人员,他们要么希望建立一个博客系统,要么管理或更改已有的系统。
无论好坏,Google 是一家商业公司,其服务已成为事实上的网络基础设施。对于博客尤其如此,博客不仅大量使用 Google 的搜索引擎,还大量使用其 API,后者允许来自程序的自动查询。
Google 的 API 是不断增长的站点和服务的一部分,这些站点和服务大多是由有进取心的独立开发人员拼凑而成的。例如,Technorati(参见侧边栏)关注博客之间的新鲜链接(超越引用日志),并将信息组织成“监视列表”和其他有用的列表。如果您想让 Technorati 告诉您目前谁链接到您的博客,您可以在网站上索取此信息,或者每年支付 5 美元以获得每天通过电子邮件发送的监视列表。
Technorati 故事:新的网络服务产品评论如何从研究任务中发展出来
Technorati 是本文的合著者 David Sifry 的作品,David Sifry 是 Linuxcare 和 Sputnik 的联合创始人。它是 LAMP 程序的一个很好的例子——一个基于 Linux、Apache、MySQL 和 Python、PHP 或 Perl 的事实平台的程序。另一个 LAMP 作品是 Phillip Pearson 的博客生态系统,它保留了两个前 300 名列表:一个是链接最多的博客,另一个是链接最多的博客。
Technorati 和博客生态系统的大部分都得益于 RSS,这是一种 XML 方言,其首字母缩写词的意思是真正简单的联合。由于 RSS,您在《Linux Journal》网站上阅读的每篇文章都会自动联合到任何想要阅读并指向它或将其与其他来源聚合的人。
Blogger API 是另一个支持基础设施的黑客行为。它不仅被 Blogger(注册人数最多的最流行的网络日志系统)使用,还被 Radio Userland 和 Movable Type 这另外两个领先的网络日志系统使用。正是这个 API 使您的作者之一能够破解通过电子邮件和 Jabber 发布到各种博客的方法。还有许多其他的黑客行为,就像有许多其他的博客系统一样。SourceForge 单独列出了数十个处于不同完成状态的网络日志系统。在 LAMP 领域,Geeklog 和 CafeLog 是基于 PHP 的,并使用 MySQL,Drupal 也是如此。事实上,PHP-Nuke、PostNuke、Drupal 和 Slashcode 都足够灵活,可以用作网络日志系统。Rusty Foster 的 Scoop 也是如此,它是用 Perl 编写的,Movable Type 也是如此。Roller 是为 J2EE 环境用 Java 编写的;事实上,有一个庞大的 Java 博客社区。这个列表还在继续,而且很长。因此,让我们将列表稍微细分为四个家族树。
专门为博客从头开始设计的软件包包括 Radio Userland、Blogger、Movable Type、Greymatter、Roller 和 CafeLog。大多数都包含高级功能,例如 Blogger API、MetaWeblog API、RSS 订阅和订阅以及到聚合站点(例如 www.weblogs.com)的 XML-RPC ping。如果没有 RSS 订阅和 XML-RPC ping,博客就不会包含在基于博客的网络服务中,例如 DayPop、Blogdex 和 Technorati。您听到了很多关于网络服务理论的说法,但在博客世界中,它们很容易付诸实践。
LiveJournal 也属于此类别,这是一个开源项目,拥有大量的追随者,并且高度强调社区联系和参与。它被设计为一个集中式系统,对不同平台上的许多客户端开放,所有客户端也都是开源的。虽然 LiveJournal 提供 RSS 订阅,但它不会向聚合站点发送 XML-RPC ping。它还缺乏一些与博客相关的格式特征,例如边距中的博客链接列表,所有这些都使其不如该系列中的其他博客。
在 Slashdot 和 Kuro5hin 等讨论站点取得巨大成功之后,涌现出许多具有类似 Slashdot 功能的软件包。Slash 是 Slashdot 自己的代码库,Scoop 是 Kuro5hin 的,mod_virgule 是 Advogato 基于的信任系统。这些第一代软件包允许您设置故事发布、站点会员资格、评论审核、主题或类别(带有图标)、投票、帖子存档等。这些涵盖了博客工具的主要要求,尽管许多工具缺乏更高级的功能,例如 RSS 订阅和到聚合器的 XML-RPC ping。考虑到博客的本质是个人性质的,即使在拥有多个作者的博客上,karma 和审核等功能也基本上不重要。
PHP 日益普及,催生了第二代面向讨论的站点。PHP-Nuke 发起了这一代;但是当它无人维护时,许多程序员分叉了代码库,并创建了 PostNuke、Geeklog 和 PostTEP 等。这一代还允许轻松的主题化和更好的插件管理,因此您可以轻松编写代码,例如,可以放在站点侧边栏中以执行特定任务的代码。顺便说一下,PHP-Nuke 再次得到维护。该家族还包括混合体,例如 PHP-Slash,它是 Jay Bloodworth 将 Slash 代码从 Perl 和 mod_perl 移植到 PHP 的版本。
一些博客工具来自传统的网站内容管理领域,包括对多作者和权限以及工作流程执行的支持。这是 Vignette StoryServer 的传统,其中包括 Zope(它不仅仅是一个 CMS)、Nucleus 和 Drupal。内容管理站点为更正式的模型-视图-控制器方法提供了支持,内容、标记和工作流程之间有明确的分离。这些工具通常是创建具有大量作者和编辑的动态网站的理想选择,但它们往往缺乏博客工具中发现的一些高级功能,例如 RSS 订阅和 XML-RPC ping。它们还缺乏 Blogger 和 MetaWeblog API,用于从其他非网络浏览器应用程序发布和编辑内容。
维基是创建动态网站的另一种方式。它们允许任何人轻松编辑和标记页面,同时仍然保持版本控制。一些博客工具基于 Wiki 代码或 Wiki 思想。这些工具包括 SnipSnap、TWiki、Tiki、WikiWiki、MoinMoin 和 ZWiki。它们提供了一些内容管理,但主要侧重于易于编辑和发布以及更新速度,而忽略了诸如日期条目和 RSS 订阅之类的博客功能。其他值得注意的家族是基于 Java 的博客工具,例如 Roller 和 WebForum;以及基于 Python 和 Ruby 的工具,例如 Pyblosxom 和 tDiary,后者在日本很受欢迎。
我们列出所有这些家族是因为您的特定需求可能不限于博客。但是,如果您想做博客,或者您想支持博客,则需要密切关注最适合博客用途的工具。
简而言之,如果您的博客系统无法回答以下问题的“是”,则它不符合标签要求
用户是否可以动态发布到站点?
帖子是否易于创建、查看和在发布后再次编辑?
管理员是否可以限制谁发布到首页?
用户是否可以在浏览器(至少)或他或她选择的其他工具中进行编辑?
其页面格式是否允许博客链接列表和每日发布区域之外的其他部分?
它是否生成 RSS 订阅?
每个帖子是否都有一个永久 URL(或永久链接)?
当前帖子是否具有唯一的 URL?
搜索引擎是否可以抓取存档?
存档是否稳定且免受损坏?
Blogger、Movable Type 和 Radio Userland 这三大巨头在所有这些方面都符合要求,因为它们从头开始构建为纯粹的博客系统。这也是为什么博客生态系统的前 300 名列表中列出的大多数博客都是由三大工具制作的原因。
我们一直在《Linux Journal》上试用各种网络日志系统,这些系统托管在 Penguin Computing 慷慨提供的服务器上。我们的大部分精力都集中在 Movable Type 上,它是三大巨头中唯一在 Linux 上托管的,并且似乎在 Linux 开发社区中具有最大的发展势头。源代码可供最终用户使用,但未在开源许可下提供。
Movable Type 提供两种自己的许可:一种免费(如啤酒)许可供非商业用途,另一种 150 美元(美国)许可供商业用途。虽然这使 Movable Type 不再是作家和出版商(包括《Linux Journal》)的首选,他们更喜欢使用免费软件,但许多支持开源和自由软件运动的博客组织,例如电子前沿基金会和知识共享组织,都在使用 Movable Type。
那么您在这里的选择是什么?如果您想建立一个最基本的博客,并且不介意它是否对上面列出的所有问题都回答“是”,那么 LiveJournal 是一个方便且流行的选择。您将被排除在博客生态系统之外(大致由 Phil Pearson 以该名称命名的聚合站点定义),但您将主要使用 GPL 许可的开源软件,并参与一个活跃的社区。
如果您希望您的博客在生态系统中蓬勃发展,并且不太关心后端发生的事情(就像您可能不关心 Hotmail 类型网络电子邮件系统背后的东西一样),您可以考虑 Blogger 或 Radio Userland。两者都允许您从任何可以 FTP 数据并提供 HTTP 的服务器进行博客。例如,要创建一个 Blogger 博客,请转到 www.blogger.com,设置一个帐户,使其指向您的 FTP 服务器,其中包含您的用户名、密码和 Web 服务器 HTML 目录。在 Debian 中,默认值为 /var/www。在 Red Hat 中,默认值为 /home/httpd/html。这是一个简单、易于设置的博客系统,也是一个流行的选择——即使对于不想从头开始设置一切的黑客来说也是如此。
如果您想要一个功能齐全的基于 Linux 的博客系统供您自己或您的组织使用,并且您对其许可方案没有问题,那么 Movable Type 是您的最佳选择。安装它几乎对新手来说足够容易。它也非常灵活、功能强大且易于维护。
如果平台和许可问题让您远离三大巨头,您需要查看讨论站点和内容管理系统。如果您已经在使用基于 PHP 的系统(例如 PHP-Nuke),您可以考虑调整您当前的系统或转到同一通用家族中的另一个系统,例如 Geeklog 或 Drupal。它们都不像 Movable Type 那样易于安装,但一旦您掌握了它们的方法,它们都不难维护。
Linux 上也存在用于博客编辑和发布的命令行工具。一个例子是 Philip Myelin 的 Bzero。Philip 还是 Python Community Server 和 phpStorageSystem 的作者,这两者都是 Userland Radio Community Server 的克隆。在您的 Web 服务器上运行这些应用程序之一,您可以将基于 Radio 的博客托管在您的 Linux 机器上。
如果所有替代方案都不适合您的喜好,您可以考虑创建或改进一个开源的为博客构建的系统。Greymatter 是用 Perl 编写的,并获得了 GPL 许可,在 2001 年之前发展势头良好,当时 Noah Grey 决定他有更重要的事情要做。您可以从他离开的地方继续,也可以从头开始构建一个新的博客系统。
无数选项可供选择。URLDIR 可以生成各种功能比较表,涵盖此处列出的所有系统以及其他一些系统。如果您正处于试用阶段,这是一个不错的起点。
但在决定之前,请先查看这些不同系统生成的博客。遵循 David Ogilvy 给寻找广告公司的公司的经典建议:“寻找您羡慕的作品,并找出是谁做的。”
Doc Searls 是《Linux Journal》的资深编辑。
David Sifry 是 Linuxcare 和 Sputnik 的联合创始人,他也是 Sputnik 的 CTO。