2007/6

终于可以睡个好觉了

最近这几天西安暴热,每天都是骄阳似火,热得实在不行了。

白天躲到屋里不出去,晚上睡觉打地铺。天气预报都报过N次“明天有雨”了,可就是不下。今天晚上做完课程设计回宿舍时,总算下起雨来了,顿时凉快了许多。哎,总算可以睡个好觉了……

BTW:这几天做课程设计,趁机把Java的图形界面编程熟悉了一下,感觉Java的“逻辑”甚至要比Java语言本身成功,能教给人一种非常好的思维方式。同时,也再次体会到了“设计”的重要性:写一个可以用的程序并不难,难的是写一个结构合理,扩展性强,易维护的代码。

不写了,睡觉去。

珍爱生命,远离鼠标

最近总感觉右手腕和右臂肘关节很不舒服,拿鼠标拿得太多了,而且姿势也别扭,所以才导致这样。

解决办法有二:

1. 换用左手。此法难度较大,毕竟从小就用右手用习惯了。

2. 远离鼠标。要么改用全键盘操作,要么干脆不碰电脑。此法虽然也有不小难度,但比方法1要相对简单一些。

建议有关部门实施第2套方案。

小组项目暂时告一段落

随着XylFTP服务器端的发布,我们小组为期一个学期的开发项目总算是告一段落!

一个学期以来,我们从无到有,从一无所知到完成任务,确实学到了很多东西,不管是技术方面,还是在和别人交流方面。我不关心最后的参赛结果将是如何,这对我来说已经不重要了,在这个过程中学到的东西远远比拿几个奖更有价值!

在整个过程中,我和大家一样,付出了很多的时间和精力(为此我的书都没怎么好好写过)。但我仍然认为这很值得,能和身边这么多志同道合的朋友一起学习就是最大 的乐趣!

要感谢很多人,感谢王老师,陈老师,韩老师,感谢刘洋同学林峰同学董溥同学金明洁同学周晓炜同学孔建军同学,贾孟树同学,刘伟同学,聂海海同学,郭拓同学赵崇日同学!没有他们的关心和参与不可能有这个项目!

(但是,维护工作仍然要继续。希望那些在报名表上留名的同学主动承担此任务!)

Thanks, my friends!

谈谈诺奖

上一篇文章中谈到了诺贝尔奖,这里再说一下。

首先,对那些拿诺贝尔奖的科学家来说,拿奖大多是 “意外收获”。2006诺贝尔奖的一个获得者在接到诺奖委员会通知时甚至不敢相信这是真的。我想如果他纯粹为了拿奖而拿奖,或许反而拿不到。对于那些真正热爱科学的人来说,科学本身已经是给他们的最好的奖励了,诺奖只是个“附加品”而已。

然后,为什么我们也得去争取诺奖?因为诺奖是世界上公认的科学大奖,你不参与国际竞争你就注定要失败。记住:“沾沾自喜的孤立会导致退化。”

最后,再看看我们离诺奖还有多远。一些人会说:“我们的院士都在认真搞研究,不重视诺贝尔奖,不是拿不到。” 很好,让我们一起来看一下我们的院士/教授到底都研究了些什么。

1. 国内某知名大学交通学院院长2003年发布的“重要研究成果”:“中国城市环境污染不是由汽车造成的,而是由自行车造成的”

就这话让你的爷爷奶奶来听听也知道对错吧?而这位院长不知道!换句话说,你的爷爷奶奶也可以去当院长了!!

2. “中国死人最多的不在煤矿,在小轿车(交通事故),每年12万!”“中国煤矿死人没法避免!因为中国的老百姓太穷了。”“你不该生在中国,你不该做中国人,谁叫你不幸生在中国了?” 矿难原因“主要是穷,而不是腐败”

这是一位自称集“哲学家”、“科学家”和“学者”于一身的所谓“院士”的高论。何其高明!!拉一个路边的傻子问问也知道他说的对不对!

3. 中科院院士:牛羊放屁对环境造成巨大污染

向这位院士建议对人类放屁也征“放屁税”!!

此外还有院士们的“核酸事件”,某院士还宣称“喝牛奶羊奶能替代打针吃药”“牙防组事件”“水变油”等等。

要不等明儿咱也不当学生了?我写一篇题为“中国明年将包揽诺贝尔奖” 的论文去混个院士当当?

Exam Day

今天有传说中的四六级考试。

预祝还在为四六级苦苦奋斗的同学们考出好成绩!不过请记住,这个成绩和你的英语好坏没什么关系,把这成绩当成是玩笑最好。

四六级考试,应该取消,因为:

1. 考试并不能说明什么,能力强考试差的人有的是,考试好能力差的人更多!

2. 人家那些不需要英语的专业你逼人家学英语干嘛?比如,古汉语专业,你强制人家过英语四级不是逼良为娼么?!

3. 需要英语的自然不会满足于英语四六级,就像英语专业不需要考这个四六级,计算机专业不需要考计算机等级一样。 我经常需要和国外人交流,四六级那点破东西自然不够我用的,就是你不让我学英语我也得学啊!

4. 英语学了是为了用的,而不是用来考试的!如果你热衷于中国的考试的话,建议你向这里申请,让他们设立诺贝尔考试奖,这样中国人能年年包揽该奖项!!但请你永远记住:这和科学没什么关系,科学论文永远都是“开卷考试”!

(别说我吃不到葡萄就说葡萄酸,我四级540,六级440,很可能不比你差,我深知英语考试是多么地没用!如果你对此持怀疑态度,请找一个四级考700以上的,六级考600以上的来写一下我写过的这封邮件,读一下英文原版的《具体数学》,我读它没任何问题。)

如果我的话不能说服你的话,那请你看看清华的老教授是怎么说的。

课后作业:

1. 我们的高考是世界上最难的,而且我们一年又一年地培养了那么多“高考状元”,为什么我们到现在还没能拿到诺贝尔奖?

2. 我们的学生经常包揽国际XX奥林匹克竞赛一二三等奖 ,可为什么我们怎么就没出几个“大师级”人物?

3. 一些讨厌考试的人(包括伟大的爱因斯坦) ,居然能拿诺贝尔奖,为什么?

对Java的几点思考

1. 符号带来的问题

我们知道,Java里的整数类型——byte,short,int——全部是有符号的。这有时会带来麻烦,如果我们并不想要最高位作为符号位的话。

下面是两个例子:

a) 我们不得不这样做来正确显示IP地址:

byte[] ipa;
InetAddress ina = CmdSocket.getLocalAddress();
ipa = ina.getAddress();
for (int i=0; i< 4; i++) {
System.out.println(((int)ipa[i]) & 0xff);
}

b) 记住,char是无符号的:[1]

public class Multicast {
public static void main(String[] args) {
System.out.println((int) (char) (byte) -1);
}
}

2. 类型问题

Java在处理类型之间转化时有着自己的规则,这些规则有时并不好理解。

a. 转化[2]

short x = 0;
int i = 123456;
x += i;
x = x + i; //<== fails here

b. 溢出[3]

public class LongDivision {
public static void main(String[] args) {
final long MICROS_PER_DAY = 24 60 60 1000 1000;
final long MILLIS_PER_DAY = 24 60 60 * 1000;
System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY);
}
}

3. 读文件的问题

Java中有各种各样的流,这使得选取恰当的流并不容易。有时,我们为了得到一个理想的流,不得不转化多次:

BufferedOutputStream FTPOutStream;
FTPOutStream = new BufferedOutputStream((OutputStream)System.out);
BufferedInputStream FTPInStream;
FTPInStream = new BufferedInputStream(new FileInputStream(LocalFile));

而且,Java中的DataInputStream流并不像想象中那么好,根本原因是:readInt()并不认识int,它只管读下面4个字节,并不在乎它这四个到底是什么,即使在文本中它们看起来可能只是几个非数字的字符!同样,readLong不认识long,readDouble()也不认识double。而这一点,C++和C做得明显要更好。

Scanner或许可以帮上一些忙,不过很可惜,你不能用它读一个char!


参考资料:

[1][2][3]均摘自《Java Puzzlers》
[4]《Java Language Specification》

最近比较烦

最近比较烦,比较烦。

不光是因为考试,还有其它一大堆事,比如:各种实验报告,各种试卷(选修) ,各种乱七八糟的程序……

系统结构考试

明天考系统结构,这两天在“忙”着准备,毕竟对我来说,这课刚开始学。;-p

记得小金有一次问我,有没有在这课本上发现错误?当时回答没有,因为那时还没正式开始学。不幸的是,当我认真看课本时,错误又出现了。哎,不能怪我啊。简单列举两个我还记得的:

1. 第218页,HALT错拼成了HELT,此页有两处这种错误。

2. 第199页,最后两段中,图5.14(a)/5.14(b)都标错了,应该是5.13(a)/5.13(b)。

其余的留给各位同学作为课后作业。

另外,看老师留的复习题时,看到一个堪称最“侮辱智商”的题:“SIMD计算机可以处理()A.多指令流,单数据流 B. ……”。“名词解释”之类的题我就不提了,这种颇具中国特色的题居然流传了这么多年,而且还流传到了大学里,无语……

引用爱因斯坦老先生的话作为结束——“每考完一次试,就会难受半年” 。嘿嘿,我也差不多。

SchilliX安装失败

这两天想装个Solaris玩玩儿。于是在网上找,发现就SchilliX和Sun的Solaris 10比较合适,而Sun的安装程序足足有5张光盘,真不知道得下到猴年马月。干脆就下那个只有一张安装盘的SchilliX,下好了刻了一张CD,准备动手安装。

我这里有两块硬盘,都装的是Linux。从盘基本上没用,准备把它对半切开,一半装Solaris,一半装Linux。一开始就不爽,把主盘的电源线拔了,结果找不到从盘,我拆了又拆,拆了又拆,最后发现是BIOS把它给屏蔽掉了!不爽!还没习惯这个主板的BIOS的说……(怀念那个老主板啊……呜呜,那个跟了我四年多的老板子被我一不小心给烧了……)

安装SchilliX时,命令行中退格键不能用,被转义了,只能用Delete键,不爽。

敲命令时,历史记录不能用,不爽。

里面的vi插入模式有问题,不能后退,Delete都不行,很不爽!

最后啥都装好了,啥都 配置好了,可重启不了,卡了10分钟还没反应,结果手工重启后除了分区啥都没了!相当于没装!!

总之,Solaris很让我不爽!KAO,换BSD玩啊~

我怎么能不生气?

我怎么能不生气?说过N遍了,修改好代码后提交补丁,可总是有一群人把自己的源代码整个提交,甚至是整个目录,要你自己一个文件还好办,基本上覆盖一下即可,可要是多个人写一个文件,要我怎么知道你修改的哪里?做补丁的方法我说了!做补丁的好处我也说了!可怎么就是没人做?

我怎么能不生气?说过N+1遍了,写代码要符合编码规范,可怎么代码里到处都是不符合规范的地方?怎么就不能去读一下我们用中文写的编码规范?遵循它很困难吗?

我怎么能不生气?说过N+2遍了,每天抽出一个小时来维护一下代码就足够了,可怎么经常见有人一整天都不动代码?是代码真的“无懈可击”了?我们还有多少时间够你来拖延?