2008年12月30日星期二

CS University Tip

美国计算机专业前20名著名学校点评(转)

总的来说,前20的CS可以分成三波:

多以开源起家
一、4个最为优秀的CS Program: Stanford, UC. Berkeley, MIT, CMU

二、6个其他前10 的: UIUC, Cornell, U. of Washington,Princeton, U. of Texas- Austin 和 U. of Wisconsin-Madison,其中UIUC, Cornell, U. of Washington和UW- Madison几乎从未出过前10。

三、其他非常非常优秀的CS:CalTech, U. of Maryland at CP, UCLA, Brown, Harvard , Yale, GIT, Purdue, Rice, 和 U. of Michigan.

Stanford URL: http://www.stanford.edu/ Stanford 的CS是个很大个的CS,拥有40人以上的Faculty成员,其中不乏响当当硬梆梆的图灵奖得主 (Edward A.Feigenbaum, John McCarthy) 和各个学科领域的大腕人物,比如理论方面的权威 Donald E. Knuth; 数据库方面的大牛Jeffrey D. Ullman(他还写过那本著名的编译原理,此人出自 Princeton);以及 RISC 技术挑头人之一的John Hennessy。相信CS的同学对此并不陌生。该系每年毕业30多名 Ph.D.以及更多的 Master。学生的出路自然是如鱼得水,无论学术界还是工业界,Stanford 的学生倍受青睐。几乎所有前10的CS中都有 Stanford 的毕业生在充当教授。当然同样享有如此地位的还包括其他三头巨牛:UC.Berkeley, MIT 和 CMU. 毕业于U. of Utah的 Jim Clark 曾经在 Stanford CS当教授。后来就是这个人创办了高性能计算机和科学计算可视化方面巨牛的SGI公司。SUN 公司名字的来历是:Stanford UniversityNetwork.。顺便提一下,创办 YAHOO的华人杨致远曾在斯坦福的EE攻读博士,后来中途辍学办了YAHOO。 CS科研方面,斯坦福无论在理论,数据库,软件,硬件,AI 等各个领域都是实力强劲的顶级高手。斯坦福的 RISC 技术后来成为 SGI/MIPS的 Rx000系列微处理器的核心技术; DASH,FLASH 项目更是多处理器并行计算机研究的前沿;SUIF 并行化编译器成为国家资助的重点项目,在国际学术论文中SUIF编译器的提及似乎也为某些平庸的论文平添几分姿色。 Stanford 有学生14000多,其中研究生7000 多。CS有175人攻读博士, 350人攻读硕士,每年招的学生数不详,估计少不了,但不要忘了,每年申请CS的申请学生接近千人。申请费高达 $90.00。 斯坦福大学位于信息世界的心脏地带--硅谷。加州宜人的气候,美丽的风景使得Stanford堪称CS的天堂。33.1平方公里的校园面积怕是够学子们翻江蹈海,叱姹风云的了。申请斯坦福是很难成功的,但也并非不可为之。去斯坦福这样的牛校,运气很重要,牛人的推荐也很重要。

UC-Berkeley URL: http://www.berkeley.edu/ 同样地处旧金山湾畔,硅谷地带,离 Stanford 只有大约 50公里的加州大学伯克利校区:UC.Berkeley 是美国最激进的学校之一。60年代的嬉皮文化,反越战,东方神秘主义,回归自然文化都起源于此。诗人爱伦金斯堡是当年 Berkeley的代言人。 在当今高科技领域 C. Berkeley 在缔造新的神话,在文学,数学,化学,新闻等20多个大的学科领域中位居前3。 16个诺贝尔奖得主,总数近200的科学院院士、工程院院士,连同众多在硅谷商战中成为亿万富翁的伯克利人撑起了一面汇集天下之英才的大旗。INTEL总裁AndrewGrove 毕业于 UC. Berkeley。 BSD版的UNIX影响了整个OS界,伯克利的 RISC 技术后来成为了SUN公司 SPARC 微处理器的核心技术,巨牛人物 David Patterson 接下了一个6亿美元的项目用于新型计算机体系结构,特别是 IRAM 的研究开发。 UC. Berkeley 有学生 30000多,研究生超过8500。申请费和其他加州大学的分校一样,$40.00。据一项最近的调查,伯克利已经成为美国大学生最向往的研究生院,高居榜首,其申请的难度可想而知。UC.Berkeley的 DEADLINE一般很早,12月中就截至了,其内部 的实际 DEADLINE 其实要迟一些。 Berkeley的CS是个大系,Faculty中有图灵奖得主以及象 Patterson 这样的巨牛。学生的出路同 Stanford,MIT,CMU一样,光辉灿烂,前程锦绣。CS科研方面,Berkeley 也是样样强,门门巨牛。 旧金山湛蓝起伏的海湾,苍翠绵延的山峦,舒心宜人的气候,以及近在咫尺的硅谷…… 这一切的一切不也使得UC.Berkeley 俨然一个CS 学子的世外桃源么?

MIT URL: http://www.mit.edu/ MIT 招生好象不看GRE成绩。但MIT的CS是巨牛的,99年最新排名上它和斯坦福被打了5.0 的满分,并列第一。MIT的CS曾为CS的发展作出不可磨灭的贡献,数据流计算的思想和数据流计算机、人工智能方面的许多重大成就,以及影响了整个 UNIX 界的 X-Window……MIT和斯坦福,CMU, UC. BERKELEY一样,都是几乎在CS界样样巨牛的学校。 MIT的Media Arts and Sciences其知名度不在 Computer Department下。主要是多媒体技术,信息处理,人工智能……有一大批著名的教授,如 Marvin Minsky (Turing Aw ard)

CMU URL: http://www.cmu.edu/ CMU 是个位于匹兹堡的不大的学校,学生7000多,校园好象也不大。但这个学校在工程及其他一些领域却是顶尖的学堂。 CMU的 CS 不单单是个系,而是一个学院,其规模之大,可能只有Stanford, UIUC可比。教师学生的情况同前面3个类似,不再赘述。Mach 操作系统,PVM,C.mmp等都有CMU的巨大贡献。 申请CMU的难度很大,因为尽管CMU的 CS Faculty很多,但每年只招不足30人的研究生队伍。

CORNELL URL: http://www.(cs.)cornell.edu 作为 IVY LEAGUE的成员和一所私立学校,Cornell有其独到的优势。在美国,私立学校一般比公立学校难进,其学生也是经过很严的选拔才录取的,Cornell的CS学生入校后多能享受FELLOW的待遇,其个人经济条件非公立学校可比,加上贵族式校友的提拔,私立学校的出路是很诱人的。 Cornell在理论计算机方面一直是顶级高手,但在其他CS领域并不总能在前10.Cornell学生18000多,研究生过5000。CS每年招攻读Ph.D.的学生25 人左右。

UIUC URL: http://www.uiuc.edu/ UIUC 的工程院在全美堪称至尊级的巨牛,其 CS,ECE,EE 在历史上都屡建战功。在 CS 方面,从早期的超级计算机ILLIAC I, II, III, IV 到后来的 CEDAR,都是CS发展史上,特别是并行计算机发展史上的重要事件,影响、引导了很长时期的发展。 David Kuck曾是并行处理界的一代先驱。 超级计算机研究开发中心:CSRD,美国国家超级计算及应用中心:NCSA等众多的机构,使得 UIUC 的 CS 常常成为研发的领军头领。大家可能还记得,Netscape-Navigator 的最初开发人员中有个 Marc,Anderssen。这位来自 WISCONSIN 的小伙在 UIUC 读本科,大四的时候在NCSA参与编写了 MOSAIC,后来他去了硅谷,并在那里遇到了前面提到过的大牛: Jim Clark,SGI 的前创始人,两人一见如故,联手创办了著名的网景,并一度在浏览器市场上独霸武林。 随着一代代至尊大师的离去,UIUC 的 Faculty 看上去似乎并不引人注目。但得提醒你,UIUC 的 CS 向来以实干著称。我期待着他们下一个惊世之举。 UIUC是个大学校,学生数过35000,研究生院的近万。UIUC 的 CS 很大个,40余个 Faculty 提供了全面的 CS 教育和科研项目。每年30多个博士的毕业数目似乎只有斯坦福可以匹敌。 UIUC 的 Polaris 并行化编译器是这个领域和斯坦福的 SUIF 直接叫板的拳头产品。清华开发并行编程环境时选用了这个系统。只是代码庞大,运作缓慢的 Polaris 搞的清华有那么一点点瘪西西... UIUC 在计算机硬件,软件,AI,DB,等各个领域都相当巨牛。特别是硬件,前面提到的 ILLIAC,CEDAR.....事实上,UIUC 在超级计算机系统的研究开发方面决不逊于 CS 四大天王中的任何一个,甚至有过之而无不及。NCSA 建立在 UIUC这一事实本身就是佐证。 UIUC-CS 的学生毕业后去学术界的不少,Stanford, Berkeley...都有UIUC 的博士挑大梁。但更多 UIUC-CS 学人还是进入业界,成为业界实干的中坚。

U. of Washington URL: http://www.washington.edu/ 位于 Seattle的 UW 得天独厚--计算机界的巨牛MS就在西雅图,而且 更为要命的是,Bill Gates 就是那里儿的人。这位 Harvard 的辍学者给了哈福许多 MONEY, 但同给UW的钱财相比,实在是小巫见大巫。 U. of Washington 位于分光秀丽的 WASHINGTON 湖畔,气候四季如春。33000多学生中研究生有8000。Seattle 最令人厌恶的地方可能就是一年有160天会降水。 UW的 CS 较大,30多名 Faculty 成员,每年近20个优质博士毕业,以及大量的Master。估计每年的招生数应该不低,UW的CS在各个方面比较均衡,最强的软件排名第5,而其他领域也一般都能位居前10,好象没有明显弱的地方。 图灵奖得主 Dick Karp 从Berkeley告老还乡后又被返聘到了 UW 的 CS。U. of Washin gton 的 CS 要求很高,Ph.D.学生入学的平均 GPA 高达 3.86, GRE2160+,加上一般较早的 DEADLINE,申请UW是相当有难度的。

Princeton URL: http://www.princeton.edu/ Princeton 是个令人神往的地方,这里曾经世界的科学中心。Princeton的CS不大, 18个 Faculty 成员,学生数也不算多。科研上除了排名第5的理论,似乎还没注意到其他闪光点。但是,Princeton 无疑培养出了大量计算机界的优秀人物,Jeffrey D. Ullman, John McCarthy 等大名鼎鼎的巨牛人物均出自 Princeton. 在 Princeton 领受的教育是最好的教育熏陶。 Princeton 学校不大。

2008年12月17日星期三

I am married

2008年12月6日,我结婚了。

2008年10月20日星期一

Exhaustive Attack method

#! /usr/bin/perl
use warnings;
use strict;

my %dict = ('A'=>'E', 'E'=>'F', 'F'=>'H', 'H'=>'J', 'J'=>'K',
'K'=>'M', 'M'=>'P', 'P'=>'A', ' '=>'A');
my $max = 'P';
my $str_len = 4;

my @tmp;
for (my $i=0; $i<$str_len; $i++) { push(@tmp, ' ') }

sub up {
my($pos) = @_;
if (($tmp[$pos] eq $max) and ($pos < $str_len)) {
$tmp[$pos] = $dict{$tmp[$pos]};

$pos++; up($pos);
} else {
$tmp[$pos] = $dict{$tmp[$pos]};
return 0;
}
}

while (!(($tmp[0] eq $max) and ($tmp[1] eq $max)
and ($tmp[2] eq $max) and ($tmp[3] eq $max))) {
up(0);

for (@tmp) { print if ($_ ne ' ') }
print "\n";
}

2008年9月12日星期五

Infinity

只有两种事物是无穷无尽的--宇宙和人类的愚蠢。但对于前者,我不敢确定。
-- Albert Einstein

2008年9月8日星期一

卤肉

突然想自己做卤菜,星期天下午从联华超市买了包卤料,又从小区外的超市买了斤肉,把紫砂的电炖锅拿出来,按卤料包装上的说明将原料洗吧洗吧就入锅了,嘿嘿。
这个炖锅也忒慢,1个多小时才烧开,大约炖两个小时肉就很松了,香气四溢啊。但是开始水放得多了点,于是继续炖2个多小时,一直到晚上9点,终于可以开锅了,哈喇子流得稀里哗啦 ^^
虽然中途加了4次盐,还是淡了点,味道和外面卖的卤肉味道也不太一样,不过还是可以的。继续改进,明天添图

2008年9月7日星期日

Using UTF-8

使用 UTF-8 编码一个多月了,发现不少问题。首先是普及率,会使用 GNU/Linux 的人太少,即使有人会用,有时受到环境的限制也用不了,而 windows 上默认则是 GB 编码,用 UTF-8 需要设置,这样换其它机器写文档的时候就比较麻烦,每台机器都要设置。最大的问题是 latex-suite 竟然对 UTF-8 的支持也有问题,用 UTF-8 编码时 ALT-I 的键映射就失效了。 ctex 宏包对 UTF-8 支持也不好,哎... 环境问题啊。 暂时先换回 GB 编码了,等等再说。

2008年9月4日星期四

Chrome hotkey

窗口和标签页快捷方式

Ctrl+N打开新窗口
按住 Ctrl‎ 键,然后点击链接在新标签页中打开链接
按住 Shift 键,然后点击链接在新窗口中打开链接
Alt+F4关闭当前窗口
Ctrl+T打开新标签页
Ctrl+Shift+T重新打开上次关闭的标签页。 谷歌浏览器可记住您关闭的最后 10 个标签页。
将链接拖动到标签页内在指定标签页中打开链接
将链接拖动到两个标签页之间在新标签页横条上的指定位置打开链接
Ctrl+1 到 Ctrl+8切换到指定位置编号的标签页。 您按下的数字代表标签页横条上的位置。
Ctrl+9切换到最后一个标签页
Ctrl+Tab切换到下一个标签页
Ctrl+Shift+Tab切换到上一个标签页
Ctrl+W 或 Ctrl+F4关闭当前标签页或弹出式窗口

地址栏快捷方式

在地址栏,进行下列操作之一:
键入搜索字词使用默认搜索引擎进行搜索
键入网址中"www."和 ".com"之间的部分,然后按Ctrl+Enter为您在地址栏中输入的内容添加"www."和".com",然后打开网址
键入搜索引擎关键字或网址,按 Tab 键,然后键入搜索字词使用与关键字或网址相关联的搜索引擎进行搜索 如果谷歌浏览器可以识别您要使用的搜索引擎,将会提示您按 Tab键。
F6 或 Ctrl+L突出显示网址区域中的内容
输入网址,然后按Alt+Enter在新标签页中打开网址

打开谷歌浏览器功能的快捷方式

Ctrl+B打开和关闭书签栏
Ctrl+H查看历史记录页
Ctrl+J查看下载页
Shift+Escape查看任务管理器
Shift+Alt+T将键盘焦点设置在谷歌浏览器工具栏上。 使用键盘上的向右和向左箭头,导航至工具栏的不同区域。

网页快捷方式

Ctrl+P打印当前页
F5重新加载当前页
Ctrl+F5 或 Shift+F5重新加载当前页,但忽略缓存内容
按住 Alt 键,然后点击链接下载链接
Ctrl+F打开"在网页上查找"框
Ctrl+G 或 F3查找与您在"在网页上查找"框中输入的内容相匹配的下一个匹配项
Ctrl+Shift+G 或Shift+F3查找与您在"在网页上查找"框中输入的内容相匹配的上一个匹配项
Ctrl+U查看源代码
将链接拖动到书签栏将链接加入书签
Ctrl+D将当前网页加入书签
Ctrl++放大文字
Ctrl+-缩小文字
Ctrl+0还原到正常文字大小

文字快捷方式

突出显示内容,然后按 Ctrl+C将内容复制到剪贴板
将光标置于文字字段中,然后按 Ctrl+V从剪贴板粘贴当前内容
将光标置于文字字段中,然后按 Ctrl+Shift+V从剪贴板粘贴当前内容的纯文字部分
突出显示文字字段的内容,然后按 Ctrl+X删除内容

2008年9月3日星期三

chrome -- Google Browser

Goolge 的浏览器 chrome 今天发布了,早上看到消息就开始安装使用,现在就用它来登录 blogger 涂鸦了。Google 出品,必属精品,呵呵。

总体感觉是,相对于以前用过的其它浏览器,速度是异常的快,界面非常简洁,快捷键大部分和 Firefox 相同,对我来说也容易上手。也有点不太满意的地方:书签功能没有 Firefox 的好用,特别是没有网络书签同步,似乎对自动跳转的支持有问题,中文字体显示不好看,内存和CPU占用偏大。还有个非常高效的问题,用 Firefox 可以正常播放的 Youtube 在线视频竟然在 chrome 中提示“We're sorry, this video is no longer available”,太汗了。
对这个测试版还是比较满意的,希望正式发布版有更好的表现,也希望 for GNU/Linux 的版本尽早出来。

2008年9月1日星期一

Asmyptote study 6

在 Asymptote 里没有找到 buildin 计算角平分线函数,自己写了一个,也算是第一个自己的 Asymptote 函数了。另外学到了markangle 的用法,不过它不能画直角符号。

三角函数计算不需要 import math; 看来 Asymptote 的计算功能还是挺强的。
 1 import markers;
2 size(4cm, 0);
3 currentpen = linewidth(bp);
4
5 //------- define function -------
6 // 返回与 角aob 平行的单位向量
7 pair avg_angle(pair a, pair o, pair b) {
8 pair m=a-o, n=b-o;
9 real m_agl = m.y==0 ? 0 : atan(m.y/m.x);
10 real n_agl = n.y==0 ? 0 : atan(n.y/n.x);
11
12 real agl = (m_agl + n_agl) / 2;
13 pair avg_unit = (cos(agl), sin(agl));
14 return avg_unit;
15 }
16 //-------------------------------
17
18 pair A=(20,25), B=(100,5), C=(80,106); // 随意定义的角
19
20 draw(B--A--C);
21 draw(A--(60*avg_angle(B, A, C)+A), currentpen+red+dashed);
22
23 //----- label & dot -------------
24 label("A", A, SW);
25 label("B", B, N);
26 label("C", C, S);
27 dot(A, linewidth(3bp)+red);
28 dot(B, linewidth(3bp)+red);
29 dot(C, linewidth(3bp)+red);
30 //-------------------------------
31
32 //--------- markers ------------
33 markangle(B,A,C);
34 /* import markers;
35 void markangle(picture pic=currentpicture, Label L="",
36 int n=1, real radius=0, real space=0,
37 pair A, pair O, pair B, arrowbar arrow=None,
38 pen p=currentpen, margin margin=NoMargin,
39 marker marker=nomarker);
40 */

2008年8月25日星期一

Asmyptote study 5


 1 import graph;
2 size(5cm, 0);
3
4 currentpen = linewidth(.8bp);
5
6 real f(real a) { return a^2; }
7
8 pair[] pp = { (-1,f(-1)), (0,f(0)), (1,f(1))};
9
10 // dotfactor = 7; // 定义 dot 大小,只在未定义 currentpen 时有效
11 dot(pp[1], UnFill); // 标记点 pp[1],空心点
12
13 path g = graph(pp, operator ..); // 将 pair[] pp 用 .. 连接
14 draw(g);
15
16 pair p=dir(g, 1); // path g 第 1 点(从0计数)处向量
17 draw("dir(g, 1)", pp[1] -- pp[1]+p, red, Arrow); // 画出上面的向量
18
19 arrow("path g", pp[0], NE, .8cm, blue); // 指示箭头
20 arrow("pair p[1]", pp[1], N, .8cm, blue);

2008年8月20日星期三

show perl rand() with Asymptote

1 #! /usr/bin/perl
 2 use warnings;
3 use strict;
4
5 =comment
6
7 用 Asymptote 来观察 perl 中 rand() 函数的随机性。
8 需要安装配置好 Asymptote
9
10 从观察结果看,还是令人满意的,分布比较均匀
11
12 =cut
13
14 open(TT, '>', '__t.asy') or die $!;
15 print TT 'size(10cm, 0);', "\n\n";
16
17 for (1 .. 1000) {
18 my $x = sprintf("%.2f", rand(200));
19 my $y = sprintf("%.2f", rand(200));
20
21 print TT "dot(($x, $y));\n";
22 }
23
24 print TT 'draw(box((0,0), (200,200)));', "\n";
25 close TT;
26
27 system('asy __t.asy');

2008年8月10日星期日

Asmyptote study 4 - midpoint

三种计算线段中点的方法,和另一种计算 pair 的方法。

1 size(4cm,0);
2 currentpen=linewidth(1bp);
3 pen dpen=linewidth(3bp)+red;
4
5 pair A, B, C;
6 A=(0,0); B=(1,0); C=(0,1);
7 draw(A--B--C--cycle);
8
9 // 第一种
10 draw (midpoint(A--B) -- C);
11 // 第二种
12 draw (B+0.5*(C-B) -- A);
13 // 第三种
14 draw (interp(A,C,0.5) -- B);
15
16 // 另一种计算 pair 的方法
17 dot(A/3 + B/3 + C/3, dpen);
18
19 dot((A--B--C), dpen);
20
21 label("A", A, SW);
22 label("B", B, SE);
23 label("C", C, E);

2008年8月5日星期二

Asmyptote study 3

Day day up ^^
 1 
2 real r=100;
3 real x=65*pi/180;
4 pair O=(0,0), D=(250,0), B=(r,0);
5
6 // 三角函数的参数是弧度值
7 pair A=(r*cos(x), r*sin(x)), C=(r*cos(x), 0);
8
9 currentpen = linewidth(1bp)+red;
10
11 draw(circle(O,r), linewidth(1.5bp)+red);
12 draw(O--A--D--cycle);
13 draw(A--C--B--cycle);
14
15 // 画圆弧的函数 arc() 的参数是 度数值
16 draw(arc(O,10,0,x*180/pi));
17
18 label("$x$", arc(O,10,0,x*180/pi));
19 label("1", A--O, NW);
20 label("C", C, S);
21 label("B", B, SW);
22 label("D", D, S);
23 label("A", A, NE);
24 label("O", O, SW);

2008年8月1日星期五

set hotkey in GNU/Linux

可以指定功能键来实现的, 可以这样试一试
#as root

1. 复制键盘转换表,将功能键的定义复制一份
cd /lib/kbd/keymaps/i386
dumpkeys --funcs-only>keyfile

2. 编辑此文件
vi keyfile
在vi里,设置要定义的功能键的函数,如:
...
string F5 = "/sbin/shutdown -h now\012" #\012是必须的
...
#可指定多个功能键

3. 加载这个键盘影射文件keyfile
loadkeys keyfile

4. 为了每次启动就可以使用这些功能键,可以在/etc/rc.local中加入:
loadkeys /lib/kdb/mapkeys/i386/keyfile

测试环境: redhat 9 GNU/Linux , 此方法使用文本方式

2008年7月31日星期四

UTF-8

昨天装 Fedora 想起了文字编码问题,为了一劳永逸,决定从现在开始改用 UTF-8 编码。

一切都还顺利,刚发现 LaTeX 编译出来的 dvi 文件中文部分是乱码,原来是导言区的编码写错了,改成 \begin{CJK}{UTF8}{fs} 就 OK 。
现在把 LaTeX 模板都改成了 UTF8 编码。 vim 的配置文件增加了 UTF-8 编码设置,把 vim 消息改成了英文的,右键弹出菜单是乱码,不过基本上不用右键菜单。

google sites 和 blogspot 默认的就是 UTF-8

(2008年8月1日17:52:28)UTF-8 的使用有点小障碍, windows 默认编码都是国标码,cmd 窗口都是 gb 编码的,这样在 utf-8 编码文件中用 sort 工具的排序输出就可能有乱码。还有就是写程序时如果用 utf-8 的话,在标准输出上显示的内容就是乱码。暂时在 vim 中做了设置,编辑 pl 和 cpp 文件时还用 cp936 编码。

2008年7月25日星期五

What is Vim

What Is Vim?

Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.

Vim is often called a "programmer's editor," and so useful for programming that many consider it an entire IDE. It's not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files.


What Vim Is Not?

Vim isn't an editor designed to hold its users' hands. It is a tool, the use of which must be learned.

Vim isn't a word processor. Although it can display text with various forms of highlighting and formatting, it isn't there to provide WYSIWYG editing of typeset documents. (It is great for editing TeX, though.)

2008年7月18日星期五

My google site and ...

现在改用 google sites 做主页了,和 box.net 配合用可以挂10M的文件 ^^
http://sites.google.com/site/redspid

今天在帮管敬做远程教育计算机课程的作业,做得一头恼火,全是 ms word、excel 和 windows 操作这些无聊的垃圾题目。中国的计算机教育简直是太畸形了,恐怕100年内能抓住 U.S.A. 的尾巴也只能是痴人说梦了。

make LaTeX template

今天别人问我使用 word 制作文档模板的问题,自己还从没想过用这个功能呐。突然想起利用 latex-suite 也可以很容易地制作 LaTeX 模板,在需要修改的地方插入 <+待修改的内容+> 就 OK 了。 HOHO~ 爽啊

(2008年7月18日1:26:58)看了一下 latex-suite 文档,原来里面已经定义了模板存放目录($VIM/ftplugin/latex-suite/templates/)和读取模板的命令 :TTemplate

(2008年7月22日8:41:53)仔细翻了下 Vim 手册,用 autocmd 解决了 latex-suite 导入模板时自动缩进导致的格式错乱问题。

(2008年7月24日14:31:49)模板导入还是有问题。

2008年7月15日星期二

Asmyptote study 2


1 size(5cm,0);
2 import graph;
3
4 draw((-1,-1)--(1,1));
5
6 // 画带箭头的 x 轴;以 0.6 为单位画刻度,不显示刻度值
7 // 标记 "x" 字样
8 xaxis("$x$", Ticks("%",0.6), Arrow);
9
10 // 画带箭头的 x 轴,标记 "y" 字样
11 yaxis("$y$", Arrow);
12
13 // 在 x 轴 0.6 位置标记 "a"
14 labelx("a",0.6, S);

2008年7月7日星期一

Asmyptote study 1

MetaPost 看得有点晕,而且搞定在 GSview 中预览加了 label 的图形还得配置参数。还好,在搜索解决方案的过程中发现了 Asymptote,嘿嘿,模仿 MetaPost 的原理和 C++ 语法,这个我喜欢。用 C++ 的语法绘出和 MetaPost 一样酷的图形,想想都能得意地笑出来。

不过似乎 Asymptote 的中文资料比较少,只有 bbs.ctex.org 上一位网友翻译了一部分文档,而且还没译完,看来还得啃英文的了。

下面是我研究了2个小时的部分成果:
 1 //导入 math 模块,里面包含下面要用到的 extension 函数
2 import math;
3
4 //将 cm 长度缩到 50%
5 //real cm = 0.5cm;
6
7 //线条宽度 1bp(我理解相当于 MetaPost 里的 pen 为直径 1bp 的圆点)
8 //灰度 50%
9 pen grid = linewidth(1bp) + gray(0.5);
10
11 //画出坐标。将 Arrow 换成 Arrows 则画出双箭头
12 draw((0,0)--(0,7.5cm), grid, Arrow);
13 draw((0,0)--(7.5cm,0), grid, Arrow);
14
15 pair a=(0,0), b=(5cm,5cm), c=(5cm,0), d=(0,5cm);
16 draw(a--b);
17 draw(c--d);
18
19 //计算 a--b 和 c--d 的交点,要用到 math 模块
20 pair e = extension(a,b,c,d);
21
22 //用红色标记出点 c
23 dot(e, red);
24
25 //文字标签
26 label("$x$", (7.5cm,0), S);
27 label("$y$", (0,7.5cm), W);
28 label("$Nodal$", e, E);
29 label("$A$", a, S);
30 label("$B$", b, E);
31 label("$C$", c, S);
32 label("$D$", d, W);

2008年7月3日星期四

Knuth said

“[T]he TEX research project that I embarked on was driven by two major goals. The first goal was quality: we wanted to produce documents that were not just nice, but actually the best.”


“I never intended to have a system that would be universal and used by everybody. I always wanted to write a system that would be used for just the finest books.”

“The current version number for TEX is 3.1, and for METAFONT it is 2.7. If corrections are necessary, the next versions of TEX will be 3.14, 3.141, then 3.14159, . . . , converging to the ratio of a circle’s circumference to its diameter; for METAFONT the sequence will be 2.71, 2.718, . . . , converging to the base of natural logarithms. I intend to be fully responsible for all changes to these systems for the rest of my life.”
Donald E. Knuth
Digital Typography (1999)

2008年6月22日星期日

in a nutshell

Oh yeah,踏破铁鞋无觅处,得来全不费工夫,今天看一个帖子终于弄清楚 "in a nutshell" 的意思了。哎,还是没有好好利用搜索引擎,搜了一下立马就出来了。

in a nutshell 是一个短语,意思是:To explain in a few words; to be capable of easy solution.

2008年6月16日星期一

To new LaTeXer

下面是水木 bbs TeX 版上面轰动一时的笔记后面的“跋”,我觉得写得非常好,放到这记一下。


首先向一路披荆斩棘看到这里的读者表示祝贺,至少在精神上你已经成为一名合格的LaTeXer。从此你生是LaTeX 的人,死是LaTeX 的鬼。Once black, never back。没有坚持到这里的同学自然已经重新投向“邪恶”的MS Word,毕竟那里点个按钮就可以插入图形,点个下拉框就可以选择字体。当然LaTeXer也有简单的出路,就是只使用缺省设置,尽量少用插图;不必理会点阵、矢量,也不必理会Type 1、Type 3、TrueType、OpenType。因为内容高于形式,你把文章的版面、字体搞得再漂亮,它也不会因此成为《红楼梦》;而《红楼梦》即使是手抄本,也依然是不朽的名著。

包老师曾经以为LaTeX 和Word 的关系就好象是《笑傲江湖》中华山的气宗和剑宗,头十年剑宗进步快,中间十年打个平手,再往后气宗就遥遥领先。至于令狐冲的无招胜有招,风清扬的神龙见首不见尾又是另一重境界,普通人恐怕只能望其颈背。等到费劲九牛二虎之力熬到本文杀青的时候,才发现从前的想法很傻很天真。让我们挥一挥手,不带走一片云,卧薪尝胆忍辱负重,耐心等待XeTeX 和LuaTeX。

2008年5月27日星期二

TV-wire


19 May 找 Changhong 的人来调试了,看来还是视频线的问题,便宜没好货,5元一条的线接分量输入端口颜色就是不行,即使换到 AV 端口有时画面也有波纹。五星电器卖的"秋叶原"分量视频线太不靠谱,竟然要 85元。

鉴于上次网上淘来的金士顿 2G SD卡质量、价格比较满意,决定再去淘一把。

2008年4月29日星期二

Hans Reiser

Linux操作系统的ReiserFS文件系统开发者Hans Reiser近日被陪审团裁定有罪,陪审团认为他在2006年残忍枪杀其妻子,但是她的尸体一直没有被发现。

由Reiser开发的ReiserFS文件系统是一种性能不错的Linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数 据,文件名以及日志支持,并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如,SGI。高性能 文件系统Reiserfs向来都是Linux fans眼中的挚爱。

目前经过为期6个月的审判和为期3天的陪审团审议,虽然尸体并未找到,但是约有60名证人证实了Reiser和他的妻子不合。另外检察官举证的主要事实是,Reiser谋杀后拆除和丢弃了他的本田CRX的乘客座位,然后对车子进行清洗,在地面上留下了足有一英尺的水迹。

而Reiser则解释说他只是想清理车子的内部,并且忘了关水龙头。另外,Reiser扬言要删除了他电脑硬盘的所有内容,以发泄对政府没收他所有财产的不满。

Reiser的妻子Nina最后一次露面是在2006年9月3日,警察在6天后发行了她的面包车,并且找到了失踪的本田车座椅及两本书。警察也发现睡袋上沾满了血迹。目前Reiser将面临判决,罪名一级谋杀罪,可能获得25年的监禁。

出处: http://news.mydrivers.com/1/104/104832.htm


建议给他台电脑在监狱里用,继续完善 ReiserFS :)

2008年4月28日星期一

FireFox iMacros

iMacros 是 FireFox 的一个扩展插件,和其它的地方应用的宏一样,它可以记录你在用 FireFox 浏览网页时所做的操作(打开链接、登录账号、填写表单……),然后自动执行。非常酷的功能。

公司的 CRM 和 MSS 做得确实糟糕,不仅慢,而且离开 ie6 就转不起来了。如果 CRM 和 MSS 能在 FireFox 下使用的话,有了这个 iMacros ,每天的工作量要减少 60% 。

国内的用户界面设计太依赖微软平台了,盖子的商业头脑没的说,当计算机刚开始在世界范围内普及的时候,准确地抓住了市场机遇。有些人总是说 MS windows 占领市场是因为它的易用性。完全不是这回事!说到易用性,Mac OS 和 Linux 绝不比 windows 差。 MS windows 是借了 IBM x86 的东风,才能迅速传播开,在这一点上 Apple 就比较死脑筋,抓着自己的硬件平台不放,给了 MS 可乘之机,不过这也正体现了 Apple 对品质和理想的追求。而 Linux 则是一方面没赶上计算机普及的黄金时期,第二也是受了用户素质的影响,在中国体现得尤为明显。中国计算机水平比起发达国家有很大差距,绝大部分用户主观地认为 GUI 比 CUI 易用,当然 GUI 也更吸引人的眼球,再者国内 99% 以上的用户是把计算机当作 VCD、DVD、游戏机来使用的,从这一点上来说 GUI 是理所当然的选择。还有一个我认为就是人的畏难情绪,就像年纪比较大的人学打字,几乎都会选择学习笔画输入法,大部分的原因并不是因为五笔输入法的速度,而是因为这些人大都没有学过拼音,并且畏惧学习一个新的技能。写字大家都会,笔画输入说起来都能理解。

想到输入法这个问题,我是极力推荐新手学习拼音输入法的,虽然从速度上五笔字型仍然更快一些。拼音输入法经过多年的改进,输入速度也有了大幅度的提高,超过 100字/min 不是什么难事,与五笔字型的差距并不大。在下面几个方面有很大的优势:对于会拼音的人,拼音输入不需要学习即可使用;对于不会拼音的人,学习拼音的好处是显而易见的,现代社会中处处都用得上,且不说网络域名、纠正读音,就连商铺的招牌也有很多是拼音写的,查字典的速度都要快很多。学习拼音可谓是一劳多得,事半功倍,也正是拼音的广泛使用,在日常生活中不知不觉的就在逐渐学习巩固,永远不会忘。而五笔字型除了在计算机中做汉字输入外,其它没有任何用处,学习起来还需要记忆大量的字根分布,拆字规则,个别的特殊编码,对于不经常使用计算机的人来说,很容易忘记。

其实拼音学起来并不困难,连幼儿园的小朋友都能学会,成年人还能学不会?就算是上了年纪记忆力差点,比起记五笔字根不知道要容易多少。

……从 iMacros 扯到输入法上来了, ^^

2008年4月26日星期六

about TDCDMA

晚上在 bbs.chinaunix.net 上看到个帖子:"中移动一季度盈利241.02亿元 超联通10倍",想到一些东西,下面是我的回帖:

呵呵,移动现在开始上 TD 了,它即将遇到联通曾经遇到过的和现在仍然没有解决的所有困难。双网造成的业务复杂性、用户对TD终端的接受程度、两个网络的定位。以前移动发明的用来抨击联通CDMA2000手机的名词"专机专卡",TD也同样面临。
比起已经运营了几年的 CDMA2000,TD有更多的BUG、网络建设更不完善,需要投入更大的人力物力,可能这也是把TD给移动运营的原因吧。

TD 现在唯一的优势是:它是国内仅有的3G网络,有最高的无线带宽。要建设好TD网络只有充分发挥这个优势。但是它受i到几方面的威胁:CDMA2000、
WiFiMax,而且相对于TD, CDMA2000 和
WiFiMax更廉价。所以综上所述,TD建设的怎么样、移动的辉煌和沉沦完全取决于信产部(现在的工信部)怎么发牌照、什么时候发牌照。

还有TD这个畸形网络的漫游问题,这个我还闹不太清楚。

2008年4月25日星期五

Google:德鲁克式的理想

转下面这篇文章是因为我喜欢 Google,它的产品非常酷。我最常用的有 Gmail、picasaweb、blogger、igoogle、calendar



原文作者:Rick Wartzman 译者:ilovesnoopy
Google近期发布了异常亮眼的第三季度财务数字:利润增长46%,收入增幅高达57%.消息发布后,其每股股价大涨6.14美元,已超过639美元. 但是,还有另外一组数字令我印象更加深刻:Google在加州山景城的工作区有17个咖啡馆,员工可在这些咖啡馆免费享用三餐和茶点,鼓励工程师将每周 20%的工作时间从事一些他们感兴趣但并非其核心工作内容的公司内部项目.
Google建立了一种比我所了解的任何一家企业都更加德鲁克式的工作环境——更准确地说,是早期德鲁克式的.

杰克•贝蒂曾为这位已逝的管理学大师作传,他将德鲁克式解释为,“工作应当体现人的社会价值,如机会、社交、认同以及个人满足,而非仅仅反映成本、效率一类的商业价值”,这些观点,彼得•德鲁克在他1940年代的一些早期主要著作中就已提出.

当然,很多公司(也包括其它类型的组织)都赞同这些原则,并在不同的程度上奉行他们.

Google 的不同之处在于,它将这些原则发挥到了最大限度,并且不仅简单体现在它所自诩的福利名单上,这个名单包括——除了提供免费美食以及鼓励梦想外——现场理发 和加油(非免费),医药健康检查,有补贴的健身课程,电影专辑和讲座,各式各样的兴趣小组,遍及湾区的班车服务,社交和家庭聚会,拉里•佩奇、谢尔盖•布 林和埃里克•施密特等高管经常会参加的每周五的"市政厅"和闲聊聚会,为某人对公司做出的贡献以及对购买混合型车的丰厚现金奖励.

一个自我管理的"村落"

实际上,在以上提及的所有事情之外,最使Google符合早年德鲁克所奉行的"公司不仅仅是一个经济工具也是一种社会制度"的信条的,是这个互联网公司所营造出来的那种涵盖一切的工作气氛.

更 具体地讲,德鲁克对于工业时代的愿景中包括建立一个流水线工人能够自我管理多方面事务并且因此获取大大超出薪酬的回报的"工厂社会".他在1949年出版 的著作《新社会》中写到,工人们需要"与同事建立良好而紧密的群体联系,与主管建立良好的关系,进一步的,也是最重要的,作为一个人,获得认同、社会威望 和满足感、建立社会地位和职能".

Google在本质上讲并不是一个"工厂",但是员工们在描述他们的高科技公司的时候所进行的描述与德鲁克的惊人地相似.在大约两年前加入公司的机械工程师丹•莱特纳说:"它就像个村落."

虽然Cafe Pintxo提供的午餐和晚餐、小菜组合,亚洲风味的Pacific Cafe和Googleplex(总部所在地)的任何其它小餐馆都非常棒,但最能刺激莱特纳胃口的还是同事之间同志般的友谊以及创造性的讨论.

莱 特纳说,这种情况并不少见,进餐时的谈话中会发展出非常重要的合作,并帮助他认识一些之前从来都没有见过的同事.每当有这样的情况发生,他会开始积极奔 走,用他那20%的时间与家得宝联系(费用由Google偿付,这是一项基础政策,不须管理层的批准),根据他和一些同事的创意生产样品,并检测这个创意 的有效性.

一种能够创造额外收益文化

最好的创意总是能够被推送到管理者那里,如果他们被批准实施,就能够变成正式的项目并获得资金支持.而那些不足以应用的创意通常很快也就被遗忘了."这是非常有竞争性的地方"拉特纳说,"并不总是富有同情心."

Google 不会透露它为众多的员工福利所支付的代价,一位女性发言人指出,尽管公司在计算方面有非常突出的优势,但是也无法对生产力效用进行量化.然而,这种文化显 然为公司带来了额外的收益.Gmail、Google News、Google Earth上Sky的应用,都是从那些员工在20%工作时间里进行的项目中脱颖而出的.

然而,对拉特纳来说,即使是那些最终没有被采纳的创意也有极大的价值.他表示,仅仅是推行创意实施的过程,就证明了在Google的15000多位雇员中,有许多人的身上同时兼备了"企业家和艺术家"的双重特质.他补充到,它满足了"每个人创造的需要".

文化增强可能带来的效果

需 要注意的是,提供所有的这些福利在一切正常运转以及财务前景非常乐观的情况下是相对容易的.相对于自矜于现有的成就,Google更应该对未来的可能的挫 折作足够的准备——就像无数曾经看起来在商场上无往不利的公司所经历过的一样——它在所有这些方面的承诺是经得起考验的.

随着时间过去, 德鲁克自己放弃了"工厂社会"的构想,悲观地认为,大多数公司会满足于维持底线而不做更多改进.想要在美国或其它地方寻找一个有劳动保障的工厂社会的范本 也越来越困难.在1980年代后期,德鲁克开始在非盈利组织中寻找一个"象社会一样能够给人目标和方向"的范本.

也许德鲁克过早地放弃了工厂社会模型,但谁又能想到在他在半个多世纪前所提出的一个概念会在2007年才被一个世界上最有超前意识的公司大胆地实现了呢?

2008年4月24日星期四

sogo skin

给搜狗拼音换了个皮肤,非常酷吧。搜狗拼音的词库、网络账户同步、皮肤、输入统计都是非常酷的功能,看来在拼音输入法上谷歌是暂时赶不上搜狗了。什么时候 Linux 上也有这么好的拼音输入法就帅呆了。

size_t and ptrdiff_t

size_t 在 cstddef 头文件中定义的机器相关的无符号整型。该类型足以保存最大数组的长度。我发现 g++ 3.4.2 中不用
#include <cstddef> 也可以使用 size_t 类型。


两个指针减法操作的结果是标准库类型(library type) ptrdiff_t 的数据。与 size_t 类型一样, ptrdiff_t
也是一种与机器相关的类型, 在 cstddef 头文件中定义。 size_t 是 unsigned 类型,而 ptrdiff_t 则是
signed 整型。


这两种类型的差别体现了它们各自的用途:size_t 类型用于指明数组长度,它必须是一个正数;ptrdiff_t
类型则应保证足以存放同一数组中两个指针之间的差距,它有可能是负数。

2008年4月23日星期三

LaTeX-Suite

==== 20071119 22:08 发布于 redspid.blog.163.com ====
又发现了一个好东西:LaTeX-Suite ,编辑 LaTeX 的 VIM 插件( Homepage:
http://vim-latex.sourceforge.net/ )。真是 欲善其事,必先利其器,有个这个插件,以后写 LaTeX 便如虎添翼了。

---------------------------------
\include {filename} 处理大型文档时可将源文件分成几个部分,这个命令可将名为 filename.tex 的文件包含进当前文档。并在新页上排版包含进来的文本。


\includeonly{filename, filename...} 用在导言区,用来指定仅仅读入某些 \include 文件。


\input{filename} 此命令只是简单地将指定的文件包含进来,没有其它的限制。


LaTeX 支持三种预定的页眉、页脚(header/footer)格式,称为页面式样(page styles)。命令 \pagestyle{style} 中的参数定义了所使用页面式样。下面是预定义的页面式样:
----------------------
plain 页眉为空,页脚由居中的页码组成。这是默认式样
headings 页眉由当前的章节和页码组成,页脚为空
empty 页眉、页脚均为空
---------------------
可用命令 \thispagestyle{style} 改变当前页的页面式样。

2008年4月22日星期二

C++ Default Parameter Values

==== 20071107 21:10 发布于 redspid.blog.163.com ====
C++ 函数默认参数两条规则:

1. 默认值的决议(resolve)操作由最右边开始进行。若为某个参数提供了默认值,那么这个参数右侧的所以参数都必须也具有默认值。


2. 默认值只能指定一次。可在函数声明处,亦可在函数定义处,但不能在两个地方都指定。函数声明通常置于头文件中,头文件可为函数带来更高的可见度(visibility),通常将默认值至于函数声明处。

2008年4月21日星期一

Header file: limits

==== 2007年10月31日11:38 发布于 redspid.blog.163.com ====
C++ 内建类型取值范围:


1
# include <iostream>
2 # include <limits>
3
4 using namespace std;
5
6 int main() {
7 // C++ 内建类型的 最大、最小 值
8 long unsigned int i = numeric_limits<unsigned int>::max();
9 long double j = numeric_limits<double>::min();
10
11 cout<<i<<endl;
12 cout<<j<<endl;
13 }

2008年4月20日星期日

Thunder's cache

迅雷的在线收看视频资源不错,速度也很快。开始不知道迅雷的缓冲文件放在哪,配置界面也没有相关的设置选项,google 了一下才找到,
原来还设了 DOS 隐藏属性,真是恶搞,这样用户都弄不清硬盘怎么就满了。
可以修改注册表自动清除 cache 文件,不过我对注册表不感冒,用 perl 搞定它。

use File::Find;
my $directory = 'd:\vod_cache_data';

find(sub {unlink if (-f)}, $directory);

2008年4月14日星期一

C++ sort

 1 # include <iostream>
2 # include <string>
3 # include <vector>
4 # include <fstream>
5
6 # include <algorithm>
7 // 泛型算法 sort(container.begin(), container.end());
8
9 using namespace std;
10
11 int main() {
12 vector<string> ctn(6);
13
14 // 打开待读取的文件 并测试
15 ifstream ifile("d:/res.txt");
16 if (! ifile) return 1;
17
18 for (int i=0; i<6; i++)
19 ifile>>ctn[i];
20
21 // 排序
22 sort(ctn.begin(), ctn.end());
23
24 // 输出排序后结果
25 for (int i=0; i<6; i++)
26 cout<<ctn[i]<<endl;
27
28 return 0;
29 }

2008年4月12日星期六

cctype Header

cctype 头文件中定义的函数:

isalnum(c) 如果 c 是字母或数字,则为 true。
isalpha(c) 如果 c 是字母,则为 true。
iscntrl(c) 如果 c 是控制字符,则为 true。
isdigit(c) 如果 c 是数字,则为 true。
isgraph(c) 如果 c 不是空格,但可打印,则为 true。
islower(c) 如果 c 是小写字母,则为 true。
isprint(c) 如果 c 是可打印的字符,则为 true。
ispunct(c) 如果 c 是标点符号,则为 true。
isspace(c) 如果 c 是空白字符,则为 true。
isupper(c) 如果 c 是大写字母,则为 true。
isxdigit(c) 如果 c 是十六进制数,则为 true。
tolower(c) 如果 c 是大写字母,则返回其小写字母的形式,否则直接返回 c 。
toupper(c) 如果 c 是小写字母,则返回其大写字母的形式,否则直接返回 c 。

2008年4月11日星期五

Shuang Mian Jiao

前两天在电视上看到在放一部电视剧“双面胶”。呵呵,里面女主角叽里呱啦的上海话听起来好玩得很,于是用驴子拖下来看看。

片中主要叙述的两家婆媳关系都是剑拔弩张啊,说清官难判家务事,其实判家务事难就难在弄不清事情来龙去脉,各说各的理。家里的事又没旁观者,又不可能大动干戈地去查,自然就判不明白,但小说/电视里的故事读者/观众可都清清楚楚地看着,谁是谁非基本上也容易统一意见。

“双面胶”里的故事,责任当然在两个母亲身上,遇上两个孱头儿子,李亚平和王启东,家庭矛盾大也是顺理成章的。

胡丽娟倒是蛮可爱,笑嘻嘻的表情和叽叽呱呱的上海话 ^^

2008年4月9日星期三

"Ruminations on C++"

近两天看到一本好书, "Ruminations on C++",中文版叫"C++ 沉思录",是 Andrew Koenig(前贝尔实验室成员、ISO/ANSI C++ 委员会委员。他的另一部著作很多人比较熟悉:"C Traps and Pitfalls")和他夫人 Barbara Moo 著的书。

这不是介绍 C++ 语法的教程,而是大师关于 C++ 设计和编程思想的论述。作者对 C++ 有着居高临下的见识,对于 C++ 的设计理念和实际应用有非常清晰的观点。

刚看了前三章,让我对 C++ 的现在和未来更加信心百倍!

Let us Learn From The Masters. ^^

2008年4月8日星期二

Red Hat package manager

==== 20071029 16:34 发布于 redspid.blog.163.com ====
1. 安装、升级和更新
rpm -i 安装一个新的软件包。
rpm -U 升级一个系统中已有的软件包,如果软件包不存在就不进行安装。
rpm -F 更新一个软件包,如果软件包不存在就不执行安装。

上面几个参数往往和其它一些参数配合使用,例如显示安装过程中的信息及显示安装进度等:

-v 表示安装时显示各种信息,如安装路径及安装了什么内容。
-h 会在 rpm 包安装时显示安装的进度条,这可以监视系统安装进程。

因此,一般想要安装软件包,最常用的命令形式就是 -Uvh 三个参数。


2. 删除
删除软件包的命令是: rpm -e example
这个命令中使用的是软件名,而非软件包全名。


3. 查询
不仅可以查询系统中已经安装的 rpm 软件包,还可以查询某个 rpm 软件包安装文件中包含的文件清单。

rpm -qa(query all) 查询已安装的软件包列表。
rpm -q example 查询某个已安装的软件包(example)的信息。
rpm -qlp example-1.2.3.i686.rpm 查询未安装的软件包的信息。
rpm -pl example 查询已安装的软件包的信息。
rpm -qf filename 查询 filename 文件属于哪个包(filename为完整路径文件名)。
rpm -qip example-1.2.3.i686.rpm 查询软件包附加信息。


4. 验证
验证一个软件包,就是比较原始包和已安装包中文件的信息。即:每个文件的大小、MD5 校验码、访问权限、类型等信息。常用命令有:

rpm -Vf example 验证包含某个特殊文件的软件包
rpm -Va 验证所有已安装的软件

2008年4月7日星期一

Applications of Modulus computing 1

==== 20071028 21:11 发布于 redspid.blog.163.com ====
1
# include <iostream>
2 # include <string>
3 using namespace std;
4
5 int main() {
6 const int line_size = 4;
7 int counter = 1;
8 string array[] = {"compiler", "C++", "Perl", "GNU", "Linux",
"free", "OpenSource", "software", "Debian",
"hurd", "kernel"};
9
10 int out_time = sizeof(array) / sizeof(array[0]);
11
12 for (int i=0; i<out_time; i++) {
13 // 输出一个字符串后判断当前行是否输出了 line_size 个字符串
14 // 否,则输出一个空格;是,则换行
15 cout<<array[i]<<(counter % line_size ? ' ' : '\n');
16 counter++;
17 }
18
19 return 0;
20 }
o(∩_∩)o...  看看上面用 vim 生成的语法高亮代码,怎一个酷字了得!

2008年4月6日星期日

CUI v.s. GUI

==== 10071027 22:42 发布于 redspid.blog.163.com ====
整天在网页上用鼠标点来点去,受够了垃圾软件的困扰。如果现在公司的程序能提供 CUI 的话,每天的工作恐怕只需要 10 分钟就能搞定了。

GUI 与 CUI 的争论由来已久。从最近的市场来看,GUI 似乎胜出了,其实两者各有利弊,程序开发者选择不好真是作孽啊。

GUI 更有利于使用者(人类)获取丰富的信息。不同的色彩、字体、各种各样的图片、动画的组合相对于一行行的文字来说毫无疑问更能吸引人的目光,也表达了更加丰富的信息。同时,GUI
在一部分领域有着不可替代的作用,例如图形图像制作、视频等。但是,它也有着与生俱来的缺陷:可操作性、移植性、灵活性、兼容性 都远远差于 CUI 。
在我看来,对于绝大部分软件来说,更好的选择应该是 CUI ,而非当今流行的GUI 。但是随着 windows 的流行,日常应用的 CUI 软件少之又少,我是深受其苦。

表明看来 CUI 软件比 GUI 上的操作要繁琐一些,需要记忆一些命令、参数,输入的时候也容易出错。其实不然,对于日常使用的程序来说,应该着眼于长期的效率。就像使用文本编辑器,你说是 windows 的记事本好用,还是 vim 好用?也许初学者需要花上一、两个小时才能顺利在 vim
中操作文本,但是,当你花上几小时、几天、甚至几个星期把 vim 用熟练了以后,产生的效率是远远不能用几个星期来估量的。

2008年4月5日星期六

I came back

阔别 blogspot 超过半年之久,终于又回来了,而且这次不用通过 ftp 转发了,估计是受 2008北京奥运会的影响。
还是blogspot 看起来比较爽,虽然界面看起来要比 blog.163.com 简单一些,我喜欢这种简洁的设计。