2006年06月30日

过多的时间花在字体美化上面,是不值得的。本贴是为了linux新手在gentoo或其他linux distro历程中更快启航而写。如有谬误,请不吝指教。

1) 题外话:gnome更多的桌面主题:

代码:
#emerge metacity-themes
#emerge gnome-themes-extras

2) 拷贝windows字体到gentoo box里。例如tahoma.ttf, tahomabd.ttf, simsun.ttc, mingliu.ttc,我的目录是/usr/local/share/fonts/,不要忘记

代码:
chmod 744 /usr/local/share/fonts/*

3) 按照www.xfree.org中的文档,需要为core和fontconfig两种字体系统安装字体。
首先,core字体安装方式是将路径添到XF86Config和在目录下执行mkfontscale, mkfontdir. 已有诸多贴子描述,从略。
其次,fontconfig字体安装是在字体目录下执行fc-cache。

4) 美化方案
只讲fontconfig,其他的例如gtk等已有大量帖子描述,从略。
4-1) 不要修改fonts.conf: 既然它要求不要改,那就别改。
4-2) 修改/etc/fonts/local.conf,还是修改~/.fonts.conf,可由需要决定。
4-3) 怎样修改local.conf或~/.fonts.conf
务必要按照下面格式

代码:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!– 要设置的内容统统在这里–>
</fontconfig>


4-4) local.conf或.fonts.conf要设置的内容描述 – 这里不是讲解fontconfig,这里只讲要用的东西,要注意: 如果在kde中设置字体,它会改写~/.fonts.conf。
4-4-1) 字体目录

代码:
<dir>/usr/local/share/fonts</dir>


4-4-2) default fonts
Serif是有衬线的字体,像Times这个字体, sans是像Arial这样的字体,代码示例

代码:
<!– Default fonts –>
<alias>
   <family>Times New Roman</family>
   <family>Times</family>
   <family>SimSun</family>
   <family>MingLiU</family>
   <default><family>serif</family></default>
</alias>
<alias>
   <family>Tahoma</family>
   <family>SimSun</family>
   <family>MingLiU</family>
   <default><family>sans-serif</family></default>
</alias>
<alias>
   <family>Terminal</family>
   <family>Courier New</family>
   <family>SimSun</family>
   <family>MingLiU</family>
   <default><family>monospace</family></default>
</alias>


4-4-3) 字体替换顺序,代码示例

代码:
<alias>
   <family>serif</family>
   <prefer>
      <family>Times New Roman</family>
      <family>Times</family>
      <family>SimSun</family>
      <family>MingLiU</family>
   </prefer>
</alias>
<alias>
   <family>sans-serif</family>
   <prefer>
      <family>Tahoma</family>
      <family>SimSun</family>
      <family>MingLiU</family>
   </prefer>
</alias>
<alias>
   <family>monospace</family>
   <prefer>
      <family>Terminal</family>
      <family>Courier New</family>
      <family>SimSun</family>
      <family>MingLiU</family>
   </prefer>
</alias>


4-4-4) 选中的字体,不要anti-alias (就是不要模模糊糊的那种)

代码:
<match target="font" >
   <test name="family" qual="any" >
         <string>Tahoma</string>
      <string>Verdana</string>
      <string>Arial</string>
      <string>Times</string>
      <string>Times New Roman</string>
      <string>Courier</string>
      <string>Courier New</string>
                <string>SimSun</string>
                <string>MingLiU</string>
     </test>
     <edit mode="assign" name="antialias" >
         <bool>false</bool>
     </edit>
</match>


这里一定要有simsun, mingliu,否则4-5-2)粗体出不来。xfree.org里列举了将所有字体anti-alias都取消的代码,这样当然不好。也可以按照例如从8点到15点字都不用anti-alias的方案
4-4-5) xfree.org中举例的为LCD显示器做的优化

代码:
<!– Enable sub-pixel rasterisaton on LCD displays –>
<match target="font">
   <edit name="rgba" mode="assign">
      <const>rgb</const>
   </edit>
</match>

液晶显示器必选。
4-4-6) 解决使用中文字体时,英文字间距加倍问题:

代码:
<match target="font">
   <test target="spacing" compare="more_eq">
      <const>dual</const>
   </test>
   <edit name="globaladvance" mode="assign">
      <bool>false</bool>
   </edit>
</match>


将以上所有片段连接起来,就可以了。<!– 到 –>里面的都是注释。
4-5) 粗体解决方案
4-5-1) 替代方案
在你自己的local.font或者~/.fonts.conf中加入

代码:
<!– bold substitution, by luo: karllo@mail.nbptt.zj.cn –>
<match>
   <test name="family">
      <string>SimSun</string>
   </test>
    <test name="weight" compare="eq">
      <const>bold</const>
   </test>
    <edit name="family" mode="assign_replace">
      <string>SimHei</string>
   </edit>
<!– if subtitude fonts has "bold", we can use it, otherwise just comment out   
         <edit name="weight" mode="assign_replace">
      <const>bold</const>
   </edit> 
–>
</match>


这里,我们用黑体SimHei代替应该成为黑体的simsun。效果不怎么样。如果用一个粗圆体,效果会更好些。
4-5-2) 修改libXft方案。按照firefly提供的patch,可以自己编译,也可以按照其他贴子修改ebuild,重新emerge,但是都很麻烦。现在要使用一个比较"dirty"的方案,但是效果是非常不错的。
首先看看你原本的libXft.so.2在哪里

代码:
# find /usr -type f -iname ‘libXft.so.2*’


我的是在/usr/X11R6/lib/下面,xft2的是libXft.so.2.1,其他两个是到这个文件的符号连接。
下载:http://firefly.idv.tw/setfont-xft/RedHat/9.0/RPMS/libXft-2.1.2-2.firefly.i386.rpm
然后,将里面的库提取出来

代码:
#mkdir tempDir
#cd tempDir
#rpm2cpio ../libXft-2.1.2-2.firefly.i386.rpm | cpio -i


或者

代码:
#rpm2targz libXft-2.1.2-2.firefly.i386.rpm
#tar -xvzf libXft-2.1.2-2.firefly.i386.tar.gz


你将看到,里面共有三个文件,一个库文件libXft.so.2.1.1,两个符号连接。简单的办法,删除原来的libXft.so.2.1,把新的拷贝过去并命名为libXft.so.2.1即可。同时,要在你自己的local.fonts或~/.fonts.conf中增加:

代码:
<!– artificial bold by: firefly–>
<match target="font">
   <test target="pattern" name="weight" compare="more">
      <const>medium</const>
   </test>
   <edit name="weight" mode="assign">
      <const>bold</const>
   </edit>
</match>

这样就产生了粗体。

5) mozilla的字体,除了中文将最小字体改为12,其他我没做任何改变。

看图吧。我自己就是万全我上面所说的方法进行,我只用了很少时间就得到了一个清晰美观的桌面。好了,现在可以学学别的了。

附记:如果使用圆体字AA美化,你也可以从我的方案中马上只道怎么做了。提示:4-4-4)就不要了,所有的字都用反锯齿效果了,粗体解决方案用4-5-1)即可, firefly相关补丁等都不需要进行了。

    我用的是2005.0的安装盘.比较方便,就是编译的时候慢了点.挺有成就感的.下面就说一下我安装的步骤.

    首先, 首先当然是分区了.我用的是fdisk,字符界面的,不太好看.可以用分区魔术师,图形化的,很方便.哦!分区后别忘了安装文件系统: mke2fs -j /dev/hda6 ,这样就在hda6上安装了ext3文件系统.也就是我们总说的格盘(哈哈).我用了10G的空间安装Gentoo,32M用于/boot分区,1G用于交换分区,其余的用于根(/)分区.

   

   

2006年06月29日

    今天关于CoG Kits的报告做的真太糟了.没想我会做出这么糟的报告,看来演讲的能力还有待加强.

    晚上跟女朋友吵了一架.男人和女人的想法真是相差太远了.我们在同一件事情上分歧总是很大.希望可以很好的解决.

2006年06月28日

    安全是网格计算中一个很重要的话题. 安全的主要内容包括身份的验证, 数据传输的安全.在数据传输方面GT4采用了公钥-密钥加密(X.509标准).

    对于请求服务的客户,需要得管理者的许可. 在服务端, 管理者产生客户证书并发送给客户. 客户端得到并安装证书后, 得到该证书的公钥-私钥及请求文件(用于数据签名). 客户将请求文件发送给管理者. 管理者对该请求签名后发送给客户. 客户用此证书及密钥请求服务.

     GT4中证书的安装过程如下:

1. 在服务端生成证书:

choate % grid-cert-request 
A certificate request and private key is being created.
You will be asked to enter a PEM pass phrase.
This pass phrase is akin to your account password, 
and is used to protect your key file.
……
writing new private key to '/home/bacon/.globus/userkey.pem'
Enter PEM pass phrase: ****
Verifying - Enter PEM pass phrase: ****
……

输入密码后在主目录中生成.globus/usrcer.pem, .globus/usercer_request.pem.globus/userkey.pem三个文件.

2. 在客户端安装证书:

globus@cognito:~$ scp choate:.globus/simpleCA/globus_simple_ca_ebb88ce5_setup-0.18.tar.gz .
globus@cognito:~$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1
globus@cognito:~$ $GLOBUS_LOCATION/sbin/gpt-build globus_simple_ca_ebb88ce5_setup-0.18.tar.gz 
globus@cognito:~$ $GLOBUS_LOCATION/sbin/gpt-postinstall

证书安装后在主目录中生成同上三个文件.usercer_request.pem发送到服务端签名.

3. 服务对客户端进行签名

globus@choate:/tmp$ grid-ca-sign -in usercer_request.pem -out out.pem

4. 客户用out.pem覆盖usercer.pem

完成数字签名后,客户就可以通过该签名于服务端进行通信.


2006年06月23日

    Globus基本安装完成后,下一步需要安装CA,为了方便,我只安装了simpleCA用于实验。simpleCA实现了公钥-密钥机制.

    数字签名需要两套公钥-私钥.公钥用于数据的传输,私钥则用于对请求进行签名.  对于需要进行身份认证的两台机器A,B. A机器的公钥,私钥分别为pubA,priA, B的公钥,私钥分别为pubB,priB. 对于A向B提交的任务,B应能确定该任务的提交者是A机器,且在B机器执行完该任务后,A机器不能否认其是该任务的提交者.其具体过程如下:

  1. B发送以pubA加密的context (pubA(context)) 给A机器.

  2. A接收pubA(context)并解密,得到context

  3. A 以其私钥priA对context加密,得到priA(context).

  4. 以 pubB加密后得到pubB(priA(context)),发送给B

  5. B以priB解密得到priA(context),再以pubA解密,得到context’.

    如果两部分内容相同,则B可以确认是A机器发出的请求.另外,由于A机器私钥的拥有都只有A一个.所以其加密过的priA(context)别人不能伪造,在任务提交后A机器不能否认其提交者身份.

    在该过程中,对A机器的公钥-私钥有如下要求:

    1.  公钥,私钥加密顺序可以互换,即 pubA(priA(context))==priA(pubA(context))==context

    2. 公钥,私钥加密后的结果不同,即 pubA(context)!=priA(context)

   

2006年06月21日

    今天试着装了一下Globus, 在一台机器上现在算是装上了,启动的时候有些问题,应该是没装数据库的原因.但是有个问题?

    在一台机器上装上Globus后,还要在其它的机器上安装吗(几台想互连的机器)?证书是如何获得的.怎么来用呢?看来要学的东西还有很多啊.

    Globus好像有两个Core组件,一个是C的,一个是Java的.我应该会用Java那部分的.要好好看看Globus的文档了,不然过一段时间就没办法开发CSF了.

    现在的主要任务是把两台机器连进来….