<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14329825</id><updated>2011-05-25T14:42:55.706+08:00</updated><category term='ruby'/><category term='grub'/><category term='XOOPS'/><category term='encoding'/><category term='MagicLinux'/><category term='WYSIWYG'/><category term='perl'/><category term='Reader'/><category term='sugarcrm'/><category term='wine'/><category term='Skype'/><category term='gnome'/><category term='SNS'/><category term='虚拟机'/><category term='adobe air'/><category term='broswer'/><category term='tips'/><category term='rails'/><category term='Mac'/><category term='debian'/><category term='digium'/><category term='CounchDB'/><category term='kvm'/><category term='IM'/><category term='SCM'/><category term='i18n'/><category term='tech'/><category term='emacs'/><category term='MySQL'/><category term='jabber'/><category term='workaround'/><category term='开放课程'/><category term='Xorg'/><category term='mephisto'/><category term='migration'/><category term='BBS'/><category term='game'/><category term='file system'/><category term='wordpress'/><category term='tar'/><category term='Open Source'/><category term='Knoppix'/><category term='PHP'/><category term='Observer'/><category term='editor'/><category term='asterisk'/><category term='plone'/><category term='Enterprise'/><category term='disaster recover'/><category term='Database'/><category term='Linux'/><category term='Docbook'/><category term='CMS'/><category term='log'/><category term='Tools'/><category term='symfony'/><category term='mozilla'/><category term='rescue'/><category term='ubuntu'/><category term='SVN'/><category term='VOIP'/><category term='algrorithm'/><category term='Erlang'/><title type='text'>e | paulin home</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>91</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14329825.post-6149274145359614712</id><published>2008-10-27T12:55:00.000+08:00</published><updated>2008-12-10T01:27:16.868+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='migration'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='mephisto'/><title type='text'>从Mephisto迁移到wordpress</title><content type='html'>&lt;p&gt;原先blog用的mephisto，最近出现spam，索性关了comments，决定换回wordpress。今天抽个空闲，终于是转换了过来。&lt;/p&gt; &lt;p&gt;幸好&lt;a title="Mephisto 0.8 to WordPress 2.5.1 Ruby Script" href="http://clockwi.se/2008/07/06/mephisto-08-to-wordpress-251-ruby-script/" mce_href="http://clockwi.se/2008/07/06/mephisto-08-to-wordpress-251-ruby-script/"&gt;Caleb Jaffa&lt;/a&gt;因为有同样的需求写了&lt;a href="http://pastie.org/228661" mce_href="http://pastie.org/228661"&gt;转换脚本&lt;/a&gt;。&lt;/p&gt; &lt;p&gt;下载 wordpress 2.5.1，安装，运行，运行转换脚本，更新 wordpress 2.6.1，设定 permalink，原先的 feed archinves url 转换设定，磕磕碰碰遇到点小问题，半个小时之内还是搞定了。&lt;/p&gt; &lt;p&gt;买了 linode 的 VPS，用debian的image，安装mysql编译apache、php，一切顺利，总算可以对备案说 fu**k you了，:-p&lt;/p&gt; &lt;p&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;Caleb 的脚本没有转换 Section，我做了一些改进( &lt;a title="migreate mephisto to wordpress with section" href="http://pastie.org/301462" mce_href="http://pastie.org/301462"&gt;pastbin&lt;/a&gt; )&lt;/li&gt;&lt;li&gt;&lt;a href="http://pastie.org/303305" mce_href="http://pastie.org/303305"&gt;修正中文等UTF8 permalink 编码问题&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6149274145359614712?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6149274145359614712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6149274145359614712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6149274145359614712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6149274145359614712'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/10/mephistowordpress.html' title='从Mephisto迁移到wordpress'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1944742404523222468</id><published>2008-09-18T05:18:00.000+08:00</published><updated>2008-12-10T01:25:24.510+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workaround'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe air'/><title type='text'>How to Install Adobe air 1.1 beta on Ubuntu hardy 64bit</title><content type='html'>&lt;p class="imageleft"&gt; &lt;img src="http://webwhere.cn/assets/2008/9/18/air_icon_special.gif" mce_src="/assets/2008/9/18/air_icon_special.gif" alt="adove air logo" /&gt; &lt;/p&gt; &lt;p&gt; Adobe Air 最近放出 &lt;a href="http://labs.adobe.com/downloads/air_linux.html" mce_href="http://labs.adobe.com/downloads/air_linux.html" title="adobe air for linux"&gt;1.1 beta for linux&lt;/a&gt;, 不过仍没有 64bit 支持。经过一番尝试，成功安装。 &lt;/p&gt; &lt;h3&gt;下载&lt;/h3&gt; &lt;pre name="code"&gt;cd /tmp
wget http://download.macromedia.com/pub/labs/air/linux/adobeair_linux_b1_091508.bin
chmod +x adobeair_linux_b1_091508.bin
&lt;/pre&gt; &lt;h3&gt;安装&lt;/h3&gt; &lt;pre name="code"&gt;./adobeair_linux_b1_091508.bin
Error loading the runtime (libnss3.so: wrong ELF class: ELFCLASS64)
&lt;/pre&gt; &lt;p&gt; locate 了一把发现系统存在 libnss3.so，但由于是 64bit 的，adobe air 无法使用。理论上安装 32bit 的 libnss 库应该可以解决这个问题，Ubuntu/Debian 自带的 lib32 库并未包含 libnns，需要手工安装。测试安装过程中发现，还需要 libnspr4 库。 &lt;/p&gt; &lt;p&gt;下载依赖 deb 包&lt;/p&gt; &lt;pre name="code"&gt;wget http://mirrors.cn99.com/ubuntu/pool/main/n/nss/libnss3-1d_3.12.0.3-0ubuntu5_i386.deb
wget http://mirrors.cn99.com/ubuntu/pool/main/n/nspr/libnspr4-0d_4.6.6-3_i386.deb
wget http://mirrors.cn99.com/ubuntu/pool/main/n/nspr/libnspr4-0d_4.7.1+1.9-0ubuntu0.8.04.5_i386.deb
&lt;/pre&gt; &lt;p&gt;手工解 deb 包&lt;/p&gt; &lt;pre name="code"&gt;mkdir airlib
dpkg -x libnss3-1d_3.12.0.3-0ubuntu5_i386.deb
dpkg -x libnspr4-0d_4.6.6-3_i386.deb
dpkg -x libnspr4-0d_4.7.1+1.9-0ubuntu0.8.04.5_i386.deb
&lt;/pre&gt; &lt;p&gt;手工安装  deb 包&lt;/p&gt; &lt;pre name="code"&gt;sudo cp -a airlib/usr/lib/* /usr/lib32
&lt;/pre&gt; &lt;p&gt;重新运行 air 安装文件，顺利安装完毕。&lt;/p&gt; &lt;p&gt; 测试了 &lt;a href="http://www.twhirl.org/" mce_href="http://www.twhirl.org/" alt="twhirl - a client for twitter"&gt;twhirl&lt;/a&gt;，顺利安装启动，但无法获取信息，可能和 nss 的库有关。 &lt;/p&gt; &lt;p&gt; &lt;img src="http://webwhere.cn/assets/2008/9/18/twhirl-on-hardy-64bit.png" mce_src="/assets/2008/9/18/twhirl-on-hardy-64bit.png" alt="twhirl screenshot on Ubuntu hardy 64bit linux" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1944742404523222468?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1944742404523222468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1944742404523222468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1944742404523222468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1944742404523222468'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/09/how-to-install-adobe-air-11-beta-on.html' title='How to Install Adobe air 1.1 beta on Ubuntu hardy 64bit'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-3366079386743739387</id><published>2008-09-08T14:56:00.000+08:00</published><updated>2008-12-10T01:23:51.479+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='broswer'/><category scheme='http://www.blogger.com/atom/ns#' term='wine'/><title type='text'>Linux下通过wine安装google chrome</title><content type='html'>&lt;p&gt; Chrome还没有linux下完整可用的版本，如果你有兴趣编译，这里有&lt;a href="http://sites.google.com/a/chromium.org/dev/developers/how-tos/build-instructions-linux" mce_href="http://sites.google.com/a/chromium.org/dev/developers/how-tos/build-instructions-linux"&gt;linux下Chrome的编译指南&lt;/a&gt;。 &lt;/p&gt; &lt;p&gt; 目前在linux下跑Chrome，wine成了唯一可能的方式，幸运的是，通过geek们的尝试，Chrome已经可以用wine驱动。 &lt;/p&gt; &lt;h3&gt;安装 wine&lt;/h3&gt; &lt;p&gt; 首先需要安装 wine 的最新版本 1.1.3。如果你是 Ubuntu 用户： &lt;/p&gt; &lt;pre name="code"&gt;wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
&lt;/pre&gt; &lt;p&gt; &lt;b&gt;For Ubuntu Hardy (8.04):&lt;/b&gt; &lt;/p&gt; &lt;pre name="code"&gt;sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/hardy.list -O /etc/apt/sources.list.d/winehq.list
&lt;/pre&gt; &lt;p&gt; &lt;b&gt;For Debian Etch (4.0):&lt;/b&gt; &lt;/p&gt; &lt;pre name="code"&gt;sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/etch.list -O /etc/apt/sources.list.d/winehq.list
&lt;/pre&gt; &lt;pre name="code"&gt;sudo apt-get update
sudo aptitude install wine
&lt;/pre&gt; &lt;h3&gt;安装 winetricks&lt;/h3&gt; &lt;pre name="code"&gt;wget http://www.kegel.com/wine/winetricks
sudo cp winetricks /usr/local/bin
&lt;/pre&gt; &lt;h3&gt;安装Chrome的依赖包&lt;/h3&gt; &lt;pre name="code"&gt;winetricks riched20 riched30 flash
winetricks allfonts
&lt;/pre&gt; &lt;h3&gt;安装Chrome&lt;/h3&gt; &lt;pre name="code"&gt;wget http://gpdl.google.com/chrome/install/149.27/chrome_installer.exe
wine chrome_installer.exe
&lt;/pre&gt; &lt;h3&gt;启动Chrome&lt;/h3&gt; &lt;p&gt; Chrome安装完成后，无法直接启动，需要一点 hacking，我使用下面的小脚本代替 wine chrome 启动： &lt;/p&gt; &lt;pre name="code"&gt;$ cat ~/bin/chrome
#!/bin/sh
Exec=env WINEPREFIX="$HOME/.wine" wine "C:\\windows\\profiles\\$LOGNAME\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe" --new-http --in-process-plugins
&lt;/pre&gt; &lt;p&gt; Note: HTTPS 无法正常工作。 &lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.winehq.org/site/download-deb" mce_href="http://www.winehq.org/site/download-deb"&gt;Wine for Ubuntu, Debian, and Debian-based distributions&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.winehq.org/winetricks" mce_href="http://wiki.winehq.org/winetricks"&gt;winetricks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.myscienceisbetter.info/2008/09/install-google-chrome-on-linux-using-wine.html" mce_href="http://www.myscienceisbetter.info/2008/09/install-google-chrome-on-linux-using-wine.html"&gt;Install Google Chrome on Linux using wine&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-3366079386743739387?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/3366079386743739387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=3366079386743739387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3366079386743739387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3366079386743739387'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/09/linuxwinegoogle-chrome.html' title='Linux下通过wine安装google chrome'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-4393067295989055319</id><published>2008-08-02T07:24:00.000+08:00</published><updated>2008-12-10T01:30:27.225+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observer'/><category scheme='http://www.blogger.com/atom/ns#' term='SNS'/><title type='text'>我看 SNS 和 facebook</title><content type='html'>&lt;p&gt;
缘起在广州豆瓣上和&lt;a href="http://www.douban.com/people/phoenixlaw/"&gt;PH囧ENIX&lt;/a&gt; 的&lt;a href="http://www.douban.com/group/topic/3840727/"&gt;讨论&lt;/a&gt;。
&lt;/p&gt;

&lt;p&gt;
SNS 的根本是人何人之间的关系，剥离这层关系，剩下名字和技术是空洞的。即便没有 "Web 2.0"， "AJAX" 这些时髦(看到这个词的时候，镜头要拉到三年前)的词语，也会出现 Axax，真正推动技术的是背后的需求，是互联网发展的趋势。
&lt;/p&gt;
　　
&lt;p&gt;
早期的 SNS，是用来维持线下朋友关系的网络，比如出现于 95 年的 classmates.com，sixdegrees.com，国内有 chinaren 是陈一&lt;em style="text-decoration: line-through;"&gt;州&lt;/em&gt;舟当年的模仿作品。
&lt;/p&gt;
　　
&lt;p&gt;
当前的 SNS，是用来分享和维护关系网的工具。比如国内的校内，5gsns，真实的线下关系是网站的动力源。
&lt;/p&gt;

&lt;p&gt;
把镜头再拉近聚焦到 facebook，它已经完全超越了 SNS 的概念，成为平台。&lt;a href="http://developers.facebook.com/"&gt;APP&lt;/a&gt;的横空出世大获成功，截至到目前，已经超过 14,000 个 APP 应用，最近 F8 上&lt;a href="http://developers.facebook.com/fbconnect.php"&gt;Connect&lt;/a&gt;的推出，已经确立了 facebook 的互联网平台提供商地位，说它是下一个 google，毫不夸张。
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-4393067295989055319?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/4393067295989055319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=4393067295989055319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4393067295989055319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4393067295989055319'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/08/sns-facebook.html' title='我看 SNS 和 facebook'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-47689968475406453</id><published>2008-07-31T18:56:00.000+08:00</published><updated>2008-12-10T01:30:27.226+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observer'/><category scheme='http://www.blogger.com/atom/ns#' term='IM'/><title type='text'>QQ for linux, for the future</title><content type='html'>&lt;p class="imgleft"&gt;
&lt;img src="/assets/2008/7/31/qq-for-linux.gif" alt="QQ for linux logo" /&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://im.qq.com/qq/linux/"&gt;QQ for linux &lt;/a&gt;终是放出了。&lt;/p&gt;

&lt;p&gt;
腾讯多年来一直没有开发基于 linux 版的 QQ，linux 用户以前只能使用 gaim QQ/LumaQQ/eva 等开源 QQ 实现。腾讯做为一家商业公司，从纯粹的短期利益角度出发，这么做无可厚非，也无关道德，不过，只是当年施加压力给分析 QQ 协议的 gaim qq 老爹以及三天两头修改协议未免显得无耻和小气。无论如何，今天 QQ for linux 的推出，还是非常正面的，至少我在给 MM 推荐linux 的时候，可以很放心的说，linux 下也可有 QQ。
&lt;/p&gt;

&lt;p&gt;用腾讯自己的话说：&lt;/p&gt;

&lt;pre name="code"&gt;
Tencent QQ for Linux是腾讯公司把握市场需求，针对日渐增多的Linux用户，推出的基于Linux的即时通讯软件。
&lt;/pre&gt;

&lt;p&gt;
可见市场占有率才是硬道理，geek 们即便在这个全球化了的新经济时代也永远只能是小众。很有意思的是，QQ for linux 的 logo 上的宣传口号是 “for linux, for the future!"，Ubuntu 老爹毅然决然的杀入 Linux 市场，看中的也就是这个 future， 微软被迫拥抱开源同样如此，没有人能够战胜未来，在趋势面前，你会发现垂死抵抗直如螳臂挡车，最后剩下的只会是历史车轮后躁动的飞灰，而那，是留给历史学家的。
&lt;/p&gt;

&lt;p&gt;
废话不多说，放两张截图
&lt;/p&gt;

&lt;p&gt;
&lt;img src="/assets/2008/7/31/qq-for-linux-receive-custom-emotion-and-sceenshot.png" /&gt;
&lt;img src="/assets/2008/7/31/qq-for-linux-receive-main.png" /&gt;
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-47689968475406453?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/47689968475406453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=47689968475406453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/47689968475406453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/47689968475406453'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/qq-for-linux-for-future.html' title='QQ for linux, for the future'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-7083105161443719469</id><published>2008-07-15T16:58:00.000+08:00</published><updated>2008-12-10T01:33:22.229+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CounchDB'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Erlang'/><title type='text'>Ubuntu hardy 上安装 CouchDB</title><content type='html'>&lt;p&gt;
&lt;a href="http://incubator.apache.org/couchdb/"&gt;&lt;img src="/assets/2008/7/15/couchdb-logo.png" alt="CouchDB" /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
下载
&lt;/p&gt;

&lt;pre name="code"&gt;
wget http://www.apache.org/dist/incubator/couchdb/0.8.0-incubating/apache-couchdb-0.8.0-incubating.tar.gz
tar zxvf apache-couchdb-0.8.0-incubating.tar.gz
cd apache-couchdb-0.8.0-incubating.tar.gz
&lt;/pre&gt;

&lt;pre name="code"&gt;
sudo aptitude install automake autoconf libtool build-essential erlang libicu libicu-dev libreadline5-dev checkinstall libmozjs-dev
&lt;/pre&gt;

&lt;pre name="code"&gt;
./configure --sysconfdir=/etc --localstatedir=/var
make &amp;&amp; sudo make install 
&lt;/pre&gt;

&lt;pre name="code"&gt;
sudo adduser couchdb --home /var/lib/couchdb/ --disabled-password
&lt;/pre&gt;

&lt;pre name="code"&gt;
sudo chown -R couchdb /var/lib/couchdb
sudo chown -R couchdb /var/log/couchdb
&lt;/pre&gt;

&lt;pre name="code"&gt;
sudo /etc/init.d/couchdb start
&lt;/pre&gt;

&lt;p&gt;
浏览器打开 http://localhost:5984/_utils/index.html，访问 CouchDB 自带的管理工具。

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://incubator.apache.org/couchdb/docs/installation.html"&gt;CouchDB Installation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-7083105161443719469?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/7083105161443719469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=7083105161443719469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7083105161443719469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7083105161443719469'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/ubuntu-hardy-couchdb.html' title='Ubuntu hardy 上安装 CouchDB'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5790778574340397455</id><published>2008-07-15T07:24:00.000+08:00</published><updated>2008-12-10T01:28:05.811+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>开源和商业模式</title><content type='html'>&lt;p&gt;
原文发布于 szlug，是szlug聚会时和 xning 兄讨论后的一些思考。
&lt;/p&gt;

&lt;p&gt;
&lt;a rel="bookmark" href="http://groups.google.com/group/szlug/browse_thread/thread/fcf7f91be0f7f833#"&gt;
szlug&lt;abbr class="published" title="星期一, 13 七月 2008 14:00:00 +0800"&gt;周末&lt;/abbr&gt;聚会&lt;/a&gt;回来后，回来之后一直在想&lt;a href="http://en.wikipedia.org/wiki/Opensource"&gt;开源软件&lt;/a&gt;和商业模式这档子事情。
&lt;/p&gt;

&lt;p&gt;
首先&lt;a href="http://en.wikipedia.org/wiki/Free_software"&gt;自由&lt;/a&gt;不是免费，Richard Stallman 说：
&lt;/p&gt;

&lt;pre name="code"&gt;
"Free software is a matter of liberty, not price. To understand the
concept, you should think of 'free' as in 'free speech', not as in
'free beer'"。
&lt;/pre&gt;

&lt;p&gt;
自由不是免费，理解偏差不代表原意的异化。
&lt;/p&gt;

&lt;p&gt;
自由软件允许任何人在同样自由的条款下使用，学习，修改，拷贝，重发布。开源和商业模式并不冲突，开源从来不排斥商业模式。如何建立开源的商业模式呢，一般都是基于软件附加价值，如支持，培训，定制，集成，认证等。基于软件授权的商业模式和开源是不相容的。基于此比较成功的公司有，MySQL, Zend。国外也有很有小型顾问公司提供开源支持，像 MySQL、rails 特别多。
&lt;/p&gt;

&lt;p&gt;
除去自由软件，我们日常接触最多的是开源软件，自由软件是开源软件的子集。在我看来，自由软件和商业更近，自由软件最主要的特点是开发模式的变化，所谓集市和教堂，围绕软件社区的建立，带来的效用很明显，加速软件开发，节省宣传费用，自由软件背后的公司可以基于开源成果建立商业版本或者是解决方案，成功案例有，XFree86,eclipse, Zope 等。
&lt;/p&gt;

&lt;p&gt;
MichaelBibby 的 iredmail 就属于邮件类别的解决方案，而yahoo 收购 Zimbra(同样也是做邮件整体解决方案的) 可是花了 350M 美刀。
&lt;/p&gt;

&lt;p&gt;
所以，我的关点是，开源从来不排斥商业模式，如果你开源的目的是未来利润（利润从没有贬意），而开源后并未带来预期的成功，那么我想需要考虑的更多的是产品的定位，而不是因此否决开源不适合商业。
&lt;/p&gt;

&lt;p&gt;
另外我同意李的低利润说，对于很多软件来说是如此的，所以 IBM 才会早早转向服务，google 做平台，靠长尾的量赚钱。从 1983 自由软件至今，软件行业已经被改变，门槛也已经拔高，软件生产的趋势一定和传统产业的生产线没有太大区别，单纯靠产品赚钱，需要的恐怕是大智慧。
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5790778574340397455?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5790778574340397455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5790778574340397455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5790778574340397455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5790778574340397455'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/blog-post_15.html' title='开源和商业模式'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2043637774132291225</id><published>2008-07-14T06:43:00.000+08:00</published><updated>2008-12-10T01:29:27.909+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='虚拟机'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><title type='text'>KVM guest 连接 USB 设备临时解决办法</title><content type='html'>&lt;p&gt;
默认的 kvm guest 启动并未模拟 usb, 模拟 usb，需要启动时加上 -usb 参数，qemu 为 guest模拟一个 8 port 的 Intel SB82371 UHCI USB 控制器。
&lt;/p&gt;

&lt;pre name="code"&gt;
kvm -hda /path/to/your/kvm/image/hda.qcow2
&lt;/pre&gt;

&lt;p&gt;
在使用 USB 之前，需要找出 USB 的设备 ID，如：
&lt;/p&gt;

&lt;pre name="code"&gt;
$lsusb
Bus 007 Device 002: ID 05ac:8502 Apple Computer, Inc.
&lt;/pre&gt;

&lt;p&gt;
输出中的 05ac:8502，分别为 &amp;lt;VendorID&amp;gt;:&amp;lt;ProductID&amp;gt;
&lt;/p&gt;

&lt;p&gt;
启动 guest 系统后， CTRL + ALT + 2 转到 Monitor ，手工加载 usb 设备(用上面的输出替换)：
&lt;/p&gt;

&lt;pre name="code"&gt;
#usb_add host:&amp;lt;VendorID&amp;gt;:&amp;lt;ProductID&amp;gt;
Could not open /proc/bus/usb/devices
&lt;/pre&gt;

&lt;p&gt;
回到 host 系统发现 /proc/bus/usb/devices 文件不存在，google 后发现&lt;a href="https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/156085"&gt;相关的 Ubuntu BUG report&lt;/a&gt;。Ubuntu 等发行版早将 /proc/bus/usb/devices deprecated 一年之久，hardy 已经完全转向 /dev/bus/usb/devices，相比较 proc 获得有更灵活的权限控制、安全性更高。Ubuntu bug report 中给出了 workaround。
&lt;/p&gt;

&lt;p&gt;
编辑 '/etc/init.d/mountdevsubfs.sh' 取消 40 行后的相应注视：
&lt;/p&gt;

&lt;pre name="code"&gt;
 # Magic to make /proc/bus/usb work
  #
  mkdir -p /dev/bus/usb/.usbfs
  domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
  ln -s .usbfs/devices /dev/bus/usb/devices
  mount --rbind /dev/bus/usb /proc/bus/usb
&lt;/pre&gt;

&lt;p&gt;
执行这个脚本。
&lt;/p&gt;

&lt;pre name="code"&gt;
$ sudo /etc/init.d/mountdevsubfs.sh start
&lt;/pre&gt;

&lt;p&gt;
用此法成功加在招行 USB key，可以进入专业版，实际实验查帐等操作正常，转帐验证时候失败。
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:qemu#using_an_usb_device_in_qemu"&gt;Hardware virtualization with QEMU&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2043637774132291225?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2043637774132291225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2043637774132291225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2043637774132291225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2043637774132291225'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/kvm-guest-usb.html' title='KVM guest 连接 USB 设备临时解决办法'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8928432190981702750</id><published>2008-07-12T02:09:00.000+08:00</published><updated>2008-12-10T01:29:27.911+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='虚拟机'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><title type='text'>手工配置 Ubuntu hardy KVM 网络</title><content type='html'>&lt;p class="imageleft"&gt;
&lt;img src="/assets/2008/7/11/kvm_network_settings.png" /&gt;
&lt;a href="http://webwhere.cn/2008/7/7/shorthand-of-install-kvm-on-ubuntu-hardy"&gt;Ubuntu hardy 中安装 KVM 速记&lt;/a&gt;中网络配置采用 KVM 默认方式，此法简单易用。
&lt;/p&gt;

&lt;h3&gt;用户网络&lt;/h3&gt;
&lt;h4&gt;使用情形&lt;/h4&gt;

&lt;ul&gt;
    &lt;li&gt;最简易的从虚拟机访问宿主，Internet，和其它本地网络资源&lt;/li&gt;
    &lt;li&gt;你不需要从一个 guest 访问另外一个 guest&lt;/li&gt;
    &lt;li&gt;你不追求最高性能&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
    警告：用户网络不支持部分网络特性如 ICMPP，影响一些程序(如 ping) 无法完全正常工作。
&lt;/p&gt;

&lt;h4&gt;前置需求&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;你需要 kvm 启动并运行&lt;/li&gt;
  &lt;li&gt;非 root 用户运行需要拥有 /dev/kvm rw 权限&lt;/li&gt;
  &lt;li&gt;如果你需要访问 Internet 或本地网络，你的宿主系统必须可以访问 Internet 和本地网络&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;解决方案&lt;/h4&gt;

&lt;p&gt;
以参数 "-net nic -net user" 运行 kvm , 例如: 
&lt;/p&gt;
&lt;pre name="code"&gt;
kvm -hda /path/to/hda.img -net nic -net user
&lt;/pre&gt;

&lt;h4&gt;注意&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;IP地址由qemu 自带的 DHCP 服务自动分配&lt;/li&gt;
  &lt;li&gt;如果你在一个宿主上运行多 guest 系统，你无法为每个 guest 指定不同的 MAC 地址&lt;/li&gt;
  &lt;li&gt;你仍可访问一个指定的端口，你可以使用 "redir" 选项(译者按：启动 kvm 时)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;公共网桥&lt;/h3&gt;

&lt;p&gt;
警告: 下面的方法，不适用于大部分的无限驱动，因为他们不支持 bridging 功能。
&lt;/p&gt;

&lt;h4&gt;使用案例&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;你不想指定 IP 地址到你的虚拟机器并且使它们可以从本地网络访问&lt;li&gt;
  &lt;li&gt;希望性能于虚拟机无关&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;前置需求&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;kvm 已启动并运行&lt;/li&gt;
  &lt;li&gt;非 root 用户运行需要拥有 /dev/kvm rw 权限&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
停止当前网络接口&lt;/p&gt;

&lt;pre name="code"&gt;
sudo /etc/init.d/networking restart
&lt;/pre&gt;

&lt;p&gt;
编辑 /etc/network/interfaces 设置 bridge 接口，注释或替换原配置为(修改为对应你网络的配置)：
&lt;/p&gt;

&lt;pre name="code"&gt;
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.0.10
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off
&lt;/pre&gt;

&lt;p&gt;
或使用 DHCP(对 laptop 比较有用，但不能使用无线，囧)
&lt;/p&gt;

&lt;pre name="code"&gt;
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off
&lt;/pre&gt;

&lt;p&gt;
这将用来创建虚拟接口 br0
&lt;/p&gt;

&lt;p&gt;
重启网络
&lt;/p&gt;

&lt;pre name="code"&gt;
sudo /etc/init.d/networking restart
&lt;/pre&gt;

&lt;p&gt;
手工或用下面的脚本创建 MAC 地址
&lt;/p&gt;

&lt;pre name="code"&gt;
#!/bin/bash
# generate a random mac address for the qemu nic
# shell script borrowed from user pheldens @ qemu forum
echo $(echo -n DE:AD:BE:EF ; for i in `seq 1 2` ;
do echo -n `echo ":$RANDOM$RANDOM" | cut -n -c -3` ;done)
&lt;/pre&gt;

&lt;p&gt;
注：原脚本用的环境为 /bin/sh，ubuntu 上出错，所以这里我替换为 /bin/bash
&lt;/p&gt;

&lt;p&gt;
用生成的 MAC 地址替换下面的 $macaddress 启动 KVM
&lt;/p&gt;

&lt;pre name="code"&gt;
kvm -hda /path/to/hda.img -net nic,macaddr=$macaddress -net tap
&lt;/pre&gt;

&lt;p&gt;
现在可以 ping 通本地网络了，:-)
&lt;/p&gt;

&lt;div&gt;
ref links:
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://kvm.qumranet.com/kvmwiki/Networking"&gt;Setting guest network&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://help.ubuntu.com/community/KVM"&gt;KVM on Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8928432190981702750?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8928432190981702750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8928432190981702750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8928432190981702750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8928432190981702750'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/ubuntu-hardy-kvm_12.html' title='手工配置 Ubuntu hardy KVM 网络'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-654456256382977872</id><published>2008-07-09T06:49:00.000+08:00</published><updated>2008-12-10T01:30:27.227+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Observer'/><category scheme='http://www.blogger.com/atom/ns#' term='SNS'/><title type='text'>校内网的“开放”平台</title><content type='html'>&lt;p&gt;
&lt;img src="/assets/2008/7/8/xiaonei_open_platform.png" /&gt;
&lt;/p&gt;

&lt;p&gt;
2007 年六月24 日，&lt;a href="http://facebook.com"&gt;Facebook&lt;/a&gt;推出&lt;a href="http://en.wikipedia.org/wiki/Facebook#Platform"&gt;Facebook Open Platform&lt;/a&gt;，大获成功，被媒体誉为网络操作系统，截至到目前，已经有超过 14,000 个应用。一年零一周后，被称为中国版的Facebook&lt;a href="http://www.xiaonei.com"&gt;校内网&lt;/a&gt;推出其&lt;a href="http://www.xiaonei.com/developerIndex.jsp"&gt;校内开放平台&lt;/a&gt;，校内一贯以模仿Facebook著称，此次却迈出大胆的一步，在&lt;a href="http://app.xiaonei.com/developers/appPrivacy.do"&gt;协议&lt;/a&gt;上勇敢的创新，或者称之为本土化。
&lt;/p&gt;

&lt;p&gt;
此协议将中文互联网巨头们的一贯作风和嘴脸表现的淋漓尽致，达到了梦寐已久的高潮，特摘录存照。
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2.3 其已经取得开发作品（即应用程序）其他权利人（如有）的书面授权，并已与前述权利人就权益分配达成内部协议，保证其在将应用程序提交、上传至校内网前对开发作品拥有充分、完整、排他的所有权及知识产权，并可通过校内网插件应用程序开发许可，&lt;strong&gt;将上述产品及产品权利转让给校内网；&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;校内网保留对以下类型的插件应用程序自有开发和应用权利，即开发者所设计、开发的插件应用程序不得涉及一下领域，否则校内网有权不对该类程序给予审核通过，直至取消该开发者开发许可资格：
1、和校内网主营业务有冲突的；
2、通过校内插件应用程序引导用户注册第三方网站或服务的；
3、&lt;strong&gt;在校内插件应用程序内包含外部链接的&lt;/strong&gt;；
4、涉及以下领域的插件应用程序：招聘、旅游、音乐、个人相册。
  &lt;/li&gt;
  &lt;li&gt;
   六、插件应用程序的权利归属
&lt;strong&gt;1. 开发者在活动校内网插件应用程序开发许可证、且将其开发的作品提供给校内网，即视为其已经将基于作品的全部权利，包括但不限于所有权及知识产权永久性、不可撤销的、独家让渡给校内网。&lt;/strong&gt;
2. 经开发者创作完成并提交给校内网的应用程序，校内网在全世界范围内享有免费的、永久性的、不可撤销的权利和许可，以使用、复制、出版、发行、以原有或其他形式进行改编、转载、翻译、传播、表演和展示此等内容（整体或部分）。&lt;strong&gt;同时开发者承诺，不就上述作品以及上述作品的改编作品对任何第三方进行任何形式的许可或授权使用&lt;/strong&gt;。
3. &lt;strong&gt;经开发者创作而产生的文本、图片、图形、音频和/ 或视频等资料的所有权及知识产权归属于校内网&lt;/strong&gt;，未经校内网同意，开发者保证不以任何形式直接或间接发布、播放、出于播放或发布目的而改编或再发行，或者用于其他任何商业目的。同时保证不许可任何第三方从事上述行为。 
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href="http://xiaonei.com/getuser.do?id=243357028"&gt;李大维&lt;/a&gt;说的好，&lt;a href="http://group.xiaonei.com/GetThread.do?id=326584686&amp;tribeId=237768885"&gt;签个卖身契至少有主人养，签了校内网开放平台开发者协议后呢？&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt;: 2008-07-09 14:35, 校内已对协议中最引人争议的条款进行了修订，080709版第六条：
&lt;/p&gt;

&lt;pre name="code"&gt;
六、插件应用程序的权利归属
插件应用程序的权利归属于开发者或开发商。 
&lt;/pre&gt;

&lt;p&gt;
感谢为此做出努力的朋友，你们让我看到中文互联网走向开放的勇气和义无反顾的态度。
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-654456256382977872?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/654456256382977872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=654456256382977872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/654456256382977872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/654456256382977872'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/blog-post.html' title='校内网的“开放”平台'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5489425169909220445</id><published>2008-07-08T19:05:00.000+08:00</published><updated>2008-12-10T01:29:27.912+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='虚拟机'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><title type='text'>重新调整 qemu 镜像文件大小一法</title><content type='html'>&lt;p&gt;
qemu 的镜像文件格式 raw, qcow2 采用了文件系统的打孔技术，镜像文件实际大小同实际写入的数据扇节相关。因为担心硬盘空间不足，之前创建的镜像文件仅为 2G，现在看来完全没有必要，尝试重新调整到 10G。
&lt;/p&gt;

&lt;p&gt;
qemu 没有提供调整硬盘镜像文件的工具，google "qemu disk resize" 说法各异。我的 guest 文件系统为 NTFS，按照此法调整成功，记录一下：
&lt;/p&gt;

&lt;p&gt;
转换为 raw 格式
&lt;p&gt;

&lt;pre name="code"&gt;
$qemu-img convert hda.qcow2 -O raw hda.raw
&lt;/pre&gt;

&lt;p&gt;
增大raw镜像文件到 10G
&lt;/p&gt;

&lt;pre name="code"&gt;
$dd if=/dev/zero of=hda.raw seek=10 obs=1GB count=0
&lt;/pre&gt;

&lt;p&gt;
修正 NTFS BPB
&lt;/p&gt;

&lt;pre name="code"&gt;
$hexedit hda.raw
&lt;/pre&gt;

&lt;p&gt;
转到 7E00: 7E00 &lt;br/&gt;
替换 7E1A 的 80 为 FF&lt;br/&gt;
保存退出：Ctrl-x --&gt; y
&lt;/p&gt;

&lt;p&gt;
用 &lt;a href="http://gparted.sourceforge.net/livecd.php"&gt;gparted livecd&lt;/a&gt; 启动 guest 重新调整 NTFS 分区大小
&lt;/p&gt;

&lt;p&gt;
$kvm -hda hda.raw -cdrom gparted-livecd-0.3.4-11.iso -boot d
&lt;/p&gt;

&lt;p&gt;
重启 windows，windows 将进入自检
&lt;/p&gt;

&lt;pre name="code"&gt; 
$qemu hda system.raw
&lt;/pre&gt;

&lt;p&gt;
重新转换为 qcow2 格式
&lt;/p&gt;

&lt;pre name="code"&gt;
$qemu-img convert hda.raw -O qcow2 hda.qcow2
&lt;/pre&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://kev.coolcavemen.com/2007/04/how-to-grow-any-qemu-system-image/"&gt;How-to grow any Qemu system image&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://tjworld.net/wiki/Howto/ResizeQemuDiskImages"&gt;How To Resize (expand) QEMU qcow/qcow2/raw Disk Images ?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5489425169909220445?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5489425169909220445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5489425169909220445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5489425169909220445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5489425169909220445'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/qemu.html' title='重新调整 qemu 镜像文件大小一法'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-669933842184454520</id><published>2008-07-07T23:50:00.000+08:00</published><updated>2008-12-10T01:29:27.914+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='虚拟机'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><title type='text'>Ubuntu hardy 中安装 KVM 速记</title><content type='html'>&lt;p&gt;
&lt;img src="/assets/2008/7/7/kvm_hit_the_road.jpg" alt="kvm hit the road" /&gt;
&lt;/p&gt;

&lt;h3&gt;介绍&lt;/h3&gt;
&lt;p&gt;
KVM(Kernel-based Virtual Machine) 是 X86 平台上基于 linux kernel 的全虚拟化技术，通过 &lt;a href="http://en.wikipedia.org/wiki/X86_virtualization#Intel_VT_.28IVT.29"&gt;Intel-VT&lt;/a&gt; 和 &lt;a href="http://en.wikipedia.org/wiki/X86_virtualization#AMD_virtualization_.28AMD-V.29"&gt;AMD-V&lt;/a&gt; 技术实现全虚拟化。Linux kernel 自 &lt;a href="http://kerneltrap.org/node/7670"&gt;2.6.20&lt;/a&gt; 已经包含了 KVM，各大发行版也陆续提供支持。
&lt;/p&gt;

&lt;h3&gt;准备工作&lt;/h3&gt;
&lt;p&gt;
本文以  Ubuntu hardy 为例记录安装过程。
&lt;/p&gt;

&lt;h4&gt;系统环境&lt;/h4&gt;
&lt;pre name="code"&gt;
OS: Ubuntu hardy 8.04 64bit
Kernel: 2.6.24-19-generic SMP x86_64 GNU/Linux
Hardware: Macbook Pro 3rd(Santa rose), Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz
&lt;/pre&gt;

&lt;h4&gt;检查 CPU&lt;/h4&gt;
&lt;p&gt;
KVM 需要 CPU 支持原生虚拟以得到最佳性能，官方文档称当 CPU 不支持原生虚拟时，将自动回退到 qemu 模拟方式。Ubuntu 中如果系统不支持原生虚拟，KVM 将拒绝启动，检查 CPU 是否支持原生虚拟：
&lt;/p&gt;

&lt;pre name="code"&gt;
$egrep '(vmx|svm)' /proc/cpuinfo
&lt;/pre&gt;

&lt;p&gt;
有输出即说明 CPU 支持原生虚拟。
&lt;/p&gt;

&lt;h4&gt;安装 KVM&lt;/h3&gt;
&lt;pre name="code"&gt;
$sudo aptitude install kvm
&lt;/pre&gt;

&lt;h3&gt;安装 guest 系统&lt;/h3&gt;

&lt;pre name="code"&gt;
#mkdir -p /media/work/kvm/
#qemu-img create -f qcow2 /media/work/kvm/hda.qcow2 10G
#kvm -hda /media/work/kvm/hda.qcow2 -m 256 -vnc :0 -daemonize -cdrom /media/ENT/iso/Windows.XP.Professional.VLK.CN.SP2.full.iso -boot d
&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;qcow2 是 qemu 支持的硬盘镜像格式之一，支持 snapshots 以及 AES 加密，zlib 压缩，其它格式可以参考 man qemu-img&lt;/li&gt;
  &lt;li&gt;ext3、NTFS 文件系统支持打孔，只有实际写入的扇区才会占用存储空间&lt;/li&gt;
  &lt;li&gt;KVM 启动参数指定 guest 内存为 256M，以 CDROM 启动&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
kvm 以 daemon 方式运行，通过 vnc 访问：
&lt;/p&gt;

&lt;pre name="code"&gt;
$xvncviewer localhost:5900
&lt;/pre&gt;

&lt;p&gt;
Windows 安装完成后，关闭系统kvm 进程会自动关闭。如需重启：
&lt;/p&gt;

&lt;pre name="code"&gt;
#kvm -hda /media/work/kvm/hda.qcow2 -m 256 -vnc :0 -daemonize
&lt;/pre&gt;

&lt;p&gt;
系统同样可以通过 VNC 来访问。
&lt;/p&gt;

&lt;h4&gt;网络&lt;/h4&gt;
&lt;p&gt;
默认启动 kvm 或者参数 kvm -net nic -net user 将创建一个 10.0.2.0/24 的网络：
&lt;/p&gt;

&lt;pre name="code"&gt;
         QEMU VLAN      &lt;------&gt;  Firewall/DHCP server &lt;-----&gt; Internet
                           |          (10.0.2.2)
                           |
                           ----&gt;  DNS server (10.0.2.3)
                           |
                           ----&gt;  SMB server (10.0.2.4)

&lt;/pre&gt;

&lt;p&gt;
guest 系统从 10.0.2.15 开始依次分配 IP 地址，VNC 登入 Windows，系统已通过 DHCP 分配到 10.0.2.15 IP地址，Windows 系统此时已经可以正常访问网络。如果不需要提供外部服务的话，默认的网络方式已经可以，非常简便。
&lt;/p&gt;

&lt;h3&gt;links&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://kvm.qumranet.com/kvmwiki"&gt;Kernel based Virtual Machine&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://virt.kernelnewbies.org/TechOverview"&gt;http://virt.kernelnewbies.org/TechOverview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://virt.kernelnewbies.org/TechComparison"&gt;http://virt.kernelnewbies.org/TechComparison&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://virt.kernelnewbies.org/HypervisorVsLinuxBased"&gt;http://virt.kernelnewbies.org/HypervisorVsLinuxBased&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://virt.kernelnewbies.org/XenVsKVM"&gt;http://virt.kernelnewbies.org/XenVsKVM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://edin.no-ip.com/content/kvm-debian-mini-howto"&gt;http://edin.no-ip.com/content/kvm-debian-mini-howto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-669933842184454520?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/669933842184454520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=669933842184454520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/669933842184454520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/669933842184454520'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/ubuntu-hardy-kvm.html' title='Ubuntu hardy 中安装 KVM 速记'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-7193041565919501159</id><published>2008-07-07T00:10:00.000+08:00</published><updated>2008-12-10T01:32:18.154+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='file system'/><category scheme='http://www.blogger.com/atom/ns#' term='disaster recover'/><title type='text'>ext3 文件系统上恢复误删除文件</title><content type='html'>&lt;p&gt;最近手很贱，骡子辛辛苦苦驼来的 2G 文件被自杀(rm -f)了。&lt;/p&gt;

&lt;p&gt;为了表现我们还是很专业的，第一时间，保护现场：&lt;/p&gt;

&lt;pre name="code"&gt;
#umount /media/work
&lt;/pre&gt;

&lt;p&gt;
没有人含泪劝告，所以我还是要找回这个文件的，没错，即便是放弃做俯卧撑和打酱油的时间。
&lt;/p&gt;

&lt;p&gt;
google 如何恢复 ext3 文件系统中已删除的文件，感谢 Carlo Wood，写了如此强大的 &lt;a href="http://ext3grep.googlecode.com/"&gt;ext3grep&lt;/a&gt;。
这里有个 &lt;a href="http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html"&gt;How to&lt;/a&gt;。鉴于我一贯不求甚解，How To 中 BLAH BLAH BLAH 的技术细节直接掠过。
&lt;/p&gt;

&lt;h3&gt;安装ext3grep&lt;/h3&gt;
&lt;p&gt;
ext3grep 当前最新版本是 0.7.0， 编译依赖于 e2fslibs-dev 开发库。
&lt;/p&gt;

&lt;pre name="code"&gt;
#aptitude install e2fslibs-dev
#cd /tmp
#wget http://ext3grep.googlecode.com/files/ext3grep-0.7.0.tar.gz
#tar zxvf ext3grep-0.7.0.tar.gz
#cd ext3grep-0.7.0
#./configure
#make
#make install
&lt;/pre&gt;

&lt;p&gt;恢复过程：&lt;/p&gt;

&lt;pre name="code"&gt;
#ext3grep /dev/sdb2 --restore-file mule/Incoming/XXXX.mkv
&lt;/pre&gt;

&lt;p&gt;
检查当前目录，文件已经在 RESTORED_FILES 中，简单到死。
&lt;/p&gt;

&lt;p&gt;
我痛哭流涕，我要再次感谢 Carlo Wood 手贱删除了他的 ~/home 目录，由此诞生了如此强大的 ext3grep，也正是因此，我才有了继续打酱油的时间。
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-7193041565919501159?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/7193041565919501159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=7193041565919501159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7193041565919501159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7193041565919501159'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/07/ext3.html' title='ext3 文件系统上恢复误删除文件'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2890400487793417601</id><published>2008-06-25T02:32:00.000+08:00</published><updated>2008-12-10T01:34:06.424+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>ruby 可执行任意代码漏洞</title><content type='html'>&lt;p&gt;
今天看 slashdot，才知道 &lt;a href="http://www.ruby-lang.org/en/news/2008/06/20/arbitrary-code-execution-vulnerabilities"&gt;ruby 最近爆出的非常严重的漏洞&lt;/a&gt;，而我居然全然不知，出了一身冷汗，搜索订阅的 RSS 新闻，果然早有文章提起，夹杂在大量资讯中间，大约被直接忽视掉了。幸好我的项目还没有上线，以最快的速度订阅了 ruby-core 的 mailing list，下载 1.8.6 p230 开始升级。&lt;/p&gt;

&lt;p&gt;
去掉 debian 的 patches，dpkg-buildpackage 很顺利，安装过后，重启服务，随意访问了几个页面，出现 500 错误。检查 log：
&lt;/p&gt;

&lt;pre name="code"&gt;
ActionView::TemplateError (wrong argument type FalseClass (expected Proc))
&lt;/pre&gt;

&lt;pre name="code"&gt;
*** glibc detected *** /usr/bin/ruby1.8: corrupted double-linked list: 0x00000000014eb220 ***
======= Backtrace: =========
/lib/libc.so.6[0x7ff36c97e01d]
/lib/libc.so.6[0x7ff36c97e146]
/lib/libc.so.6[0x7ff36c9802cc]
...
&lt;/pre&gt;

&lt;p&gt; google 一下，发现我并不孤独，升级到 1.8.6 p230 后，都遇到了 segment fault 等问题。而奇怪的是，到目前位置，官方仍然没有一个解决方案，目前存在的解决方案和进展：
&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;Freebsd 的 ruby 维护者  Stanislav Sedov port 了部分安全更新比并&lt;a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/ruby18/files/"&gt;提交至 FreeBSD port&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;EnterpriseRuby 的  Hongli Lai 在 Stanislav Sedov 的 patch 基础上&lt;a href="http://blog.phusion.nl/assets/r8ee-security-patch-20080623-2.txt" alt="Hongli Lai's Multiple vulnerabilities (CVE-2008-{2662,2663,2664,2725,2726,2727,2728} for ruby 1.8.6 p114"&gt;做了 ruby 1.8.6 p111 的  patch&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;Linux 各大发行版，&lt;a href="https://bugs.gentoo.org/show_bug.cgi?id=225465#c18"&gt;gentoo 之前提交了一个 patch&lt;/a&gt;，今天已经被删除&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487238"&gt;Debian BUG 中已经记录此问题&lt;/a&gt;，目前还没有作出最终决定。&lt;/li&gt;
 &lt;li&gt;Robert Thau 在 ruby-talk 邮件列表中&lt;a href="http://www.ruby-forum.com/topic/157034#693278"&gt;贴了一个 patch&lt;/a&gt;，Igal Koshevoy 测试 rails 和 rspec 的测试 &lt;a href="http://www.ruby-forum.com/topic/157034#693292"&gt;未出现 segment fault&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;Igal Koshevoy  同时&lt;a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/17393"&gt;提交此 patch 到 ruby-core 列表中&lt;/a&gt;等待 review，目前 ruby core 开发者还没有给出任何反馈&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-06-25 10:00:&lt;/strong&gt;Igal Koshevoy &lt;a href="http://redmine.ruby-lang.org/issues/show/199"&gt;报告此问题到 ruby 官方 Issue 追踪系统&lt;/a&gt;，并广播至所有 ruby core 开发者，目前没有任何回应。&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-06-30: &lt;/strong&gt;Ubuntu hardy ruby 更新 1.8.6.111-2ubuntu1.1 修正了此问题&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-06-30: &lt;/strong&gt;Gentoo Upstream 已包含 ruby-1.8-revert15856.patch&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-06-30: &lt;/strong&gt;&lt;a href="http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-core/17427?17353-17585"&gt;Matt 的道歉和对 1.8 发布管理的解释&lt;/a&gt;，根据 Matt 的说法，这个漏洞不太会像 Apple 报告的造成可任意代码执行&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-07-03:&lt;/strong&gt;&lt;a href="http://redmine.ruby-lang.org/issues/show/216"&gt;Memory leaks in 1.8.6p230 and p238&lt;/a&gt;，目前看来 backport 安全更新到 p111, p114 是比较安全的做法&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-07-03:&lt;/strong&gt;&lt;a href="http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-core/17499?17353-17585"&gt; Urabe Shyouhei 计划本周发布 1.8.6、1.8.7，因为仍存在内存泄露问题遭到社区强烈反对&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-07-04:&lt;/strong&gt;好的一面是，社区提议建立 &lt;a href="http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-core/17499?17353-17585"&gt;ruby 的 CI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Update 2008-07-05:&lt;/strong&gt;&lt;a href="http://redmine.ruby-lang.org/issues/show/216#note-5"&gt;Rolando Abarca&lt;/a&gt;提供了测试内存泄露的测试用例，经本机测试表明 Ubuntu hardy 1.8.6 并未受影响。&lt;/a&gt;
&lt;/ul&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;Update 2008-08-08: &lt;/strong&gt;ruby 官方放出 &lt;a href="http://www.ruby-lang.org/en/news/2008/08/08/multiple-vulnerabilities-in-ruby/"&gt;1.8.6/ 1.8.7新版本&lt;/a&gt;, 1.8 release manger Urabe Shyouhei 认为 "I believe they are stable enough."&lt;/li&gt;
&lt;/li&gt;

Links：
&lt;ul&gt;
 &lt;li&gt;&lt;a href="http://www.zedshaw.com/rants/the_big_ruby_vulnerabilities.html"&gt;Zed Shaw, The Big Ruby Vulnerabilities&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="http://weblog.rubyonrails.com/2008/6/21/multiple-ruby-security-vulnerabilities"&gt;Jeremy Kemper, Multiple Ruby security vulnerabilities&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2890400487793417601?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2890400487793417601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2890400487793417601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2890400487793417601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2890400487793417601'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/06/ruby.html' title='ruby 可执行任意代码漏洞'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6356113798576680201</id><published>2008-06-20T07:39:00.000+08:00</published><updated>2008-12-10T01:43:20.115+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algrorithm'/><title type='text'>防作弊评分算法</title><content type='html'>&lt;p&gt;Web 2.0 网站中最常见的功能之一就是用户投票，常见的可选分值范围为 [1,2,3,4,5]，最终得分则等于用户评价的数值平均头。这种算法有个显而易见的漏洞，容易作弊，比如某内容共计一用户投了 5 分，则此项最终评分为 5。&lt;/p&gt;

&lt;p&gt;理想的效果是评价数越少，得分越低，最简单的解决办法是 &lt;a href="http://en.wikipedia.org/wiki/Bayesian_average"&gt;bayesian average&lt;/a&gt;。贝叶斯平均使得单项评分更往平均评分靠近，对评价总数低的条目更加明显。&lt;/p&gt;

&lt;pre name="code"&gt;
    b(r) = [ W(a) * a + W(r) * r ] / (W(a) + W(r)]

    r = average rating for an item
    W(r) = weight of that rating, which is the number of ratings
    a = average rating for your collection
    W(a) = weight of that average, which is an arbitrary number, but should be higher if you generally expect to have more ratings for your items; 100 is used here, for a database which expects many ratings per item
    b(r) = new bayesian rating 
&lt;/pre&gt;

&lt;pre name="code"&gt;
    b(r) = [100 * 6.50 + 3 * 10] / (100 + 3)
    b(r) = 680 / 103
    b(r) = 6.60
&lt;/pre&gt;

&lt;p&gt;
当 W(a) 足够大的时候，少量的作弊无法明显改变结果。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6356113798576680201?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6356113798576680201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6356113798576680201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6356113798576680201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6356113798576680201'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/06/blog-post.html' title='防作弊评分算法'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-150183055278784835</id><published>2008-06-18T18:59:00.000+08:00</published><updated>2008-12-10T01:34:30.401+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>在 lenny 上降级 ruby 解决 rails 2.0 不兼容 ruby 1.8.7 问题</title><content type='html'>&lt;p&gt;
production 系统用的是 lenny，前两天 upgrade 了一把，ruby 1.8.7，当时并未在意，直到今天 cap deploy 后，部分页面出错，检查了一把，代码没问题，看来应该是升级到 1.8.7 后出现的问题了。google 了一番，的确如此：

 &lt;ul&gt;
   &lt;li&gt;&lt;a href="http://www.redmine.org/issues/show/1457"&gt;Undefined method "length"&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484351"&gt;rails: breaks with ruby 1.8.7&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

&lt;/p&gt;

&lt;p&gt;
Debian bug#484351 中有人指出最近的 rails 2.1.0 修正了1.8.7 兼容问题，事实上&lt;a href="http://rubyonrails.org/down"&gt;官方下载页面明确指出了 rails 还不兼容 ruby 1.8.7&lt;/a&gt;，看来升级到 rails 2.1.0 并不能解决这个问题，只能降级 ruby 了。
&lt;/p&gt;

&lt;p&gt;
好在 debian 中还有 ruby 1.8.6 的 source，自己动手 build 吧。
&lt;pre name="code"&gt;
wget http://debian.cn99.com/debian/pool/main/r/ruby1.8/ruby1.8_1.8.6.114-2.diff.gz
wget http://debian.cn99.com/debian/pool/main/r/ruby1.8/ruby1.8_1.8.6.114.orig.tar.gz
tar zxvf ruby1.8_1.8.6.114.orig.tar.gz
gzip -d ruby1.8_1.8.6.114-2.diff.gz
cd ruby-1.8.6-p114
aptitude build-dep ruby
dpkg-buildpackage
cd ../
dpkg -i --force-all irb1.8_1.8.6.114-2_all.deb libopenssl-ruby1.8_1.8.6.114-2_amd64.deb libreadline-ruby1.8_1.8.6.114-2_amd64.deb libruby1.8_1.8.6.114-2_amd64.deb rdoc1.8_1.8.6.114-2_all.deb ruby1.8_1.8.6.114-2_amd64.deb ruby1.8-dev_1.8.6.114-2_amd64.deb ruby1.8-elisp_1.8.6.114-2_all.deb
&lt;/pre&gt;

降级到 ruby 1.8.6 后 mongrel 的依赖出现问题，同样需要 rebuild，好在这个时候重启 mongrel，问题已经解决了。

如果希望能够解决 mongrel  的依赖问题的话：
&lt;pre name="code"&gt;
apt-get source libsetup-ruby
cd libsetup-ruby-3.4.1
dpkg-buildpackage
cd ../
dpkg -i libsetup-ruby1.8_3.4.1-4_all.deb
apt-get source ruby-pkg-tools
cd ruby-pkg-tools-0.13
dpkg-buildpackage
cd ../
dpkg -i  ruby-pkg-tools_0.13_all.deb
&lt;/pre&gt;

rebuild 需要满足 rdoc 包，rebuild rdoc 的话需要一堆的依赖，我偷懒了一把 
&lt;pre name="code"&gt;
ln -s /usr/bin/rdoc1.8 /usr/bin/rdoc
&lt;/pre&gt;

&lt;pre name="code"&gt;
apt-get source mongrel
cd mongrel-1.1.5
dpkg-buildpackage
cd ../
dpkg -i  mongrel_1.1.5-2_amd64.deb
&lt;/pre&gt;

依赖解决后，需要 hold  ruby 1.8.6 的包，防止 upgrade 的时候再次升级。
&lt;pre name="code"&gt;
aptitude hold irb1.8 libopenssl-ruby1.8 libreadline-ruby1.8 libruby1.8 mongrel rdoc1.8 ruby1.8 ruby1.8-dev ruby1.8-elisp
&lt;/pre&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-150183055278784835?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/150183055278784835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=150183055278784835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/150183055278784835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/150183055278784835'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/06/lenny-ruby-rails-20-ruby-187.html' title='在 lenny 上降级 ruby 解决 rails 2.0 不兼容 ruby 1.8.7 问题'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8985131263773334707</id><published>2008-06-13T07:17:00.000+08:00</published><updated>2008-12-10T01:34:30.402+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>rails tips: 动态载入 JavaScript 文件</title><content type='html'>&lt;p&gt;
rails 中一般的 JavaScript 机制在 layout 中用 javascript_include_tag 载入需要的脚本文件，对默认整站需要的脚本文件来说很方便，但实际情况是我们经常需要在某些页面动态载入需要的脚本文件来避免调用过多外部文件影响页面载入速度。rails 提供了 javascript_include_tag 和 register_javascript_include_default 都可以用来载入脚本文件，register_javascript_include_default 每次调用都会增加一项到  @@javascript_default_sources，会导致重复载入同一文件，文档中已说明 register_javascript_include_default 用来在 plugin 载入时更改默认载入脚本。所以正确的方法应该是 javascript_include_tag。
&lt;/p&gt;

&lt;p&gt;
javascript_include_tag 后调用直接输出 html script 标记，意味着脚本在 body 解释时才会载入，而我希望的结果是放置到 head 标记内。第一反应是搜索文档看是否存在 response 动态增加载入 javascript 的方法，rails 并没有提供此方法。正觉得无奈的时候忽然想到 rails layout 中用到了 yield，这里不是可以用 yield 达到同样的结果吗。

layouts/application.thml.erb
&lt;pre name="code"&gt;
&lt;%= javascript_include_tag :defaults %&gt;
&lt;%= yield :javascript_files %&gt;
&lt;/pre&gt;

在需要载入的模板文件中：
&lt;pre name="code"&gt;
&lt;% content_for :javascript_files do -%&gt;
&lt;%= javascript_include_tag("some_file_to_load_on_demand.js") -%&gt;
&lt;% end -%&gt;
&lt;/pre&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8985131263773334707?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8985131263773334707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8985131263773334707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8985131263773334707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8985131263773334707'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/06/rails-tips-javascript.html' title='rails tips: 动态载入 JavaScript 文件'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6249998978677115978</id><published>2008-06-03T04:15:00.000+08:00</published><updated>2008-12-10T01:34:30.404+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>用 monit 自动启动 mongrel 和 backgroundrb 服务</title><content type='html'>&lt;p class="imageleft"&gt;&lt;a href="http://www.tildeslash.com/monit/"&gt;&lt;img src="/assets/2008/6/2/monit-logo.png" title = "monit" /&gt;&lt;/a&gt;
&lt;a hef="/2008/5/30/using-capistrano-deploy-rails-app"&gt;Capistrano 部署 Rails 项目速记&lt;/a&gt;中解决了代码更新时候 mongrel/backgroundrb 重启等问题，还需要保证系统重启时服务能够自动启动。
&lt;/p&gt;

&lt;p&gt;
mongrel cluster 自带了 mongrel-cluster 启动管理脚本，Debian 系统的话链接 mongrel_cluster.yml 到 /etc/mongrel-cluster/sites-enabled/ 目录，系统启动的时候 /etc/init.d/mongrel-cluster 会自动启动 mongrel daemon，然而 backgroundrb 的启动问题还是没有解决，需要手工写启动脚本，google 了一番之后，找到 Monit 这个小工具：
&lt;pre name="code"&gt;
# 摘自 monit deb package description.
A utility for monitoring and managing daemons or similar programs
 monit is a utility for monitoring and managing daemons or similar
 programs running on a Unix system. It will start specified programs
 if they are not running and restart programs not responding.
 .
 monit supports:
  * Daemon mode - poll programs at a specified interval
  * Monitoring modes - active, passive or manual
  * Start, stop and restart of programs
&lt;/pre&gt;
是否可以用 Monit 来启动 mongrel 和 backgroundrb 呢，答案是肯定的，事实上这也应该是推荐方式。
&lt;/p&gt;

&lt;h3&gt;安装 Monit&lt;/h3&gt;
&lt;p&gt;
&lt;pre name="code"&gt;
$sudo aptitude install monit
&lt;/pre&gt;

修改 /etc/default/monit 配置：
&lt;pre name="code"&gt;
startup=1
CHECK_INTERVALS=30 # monit 监控检测时间价格，推荐设置成 30 秒
&lt;/pre&gt;

配置 monit
&lt;pre name="code"&gt;
$sudo grep '^[^#]' /etc/monit/monitrc
set daemon  30
set logfile syslog facility log_daemon
set httpd port 2812 and
     use address localhost  # only accept connection from localhost
     allow localhost        # allow localhost to connect to the server and
include /etc/monit/conf.d/*
$sudo mkdir /etc/monit/conf.d
&lt;/pre&gt;
&lt;/p&gt;

&lt;h3&gt; 配置 Daemon 项&lt;/h3&gt;
&lt;p&gt;
&lt;pre name="code"&gt;
$cat 001_neo_mongrel.conf
check process mongrel_neo_8000
  with pidfile /project/code/path/shared/pids/mongrel.8000.pid
  start program = "/usr/bin/mongrel_rails cluster::start -C /project/code/path/current/config/mongrel_cluster.yml --clean --only 8000"
  stop program = "/usr/bin/mongrel_rails cluster::stop -C /project/code/path/current/config/mongrel_cluster.yml --only 8000"
  if totalmem is greater than 110.0 MB for 4 cycles then restart
  if cpu is greater than 80% for 4 cycles then restart
  if 20 restarts within 20 cycles then timeout
  group neo

check process mongrel_neo_8001
  with pidfile /project/code/path/shared/pids/mongrel.8001.pid
  start program = "/usr/bin/mongrel_rails cluster::start -C /project/code/path/current/config/mongrel_cluster.yml --clean --only 8001"
  stop program = "/usr/bin/mongrel_rails cluster::stop -C /project/code/path/current/config/mongrel_cluster.yml --only 8001"
  if totalmem is greater than 110.0 MB for 4 cycles then restart
  if cpu is greater than 80% for 4 cycles then restart
  if 20 restarts within 20 cycles then timeout
  group neo

check process mongrel_neo_8002
  with pidfile /project/code/path/shared/pids/mongrel.8002.pid
  start program = "/usr/bin/mongrel_rails cluster::start -C /project/code/path/current/config/mongrel_cluster.yml --clean --only 8002"
  stop program = "/usr/bin/mongrel_rails cluster::stop -C /project/code/path/current/config/mongrel_cluster.yml --only 8002"
  if totalmem is greater than 110.0 MB for 4 cycles then restart
  if cpu is greater than 80% for 4 cycles then restart
  if 20 restarts within 20 cycles then timeout
  group neo
&lt;/pre&gt;

&lt;pre name="code"&gt;
$ cat 003_neo_brb.conf
check process brb_imigu_11006
  with pidfile /project/code/path/shared/pids/backgroundrb_11006.pid
  start program = "/bin/su -c 'cd  /project/code/pathcurrent &amp;&amp; RAILS_ENV=production nohup ./script/backgroundrb start &gt; /dev/null 2&gt;&amp;1' josh"
  stop program = "/bin/su -c 'cd /home/josh/www/imigu/current &amp;&amp; RAILS_ENV=production &amp;&amp; ./script/backgroundrb stop' josh"
  group neo
&lt;/pre&gt;
&lt;/p&gt;

启动 Monit 和监测
&lt;p&gt;
&lt;pre name="code"&gt;
$sudo /etc/init.d/monit restart
$sudo monit -c /etc/monit/monitrc status #查看系统状态
&lt;/pre&gt;

通过 monit 已经可以自动启动管理 mongrel 和 backgroundrb，那么谁来保证 monit 的稳定运行呢，答案是 linux 系统 init。
编辑 /etc/inittab 加入：
&lt;pre name="code"&gt;
# Run monit in standard run-levels
mo:2345:respawn:/usr/sbin/monit -Ic /etc/monit/monitrc
mo:06:wait:/usr/sbin/monit -Ic /etc/monit/monitrc stop all
&lt;/pre&gt;

重启 monit
&lt;pre name="code"&gt;
$sudo /etc/init.d/monit stop
$sudo telinit q
&lt;/pre&gt;
&lt;/p&gt;


&lt;p&gt;
参考：
&lt;ul&gt;
  &lt;li&gt;Monit man page&lt;/li&gt;
  &lt;li&gt;2008, Ezra Zygmuntowicz and Bruce Tate, Deploying Rails Applications&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6249998978677115978?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6249998978677115978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6249998978677115978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6249998978677115978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6249998978677115978'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/06/monit-mongrel-backgroundrb.html' title='用 monit 自动启动 mongrel 和 backgroundrb 服务'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2038768938934678090</id><published>2008-05-30T21:10:00.000+08:00</published><updated>2008-12-10T01:34:30.408+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Capistrano 部署 Rails 项目速记</title><content type='html'>&lt;p class="imageleft"&gt;&lt;img src="/assets/2008/5/30/capistrano-logo.png" alt="Capistrano" /&gt;&lt;/p&gt;

&lt;p&gt;项目快上线了，以前一直采用传统的方式进行部署，从最早的 FTP 到后来的 SVN+SSH，既然现在是 Rails 项目，当然试一把 Capistrano。&lt;/p&gt;

&lt;h3&gt;安装&lt;/h3&gt;
&lt;p&gt;
使用 Capistrano 进行部署只需要在本地机器安装 Capistrano 即可，Capistrano 通过 SSH 与服务器端进行交互。
&lt;pre name="code"&gt;
gem install -y capistrano
&lt;/pre&gt;
当前最新版本是 2.3.0。
&lt;/p&gt;

&lt;h3&gt;配置&lt;/h3&gt;
&lt;p&gt;
Ubuntu 8.0.4 上 gem 包相关的 bin 目录并不在系统路径中，需要手工加入gem bin 路径：
&lt;pre name="code"&gt;
$cat "export PATH=$PATH:/var/lib/gems/1.8/bin" &gt;&gt; .~/bashrc
$source ~/.bashrc
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
生成基础配置文件：
&lt;pre name="code"&gt;
$cd RAILS_APP_DIR
$capify .
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
调整 config/deploy.rb 中相关配置项，并加入一行：
&lt;pre name="code"&gt;
set :runner, "ACCOUNT_NAME"
&lt;/pre&gt;
用你服务器端的登录用户名取代 ACCOUNT_NAME，如果不设置此行，默认用户为 app，会导致设置失败。
&lt;/p&gt;

&lt;p&gt;
初始化服务器端目录：
&lt;pre name="code"&gt;
$cap deploy:setup
&lt;/pre&gt;
Capistrano &gt; 2.3.0 开始默认启用 sudo，所以，服务器需要支持 sudo 支持，将 ACOUNT_NAME 加入到 sudo group， 并确认 /etc/sudoers 中设置：
&lt;pre name="code"&gt;
# Uncomment to allow members of group sudo to not need a password
 %sudo ALL= ( ALL ) NOPASSWD: ALL
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
SSH 自动登录：
&lt;pre name="code"&gt;
$ssh-keygen -t dsa
$chmod 700 ~/.ssh
$scp ~/.ssh/id_dsa.pub USER_NAME@REMOTE_SERVER
&lt;/pre&gt;
在服务器：
&lt;pre name="code"&gt;
$cat id_dsa.pub &gt;&gt; ~/.ssh/authorized_keys
$rm -f id_dsa.pub
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;

运行设定和依赖检查：
&lt;pre name="code"&gt;
set :deploy_via, :remote_cache
set :runner, "josh"
depend :remote, :gem, "chronic", "&gt;= 0.2.3"
depend :remote, :gem, "packet", "&gt;= 0.1.5"
depend :remote, :command, "gnuplot"
depend :remote, :command, "svn"
depend :remote, :command, "mongrel_cluster_ctl" # make sure /usr/sbin in the $PATH
&lt;/pre&gt;
需要注意的是 debian 中的 mongrel_cluster_ctl 脚本在 /usr/sbin 下，而通过 ssh 获得的系统 $PATH 并没有包含 /usr/sbin 目录，需要修改 .ssh/environment 和  ssh 的相关配置加入 /usr/sbin 目录。

Mongrel  &amp;&amp; backgroundrb  启动配置
&lt;pre name="code"&gt;
rails_env = "production"
set :mongrel_environment, "production"
set :mongrel_conf, "#{deploy_to}/current/config/mongrel_cluster.yml"

namespace :deploy do
  
  desc "Restart the Mongrel cluster and backgroundrb"
  task :restart, :roles =&gt; :app do
    stop
    start
  end
  desc "Start the mongrel cluster and backgroundrb"
  task :start, :roles =&gt; :app do
    mongrel.cluster.start
    start_backgroundrb
  end
  desc "Stop the mongrel cluster and backgroundrb"
  task :stop, :roles =&gt; :app do
    mongrel.cluster.stop
    stop_backgroundrb
  end

  desc "Start the backgroundrb server"
  task :start_backgroundrb , :roles =&gt; :app do
    begin
      puts "starting brb in folder #{current_path}"
      run "cd #{current_path} &amp;&amp; RAILS_ENV=#{rails_env} nohup ./script/backgroundrb start &gt; /dev/null 2&gt;&amp;1"
    rescue RuntimeError =&gt; e
      puts e
      puts "Problems starting backgroundrb – running already?"
    end
  end
  desc "Stop the backgroundrb server"
  task :stop_backgroundrb , :roles =&gt; :app do
    begin
      puts "stopping brb in folder #{current_path}"
      run "cd #{current_path} &amp;&amp; ./script/backgroundrb stop"
    rescue RuntimeError =&gt; e
      puts e
      puts "Backgroundrb appears to be down already."
    end
  end
end

&lt;/pre&gt;

需要注意的是

Capistrano 每次 deploy 的时候会重新检出代码，用户上传文件需要单独做 link：
&lt;pre name="code"&gt;
namespace :assets do
  task :symlink, :roles =&gt; :app do
    run &lt;&lt;-CMD
rm -rf #{release_path}/assets &amp;&amp;
ln -nfs #{shared_path}/assets #{release_path}/assets
CMD
  end
  after "deploy:update_code" , "assets:symlink"
  
  task :create_dirs, :roles =&gt; :app do
    %w(assets).each do |name|
      run "mkdir -p #{shared_path}/#{name}"
    end
  end
  after "deploy:setup", "assets:create_dirs"
end
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
参考文档：
&lt;ul&gt;
  &lt;li&gt;2007, DHH, Obey, The Rails Way&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.rubyrobot.org/article/deploying-rails-20-to-mongrel-with-capistrano-21"&gt;Deploying Rails (2.0) to Mongrel with Capistrano 2.1&lt;/a&gt;
  &lt;li&gt;&lt;a href="http://blog.pretheory.com/arch/2008/02/capistrano_path_and_environmen.php"&gt;Capistrano path and environment variable issues&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2038768938934678090?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2038768938934678090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2038768938934678090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2038768938934678090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2038768938934678090'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/05/capistrano-rails.html' title='Capistrano 部署 Rails 项目速记'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8836736616646921888</id><published>2008-04-24T00:24:00.000+08:00</published><updated>2008-12-10T01:33:22.230+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>MySQL InnoDB 性能调节 Gotchr</title><content type='html'>&lt;p&gt;按照&lt;a href=""&gt;Innodb Performance Optimization Basics&lt;/a&gt;文章调谐 MySQL InnoDB 的性能，结果重启出现错误：
&lt;pre name="code"&gt;
ERROR 1033 (HY000): Incorrect information in file: './imigu_dev/demo.frm'
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
google 了一番，也没有确切说法，一条一条恢复 my.cnf 中修改的部分测试，发现是 innodb_log_file_size 这行出了问题。

&lt;a href="http://dev.mysql.com/doc/refman/5.0/en/adding-and-removing.html"&gt;这里给出了解答&lt;/a&gt;。

&lt;ul&gt;
 &lt;li&gt;退出  MySQL，确定无错误信息。&lt;/li&gt;
 &lt;li&gt;删除 log。&lt;/li&gt;
 &lt;li&gt;修改配置重启&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
refs:
&lt;ul&gt;
 &lt;li&gt;http://blogs.sun.com/luojiach/entry/mysql_innodb_performance_tuning_for&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8836736616646921888?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8836736616646921888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8836736616646921888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8836736616646921888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8836736616646921888'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/04/mysql-innodb-gotchr.html' title='MySQL InnoDB 性能调节 Gotchr'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8226724096115649378</id><published>2008-03-14T17:43:00.000+08:00</published><updated>2008-12-10T01:34:30.409+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>ruby block 局部变量</title><content type='html'>今天遇到的问题，在 block 中定义的变量为局部变量，无法在 block 外以及下一次迭代中使用，必须定义在 block 开始之前。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8226724096115649378?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8226724096115649378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8226724096115649378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8226724096115649378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8226724096115649378'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/03/ruby-block.html' title='ruby block 局部变量'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-3836608447158309825</id><published>2008-03-12T17:12:00.000+08:00</published><updated>2008-12-10T01:34:59.769+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>flymake 运行 rails scripts/runner 脚本文件</title><content type='html'>&lt;p&gt;

写了几个脚本，用到了 rails script/runner：
{{{
#!/usr/bin/env /project_path/script/runner
}}}

结果发现 emacs flymake mode 执行了这个文件，而不是默认的 c (check) 语法检查。
去官方看了一下 bug，原来已经有人&lt;a href="http://rubyforge.org/tracker/index.php?func=detail&amp;aid=16132&amp;group_id=1484&amp;atid=5809"&gt;报告过了&lt;/a&gt;，

修改为
{{{
#!/usr/bin/ruby /project_path/script/runner
}}}
问题修正。反正系统只会是 linux，没有这烦人的问题就成。
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-3836608447158309825?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/3836608447158309825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=3836608447158309825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3836608447158309825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3836608447158309825'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/03/flymake-rails-scriptsrunner.html' title='flymake 运行 rails scripts/runner 脚本文件'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8577871587928199184</id><published>2008-02-26T22:43:00.000+08:00</published><updated>2008-12-10T01:45:12.067+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>rails tips</title><content type='html'>随手记录开发中遇到的小问题，备忘。

&lt;h3&gt;install plugins&lt;/h3&gt;
&lt;p&gt;
  &lt;pre name="code"&gt;undefined method `paginate' for&lt;/pre&gt;
 安装 plugin 后，需要重启 web server。
&lt;/p&gt;

&lt;h3&gt;radio for boolean field&lt;/h3&gt;
&lt;p&gt;
&lt;pre name="code"&gt;
&lt;%= f.radio_button :direction, "true" %&gt;
&lt;%= f.radio_button :direction, "false" %&gt;
&lt;/pre&gt;
&lt;/p&gt;

&lt;h3&gt;selected for options key value pairs array&lt;/h3&gt;
it didn't well documented, here is the example:
&lt;pre name="code"&gt;
	  &lt;%= select_tag(
	      :sector_id,
	      options_for_select(
	        [["--请选择--", ""]].concat(Sector.get_for_list.collect {|o| [ o.name, o.id ] }), 
	        [@sector.id, @sector.name])
	      )
	  %&gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8577871587928199184?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8577871587928199184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8577871587928199184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8577871587928199184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8577871587928199184'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/02/rails-tips.html' title='rails tips'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2663744026341426194</id><published>2008-01-21T21:08:00.000+08:00</published><updated>2008-12-10T01:36:35.518+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tar'/><title type='text'>tar 解压单个文件</title><content type='html'>每次都得查 man，备忘一下。
&lt;p&gt;
&lt;pre name="code"&gt;
tar -tvf from.tar.gz | grep something
tar xvf from.tar.gz something.path
&lt;/pre&gt;
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2663744026341426194?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2663744026341426194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2663744026341426194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2663744026341426194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2663744026341426194'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/01/tar.html' title='tar 解压单个文件'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6397793982986451743</id><published>2008-01-14T23:00:00.001+08:00</published><updated>2008-12-10T01:42:41.229+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xorg'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ubuntu 下无显示器时的分辨率问题</title><content type='html'>&lt;p&gt;
手头一台机器，做为 repos server 和 desktop 混合用途，偶尔远程登录上去使用。开启了 GNOME 默认的远程桌面(vino)，GDM 的自动登录，客端用  xvncview 登录。多余出来的显示器正好配合本本玩 dual monitor。重启后发现问题，X 没有探测到显示器，fallback 到 640x480 的桌面。需要在 xorg.conf 中 monitor 节做如下设定：
&lt;/p&gt;&lt;pre name="code"&gt;
   HorizSync       30.0 - 82.0
   VertRefresh     56.0 - 76.0
&lt;/pre&gt;

重启 gdm 恢复正常分辨率大小。
&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6397793982986451743?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6397793982986451743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6397793982986451743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6397793982986451743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6397793982986451743'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/01/ubuntu.html' title='ubuntu 下无显示器时的分辨率问题'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-4667936961005160957</id><published>2007-12-28T22:06:00.001+08:00</published><updated>2008-12-10T01:42:17.962+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>转换 Mp3 标签</title><content type='html'>&lt;p&gt;
记录备忘
&lt;/p&gt;&lt;pre name="code"&gt;
sudo apt-get install python-mutagen
find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-4667936961005160957?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/4667936961005160957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=4667936961005160957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4667936961005160957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4667936961005160957'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/12/mp3.html' title='转换 Mp3 标签'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1523381400572570795</id><published>2007-12-28T07:41:00.000+08:00</published><updated>2008-12-10T01:34:59.770+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>emacs 代码导航</title><content type='html'>&lt;p class="imageleft"&gt;&lt;img src="/assets/2007/12/27/emacs.png" alt="emacs" /&gt;&lt;/p&gt;

&lt;p&gt;
emacs 自带的 ctags 不支持 ruby，安装 &lt;a href="http://ctags.sourceforge.net/" title="exuberant-ctags" &gt;exuberant-ctags&lt;/a&gt; 提供 ruby 语言支持。
&lt;pre name="code"&gt;
aptitude install exuberant-ctags
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
生成 TAGS
&lt;pre name="code"&gt;
ctags -e -R ~/www/mephisto/
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
使用 tags 代码导航
copy 自 exuberant-ctags manpage:
&lt;pre name="code"&gt;
HOW TO USE WITH GNU EMACS
       Emacs  will,  by default, expect a tag file by the name "TAGS" in the current directory. Once the tag file is built, the following commands exercise the tag indexing
       feature:

       M-x visit-tags-table &lt;RET&gt; FILE &lt;RET&gt;
                 Select the tag file, "FILE", to use.

       M-. [TAG] &lt;RET&gt;
                 Find the first definition of TAG. The default tag is the identifier under the cursor.

       M-*       Pop back to where you previously invoked "M-.".

       C-u M-.   Find the next definition for the last tag.

       For more commands, see the Tags topic in the Emacs info document.
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
works almost great!
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1523381400572570795?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1523381400572570795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1523381400572570795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1523381400572570795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1523381400572570795'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/12/emacs.html' title='emacs 代码导航'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-3873892393705281119</id><published>2007-12-04T17:12:00.001+08:00</published><updated>2008-12-10T01:42:05.445+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='sugarcrm'/><title type='text'>sugarcrm 定制开发小帖士</title><content type='html'>&lt;h4&gt;定制重复记录发现&lt;/h4&gt;

&lt;p&gt;
sugarcrm 中的姓和名是分开的，对于中文来说，只需要一个字段即可，我们这里只使用了 last_name，first_name 一律留空，便于搜索。
sugarcrm leads 的“重复记录发现”功能默认匹配 first_name 和 last_name 字段，需要将 first_name 关闭。

打开 $PATH/include/SugarObjects/templates/person/vardefs.php，注释掉 first_name 的 merge_filter 键：
&lt;/p&gt;&lt;pre name="code"&gt;
'first_name' =&gt;
  array (
   'name' =&gt; 'first_name',
   'vname' =&gt; 'LBL_FIRST_NAME',
   'type' =&gt; 'varchar',
   'len' =&gt; '100',
   'unified_search' =&gt; true,
   'comment' =&gt; 'First name of the contact',
/** start customization */
           //'merge_filter' =&gt; 'selected',
/** end */   
          
  ),
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-3873892393705281119?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/3873892393705281119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=3873892393705281119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3873892393705281119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3873892393705281119'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/12/sugarcrm.html' title='sugarcrm 定制开发小帖士'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-4126167631050035671</id><published>2007-12-03T16:42:00.001+08:00</published><updated>2008-12-10T01:41:50.944+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>emacs plugins</title><content type='html'>&lt;h3&gt;rcodetools&lt;/h3&gt;

&lt;p&gt;
&lt;/p&gt;&lt;blockquote&gt;
&lt;a href="http://rubyforge.org/projects/rcodetools" title="rcodetools project page"&gt;rcodetools&lt;/a&gt; is a collection of Ruby code manipulation tools for automagic Test::Unit(RSpec) assertion generation, code annotation, 100% accurate code completion, code &amp;amp; doc browsing, obtaining precise method info, meta-prog. aware, etc.
&lt;/blockquote&gt;


&lt;pre name="code"&gt;
rcodetools will work better if you use it along with FastRI, an alternative to
the standard 'ri' documentation browser which features intelligent searching,
better RubyGems integration, vastly improved performance, remote queries via
DRb... You can find it at http://eigenclass.org/hiki.rb?fastri and it is also
available in RubyGems format:

   gem install fastri

Read README.emacs and README.vim for information on how to integrate
rcodetools in your editor.
&lt;/pre&gt;

&lt;pre name="code"&gt;
sudo gem install rcodetools
gem install fastri
ln -s $PATH/rcodetools.el ~/emacs.d/libs
&lt;/pre&gt;

添加设定：
&lt;pre name="code"&gt;
(require 'rcodetools)
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
参考：
 &lt;/p&gt;&lt;ul&gt;
   &lt;li&gt;&lt;a href="http://eigenclass.org/hiki.rb?xmpfilter" title="xmpfilter: automagic Test::Unit assertions/RSpec expectations and code annotations"&gt;xmpfilter: automagic Test::Unit assertions/RSpec expectations and code annotations&lt;/a&gt;&lt;/li&gt;&lt;li&gt;
 &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-4126167631050035671?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/4126167631050035671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=4126167631050035671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4126167631050035671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4126167631050035671'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/12/emacs-plugins.html' title='emacs plugins'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-3669236995592698005</id><published>2007-11-30T21:36:00.001+08:00</published><updated>2008-12-10T01:41:38.165+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>从头搭建 rails on emacs 开发环境</title><content type='html'>&lt;p&gt;
最近准备用 rails 做新的产品，没有熟悉的 ruby 开发环境，索性这次狠下心来，用 emacs。
&lt;/p&gt;

&lt;h3&gt;安装设定 emacs&lt;/h3&gt;

&lt;p&gt;
Ubuntu gusty 下安装 emacs
&lt;/p&gt;&lt;pre name="code"&gt;
sudo aptitude install emacs
&lt;/pre&gt;
&lt;p&gt;

&lt;/p&gt;&lt;p&gt;
安装 ruby mode
&lt;/p&gt;&lt;pre name="code"&gt;
sudo aptitude install ruby-elisp
&lt;/pre&gt;
&lt;p&gt;

&lt;/p&gt;&lt;p&gt;
安装 &lt;a href="http://rubyforge.org/projects/emacs-rails" title="rails on emacs" target="_blank"&gt;emacs-rails&lt;/a&gt;
&lt;/p&gt;&lt;pre name="code"&gt;
mkdir ~/.emacs.d/
cd  ~/.emacs.d/
svn co svn://rubyforge.org/var/svn/emacs-rails/trunk rails
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
下载需要的库文件
&lt;/p&gt;&lt;pre name="code"&gt;
cd  ~/.emacs.d/
mkdir libs
cd libs
wget http://www.kazmier.com/computer/snippet.el
wget -O find-recursive.el http://www.webweavertech.com/ovidiu/emacs/find-recursive.txt
&lt;/pre&gt;

snapshot设定代码到 &lt;span class="path"&gt;~/.emacs&lt;/span&gt;
&lt;pre name="code"&gt;
; rails mode
(setq load-path (cons "~/.emacs.d/rails" load-path))
(setq load-path (cons "~/.emacs.d/libs" load-path))
(require 'rails)
(require 'find-recursive)
(require 'snippet)
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
几个有用的 mode
&lt;/p&gt;&lt;pre name="code"&gt;
sudo aptitude install ecb
sudo aptitude install emacs-goodies-el
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
设定 emacs 颜色方案

ubuntu 的 emacs-goodies-el 包已经提供了 60 多种颜色方案，不过都不是很能让我满意，-__-

这里用了 hober2 的颜色方案。
&lt;/p&gt;&lt;pre name="code"&gt;
cd ~/.emacs.d/
mkdir color-scheme
cd color-scheme
wget http://edward.oconnor.cx/elisp/color-theme-hober2.el
&lt;/pre&gt;

增加设定代码到 &lt;span class="path"&gt;~/.emacs&lt;/span&gt;

&lt;pre name="code"&gt;
; theme
(setq load-path (cons "~/.emacs.d/color-themes" load-path))
(require 'color-theme-hober2)
(color-theme-hober2)
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
OK, rails on emacs 环境已经完成，进入 rails project 目录，打开一个文件试试，rails mode 已经默认加载了。唯一不还不满意的是字体，看了一把 emacs 文档  Defining fontset 节，发现 emacs 2.2 包括之前的版本字体设定通过 ~/.Xresource 文件，&lt;a href="https://bugs.launchpad.net/ubuntu/+source/emacs-snapshot/+bug/68461" title="Wishlist: Xft/Freetype support"&gt;并不支持 Xft freetype&lt;/a&gt;，好在 SVN 的 emacs 已经支持 unicode 和 Xft freetype，并&lt;a href="http://peadrop.com/blog/2007/01/06/pretty-emacs/" title="emacs snapshot for ubuntu"&gt; 有人为 ubuntu 打了包&lt;/a&gt;。



添加下面的设定到 /etc/apt/source.list
&lt;/p&gt;&lt;pre name="code"&gt;
# emacs snapshot
deb http://ppa.launchpad.net/avassalotti/ubuntu gutsy main
&lt;/pre&gt;

&lt;pre name="code"&gt;
sudo apt-get update
sudo aptitude install emacs-snapshot-gtk
&lt;/pre&gt;

&lt;i&gt;注意，PPA 仓库中的 deb 包密钥并未包含在 ubutnu keyring 中，安装的时候需要手工确认。&lt;/i&gt;






增加设定代码到 &lt;span class="path"&gt;~/.emacs&lt;/span&gt;
&lt;pre name="code"&gt;
(set-default-font "DejaVu Sans Mono-10")
(set-fontset-font (frame-parameter nil 'font)
         'unicode
         '("DejaVu Sans Mono-10" . "unicode-bmp"))
(set-fontset-font (frame-parameter nil 'font)
             'han
         '("SimSun" . "unicode-bmp"))
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
参考资料：
 &lt;/p&gt;&lt;ul&gt;
   &lt;li&gt;&lt;a href="http://dima-exe.ru/rails-on-emacs" target="_blank" title="rails on emacs"&gt;rails on emacs&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="http://www.emacswiki.org/cgi-bin/wiki/XftGnuEmacs" target="_blank" title="XftGnuEmacs"&gt;XftGnuEmacs&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-3669236995592698005?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/3669236995592698005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=3669236995592698005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3669236995592698005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3669236995592698005'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/11/rails-on-emacs.html' title='从头搭建 rails on emacs 开发环境'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6325791831390124447</id><published>2007-11-16T23:45:00.001+08:00</published><updated>2008-12-10T01:40:23.304+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='symfony'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='log'/><title type='text'>公司门户改版手记</title><content type='html'>&lt;h3&gt; day 1&lt;/h3&gt;
&lt;p&gt;公司网站改版，索性扔掉 drupal 改用 symfony，维护起来会方便很多。&lt;/p&gt;

&lt;p&gt;试试 bleeging edge trunk 先，大体上是一致的，虽然半年没用 symfony，遇到问题参考 symfony/docs 和以前代码即可， 未更新到 symfony 1.1 的 plugin 直接 svn export 过来，大多可以正常使用，一切设定停当，移植 utilities 和 basic class，卡壳在 propel，symfony 1.1 将 propel 拆分出去为单独的 plugin (which is good)，从现在看来还不稳定，并且实际使用的话，需要 compat 10 layer，旧的 helper 系统还未移植过去。1.1  的 widget、validator、event 等都还没有文档。时间紧张，没有时间看代码 debug(还记得 symfony 1.0 beta 时候花费很多时间找 symfony 的 bug)，所以做出决定，放弃 symfony 1.1!
&lt;/p&gt;

&lt;p&gt;
回到 1.0 stable，再熟悉不过了，搭建基本系统，配置数据库，创建 frontend app，安装 plugin，试验 sfGuardPluin 一切停当之后，发现非常之 lack of feature! 没有 editor profile，request password，RBAC 对公司门户来说是杀鸡用牛刀，放弃 sfGuardPluin。
&lt;/p&gt;

&lt;p&gt;从以前项目移植 signup/login/user 等，一切顺利。&lt;/p&gt;

&lt;p&gt;新的网站需要 blog 系统，sfSimpleBlogPlugin 功能简单，本这够用就好的原则，安装测试，buggy，propel-build-model task 失败(sfGuardPlugin 正常)，最致命的是无法定制 module 名称，http://blah.com/sfSimpleBlog 这样的 URL 对我来说是无法接受的，放弃 sfSimpleBlogPlugin。&lt;/p&gt;

&lt;p&gt;两次使用 plugin module 的失败经验让我确信不用再看 sfSimpleCMSPlugin 了，新闻栏目本来需求就很简单。&lt;/p&gt;

&lt;p&gt;try, try, try，try 掉宝贵的一天时间。明天任务很重了。&lt;/p&gt;

&lt;h3&gt;day 2&lt;/h3&gt;
&lt;p&gt;
创建 backend app，移植 layout，menu system。
&lt;/p&gt;

&lt;p&gt;创建 blog 数据库 schema，用以前写的 Comment plugin scaffolding 出基本的带评论功能的 frontend blog module。CommentHelp 是 ajax based，对这个项目来说太复杂了，注释掉 templates 中用于 display comment 部分的代码，放到后面再考虑。&lt;/p&gt;

&lt;p&gt;使用 propel-init-admin 创建 blog post, blog post comment 后台模块，定制 generator.yml，增加 TinyMCE 编辑器， 导入 sfMediaLibaryPlugin 提供图片媒体支持，搞定 blog 后台部分。&lt;/p&gt;

&lt;p&gt;news schema，后台模块；ask schema，系统后台。fixture 功能还是比较若，手工写代码初始化测试数据。&lt;/p&gt;

&lt;h3&gt;day 3&lt;/h3&gt;

&lt;p&gt;移植分页系统，更新分页 helper，开始 blog 前台部分，列表需要现实博客文章 summary，暂时去除 html tag 好了，抓出一段完整的 html tag 的话，估计会比较浪费时间，之前使用 drupal，这个问题就让我非常不爽。&lt;/p&gt;

&lt;p&gt;blog 的显示页面，URL 使用  permalink，格式为 blog/:year/:month/:day/:permalink，permalink 为去除特殊字符后的 title，对 SEO 稍有好处。&lt;/p&gt;

&lt;p&gt;新闻、问题前台。about 模块，添加 routing 保证 URL 和原系统一致。&lt;/p&gt;

&lt;p&gt;首页，CSS fixing。&lt;/p&gt;

&lt;p&gt;用户个人信息设置，找回密码功能。&lt;/p&gt;

&lt;p&gt;testing, bug fixing。&lt;/p&gt;

&lt;p&gt;上线。&lt;/p&gt;

&lt;h3&gt;day 4&lt;/h3&gt;
&lt;p&gt;使用 sfSugarCRMPlugin 模块处理 lead caputures。

&lt;/p&gt;&lt;p&gt;使用 awstats 分析日志，找出 Error 404。调整 routing，保证旧系统链接可用。&lt;/p&gt;

&lt;p&gt;SEO，添加 meta 信息，调整系统 title。&lt;/p&gt;

&lt;p&gt;添加 RSS blog 订阅功能。&lt;/p&gt;

&lt;p&gt;We are done!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6325791831390124447?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6325791831390124447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6325791831390124447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6325791831390124447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6325791831390124447'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/11/blog-post.html' title='公司门户改版手记'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6924924928015015655</id><published>2007-11-14T23:21:00.001+08:00</published><updated>2008-12-10T01:45:12.068+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>文件名转码工具 convmv</title><content type='html'>&lt;pre name="code"&gt;
$convmv -f gbk -t utf8 *
$convmv -f gbk -t utf8 --notest *
&lt;/pre&gt;

省得每次都得 google, @_@&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6924924928015015655?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6924924928015015655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6924924928015015655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6924924928015015655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6924924928015015655'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/11/convmv.html' title='文件名转码工具 convmv'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1215958597145136985</id><published>2007-11-12T20:40:00.001+08:00</published><updated>2008-12-10T01:45:12.070+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><title type='text'>转移 SVN 仓库下单个目录</title><content type='html'>&lt;p class="imageleft"&gt;
&lt;img src="http://www.blogger.com/assets/2007/11/12/subversion.jpg" alt="subversion" /&gt;
&lt;/p&gt;

&lt;p&gt;
有个项目需要转移到另外一个 SVN 仓库，查了 SVN 手册未找到仓库部分转移的办法，跑去 Freenode IRC #svn 频道问人，有人回答： “I haven't done it, but your best bet is to mix 'svnadmin dump' and 'svnadmin load' and 'svndumpfilter' in some way”。我担心有 revision number conflict 的问题，不过还是试试先好了。
&lt;/p&gt;

&lt;p&gt;
假设需要导出的项目为 legacy repository 下的 blah。
&lt;/p&gt;

&lt;pre&gt;
$svnadmin dump /media/work/legacy/svn/repos &gt; dumpfile
$cat dumpfile | svndumpfilter include blah &gt; blah-dumpfile
$svnadmin load /var/lib/svn 
&lt;/pre&gt;

&lt;p&gt;
还好，两个 repository revision numbers 差距很大，import 很顺利。
cehckout 出来时候检查历史等，一切正常，^^

&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1215958597145136985?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1215958597145136985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1215958597145136985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1215958597145136985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1215958597145136985'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/11/svn.html' title='转移 SVN 仓库下单个目录'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-569771885350612346</id><published>2007-10-31T16:30:00.000+08:00</published><updated>2008-12-10T01:43:44.346+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>Leopard 初体验</title><content type='html'>&lt;p class="imageleft"&gt;&lt;img src="/assets/2007/10/31/leopard_macosx.jpg" alt="memories"&gt;&lt;/p&gt;

&lt;p&gt;
Apple 的 Leopard 这个月 26 号上市，而 bt 上的 leak 版本&lt;a href="http://bbs.pcbeta.com/thread-203240-1-1.html" target="_blank"&gt;已经被验证就是 GM 版&lt;/a&gt;，文件大小 6.6 个 G，Holy shit。买来 DL 的刻录光盘，结果不知道是 6 快一张的三菱光盘太劣质还是我最近人品不足，MBP 895 自带的光驱无法为刻录光盘设置正确的激光频率。网上看到有人通过火线硬盘安装成功，拿来我的 USB 移动硬盘，试试先，还好昨天清空了一个分区，料事如神了一把，^^
&lt;/p&gt;

&lt;p&gt;
格式化移动硬盘分区为 Mac OS 分区格式，挂载上 DMG，恢复 Mac OS Install CD 到 移动硬盘的分区。重启，refit 会自动认出后这个可启动的 Mac 分区，选择进入后直接进入安装界面，安装很顺利，不过并没有看到传说中的定制安装类型和语言选择界面（应该是我看的不够仔细），reboot，进入系统之后确认默认用了升级安装，网络、iTunes、Docks 等一切正常， so far so good。
&lt;/p&gt;
&lt;p&gt;注：&lt;i&gt;我的系统使用了 refit 来 trip boot Linux/Vista，一般的 Mac 用户在系统设置里面选择启动光盘为 USB 上的分区即可。&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
试用了个把小时，Dock 和 菜单的 UI 的改动的确让人很不舒服，fake 的 3D 和透明菜单栏都让人更迷糊，焦点不集中，Dock 中的已打开程序改用图标倒影中的亮点，远没有 Tiger 中的三角图标来得直观，&lt;a href="http://arstechnica.com/reviews/os/mac-os-x-10-5.ars" target=_blank" title="Mac review"&gt;Mac OS X 10.5 Leopard: the Ars Technica review&lt;/a&gt; 诚不我欺。
&lt;/p&gt;

&lt;p&gt;
Leopard 是 Mac 家族首款通过 UNIX 兼容性认证的操作系统，从目录结构组织来看，沿袭了 Apple 的传统方式，我还是很难习惯。基于对 UNIX 兼容性认证的信耐和盲目崇拜，我愿意相信对 Unix 下软件的兼容性会大大增强。对于开发者来说 Leopard 最大的更新之一应该是集成了 DTrace 调试工具，加上前端 XRay 用起来非常爽了。Leopard web 开发支持这块的亮点非 自带 Rails 莫属了，版本为 1.2.3。rails 这两年的走红加上 rails 的核心开发者清一色的都用 Mac，使得 Mac 在 rails 社区的流行度度很高，看之前的 rails 大会就知道，几乎全是 MBP，apple 当然也知道这是个双赢，于是早早的就对 rails 社区承诺，leopard 将内置 rails。Leopard 的 apache 升级到了2.2，PHP 也终于升级到了 5.2.4，python 为 2.5，为 web 敏捷开发提供了强有力的支持。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-569771885350612346?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/569771885350612346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=569771885350612346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/569771885350612346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/569771885350612346'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/10/leopard.html' title='Leopard 初体验'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2772618348551216491</id><published>2007-10-24T22:17:00.001+08:00</published><updated>2008-12-09T02:19:00.856+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>升级到 gutsy</title><content type='html'>&lt;p&gt;

&lt;a href="http://www.ubuntu.com/" target="_blank"&gt;&lt;img src="assets/2007/10/24/ubuntu-logo.png" alt="ubuntu logo" style="padding: 0pt 10px 10px 0pt;" align="left" border="0" /&gt;&lt;/a&gt;

desktop 一直是  update to date 的 gutsy，俺也成了所谓的追一族了，-,-
为 了能用上 asterisk 1.4 升级 workstation 到 gutsy，整个升级过程非常顺利，除去我这破网下载等待时间超长之外，升级设置 im-switch，修改 apache 配置，等等 30 分钟搞定。Smooth to the hell, sweet!

&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2772618348551216491?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2772618348551216491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2772618348551216491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2772618348551216491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2772618348551216491'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/10/gutsy_24.html' title='升级到 gutsy'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2721070695930543415</id><published>2007-10-17T20:15:00.001+08:00</published><updated>2008-12-09T02:17:57.752+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='digium'/><category scheme='http://www.blogger.com/atom/ns#' term='VOIP'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>digium 板卡终到手</title><content type='html'>&lt;p&gt;&lt;img src="assets/2007/10/21/digiumlogo.gif" alt="Asterisk and digium" style="padding: 0pt 10px 10px 0pt;" align="left" /&gt;&lt;a href="http://www.asterisk.org/" target="_blank"&gt;Asterisk&lt;/a&gt; 是开源的电话交换系统，算得上是企业应用了，不过貌似目前市场比较小，加上刚开始在国内有一定的知名度，其背后的 digium 公司生产的板卡在中国就很不好买，国内目前还没有 digium 的 distributor，找到一家广州的企业号称是 reseller，先不管资质定了一块 4FXO 卡。N 通电话，肝火上升，总算是等来了卡。佛里德曼说“世界是平的”已经有 6 个年头， 北京地铁到处可见 UPS 的广告，处在这样的一个时代，从国外 ship 过来前后半个多月的时间，不禁感叹平坦世界的世界还是偶尔会有“惊喜”。&lt;/p&gt;

&lt;p&gt;
之前已扫过 asterisk 电话未来之路、asterisk without tears，乘机器没到手，先在 VMWare 上安装个 trixbox，熟悉一下，再决定是用 Debian 还是 trixbox。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2721070695930543415?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2721070695930543415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2721070695930543415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2721070695930543415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2721070695930543415'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/10/digium_17.html' title='digium 板卡终到手'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5108091639932097426</id><published>2007-06-26T17:21:00.000+08:00</published><updated>2008-12-10T00:32:28.824+08:00</updated><title type='text'>zimbra on Debian etch 安装</title><content type='html'>&lt;h3&gt; zimbra 科普&lt;/h3&gt;

zimbra 是一个集成的协作办公系统，Open Source 版本的提供的功能和构件有：
&lt;ul&gt;
  &lt;li&gt;Pop3/IMAP&lt;/li&gt;
  &lt;li&gt;web 界面的管理系统&lt;/li&gt;
  &lt;li&gt;webmail 系统，并支持地址簿，行事历等&lt;/li&gt;
  &lt;li&gt;Apache Tomcat，提供 web 服务器环境&lt;/li&gt;
  &lt;li&gt;Postfix， 发送邮件的 MTA&lt;/li&gt;
  &lt;li&gt;OpenLDAP 提供 LDAP 用户认证&lt;/li&gt;
  &lt;li&gt;MySQL 数据库存储用户账户，用户 webmail 相关数据&lt;/li&gt;
  &lt;li&gt;Lucene，数据索引和搜索&lt;/li&gt;
  &lt;li&gt;Anti-virus，防病毒系统&lt;/li&gt;
  &lt;li&gt;Anti-spam，预防垃圾邮件系统&lt;/li&gt;
  &lt;li&gt;Zimbra Spell 拼写检查&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;安装&lt;/h3&gt;

zimbra 当前稳定版本是 4.5，并没有 for debian etch 的二进制包，好在有提供 &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=153217&amp;amp;package_id=188896"&gt;for debian sarge 的&lt;/a&gt;，安装的话需要做一些小手脚：

&lt;pre name="code"&gt;
// quote from http://www.zimbra.com/forums/installation/6443-debian-etch-4-0-install.html#post41225

before you start, *setup your DNS*. Zimbra install is very sensitive to correct DNS setup, particularly /etc/hosts and forward resolution of the hostname you are installing on as returned from hostname. Search wiki/forum for correct DNS setup.

change /etc/debian_version to 3.1
apt-get install sudo curl fetchmail libgmp3c2 libssl0.9.7 libdb3
chmod a+rwx /tmp

tar -xzf &lt;installer&gt;
cd zcs/

clean out previous attempts:
sh install -u
rm -rf /opt/zimbra
rm /tmp/install*
rm /tmp/zmsetup*
rm /tmp/*zim*

change util/utilfunc.sh
if [ $PLATFORM = "UBUNTU6"]; then
to
if [ $PLATFORM = "UBUNTU6" -o $PLATFORM = "DEBIAN3.1" ]; then

sh install.sh

Strangely detects hostname as domainname (never quite understood why it does this). Select 'Yes' for "Change domain name", change to domainname "domain.com" instead of "host.domain.com"

If you haven't set your MX yet, ignore (you'll need to set this later but its fine for install):
DNS ERROR - none of the MX records for ijichi.org
resolve to this host
It is suggested that the MX record resolve to this host
Re-Enter domain name? [Yes]
^^ Choose "No"

Install Menu: Choose 6 for zimbra-store, 4 for Admin Password, enter password, 'r' or &lt;enter&gt; for previous menu, 'a' to apply, Enter for next two questions:
Save configuration data to a file? [Yes]
Save config in file: [/opt/zimbra/config.15938]
Then 'Yes' for: The system will be modified - continue? [No] yes

Checkout output carefully for *any* errors, should install fine.

You can change /etc/debian_version back to 4.0 after install but you'll have to change it for each upgrade&lt;/enter&gt;&lt;/installer&gt;
&lt;/pre&gt;

上面所说还是有一些不符的地方，安装脚本名称为 ./install.sh，修改过后按照法安装顺利。

安装之前需要注意端口冲突，先停掉如 apache 等可能端口冲突的程序。

&lt;h3&gt;调整&lt;/h3&gt;
zimbra 提供的包是完整的环境，包括 apache, tomcat, mysql 等。如果系统已经有了 apache 需要做一些调整。如果原有的 web 不需要 https 的支持，完全可以让 zimbra apache 跑在 443，既提高了安全性，又不会和以后系统冲突。

&lt;pre name="code"&gt;
// quote from http://wiki.zimbra.com/index.php?title=ZimbraApache
su - zimbra
zmtlsctl https
tomcat restart
&lt;/pre&gt;so far so good，直到

&lt;h3&gt;问题&lt;/h3&gt;

实际运行中发现 smtp 无法认证，搜索了一下，发现是认证 URL 没有正确设置到 https 导致，属于 zimbra 4.5 的 BUG。重新设置  zimbraMtaAuthHost 手工修正此问题。

&lt;pre name="code"&gt;
su - zimbra
zmprov ms `zmhostname` zimbraMtaAuthHost mail.example.com&lt;/pre&gt;

&lt;h3&gt;web 管理地址&lt;/h3&gt;

https://mail.example.com/ 用来访问 webmail
https://mail.example.com:7071/ 访问 web 的管理界面。

&lt;h3&gt;数据迁移&lt;/h3&gt;
epaulin 没有数据数据需要迁移，不过这些链接或许对您有用：
&lt;ul&gt;
&lt;li&gt;http://www.zimbra.com/docs/&lt;/li&gt;
&lt;li&gt;http://www.zimbra.com/community/documentation.html
&lt;/li&gt;&lt;li&gt;http://wiki.zimbra.com/index.php?title=ZCS_System_Architecture&lt;/li&gt;
&lt;li&gt;http://wiki.zimbra.com/index.php?title=User_Migration_Articles&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5108091639932097426?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5108091639932097426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5108091639932097426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5108091639932097426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5108091639932097426'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/06/zimbra-on-debian-etch_26.html' title='zimbra on Debian etch 安装'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5333664892578240434</id><published>2007-05-30T16:43:00.000+08:00</published><updated>2008-12-10T00:32:28.340+08:00</updated><title type='text'>微软揭密 surface computer</title><content type='html'>微软在 D conference上揭密了最新秘密武器，&lt;a href="http://www.techcrunch.com/2007/05/29/microsoft-announces-surface-computer/"&gt;surface computer&lt;/a&gt;。微软这把该借 surface 得到不少 PR 了。

surface  看上去像个 coffee table, 可以用手多点操作，来浏览图片、地图、播放视频、发送 email，甚至在餐厅点单。surface 内置了相机，用来识别放在表面上的物体，比如相机，神奇的是，surface 会通过无线自动取出相机内的照片，移动照片到另外一个无线设备？用手“甩”过去。

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VFYLhas7vwo/Rl2PLuN5AiI/AAAAAAAAAA8/8SzJlYGq9JA/s1600-h/surface2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer;" src="http://bp2.blogger.com/_VFYLhas7vwo/Rl2PLuN5AiI/AAAAAAAAAA8/8SzJlYGq9JA/s320/surface2.jpg" alt="" id="BLOGGER_PHOTO_ID_5070366187036672546" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5333664892578240434?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5333664892578240434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5333664892578240434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5333664892578240434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5333664892578240434'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/05/surface-computer_30.html' title='微软揭密 surface computer'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_VFYLhas7vwo/Rl2PLuN5AiI/AAAAAAAAAA8/8SzJlYGq9JA/s72-c/surface2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1495493907285755779</id><published>2007-05-15T15:04:00.000+08:00</published><updated>2008-12-10T00:32:27.307+08:00</updated><title type='text'>debian etch 下 Marvell 88E8050 网卡驱动问题</title><content type='html'>手上有台双网卡服务器，一张是 Intel 的，另外一张是 Marvell 88E8050，原先只是用了 eth0 的 Intel 网卡，后来增加了网通的线路，于是启用了 eth1 的 88E8050，加上路由策略。运行后不久，问题出现，刚开始表现为网通线路不正常，再后来完全无法访问，最终导致内核崩溃。有  log 为证：
&lt;pre name="code"&gt;#less /var/log/messages
May 13 23:19:34 localhost kernel: NETDEV WATCHDOG: eth1: transmit timed out
May 13 23:19:34 localhost kernel: sky2 status report lost?
May 13 23:19:39 localhost kernel: NETDEV WATCHDOG: eth1: transmit timed out
May 13 23:19:39 localhost kernel: sky2 status report lost?
May 14 10:32:37 localhost syslogd 1.4.1#18: restart.
May 14 10:32:37 localhost kernel: klogd 1.4.1#18, log source = /proc/kmsg started.
&lt;/pre&gt;
google 了一下，&lt;a href="http://forums.gentoo.org/viewtopic-p-4046594.html"&gt;gentoo 的论坛有用户指出&lt;/a&gt;是 &lt;a href="http://bugzilla.kernel.org/show_bug.cgi?id=8452"&gt;kernel 驱动有问题&lt;/a&gt;，gentoo 的两位工程师已经提交了 patch 并进入了 2.6.21，从论坛上用户使用 2.6.21 的使用反馈来看并不相同，有些用户问题依旧存在，etch 的内核是 2.6.18，anyway，编译 2.6.21 内核先。

&lt;pre name="code"&gt;#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.1.tar.bz2
#wget -c ftp://ftp.linuxforum.net/ftp.kernel.org/linux/kernel/v2.6/linux-2.6.21.1.tar.bz2
#tar jxvf linux-2.6.21.1.tar.bz2
#ln -s linux-2.6.21.1 linux
#cd linux
#make menuconfig
#make-kpkg clean
#fakeroot make-kpkg --revision=Custom.1.0 kernel_image
#fakeroot make-kpkg --revision=Custom.1.0 kernel_headers
#dpkg -i linux-image-2.6.21.1_Custom.1.0_i386.deb
#dpkg -i linux-headers-2.6.21.1_Custom.1.0_i386.deb
#cd /boot
#mkinitrd -o /boot/initrd.img-2.6.21.1 2.6.21.1
#vim grub/menu.lst
// 加入
initrd          /boot/initrd.img-2.6.21.1
#reboot
&lt;/pre&gt;重启过后使用一段时间发现还是有异常日志，不过新驱动好像在异常发生后，会重启 eth1 sky 网卡。继续使用小段时间有用户报告网通线路无法访问，我尝试着手工重启了一把，结果导致整个网通线路不同，登录上去后使用网通线路 ping 网通 DNS 又居然是通的，从其它机器 traceroute 的时候无法连到网通网卡，奇怪！再次重启，问题解决，目前正常运行一天，未出现异常情况，good，继续观察。

&lt;span style="font-weight: bold;"&gt;UPDATE: 2007-06-02&lt;/span&gt;，问题依然存在，2.6.21 不会导致内核崩溃， 但在 88E8050 网卡经常停止工作。

&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1495493907285755779?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1495493907285755779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1495493907285755779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1495493907285755779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1495493907285755779'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/05/debian-etch-marvell-88e8050_15.html' title='debian etch 下 Marvell 88E8050 网卡驱动问题'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5935938987026764919</id><published>2007-05-14T17:15:00.000+08:00</published><updated>2008-12-10T00:32:26.626+08:00</updated><title type='text'>NVIDIA 9631 版驱动和 Xorg 7.2</title><content type='html'>etch 发布后，SID 开始疯狂上载，开始阶段不太稳定，一直没有更新，直到最近，aptitude dist-upgrade 的时候升级了几百来 M 的内容，重启后发现屏幕出现了飘移，xvidtune 伺候，调整之后 restart X，情况依旧，ft....

于是尝试安装 NVIDIA 的驱动，NVIDIA 97XX 版的驱动已经去掉 legacy 的支持，不幸我的老爷机还是 MX400 的显卡，找来 NVIDIA 9631，安装完后重启 X，无法打开 nvidia 模块：
&lt;pre name="code"&gt;(WW) Warning, couldn't open module nvidia
(II) UnloadModule: "nvidia"&lt;/pre&gt;荒谬！继续 google ing...，好在是个老问题，&lt;a href="http://www.debianhelp.org/node/6489"&gt;讨论很多&lt;/a&gt;。

原因是 NVIDIA 96XX 在 Xorg 7.2 之前发行的，不支持新的 Xorg 标准，work around 很简单：
&lt;pre name="code"&gt;#./NVIDIA-Linux-x86-1.0-9631-pkg1.run --x-module-path=`X -showDefaultModulePath 2&gt;&amp;amp;1 | cut -d, -f1` --x-library-path=`X -showDefaultLibPath 2&gt;&amp;amp;1`&lt;/pre&gt;这次 X 顺利启动，熟悉的 NVIDIA Logo 过后，进入 KDE 桌面，可是桌面飘移的问题依然存在，祭上终极武器，手工调整显示器解决，好在 windows 也是基本不用的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5935938987026764919?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5935938987026764919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5935938987026764919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5935938987026764919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5935938987026764919'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/05/nvidia-9631-xorg-72_14.html' title='NVIDIA 9631 版驱动和 Xorg 7.2'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-3019412954773267208</id><published>2007-05-08T20:08:00.000+08:00</published><updated>2008-12-10T00:32:25.887+08:00</updated><title type='text'>eZ Components 发布第一个 beta 版本</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;引用自 ez &lt;a href="http://ez.no/ezcomponents/news/ez_components_2007_1beta1"&gt;官方发行说明&lt;/a&gt;：
&lt;/div&gt;&lt;pre name="code"&gt;The major highlights in this first beta of the eZ Components 2007.1 are the new components Authentication (database, ldap and typekey based authentication) and Workflow, a component to provide the core functionality of an activity-based workflow system including the definition and execution of work flow specifications. Other additions include a new type of diagram to the Graph component (radar charts), a new MS-SQL driver for the Database component, automatic generation of classes for use with PersistentObject, SSL support in the Mail component and many other small improvements.&lt;/pre&gt;伴随第一个 beta 版本的发布，期待已久的 Workflow Component 也从 experimental 进了 eZ Components，意味着 API 已经稳定，接下来的几个星期会完善文档，等不及的话可以先看代码，eZ Components 代码质量本来就非常高，更何况 Workflow Component 和 PHPUnit 的开发者是同一人 ：&lt;span&gt;Sebastian Bergmann&lt;/span&gt;。

Sebastian Bergmann 原本是&lt;a href="http://sebastian-bergmann.de/archives/642-eZ-Components-Workflow-Engine.html"&gt;要做一套完整的 workflow 管理系统&lt;/a&gt;，后来读了几篇论文之后改变主义，决定做一套核心功能的 Component，多亏如此，我们才有了 eZ Workflow Component。

&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-3019412954773267208?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/3019412954773267208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=3019412954773267208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3019412954773267208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3019412954773267208'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/05/ez-components-beta_08.html' title='eZ Components 发布第一个 beta 版本'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6843825523705388798</id><published>2007-05-07T14:32:00.000+08:00</published><updated>2008-12-10T00:32:24.535+08:00</updated><title type='text'>Linux 对 MSDOS(PC BIOS) 分区表的支持</title><content type='html'>&lt;p&gt;
前些时日买了个移动硬盘，卖盘老板好心给我分了区，谁知回家发现 Linux 无法读取硬盘内容，起先怀疑硬盘盒是不是有问题，挂到 windows 上，一切正常，于是看了把 dmesg ：

&lt;pre name="code"&gt;SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)
sda: Write Protect is off
sda: Mode Sense: 03 00 00 00
sda: assuming drive cache: write through
sda:&lt;6&gt;usb 2-1: USB disconnect, address 2
sd 0:0:0:0: SCSI error: return code = 0x00010000
end_request: I/O error, dev sda, sector 0
Buffer I/O error on device sda, logical block 0
sd 0:0:0:0: rejecting I/O to device being removed
Buffer I/O error on device sda, logical block 0
unable to read partition table
sd 0:0:0:0: Attached scsi disk sda

&lt;/pre&gt;

&lt;/p&gt;

&lt;p&gt;硬盘已经找到了，读取的时候发生了 IO 错误，google 一把，找到了个德语的论坛，google 翻译一下，大致说确定是低版本 kernel 对 MSDOS 分区支持有问题，系统是 kernel 2.6.17，2.6.21 已经放出，正好更新一下内核，于是下载、编译 (记得打开 MSDOS 分区表支持)、重启，问题果然解决。
&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6843825523705388798?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6843825523705388798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6843825523705388798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6843825523705388798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6843825523705388798'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/05/linux-msdospc-bios_07.html' title='Linux 对 MSDOS(PC BIOS) 分区表的支持'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1253028640930587151</id><published>2007-05-07T10:15:00.000+08:00</published><updated>2008-12-10T01:45:12.071+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>期待 Debain KDE4 包</title><content type='html'>之前在 IRC 上听 freeflying 说到已经在用 KDE4 alpha 版，很是心动，更别提 Okular 还可以做书签添加 review。之后的几天晚上时间我都在埋头编译 KDE4，可惜编译 Okular 时候始终找不到 PDF 库，libpoppler-qt-dev 拒绝工作，于是作罢。

今天看到 pkg-kde-talk上说&lt;a href="http://lists.alioth.debian.org/pipermail/pkg-kde-talk/2007-May/000637.html"&gt;已经开始 KDE4 的工作&lt;/a&gt;，删了本机的 KDE-devel，乖乖的等 debian 包吧，好在，这些年来，耐性大涨。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1253028640930587151?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1253028640930587151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1253028640930587151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1253028640930587151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1253028640930587151'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/05/debain-kde4_07.html' title='期待 Debain KDE4 包'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1759938131147922285</id><published>2007-05-01T16:24:00.000+08:00</published><updated>2008-12-10T00:32:23.042+08:00</updated><title type='text'>web 设计者调查 | The Web Design Survey</title><content type='html'>A list part 出了个调查，询问的对象当然是 web 设计/开发者，问题覆盖面挺广，比如工作环境、薪资情况、地域限制、种族歧视等等。A list part 希望借此能够让公众更加了解、尊重这个（web设计师）职业。如果你有兴趣，请点击下面的链接：


&lt;a href="http://alistapart.com/articles/webdesignsurvey"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://aneventapart.com/webdesignsurvey/templates/ala/images/i-took-the-2007-survey.gif" border="0" height="54" /&gt;&lt;/a&gt;

&lt;p&gt;PS: 是有奖品的哦。&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1759938131147922285?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1759938131147922285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1759938131147922285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1759938131147922285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1759938131147922285'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/05/web-web-design-survey_01.html' title='web 设计者调查 | The Web Design Survey'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-3756506091375059728</id><published>2007-03-20T07:20:00.000+08:00</published><updated>2008-12-10T00:32:22.511+08:00</updated><title type='text'>omniti 的实验室</title><content type='html'>偶然看到 omniti 新的站点 https://labs.omniti.com/，omniti 是这么描述它的实验室的：
&lt;pre name="code"&gt;OmniTI Labs is &lt;a href="http://omniti.com/home"&gt;our&lt;/a&gt; repository for some of the projects we generate while working on stuff for clients,            for our products, or just on things that we think are cool.  The website is a way for us to give this           code back to the community.&lt;/pre&gt;目前的项目不多，Alexandria 是其中之一，包含了 Mailer/Transport/OpenID/UUID/XmlRpcClient 等类，代码还未能看到，先放出的是文档。倒是很期待看看 omniti 的东东是不是和他们说的一样 cool，:- )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-3756506091375059728?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/3756506091375059728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=3756506091375059728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3756506091375059728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3756506091375059728'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/03/omniti_20.html' title='omniti 的实验室'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1334823365098022907</id><published>2007-03-13T10:21:00.000+08:00</published><updated>2008-12-10T00:32:21.811+08:00</updated><title type='text'>AM I?</title><content type='html'>Your results:
&lt;b&gt;You are &lt;span style="font-size:6;"&gt;Superman&lt;/span&gt;&lt;/b&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Superman&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="85"&gt;&lt;/td&gt;&lt;td&gt; 85%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Spider-Man&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="85"&gt;&lt;/td&gt;&lt;td&gt; 85%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Supergirl&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="70"&gt;&lt;/td&gt;&lt;td&gt; 70%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Iron Man&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="65"&gt;&lt;/td&gt;&lt;td&gt; 65%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Green Lantern&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="60"&gt;&lt;/td&gt;&lt;td&gt; 60%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;The Flash&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="60"&gt;&lt;/td&gt;&lt;td&gt; 60%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Robin&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="55"&gt;&lt;/td&gt;&lt;td&gt; 55%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Catwoman&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="55"&gt;&lt;/td&gt;&lt;td&gt; 55%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Wonder Woman&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="45"&gt;&lt;/td&gt;&lt;td&gt; 45%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Hulk&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="40"&gt;&lt;/td&gt;&lt;td&gt; 40%&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Batman&lt;/td&gt;
&lt;td&gt;&lt;hr align="left" noshade="noshade" size="4" width="30"&gt;&lt;/td&gt;&lt;td&gt; 30%&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;
&lt;td&gt;You are mild-mannered, good,
strong and you love to help others.

&lt;img src="http://www.thesuperheroquiz.com/pics/superman.jpg" /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;a href="http://www.thesuperheroquiz.com/"&gt;
Click here to take the Superhero Personality Test&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1334823365098022907?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1334823365098022907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1334823365098022907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1334823365098022907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1334823365098022907'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/03/am-i.html' title='AM I?'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5604341710120866765</id><published>2007-03-11T22:48:00.000+08:00</published><updated>2007-03-11T22:50:43.206+08:00</updated><title type='text'>23 Reasons to Smoke Marijuana</title><content type='html'>&lt;a href="http://questionthemark.org/2006/12/22/25-reasons-to-smoke-marijuana.aspx"&gt;23 Reasons to Smoke Marijuana&lt;/a&gt;

Note: Some of these reasons may seem like reasons to not &lt;i&gt;not &lt;/i&gt;smoke pot, but consider that the only thing holding people back from smoking pot may be rediculous stereotypes (all smokers are lazy) or untruths (it'll give me cancer), and thus these reasons, for those people, are actually reasons to smoke.

1) Nobody has ever died from smoking pot.

2) &lt;a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B6VC9-4GFCR48-5&amp;amp;_user=10&amp;_coverDate=06%2F20%2F2005&amp;amp;_rdoc=1&amp;_fmt=summary&amp;amp;_orig=browse&amp;_sort=d&amp;amp;view=c&amp;_acct=C000050221&amp;amp;_version=1&amp;_urlVersion=0&amp;amp;_userid=10&amp;md5=7dac506ad701a12cddfe8dd713f77138"&gt;Marijuana users report less depression&lt;/a&gt;

3) &lt;a href="http://ajrccm.atsjournals.org/cgi/gca?SEARCHID=1127855512481_8334&amp;amp;AUTHOR1=Tashkin%252C%2BD&amp;FULLTEXT=Marijuana&amp;amp;JOURNALCODE=&amp;FIRSTINDEX=0&amp;amp;hits=10&amp;RESULTFORMAT=&amp;amp;gca=155%2F1%2F141&amp;sendit=Get+All+Checked+Abstract%28s%29"&gt;Marijuana does not cause emphysema, unlike tobacco. &lt;/a&gt;

4) &lt;a href="http://www.webmd.com/content/article/122/114805.htm"&gt;Marijuana does not cause cancer (and if you  smoke it you are actually slightly less likely to get cancer)
&lt;/a&gt;

5) &lt;a href="http://ehp.niehs.nih.gov/docs/2000/108-10/correspondence.html#thc"&gt;THC actually helps cleanse the lungs, preventing tumors &lt;/a&gt;

6) &lt;a href="http://www.webmd.com/content/article/70/80972.htm"&gt;Daily marijuana use doesn’t damage your brain.
&lt;/a&gt;
7) &lt;a href="http://www.webmd.com/content/article/87/99417.htm"&gt;There has never been a study to link marijuana with psychological problems, though it’s not for a lack of trying.&lt;/a&gt;

8) &lt;a href="http://www.webmd.com/content/article/54/65298.htm"&gt;Marijuana is NOT a gateway drug.&lt;/a&gt;

9) &lt;a href="http://www.webmd.com/content/article/104/107266.htm"&gt;Marijuana fights hardened arteries&lt;/a&gt;

10) Marijuana has both s&lt;a href="http://www.webmd.com/content/article/92/101877.htm"&gt;talled the growth of&lt;/a&gt; and &lt;a href="http://americanmarijuana.org/pot.shrinks.tumors.html"&gt;eliminated brain tumors in rats&lt;/a&gt;. Such an experiment has yet to be done on humans.

11) Not that herd mentality is a good reason, but you’re not alone. Marijuana is the US’s &lt;a href="http://news.bbc.co.uk/2/hi/americas/6193073.stm&amp;e=14242&amp;amp;sa=X&amp;oi=news&amp;amp;ct=result&amp;cd=1&amp;amp;usg=__dGgPks6hgJfPF7c-RfJpr5H5iug="&gt;number one crop&lt;/a&gt;.

12) &lt;a href="http://www.druglibrary.org/special/tart/tart13.htm"&gt;Sex gets a whole lot better&lt;/a&gt;

13) &lt;a href="http://www.nida.nih.gov/Infofacts/marijuana.html"&gt;15 million people smoke it a month&lt;/a&gt; (US only).


14) Marijuana can prevent blindness.

15) Marijuana can prevent migraines.

16) Marijuana is less addictive than caffeine. There is no physical addiction but a slight mental addiction can develop.

17) In 1977 the DEA wanted to decriminalize marijuana. When the government, which has tried for so long to prove that marijuana is harmful, admits that it really isn't, shouldn't that tell you something?

18) Haven’t you always wanted to be able to laugh at Pauly Shore?

19) Because legality isn’t a good enough reason for you to not smoke. Slavery was once legal and sodomy was once illegal; legality is a horrid barometer for morality.

20) Because getting “high” isn’t “bad.” Though you may not realize it, eating meat or candy or fried foods or vegetables or drinking coffee, tea, or soda all effect your mental state. All of these things can make you “high.”

21) Because we don’t yet know all of the benefits of marijuana; the government has tried for years to prove that it is harmful and has consistently failed. Very few studies have explored its benefits.

22) Because you would be in the company of Louis Armstrong, the Beatles, Bob Denver, Bill Clinton, George Bush (okay, never mind him), famous scientist Carl Sagan, Michael Bloomberg, Lewis Caroll, George Washington Carver, Salvador Dali, Al Gore, Steve Jobs,  John kennedy, John Wayne, and George Washington.

23) Because it feels good and it doesn't hurt anyone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5604341710120866765?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5604341710120866765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5604341710120866765' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5604341710120866765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5604341710120866765'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2007/03/23-reasons-to-smoke-marijuana.html' title='23 Reasons to Smoke Marijuana'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-3261766635605005572</id><published>2006-12-17T15:27:00.000+08:00</published><updated>2008-12-10T00:32:21.256+08:00</updated><title type='text'>poor IE</title><content type='html'> 页面上有两个登陆窗口，由 DHTML 触发显示对应的登陆窗口。 第一个为默认 form 正常，第二个 form 则无法通过按回车键提交。
gooooogle 了一番发现 IE ""press enter" submit form 有限制，表单中必须存在：

&lt;pre name="code"&gt;&lt;input value="Submit" type="submit"&gt;&lt;/pre&gt;而非 button 或 image。

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-3261766635605005572?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/3261766635605005572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=3261766635605005572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3261766635605005572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/3261766635605005572'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2006/12/poor-ie.html' title='poor IE'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-115626032112757870</id><published>2006-08-22T23:20:00.000+08:00</published><updated>2006-08-22T23:52:44.406+08:00</updated><title type='text'>play with webthumb</title><content type='html'>记不清第一次是在什么地方见到 webthumb 了，就在前几天 del.icio.us 首页也增加了 web thumb 功能。  惊羡之余，Joshua Eichorn 如约放出 “&lt;a href="http://blog.joshuaeichorn.com/archives/2006/08/21/webthumb-rendering-engine-released/" title="Webthumb Rendering Engine Released"&gt;Webthumb Rendering Engine Released&lt;/a&gt; ”  兴奋 ing。

&lt;p&gt; webthumb 并没有真正 release，暂时还需要通过 &lt;a href="http://svn.op-en.org/listing.php?repname=pageprint&amp;path=%2F&amp;amp;sc=0"&gt;websvn&lt;/a&gt; 界面访问。Debian 系统下安装： &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt; #aptitude install mozilla-dev libgtk2.0-dev libglib2.0-dev libxml2-dev xvfb
&lt;/p&gt; &lt;p&gt; $cd pageprint/src/ &lt;/p&gt; &lt;p&gt; $make install
&lt;/p&gt; &lt;/blockquote&gt;并没有想象的顺利，出了一点小错误，
&lt;blockquote&gt; &lt;p&gt; HttpObserver.h:18: error: extra qualification 'HttpObserver::' on member 'SetupToModifyHeaders &lt;/p&gt; &lt;/blockquote&gt; OK,google 一把，貌似是 gcc4.1 兼容问题，换 gcc-4.0，一样的错误，修改 HttpObserver.h 18 行为：
&lt;blockquote&gt;  //void HttpObserver::SetupToModifyHeaders();
void SetupToModifyHeaders();&lt;/blockquote&gt;make 顺利通过，跑一把试试：
&lt;blockquote&gt;#cp PagePrint.xml /etc
$./PagePrint -s http://localost/ webthumb.jpg
Url: localost, Output: webthumb.jpg
Starting PagePrint

(PagePrint-bin:6239): Gtk-WARNING **: cannot open display:
&lt;/blockquote&gt;看来需要先起动模拟的 display：
&lt;blockquote&gt;$./scripts/runXvfb
$ ./PagePrint -s http://localost/ webthumb.jpg
Url: localost, Output: webthumb.jpg
Starting PagePrint
Xlib: connection to ":10.0" refused by server
Xlib: No protocol specified


(PagePrint-bin:6261): Gtk-WARNING **: cannot open display:
$
&lt;/blockquote&gt;模拟的 Xserver，client 连接未获得授权。
&lt;blockquote&gt;$ randomkey=`date +"%y%m%d%H%M%S"`
$xauth add ${HOST}:10 . $randomkey
$./PagePrint -s http://goodjobs.cn/ goodjobs
....
Attempting to Snapshot Webpage
Successfully wrote snapshot: goodjobs-thumb_small.jpg
Successfully wrote snapshot: goodjobs-thumb_medium.jpg
Successfully wrote snapshot: goodjobs-thumb_medium2.jpg
Successfully wrote snapshot: goodjobs-thumb_large.jpg
&lt;/blockquote&gt;great, it works!

自动生成了不同大小的四份图片，看看 medium2 的实际效果。

&lt;div style="text-align: center;"&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5445/1293/1600/goodjobs-thumb_medium2.0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5445/1293/320/goodjobs-thumb_medium2.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;
&lt;div style="text-align: left;"&gt;
注： &lt;ol&gt; &lt;li&gt; 系统为 Debian SID
&lt;/li&gt; &lt;li&gt; 实际运行 PagePrint 提示缺少 libgtkembedmoz.so，手工链接解决，不确定是否只是我本机问题。&lt;/li&gt; &lt;/ol&gt; &lt;blockquote&gt;ln -s /usr/lib/mozilla/libgtkembedmoz.so libgtkembedmoz.so&lt;/blockquote&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-115626032112757870?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/115626032112757870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=115626032112757870' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/115626032112757870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/115626032112757870'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2006/08/play-with-webthumb.html' title='play with webthumb'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-621118215118410605</id><published>2006-08-22T07:20:00.000+08:00</published><updated>2008-12-10T01:33:22.231+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>MySQL5 中文编码设定</title><content type='html'>MySQL 4.1+ 开始支持多语言，从 4.0 升级，最简单的设定：

&lt;pre name="code"&gt; [client]
default-character-set=gbk

[mysqld]
default-character-set=gbk
default-collation=gbk_chinese_ci

[mysqldump]
default-character-set=gbk

[mysql]
default-character-set=gbk &lt;/pre&gt; 重启，检查编码：
&lt;pre name="code"&gt;#/etc/init.d/mysql restart
$mysql -uroot
mysql&amp;gt; show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | gbk                        |
| character_set_connection | gbk                        |
| character_set_database   | gbk                        |
| character_set_filesystem | binary                     |
| character_set_results    | gbk                        |
| character_set_server     | gbk                        |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

mysql&amp;gt;
&lt;/pre&gt; 貌似一切 OK 了？ Wait, 用 PHP 试一把，类似结果：
&lt;pre name="code"&gt; |character_set_client | latin1 |
|character_set_connection | latin1 |
|character_set_database | gbk |
|character_set_filesystem | binary |
|character_set_results | latin1 |
|character_set_server | gbk |
|character_set_system | utf8 |
|character_sets_dir | /usr/share/mysql/charsets/ | &lt;/pre&gt;character_set_client 、|character_set_connection、character_set_results 被&lt;span style="background-color: rgb(51, 204, 0);"&gt;重置&lt;/span&gt;了！

如果你留意 MySQL 的 ChnageLog 你会发现，MySQL 5.0.13 添加了 skip-character-set-client-handshake 配置选项(&lt;a href="http://mysql.speedbone.de/doc/refman/5.0/en/news-5-0-13.html" title="Changes in release 5.0.13"&gt;Changes in release 5.0.13&lt;/a&gt; )， ChangeLog 如是说：

A new command line argument was added to &lt;span&gt;&lt;strong class="command"&gt;mysqld&lt;/strong&gt;&lt;/span&gt; to ignore client character set information sent during handshake, and use server side settings instead, to reproduce 4.0 behavior。

SO，加上看会有什么效果：
&lt;pre name="code"&gt; [mysqld]
default-character-set=gbk
default-collation=gbk_chinese_ci
skip-character-set-client-handshake

#/etc/init.d/mysql restart

$php5 test_charset.php
|character_set_client | gbk |
|character_set_connection | gbk |
|character_set_database | gbk |
|character_set_filesystem | binary |
|character_set_results | gbk |
|character_set_server | gbk |
|character_set_system | utf8 |
|character_sets_dir | /usr/share/mysql/charsets/ |
&lt;/pre&gt;此时 MySQL 的编码模式完全和 MySQL 4 兼容了。So far so good，直到，你需要多编码并存时，你会发现，skip-character-set-client-handshake 不允许客户端重新设置编码。

yep, right, blame MySQL。

最终的选择是，remove skip-character-set-client-handshake 设置项，fix your legacy code.

&lt;pre name="code"&gt;#在 select 数据库之前
SET NAMES @@YOUR_CHARACTER_SET
&lt;/pre&gt;

&lt;p&gt;UPDATE
    &lt;i&gt;2007-01-10: MySQL &gt; 5.0.27 已经修正了客户端充值字符集问题，不再需要skip-character-set-client-handshake 选项。&lt;/i&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-621118215118410605?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/621118215118410605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=621118215118410605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/621118215118410605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/621118215118410605'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2006/08/mysql5_22.html' title='MySQL5 中文编码设定'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1226139713965444199</id><published>2006-08-19T15:18:00.000+08:00</published><updated>2008-12-10T01:45:12.071+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>arp 设定小工具</title><content type='html'>近来局域网 arp 病毒颇为猖狂，每次设置静态 arp，苦不堪言。

&lt;pre name="code"&gt;
#arp -d 192.168.0.1
#ping 192.168.0.1
#ip neigh list //找出网关 arp
# arp -s 192.168.0.1 GATEWAY_ARP_ADDR
&lt;/pre&gt;

索性写了个 shell 教本，方便每次设置：
&lt;pre name="code"&gt;
#! /bin/sh

# arp util script

E_OPTERR=65

GW_ADDR=192.168.0.1
GW_HW_ADDR=00:e0:fc:xx:xx:xx

if [ "$#" -eq 0 ]
then
 echo "Usage $0 -[options d,s,b,t]"
 exit $E_OPTERR
fi

set -- `getopt "dsbt :" "$@"`

while [ ! -z "$1" ]
do
 case "$1" in
   -d) arp -d $GW_ADDR;;
   -s) ip neigh list;;
   -b) arp -s $GW_ADDR $GW_HW_ADDR;;
   -t) ping $GW_ADDR;;
    *) break;;
 esac

 shift
done

exit 0
&lt;/pre&gt;
使用起来 #arputil -dbt 方便不少；&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1226139713965444199?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1226139713965444199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1226139713965444199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1226139713965444199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1226139713965444199'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2006/08/arp_19.html' title='arp 设定小工具'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5345634338193682577</id><published>2006-08-19T09:42:00.000+08:00</published><updated>2008-12-10T00:32:14.485+08:00</updated><title type='text'>random things</title><content type='html'>&lt;ul&gt;&lt;li&gt; del.icio.us 内容表现增强，首页加了 &lt;span id="notifytext"&gt;thumbnails&lt;/span&gt;；&lt;/li&gt;&lt;li&gt; metacafe.com 换了 flv，flash7 不被支持，shame；&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.adobe.com/penguin.swf/2006/08/across_the_distros.html"&gt;Across The Distros&lt;/a&gt;, flash9 on Linux ，快点来吧，若是迟了，快乐也不那么痛快。
&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5345634338193682577?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5345634338193682577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5345634338193682577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5345634338193682577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5345634338193682577'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2006/08/random-things_19.html' title='random things'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6356955845552953234</id><published>2006-03-23T16:59:00.000+08:00</published><updated>2008-12-10T00:32:13.219+08:00</updated><title type='text'>Novell iFolder Open Source Project</title><content type='html'>&lt;a href="http://www.ifolder.com/"&gt;Novell iFolde&lt;/a&gt;r 开源了，将从 3 系列开始，iFolder1、iFolder2 是 Novell 早期产品，和现在开源的 iFolder3 并不兼容，目前只是一个 Server ，client 估计还需要等等。技术上基于 Mono/.NET，Novell 已经使用 Mono 进行企业开发，包括早先开源的 Hula，都会有一个 beagle 的 search 后端。RoadMap 上说将会考虑集成 bookmark，blog，wiki，f-spot，Calendars，gaim。Hula plus iFolder 稳定之后在开源群件这一块应该是无敌了，can't wait!

Novell 最近的一系列走向表明是一路 OpenSource 下去了，为他个喝彩。

不知道 iFolder 是甚么东东？ Novell 的&lt;a href="http://www.novell.com/products/ifolder/ifolder_flash_cont/novell_ifolder.html"&gt;介绍&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6356955845552953234?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6356955845552953234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6356955845552953234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6356955845552953234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6356955845552953234'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2006/03/novell-ifolder-open-source-project_23.html' title='Novell iFolder Open Source Project'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1633391364987716586</id><published>2006-03-22T16:52:00.000+08:00</published><updated>2008-12-10T01:45:12.072+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>virus and worms detection</title><content type='html'>&lt;pre name="code"&gt;
&lt;a href="http://groups.google.com/group/linux.debian.security/browse_thread/thread/7dae9aaedebc7bac/1f52a22f23dba6c7%231f52a22f23dba6c7"&gt;Javier say&lt;/a&gt;:
&lt;p&gt;
First things first, Snort is an Intrusion Detection System, so it's more targeted towards finding attacks in the network targeted against internal systems. However, Snort does provide rules for common virus signatures (transmitted through e-mail, by inspecting the SMTP traffic) and worms (by detecting their activity on the network). Notice, however, that if you want to detect new worms you should not rely on the Snort rules provided in the current stable release, as they are quite out of date.  You can download updated rules from snort.org. You might want to update it too using a backported package of a newer version than the one in stable [1]
&lt;/p&gt;&lt;p&gt;A separate method for detecting worms in your network is to prove the systems you manage using a vulnerability assesment tool. You can use Nessus for that (provided in Debian). Again, make sure that you use an updated version (not the one from stable, backports are available [2])
&lt;/p&gt;&lt;p&gt;Nessus provides some plugins to test for installed backdoors, trojans and known worms. However, a Nessus scan is quite intrusive (it might even kill some systems) so you should approach that possibility with care. You can update your Nessus server with new attack plugins using 'nessus-update-plugins'
&lt;/p&gt;&lt;p&gt;A third way to do what you propose (detect trojans, worms, etc.) is to do statistical analysis of the traffic generated by your clients and the amount of traffic (bandwith usage). That kind of analysis can enable to nail down some nasty clients. Sometimes you need to go down to the physical level (i.e. to the switches to obtain port statistics) since some worms might be doing TCP/IP spoofing (IIRC Slammer did this). In order to do statistical analysis it is usually good to keep up with Internet trends,
something you can do visiting the "Internet Storm Center" [3]. Some traffic (like constant outgoing traffic to port 135 against random or consecutive IP addresses) is usually an indicative of a worm spreading. Again, tools to do this include ntop, iptraf, darkstat (for statistical analysis) and ethereal, tcpdump, sniff, ettercap, nwatch adn sniffit (amongst others)
&lt;/p&gt;&lt;p&gt;Finally, since many of the virus nowadays are mass-mailing, it might be worth analysing the amount of outbound e-mail sent by internal clients. Even if you do not add an antivirus tool to your outgoing SMTP relay server (some av mail-server tools have already been commented on the replies you got) analysis of the amount of traffic might be sufficient to pin-point virus activity. There are a number of tools to generate that data, based on what you use as input (firewall logs, mail server logs...)
&lt;/p&gt;&lt;p&gt;Hmmm... I've rambled for enough time... Happy hunting! :-)
&lt;/p&gt;&lt;p&gt;Javier
&lt;/p&gt;&lt;p&gt;[1] The maintainer provided backports for 2.0.1-3 which are available at
&lt;a target="_blank" href="http://people.debian.org/%7Essmeenk/snort-stable-i386/"&gt;http://people.debian.org/~ssmeenk/snort-stable-i386/&lt;/a&gt; (I've tested those). I also made a backport (2.0.6-1) which I have testd also and can be retrieved from &lt;a target="_blank" href="http://people.debian.org/%7Ejfs/snort/"&gt;http://people.debian.org/~jfs/snort/&lt;/a&gt; Finally, you can find packages for 2.1.0 (I don't have experience on these) at  &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a target="_blank" href="http://www.backports.org/debian/dists/stable/snort/binary-i386/"&gt;http://www.backports.org/debian/dists/stable/snort/binary-i386/&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;[2] Official backports available at &lt;a target="_blank" href="http://people.debian.org/%7Ejfs/nessus"&gt;http://people.debian.org/~jfs/nessus&lt;/a&gt;
&lt;/p&gt;[3] &lt;a target="_blank" href="http://isc.incidents.org/"&gt;http://isc.incidents.org/&lt;/a&gt;
&lt;/pre&gt;

great explaination for me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1633391364987716586?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1633391364987716586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1633391364987716586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1633391364987716586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1633391364987716586'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2006/03/virus-and-worms-detection_22.html' title='virus and worms detection'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-4220130476223854585</id><published>2005-03-18T18:01:00.000+08:00</published><updated>2008-12-10T00:32:11.798+08:00</updated><title type='text'>Infrae 和 Nuxeo 在 Zope 3 技术上展开合作的一些看法</title><content type='html'>在潘大的 blog 看到的，回复不上去，索性贴在这里了。&lt;/div&gt;&lt;div class="BlogByLine"&gt;原文：&lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p&gt;&lt;span&gt;&lt;a href="http://nocache.czug.org/Members/panjy"&gt;panjy&lt;/a&gt; 提交于 2005-03-18 10:13&lt;/span&gt; &lt;/p&gt;&lt;p&gt;随着Five 0.3的发布，最近Infrae和Nuxeo在Zope3技术上开始逐渐活跃起来。&lt;/p&gt;&lt;br /&gt;

			&lt;p&gt;&lt;span class="link-external"&gt;&lt;a href="http://www.infrae.nl/"&gt;Infrae&lt;/a&gt;&lt;/span&gt;公司是Infrae的开发公司，&lt;span class="link-external"&gt;&lt;a href="http://www.nuxeo.com/en/"&gt;Nuxeo&lt;/a&gt;&lt;/span&gt;是CPS的开发公司。和Plone一样，Infrea和CPS都是Zope之上的，基于CMF的开源产品。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;目前Infrae和CPS首先是在&lt;span class="link-external"&gt;&lt;a href="http://www.czug.org/newsitems/five-0.3-released"&gt;Five 0.3&lt;/a&gt;&lt;/span&gt;的推出上进行合作开发，随后发布了&lt;span class="link-external"&gt;&lt;a href="http://www.zope.org/Members/infrae/news/infrae_nuxeo_cooperation"&gt;Zope3和合作声名&lt;/a&gt;&lt;/span&gt;，据说是要开发一个基于Zope3的ECMS产品，然后则是在Nuxeo巴黎主办的&lt;span class="link-external"&gt;&lt;a href="http://ecmsprint.nuxeo.org/sections/wiki"&gt;Zope3开发Sprint&lt;/a&gt;&lt;/span&gt;。&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;这两家公司开始把注意力投入Zope3，应该是非常好的消息。这个合作，或许也是因Plone在Zope2上的统治地位的一个回避吧。开源社区适度的竞争也是很好的。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p /&gt;&lt;p /&gt;&lt;p&gt;我的回复&lt;/p&gt;&lt;p&gt;非常利好的消息：&lt;/p&gt;&lt;p&gt;&lt;br /&gt;

前段时间在 Nuxeo 的 blog 区看到的新闻说到了“Zope3开发Sprint”，基本上看出 Nuxeo 工作中心将渐渐移到\r&lt;br /&gt;
zope3，随后在 zope 上就见到了这个合作申明，Nuxeo 的协作软件上优势加上 Infrae&lt;br /&gt;
的文档管理，是我一直以来最心仪的，当时看到他们展开合作的消息简直都乐不拢嘴。 &lt;img src="/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /&gt; &lt;/p&gt;&lt;p&gt;相信这会是 zope3 上重量级的开始，再加上 schollTool，霍霍，企业应用随手捻来。 &lt;/p&gt;&lt;p&gt;不过看上去这些东东，年底应该是一个可用的状态，而成熟我估计两年的时间。&lt;/p&gt;&lt;p /&gt;&lt;p&gt;&lt;a target="_blank" href="http://blogs.nuxeo.com/sections/blogs/eric_barroca/2005_03_07_zope_3_sprint_in_paris"&gt;http://blogs.nuxeo.com/sections/blogs/eric_barroca/2005_03_07_zope_3_sprint_in_paris&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.zope.org/Members/infrae/news/infrae_nuxeo_cooperation"&gt;http://www.zope.org/Members/infrae/news/infrae_nuxeo_cooperation&lt;/a&gt;&lt;/p&gt;&lt;p /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-4220130476223854585?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/4220130476223854585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=4220130476223854585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4220130476223854585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4220130476223854585'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/infrae-nuxeo-zope-3.html' title='Infrae 和 Nuxeo 在 Zope 3 技术上展开合作的一些看法'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-574814139214022085</id><published>2005-03-15T23:01:00.000+08:00</published><updated>2008-12-10T00:32:11.274+08:00</updated><title type='text'>PRADO 2.0 Released</title><content type='html'>&lt;p&gt;PRADO 2.0 正式版放出了，看 ChangeLog 主要是一些 BUG 修正：&lt;/p&gt;&lt;br /&gt;
&lt;pre name="code"&gt;Version 2.0 is the formal release over the previous RC release. It&lt;br /&gt;mainly fixes the bugs found in the RC and adds the Master/Content pages&lt;br /&gt;feature. Compared to the earlier version v1.7.1, several major features&lt;br /&gt;and components have been added, including I18N support, TDataList,&lt;br /&gt;TDataGrid, TWizard and many other components. &lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;&lt;span class="postbody"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2.0 版本改动相当大，整个库文件有 4M 之多，附带了 Blog，phonebook，I18N，JS 等范例，同样附带了完整的开发接口手册，tutorials 则不再随 PRADO 一同放出，而是放在了 &lt;a href="http://www.xisc.com/wiki/" target="_blank"&gt;WIKI&lt;/a&gt; 。&lt;/p&gt;&lt;p&gt;2.0 了，PRADO 的学习还没有排进我的学习计划，惭愧中。有时候会莫名的害怕，害怕自己还没有学会奔跑，倒是已经迷失或者是被同化被淘汰。&lt;/p&gt;&lt;p&gt;或许有担忧是好的，或许又是不好的，时间长了，所有激情都会被消磨一空，还是，还是让自己真正做点事情吧，就从现在，或许明天不一样 &lt;img src="/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="postbody"&gt;PRADO 2.0 下载地址：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://prdownloads.sourceforge.net/prado/prado-2.0.zip?download"&gt;http://prdownloads.sourceforge.net/prado/prado-2.0.zip?download&lt;/a&gt;&lt;/p&gt;&lt;p&gt;看上去 &lt;span class="gen"&gt;&lt;b&gt; Php-SqlMap &lt;/b&gt;会是一个独立的项目：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.xisc.com/forum/viewtopic.php?p=4874#4874"&gt;http://www.xisc.com/forum/viewtopic.php?p=4874#4874&lt;/a&gt;&lt;a target="_blank" href="http://prdownloads.sourceforge.net/prado/prado-2.0.zip?download"&gt;&lt;/a&gt;&lt;span class="postbody"&gt;&lt;br /&gt;&lt;br /&gt;

&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-574814139214022085?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/574814139214022085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=574814139214022085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/574814139214022085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/574814139214022085'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/prado-20-released.html' title='PRADO 2.0 Released'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1879244214275205768</id><published>2005-03-14T20:16:00.000+08:00</published><updated>2008-12-09T02:16:32.547+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='WYSIWYG'/><title type='text'>interactivetools 停止 htmlarea 开发</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;p&gt;interactivetools 决定&lt;a target="_blank" href="http://www.htmlarea.com/forum/WYSIWYG_Forums_C5/WYSIWYG_Editor_Discussion_F28/What_is_the_Official_Status_of_HTMLArea_3.0_P38489/"&gt;停止&lt;/a&gt; htmlarea2 和 htmlarea3 项目，不会在开源项目上继续开发，转而在&lt;a target="_blank" href="http://www.htmlarea.com/"&gt;网站&lt;/a&gt;给出了 WYSIWYG 编辑器的目录，其中收录了一些开源以及商业的 WYSIWYG 编辑器。&lt;/p&gt;&lt;p&gt;目前还没有人决定继续 htmlArea3 的开发，而同样功能的 &lt;a target="_blank" href="http://sourceforge.net/projects/fckeditor/"&gt;FCKEditor &lt;/a&gt;则发展的非常良好，一直高居 sourceforge 活跃前几位。或许是大家都需要转变的时候了，虽然目前看来 htmlArea 更稳定一些。&lt;/p&gt;&lt;p&gt;
一些同样优秀的开源 WYSIWYG 项目：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a target="_blank" href="http://kupu.oscom.org/"&gt;kupu&lt;/a&gt; 开发者众多，容易扩展；&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" href="http://sourceforge.net/projects/fckeditor/"&gt;FCKEditor&lt;/a&gt; 开发者众多，活跃度很高；&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
kupu 很适合与 zope 下的产品，官方放出的包都直接作为一个 Products 安装。而 FCKEditor 适合与集成到一些 PHP、.NET、JAVA 项目中。&lt;/p&gt;&lt;p&gt;另外同样在今天看到的新闻，有位 plone 爱好者已经做好了 &lt;a href="http://www.zope.org/Members/macadames/fckeditor2" target="_blank"&gt;FCKEditor for plone&lt;/a&gt; 的包，开源的优势很明显，常常你想要的已经都被做好了。&lt;/p&gt;&lt;p&gt;


&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1879244214275205768?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1879244214275205768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1879244214275205768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1879244214275205768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1879244214275205768'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/interactivetools-htmlarea.html' title='interactivetools 停止 htmlarea 开发'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-9144123525430357958</id><published>2005-03-11T19:07:00.000+08:00</published><updated>2008-12-09T02:15:25.098+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='broswer'/><category scheme='http://www.blogger.com/atom/ns#' term='mozilla'/><title type='text'>Mozilla 基金会停止 Mozilla 开发</title><content type='html'>&lt;p&gt;OsNews 的新闻：&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.osnews.com/comment.php?news_id=9930"&gt;Mozilla 1.8 Final Might Never Come&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mozilla 基金会主席认为说到“两年前就确定了 firefox 和 thunderbird 独立性套件将是以后的开发重点”，并且 Mozilla 1.8 缺少反馈等因素，造成开发缓慢，&lt;a target="_blank" href="http://mozillanews.org/?article=7d375325fdd6cd418bd037accac9a4ba"&gt;而大多数的人认为这是废话&lt;/a&gt;。真正的原因或许只有决策者清楚，而有小道消息说道 Mozilla 自家害怕 Mozilla 发展的太好与 firefox 冲突。&lt;/p&gt;&lt;p&gt;Mozilla 可能怎么也想不到 firefox 这个亲生孩子会将自己送进历史，很多东西与商业政治过密便会走味，而在 Mozilla 基金会身上越来越能感受到这种味道。纯粹的技术理想或许永远只是一个理想，相对望，在遥不可及的地方。&lt;/p&gt;&lt;p&gt;不 管 Mozilla 自身和 Mozilla 的忠实 Fans （我也是一个）愿不愿意，Mozilla 都将退出，接替者是完全由社区维护的 SeaMonkey（同样也是 Mozilla 1.8 的发行代号），而 Mozilla 基金会将提供基础设施（CVS，BUGZILLA，以及 1.7 的补丁等）。&lt;/p&gt;&lt;p&gt;William Gibson &lt;a target="_blank" href="http://weblogs.mozillazine.org/weirdal/archives/007705.html"&gt;认为&lt;/a&gt;继续好这一使命或许并不困难，但同时也提到他们需要更多的支持者，会使用 Mozilla 就好。&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-9144123525430357958?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/9144123525430357958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=9144123525430357958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/9144123525430357958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/9144123525430357958'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/mozilla-mozilla.html' title='Mozilla 基金会停止 Mozilla 开发'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8403891273442715996</id><published>2005-03-10T19:59:00.001+08:00</published><updated>2008-12-09T02:14:12.857+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>GNOME 2.10</title><content type='html'>&lt;span class="content"&gt;&lt;p&gt;&lt;a href="http://www.gnome.org/start/2.10/" target="_blank"&gt;GNOME 2.10 正式放出&lt;/a&gt;，主要的改进在支持语言、功能以及效率上。&lt;/p&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="content"&gt;Nautilus 更快更稳定；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="content"&gt;预先定制的桌面背景；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="content"&gt;符合 &lt;/span&gt;&lt;span class="content"&gt;&lt;a href="freedesktop.org"&gt;freedesktop.org&lt;/a&gt; 的桌面标准；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="content"&gt;基于 &lt;/span&gt;&lt;span class="content"&gt;GStreamer 后端的 Totem 播放器；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="content"&gt; Sound Juicer 音乐播放器；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="content"&gt;Epiphany 的书签管理功能、扩展功能；&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Evolution 中添加了天气预报，事件可以添加附件；&lt;/li&gt;&lt;li&gt;GnomeMeeting 和 Evolution 共享通讯录；&lt;/li&gt;&lt;li&gt;键盘控制更方便；&lt;/li&gt;&lt;li&gt;面板小程序重大改进；&lt;/li&gt;&lt;li&gt;gedit 文本编辑器更加高效、易用；&lt;/li&gt;&lt;li&gt;压缩文件管理软件可以识别更多类型（甚至支持密码保护的 RAR 文件）；&lt;/li&gt;&lt;li&gt;GNOME 字典程序（目前只有英文字典）；&lt;/li&gt;&lt;li&gt;硬件格式化工具（支持USB 设备）；&lt;/li&gt;&lt;li&gt;更丰富的系统管理工具；&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;GARNOME 下载在这里：&lt;/p&gt;&lt;p&gt;&lt;a href="http://cipherfunk.org/garnome/"&gt;http://cipherfunk.org/garnome/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;进入 Debian SID 估计还得等段时间，而 Sarge 看上去还不会很快发布，说不定 Sarge 的最终发布版本会是 KDE 3.4 和 GNOME 2.10 了。&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8403891273442715996?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8403891273442715996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8403891273442715996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8403891273442715996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8403891273442715996'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/gnome-210_10.html' title='GNOME 2.10'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1111555662217779293</id><published>2005-03-08T22:57:00.001+08:00</published><updated>2008-12-09T02:13:16.326+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Parrot 新进展，0.1.2放出</title><content type='html'>&lt;p&gt;正在大家怀疑 perl 6 的时候，代号为 Phoenix 的 Parrot  0.1.2 版本推出。&lt;/p&gt;&lt;p&gt;希望 Parrot 可以早日成熟，说不定有一天 PHP 也可以使用这一强大的动态语言核心引擎，脱离 zend 或许是最好的发展方向。&lt;/p&gt;&lt;p&gt;下载：&lt;a title="parrot-0.1.2  download" target="_blank" href="http://www.cpan.org/authors/id/L/LT/LTOETSCH/parrot-0.1.2.tar.gz"&gt;http://www.cpan.org/authors/id/L/LT/LTOETSCH/parrot-0.1.2.tar.gz&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1111555662217779293?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1111555662217779293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1111555662217779293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1111555662217779293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1111555662217779293'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/parrot-012_08.html' title='Parrot 新进展，0.1.2放出'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8553392810497930911</id><published>2005-03-05T21:26:00.001+08:00</published><updated>2008-12-09T02:10:24.400+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='i18n'/><category scheme='http://www.blogger.com/atom/ns#' term='plone'/><title type='text'>ZMILocalizer 实现了 ZMI 的 i10n</title><content type='html'>&lt;p&gt;ZMILocalizer 是 &lt;a href="http://www.coreblog.org/" target="_blank"&gt;COREBlog&lt;/a&gt; 衍生出的一个子项目，目前 CVS 中版本为 0.9b，使用 ZMILocalizer 加上台湾 Zope 社区放出的 &lt;a href="http://www.zope.org.tw/executive/zh-tw.po/zmilocalizer_l10n_zh.tgz/file_view" target="_blank"&gt;将Localizer 中文话包&lt;/a&gt; 安装过后即可实现 Zope ZMI 界面的中文话，目前我测试的结果是，新建的 plone 或其它产品可以正确显示中文，但是对于已经存在的部分目录，会出现乱码，可能是需要一些升级的动作？有待进一步的研究。&lt;/p&gt;&lt;p&gt;此 前曾经用过 CPS，可以对 ZMI 进行一些本地话，不过并不好用，Zope 3 的 ZMI 已经实现了 i18n，只缺少相应的中文 po 文件，联系过潘大，他们已经基本翻译完成了，但是可能还需要规范统一下字典，估计很快也会放出了。在加上这个 ZMILocalizer， Zope 世界的 i18n 算是全了。相信这对 Zope 在中文地区的推广会起到很大的帮助。 &lt;/p&gt;&lt;p&gt;ZMILocalizer CVS 下载：&lt;a href="http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/zope-j10n/ZMILocalizer/" target="_blank"&gt;http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/zope-j10n/ZMILocalizer/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8553392810497930911?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8553392810497930911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8553392810497930911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8553392810497930911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8553392810497930911'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/zmilocalizer-zmi-i10n_05.html' title='ZMILocalizer 实现了 ZMI 的 i10n'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5300046392929515721</id><published>2005-03-04T20:44:00.001+08:00</published><updated>2008-12-09T02:09:33.996+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise'/><title type='text'>PHP大步踏入企业市场？</title><content type='html'>&lt;p&gt;LinuxAid 传出的新闻：&lt;/p&gt;&lt;p&gt;25日，IBM宣布，将公司的30件开源项目在著名开源网站SourceForge.net上发布。同时IBM还表示，为将公司的开源 Java 数据库

&lt;a href="http://www-306.ibm.com/software/data/cloudscape/" target="_blank" title="IBM cloudscape DataBase"&gt;Cloudscape&lt;/a&gt; 与网页编程语言PHP相结合，即将与PHP工具企业ZendTechnologies进行合作。&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.oseac.org/archives/45-IBM-aec-30-aeca-SourceForge.html"&gt;http://blog.oseac.org/archives/45-IBM-aec-30-aeca-SourceForge.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.linuxaid.com.cn/infos/1/5/155623323.shtml" target="_blank"&gt;http://www.linuxaid.com.cn/infos/1/5/155623323.shtml&lt;/a&gt;&lt;/p&gt;&lt;p&gt;前 天在 agileph 见到有朋友说 IBM 开始支持 PHP，看来说的就是这个事情，PHP 5 发布已经半年多了，可能已经部分使用在了一些生长环境中，而在开发领域大家可能更多的是考虑PHP5 了，相对来说 PHP5 的面向对象要完善的多，也有错误处理以及更容易的处理 XML。&lt;/p&gt;&lt;p&gt;不过这些看看上去都不足以促使 IBM 加强对 PHP 的支持，在我一直的看法中，IBM 如果去做一件事情，那么肯定是可以为其以后带来利润或者说一些增长点。结合一些新闻中有一些数据“&lt;span class="contentblk"&gt;据IBM提供的数据，PHP 在 Web 开发领域占40%的份额，以基于PHP的Apache服务器作为Web服务平台的占到70%以上”，暂且不论数据的来源以及准确度，这 40% 大约是吸引 IBM 进入的真正原因？&lt;/span&gt;&lt;/p&gt;
不管其商业目的如何，这对 PHP 来说都是一个机遇，没有商业的支持，解决方案，PHP 或许永远都只是说笑中的“个人主页系统”。&lt;p&gt;
相关新闻链接：&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://tech.sina.com.cn/it/2005-03-01/1105538536.shtml"&gt;IBM和Zend签定PHP开发协议 积极推广开源产品&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.csdn.net/news/newstopic/19/19782.shtml"&gt; IBM推动PHP发展，是否寻求Java替身？&lt;/a&gt;&lt;/p&gt;&lt;p&gt;


&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5300046392929515721?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5300046392929515721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5300046392929515721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5300046392929515721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5300046392929515721'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/php.html' title='PHP大步踏入企业市场？'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-73858420496013876</id><published>2005-03-02T22:41:00.001+08:00</published><updated>2008-12-09T02:08:20.599+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Docbook'/><title type='text'>DocBook 资料链接</title><content type='html'>&lt;p&gt;从以前的 Wiki 中整理出来的,也不知道还有几个链接是有效的:&lt;/p&gt;&lt;p&gt;&lt;a href="http://docbook.org/tdg/en/html/docbook.html"&gt;The Definitive Guide &lt;/a&gt; DocBook线上官方手册






来自台湾的朋友老貢生之作 强烈推荐!


&lt;a href="http://www.study-area.org/tips/docw/docwrite.html"&gt;DocBook 文件寫作入門&lt;/a&gt;


&lt;a href="http://www.study-area.org/tips/doctrans/doctrans.html"&gt;DocBook XML/SGML Processing Using OpenJade&lt;/a&gt;


&lt;a href="http://www.study-area.org/tips/docadv/docadv.html"&gt;DocBook 文件制作进阶（一）文件模块化&lt;/a&gt; 新





&lt;a href="http://pyrecord.freezope.org/docbook/docbook/index.html"&gt;DocBook学习 又一新作，作者是LinuxForum的limodou&lt;/a&gt;


&lt;a href="http://pyrecord.freezope.org/articles/doc2004030301/show"&gt;http://pyrecord.freezope.org/articles/doc2004030302/show saxon实践(一)(二)&lt;/a&gt;





更多丰富的教程



&lt;a href="http://docbook.org/wiki/moin.cgi/DocBookTutorials"&gt;DocBook官方网站提供的 tutorials&lt;/a&gt;


&lt;a href="http://www.lodestar2.com/people/dyork/talks/2002/ols/docbook-tutorial/"&gt;DocBook初学者入门网站，提供文件原始档案&lt;/a&gt;


&lt;a href="http://docbook.org/wiki/moin.cgi/DocBookXslStylesheetDocs"&gt;DocBook XSL 参考手册&lt;/a&gt;


&lt;a href="http://i18n.kde.org/doc/markup/index.html"&gt;The KDE DocBook Authors guide&lt;/a&gt;


&lt;a href="http://developer.gnome.org/projects/gdp/handbook/gdp-handbook/"&gt;GNOME Handbook of Writing Software Documentation&lt;/a&gt;


&lt;a href="http://xml.web.cern.ch/XML/goossens/dbatcern/index.html"&gt;Writing Documentation Using DocBook: Using DocBook at CERN&lt;/a&gt;





其他相关资料


&lt;a href="http://www.worldhello.net/doc/docbook_howto/DocBook"&gt;DocBook助你完成传世之作  (未完成)&lt;/a&gt;



&lt;a href="http://www.ascc.net/nl/91/1806/03.txt"&gt;DocBook文件转换环境设定 ...[ 繁体 ] （上）&lt;/a&gt;
&lt;a href="http://www.ascc.net/nl/91/1807/03.txt"&gt;（下）&lt;/a&gt;



&lt;a href="http://pub.uibe.edu.cn/%7E20031/mywiki/moin.cgi/DocBookFromScratch"&gt;DocBookFromScratch&lt;/a&gt;



&lt;a href="http://www-900.ibm.com/developerWorks/cn/xml/x-matters/part3/index.shtml"&gt;分页&lt;/a&gt;
&lt;a href="http://www-106.ibm.com/developerworks/library/x-xslt/?dwzone=x"&gt;XSLT 是什么类型的语言&lt;/a&gt;
&lt;a href="http://www.ibs.uni-bielefeld.de/src/XML"&gt;XML格式转换图示&lt;/a&gt;





&lt;a href="http://www.xml-dev.com/blog/test.php"&gt;Online DocBook to HTML / PDF convertor &amp;amp; DocBook validator&lt;/a&gt;





相关站点：



&lt;a href="http://trieloff.net/docbook/"&gt;Software Documentation Weblog&lt;/a&gt;





&lt;/p&gt;&lt;hr size="1" noshade="noshade"&gt;

Dsssl相关


&lt;a href="http://docbook.sourceforge.net/release/dsssl/current/doc/"&gt;How-to documentation&lt;/a&gt;


&lt;a href="http://docbook.sourceforge.net/release/dsssl/current/doc/html/"&gt;Parameter reference: HTML stylesheets&lt;/a&gt;


&lt;a href="http://docbook.sourceforge.net/release/dsssl/current/doc/print/"&gt;Parameter reference: print stylesheets&lt;/a&gt;


&lt;a href="http://www.miwie.org/docbook-dsssl-faq.html"&gt;DocBook DSSSL Stylesheet FAQ&lt;/a&gt;


&lt;a href="http://www.dpawson.co.uk/docbook/dsssl/dsssl.html"&gt;Docbook DSSSL Stylesheets&lt;/a&gt;


&lt;a href="http://www.dpawson.co.uk/docbook/dsssl/dssslgeneral.html"&gt;General DSSSL stylesheet Questions&lt;/a&gt;



&lt;a href="http://www.prescod.net/dsssl/"&gt;Introduction to DSSSL&lt;/a&gt;


&lt;a href="http://www.mulberrytech.com/dsssl/dsssldoc/cookbook/cookbook.html"&gt;The DSSSL Cookbook&lt;/a&gt;





&lt;hr size="1" noshade="noshade"&gt;

XML技术的相关资源和教程


&lt;a href="http://www.bihu.net/html/bbs/viewthread.php?tid=2055"&gt;http://www.bihu.net/html/bbs/viewthread.php?tid=2055&lt;/a&gt;


&lt;a href="http://cmpp.linuxforum.net/XML/"&gt;http://cmpp.linuxforum.net/XML/&lt;/a&gt;


&gt;&lt;a href="http://www.linuxforum.net/forum/showflat.php?Cat=&amp;amp;Board=xml&amp;amp;Number=105224&amp;amp;page=0&amp;amp;view=collapsed&amp;amp;sb=5&amp;amp;o=31&amp;amp;fpart="&gt;来自LinuxForum论坛XML版块&lt;/a&gt;





Chinese XML NOW!



&gt;&lt;a href="http://www.ascc.net/xml/zh/GB/"&gt;http://www.ascc.net/xml/zh/GB/&lt;/a&gt;





XML站点:


&lt;a href="http://www.xml.org.tw/"&gt;http://www.xml.org.tw/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-73858420496013876?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/73858420496013876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=73858420496013876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/73858420496013876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/73858420496013876'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/03/docbook_02.html' title='DocBook 资料链接'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-374939228530315637</id><published>2005-03-01T01:21:00.001+08:00</published><updated>2008-12-09T02:07:10.799+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Knoppix'/><category scheme='http://www.blogger.com/atom/ns#' term='grub'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='rescue'/><title type='text'>使用 Knoppix 拯救 Debian 启动</title><content type='html'>早上上班发现公司的 Debian 服务器出问题了，接上显示器，查看问题，结果到



grub 便出现问题了，grub 的 shell 也进不去了，赶紧的下载 knoppix，刻录。使用 knoppix 启动。

&lt;pre name="code"&gt;knoppix 2&lt;/pre&gt;



进入字符模式准备修复系统。挂载硬盘上的 Debian。

&lt;pre name="code"&gt;mount -t ext3 /dev/hdc1 /mnt/hdc1
chroot /mnt/hdc1 /bin/bash
mount -t proc proc /proc&lt;/pre&gt;




这时已经 chroot 到了硬盘上的 Debian，重新安装 grub：\r

&lt;pre name="code"&gt;/sbin/grub
grub&amp;gt; root (hd0,0)
grub&amp;gt; setup (hd0)&lt;/pre&gt;&lt;p&gt;



结果出现错误，告知 /boot/grub/stage1 未找到，Oops，怎么可能，检查系统，



发现整个 boot 目录都丢失了。好吧好吧，那就重新安装 kernel 和 grub。&lt;/p&gt;&lt;p&gt;apt-cache search kernel | grep image


apt-get install kernel-image-2.6.8-2-686



&lt;/p&gt;&lt;p&gt;又是错误，网络还没配置好嘞。回到 knoppix:

&lt;/p&gt;&lt;pre name="code"&gt;network-setup&lt;/pre&gt;



选择网卡设备，报错，未找到任何设备，knoppix 号称设备检测超强也会出现这



个问题？仔细一想，Sarge 中网卡没有任何问题，那么肯定是可以驱动的，可能未找到这个设备?

lspci

发现网卡是 3COM 的 3c940 1000M，google 一下，有两种驱动可用 3c2000 和




sk98lin，查看系统 /lib/modules 下对应驱动，未找到 3c2000 倒是有一个 sk98lin 目录。



&lt;pre name="code"&gt;modprobe sk98lin&lt;/pre&gt;



OK，网卡正确驱动了，再次执行 network-setup 配置网络，网卡配置好后，再次



chroot 到 Debian 并安装 kernel-image

&lt;pre name="code"&gt;apt-get install kernel-image-2.6.8-2-686&lt;/pre&gt;



根据提示信息 update-grub，建立了 /boot/grub/menu.lst，拷贝 stage1 等文




件到 /boot/grub

&lt;pre name="code"&gt;cp /lib/grub/i386-pc/* /boot/grub/
# 安装 grub
grub
grub&amp;gt; root (hd0,0)
grub&amp;gt; setup (hd0)&lt;/pre&gt;



提示 grub 已经正确安装，至此整个 Debian Sarge 救活了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-374939228530315637?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/374939228530315637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=374939228530315637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/374939228530315637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/374939228530315637'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/12/knoppix-debian.html' title='使用 Knoppix 拯救 Debian 启动'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-285303468849745003</id><published>2005-02-03T03:54:00.001+08:00</published><updated>2008-12-09T02:05:41.299+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VOIP'/><category scheme='http://www.blogger.com/atom/ns#' term='Skype'/><title type='text'>Skype for Linux 1.0 放出了</title><content type='html'>&lt;p&gt;    已经忘记前几天在什么地方看到一位朋友说他的公司为员工配置麦克风，称Skype 进入企业了，现在跨平台的 Skype 出来，互通必然更加方便也多了一些选择。回头想想这个世界发展真是迅猛，VoIP 已经被忘却了吧。&lt;/p&gt;&lt;p&gt;&lt;a title="skype for linux" target="_blank" href="http://www.skype.com/company/news/2005/macosx_linux_v1.html"&gt;http://www.skype.com/company/news/2005/macosx_linux_v1.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-285303468849745003?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/285303468849745003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=285303468849745003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/285303468849745003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/285303468849745003'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/02/skype-for-linux-10_03.html' title='Skype for Linux 1.0 放出了'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1620802062613343941</id><published>2005-01-21T05:10:00.001+08:00</published><updated>2008-12-09T02:04:48.148+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><title type='text'>Open Source 项目管理软件</title><content type='html'>&lt;p&gt;做个简单记录，有时间整理。&lt;/p&gt;&lt;p&gt;PHP：&lt;/p&gt;&lt;p&gt;dotProject：http://www.dotproject.net/&lt;/p&gt;&lt;p&gt;group-office：http://group-office.sourceforge.net/&lt;/p&gt;&lt;p&gt;phpcollab：http://www.php-collab.org/&lt;/p&gt;&lt;p&gt;netoffice：http://netoffice.sourceforge.net/&lt;/p&gt;&lt;p&gt;XOOPS Forge：dev.xoops.org&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1620802062613343941?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1620802062613343941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1620802062613343941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1620802062613343941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1620802062613343941'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/01/open-source_21.html' title='Open Source 项目管理软件'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-4133478739714298242</id><published>2005-01-19T02:33:00.001+08:00</published><updated>2008-12-09T02:03:36.173+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>BZFlag 2.0.0 "Falcor's Despair" 放出</title><content type='html'>&lt;p&gt;sourcefroge 今天的新闻，代号 "Falcor's Despair" 的 &lt;a href="http://sourceforge.net/projects/bzflag/" title="bzflag projects"&gt;BZFlag &lt;/a&gt;2.0.0 放出官方新闻称有许多新特性：support for vastly more complex worlds, physics drivers, graphics improvements, weather (rain, snow, frogs), tank treads and tracks,


animations, record and playback, new flags, new commands, optimizations...&lt;/p&gt;&lt;p&gt;BZFlag 是一款跨平台的 3D 坦克大站游戏。支持多人网络互连，也可以于bot 练习。&lt;/p&gt;&lt;div style="width: 400px;" class="serendipity_imageComment_center"&gt;&lt;div class="serendipity_imageComment_img"&gt;&lt;img src="uploads/screenshot/game_bzflag_0119.serendipityThumb.jpg" width="400" height="300" hspace="5" border="0" /&gt;&lt;/div&gt;&lt;div class="serendipity_imageComment_txt"&gt;BZFlag screenshot&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Linux 下的游戏很少，而优秀的 BZFlag 基本上是 Linux 下游戏的代表，一些老外谈到 Linux 上的游戏时，总是爱抬出 BZFlag  说，“BZFlag rules!”。&lt;/p&gt;&lt;p&gt;Linux 在 Desktop 世界的致命伤就在游戏，或许是因为整个桌面产业还不完善，或许是自身的原因，没有在游戏方面表现优秀的图形库，游戏库，以及硬件加速。要改变这种局面恐也非一时之间，只希望能够再快些。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-4133478739714298242?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/4133478739714298242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=4133478739714298242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4133478739714298242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4133478739714298242'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/01/bzflag-200-despair_19.html' title='BZFlag 2.0.0 &amp;quot;Falcor&amp;#39;s Despair&amp;quot; 放出'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8471438052410176204</id><published>2005-01-19T01:54:00.001+08:00</published><updated>2008-12-09T02:02:10.300+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='BBS'/><title type='text'>phpBB 下一个发布版本将是 3 系列</title><content type='html'>&lt;p&gt;phpBB 官方消息，下一个发布版本将不在是 2.2，取而代之将是代号为“&lt;span class="postbody"&gt;&lt;span style="font-weight: bold;"&gt;Olympus&lt;/span&gt;”的 phpBB3，官方称，这是由于其版本改变太大，与 2 系列不兼容，所以命名为 2.2 不再适合，而跳到版本 3 系列符合命名规则。并且称，并非于其它 php 的 BBS 系统竞争的缘故。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;span class="name"&gt;&lt;b&gt;psoTFX &lt;/b&gt;同时还透露&lt;/span&gt;&lt;span class="postbody"&gt;"Olympus" 新特性还包括一个由 &lt;/span&gt;&lt;span class="postbody"&gt;subSilver 的设计师设计&lt;/span&gt;&lt;span class="postbody"&gt;的新样式，并且非常漂亮，但是现在不会放出，需要等到三月份时候与 phpBB&lt;/span&gt;3 同时放出。&lt;/p&gt;&lt;p&gt;
霍霍，是不是很期待了呢？&lt;/p&gt;&lt;p&gt;全文见：&lt;/p&gt;&lt;p&gt;&lt;a title="phpBB news" href="http://www.phpbb.com/phpBB/viewtopic.php?f=14&amp;amp;t=256072"&gt;http://www.phpbb.com/phpBB/viewtopic.php?f=14&amp;amp;t=256072&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8471438052410176204?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8471438052410176204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8471438052410176204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8471438052410176204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8471438052410176204'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/01/phpbb-3_19.html' title='phpBB 下一个发布版本将是 3 系列'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6727539309573634434</id><published>2005-01-19T01:31:00.001+08:00</published><updated>2008-12-09T02:00:59.203+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Reader'/><title type='text'>Adobe Reader for linux 7.0 Beta1 试用手记</title><content type='html'>&lt;p&gt;Adobe Reader for linux 7.0 Beta1 最近放出，供用户测试。&lt;/p&gt;&lt;p&gt;马上下载试用，感觉非常棒。由于7.0 的 Adobe Reader for linux 采用了 GTK2 作为界面，程序外观比较 5.08 的 Motif 界面有了非常大的改观。&lt;/p&gt;



&lt;div style="width: 400px;" class="serendipity_imageComment_center"&gt;&lt;div class="serendipity_imageComment_img"&gt;&lt;a href="http://www.blogger.com/uploads/adobe_reader7.png"&gt;&lt;img src="http://www.blogger.com/uploads/adobe_reader7.serendipityThumb.png" width="400" height="300" hspace="5" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="serendipity_imageComment_txt"&gt;Adobe Reader for linux 7.0 Beta1 &lt;/div&gt;&lt;/div&gt;&lt;p&gt;对中文的支持也已经不错，支持中文书签了，光是这一条就值得我升级了。&lt;/p&gt;&lt;p&gt;由于是 Beta1 版本，还是有很多的 bug，经常性的会崩溃，对中文文件名支持不是很好，在主界面中不能直接打开中文文件名的文件(需要对 locale 做一些设定，而直接在 shell 或通过文件管理器中打开没有问题)，希望正式版出来的时候会有所改善。&lt;/p&gt;&lt;p&gt;
联想到前端时间 Adobe 招募 Linux 架构师以及 macromedia 准备加大 Linux 平台的开发力度，不禁想感叹，Linux 的桌面办公时代真的不远了。 &lt;img src="http://www.blogger.com/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6727539309573634434?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6727539309573634434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6727539309573634434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6727539309573634434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6727539309573634434'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2005/01/adobe-reader-for-linux-70-beta1_19.html' title='Adobe Reader for linux 7.0 Beta1 试用手记'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-9183873351403936648</id><published>2004-08-25T01:18:00.001+08:00</published><updated>2008-12-09T01:59:39.620+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>OpenCroquet 将于 2004 年 9 月首次发布</title><content type='html'>The &lt;a href="http://www.opencroquet.org/"&gt;OpenCroquet&lt;/a&gt; Project is

near its first release. As written on their homepage: "WHAT IF..."


...we were to create a new operating system and user interface knowing

what we know today, how far could we go? What kinds of decisions would

we make that we might have been unable to even consider 20 or 30 years

ago, when the current set of operating systems were first created?


这是一场革命吗？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-9183873351403936648?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/9183873351403936648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=9183873351403936648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/9183873351403936648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/9183873351403936648'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/08/opencroquet-2004-9_25.html' title='OpenCroquet 将于 2004 年 9 月首次发布'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-4885457430774097332</id><published>2004-08-18T01:21:00.001+08:00</published><updated>2008-12-09T01:58:26.194+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='XOOPS'/><title type='text'>XOOPS 的 Session 不会过期问题</title><content type='html'>PHP 中的 session 由 &lt;tt class="parameter"&gt;session.gc_maxlifetime 控制，超过 &lt;/tt&gt;&lt;tt class="parameter"&gt;session.gc_maxlifetime 时间的被垃圾处理函数回收。

最近用 xoops 的时候发现很怪的问题，session 不会失效了，期间没有动过程序，升级过一次 PHP，配置文件用的是 php.ini-recommended，查看 php.ini 发现 &lt;/tt&gt;session.gc_divisor 为 1000，相应的 &lt;tt class="parameter"&gt;&lt;i&gt;session.gc_probability 为 1&lt;/i&gt;&lt;/tt&gt;，\


也就是说 session 初始化 1000 次才会有一次调用垃圾处理函数（按照几率来算的），而测试站点根本就没有什么访问量，导致

session 不会过期，将 session.gc_divisor 改为 php.ini-dist 中的 100，问题解决 。
记录在此备查。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-4885457430774097332?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/4885457430774097332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=4885457430774097332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4885457430774097332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4885457430774097332'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/08/xoops-session_18.html' title='XOOPS 的 Session 不会过期问题'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2375232448701732830</id><published>2004-04-17T16:20:00.001+08:00</published><updated>2008-12-09T01:57:44.130+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>colinux－让你在 windows 下运行 Linux</title><content type='html'>&lt;p&gt; Cooperative Linux简称 coLinux，类似 VMWare 可以让我们在 Windows 下使用 Linux 的开源软件。在写这篇文章的时候 coLinux 的最新版本是 0.6，可以从下列地址下载：


&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;http://colinux.sourceforge.net/?section=downloads


&lt;/li&gt;&lt;li&gt;http://sourceforge.net/project/showfiles.php?group_id=98788


&lt;/li&gt;&lt;/ul&gt;



&lt;p&gt;安装很简单，选择安装到目录 C:\coLinux，最后会自动安装 TAP-Win32 Adapter 网卡。


然后需要从这里下载任意一个根文件系统：


http://sourceforge.net/project/showfiles.php?group_id=98788&amp;amp;package_id=108058



我下载的是 Debian，解压到 coLinux 的安装目录。


注意：解压后会有 1G 的大小。&lt;/p&gt;



&lt;p&gt;设定 coLinux


用文本编辑器打开 default.colinux.xml，需要做一些修改：


1、修改"\DosDevices\c:\colinux\root_fs" 为 "\DosDevices\c:\colinux\Debian-3.0r0.ext3.1gb"&lt;/p&gt;



&lt;p&gt;2、如果你没有添加 swap分区，修改"\DosDevices\c:\colinux\swap_device" enabled="ture"为"\DosDevices\c:\colinux\swap_device" enabled="false"&lt;/p&gt;




&lt;p&gt;3、network index="0" type="tap" name="TAP" TAP 后需要一个结束标签 &amp;gt;&lt;/p&gt;



&lt;p&gt;ok，运行一下 colinux-daemon.exe 出来一个 DOS 窗口，然后一个熟悉的 Debian 出来了。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2375232448701732830?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2375232448701732830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2375232448701732830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2375232448701732830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2375232448701732830'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/04/colinux-windows-linux_17.html' title='colinux－让你在 windows 下运行 Linux'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-1387568425812489856</id><published>2004-04-16T16:19:00.001+08:00</published><updated>2008-12-09T01:56:12.211+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>原来 Mambo 获得了LinuxUser &amp; Developer Expo 2004 提名</title><content type='html'>&lt;p&gt;
刚刚在 mambo 老巢看到的：http://www.mamboserver.com/

于mambo对决的还有 eGroupWare、Firebird SQL、KDE，Mambo Open Source排在最后。

&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-1387568425812489856?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/1387568425812489856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=1387568425812489856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1387568425812489856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/1387568425812489856'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/04/mambo-linuxuser-developer-expo-2004_16.html' title='原来 Mambo 获得了LinuxUser &amp; Developer Expo 2004 提名'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6446924544660232602</id><published>2004-04-16T00:11:00.001+08:00</published><updated>2008-12-09T01:54:38.436+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>Mambo CMS安装</title><content type='html'>1。下载mambo
#mkdir mambo
#cd mambo
#wget http://mosforge.net/frs/download.php/337/MamboV4.5-Stable-1.0.7.tar.gz

2。解压
#tar zxvf MamboV4.5-Stable-1.0.7.tar.gz

3。安装
直接到输入 Mambo 目录 URL进行安装，会自动定位到安装目录：
http://192.168.48.129/mambo/
如果有不满足的条件会有提示，根据提示修改即可，我的是目录权限有问题：
#chmod -R 707 images media uploadfiles components language modules templates administrator/backups administrator/components
修改过权限后刷新 mambo 的 URL，只有：
configuration.php      Unwriteable
这么一个条件不满足，不过提示是此文件会自动生成，可以继续安装。
点击 Continue。

4。数据库配置
在此页填写正确的数据库信息，如：localhost、用户名、密码、数据库名称。
底下有几个单选框用于删除表、备份表、使用简单数据库、使用帮助，默认就可以了。
点击 Next。

5。其它
在这个页面输入站点名称，Next后填写你的 E－mail、密码其它默认，然后 Next，将下面生成的内容保存到 mambo目录下命名为 configuration.php，修改权限：
chmod 644 configuration.php
点击 Run OK。

6。管理
管理登陆页面在：
Go to http://www.yoursite.com/administrator/

用户名 : admin
密码    : 你自己设定的


默认的 template 非常漂亮，我很喜欢。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6446924544660232602?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6446924544660232602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6446924544660232602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6446924544660232602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6446924544660232602'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/04/mambo-cms_16.html' title='Mambo CMS安装'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2783252537844628578</id><published>2004-04-11T16:39:00.001+08:00</published><updated>2008-12-09T01:53:33.581+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome'/><title type='text'>gnome 之痛</title><content type='html'>&lt;p&gt; 回想当初用 Linux 的时候 GNOME 还是 1.x，那个时候的 GNOME 用简陋来形容是绝对不过份的，而今 GNOME

已经到了 GNOME 2.6(gtk 2.4)。虽然那个时候的 GNOME 非常简陋而且我们有更好的选择

KDE，但是仍然有相当一大部分的追随者，而且相当多的是 Linux 的 Old User，多多少少他们也影响了相当一部分人开始使用 GNOME。&lt;/p&gt;



&lt;p&gt; 我也同样是在这样一些人的影响之下从 KDE 转到了 GNOME，因为那个时候的 KDE 速度没有 GNOME 快(这也是相当一部分人用

GNOME 的原因)，由于这个原因我对 GNOME 还是很满意的，直到有一次我使用了该死的

Nautilus。我将原先备份的文件夹拷贝回去覆盖掉现在文件夹中相同的文件，Nautilus

给了我两个选项(跳过和替换)。于是我城隍成恐地选择了“覆盖”，恶梦就这样出现了，它将我现在文件夹中的所有文件删除了，然后将原先的备份文件夹放在这\r


里，而后来那些增量的文件都消失了。幸运的是，重要的东西我还有备份，只是花了一下午的时间整理。自此我决绝弃用 GNOME，转了一圈子回头还是使用

KDE。&lt;/p&gt;



&lt;p&gt;  而今，GNOME 已经是 2.6 了，作为 GNOME 的重量级组件 Nautilus 依然没有根本上的改变，在我看来即不友好，又不忠诚。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2783252537844628578?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2783252537844628578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2783252537844628578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2783252537844628578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2783252537844628578'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/04/gnome_11.html' title='gnome 之痛'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-7633886567181926544</id><published>2004-04-10T21:00:00.001+08:00</published><updated>2008-12-09T01:52:34.498+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>升级gnome 2.6</title><content type='html'>&lt;p&gt;  gnome 2.6 于 2004/03/31 正式发布的，没有首先进入 Debian 的 SID 而是进入 experimental，可能是考虑到不会放入即将发行的 sarge 的缘故。&lt;/p&gt;


&lt;p&gt;  今天自己动手升级了一下，发现安装还是有些问题，不过还好都解决了。&lt;/p&gt;



&lt;p&gt;  要安装 experimental 中的包必须有 experimental 的源。我的 sources.list 中是这样的：


&lt;/p&gt;&lt;pre name="code"&gt;

deb http://debian.cn99.com/debian/ ../project/experimental main contrib non-free

&lt;p&gt;然后需要:

#apt-get update

#apt-get -t experimental gnome-core
&lt;/p&gt;&lt;/pre&gt;


配置过程中出现了一些错误，hicolor-icon-theme 与 kdelibs-data 中有文件冲突，导致 apt-get 处理错误，解决也很简单：


&lt;pre name="code"&gt;

#dpkg --configure -a

配置所有的包，这一步不是必须的，只是我这么做了。

#cd /var/cache/apt/archives/

#dpkg -i --force-overwrite hicolor-icon-theme_0.5-1_all.deb

#apt-get dist-upgrade
&lt;/pre&gt;


 清除掉以前的 gnome 配置文件，至此成功升级 gnome 2.6 。\r




&lt;p&gt;  gnome 2.6 的样子是没有多少改变的，可以感受到的改变在于速度，比如帮助系统以及 Nautilus 的速度提升都是可以感受到的。另外的改变大约就在 GTK-2.4 以及 Gstreamer。&lt;/p&gt;



&lt;p&gt;参考文章：


1. &lt;a href="http://www.osnews.com/story.php?news_id=6662" target="_blank"&gt; Looking at the New Gnome 2.6 &lt;/a&gt;&lt;/p&gt;



&lt;a name="more"&gt;&lt;/a&gt;

&lt;p&gt;ScreenShot：


&lt;a href="http://blog.oseac.org/uploads/gnome-2.6.png" target="_blank"&gt;&lt;img src="http://blog.oseac.org/uploads/gnome-2.6.png" width="644" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-7633886567181926544?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/7633886567181926544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=7633886567181926544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7633886567181926544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7633886567181926544'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/04/gnome-26.html' title='升级gnome 2.6'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8444897113004140550</id><published>2004-03-26T01:53:00.001+08:00</published><updated>2008-12-09T01:50:46.412+08:00</updated><title type='text'>金山 kingstorm--飓风办公软件Beta 0.9</title><content type='html'>&lt;p&gt;具体网址在：


http://www.kingsoft.com/kingstorm/stormdown_3-24.html&lt;/p&gt;



&lt;p&gt;下载在(文件大小276M)：


http://www.kingsoft.com/download/wps/linux.rar



下载后安装 :


#rar x linux.rar


#cd Linux


#chmod 700 install


#./install&lt;/p&gt;



&lt;p&gt;安装完成可以在/usr/local/KingStorm1.0找到，其实就是一个 OpenOffice 的衍生版本，和 redoffice 一样，加入了中文字体，金山添加的新功能有字典，中文文章朗读。&lt;/p&gt;



&lt;p&gt;


有网友说对 word 的兼容性还不及openoffice1.1.1firefly版，我不清楚，word我不用，OO 我也是不用的，^_^。&lt;/p&gt;




&lt;p&gt;大体看了一下，对字体解决的还算可以，如果你懒得自己解决字体等等的问题，用金山的这个还是很好的，至少这个测试版本又没有要 $ ，而且也没说有时间限制。 ; )&lt;/p&gt;



&lt;p&gt;当OO用吧。&lt;/p&gt;



截图：


&lt;a target="_blank" href="http://web.archive.org/web/20050425095344/http://blog.oseac.org/uploads/KingStorm0.9Build1226.png"&gt;&lt;img src="http://web.archive.org/web/20050425095344/http://blog.oseac.org/uploads/KingStorm0.9Build1226.png" width="400" height="300" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8444897113004140550?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8444897113004140550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8444897113004140550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8444897113004140550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8444897113004140550'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/kingstorm-beta-09_26.html' title='金山 kingstorm--飓风办公软件Beta 0.9'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2422941632915937292</id><published>2004-03-25T03:04:00.001+08:00</published><updated>2008-12-09T01:49:38.499+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Docbook'/><title type='text'>saxon 实践</title><content type='html'>其中说到了&lt;a href="http://pyrecord.freezope.org/articles/doc2004030302/show"&gt;中文的解决办法&lt;/a&gt;。

saxon 应该是很好的了，有一个 docbook 集成管理软件 DocMan 使用的也是saxon，曾经试过，特性基本上都有，可惜根本不可用（无论是Linux版本还是windows版本），即使我用它自带的 test 来测试文件也是一样。一直不清楚原因。

其实最好的还是 openjade，不管什么样的照吃，XML 的处理器都太娇嫩了。openjade 的缺点是速度慢，看来两全是很难了。我现在的做法是编辑过程中用 xalna 处理预览，而真正发布的时候用 openjade。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2422941632915937292?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2422941632915937292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2422941632915937292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2422941632915937292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2422941632915937292'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/saxon_25.html' title='saxon 实践'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-6342436128835859910</id><published>2004-03-21T12:32:00.001+08:00</published><updated>2008-12-09T01:48:05.309+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Docbook'/><title type='text'>DocBook容易使用吗？</title><content type='html'>&lt;p&gt;
Dan Moniz 首先持反对意见：那是地狱，他们说了慌。
&lt;/p&gt;

&lt;p&gt;
They Lied to Us
&lt;/p&gt;

&lt;p&gt;
Norman Walsh 当然是持赞同观点了。
&lt;/p&gt;

&lt;p&gt;
XML Interop, DocBook, and Ease of Use
&lt;/p&gt;

&lt;p&gt;
Dan Moniz says no:


I've been spending three weeks in XML hell.
&lt;/p&gt;

&lt;p&gt;

In and amongst all my other work duties, I've been trying to
develop a single-source XML based document publishing toolchain. A
"solution", if you will, that will allow me to write documents in a
layout-agnostic way based on document structure that can then be
processed and published to whatever format I want or need: PDF,
Microsoft Word, HTML, etc.

&lt;/p&gt;

&lt;p&gt;

I'm surprised at the lack of integration and easy-to-use tools
that seems to exist in the XML authoring world. I would have thought
that by now, someone would have put together a package that approaches
the sort of Microsoft Word/Corel WordPerfect model of authoring, but
XML based, say with DocBook, but it doesn't seem to have been done.
High-quality Windows-native XML editors with an authoring/publishing
focus (as opposed to an IDE model) are rare, and I haven't found a free
or open source editor yet that's reasonably feature complete. Once you
have the editor, you still have to piece together an amazing amount of
individual software and configuration details to put together a
toolchain.


&lt;/p&gt;

&lt;p&gt;
Norman Walsh says yes:



Dan points out, fairly I think, that there’s been a lot of hype
about the benefits of XML and how easy it’s going to make things. If
you believe all that hype, the first few weeks in the trenches must be
a real shock.

&lt;/p&gt;

&lt;p&gt;

I’m trying to decide if I’ve contributed to that hype. I’m not
sure. XML authoring, and DocBook authoring in particular, are easy by
some metrics. For example, I do it in a free editor. By that metric,
Word is extremely hard for me. I’d have to change operating systems
($$$) and buy the application ($$$). (Yes, I could use OpenOffice, in
fact, I do sometimes, but that’s not really the point.)

&lt;/p&gt;

&lt;p&gt;
The point is it depends on your metrics. It is dead easy for me
to publish an essay like this one in HTML and PDF, and to syndicate it
in RSS and Atom, and to generate metadata that can be queried. I could
easily generate other forms as well.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-6342436128835859910?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/6342436128835859910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=6342436128835859910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6342436128835859910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/6342436128835859910'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/docbook_7882.html' title='DocBook容易使用吗？'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-75187898816100929</id><published>2004-03-20T08:17:00.001+08:00</published><updated>2008-12-09T01:44:08.607+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><title type='text'>Norman Walsh 推荐的DocBook编辑器</title><content type='html'>&lt;p&gt;Norman Walsh在他的&lt;a target="_blank" href="http://web.archive.org/web/20050425095344/http://nwalsh.com/docs/tutorials/winwriters2001/docbook/frames.html"&gt; 教程 &lt;/a&gt; 中推荐了两款DocBook的编辑器：

&lt;a target="_blank" href="http://web.archive.org/web/20050425095344/http://www.arbortext.com/html/epic_editor_overview.html"&gt;Arbortext Epic &lt;/a&gt;和 &lt;a target="_blank" href="http://web.archive.org/web/20050425095344/http://www.softquad.com/products/"&gt;SoftQuad XMetaL&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;XMetaL起先也有说过，在wikki中也有记录，Norman Walsh 用的大约就是这个，记得在DocBook的邮件列表中见他提过。&lt;/p&gt;&lt;p&gt;Epic 在DocBook 的官方 wiki 中也有记载。不过两款都是不支持Linux的，所以一直没有尝试过。Epic 都有for Solaris 的版本却没有for linux 的，真怀疑是有歧视还是有黑幕。
&lt;/p&gt;&lt;p&gt;Arbortext Epic
Commercial solution from Arbortext &lt;/p&gt;&lt;p&gt;Customized for DocBook &lt;/p&gt;&lt;p&gt;GUI editor with DMS integration &lt;/p&gt;&lt;p&gt;Produces PostScript, HTML, HTML Help, CD-ROM, ... &lt;/p&gt;&lt;p&gt;Uses XSL and FOSIs &lt;/p&gt;
SoftQuad XMetaL
&lt;p&gt;Commercial solution from SoftQuad &lt;/p&gt;&lt;p&gt;Supports DocBook &lt;/p&gt;&lt;p&gt;GUI editor &lt;/p&gt;&lt;p&gt;Produces draft print output &lt;/p&gt;&lt;p&gt;Uses CSS &lt;/p&gt;&lt;p&gt;2ndboy，这两款可都是 for poweruser 的，是你需要的吗？估计我是无福消受了，除非 Epic 有 Linux 的版本，XMetaL 更没有希望，这个公司好象和 M$ 有黑幕交易。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-75187898816100929?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/75187898816100929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=75187898816100929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/75187898816100929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/75187898816100929'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/norman-walsh-docbook_20.html' title='Norman Walsh 推荐的DocBook编辑器'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-673375570894038821</id><published>2004-03-05T00:17:00.001+08:00</published><updated>2008-12-09T01:33:06.798+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><title type='text'>jEdit XML 相关插件 &amp; 特征</title><content type='html'>&lt;p&gt;
看上去就挺不错的。
真正适用后才发现他的正常强大之处（就jEdit来说的），基于JAVA的跨平台，多达90中文件格式的语法加亮，快捷键的超强可定制，最主要的是他的扩展性能非常好，所以才有了非常多的插件包括编辑XML的。
用于XML编辑的插件主要有：
XML 编辑XML文件主要的插件
XmlIndenter 用于XML文档的自动缩进整理
XSLT XPath以及XSLT工具
插件可以在 &lt;a href="http://sourceforge.net/projects/jedit-plugins/" target="_blank"&gt;http://sourceforge.net/projects/jedit-plugins/&lt;/a&gt; 下载
其他配合使用的有：
BufferTabs 以标签模式显示当前打开的文件；Code2HTML；CommonControls 很多其它插件依赖他；Console 终端插件；EditorScheme 提供几种编辑加亮模式方案；ErrorList 错误信息；InfoViewer 显示当前buffer中的内容，也用于预览html文件；ProjectViewer 项目管理插件；SideKick XML树模式以及语法分析依赖他。

霍霍，这样的组合基本上可以组成Linux上编辑XML文件的黄金装备了，有XML树状显示、语法加亮、语法错误检测、代码补全......最喜爱的就是他的代码补全功能了，自动根据前面输入的内容以及父标签调整出现的补全标签。
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-673375570894038821?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/673375570894038821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=673375570894038821' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/673375570894038821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/673375570894038821'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/jedit-xml_05.html' title='jEdit XML 相关插件 &amp; 特征'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-103016727777028122</id><published>2004-03-03T08:16:00.001+08:00</published><updated>2008-12-09T00:55:19.079+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Docbook'/><title type='text'>自由软件中最好的XML编辑器 - jEdit</title><content type='html'>继续昨天的足迹又开始寻找可用的DocBook编辑器，偶然在一篇文章中作者推荐了几款编辑器其中就有jEdit，已经倦了的心想试试看吧。jEdit在sourceforge的老家：&lt;a href="http://web.archive.org/web/20050425095344/http://jedit.sourceforge.net/" target="_blank"&gt;jedit.sourceforge.net&lt;/a&gt;在其中看到一张屏幕截图：

&lt;p&gt;&lt;img src="http://jedit.sourceforge.net/jedit-snap-12.png" width="400" height="300" /&gt;


&lt;/p&gt;回头测试测试。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-103016727777028122?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/103016727777028122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=103016727777028122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/103016727777028122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/103016727777028122'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/xml-jedit_03.html' title='自由软件中最好的XML编辑器 - jEdit'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-2810266932786954365</id><published>2004-03-03T00:13:00.001+08:00</published><updated>2008-12-09T00:53:37.687+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Docbook'/><title type='text'>欲寻一款好用的DocBook编辑器不可得</title><content type='html'>这几天一直在寻找可用与Linux下的DocBook编辑器，几乎尝试了所有可用的版本。

居然没有一款个人比较满意的：

Emacs/PSGML不会用，首先排除了。
 epcEdit安装的时候需要TCL/TK的库，在Debian下的TCL/TK库位置和epcEdit的安装程序默认位置不同，换个目录后这个问题解决了，真正的问题是后面弹出一个窗口之后就僵死在那了。
 LyX不支持CJK，下在了CJK的patch编译不能通过，后来用alien转换CJK patch作者提供的LyX-qt RPM包安装后可以正常输入中文，只是界面不满意，而且不能够直接编辑源代码。
 Morphon XML Editor基于JAVA的，慢而且界面只有JAVA的和Motif的，非常丑陋，不过他的几个视图模式还是可以。
 Corel XMetaL没有Linux的版本，这个应该不错，因为Norman Walsh用这个。
 Syntext Serna基于QT，速度到是不错，安装也没有什么问题，不过不可以编辑源代码。
 XMLBuddy是基于eclipse的插件，没有代码补全，不是所见即所得，不过也算不错了。
 oxygenxml虽然不是所见即所得的但有代码补全功能，还是很喜欢，可惜在Linux上安装后运行一直不成功，包括作为eclipse的插件。
 最欣赏的该是Conglomerate，这个基于GTK2的而且以GPL发布，是为DocBook量身定做的，唯一的遗憾是不支持中文输入，另外还有一些不稳定。

看来还是用kate算了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-2810266932786954365?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/2810266932786954365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=2810266932786954365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2810266932786954365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/2810266932786954365'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/docbook_03.html' title='欲寻一款好用的DocBook编辑器不可得'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-5473682465271626941</id><published>2004-03-01T22:49:00.001+08:00</published><updated>2008-12-09T00:52:01.999+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Docbook'/><title type='text'>DocBook Authoring Tools</title><content type='html'>&lt;table width="500" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;strong&gt;编辑器&lt;/strong&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;strong&gt;平台&lt;/strong&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;strong&gt;Free?&lt;/strong&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;strong&gt;XML&lt;/strong&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;strong&gt;SGML&lt;/strong&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;strong&gt;Off-the-shelf &lt;a href="http://bitfly.1816.net/wakka/wakka.php?wakka=DocBook"&gt;DocBook&lt;/a&gt; support?&lt;/strong&gt;&lt;/td&gt;&lt;td align="left"&gt;&lt;strong&gt;评价&amp;amp;备注&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.lysator.liu.se/%7Elenst/about_psgml/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.lysator.liu.se/%7Elenst/about_psgml/"&gt;Emacs/PSGML&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;All&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;SGML&lt;/td&gt;&lt;td align="left"&gt;included in most &lt;a href="http://bitfly.1816.net/wakka/wakka.php?wakka=DocBook"&gt;DocBook&lt;/a&gt; Packages&lt;/td&gt;&lt;td align="left"&gt;****&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.epcedit.com/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.epcedit.com/"&gt;epcEdit&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;Linux, Win, Solaris&lt;/td&gt;&lt;td align="left"&gt;No&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;SGML&lt;/td&gt;&lt;td align="left"&gt;DTD, WYSIWYM, tables&lt;/td&gt;&lt;td align="left"&gt;***,安装程序有bug&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.lyx.org/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.lyx.org/"&gt;Lyx&lt;/a&gt;(*not* just for Latex editing!)&lt;/td&gt;&lt;td align="left"&gt;*nix, Win, Mac&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;no&lt;/td&gt;&lt;td align="left"&gt;SGML&lt;/td&gt;&lt;td align="left"&gt;DTD, hybrid-WYSIWYG, tables?&lt;/td&gt;&lt;td align="left"&gt;***,输入中文需要CJK-patch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.morphon.com/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.morphon.com/"&gt;Morphon XML Editor&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;All&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;NO&lt;/td&gt;&lt;td align="left"&gt;DTD, WYSIWYG, tables?, stylesheets&lt;/td&gt;&lt;td align="left"&gt;****,java平台，慢&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.xmlmind.com/xmleditor" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.xmlmind.com/xmleditor"&gt;XXE Standard Edition&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;All (Java)&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;NO&lt;/td&gt;&lt;td align="left"&gt;DTD, WYSIWYG&lt;/td&gt;&lt;td align="right"&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.xmetal.com/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.xmetal.com/"&gt;Corel XMetaL&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;Win&lt;/td&gt;&lt;td align="left"&gt;No&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;SGML (until version 3.1)&lt;/td&gt;&lt;td align="left"&gt;tables;&lt;/td&gt;&lt;td align="left"&gt;*****，Norman Walsh用这个&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.oxygenxml.com/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.oxygenxml.com/"&gt;&lt;oxygen&gt; XML Editor&lt;/oxygen&gt;&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;All (Java)&lt;/td&gt;&lt;td align="left"&gt;No&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;SGML&lt;/td&gt;&lt;td align="left"&gt;DTD, stylesheets,code completion&lt;/td&gt;&lt;td align="left"&gt;****,有for eclipse的插件，安装不成功&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.conglomerate.org/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.conglomerate.org/"&gt;Conglomerate&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;Linux&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;NO&lt;/td&gt;&lt;td align="left"&gt;As far as I know&lt;/td&gt;&lt;td align="left"&gt;****,接口最好，需要更多的特性，不支持CJK，希望有人能够patch一下&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.syntext.com/products/serna/index.htm" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.syntext.com/products/serna/index.htm"&gt;Syntext Serna&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;Win, Linux&lt;/td&gt;&lt;td align="left"&gt;No&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;NO&lt;/td&gt;&lt;td align="left"&gt;Schema, DTD, WYSIWYG, Tables, XSL rendering&lt;/td&gt;&lt;td align="left"&gt;****&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://www.xmlbuddy.com/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.xmlbuddy.com/"&gt;XMLBuddy&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;ALL(Java)&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;NO&lt;/td&gt;&lt;td align="left"&gt;Schema&lt;/td&gt;&lt;td align="left"&gt;***,plugin for eclipse,pro版本需要license&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://jaxe.sourceforge.net/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://jaxe.sourceforge.net/"&gt;jaxe&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;ALL(Java)&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;NO&lt;/td&gt;&lt;td align="left"&gt;Schema&lt;/td&gt;&lt;td align="left"&gt;***,plugin for netbeans&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://vex.sourceforge.net/" target="_blank"&gt;&lt;img title="在新窗口中打开" alt="External Link" src="http://bitfly.1816.net/wakka//images/www.gif" width="11" height="11" hspace="4" border="0" /&gt;&lt;/a&gt;&lt;a href="http://vex.sourceforge.net/"&gt;VEX&lt;/a&gt;&lt;/td&gt;&lt;td align="left"&gt;ALL(Java)&lt;/td&gt;&lt;td align="left"&gt;Yes&lt;/td&gt;&lt;td align="left"&gt;XML&lt;/td&gt;&lt;td align="left"&gt;NO&lt;/td&gt;&lt;td align="left"&gt;Schema,WYSIWYG&lt;/td&gt;&lt;td align="left"&gt;***&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-5473682465271626941?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/5473682465271626941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=5473682465271626941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5473682465271626941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/5473682465271626941'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/03/docbook-authoring-tools_01.html' title='DocBook Authoring Tools'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8126407349269065637</id><published>2004-02-23T00:21:00.001+08:00</published><updated>2008-12-09T00:50:30.909+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='开放课程'/><title type='text'>UC Berkeley 计算机视频课程</title><content type='html'>http://webcast.berkeley.edu/courses/index.html

In Fall 2001, UC Berkeley's live and on-demand webcasts of select courses became a service of Educational Technology Services (ETS) in partnership with Information Systems and Technology (IS&amp;amp;T). This technology is based on the Berkeley Internet Broadcasting System (BIBS) developed by the Berkeley Multimedia Research Center (BMRC). Webcasts have now grown to include special campus events.

主要是CS和EE的课程，视频是随时更新的哦。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8126407349269065637?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8126407349269065637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8126407349269065637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8126407349269065637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8126407349269065637'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/02/uc-berkeley_23.html' title='UC Berkeley 计算机视频课程'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-673897817645946766</id><published>2004-01-14T19:40:00.000+08:00</published><updated>2008-12-09T02:21:47.878+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MagicLinux'/><title type='text'>cjacker真的要离开MagicLinux吗？</title><content type='html'>&lt;p&gt;&lt;b&gt;希望只是KDE发梦，只是我们的一个梦&lt;/b&gt;
               &lt;/p&gt; &lt;p&gt;  刚刚才看到的这个帖子：&lt;a href="http://www.linuxfans.org/nuke/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=51192" mce_href="http://www.linuxfans.org/nuke/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=51192"&gt;现在只想哭……&lt;/a&gt;，看到KDE此番话，估计是cjacker要离开我们了，这些天来在MagicLinux.org就很少看到cjacker，在以前是绝对不可能的，开始还以为是农历新年将至的缘故。&lt;/p&gt; &lt;p&gt;  难道中文Linux终归是这种结局？&lt;/p&gt; &lt;p&gt; RedFlag封闭源代码到如今人人相轻的地步；OpenDesktop还没真正可用的时候一幅嘴脸已经让人受不了，正式版本出来的时候仍然没有\r
source；Turbo还以为自己是当年的Turbo，可惜只有他自己是这么认为；当年的LinuxForum的豪言也早已与mylinux一起灰飞烟&lt;/p&gt; &lt;p&gt;灭；MagicLinux，这个在我了解之后真正心动的项目难道会随着cjacker的离去落得与mylinux一个下场。&lt;/p&gt; &lt;p&gt;  不，不会的，我不相信！至少不是最后一刻我绝对不会相信。&lt;/p&gt; &lt;p&gt;  MagicLinux可是象cjacker自己的孩子一样啊，cjacker，你舍得离去吗？你舍得让自己的孩子流离街头吗？有什么问题不可以面对的。当真就是指责、漫骂、争端和不切实际的要求的缘故吗？KDE都说了，“没有必要，干吗一辈子为别人活着？”&lt;/p&gt; &lt;p&gt;  希望一切只是一个梦。梦醒了还是我们的世界，我们会选择面对，因为我们知道我们不为别人而活，我们不在意别人的眼神，我们飞扬着只因为我们的梦！&lt;/p&gt; &lt;p&gt;  鼻头有点酸酸了，希望一切只是梦，醒了，我们歌唱，我们飞扬，我们远航！&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-673897817645946766?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/673897817645946766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=673897817645946766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/673897817645946766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/673897817645946766'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/01/cjackermagiclinux_14.html' title='cjacker真的要离开MagicLinux吗？'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-9012369125334404554</id><published>2004-01-14T18:30:00.000+08:00</published><updated>2008-12-09T00:49:14.765+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>再度见识梁肇新无知与无耻</title><content type='html'>&lt;p&gt;                  引子：&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://web.archive.org/web/20050425095344/http://www.herosoft.com/hero_linux/hero_linux.php" mce_href="http://web.archive.org/web/20050425095344/http://www.herosoft.com/hero_linux/hero_linux.php"&gt;豪杰超级解霸推出跨平台个人测试版&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.linuxforum.net/forum/showflat.php?Cat=&amp;amp;Board=linuxtalk&amp;amp;Number=453029&amp;amp;page=&amp;amp;view=&amp;amp;sb=&amp;amp;o=&amp;amp;vc=1" mce_href="http://www.linuxforum.net/forum/showflat.php?Cat=&amp;amp;Board=linuxtalk&amp;amp;Number=453029&amp;amp;page=&amp;amp;view=&amp;amp;sb=&amp;amp;o=&amp;amp;vc=1"&gt;我国著名软件专家梁肇新对微软、Linux和64位计算的观点&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;本来对于从windows下过来的Linux新人来说有一个“熟悉”的播放器是件皆大欢喜的事情，豪杰却非得生出点事端来。
分析一下原文：
&gt;&gt; 为保障国家信息安全，打破微软Windows平台的垄断控制，世界上很多国家都在努力研发
&gt;&gt;推广Linux系统。
Linux最初的出现是因为linus对minix的不满，而中国研究Linux的厂商大多是为了政府采购，国家安全，您别那这说事。文章开始就给了顶大帽子。&lt;/p&gt; &lt;p&gt;&gt;&gt;但是在桌面系统进展的一直不是很顺利，其中的关键在于：兼容性差，支持的应用软件及其
&gt;&gt;开发人员太少。
关键是什么，中国的盗版泛滥您不会不知道吧，不好意思，我的win就是4元一张的，不过您放心对于结巴这样的东东我不感兴趣。
兼容？如果大家用的都是国际标准，这样的问题还能叫问题吗？&lt;/p&gt; &lt;p&gt;注意，这里他们是怎么解释wine的：
&gt;&gt;wine模拟器法是在Linux环境上模拟出一个Windows环境，试图支持在
&gt;&gt;Windows下运行的应用软件，整个开发环境基于Linux，是站在Linux操作的
&gt;&gt;角度来开发的，它根本没有办法顾忌到Windows用户的使用习惯，受
&gt;&gt;Linux平台的限制，移植后功能出现丢失，性能下降，稳定性很差，安装困
&gt;&gt;难，无法实际应用，只能作为Linux用户手中的玩物。
Linux就是Linux，不要在拿windows来说事了，习惯是培养出来的，没有人一出生就有习惯。问题的关键是你愿不愿意去习。&lt;/p&gt; &lt;p&gt;&gt;&gt;豪杰兼容层是一种基于Windows环境开发，能够将原来在Windows平台下
&gt;&gt;运行的各种应用软件，完好地移植到Linux平台下运行的中间件。
原来一个兼容层这么容易开发，只是这里怎么没有说出兼容层的开发时间，我看你可以开发windows了。这样的一个层能将您原来重新编码的周期缩短？活活，您小学算术一定不及格。
但是如果这里是copy paste的就很快了，比如：copy wine 的源代码，摇身一变成了您的兼容层，&lt;/p&gt; &lt;p&gt;&gt;&gt;将来豪杰兼容层可以作为LINUX内核的一部分，成为使
&gt;&gt;LINUX扩充支持Windows格式的工具，可以使大多数WINDOWS格式的文件稳定
&gt;&gt;地运行在LINUX平台上。
您还真是消息灵通人事，晓得Linux kernel有一个windows API的移植计划，到时候您又可以出个XX版本号称这个kernel 的API不行，您的才是符合用户习惯滴（经常crash应该比较符合win内核的习惯）。顺便问一句，您还知道耻字怎么写吗？&lt;/p&gt; &lt;p&gt;&gt;&gt;利用豪杰兼容层进行产品移植后与原来在Windows环境下相比，“功能不丢
&gt;&gt;失、性能不降低、操作模式不变、稳定性更强”。
才刚刚出Beta测试版，还没有收集用户的广泛反馈就感这么说，这样的人我们能相信吗？&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-9012369125334404554?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/9012369125334404554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=9012369125334404554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/9012369125334404554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/9012369125334404554'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/01/blog-post_14.html' title='再度见识梁肇新无知与无耻'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-8412949491302822710</id><published>2004-01-09T16:12:00.000+08:00</published><updated>2008-12-09T00:47:47.878+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jabber'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='IM'/><title type='text'>推荐一款IM--jabber</title><content type='html'>&lt;p&gt; 无论是对企业还是个人用户来说IM的重要性不言而喻，而目前主要的IM工具有ICQ/MSN/Yahoo/QQ等，而这些都是封闭源代码的，这些封闭源码 软件即使对于我们EndUser来说也是有伤害的，比如腾讯QQ收费，后来又不允许zoudan开发Linux的QQ插件for gaim，而MSN也有不支持其它客户端软件连接MSN的消息传出，封闭过jabber.org的MSN连接，而用&lt;a href="http://www.blogger.com/www.jabber.org"&gt;jabber&lt;/a&gt;不会有这些问题。

jabber的服务器和客户端都是开放源代码的，如果你喜欢，可以在企业内部架设jabber服务器封闭外部接口作为企业内部的及时交流平台；你也可以在全世界任意的一个jabber服务器申请帐号，而你的帐号可以与其它的任何服务器上的帐号互连。&lt;/p&gt;&lt;p&gt;
jabber的另外的特点是支持与其它IM工具互连，只要服务器端打开了其它IM如ICQ/MSN/Yahoo的代理，你就可以通过这些服务器来使用原先的这些IM，这是在服务器端实现的，这点上与gaim是有区别的。&lt;/p&gt;&lt;p&gt;  jabber的消息是基于XML的，你甚至可以直接发送XML的代码来和其它用户交流。基于XML的消息系统也使得对其进行二次开发变的容易。&lt;/p&gt;
jabber有很多客户端可用，个人比较喜欢&lt;a href="http://psi.affinix.com/"&gt;psi&lt;/a&gt;,它是基于qt的程序，目前版本是0.9.1，同时有windows/MacOS/Linux版本可用，如果你用的是debian就方便啦，apt-get install psi就可以了。

使用jabber需要首先申请jabber的帐号，这里有一个&lt;a herf="http://www.jabber.org/user/publicservers.php:"&gt;jabber服务器状态列表&lt;/a&gt;， 在psi中申请jabber帐号非常容易，在添加了profile之后打开psi主界面选择注册新用户，需要注意的新窗口中的jabber ID栏需要包括服务器地址的完整jabber ID，如：paulin@jabber.org。OK，现在可以享受jabber给你带来的惊奇了。

jabber：吱吱喳喳地叫,闲聊快而含糊不清的&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-8412949491302822710?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/8412949491302822710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=8412949491302822710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8412949491302822710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/8412949491302822710'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2008/12/im-jabber.html' title='推荐一款IM--jabber'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-7620663721339767513</id><published>2004-01-01T03:11:00.001+08:00</published><updated>2008-12-09T00:42:43.662+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>2004 Linux 向前冲</title><content type='html'>感觉自己有点Linux的味道，2004会是充满挑战的一年。


今天的新闻&lt;a href="http://www.xfree86.org/"&gt;XFree86 core team 解散&lt;/a&gt; [30 December 2003] The XFree86 core team voted to disband itself, effective 31 December 2003. 是好是坏自有时间去评论，很多LinuxSir开始担心起来，好怕Linux会没有了桌面没有了X，其实可以选择的还有很多，比如从XFree86分离出 来的，X-desktop，即使现在没有了选择，Linux的桌面世界也不会就此驻足，看IBM前些时候涉足推动Linux桌面就知道了，Linux吞食 桌M$的面市场势在必行。X不会成为我们太大的绊脚石，况且这个老的掉牙的工业玩意本来就不很适合桌面。core team解散或许会是好事。从组将工作中心调整到桌面，活活，这才是我们应该期待的，^_^ 2004，我们会有更多坎坷和艰难；2004，我们必将跨过；而且会是一个感叹号！我坚信。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-7620663721339767513?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/7620663721339767513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=7620663721339767513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7620663721339767513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7620663721339767513'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2004/01/2004-linux_01.html' title='2004 Linux 向前冲'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-7528463641352699252</id><published>2003-12-20T22:54:00.001+08:00</published><updated>2008-12-09T00:38:20.533+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Docbook'/><title type='text'>chm和Docbook的闲碎事</title><content type='html'>&lt;p&gt;前几天下载了chm_view,发现编译需要qt库和一些devel包，没有搞定，今天时间多点，看完mail后花了点时间apt-cache了一下，发现了些东东：kde-devel包，只是一个空包，估计就是我需要的(活活，后来证明我的估计没有错)。&lt;/p&gt;&lt;p&gt;apt-get install kde-devel之后发现需要安装一堆包，活活，挺兴奋的，至少对路了，而且最重要的是，现在没有依赖性了，安装过后如法炮制install了 gnome-devel。&lt;/p&gt;&lt;p&gt;顺便安装了几个Recommended的包。&lt;/p&gt;&lt;p&gt;好有时间，看了些DocBook的HowTo，安装了DocBook需要的包：apt-get install linuxdoc-tools
apt-get install sgmltools-Lite
apt-get install zh-sgmltools
以后有时间再研究了，faint，考试真烦！害得没有时间。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-7528463641352699252?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/7528463641352699252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=7528463641352699252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7528463641352699252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/7528463641352699252'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2003/12/chmdocbook_20.html' title='chm和Docbook的闲碎事'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14329825.post-4904808539680115218</id><published>2003-12-12T04:49:00.001+08:00</published><updated>2008-12-09T00:40:29.905+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>drupal很不错</title><content type='html'>&lt;p&gt; 无意中去&lt;a href="http://www.magiclinux.org/" mce_href="http://www.magiclinux.org/"&gt;MagicLinux&lt;/a&gt;逛 逛的时候发现网站系统已经由wiki的cms换成了PHP blog的，magiclinux官方网站的维护者jackey觉得原先的wiki系统太慢了，于是商议一下决定转换后台系统，drupal成为了他们最 终的选择，: )，偶也有幸了解倒这么样一个系统， xoops的开发者goghs在他的&lt;a href="http://www.eqiao.com/" mce_href="http://www.eqiao.com/"&gt;blog&lt;/a&gt;里面也谈到了durpal，他认为&lt;a href="http://www.drupal.org/" mce_href="http://www.drupal.org/"&gt;drupal&lt;/a&gt;会是xoops的一个竞争者，可见功力之深。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14329825-4904808539680115218?l=epaulin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://epaulin.blogspot.com/feeds/4904808539680115218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14329825&amp;postID=4904808539680115218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4904808539680115218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14329825/posts/default/4904808539680115218'/><link rel='alternate' type='text/html' href='http://epaulin.blogspot.com/2003/12/drupal_5418.html' title='drupal很不错'/><author><name>@yinhm</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
