2007年9月23日星期日

在Ubuntu 7.04里轻松美化汉字

说来这个方法真的很简单,奇怪倒是我居然刚刚才发现。

一直认为Ubuntu默认的汉字字体不好,所以导致汉字显示出来大大小小,而且不同字体混在一起。前两天浏览/etc/fonts目录才发现其实系统已经安装了“文鼎PL细上海宋Uni”和“文鼎PL中楷Uni”,仅仅是因为fontconfig搜索路径没有设置对,导致汉字显示效果不好。所以只要把这两个字体在搜索路径的位置提前,让它们成为汉字显示的第一选择即可。于是,在/etc/fonts下创建一个新文件local.conf,内容如下:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Bitstream Vera Serif</family>
<family>DejaVu Serif</family>
<family>Times New Roman</family>
<family>Thorndale AMT</family>
<family>Luxi Serif</family>
<family>Nimbus Roman No9 L</family>
<family>Times</family>
<family>AR PL ZenKai Uni</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Bitstream Vera Sans</family>
<family>DejaVu Sans</family>
<family>Verdana</family>
<family>Arial</family>
<family>Albany AMT</family>
<family>Luxi Sans</family>
<family>Nimbus Sans L</family>
<family>Helvetica</family>
<family>AR PL ShanHeiSun Uni</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Bitstream Vera Sans Mono</family>
<family>DejaVu Sans Mono</family>
<family>Andale Mono</family>
<family>Courier New</family>
<family>Cumberland AMT</family>
<family>Luxi Mono</family>
<family>Nimbus Mono L</family>
<family>Courier</family>
<family>AR PL ZenKai Uni</family>
</prefer>
</alias>
</fontconfig>

上面大部分内容都是抄/etc/fonts/conf.avail/60-latin.conf的,只是加了红色的三行,问题就搞掂了。

2007年9月13日星期四

Open Source天空的星星越来越多

这样的题目似乎更适合放在天天忽悠里。

刚刚浏览新闻发现了两个好消息:
我最近相当依赖VMware Server。在公司的Windows机器上用它跑Ubuntu 7.04,在家的Ubuntu 7.04上跑Windows。听起来很折腾,但是确实方便,也让我切身体会Virtualization的价值和重要性。VMware本来已经相当慷慨,VMware Server是个免费的,现在又开源了VMware Tools。这说明Open Source对这样靠技术吃饭的公司的价值。当然他们这么做也不能排除是VirtualBox们的竞争压力所致。

而Squeak by Example这样的开源书更多体现了共产主义精神。将自己的知识无私地与他人共享显然比以知识创富更高了一层。

不管是处于什么原因,象我这种主要是知识消费者的人都是Open Source的最大受益者。当然我的目标是不光是消费者,更应该是生产者,这样才能让这个环境延续和发展。

2007年7月11日星期三

安装Mephisto

刚刚把Mephisto安装配置好,相当不容易。

首先是我需要一个内容管理系统(CMS)。虽然我已经安装了WordPress,但是它是一个博客系统,对于其它内容的管理很弱。尤其是我已经有了一个Blogger上的博客,WordPress就显得不合适了。其次是我想尝试一下基于Rails的系统。我先手试了RadiantTypo。Radiant安装还比较简单,网站提供的文档也不错。Typo虽然用的人很多,但是对于缺乏耐心的我来说太麻烦。而且它们都有类似WordPress的问题,主要用于博客,不大符合我的要求。最后我选择了Mephisto

不过总的来说,Rails应用确实比PHP应用配置起来麻烦得多。通常PHP应用只要往相应的路径一放,然后配置一下数据库就行了。Rails应用则不然,特别是我不希望用Virtual Host方式,而是把Mephisto安装到一个路径:/mephisto下。费了好大劲,最后还是采用这里的方法,就是除了修改配置文件外,不得不对某些代码(这里主要是CSS代码)进行修改。我认为这是Mephisto不完善的地方。另外,如何驱动Rails也是不容易的抉择。开始我想用比较时髦的Mongrel,但是文档上说Mongrel和我用的Lighttpd的配合不好,如果象网站上推荐的前面再放一个Pound对于我这个家庭小网站就太夸张了。最后还是参考这个HowTo采用了比较过时的fastcgi方式。

2007年6月27日星期三

转向Ubuntu

用了大约3年的Gentoo Linux,昨天我放弃了。原因有很多,大概有这么几条。
  1. 通过编译源代码安装软件包太费时间。
  2. 通过定制编译带来的优化效果并不明显。
  3. USE变量很难用。
  4. 目前的Overlay和Portage的关系不是我希望的。我希望能够选择Overlay里我需要的包安装而忽略其它,但这是不可能的。
  5. Gentoo的stable portage已经不是那么cutting edge了。
  6. 很多相对偏门一些软件对Genoo的支持不是太好。
昨天晚上我转向Ubuntu Linux。之所以选择这个发行版,有如下理由。
  1. 被忽悠的。Ubuntu一出现就被追捧,甚至成为某种时尚。咱也想跟跟风。
  2. 安装、使用相对简单。之前我已经在虚拟机上安装过若干次Ubuntu,感觉效果不错。
  3. 用户群大,所以各种支持比较好。
  4. 更新比较及时。我安装的7.04 Feisty Fawn已经带的是GNOME 2.18了,而以前的Gentoo还是2.16。而且Ubuntu的release进度稳定,每年固定是.4和.10两次,可预测性好。
一个晚上我已经重新安装了大部分需要的软件,只有services部分还没来得及。这部分Gentoo和Ubuntu的差异较大,我还需要花些时间。另外我还尝试了一下GNOME 2.18新的Desktop Effects,就有两个效果,感觉很炫,就是看的时间长有点眼晕,所以试了一下就关掉了。

说了这么多并不是意味着Gentoo不好,其实我绝大多数Linux的知识是从Gentoo上学来的,而且其中很多细节在大多数其它发行版上无法学到的。

同时我也发现Ubuntu上的一个问题。在Gentoo上我要安装WordPress,并不依赖与任何一个特定的web服务器,所以我就可以选择Lighttpd,而非Apache。但是在Ubuntu上,好像我安装WordPress就会自动安装Apache,很不灵活。当然这是我目前的看法,可能有其它高级的办法我还不知道。我也发现Ubuntu还没有VMware Server的包,只有VMware Player的。所以我只能用这里提供的办法自己手工安装了一个。不知道是为什么,好像运行Windows虚拟机比以前快了不少。这个虚拟机我已经用了一段时间,很稳定。因此这次重装系统我干脆把一直保留的Windows分区彻底干掉了。

总的来说,这次转移应该是成功的。

2007年6月20日星期三

用Google Blogger Widget写blog

最近Google在Mac平台上也发了不少力,这样我的PowerBook也能落些好处,特别是Google EarthGoogle Desktop for Mac这样的重量级产品。刚刚又下载了Google Blogger Dashboard Widget,现在就是用这个小玩意儿写这些文字。一直觉得Mac的Dashboard Widgets有些鸡肋,以往用得最多仅仅是字典。现在多了这个用途,算是多了些好印象,不过谁知道是真的实用,还是暂时新鲜而已?

2007年5月10日星期四

让AjaxTerm与lighttpd一起工作

AjaxTerm是一个能够通过Web页面提供的Terminal程序,其作者认为它最大的一个特点就是安装容易。不过其网站上提供的配置信息都是以Apache HTTP Server为例配置的,而我用的是lighttpd

安装AjaxTerm很容易,因为已经有现成的ebuild,而且还有专门的init脚本用于启动服务器。不过我还得把它集成到我对Web服务器上。开始我只是把Apache的配置简单翻译成lighttpd的语法,当然还要调整适应我的需求。我要把它映射到“/ajaxterm”上,而且还要用HTTPS,就象下面这样:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/ssl/certs/lighttpd.pem"

proxy.server = ( "/ajaxterm" =>
( "localhost" =>
(
"host" => "127.0.0.1",
"port" => 8022
)
)
)
}
结果出现了下面这样的情况。



不过如果我绕过lighttpd,直接连接AjaxTerm服务器http://localhost:8022就没有问题。我在网上搜索了一下,发现也有人提到遇到同样的问题,但是好像没有得到解决。

用FireBug我能看到ajaxterm.js中XMLHttpRequest发出的请求的URL居然是http://localhost/u,而不是我希望的http://localhost/ajaxterm/u。在仔细看Apache的配置
ProxyPass /ajaxterm/ http://localhost:8022/
ProxyPassReverse /ajaxterm/ http://localhost:8022/
原来人家后面也有个“/”,也就是需要映射到“/ajaxterm/”上,如果需要让“/ajaxterm”也干活,加个redirect就行了。
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/ssl/certs/lighttpd.pem"

proxy.server = ( "/ajaxterm" =>
( "localhost" =>
(
"host" => "127.0.0.1",
"port" => 8022
)
)
)
}

url.redirect = (
"^/ajaxterm$" => "/ajaxterm/"
)
现在,终于能看到令人高兴的画面了。

2007年2月22日星期四

虚拟化我的Windows分区

我已经在家中转向使用Linux系统两年多了,但是仍然不得不保留了一个Windows分区。这主要是因为我用了工商银行的U盾和网上银行系统,而运行它们的前提条件是你必须使用Windows和IE。不光我一个人遇到这种情况,Bill Xu也是。他还为此发表了一封公开信,只不过他的目标是招行。我有点奇怪他的信中为什么不提工行?也许是因为招行的口碑不错,所以对其还有所期待,而工行“劣迹斑斑”,人家根本就懒得理它?不管怎样,反正我保留了双系统配置,平时都是用Linux,而且是长时间开机。只有当要用网上银行服务的时候才启动一下Windows,用完马上又转回到Linux,非常不方便。

最近出现了转机。VMWare发布了VMWare Converter 3.0,可以将物理机转换成虚拟机,使之可以在VMWare的虚拟产品中运行。很快又很及时地出现这个Howto一步步教人如何做转换。所以我前天也紧跟形势,把我的Windows分区转换成了虚拟机,成功地在Linux上的VMWare Server上运行。速度当然不能跟原来相比,但是总体上还能接受,特别是安装VMWare Tools以后,屏幕显示和鼠标都很平滑。一开始我还又写错误理解,以为转换的目标机必须要装有VMWare的虚拟机软件,所以还特地借了一台Windows系统的笔记本,还在上面安装了VMWare Server。后来才发现VMWare Converter只是希望你不要把目标机选为本机,只要是网络上的另一台机器,并且有足够的存储空间就够了。原来瞎忙活了一场!转换的速度可不算快,我的Windows分区大小约为24G,内容有十来个G,转换花了七八个小时,正好让我睡了一觉。

新的虚拟机,还没有通过最关键的测试,就是使用U盾进行网上支付,因为最近没有需求,估计问题不大。一旦证明可用,我就可以跟那个Windows分区说bye bye了。