6 Frameworks Apple should include in their OS

To make developers’ lives easier, Apple *really* should make the following 6 frameworks bundled with their OS, it will make application distribution much better.

* [Growl](http://growl.info)
* [Sparkle](http://sparkle.andymatuschak.org)
* [Perian](http://perian.org)
* Universal Charset Detector
* A decent HUD framework (maybe based on [HMBlkAppKit](http://shiira.jp/hmblkappkit/en.html))
* A decent Tab control (maybe based on [PSMTabBarControl](http://www.positivespinmedia.com/dev/PSMTabBarControl.html))

Now accepting donations

我在页面下方加入了两个小按钮,分别接受 RMB 和 USD 的捐赠,如果你对下面任一关键字有兴趣:

* [vim-cocoa](http://vim-cocoa.googlecode.com)
* [Mac Dictionary Kit](http://mac-dictionary-kit.googlecode.com)
* [TextEdit/UCD](http://www.newsmth.org/bbscon.php?bid=719&id=203914)
* (upcoming) Quick Look Plugin for text file in all encodings
* [libtlp](/2007/11/21/texlive-new-infrastructure/)

而且希望见到它们得到更好的开发,可以考虑给我一点鼓励,捐赠将用来购买书籍、设备和支付参加会议的费用 🙂 不过不管有没有捐赠,我都只能按照自己的时间和计划来工作 (yep, 这和 vim 的 [sponsor](http://www.vim.org/sponsor) 政策差不多)。

In search for a perfect mail client

“All mail clients suck. This one just sucks less.” – The mutt slogan

邮件客户端 (又称为 MUA, Mail User Agent) 似乎是一切用户永远的怨念,因为实在太难找到一个合意的了,这里“一切用户”当然也包括我,事实上,我寻找合适邮件客户端的路程也极为曲折。

自从 1997 年接触网络的时候申请了第一个 (163.net 的) 电子邮箱,当时因为网络太慢,大家都拨号,访问 163.net 花哨的 web 邮局界面登录一次就得等半天,实在太也奢侈。于是研究了半天,参照当时杂志上推荐的 Foxmail 配置了一下,记不得是哪个版本了,当时倒还是挺满意的,于是 Foxmail 伴随我的邮箱由 163.net 到 21cn.com 这么用下来,现在在 Windows 平台下也不失为一个可以考虑的选择。

不过作为一个喜欢排版的人,眼睛总是挑剔的,Foxmail 令我感到恼火的就是你很难选择合适大小的中文字体,众所周知 SimSun 的 9pt, 10.5pt 和 12pt 最佳,可 Foxmail 的选择偏偏跳过了这几个,缺省是一些非常恶心的大小,仅因为这一点,令我非常不爽,于是乘着 [Thunderbird](http://www.mozilla.com/thunderbird/) 1.0 顺利发布的东风,换成了 Thunderbird。

Thunderbird 也用了挺长一段时间,直到 2.0 版本我都没完全放弃,可用着用着还是发现不对劲,就是我的邮件经常会莫名奇妙的消失,比如收邮件时时,我把一封邮件从 Junk Mail 区拖回到 Inbox,结果收完了邮件 Inbox 里和 Junk Mail 里都找不到这封邮件了!自从 Thunderbird 搞丢我一封重要邮件后,我_永久_地放弃了 Thunderbird。

放弃了 TB 用什么呢?幸运的是,[GMail](http://mail.google.com) 横空出世了,一开始也不觉得 GMail 有多好用,无非是大一点,不用删除,但后来用着用着就把所有的邮件都放到了 GMail 的 web 界面中去处理了,为什么呢?

* 有自动的 Spam 过滤,基本不用担心 Spam 的问题
* 邮件全文检索非常方便
* 最后,也是最重要的,thread 组织和浏览实在是*太方便*了

于是 GMail Web 界面成为了我主要的邮件处理工具,一直用到现在,虽然也积累了一些小的怨念,但还没有大到让我换客户端的程度,包括:

* Web 界面有时会被 ban 掉
* Web 界面还是有点慢,而且不喜欢总要开个浏览器
* GMail compose 出来的 Email 总是怪怪的,发出去的邮件会在奇怪的地方换行
* 没法配置发送纯文本 (8bit) 的邮件和附件
* 最后,也是最严重的,居然*不允许*用等宽字体查看和编辑邮件

其实最大的原因还是始终找不到合适的客户端,以前 GMail 不支持 IMAP,本地收下来的信和别的地方无法同步,这是完全不能忍的,而自从 GMail 开始支持 IMAP 一来,我试用了:

* [Apple Mail](http://www.apple.com/macosx/features/mail.html), 因为过度的依赖超文本而放弃了,以前不用 Outlook Express 也是基于同样的理由
* [mutt](http://www.mutt.org): 几个严重的问题: 配置繁琐,自身支持的收发功能都很弱,IMAP 支持也极差,查看邮件的 thread 组织远不如 GMail
* [sup](http://sup.rubyforge.org/): 看起来像个理想的解决方案,把 GMail 界面的思想加入到了字符界面终端下,简直和我想要的界面一模一样,问题是太脆弱和太慢了,要把所有的邮件都下载下来进行全文索引这一步就完全不可接受,我的 GMail INBOX 里近 30000 封邮件用 sup 处理一次要 24 小时。而且只要此后你从 Web 界面动过任意一封邮件,所有的同步工作又白费了,要从头开始。sup 的作者抱怨这是 IMAP 协议的问题
* [OfflineIMAP](http://software.complete.org/offlineimap): 因为 sup 的作者说下载下来用 mbox 或者 Maildir 格式它就能很好索引了,结果尝试用 OfflineIMAP 把邮件下载下来,结果发现 OfflineIMAP 也十分脆弱,根本支持不了 GMail 这么多邮件的情况

alpine

直到昨天,[alpine](http://www.washington.edu/alpine/) 的 1.00 版本发布,我终于看到了一个比较可以接受的替代品,alpine 是纯字符界面,满足我对编辑和查看邮件的要求,配置比 mutt 简单得多,也不需要额外安装什么专门用来发信收信的工具,IMAP 支持很不错,甚至连邮件 header 都不需要全部下载就能浏览 INBOX,这一点其它客户端似乎都办不到。唯一的缺点是 thread 组织比 sup 的做法还是差了许多。

我还在试验,学习中,如果遇到什么问题,也许会尝试自己去改进 (当然,只要有时间),真正“完美”的邮件客户端也许能找到,也许找不到,但寻找的过程本身就很耐人寻味,或许邮件客户端从发明的那一天起,就是要我们学会适应与妥协吧?

把寻找的过程写下来,希望能对别人有用。

Mac Dictionary Kit

开发了将近两周的一个项目终于可以称作_正式发布_了: [Mac Dictionary Kit](http://code.google.com/p/mac-dictionary-kit/) 的目标是成为一套在 Mac OS X 系统下常用的词典处理与转换工具。虽然在目前它只支持 [stardict 格式](https://stardict.svn.sourceforge.net/svnroot/stardict/trunk/doc/StarDictFileFormat)的转换,但相信随着以后代码的抽象和新格式需求的增加,我们会支持更多的格式,以及更强大、更复杂的转换功能。也尽可能提供更方便的图形用户界面。

DictUnifier

目前 MDK 以两个子项目的形式发布: sdconv 是独立的命令行方式转换工具,专门用于 stardict 词典格式到 Dictionary 2.0 词典格式的转换;DictUnifier 是一个图形界面转换工具,它的设计是为了自动探测并支持多种来源格式,虽然目前它也只支持 stardict 格式。

发布在 Google Code 上,主要是为了提供更好的下载服务、更详细的文档和 bug 跟踪。因为这个项目原来参考了 stardict 的代码,所以沿用 GNU GPLv2 发布。

目前,这两套工具提供的都是 Universal Binary,支持 Intel 和 PowerPC 的 Mac 机器。也都是绿色软件,只需要解压/挂载就可以使用。

在这两套工具正式发布之前,得到了水木社区 [Apple 版](http://www.newsmth.org/bbsdoc.php?board=Apple)许多版友的测试与 bug 报告,在此表示诚挚的谢意。

Nally

这两天做了[一些](http://jjgod.org/code/GBK-support.patch.gz) [Nally][] ([MacBlueTelnet][]) 的[修改](http://jjgod.org/code/font-smooth.patch),主要是让它支持 GBK 编码的 BBS。如果你经常在 Mac 下上 BBS,又对现有的客户端 (Terminal, iTerm, AlienBBS) 的显示正确性/速度/文本渲染效果不满意,可以试一试 [yllan][] 开发的这个 Nally。最大的优点就是用 Core Text 渲染文本,速度特别快,而且字体选择方面专为中文 BBS 优化。我自己已经用它替代使用了很长时间的 iTerm 了。

另外,这是一个开放源码的项目,你也可以用 subversion checkout 下代码做出贡献哦。

Nally, 连线水木

[Nally]: http://yllan.org/mac/Nally
[MacBlueTelnet]: http://sourceforge.net/projects/macbluetelnet/
[yllan]: http://yllan.org