google wave 游记

首先声明:本人wave提名(邀请)早已用光,不要再问我要了。

自拿到wave帐号以来,着实在wave上好好玩了一把。和很多人一样,刚刚进入wave的世界,头一个印象就是不知所措,wave是一个需要学习过程才能使用的东西。很快上手后,感觉就是一个乱字。

wave具有一个天才的设计,将论坛,email,wiki, IM, SNS这些概念揉捏在了一起,一开始,进入一个wave后,感觉就象看到了QQ,充分的富文本编辑功能展现出鲜艳颜色的字体和大字号,一时感觉很山寨,慢慢用下来,一个wave给人的感觉就像是论坛的一个帖子,第一条消息后面的讨论就像跟贴,而且是即时性非常强的那种。而wave的wiki风格,带有浓重的google docs情结,也有人用它尝试做一些文档协作工作。当然,之前说乱字也体现在这里,因为他的wiki性,同时又具有强烈的IM和BBS性格,因此在一个wave里,任何人都可以修改和删除任何人的留言,任何人都可以吧自己的联系人加入一个wave,而被加入的人自己根本不知道。你只要看过一个wave,那么这个wave就在你的inbox(email性格在此体现)里了,而且你最多只能把它mute或者扔到垃圾箱,你永远也无法删除任何一个wave,甚至是包括你自己创建的都不能删除。当然对于我这种wiki熟手来说,倒是感觉比较游刃有余,而甚少接触wiki的人则一下子很难适应。其实wiki的一条规则在这里非常适用,那就是Be Bold

说到email,这篇文章的观点倒是对我颇有启发性,把一个wave看作是一封电子邮件,每个人在wave里的讨论就是email之间的回复。把wave当作email来用,的确是一种很爽的想法,或许wave的设计就是如此的?

目前wave的功能还有太多不完善的地方,例如大家普遍抱怨的卡,wave只要里面内容稍微多一点,就会卡的不行,如果用了一些gadget之类的在里面,那就更消耗资源了,看来,wave是一个对机器配置要求非常高的一个家伙。而更糟糕的是,一个wave有容量限制,里面的内容超过一定大小就会被系统自动设为只读,任何人都无法编辑和修改。这几天和一些朋友在wave里玩成语接龙,已经彻底把3个wave搞成只读状态了。粗略算了一下,一个wave大约能容纳600-900条消息或者3000-5000个汉字的字符数量(不知道wave是如何计算容量的)最最不爽的是,设成只读之前没有任何提示,当你要修改或输入新的内容时,系统才告诉你wave已经是只读状态了。

screenshot_30-thumb

在只读状态下,输入新消息时才出现的提示

对wave其实还是非常抱有希望的,如果他能把gmail, docs,gtalk等google其他应用整合到一起,那是一件非常爽的事情。换一个角度,如果wikipedia能够采用wave的这种实时编辑模式,对于解决编辑冲突问题也是非常有帮助的。目前也有人在尝试这个工作:http://mediawikiwave.org

wave宕机画面

如何用mediawiki建一个wikiblog

刚刚用mediawiki(wikipedia所使用的wiki平台)建了一个wikiblog(又叫作bliki)——维基观察,就是一个建立于wiki平台上的blog。所使用的主要的mediawiki扩展如下(这里可以看到我所使用的全部扩展):

WikiSkin:优点是可以完全定制自己wiki网站的版面布局(在这里定制),缺点是原来系统自带的所有CSS样式斗废掉了,全部要自己在Common.css里重写,当然这样会更灵活和方便。在LocalSettings.php里设定:

require_once(“extensions/Wikiskin.php”);
$wgWikiSkinArticle=Wikiskin;

HeaderFooter:定制自己每个页面的头部和脚部,这里头部是页面中条目标题开始处,脚部是条目内容结束处,不是整个页面的头部和脚部。这个扩展非常灵活,甚至可以对每个页面都定义不同的脚部和头部,搭配wikiskin就更加强大灵活。设定:

require_once( “$IP/extensions/HeaderFooter/2.0.1/HeaderFooter.php” );

StubManagerHeaderFooter扩展所需的东西。设定:

require_once( “$IP/extensions/StubManager/1.3.0/StubManager.php” );

ArticleComments:为wikiblog的每篇文章增加blog风格的留言系统。设定:

require_once(‘extensions/ArticleComments.php’);
$wgArticleCommentsNSDisplayList = array(NS_MAIN, NS_TALK, NS_USER_TALK); //设定在哪些名字空间显示留言板
$wgArticleCommentDefaults['showurlfield'] = true; //是否显示url填写区域

DynamicPageList2:根据你设定的条件显示内容。我的wikikblog的側边栏和首页等都是用他生成的,这样就不用像平常的wiki那样一页一页手工更新内容了。可能的问题是,过于复杂的DPL会增加服务器的负荷。设定:

require_once(“$IP/extensions/DynamicPageList/DynamicPageList2.php”);

WikiArticleFeeds:blog怎能没有feed?但是mediawiki所提供的几个rss输出的都是wiki化文本,不是浏览器可读的HTML。这个扩展则可以在某个页面生成该页面的rss。但是问题是这个扩展对于中文系统的支持有问题,中文下无法检测出作者和日期。设定:

require_once(‘extensions/WikiArticleFeeds.php’);
$wgFeed = false; //禁止掉系统自带的rss
$wgMaxCredits =-1;

各种条件判别等比需有ParserFunctions,这样你的wiki才够强大,才可以作很多事情。如果你要向我一样弄个分类云,则要装ParserFunctions (extended)Variables

require_once(“$IP/extensions/ParserFunctions/ParserFunctions.php”);
require_once( “$IP/extensions/Variables/Variables.php” );


blog上还会用上许多
Widgets,那就装上它:

require_once(“$IP/extensions/Widgets/Widgets.php”);
$widgetNamespaceIndex = 274;
$wgGroupPermissions['sysop']['editwidgets'] = true;

不要让人随便编辑,那么就装上EditOnlyYourOwnPage。这样其他注册的用户就只能编辑自己的用户页和用户对话页。和ArticleComments搭配非常完美,用户可以通过它在对话页留言。

有了这几个扩展,一个wikiblog就基本建成了。为了增强更多的功能,更像一个blog,可以设置一下:

$wgUseTrackbacks = true;  //启用Trackback功能。但是貌似只能提供本站的Trackback,而不能ping别人(我自己顺便测试一下)
$wgNoFollowLinks = false;  //对http://这样的连接不使用NoFollow
$wgShowSQLErrors = true;  //调试用
$wgHideInterlanguageLinks = true; //把mediawiki上的跨语言连接功能去掉
$wgUseCommaCount = false;  //文章计数方式
$wgAllowExternalImages = true; //可以直接引用外部图像

设定网站的logo:

$wgStylePath   = “皮肤所在路径”;
$wgLogo        = “{$wgStylePath}/common/images/logo.png”;

设定网站的favicon.ico(可以用这个在线制作

$wgFavicon = “$wgScriptPath/favicon.ico”;

设定好cache,优化访问速度:

$wgUseFileCache = true; /* default: false */
$wgFileCacheDirectory = “$IP/cache”;

如果要使用维基共享资源上的图片,可以这样设定(必须是1.13以上版本才支持):

$wgForeignFileRepos[] = array(

   'class'                   => 'ForeignAPIRepo',

   'name'                    => 'shared',

   'apibase'                 => 'http://commons.wikimedia.org/w/api.php',

   'fetchDescription'        => true, // Optional

   'descriptionCacheExpiry'  => 43200, // 12 hours, optional

   'apiThumbCacheExpiry'     => 43200, // 12 hours, optional, but required for local thumb caching

);

现在基本上看不出太多的wiki痕迹了。但是还有一些问题目前不好解决。一个是评论功能只能一篇文章显示它最近的一条评论,而不能按照顺序列出一篇文章的多个评论。二是目前的这个wikiblog没有tag功能,貌似wiki天生就看不上tag,我这里就是勉强用分类来代替tag。三是文章的存档还是必须自己来弄,系统不会自己生成。

另外,用medawiki建立blog并不是只有这一种方法。例如用wiki左右编辑平台,而文章出版平台用wordpress,见WikiToWordPress。或者是用wordpress的评论功能作为wikiblog的留言系统,见WordPress Comments。甚至以用户为单位的blog系统:My blog。(这个适合作多用户的wikiblog,或者叫做WBSP?哈哈 :) )如果你有服务器的操作权限,你也可以用wikilog这个扩展建立blog(这个扩展相当不错)。可以参考这个wikiblog。这个是我见过的第一个中文wikiblog。

在mediawiki上使用wikicommons的图像资源

Image:Commons-logo-en.png

维基百科的姊妹计划之一——维基共享资源(wikimedia commons)是一个储存自由版权图像,视频和音频的wiki网站,其目的是为维基百科等维基媒体计划提供多媒体资料库。上传到维基共享资源的图片可以在维基百科等计划中直接调用,从而不必重复上传。

此前这些图像资源一直只能在维基媒体计划中使用,其他的用mediawiki架设的wiki网站不能调用维基共资源上的图片。但是自1.13版以来,这已经可以实现了。在LocalSettings.php文件中加入以下语句:

$wgForeignFileRepos[] = array(
   'class'                   => 'ForeignAPIRepo',
   'name'                    => 'shared',
   'apibase'                 => 'http://commons.wikimedia.org/w/api.php',
   'fetchDescription'        => true, // Optional
   'descriptionCacheExpiry'  => 43200, // 12 hours, optional
   'apiThumbCacheExpiry'     => 43200, // 12 hours, optional, but required for local thumb caching
);
更多请看这里

OpenServing的wiki应用新模式

Wikia即将推出OpenServing服务,是将wikipedia所使用的mediawiki的功能强化,结合blog,digg等的特性,以wiki形式的开放编辑的一种web2.0服务。新的功能由armchairgm提供。目前推出了三个示范性的站点

目前比较薄弱的是不支持RSS和Trackback。也不知道什么时候才会开放申请。我申请openserving已经几个星期,也没有任何答复。

wikipedia nofollow

昨天在桑林志上知道了Google 发起防治spam的行动,今天到wikitech-l邮件列表上提出来是不是可以在wikipedia上对于外部链接增加nofollow的属性,防止wikispam. Brion Vibber 很快就修改了wikipedia软件,现在wikipedia上所有的外部链接都加上了一个rel=”nofollow”的标签。但是关于这个建议讨论也很激烈,也有人反对使用这个标记,认为如果很多人使用他的话,对于构建于链接基础上的在线出版社群会产生消极的作用。

但是无论如何,对于wiki危害尤烈的wikispam,nofollow确实是一个很好地解决办法,虽然恢复页面还需要手工进行,但是nofollow可以打消wikispam制造者的积极性,使他们失去制造spam的热情,从根源上杜绝他们。(最近的wikispam真是厉害,要么是恐吓,要么就是玩捉迷藏,用一个 style=display:none 把自己隐藏起来,实在可恶)

当然,在wiki上用nofollow,有可能会打消一些人增加好网址的积极性。我觉得在wiki上使用blog一样的Trackback Pings,也是补救nofollow所带来的不利影响的好办法。

MediaWiki stable release 2003-11-17

Release notes:
http://sourceforge.net/project/shownotes.php?release_id=198060

Download:
http://prdownloads.sourceforge.net/wikipedia/mediawiki-20031117.tar.gz?
download

唉…始终无法安装在我的操作系统上(winxp)

Previous versions of MediaWiki contained a flaw that could be exploited

in some configurations to execute arbitrary PHP code on the server if

the *.php files are located in a web-accessible directory and are

runnable through the PHP interpreter. This likely includes most

installations.

If you can’t upgrade immediately, you should be able to easily

substantially reduce the risk by doing one or more of the following:

* Leave just LocalSettings.php and the *.phtml files exposed to the

web, moving the other *.php files into a directory that’s not exposed

to the web; set $IP to point to this directory in LocalSettings.php.
-or-
* Remove the “$IP/” or “{$IP}/” from all include() and include_once()

statements, keeping the *.php and *.phtml files in one place.

* Explicitly disallow access to all the *.php files in the web server.

* Configure the server to run only *.phtml files through PHP, and not

*.php. (If you do this, be sure your database passwords are not exposed

through LocalSettings.php!)