This is the true thing - Picasa 3 Beta

2008年9月5日星期五

没错,全Internet的目光在这几天都投向了高潮浏览器,IT情报站和软件论坛上出现了无数关于高潮的帖子,各种声音都有。赢政天下是最让我感到惊讶的,在一个已经持续了3天的投票帖《大家会选择哪个(公司)浏览器》中,高潮已经是选择最多的(53票占23.7%),对应Firefox 40票 VS 傲游 38票。在专业的软件论坛中尚且是如此,像新浪这样平民化的网站调查中,这个比例已经是到了96%以上!

再多说一点关于高潮的事情就进入正题:本以为高潮的速度优势非常明显,但事实上Firefox 3.1的JIT虚拟机已经日益完善,在专项测试中虽然比不上高潮,但日常浏览方面,只比高潮慢几毫秒,像我玩格斗的都感觉不出来差别。我之所以还没有卸载高潮的原因是有什么要测试的可以去比较一下,其它时间中我再也没有启动过它。

不明白Google为什么会把Picasa 3和Google Chrome一并发布,让这个优秀的图片管理器得不到应有的关注。在Google上搜索一把,中文网站中关于Picasa的介绍屈指可数。事实上,我也是在Official Google Blog的RSS中“不慎”瞄到一眼Picasa的介绍,仔细一看,Picasa Web Albums和Picasa 3 同时被更新了。

Picasa Web Albums的界面清新了很多,代码效率也有显著提高。到目前为止,Picasa Web Albums的强档功能——人脸识别,我还没有试用,怪就怪中文的Picasa Web Albums界面上没有推荐使用这个功能,刚刚切换到英文去,就看见了。人脸识别指的是把照片中的人脸选定,输入关键字(一般是名字)后,相同人物的图片都会被识别出来,倒也不是什么前沿的技术,只不过国家安全部门的技术终于民用化了。有这个功能后,你可以快速地找到某个人的所有照片,并为他/她制作一个精美的相册。同样的功能也出现在Picasa 3里面。

等等!好像我启用人脸识别后,没有等我去干预,Picasa Web Albums已经自己开始识别所有的照片了,真的不错,待会看看效果,关键是识别的能力。

题外话:很多人认为Picasa Web Albums是可以外连图片的,很遗憾我测试的结果是不能,在这一点上还是不如Flickr。

此外,Picasa Web Albums改进了图片社区,这样搜索图片方面也逐步得到了增强,相信能挖来更多Flickr用户。

Picasa 3软件版的改进则更大。我机器上一直装着Picasa 2.7,但对我而言这是一个Nice to have的软件,主要的目的无非是快速地管理、注释、上传和分享相册。Picasa 3中最大的改变就是引入了关联相片文件从而双击可以预览,或许有人说,这没什么啊,ACDSee,XnView,IrfanView你随便装一个不就得了?这些软件我都知道,但在装上Picasa 3之前,我一直坚持的是Windows图片和传真查看器,因为对我而言小巧轻便。Picasa 3 的预览功能显然比Windows图片和传真查看器更占资源,但比起前面几款图片查看器,Picasa 3的特点就是——低调。双击图片并不会启动整个Picasa,而是打开专门的预览工具,并适当地把背后的内容半透明,相当优雅;PNG和Gif已经被支持(不过GIF依然不动);通过设置,可以用滚轮来查看同目录图片,这此过程中Picasa平滑的缩放效果也是无处不在;查看完毕后,Esc即可关闭,这是我一直希望Windows图片和传真查看器拥有的一个功能,它Failed,Picasa Wins。


Picasa 3加入了更多的相片处理功能。其中文字注释功能是比较吸引人的,只是目前还不清楚能不能把文字真正地写入到图片上去,因为这个功能并没有真正修改图片本身,用Picasa之外的软件看不到文字注释。

红眼的定位完全是全自动,根本不用手动选定,手气不错功能的手气也越来越好了。

图片堆叠这项招牌菜也有了大幅度的改进,可以自由调整图片的位置,角度和背景色等等参数,除了传统的随意“摊放”,也增加了更严谨的排列效果。

上传网络相册?如果有一个相簿经常要更新,现在可以把“自动同步”的功能打开,只要往里增加图片,全部自动同步上网,别小瞧了这个功能,这不仅仅是为懒人准备,更是健忘人士的life saver。至于制作幻灯片,目前还没用得上,但Google已经把上传到Youtube的功能放到了Picasa里面,想必更多人会选择Picasa。

综上,Picasa 3对我来说已经是一个Must have的产品了,高潮如果Fails,Picasa WILL win。

Google Chrome印象

2008年9月2日星期二

Google Chrome简称GC,于是我干脆称之为“高潮”。

今天让我赶上了,成为最早使用Google Chrome的人之一,但完全没法达到高潮……我一下就想到Google Talk的可气,什么是Google Talk?方便,但仅仅是方便而已,可用性太差,聊天体验没有。Google Chrome呢?快(4倍于Firefox JIT虚拟机的性能),但仅仅是快而已,可用性太差,我理解这是一个Beta版,但我想Beta版就只是这个模样,在正式版中应该不会出现太多功能上的增强吧。

不能选择安装路径,不但如此,装到这个地方去了:
"C:\Documents and Settings\new\Local Settings\Application Data\Google\Chrome\Application\chrome.exe"

线程,原来就是这样的吗?如果这么多个进程中某一个崩溃了,还会影响到其他的进程,那整个Windows是否都需要重新设计?



谁是傻瓜?

这种句子是Google的风格,还是翻译的失败?

越看,火越大,但是,我知道Google的论据很可能就是对的:

To most people, it isn't the browser that matters. It's only a tool to run the important stuff - the pages, sites and applications that make up the web.
对大部分人来说,浏览器只不过是实现网页功能的一个工具而已,或许只有我这种偏执狂才会装几十个扩展去津津乐道——这叫“用浏览器”;相反,更多的人只不过是“用浏览器上网”——打开的网页才是他们关心的。Google不是要争作最优秀的浏览器,而只是要做最普及的浏览器。事实上就是如此,Google已经在自己的主页上放上了Google Chrome的下载链接,这意味着将吸引数以亿计的眼球,这种号召力是恐怖的,难以预期的。

但是,Google会赢得市场,赢不了偏执狂。

Google Chrome,你能胜过Firefox?



Google隐藏得很深,从这条消息出现到下载可能只有几天的时间。或许大家最关心的就是Google一直扶持着的Firefox会如何,Mozilla和Google会成为什么样的一种关系。Google不缺失败的产品,比如Orkut,比如Google Talk,比如Google Desktop,我在这里预言,Chrome也会是同样的命运,或许,因为Google一贯的简约风格,Chrome没准会吃掉Opera的份额。要想赢过Firefox还是太难,不过我想这也不是Google的本意,毕竟,扶持Firefox没有推出自己的浏览器这么名正言顺,有了Chrome,Google终于可以名正言顺地抢占这重要江山。

看看预言会不会成功,拭目以待吧。

被遗忘的宝藏——LaTeX发行版自带的字体&自己的一些字体心得

2008年8月5日星期二

原文发表于CTeX中文论坛(bbs.ctex.org)




可能有不少人像我一样在用LaTeX不久就开始跟字体较劲。我走的是这样一个过程:
- 最初用惯了Word,从而无法理解为什么LaTeX调用字体那么难;
- 为了在LaTeX中调用字体,想用现有的工具一蹴而就(像TTFshape,MTFI,xGBKfonts),往往不能轻易成功,沮丧;
- 之后重新静下心来逐渐了解了什么是字体,LaTeX中字体成功调用的方式,才注意到Mapping,TFM,vf等文件的相互关系,理顺了这一切后,把前面几个软件装不成功的字体装好(我印象中装上过Verdana,GE Quartz等几个);
- 后来发现也有些宏包有现成的字体可用,那个时候主要就是关心TrueType字体,所以见到了winfonts宏包(这个宏包不在MiKTeX的宏包列表中),开始用上一些系统中有的字体;
- 又发现OpenType字体更棒,再去看的时候才知道解包OpenType不但麻烦,还会失去glyphs;
- 在一个相当漫长的时间内没有动过LaTeX,再碰它时,又是从一篇Philipp Lehman的《The font installation guide》开始,这篇文章100多页从头到尾看完,已经比较清楚如何用fontinst来安装手头拥有的Type1字体。也正是从这篇文章开始喜欢上了 Minion字体并且成功安装。由于安装过程相当繁琐,我还写了一些安装Type1字体的批处理,有时间的话会整理出来(因为通用性太差);
- 再次碰字体就是在CTAN上看到MinionPro宏包,这时我已经开始搜集字体,所以MinionPro宏包要求的所有Optical Size我都有。MinionPro包特别大,装上它后刷新文件名数据库都慢几十秒,这也说明了OpenType字体的复杂性。我想要不是Adobe把这个经典字体免费提供,应该不会有谁有心去为它生成那么多的TFM文件(1511个之多)。Minion Pro字体对我而言真的是压倒性的,我估计学校允许的话我的论文都会申请用这个字体排版。
- 后来XeTeX被port到Windows,我这才终于把MiKTeX升级到2.7beta,并且花了大量时间研究XeTeX。XeTeX似乎就是为字体而生的,但同样需要有字体的相关知识,这些知识并不同于前面Type1字体,而更多是字体的OpenType features,这些features,Type1字体要么是根本没有(calt, salt),有也不容易打开(smcp, onum)。


但XeTeX同样有这样那样的问题,而且如果直接访问OpenType字体,编译速度就更不如PDFLaTeX访问Type1字体那么快,在长文章中表现得非常明显。所以才有了今天这个帖子,因为在这几天求助区的讨论过程中,自己又回去看了看。加上之前也注意到,其实打开$texmf/fonts目录就能发现LaTeX发行版中早就自带了不少字体,这些字体虽然是免费,功能上确不输专业字体。更重要的是,这些字体很多都是精心设计过的字体包,用来同时载入正文和数学环境的字体,保持文档统一的风格(在严谨的学术文章中,也确实不该想在哪改字体就在哪改)。

原来自己有个文本文件,就是记录机器上可以为我所用的现成字体包(主要来自于$texmf\doc\latex\psnfss\psnfss2e.pdf文档的介绍),但最近去到tug看过,早就有人写了完整的LaTeX字体巡礼:
http://www.tug.dk/FontCatalogue/
这个网站罗列了156个LaTeX中可以免费使用的字体,并且给出了例子和调用的源代码,需要注意的是这些字体并非默认安装在机器上,但至少都能从 CTAN得到——不光是宏包,还有字体文件(因为像winfonts,MinionPro这些宏包需要用户自己拥有相应的字体,CTAN上并没有)。不过拾人牙慧的工作还是要作,那就是推荐一下几个字体/字体包:

1. Palatino
Will Robertson的文档总是用Palatino,这字体的名气也不小。胖胖的很活泼,笔锋也优雅,有羽毛笔的进化痕迹。LaTeX中最省事的是用\usepackage{mathpazo}来统一修改正文和数学字体,这个宏包还有[sc, osf]参数,分别对应小大写字母和不齐线数字。此外还有一个palatinox宏包可以直接调用Windows系统中的Palatino Linotype(这是微软认证发布赫尔曼·察普夫的原作),相关网址是:http://www.ctan.org/tex-archive/fonts/truetypemetrics/palatinox/,需要手动安装。在这个URL的上一层还能看到另一个经典字体frutiger,只是我手头没有Linotype Frutiger。

2. Garamond
1530年诞生的经典字体,LaTeX中通过mathdesign可以使用:\usepackage[garamond]{mathdesign}来使用。Garamond字体十分大气,打印在纸张上也特别好看,法国很多口袋图书用的是Garamond。

3. Times
除了\usepackage{times}外,\usepackage{mathptmx}可以把数学字体也改成类似Times的字体。这个字体真的不需要再多说什么了,总之我觉得看久了眼睛会累。

4. Utopia
Utopia有点像Times,但更宽敞一些。\usepackage{fourier}统一修改正文和数学字体为Utopia,\usepackage[adobe-utopia]{mathdesign}则是mathdesign的调用方法,差别不太明显。

5. Avant Garde/Courier/Bookman/New Century Schoolbook
不是我懒,这几个字体在PSNFSS中是可以搭配着用的:
\usepackage{avant}只载入Avant Garde
\usepackage{bookman}则同时载入Bookman(衬线),Avant Garde(无衬线)和Courier(等宽)字体
\usepackage{newcent}同时载入New Century Schoolbook(衬线),Avant Garde(无衬线)和Courier(等宽)字体

6. Charter
十分饱满的衬线字体,适合屏幕阅读。\usepackage{charter}

7. Helvetica/Optima
这两个字体放一块是因为我觉得它们是无衬线字体,比较适合用来作幻灯片。Helvetica可以\usepackage{helvet},Optima没有写成宏包的形式,就可以用\renewcommand{\sfdefault}{uop}然后\renewcommand* \familydefault{\sfdefault}来调用。在幻灯片这样的尺寸上,Optima变化的线宽才显现出优美来。

8. 其他数学宏包
建议看看ftp://tug.ctan.org/pub/tex-archi ... t_Survey/survey.pdf 这篇文章,介绍得相当详细,而且有效果图展示。

9. Minion Pro
http://tug.ctan.org/tex-archive/fonts/minionpro/ 有详细的安装说明,只要不出错是肯定能安上的,装了Acrobat Reader 7.0以上的用户都能在Acrobat安装目录下找到MinionPro-Bold.otf, MinionPro-BoldIT.otf, MinionPro-It.otf, MinionPro-Regular.otf这四个文件,按照安装说明拆解它们四个已经能满足日常文档的需要。此外,MnSymbol宏包(MiKTeX 可以自动安装)是配合Minion Pro的数学宏包,最好装上,不过\usepackage{MinionPro}就够了,会自动载入MnSymbol宏包。

其实用来用去才发现,LaTeX自带的这些字体才是真正经过时间和实践检验的经典字体,是TUG智慧的结晶。而且,这150多种字体也涵盖了绝大部分(LaTeX能触及到的)字体使用领域。这是不应该被遗忘的宝藏。

懒人专用--用好SciTE的缩写功能



原文发表于CTeX中文论坛(bbs.ctex.org)


版面上用SciTE的人应该不少吧,这个编辑器一个相当强大的功能是他的缩写(Abbreviation)展开功能。简单说,就是把常用的代码段、单词甚 至句子和环境都定义成几个字母的缩写,打入这几个字母后ctrl+B就自动展开。开始的时候也觉得是挺平常的功能,但后来才知道简直就是Life saver

1. 使用abbrev.properties文件
  首先我想说当时为了用成这个功能就花了不少周折。我在SciTE的菜单中选择open abbreviations file,里面是空的,写了几个保存。发现没有写到SciTE目录下的abbrev.properties文件中去,满电脑找才知道写到 documents and settings里面去了。这个问题很多人碰到,作者在邮件列表中给出一个命令行的解决方法,也可以写成批处理。

set SCITE_HOME=D:\Program Files\Scintilla Text Editor\ start Scite.exe %1


存成start_SciTE.bat即可。用Total Commander的朋友可以把这个图标放在工具栏上,然后把文件往上拖就能用SciTE打开。SciTE关联.tex文件后,如果用双击启动tex 件,则要在双击tex前保证SciTE是用批处理开着的,否则SciTE还是会用doc&settings目录下的设置,包括还原上次打开的文件 session restore)。我干脆就把这个批处理加入到启动菜单,开机就开着SciTE

  然后,用SciTE打开abbrev.properties,输入你想要的缩写,规则很简单: abbreviation=expansion,例如

ltx=LaTeX


2. 定义缩写名
  关于缩写名(abbreviation) 喜欢在等号边上加空格的朋友注意了,等号的左边最好不要有空格,否则要输入ltx加上相应的空格才能展开。等号的右边也是一样,有空格就会展开出空格。缩 写名中不能用#开始,否则注释掉了,但后面可以;不能用空格和tab开始,缩写名不能有=号,因为只接受第一个=号,后面都会认为是展开式中的=号。如果 缩写名重名,后面出现的优先。

3. 定义展开式
  关于展开式(expansion):展开式的书写方式支持标准的转义符--反斜杠'\',比如

up=\\usepackage{}


即:两个连续的反杠输入一个反杠。展开式的书写方式支持一个光标定位符--竖线'|',这样展开后光标会留在这个位置,比如

up=\\usepackage{|}


这样你可以很方便地马上输入宏包名称。要输入一个真正的竖线,连续输入两个竖线'||'即可,例如c语言中的或逻辑

or=||||


展开式不允许回车换行,但转义符中的\n, \t都是有效的,所以换行和制表位都能轻松输入。例如c语言的if语句:

i=if (|) {\n\t\n}


表示展开后光标在小括号里,下面自动把大括号排版并且加入了一个tab。这在写多重循环的时候非常有用,你会发现只要用缩写功能,下面的右大括号都会自动地找到缩进位置。


这几个功能结合着用,可以写出相当复杂的环境,例如我的subfigure环境:

sbf=\\begin{figure}[!htb]\n\t\\centering\n\t\\subfigure[|]{\t % Caption of subfigure in []\n\t\\label{}\t % Label of subfigure in {}\n\t\\includegraphics[width=0.45\\textwidth ]{}}\n\t\\subfigure[]{\n\t\\label{}\n\t\\includegraphics[width=0.45\\textwidth ]{}}\n\t\\caption{}\t % Caption of figure\n\t\\label{}\t % Label of figure\n\\end{figure}


展开后的效果是:

\begin{figure}[!htb]
\centering
\subfigure[]{ % Caption of subfigure in []
\label{} % Label of subfigure in {}
\includegraphics[width=0.45\textwidth ]{}}
\subfigure[]{
\label{}
\includegraphics[width=0.45\textwidth ]{}}
\caption{} % Caption of figure
\label{} % Label of figure
\end{figure}


不但自动插入代码,还把注释原汁原味地加上,因为我老是要去查subfigure里面的中括号写什么,大括号写什么。

  只要花时间,甚至可以把你常用的导言区全部定义成一个展开式,连文档模板都可以写出来,省得学写cls文件。

4. 多重展开
  还有更有趣的,缩写功能支持多重展开!比 如,LaTeX的手动输入要按三次shift,十分麻烦,定义一个ltx=LaTeX就省事了,而LaTeX logo的代码是\LaTeX,并且为了保证不吞掉后面的空格,最保险的写法是\LaTeX{},真不是一般的麻烦,这时可以再定义一条LaTeX= \\LaTeX{},那么,在平时需要LaTeX这五个字母的时候,ltx后按一次ctrl+B,在需要输入logo的时候,ltx按两次ctrl+B OK了!像有一些关键字一般要切换字体来输入,也可以这样:

mt=MATLAB
MATLAB=\\textsf{MATLAB}

再举个例子,section, subsection, subsubsection这三兄弟可以用多重展开这样写

sec=\\section{|}
section{=subsection{
subsection{=subsubsection{

然后输入sec,按一下ctrl+B出来section,两下出subsection,三下出subsubsection,挺俏皮的……
5. 追加展开
  下面的追加展开功能也让人倾倒。比方说经常要给一 段文字/代码什么的两边加括号,SciTE的括号补齐功能本来是好功能,这时反而成了累赘:在左边补开括号后要按del键删掉自动补上的那个闭括号,然后 光标移到最后去加闭括号。SciTE支持选定这部分文字后按ctrl+shift+R打开缩写输入框,例如我的一对中括号是这样的:

ac={|}


那么,我选定文字后ctrl+shift+R再输入ac回车,括号就加上了。也就是说,选定的文字会替换竖线.
6. 合理定义缩写名
  根据熵编码原理(),建议最常用的编最短的码,所以我figure环境就一个f:

f=\\begin{figure}[!htb]\n\t\\centering\n\t\\includegraphics[width=\\textwidth ]{|}\\\\\t % e.g.,[scale=0.75], [width=0.75\\textwidth ]\n\t\\caption{}\n\t\\label{}\n\\end{figure}


因为只要你不按 ctrl+B就不会展开,就算不小心按出来了,ctrl+z马上会把展开式还原成缩写名。而且我还发现,在出现一个缩写名包括在另一个缩写名中的情况时,SciTE用的是贪婪匹配(SciTE说明文档中的说法不对)。SciTE帮助文档说,如果你定义ringgathering两个缩写名,那么在输 gathering后按ctrl+B,只会按ring来展开,事实上是按gatherring来展开的,也就是说,在按下ctrl+B的时 候,SciTE从光标处往前查找,一直匹配到abbrev文件中最长的那个缩写名并展开,并且这与缩写名的顺序无关,这个设置是相当好的(估计是后来改 了,但帮助文档没改)。不过,也可以养成让缩写名完全不互相包含的习惯,例如,section, subsection, subsubsection,我原来是定义成sec, ssec, sssec,这样一个包含一个如果你不放心的话(其实没问题),不如就改成s0, s1, s2(数字表示有几个sub)。


7. 根据文件类型定义单独的缩写文件
  当你开始滥用缩写后,你会发现冲突得厉害,但又不想把缩写名复杂成诸如for@c, for@matlab这样怎么办?SciTE支持每个文件类型单独一个缩写文件。例如,在matlab.properties最后加上
abbreviations.$(file.patterns.matlab)=$(SciteUserHome)/abbrev_matlab.properties
再新建一个abbrev_matlab.properties文件放在根目录下,就可以在打开matlab文件后,用菜单'options - open abbreviations file'来打开独立的缩写文件进行编辑。保存后不用重启SciTE立即生效。那么,在abbrev_matlab.properties里面写 for=for i=|\n\t\nend,在abbrev_cpp.properties里面写for=for(i=0;i<|;i++){\n},这样你只要记 一个forok了。

最后,警告:很容易中毒,现在我在这里回帖的时候经常想着缩写&展开....

TM 2008让我用回QQ



我对QQ的成见是非常大的,在旧的日志中曾经用大量篇幅阐述过,在此不赘述。为了这种成见我甚至放弃了大批的QQ上的同学、朋友。

在QQ之外,腾讯还模仿MSN/WLM开发了一个Tencent Messenger。TM出道已经很久,在国内也赢得过一些“白领”们的青睐。前不久,在学校的电脑上无聊,抱着“试试看”的心态装了TM 2008 Preview 3英文版。

受Vista影响而重新设计的TM让人眼前一亮:玻璃效果的面板、位置清晰的按钮、混然一体的框架以及一扫而光的广告,都让我觉得这是一个“可以用了”的聊天工具。与Windows Live Messenger相同的地方在于,TM的用户群明显也定位在非娱乐环境:QQ秀和Q空间完全不可见,没有闪屏功能等等,这一切正好满足我的需要。

有鉴于此,最近觉得自己能摆脱对QQ的厌恶情绪了。总之我用QQ只是为了聊天,腾讯的那些行为,影响不到我,故而眼不见心不烦就是了。

暂别了,Linux

2008年7月15日星期二

openSUSE 11.0出来了,听说比原来漂亮了很多,还引入了KDE 4和Compiz Fusion。想想自己配置好openSUSE 10.2虽然花了很长时间,但这么久没有用过,抹除掉似乎也不心疼。结果openSUSE 11给我的印象很糟糕,主要的问题是Compiz Fusion不能正常工作,另外字体比原来还要更显得虚。思来想去,我决定暂时把分配给Linux的10GB空间还给已经很紧张的Windows D盘(为了这个无损调整空间我提心吊胆了3个小时,因为开始调整大小时我才想到我们楼经常停电的,不过还好,很多邻居都搬走了)。

Linux是一个很优秀的系统,我花了很多时间在上面,虽不说了解到了系统的方方面面,但从图形界面到命令行,基本的操作都已经明白了。我相信,只要愿意花时间,Linux一定可以配置得很好用,而且对我来说没有什么太大的困难在Linux的硅基世界里“活着”。可是,如果说花大量时间转型到Linux只是完成和Windows下面我能完成的同样事情,并附加一点美感的话,我觉得不值。看看我用的软件,倒大多是跨平台的(Firefox,SciTE,LaTeX排版引擎等),可是这也意味着我为了在Linux底下使用他们就又得重新进行配置。更重要的还是Windows下软件的制约:我需要使用MATLAB,而Linux下的MATLAB不很好找破解;公司给我的软件是Windows only的;Linux底下没有极点五笔这样称手的输入法,没有Babylon这样专业的翻译软件,没有Total Commander……

我没有办法改变某些习惯吗?很大程度上是的,但我想说,如果改变某些习惯,去找低一等级或者不同理念的替代品去重新习惯,结果也只不过是完成同样的事情,效率并没有提高多少的话,那么这个过程中花费的时间,是不是用到别的地方更有意义呢?同样是这个问题,在Word和LaTeX之争中我的回答与Windows和Linux之争不尽相同,对前面两个对手来说,我认为LaTeX对我更有学习的意义,因为LaTeX相对于Word的优势正是我需要的(所见非所得=>集中精力在文档内容、源文件兼容性好、严谨性高、输出美观专业),用LaTeX可以大大提高我写文章的能力和效率;相反,Word相对于LaTeX的优势我基本用不上(写短文章方便、字体选择方便、绘制表格与插图方便)。所以我会选择LaTeX,但不排除我建议很多人不要使用LaTeX,因为在他们的排版应用中,Word的优势占重头。说到Windows和Linux,答案也不言而喻了:Linux相对Windows的优势(文件系统效率高、多用户与安全性、适合编程与开发、美观的桌面、免费开源),我很少真正能用上;Windows的优势,光是软件支持一点就让我只能(更多地)留在Windows。

我自问没有仅仅因为跟风而尝试Linux,而是了解到了Linux好在哪里,所以说现在放弃Linux的行为也是清醒的:它(它们)是优秀的操作系统,但只有真正需要用到它们的时候,我才有必要去学习。人生的节奏一旦开始加速,有限的时间就应该更加合理地去把握。

关于正则表达式中的几个术语的译法

2008年5月26日星期一

正则表达式中的look(ahead|behind|around)功能是使其强大的重要原因。关于这种匹配方式存在下面几个术语:
positive lookahead
negative lookahead
positive lookbehind
negative lookbehind
positive lookaround
negative lookaround

中文往往会把它们按字面意思翻译,positive和negative翻译成正向/负向,从而有了“正向预查”,“负向预查”的译法,但这显然没有表明出术语的真实含义---positive和negative表示的是检查是否存在这个pattern,positive表示存在,negative表示不存在。或者说检查pattern后的结论,"是"或者"否"。而ahead和behind才是向前/向后,或者正向/反向。关于ahead和behind,也可以从逻辑上来理解:lookahead是预查(文字尚未出现),lookbehind是复查(文字已经出现)。或者延用原来的一种译法,negative 译为“排除”,那么我想positive就可以译为“确认”,negative lookbehind译为“反向排除”,positive lookahead译为“正向确认”,等等

结合起来我认为这样翻译比较像术语:

positive lookahead -- 预查确认
negative lookahead -- 预查排除
positive lookbehind - 复查确认
negative lookbehind - 复查排除
positive lookaround - 双向确认
negative lookaround - 双向排除

这样比英文还要明了一点。

今天的勤快是为了明天的懒——SciTE编辑器心得

2008年5月11日星期日

接触到SciTE编辑器跟我的学习有关,当初写LaTeX用的是WinEdt。不可否认WinEdt在编写LaTeX方面的优势:WinEdt的设计相当复杂,有好多功能或许我一辈子都用不到,但这并不是我放弃WinEdt的主要原因,事实上,WinEdt对UTF-8的支持才让我最终割爱。这都是因为我要在学校和家里同步LaTeX文档,由于法语系统跟中文系统保存和显示方面的问题,只有Unicode才是我的不二选择。WinEdt虽然支持UTF-8编码,但复杂一点的字符在打开时就会丢失,这是完全不能忍受的。换编辑器其实对用惯了WinEdt的我来说是一个重大决定,但事实证明我碰巧选择到的SciTE一点也不让我后悔,反而让我有点沾沾自喜。

由于初衷是为了LaTeX文档,所以自然会在CTeX中文论坛上问问其他人用什么编辑器,这时看到instanton和mathmhb的SciTE定制版,下载了下来。当时学校的任务不重,于是仔细看了看这个文本编辑器。SciTE跟我喜欢的LaTeX,Firefox一样,都属于默认功能并不强大,越研究越可以自己添砖加瓦,产生梦寐以求的效果。开始的时候没有多研究,只是在定制版的基础上自己修改了PDFLaTeX的快捷键,并加入了XeTeX的编译选项。但这两个小小的操作让我感觉到,SciTE有相当强的可定制性。

SciTE的另一个特点就是设置文件的可读性,SciTE的诸多设置都保存在纯文本格式的.properties文件中,并且设置使用的语法也比较表面化,一看就能看懂。这让使用Total Commander的我十分满意,因为Total Commander的查找文本功能可以让我轻松地定位到想要修改的地方。在弄明白设置文件的优先级后,很多功能都可以自己修改了。一直到这时,我所做的也只是用SciTE来编译LaTeX文档,但仅此一点就让它成为我学校机器上几乎天天启动的程序。

不久,依然是学习的缘故我开始要编辑和调试C语言程序。最初我希望使用的是Visual Studio 2008,但装上去后发现过于庞大一时不好上手,所以退回来用学校机器上预装的Dev C++。这时我发现Dev C++的编辑器实在是让人难以习惯,首先我最需要的注释/取消注释的快捷键就不能正常工作,而我想到了SciTE中方便的Ctrl+Q的来回切换注释/取消注释。于是我考虑改用SciTE来编辑源代码,并且根据cpp.properties文件设置好了集成开发环境的一些参数,这个过程又复习了一下Makefile文件,Linux底下原来用在Emacs中的Makefile现在一样能用。为C调好了SciTE,才发现SciTE的功能真不赖:缩进指示、语法高亮、自动完成、函数提示一应俱全。写LaTeX文档不容易养成排版的好习惯,因为LaTeX帮你把输出排得好看一般就够了,LaTeX也不能算真正的编程(写LaTeX宏包除外),但写C程序,不排版好代码,自己写的代码都会忘掉。这时还发现了SciTE在细部修改上面的一些贴心功能:行剪切、行交换和行复制。

后来为了处理公司发过来的文本数据开始学习VBScript,用的也是SciTE,但由于VBScript并不复杂,所以默认的功能也大致够用,唯独有一点不能像EmEditor一样为保留字和默认程序(如MsgBox)定义不同的高亮颜色,仔细看了看才知道原来这要在编译SciTE程序之前就声明,所以没去多研究。

到这时对SciTE的了解依然是冰山一角,下面出现了另一个开发环境:Scilab,让我得以有机会再深入地了解一些SciTE。按理说Scilab不能集成到SciTE中,我应该是没法在SciTE中编辑Scilab的源代码后直接调试的,但Scilab自带的编辑器比Dev C++更难用。最后权衡的结果是我情愿用SciTE编辑好了再到Scilab中去调试,因为用Scilab编辑器排版代码要多花一倍的时间和心情。

这时我才开始真正了解语法高亮的原理,如果说语法高亮的颜色是用户指定的,那么如何去高亮代码的某一部则是由lexer来指定的,而这个lexer,就是展示编辑器设计者对一门程序语言的理解的地方。SciTE中默认没有Scilab的lexer,我试着调用MATLAB的,但由于注释字符的不同而失败。这时instanton告诉我只要照着MATLAB的lexer改一改就行,那么我想不得不去看看SciTE的源代码了。开源的东东上手很难,但没有什么神奇的,一切实现过程都通过源代码展示出来,诚然Documentation是少了点,但只要肯花时间,是能看懂的。下面的过程就是用SciTE自己来编辑SciTE的源代码,经过instanton关于双斜杠的提点,我写出了Scilab的lexer并编译出了属于自己的SciTE程序。不久,又被告知还是要去用MATLAB,这下好,几种编程语言一块用,则更需要用一个统一的编辑器了。MATLAB的编辑器功能上并不弱,可偏偏居然不支持ClearType字体,不能用consolas还有什么用,继续用SciTE编MATLAB吧。由于要长期面对代码,自然把白色的背景换成了暗一点的苹果绿。

当我真正要开始编程的时候,另一个问题出现在我面前:光标移动和细部修改。我是一个很懒的人,我认为要讲求效率的话,打字的时候双手是不应该离开主键盘区的。虽然我可以准确地用右手打中次键盘区里面的Home/End/PgUP/PgDN和四个光标键,但有时为了移动出一个括号去这样实在是不值得。我不习惯Vim的一键移动功能,开始怀念起Emacs,当时在Emacs底下编程的时候,光标的移动是很方便的(虽然有个笑话说Vim的用户笑Emacs的用户需要CTRL和ALT的两个脚踏板)。我也想在SciTE中实现这些功能,这时才认真去研究SciTE内建的Lua脚本,仔细看了看高人们原来就写好的脚本,“搬运”了好多Emacs类型的快捷键,打造出一套自己的配置来,如上下左右,行选定,行搬运,移动/选定到行首行尾,按单词进退/选定和删除单词,连Delete键我都搬运到了Alt+D上,这样基本上用不着次键盘区了(只是目前还在适应中,不时还用Shift+上下来选定)。继续发现SciTE默认的功能如Ctrl+F3(查找选定单词),插入书签的功能方便在文档中跳来跳去,增量搜索也是必不可少的,相信在以后,Ctrl+E(检查匹配括号)也会成为维护括号类编程语言(C语言)的利器。快捷键一多起来还真有点记不住,我干脆打印出来帖在墙上……

另外一个功能是挺晚才发现的(相见恨晚!)——缩写功能。SciTE的缩写功能我已经专门单开了一篇文章来讲述,总之,这个功能能延长人的有效生命……

感觉最近花了相当多的时间在打造SciTE上,很熟悉的感觉,就像自己在一点点地为Firefox学习JS正则表达式,一点点地为XeTeX学习字体调用一样,对它了解得越多,它就越听话。我想下面要继续学习的是SciTE的Lua脚本语言,因为懒,我已经学了批处理和VBScript了,看来我还想更懒吧……就如同文章标题说的,今天花两个小时学一个命令,将来会为我省下几天的时间。

目前发现SciTE还存的不足就是没有分割屏幕的功能,而这个功能在源代码中就没有,有时在对比维护程序的时候是相当麻烦的。

字体迷的显示字体推荐

2008年4月27日星期日

自从迷上了收集和研究字体后,去国外的论坛的共享网站下载了几GB的字体。价值不菲的字体,光收藏着自得其乐似乎太浪费了,而平时写电子文档的机会也并不多(加上对Minion的热爱似乎让其它的字体也没有用武之地),所以屏幕显示方面使用的字体反而成为了主要研究的对象。

我平时使用的标准文本大小是12pt,Windows在这个尺寸下,如果没有hinting(字体微调)技术的话,即便打开ClearType,字体也依然会发糊。或许有gdi++这样的第三方渲染引擎,但试用gdi++后我感觉它还是把字体弄得太粗,而且占用的系统资源不是一般的高。在这个前提下,真正能显示良好的字体只有带hinting的TrueType字体了。从技术层面来看,大部分TrueType字体使用下面的设置:0-6pt: smoothed; 7-13pt:hinted; 14+:smoothed and hinted。相反,OpenType字体则都是0+就smoothed and hinted,自然不适合显示。

首先要说一下,本文讲的都是西文字体,中文字体我看遍了也只有宋体(我指的是SimSun)最适合屏幕显示,所以中文我想我再不用找寻了。

Windows操作系统中默认就带了很多微调良好的字体,比如Tahoma, Arial, Verdana和Georgia,前面三兄弟是无衬线(sans serif),后面的Georgia是衬线字体(serif)。有一点常识的人都知道,在小尺寸下系统对衬线的显示会力不从心,所以衬线字体很难有发挥的空间。不过,粗衬线(slab serif)字体还是不错的,因为它们的衬线的宽度够粗,能显示出来。话虽这么说,多少人在用Time New Roman看网页上的文章啊……

本文介绍的字体很多来自于Will Harris大师的介绍Georgia和Verdana一篇文章,http://www.will-harris.com/verdana-georgia.htm
其中提到的很多字体确实相当不错。此外的字体都是我自己用肉眼去尝试和评判的。还有一点是,我操作系统是Windows XP,打开ClearType级别到1600(还没打开的,不管你是液晶还是CRT,为了视力都赶紧去打开吧)


本文介绍的字体,我用FontExpert在12pt大小生成了预览报告,到时候会想办法找地方传上去。写这篇文章是在EmEditor中写,一边写一边切换到相应的字体看效果,写评价。下面按字母序介绍:
### 无衬线类 ###

  • Avenir:一般般吧,虽然名气比较大,在很多pdf中见过。显示的效果比较扁,高度不够。
  • Blueprint:Harris介绍的一个字体。挺活泼的,只是有点偏淡,粗体效果还可以。
  • Calibri
  • Candara
  • Corbel:上面三个C开头的字体是微软ClearType家族的,我不太明白微软为什么要开发三个这么像的字体。都用的是不齐线数字,可是12pt时都偏小(注,这里的偏大偏小都是跟12pt的Tahoma,也就是大家最熟悉的字体的尺寸来比较)。我觉得Candara比较柔和,Calibri锐利一些,Corbel没有什么个性。
  • Consolas:这个等宽字体也跟上面的“头文字C”兄弟一样是微软的字体,由于等宽,用做屏幕文本的确不太合适,但介绍它的原因是因为写程序代码用它实在太棒了。它也是头文字C字体集中唯一免费下载的,赶紧用它来替代代码编辑器中的courier new吧。
  • DejaVu Sans:这个是Bitstream的免费字体,也是很多Linux发行版的默认字体(是Vera系列的升级版),因为里面字符集相当全,单个字体的尺寸达到了500kB。试用了一下,发现虽然里面带了2500多个kerning pairs,kerning的效果反而不太理想(过犹不及?)。DejaVu Sans Mono是很多Linux程序员的推荐字体,但我还是喜欢Consolas多一些。(杂:DejaVu这个名字我很喜欢,因为在我身上也总是发生既视性现象。)
  • Gill Sans MT:学校的法语系统中默认有这个,但中文系统中没有。这个字体还可以,斜体设计得不错。
  • Helvetica:用得特别多的字体了,几乎不用介绍也知道,没有Arial的地方就有它。
  • Humanist 777:自己淘到的一款Bitstream字体,效果很锐利,我用做任务栏显示。
  • Incised 901 BT:也是在Bitstream字体中发现的一款,非常逼近Tahoma的效果
  • Lucida Grande / Lucida Sans:Lucida Grande是的确很“大”,在显示的时候行距都加宽了,只是它显示不出一些中文的字体,比如全角冒号。Lucida Sans嘛,没有kerning pairs,效果不太均匀,但Lucida Sans Italic却很漂亮。
  • Myriad Web:这是我全面用来替换Tahoma的字体,它的效果非常棒,据说和微软的Segoe UI一样是模仿Frutiger的,可是我这个列表中甚至没有Frutiger字体。Myriad和Minion是Adobe用得最多的文档字体,而为了屏幕显示专门设计的Myriad/Minion Web一下就抢占了我的视线。
  • Neo Sans:很新发布的一个字体,有点生硬,看久了会累,优点是很饱满,高度也够。
  • N.O.- Perfect Kiss:这个字体吸引人的名字让它进入我的视线,效果还是可以的,比较窄一些。
  • Optima:大名鼎鼎的Optima,无衬线中的“准衬线”,在12pt的位置上略微有点淡,行距也比较大。我比较推荐GE Optical,虽然一看后者几乎是无耻地照抄前者,但效果确实要好一些。
  • Page Sans:在字体论坛下载回来后让我眼前一亮,随后拍案叫绝的字体,我就把它安排给了我的Total Commander用。Page Sans设计得相当清晰,但大写的U在12pt上依然表现出左粗右细的精美效果。Page Sans还配着不齐线数字,非常有型。
  • Palatino Sans Com:另一个让我振奋不已的大作,Palatino的衬线字体胖胖的非常可爱,但由于衬线太豪华,显示效果一般。被设计成无衬线后,原来的圆滑风格得以保留,虽然有点小,但行距的增大让阅读文本更方便。由于跟12pt的宋体相比更矮些,夹杂几个英文单词在中文中的效果挺特别的,所以目前经常在Google Talk聊天时使用。
  • Proxima Sans:我以为它跟FontExpert的出品公司有什么联系才试了试它,现在感觉一般。
  • Sassoon Sans:Harris推荐的字体,小巧玲珑,活泼的程度跟前面的Blueprint相似,但不会那么淡,行距加大。
  • Stone Sans:名气不小的公司Stone出名的同名主打字体。不过,我是用了Medium尺寸才觉得够粗的。配合不齐线数字。
  • Swiss 721 BT:Harris推荐的字体之一,大小写高度差比较明显,字母e显得特别圆润。
  • Zurich BT:又是Bitstream公司的杰作。跟Swiss挺像的(名字也都跟瑞士有关),kerning效果各有千秋。

### 衬线类 ###
  • Cambria
  • Constantia:上面这两个是“头文字C”中的衬线字体。Constantia多一组不齐线数字,比Cambria好看些。只是Constantia 粗/斜/粗斜中居然都没有数字,估计是我收集的这个版本有问题。
  • Egyptian 505 Medium BT:论坛上有人求这个字体,找来后发现确实不错。粗衬线字体,“削”出来的效果很漂亮。
  • Esta:DSType公司的作品,细细的衬线处理得相当好,笔划既不会发虚也不会粘在一起,不齐线数字1用的是英文I的效果,多少有点偏艺术型。
  • Georgia:微软精心设计的字体,打开ClearType后才能看到它最美的效果。目前我写电子邮件用Georgia,相信既能让别人眼睛一亮(相比Times, Arial和Courier),通用性又很强。
  • GeoSlab703 Md:跟上面的Egyptian比,GeoSlab更早进入我的首选列表,大小写字母的高度差和行距都很大,很适合阅读大段的纯文本英文说明。字母y的末尾都是向右推出去,跟Minion相同。
  • Maiandra GD:原来在看一篇pdf文档中就认识了这个活泼的字体,用来打印信件一定很不错。没想到在12pt时也表现得十分优秀,字体圆润饱满,在小尺寸上依然展示出丰富的线宽变化。聊天一定也是不错的选择。
  • Memphis:名字来自美国一城市,是Harris推荐的字体,粗衬线,比Egyptian和GeoSlab细了一些,大字T也有点左右不等。
  • Minion Web:我最爱字体的Web版,不过总觉得14pt才能显出它漂亮的笔锋,Minion小写y的右顿收笔是我最欣赏的。
  • Page Serif:Page Sans的衬线版,笔划特别粗,跟宋体放一块比就接近粗体了。阅读大段文本应该很不错,写文章也值得推荐。
  • Caecilia:Harris推荐的衬线字体之一,只能说是中规中矩。
  • Serifa:这是Harris自己常用的屏幕字体,也是粗衬线,效果有点像在看Courier,个人觉得看久了会累。
  • Stone Serif:Stone的衬线版。衬线表现力十分出众,尖的尖圆的圆,方寸空间利用到了极致。为了好看选用的同样是带不齐线数字的Medium版。
  • Zapf Elliptical:字体大师Hermann Zapf在1952年设计的字体,由Bitstream推出,曾经是Linotype报纸所用的字体。想必“超椭圆曲线”是一个技术含量很高的东东,视觉效果也的确很舒服。

这篇文章的字体巡礼在这里
字体下载链接

日常字体(续)

2008年4月15日星期二

经过几天对字体的研究和尝试,最终确定日常使用的字体一套:


  • Windows外观主题(Dogmax):Myriad Web, 10pt
--更改Windows字体并不容易,我在网上淘到一个小工具SFC-System Font Changer,用它直接修改msstyles文件。喜欢Myriad主要是因为它是Minion的兄弟
  • Aston开始菜单:Minion Web, 10pt
--Minion是我最喜欢的字体,不过,由于是衬线字体,不打到10pt的话效果并不好。如是10pt会让中文显得非常之大,所以,应用范围不多,只好用在开始菜单中了。
  • Aston任务栏:Humnst777 BT, 8pt
--Humnst777 BT是Bitstream出品的无衬线,效果很好。
  • Aston时钟:Consolas, 10pt
--Consolas是我选择的编程字体,为了让它也有出场的机会,把等宽的效果用在显示时钟上再好不过了。本来打算用带不齐线数字的字体来显示时钟的,可是我的时钟是显示到秒钟,这样不齐线数字就会出现上翻下翻的效果,而且显示1的时候还比其他数字窄,综合起来就显得右下角总有什么东东在“动”。
  • Total Commander:Lucida Grande, 8pt
--都选完了,TC用什么?选一个美化爱好者比较喜欢的Lucida Grande,其它Lucida字体都偏矮。
  • Google Talk:Calibri, 12pt
--Google Talk只能用单字体纯文本,而且一改全改,尤其有字体的发挥空间。微软的ClearType家族里(Calibri、Candara、Corbel)都带不齐线数字,其中Calibri显得最合适。
  • 再加上在LaTeX写文档中的最爱——Minion Pro!

XeTeX的字体集成问题

2008年4月14日星期一

XeTeX确实能够很方便地调用字体的特殊属性(Text Figures,Ligatures),但自从开始用XeTeX,就发现一个问题,那就是这些特殊的功能虽然能够被看到,却不能够被复制到。比如说在XeTeX中这样写:

\usepackage[cm-default]{fontspec}
\setmainfont[Numbers=OldStyle]{Minion Pro}

在生成的PDF文件中,无法复制/搜索不齐线数字,如果用齐线数字则正常。同样,对ligatures(连字)的支持也有问题,fi,fj和fl连字复制不到,可ff,ffi和ffl就能复制出来。查了一圈XeTeX的文档和相关的文档都没有查到,何况,在fontspec的说明文档中,这样的问题同样存在(不齐线数字复制不到),另外XeTeX Companion里面倒是没有出现连字的错误,只是我没有Goossens的源代码。

日常字体

2008年4月12日星期六

看腻了Windows的默认字体,我开始学着了解其他字体,在成为字体迷之后,对字体的选择也出苛刻起来。我认为,电脑的显示字体用无衬线比较舒服,文档(如pdf)和打印字体选择衬线字体则更加适合阅读,对写程序来说自然是等宽字体的天下。

中文Windows XP默认的显示字体是中文宋体(Simsun)英文用Tahoma。事实上这个选择也是被动型的,即在桌面属性-外观-高级中,默认选择的字体是Tahoma,只不过碰到中文字体的时候,由于Tahoma中不含中文,故而选择系统默认的中文字体宋体。如果主动选择宋体的话,由于宋体中带有英文字符,看到的效果将相当难看。Simsun对显示中文来说我觉得足够棒,即便Vista中引入了雅黑,我还是觉得宋体是看不腻的。Tahoma也是挺棒的,清楚美观。让我看腻了的应该是网页显示中的Times New Roman,这个字体在打印方面的效果或许比较好,但在屏幕显示方面乏善可陈。此外,无衬线的Arial字体亦不如Tahoma好看,可由于习惯的原因Arial运用得几乎跟Times一样广泛。

使用Firefox浏览器后,对字体的设置比IE大为详尽,故而我有机会尝试用不同的字体来优化网页的显示效果。和想像的不同,曾经打算使用Myriad Pro这个专业级的字体来作无衬线,可它在小尺寸下的显示效果发虚,和它的衬线兄弟Minion Pro一样。选来选去,还是Tahoma胜出。不过,微软在Vista中引入的Calibri,Candara,Cambria和Corbel(不知道为什么这几个风格相近的无衬线字体都要C开头,很难记的……)也很不错,这几个字体和Tahoma比要偏小一些,所以没有用来显示网页,但横向空间的利用更合理了些,不会像Tahoma显得很窄,所以我用了Calibri给Google Talk的显示,Emeditor用的也是Calibri。

Emeditor很长时间都用的是Georgia,不过Georgia字体要在打开Cleartype后才会显得饱满。Blogger默认的模板都使用的是Georgia字体,'g'的圆润,'y'的小勾和一组不齐线数字是Georgia的亮点。不过由于上面提到的几种微软字体也带有不齐线数字,所以我在纯文本的Emeditor中暂时试用一下。

显示字体和纯文本方面无衬线字体优势较大,可到了富文本的世界,衬线字体的优雅才展现出来。这里面有老牌的Garamond,Bembo,胖胖可爱的Palatino,也有Adobe免费发放的Minion Pro,Myriad Pro,其中Minion Pro更是得到了LaTeX用户的重视,为它制作了LaTeX的Metrics和宏包,目前我LaTeX文档都默认采用Minion Pro宏包。XeTeX出现后,对于专业字体的使用达到了一个新的高度,而衬线字体的功能往往比无衬线字体要丰富得多。

程序设计是枯燥的工作,如果没有一种舒服的字体,则更容易在代码中晕厥。程序代码和人类的语言文字不同,程序代码往往由变量,数字和标点符号配合着不等的缩进和注释来呈现,所以也不能按照文字排版的视角来看待。由于程序代码的美观标准之一就是两行之间某些元素的对齐,所以在程序代码中使用等宽字体能够让代码显得更均匀更可读;相反,等宽字体如果用在文本中,则会显得既生硬又臃肿。大部分编辑器默认都使用长期以来的标准等宽字体Courier/Courier New,但这个字体看久了容易累,因为它的粗衬线显得比较夸张,加上对数字0没有特别处理,并不是完美的程序代码字体。我目前选择的是微软的Consolas字体,也就是上面的C家庭字体中的等宽兄弟,他继承了Lucida Console的优点,看着清爽稳重并且是为数不多有斜杠0的免费字体(微软的网站上提供下载)。此外,Linux下面的Vera Sans Mono和后继的Dejavu Sans Mono也都很不错,毕竟是经过多少Linux程序员的苛刻遴选的。

不过,要让字体尤其是新型的字体显示出应有的美感,千万别忘了打开ClearType哦(即便是CRT显示器,效果也是相当明显的),除了上面提到的Georgia,微软C家族,微软的雅黑就专门是为ClearType而生的,关掉ClearType的话他们将因为Aliased得厉害而变得像Fixedsys一样难看。

昨天才发现Minion/Myriad有专门为屏幕显示设计的版本:Minion Web和Myriad Web,两个都是TTF,包含在Font Folio 9 CD中。两者的效果都还不错,只是,同样12pt在Emeditor显示得不错,在Firefox中显示得却偏小。选来选去,我发现还是只有Tahoma适合做网页字体,配上Georgia作为衬线字体。

对了,忘了说,本Blog的字体设置如下:模板设置中Body Text:'Tahoma',Verdana;其他标题和日期字体使用了Tahoma, Verdana, Trebuchet MS。考虑到Minion Web不普及,这篇Entry的字体使用了Palatino Linotype,一般系统中都自带了。Minion/Myriad Web到这里下载。

kmc的Firefox扩展介绍

2008年4月9日星期三

看到很多人都在Blog上介绍自己用的Firefox扩展,还有“十大”、“二十大”扩展介绍的震撼标题,作为一个精通Firefox的用户,也觉得有必要写一写。

我使用的是Firefox 3.0pre,事实上我是从Firefox 3.0开发的中期加入Nightly使用者行列并一直更新到现在的,在此之前,由于2.0的使用已经足够方便,加上我觉得浏览器毕竟是浏览器,只要浏览功能正常,就没有必要关注太多。但事实上Firefox 3.0引入的实用和新鲜的功能让我毫不后悔选择了经常性地更新(并面对新Bugs)。版本的升级让扩展又一次成了Firefox爱好者心急的对象。从开始用3.0到现在,有些扩展紧紧地跟住官方Trunk,有些扩展即使不更新也一直可以用,有一些功能失效的找到了替代品,还加入了一些新的功能。现在手头的Firefox 3和一年前的Firefox 2相比真的是焕然一新。

- Adblock Plus 0.7.5.3+.2008040421: http://adblockplus.org/
- Adblock Plus Watcher 0.9+.2008032400: http://adblockplus.org/
- Adblock Plus: Element Hiding Helper 1.0.2+.2008011108: http://adblockplus.org/
上面这三兄弟是Adblock Plus一家的,ABP是从我用Firefox开始就首先认识到的广告过滤扩展,不过当时是Adblock,后来衍生出的Plus,现在大家基本上都是用它。当时很疯狂地正则表达式,现在网上还流传着自己写过的文章。慢慢地,广告过滤的规则已经慢慢成型,我便很少去调整这个扩展的设置,而只是让它默默地在后台工作着。但是,这绝对是必不可少的Firefox扩展之一

- BBCode 0.5.2.2: http://www.mrtech.com/extensions/#bbcode
方便插入论坛代码的扩展,对泡坛子又喜欢格式化文字的我很有用。这个扩展目前被MrTech接手过来开发。原来还有一个能很方便转帖的bbcode formatting extension扩展,已经失效,至今没有更新过,也没有找到合适的替代品。

- ChatZilla 0.9.81: http://chatzilla.hacksrus.com/
IRC扩展,个头很庞大。原来用单独的mIRC,后来看见Firefox中能实现干脆就装上的扩展,现在用IRC的人应该很少很少了……

- Context Search 0.4.1: http://www.cusser.net
在右键菜单中添加一个搜索引擎菜单,这样在网页上选定文字后直接可以右键中选择需要的搜索引擎。挺不错的功能,补上了搜索引擎关键字搜索的不足(必须自己打搜索词)。本来有一个更酷的扩展(drag & dropzone searching),选定文字后一拖动就会出现一个网格把屏幕分隔成代表不搜索引擎的区域。但这个扩展跟Drag de Go冲突,后者的功能我更需要,只有割爱。

- CustomizeGoogle 0.71: http://www.customizegoogle.com/
对于几乎天天要使用Google搜索的我,这个扩展很必要。主要用得上的几个功能是:1. 锁定使用偏好,这样无论是什么后缀的Google域名,无论我有没有登录Google帐户,搜索的偏好都是一样的(例如每页100项结果,英文Google界面);2. 过滤搜索结果。有一些网站并不是恶意网站,但比恶意网站还干扰搜索结果,比如要收费的技术网站,二次搜索网站和收费P2P资源站。这类站点以骗钱为目的,却因为关键字涵盖量之大,总是出现在靠前的位置。3. 去除广告和Google推荐,这个自不待言,都是为了让搜索结果更接近搜索的初衷,少浪费时间。

- Dictionnaire MySpell en Français 1.6
法语拼写检查

- DOM Inspector 2.0.0: http://www.mozilla.org/projects/inspector/
Firefox默认集成的扩展之一,开发者和Firefox Hacker必备。对我来说虽不是必备,但考虑到应该有机会用得上,也便没有卸载。

- Drag de Go 0.2.5.1: http://forums.mozillazine.org/viewtopic.php?t=440259
超级拖拽功能。对于习惯中键点击的我,拖拽链接几乎是已经忘记了的习惯。对我而言,DdG主要还是用来拖文字搜索,拖图片/扩展保存,拖链接调出菜单在外部的IE内核中打开(这就基本上省了IETab)。强大的方向性和自定义的文件夹列表功能——很好很强大。
这个扩展早就在Firefox 3.0中失效,作者没有更新,不过开源的优势得以让某个爱好者进行了小小的修改,这个扩展起死回生至今。

- FireGPG 0.4.9: http://www.getfiregpg.org/
最近两天研究GPG(或者PGP)加密装上的扩展,纯属好玩。

- Flashblock 1.5.6a: http://flashblock.mozdev.org/
由于Firefox目前没有原生的Flash支持,碰到Flash多的网站很容易假死或减速,默认不下载Flash是不错的主意,但要是用Adblock把*.swf全部B掉,想打开又麻烦。Flashblock会在Flash的位置上放一个播放按钮,需要看的时候才看。白名单功能,让你不会错过Youtube这样非广告Flash站。

- FlashGot 0.8.9: http://flashgot.net
调用外部下载器的扩展。由于外部下载器种类繁多,这个扩展的升级频率等于下载器升级频率的总和,也应该是升级最频繁的扩展了。它基本的功能是使用Firefox不可或缺的,而建立图库的新鲜功能,只用过几次。

- Foxmarks Bookmark Synchronizer 2.0.44.14: http://www.foxmarks.com/
同步书签的扩展。同类的扩展一定不少,选择它其实也出于不得已。在学校工作的时候,其实是很少修改自己书签的,所以与其同步,不如用Google Notebook来记载。可后者最近几乎失效了,只好暂时装上书签同步扩展。不过,能把自己的书签放在网站上也提高了自动的移动能力(Portability)。类似的有Mozilla官方出品的Weave扩展,目前还很初级,但据说在4.0中会成为默认的功能。

- Gmail Notifier 0.6.3.2: http://www.nexgenmedia.net/extensions/
Gmail已经成为我的主力邮箱并且看Gmail的发展趋势,即使有一天收费,我也不会离开Google。所以我必须要能随时随地知道有没有新邮件。原来用的是Gmail Manager,但在3.0的扩展失效大潮中,GM首先倒下了,GN走在了前面,而当我装上GN的时候才知道它已经实现了GM的多账号功能。所以,即便GM重新兼容3.0,我也没有转回头去。

- Google 笔记本 1.0.0.19(目前失效中): http://www.google.com/notebook
在我眼中,Google Notebook是Google实验室最优秀的产品(没有“之一”)。以至于另一个着眼于和其它在线书签抗争的Google Bookmarks也并入了Google Notebook。没错,Google Notebook的初衷并不是在线书签,而它最终比在线书签还要强大。期待这个扩展重新兼容Firefox的一天。

- Greasemonkey 0.8.20080408.1: http://www.greasespot.net/
油猴子脚本大师。为高手设计的扩展,能够通过脚本来实现无数的功能。该扩展称得上是“生成扩展的扩展”,因为有些脚本的功能已经达到了扩展的水平。
我使用的几个脚本:Google搜索关键字红色显示。因为英文版的Google只是用粗体来强调关键字,不够显眼。要是按照Google Toolbar的多色高亮法,容易头晕。为这个简单的功能不至于装Google Toolbar。原来还装过All-in-One search button,被这个脚本淘汰了,一个脚本淘汰两个扩展,GM的厉害可见一斑。只是由于跟Firefox的关系太紧密,GM需要经常更新才能不失效。

- Locationbar² 1.0b1: http://en.design-noir.de/mozilla/locationbar2/
一个主要是eye candy的扩展。把地址栏的显示效果优化——强调主域名(防钓鱼),加大分段宽度,淡化子网域,分节可点击。

- Menu Editor 1.2.3.3: http://menueditor.mozdev.org/
个性化菜单项的扩展。虽然一直没有更新,但一路带过来都没有失效。
什么?在我顺手打开主页的时候,我才发现,这个2007年3月最后一次更新的扩展在昨天2008年4月8号又更新了(1.2.4)!
(该作者的另一个重头扩展是Download Statusbar,2.0中曾经非常喜爱,可惜在3.0中早早失效,加上3.0对默认下载管理器的更新,让我最终觉得没有必要用回它了)

- Metrics Collector 2a6: http://www.google.com/search?q=Minefield%20Metrics%20Collector
原名是叫Spectator,收集匿名的使用习惯信息,帮助开发者了解用户并优化软件。作为Nightly Tester,这样透明地作贡献何乐不为?

- Mouse Gestures Redox 1.9.20080318: http://www.mousegestures.org/
鼠标手势扩展。鼠标手势用的人喜欢到不行,不用的人完全看不上,所以目前还没有成为Firefox的内建功能。相关的扩展有All-in-One gestures,我2.0时是用它,3.0开发到某个Beta时,AIOg突然失效。对完全依赖鼠标手势的我,这简直是panic。于是换到了Mouse Gestures,功能上更开放一些,支持自定义手势。此外还有FireGestures,更省资源。目前AIOg,MG和FireG都已经兼容3.0。

- MR Tech Toolkit 6.0a28: http://www.mrtech.com/extensions/local_install/
这是一个大型的扩展包。一个扩展涵盖了47个小扩展的功能,连我在2.0中一直使用的Nightly Tester Tools,也被它淘汰。虽然装上它后Firefox会有比较明显的降速,但权衡一下,是完全值得的。

- NextPlease 0.6.6: http://nextplease.mozdev.org
论坛、搜索引擎的翻页扩展。再也不用去找那个小得不行的“下一页”按钮了,跟鼠标手势配合起来非常好用。

- OpenSearchFox 0.1.5
添加搜索引擎的扩展,有了它,我的搜索引擎列表暴增到20个,Context Search也因为这个扩展显得有用了。

- PDF Download 1.0.1.1: http://www.pdfdownload.org
这个扩展的出现改变了PDF链接总是调用内建的Acrobat(reader)查看从而减速的局面,对PDF链接弹出提示让用户选择。目前该扩展卖给了Nitro PDF Software。

- Regular Expressions Tester 1.0.8.9: http://sebastianzartner.ath.cx/firefoxExtensions/RExT/
测试正则表达式的扩展。要是在当初研究Adblock时有它该多好,我也不至于去在外部的测试工具中测试自己写的表达式了。现在装着完全是备用。

- ScrapBook 1.3.3.2: http://amb.vis.ne.jp/mozilla/scrapbook/
保存网页的扩展。功能十分强大,保存下来的网页也是原汁原味(占空间也不小)。对于重要的信息,保存到书签并不好,网站可能失效。所以,当场存到硬盘上。

- SecurePassword Generator 0.5.4: http://mozmonkey.com
我比较喜欢密码,这个是用来生成随机复杂密码的。只是好玩而已,跟前面的FireGPG没法比。

- ShowIP 0.8.06build0210: http://code.google.com/p/firefox-showip/
在状态栏显示当前网站的IP,很简单的一个功能。

- Tab Mix Plus 0.3.6.1.080406: http://tmp.garyr.net
多标签浏览增强型扩展。或许有人说Firefox2或者3的多标签能力已经足够,装TMP这么个庞然大物(比MrTech Toolkit还大)不值得,但我需要的功能(标签栏放下方,高亮当前和未读,标签进度条,单窗模式,防下载空白页和自定义是否后台或激活)加一块儿也真非TMP不可。可惜也是经常失效的扩展,好在作者onemen知道自己的扩展很流行,从而十分关注Firefox的开发,对得起众多的支持者。

- TinyUrl Creator 1.0.4: http://mozmonkey.com/
利用TinyUrl服务简化冗长的网址,非常实用的功能。

- Tweak Network 1.1.2: http://www.bitstorm.org/extensions/tweak/
该扩展用来Boost Firefox的网络性能,在ping值低的网络中效果特别明显。

- xyzproxy 1.16: http://xyzboard.com/
网络代理扩展。Foxyproxy的功能更加强大,用户也不少。由于我在功能上要求不高,所以只用它也就够了。

Google Talk发布Labs Edition



进展缓慢的Google Talk终于在最近发布了一个实验室版(Google Talk Labs Edition,以下简称GTLE)。

其实没有什么特别的新鲜东西,只是引入了Gadget的一些元素(群聊,表情),界面成为了Gadget的样式,有点Flash的味道,在联系人上点右键已经不会出现菜单,为了调出设置菜单,需要在Systray图标上点右键,而这个设置菜单亦是简单到不能再简单。

没有了语音和文件传输功能。事实上这两个功能也只有双方均使用Google Talk客户端才能正常使用,事实上Google允许用Gmail和Gadget两种登录方式,加上非Windows系统中只能通过XMPP/Jabber来登录,这两个功能几乎没有生存空间。

GTLE并不是Google Talk的升级版,安装采用了Google惯常的强制安装(即没有任何选择),安装的位置居然在C:\Documents and Settings\$USERNAME\Local Settings\Application Data\Google\Google Talk, Labs Edition下面(天哪,逗号都出现了,是不是在做梦)。到安装目录下看了看,软件界面是XML写成的,图标文件全部拆散了和dll存放在子目录下,外面有一个EXE程序。或许是好事。

这个版本大力介绍的是和Calendar的集成,也就是说Calendar的提醒会通过GTLE发给用户。这也是GTLE唯一的新亮点吧,其它Gmail和Orkut提醒只是界面上卡通化了点。

最令人期待的隐身功能(已经出现在Gmail chat模块中)并没有出现,这个GTLE给人的感觉有点桌面版Gadget的味道,事实上我并不喜欢Gadget,我觉得Google Talk更像一个正常的Windows程序。但愿Google能把Gadget的功能往Google Talk里面融合,而不是朝另外一个方向发展。

Google Talk发展的缓慢真的让人很失望,现在的about:里面还写着2005-2006 Google,依然是1.0.104……