Archive for November, 2004
随着 WB Editor 2 的发布,它提出的口号是: Blogging is not just editing and posting. Feel the fun and the power with WB Editor 2.
在 再议 WB Editor 插件 一文中提到了不少浏览器无法实现的功能。这里再比较一下即使浏览器也用上了 htmlarea, FreeTextBox, CuteEditor, FCKEditor 等编辑器,也不能达到 WB Editor 提供的那种细致程度。
November 10th, 2004
2004 年 7 月 MSDN 的 IUIs and Web-Style Navigation in Windows Forms, Part 1 结合最近开发 WB Editor 的实践,引发了我对 Windows 程序界面设计的一些新感想。
WB Editor 是个典型的 Windows 程序。在开发过程中总是感觉它的界面不对劲,它应该面向最普通的计算机用户,而实际上它的界面却是令人望而生畏的。
阅读那篇文章后感觉它为 WB Editor 的界面问题提供了今后开发的方向,那就是 Web-Style。 按照上文,MS 正在把 Web-Style Navigation 的支持做到 Avalon (Longhorn 的显示部分) 里面。WB Editor 2.0 的目标之一也就尝试是 Web-Style Navigation。
我预计从现在开始,会看到越来越多 Windows 程序界面设计大量采用 Web-Style,这就是我所说的酝酿中的变革。
November 10th, 2004
曾经有人问,写 blog 用浏览器足够了,为什么还要 WB Editor 这样的工具?
答案很简单,WB Editor 提供了浏览器无法提供的功能。
试想在用 WB Editor 写作的时候,
- 可以用 webcam 拍张照片,插入文章。
- 可以随机插入一个名言警句。好好学习,天天向上 :-)。
- 可以接驳 GPS,把过去走过的路线下载到 blog 里面。
- 可以复制些文字,发个手机短信。
- ……
自从 WB Editor 有了插件支持,做些都不再是遥远的梦想。
现在已经有了插件做语法检查、快速排版、代码加亮。新近还完成了个插件,可以用来管理(自定义)所有插件的快捷键,正在制作 FTP 插件(用来上传文件)、连接分析插件(提取、保存文章中的连接,自动加连接) ……
真是不怕做不到,只怕想不到。
有了这些插件,为写 blog 增添无数的乐趣。
November 10th, 2004
BlogJet 的作者 Dmitry Chestnykh 和我打算建立一个关于 blog 客户端工具的 Wiki。网址是 blogclients.info 。我可以在那里介绍 WB Editor。
blog 客户端工具的境地十分奇特,它背负着 blog 服务器 bug 的黑锅。
对于 blog 服务器来说,web 界面是主要的,xml-rpc 支持是次要的,很多系统的 xml-rpc 错误百出。 WB Editor Knowledge Base 收录了很多服务器断的错误。为了研究 blog 服务器的问题,我都快成 PHP 专家了。
blog 服务器的 xml-rpc 支持还会变化,donews 关闭了 .Text 系统的 blog 部分,blogger.com 的 utf-8 支持坏掉了等等情况,用户第一个抱怨的是 blog 客户端工具不工作了。还很难解释。
November 10th, 2004
WB Editor 可以通过插件可以丰富其功能。比如,拼写检查、Wiki 排版、语法加亮插件等等。WB Editor 插件是外挂的软件模块。它编译成 DLL 的形式,当把它放到 WB Editor 的运行目录,WB Editor 能自动识别它。
November 10th, 2004
WYSIWYG 编辑器
WB Editor 的核心是大名鼎鼎的 Nikhil Kothari 的 HtmlEditor Control,它什么都好就是载入内容到编辑器去的方法是错的。它生成的 stream 不支持中文。于是我改进了它,中文、日文没有问题了。但是,如果 IE Encoding 用 UTF8,WB Editor 可能中文出乱码。后来在 http://www.itwriting.com/htmleditor 的 htmleditor 中找到了创建 unicode stream 的正确办法,还实现了印度文支持。
xhtml
WB Editor 无法连接 b2evo,因为 b2evo 要求输入为 xhtml。逼得我从 dasBlog 中挖掘出了个html formatting 工具包,也是 Nikhil Kothari 的作品。
安装程序
原先用 MAKEMSI 工具做的 WB Editor 安装程序有个缺点,就是无法检测并提醒用户去下载安装 .NET Framework。以至于不看 readme.txt 的用户不知道这一先决条件。受到 WiX for dummies 一文的启发,找到了个办法: 找来原始的 wbeditor.msi,再找来一个能检测 .NET 的 msi 。两个 msi 都用 wix 反编译出来 (用其 dark /x 工具),然后,把得到的两个 wix xml 文件巧妙地和并起来,最后用 candle 和 light 工具重新编译生成新的 msi。
HTML 语法加亮
参考了很多资料,总算做出了一个不闪烁的 html 加亮编辑器。但是自己非常不满意:相应速度不好,没有代码提示、自动完成、没有 as you type 语法检查。准备有空研究研究 SharpDevelop 里的编辑器。
插件技术
另文详细介绍。
November 10th, 2004
在 究竟什么是 blog 1 - 个人的网上日记 一文中,总结了 blog 的两大特点:个人特点和群体特点。
个人特点是指写什么发布什么应该是很自由的。
群体特点是在具有相同兴趣爱好者之间相互交流。
因此,blog 服务器应该有多个。其中一个是自己的所有文章的汇集,其他是 group blog。自己个人的服务器放全部的文章,并且分门别类地复制发送到其它 group blog 服务器上 (cross post)。
应该选什么样的blog 服务商?
blogger.com 等 blog 服务商把 blog 当作个人主页的扩展,这些比较适合架设个人 blog 服务器。 它甚至鼓励在 blog 里面放你自己 google adsense 广告。
另外一些 blog 服务商把 blog 当作论坛的扩展,这个比较适合 group blog 而不适合做个人 blog 服务器。因为它可能会
有个斑竹/管理员什么的来封杀你的内容。
在它自己的首页弄个无聊的阅读排行榜。
因为不知道什么人的内容不好关闭网站,影响你的文章发布。
不允许你放的 google 广告,而放进 (inject) 它自己的google 广告。
要加入 group blog,当然需要遵守它的规则和协议,由它限制内容、放进它的广告 …
而架设自己的个人 blog 服务器,应该有充分的自由,选择个人主页扩展型 blog 服务商为好,免费的服务也可能会有被加上它的页眉等,但是付钱就好了。
如果选不到好的 blog 服务商,自己租个web 服务器(虚拟主机),可以更加自由地架设自己的 blog 服务器,因为有很多现成的免费的软件。将在下文介绍。
November 10th, 2004
blog 是在网上写日记。可是,就象用 web 浏览器不是唯一看 blog 的方法一样,用 web 浏览器登陆 blog 服务器去写作也不是唯一的写作办法。
写作 blog 可以用专门的写作工具,称为 desktop blog editing tool 或者 posting tool。它们具有更好的类似 word 的操作界面,来更加容易直观控制排版。还可以把 blog 文章、草稿保存到自己机器的硬盘上。甚至还有些有趣的功能,例如,把 windows media player 里面正在播放的音乐信息,插入到你的 blog 中。
http://www.microsoft.com/windowsxp/windowsmediaplayer
/downloads/create.asp
这么好的东西。十分遗憾的是,能支持中文 blog 写作的工具,并不多见。为此,我专门制作了一个 WB Editor。
WB Editor 通过 IBlogExtension 挂接到支持这个接口的程序下,例如 SharpReader,RSS Bandit,NewsGator …
WB Editor 又通过 blogger API 和 metaWeblog API 连接众多支持这些标准的 blog 系统,例如,delphibbs, drupal, xoops, .text, b2, nuclues, pmachine, Moveable Type ……
都是标准化的东西,上下通吃,应该前途不错
November 10th, 2004
Tackback Ping 是 blog 一个十分重要的功能,由做 Moveable Type 的人发明的。他们说 TrackBack 是 “a framework for peer-to-peer communication and notifications between web sites”。 (http://www.movabletype.org/docs/mttrackback.html) 厉害了吧,是在 web 网站之间做 P2P 通讯。其实没有必要想那么高深。看看下面这个例子:
你在网上看到一篇 blog,在谈一个算法,而这时候,你自己正在写一篇 blog 谈同样的问题,也许你就会希望看到网上那篇 blog 的人也能来看看你的 blog。这时候改怎么办?习惯于论坛模式的人就会去网上那篇 blog,手工添加一个”评论”/回贴,把自己相关 blog 的 url 连接贴上去。但是,blog 世界里却不是这样的。
blog 作者可以在发布自己 blog 的同时,会把自己 blog 的 url 连接 ping 到网上那篇 blog 上去,使得看到网上那篇 blog 的人也能 Trackback 顺藤摸瓜、追踪回来看看自己的 blog。在 blog 网站发贴的时候,你会看到有个选项填入 Trackback Ping URL,意思就是让你在发 blog 的同时,把连接同时贴到个什么地方去。
当然,网上那篇 blog 要能够接受你的 ping,并且显示你的 blog 标题和连接,以便别人摸回来,这一切的通讯,就是依据 Trackback Ping 协议。这么描述 Trackback Ping,应该容易理解了。
那么这样 ping / 贴自己的连接出去的重要意义在哪里呢? 如果看过我的《究竟什么是 blog 1》,你就会知道 blog 是一种个人的创作,你写 blog 就是希望发表自己的东西,保存自己的东西。而且对别人发表的 blog 的评论也要在自己的 blog 里永久保留下来。珍惜自己的写作。 blogger (就是玩 blog 的人) 往往是这样讨论问题和做评论的:把内容写在自己的 blog 里面,Trackback Ping 到人家那里。这个概念是论坛模式里从来没有的,称为 remote commenting。 所以,写 blog,难道可以不用 Tackback Ping?
November 10th, 2004
blog 是个人的、放在网上的日记。强调个人,其重点是发表自己个人的 blog,没有任何管理员来管束你,想写什么都可以。
所谓 group blog 就是有相同主题的一群人,合在一起写 blog。因为往往是有相同兴趣爱好和专业的人聚集在一起写 blog,好处在于大家相互看得懂,容易获取和交流相关领域的信息。
所以,一般似乎应该有个个人的 blog,然后加入一些 group blog,文章 cross post 出去。
November 10th, 2004