有趣的 Quine

quine [名字源于逻辑学家 Willard van Orman Quine, via Douglas Hofstadter] ,指的是一种运行后生成自身源代码拷贝的程序,也叫self-reproducing programs(自我复制程序)。今天无意中搜到 Ken Thompson 的一篇经典演讲 Reflections on Trusting Trust,好奇心下就小探索了一番。

answers.com 上有一个c语言的例子:

char*f="char*f=%c%s%c;main(){printf(f,34,f,34,10);}%c";main(){printf(f,34,f,34,10);}

运行之后直觉得好奇,为什么它能把自身源代码输出啊?想着可能是某种特技,结果在Linux下,在Win下编译反编译调试比较汇编代码,折腾了半天。到最后看发现实在太繁,还是静心读一下源代码吧,才发现,原来如此的简单:

printf中的第一个参数f,就是格式化字符串,34就是双引号的"ASCII码,10就是换行符的ASCII码,很显然f就是一个用它自身去格式化自身的字符串而已。技术看起来简单,但是要实现完全相同的代码输出,在编排上还真得下一番工夫。

Gtalk上碰见yutian,给他发了过去,还打赌他肯定看不出来运行结果,现在才发现自己幸亏没真赌上。:D,不过人那,还是感情的动物啊,都有一种习惯性思维,看到貌似复杂的东西自己就先限制住思路了,结果他也没看出来,哈哈。

看来,把复杂的事情搞简单,还真不是件容易的事儿。做人,还是简单点好,遇事想那么多干吗,给自己找烦恼。

PS:

谁要对 quine 还感兴趣,这里 有几乎所有语言的一种 quine 实现,这东东好象对写恶意代码很有用啊。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

瘴林迷雾中的八重路

佛家八重路:正视,正决,正言,正行,正业,正功,正知,正心,出此八要以消灭苦难,以正真伪,以予生命真义之真知。意译过来就是正确的信仰,正确的决心,正确的言谈,正确的举止,正确的生活,正确的努力,正确的思考和正确的喜悦,这就是佛教中达到涅磐境界的八重路。

之所以谈起这个不仅是它道出了一种生活的态度,还因为有个典故在里面。物理学中有一个原理,叫做八重路( eightfold way ),指的是8种重子属于SU(3)对称群的一个8维表示。它是由加州理工大学的著名物理学家 Murry Gell-Mann (他发明了夸克 quark 这一名字)发现并命名的。但这里我要说的并不是 Gell-Mann ,而是另外一个和他同时独立发现八重路原理的以色列驻伦敦大使馆武官 Yuval Neéman 。这个人,颇具传奇色彩:

1925年出生于特拉维夫 (Tel-Aviv Israel),15岁高中毕业,在 Technion, Hafai (Israel) 拿到工程师学位。他年轻时对物理学很感兴趣,但由于历史原因(中东战争)参了军。据说,他在以色列的秘密情报机构起过非常重要的作用。1957年,32岁的 Neéman 意识到,如果他要成为一名物理学家的话,时间已经不多了,所以他向当时以色列的国防部长 Moshe Dayan 将军请两年假,到一所以色列大学学习物理,但 Dayan 却派他到以色列驻伦敦大使馆担任武官,这样他可以在工作之余搞些研究。

在伦敦,Neéman 拜访了皇家学院的著名巴基斯坦物理学家 Abdus Salam ,让他看了自己的外交证件和 Dayan 的一封信,对此惊讶不已的 Salam 居然收下了他这个弟子。但1958年7月,中东战争重新爆发, Neéman 不得不把物理放到一边,现在知道,除了进行某些其它活动以外, Neéman 策划了把 S-级核潜艇和百人队队长式坦克运送到以色列的行动,最后在1960年5月,作为一名退役的上校, Neéman 在35岁时成了 Salam 小组中年龄最大的学生,开始投入研究工作。上面所说的八重路原理就是他在 Imperial College of Science and Technoloy, London (1960-61)读书时的博士论文 Derivation of strong interactions from a gauge invariance 里提出的。

Neéman 后来建立了 School of Physics and Astronomy at Tel-Aviv University,并成为 Tel-Aviv University 的校长,他也是以色列的核武器计划中的重要一员。他建立了 Israel Space Agency (1983) 并担任主席一直到去世,服务于 Israel’s Atomic Energy Commission (1965-84) 并担任主席 (1982-84), Israel’s Chief Defense Scientist (1974-76), Minister of Science and Development (1982-84,1990-92), Minister of Energy (1990-92) 。在20世纪70年代建立了 Tehiya ,一个脱离 Likud 集团的极右的政党,反对 Camp David talks 和平进程和 Yamit 撤军计划。

Neéman 今年4月26日在 Tel Aviv 因急性心脏病逝世,死后的新闻标题为 Professor, veteran politician Yuval Ne’eman dies at 81。

有人说,He was definitely one of the most colorful characters in particle theory during the second half of the last century. 从经历上来说, Neéman 的生活不可谓不精彩,羡慕之余我觉得更应该从中看出的一点是:人的生活总有不得已的时候,重要的是要有信念并且努力去争取自己想要的生活方式。

如佛经所说的八重路一样,对每个人来说,面前的路是不一样的,有的大道坦坦一目千里,有的苦海无边坎坷曲折,但其实在心里来说,都是在寻求内心的宁静,在寻求的过程中,却没有了那种过尽千帆皆不是,斜晖脉脉水悠悠的淡然。从宏大的背景上来讲,一生不过是一瞬;从纤微的角度上来看,一生代表着永远。说到了还是半杯水的问题,有人说:只有半杯了,有人说:还有半杯呢!我们在路上,无法决定未来,但可以决定姿态。

还有夏威夷渔夫的寓言,我们奋斗是为了什么?也许每个人都会想此类的问题,但想通的能有几个呢?我们在找寻自己幸福的路上东奔西跑,却不如一个躺在那里的老渔夫,也许某个美女说的对:什么复杂、错综,说到底都归根于“不平衡”。愿望和现实的不平衡,导致心理不平衡。爱与被爱的不平衡,制造种种情感的多角关系。我们是唯物地去增减筹码、和天平较劲还是劈柴喂猪哼着小曲该干嘛干嘛?禅的聪明或许在于:人生太短,来不及改造世界,不如调适心灵。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

北京实习第一天

本来不想写呢,这下班了回去也没啥事,就在这扯两句吧。

今儿下午到公司报到的,公司还可以,写字楼也算气派,锦秋国际大厦,那楼盖的挺帅的。工作环境相当不错了,每人一个电话,还可以打长途哦,电脑是19寸液晶的,2.93G512M,不是太好但足够了。我要做的是用dejagnu写测试脚本,现在还在学呢。本来想住亲戚家,可是人家正好有事,只好租了个公寓住,6人间380块啊,心疼死了,这首都就是不一样啊!还好离公司很近,不用挤公车了,走路也就一刻钟的样子。过会儿回去还得买点洗漱用品,离沃尔玛挺近的。

mathena师兄的博客总算能访问了,又看了篇比较打击的文章,呵呵,人比人,气死人那。

好了,不扯了,忙完这阵子再多写点吧,先好好学习了,得快点进入状态 :)。

PS:

工作的写字楼照片:

位置:

Copyright © 2005-2006 Solrex Yang. All rights reserved.

写在我的20岁

时间眨眼间又转了一个轮回,快得有点让人无法应酬,手足无措中我进入了生命中第21个年头。去年今日此博中,写下了对19岁中的期待,还有一点点小计划,看看这些计划执行的什么样子:

数学,三上那几门都是考的不错的,三下就有点差了,关键在泛函;英语,TOEFL考了,590,数学成绩也不太好,放弃出国的打算,GRE自然也丢掉了;计算机,C++就看了一些STL的东西,倒是对JAVA的观点发生彻底的转变,学了不少;金融学副修,三下时候只过了一门,不得已还是放弃了;Linux和服务器的东西看了一些,汇编语言也学了不少,暑假找了份工作,做了几天事。

综上,得证,我是一个没有执行力的人。Q.E.D.

或者可以找个开脱的说法,:),计划赶不上变化。

曾经做了个预言:所有的事情都在往好的方向发展,没有理由不高兴。如果通观全年的话,它还算是成立的,虽然其中不乏坎坷,但坎坷未尝不是一种幸福!

在20岁生日,要感谢老天对我这一年的眷待,感谢给我那么多不曾敢奢望的幸运,也要感谢兄弟姐妹们给我那么多的鼓励和支持,我真的非常非常感激。

站在这个点上向前向后看,我看到的是充实幸运的过去一年,但仍看不清前方会是什么样子。我不敢奢求老天再给我几分运气,不过我会努力去争取。在每一个 lucky dog 背后,都有他不为人知的努力,这点想与正在忙碌着考研、出国、找工作的兄弟们共勉,只要努力,不怕没有好结果。重新跋涉的路途遥远,你还要自己保重,就在你最感疲惫的那一分钟,会听到胜利的号声。我在高考誓师大会上的演讲引用过这句歌词,没想到前几天居然还有外班同学提到,现在看来,这句话很有道理。

明天就要离开南京了,先回趟家,然后去北京实习半年。要离开自己熟悉的校园环境,真有点百感交集,不知道是何种心情,总之,该面对的还是要面对。想起几个好友经常扯:“要走贤惠路线了”,看来我也“要走成熟路线了”,^_^。

PS:

走之前做件好事,因为咱年级的出国代理是我和yutian开的,我把代理脚本重写了一下,还简化了代理配置的步骤,现在只需运行一个文件就可以更改IE和Firefox的代理设置了,写了一点帮助文件,和两个比较有用的脚本打了一个包,放到我个人主页上了,也可以点击这里直接下载。对那些不懂电脑的同学可以说是近似傻瓜配置了,也算是方便大家吧。有兴趣琢磨的同学可以看一下原理,全是脚本和批处理文件,非常简单的。

PSS:

班务的事情我在百合上发贴了,大家看到了相互转告一下。

Copyright © 2005-2006 Solrex Yang. All rights reserved.

两条新闻

早上起来有看 Google Reader 的习惯,大部分人都是晚上更新博客,而且订阅的政经类新闻也因为时差的缘故正好是晚上更新最多。今天看到 NYT 有两条很有意思的新闻:

1.South African Parliament Approves Gay Marriages。南非议会投票通过了允许同性恋结婚的法案:这次投票使南非成为非洲第一个、世界第五个移除了同性恋结婚法律障碍的国家。

之所以觉得这个有趣是因为看过一个同学写的关于同性恋的博客。从内心里讲我是不认为同性恋是正常现象的,但是人不能只靠情感活着,从理性的角度来讲,每个人都有追求自己幸福的自由,只要这个举动不妨碍别人,它就应该合理而且合法的存在。我们不应该老是说:哎,真恶心。其实即使在中国,也有很多民族很多人有让人不能理解的习惯,比如以长脖子为美,以脸上刺青的多少为美,不能因为这个习惯不符合自己的标准就驳斥它存在的合理性。就像当初满人入关一样,留发不留头,他们不也是认为汉族人“身体发肤受之父母”的宁死不剃头的理由可笑吗?

我们需要对一些不符合自己道德标准的做法表示宽容。虽然可能每个人都是两套标准,一套对别人,一套对自己,只希望对别人那套要宽容一些,这样以后的历史就会少出现一些悲剧。

2.Beijing Journal: A Law That Says Man Can Have Only One Best Friend。一部法律规定每家只能有一个最好的朋友:在北京,一些条律规定在它八个县区的居民只能养一条狗并且不准桊养像 golden retrievers 和 huskies 这样的大狗。

呵呵,还是两重标准,我非常不喜欢别人家里养那种大狗,其实也不喜欢养狗,但是我依然认为这个规定很荒谬。我不认为这个规定约束了我什么,但是我知道很多人特别喜欢宠物,会养很多猫啊狗啊的,只要他不把它们放出去乱跑,我就认为他没有妨碍我,为什么不让他养呢?

其实说白了这规定还是针对平头百姓的,那些所谓的大款大腕明星住的都是高级住宅区,守卫森严,打狗队根本不让你进去,也就是吓唬吓唬老百姓罢了。和北京的暂住证一样荒谬的规定,欺负的都是百姓。

最有趣的就是两相对比,南非对同性恋结婚这种关系到整个社会伦理道德观念的事情上都能保持宽容的态度,而北京对居民养狗这种细琐小事上还纠缠不休,真是不懂政府在想什么,有功夫多花在改善居民生活条件上啊!

我这里并不是要攻击政府的举措,也不是崇洋媚外。正如闾丘露薇今天在博客里所说:因为爱,所以批评。像我对南大一样,我总是嗤笑南大的一些莫名奇妙的规定,一些荒谬的管理制度,但是我是爱我的母校的,我希望它变得更好,不然我也不会花那个工夫那个气力。

Copyright © 2005-2006 Solrex Yang. All rights reserved.

Sun’s Open-sourcing

继11月2日的 Microsoft-Novell Deal 的又一件开源软件界大事: 11月12日,Sun Microsystem 总算在几年的观望后决定把 Java 开放源代码了,而且选择了 GPL ( general public licence ) 协议,更进一步的是,今天(14日) Sun 又在它的 Glassfish ( its open source Java EE application server ) 加入了 GPL 作为候选 licence, 这样开发者就可以从 CDDL( Common Development and Distribution Licence ) 和 GPL 中选择自己需要的一个了。看来 Sun 是要专心在开源这条路上走下去了,有评论说:“A similar scenario could be a likely future for Solaris. ”,想来也不是没可能。

其实 Sun CEO Jonathan Schwartz 11月3号在自己的博客里就说了 On the latter(open source landscape), from where I sit, we’re seeing an increasing schism in the market, separating those that protect their customers at the expense of the open source community, from those that protect the community while leaving customers vulnerable. Our view is you have to respect both, and that we’ve effectively threaded the needle with both OpenSolaris and OpenSPARC, and Sun’s commercial derivatives of both - and that those best practices will guide our approach going forward. If you want proof, stay tuned for next week’s announcements. (It won’t be a boring week.) 这个星期确实不是一个 boring 的 week。不过有意思的是,这个声明正好比 Microsoft 和 Novell 的条约缔结晚一天,不知道是不是 Sun 看到微软和 Linux 阵营的靠近心生不安了,才加快了它的开源步伐。这样它能更多的得到 Linux 社区的支持和拥护,因为 Java 如果采用了 GPL 协议的话,估计在每个 Linux 发行版的下一个版本里都会把它作为一个标准配置,或者至少是可选的配置。呵呵,其实对我来说可能这一点才是最重要的,:),这样就不用自己再去下载 JDK 了。

对于 Java 语言我是非常喜欢的,它的开源我也是非常希望看到的,这样我就会有更优秀的语言和更强大的库使用了。不过还是希望 Sun 能够维护一个业内比较强大的标准,避免像 Linux 那样慢慢地走上分歧的道路。至于 Java 的开源对软件业以及计算机语言发展的影响,自然有很多专家去评论,我没有那个前瞻性。

在这个事件里还能看到的比较有趣的一点是 Sun 对 GPL 协议观点的转变,去年它把 Solaris 开源的时候选择的是 CDDL 协议,当时它对关于其选择 CDDL 批评的回击是 the GPL was unfair and predatory because it requires developers to publish changes to the source code. Schwartz(当时是COO)说: the GPL was unfairly used as a way force developers to share their work because the creators have a hidden agenda of forcing a social model on the world. 才过去18个月,Sun 就改变了它对 GPL 协议的观点,看来没有什么是不可以改变的,就连微软都能和 Linux 走到一起,Sun 的观点转变也不算太过。

不过正如有人说过 Sun 的开源一般都是在压力下才达成的,Solaris 是因为服务器市场份额的急剧下降,SPARC 也是因为在处理器市场的不得志,NetBeans 是因为 Eclipse 吃掉了其大量的用户,Sun 究竟还能在开源的道路上走多久,就得看它到底把自己的盈利模式定义在什么位置上了。没有公司愿意赔本做开源,尤其像 Sun, IBM, Microsoft 这样的大公司。开源软件不是福利事业,和赚钱并不矛盾。其实开源软件真正想发展壮大,就必须得找到一个好的盈利模式,这样才能形成良性循环,不然一个个公司的破产肯定会给开源事业造成打击。开源事业需要社区的努力,也需要这些厂商的鼎立支持。看来要订阅 Jonathan 的博客了,要看看他今年能折腾出来多少东西。

Copyright © 2005-2006 Solrex Yang. All rights reserved.

常用正则表达式

在我的文档中发现的,不想再刻到盘上了,自己从网上总结的,比较全,比较干净,放这吧。

匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:
s*

评注:可以用来删除空白行

匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]d*$ //匹配正整数
^-[1-9]d*$ //匹配负整数
^-?[1-9]d*$ //匹配整数
^[1-9]d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式

利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:
onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^u4E00-u9FA5]/g,’’))"

用正则表达式限制只能输入全角字符:
onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^uFF00-uFFFF]/g,’’))"

用正则表达式限制只能输入数字:
onkeyup="value=value.replace(/[^d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,’’))"

用正则表达式限制只能输入数字和英文:
onkeyup="value=value.replace(/[W]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,’’))"

得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

s="http://www.solrex.cn/page1.htm"
s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2")
alert(s)

应用:javascript中没有像vbscript那样的trim函数,可以利用这个表达式来实现,如下:

String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, "");
}

我(Solrex Yang)用的一些正则表达式
用户名的:
^[A-Za-z0-9][w-.]{1,18}[A-Za-z0-9]$

密码的:
^S{4,30}$

真实姓名的:
^[u4e00-u9fa5A-Za-z .]{1,32}$

学号的:
^d{9}$

Email地址的:
w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

Copyright © 2005-2006 Solrex Yang. All rights reserved.

小人物-《鸡犬不宁》有感

想看电影了,不知道哪个好,百度排行上看到了《鸡犬不宁》,找个FTP拖了下来。

惊喜发现了一部完全河南话的电影,很喜欢,毕竟那是我的母语。对于每个人来说,妈妈说的话才是最美丽的语言,管你会说什么法语英语西班牙语土耳其语,最疼的时候叫的还是妈。无论走到哪里,无论什么情况,我都以我是一个河南人自豪,正如我以我是一个中国人自豪一样。中国太大了,大到无论任何事情都有一点;河南人也太多了,多到什么人都会有一些。对那些脑袋坏掉喜欢搞地域歧视的人,我实在是没有力气去争辩,但我会以实际行动告诉他河南人很优秀。

在外乡能听到河南话的确非常亲切,就像我在街头偶尔听到豫剧都想哭一样,是种家的感觉。《鸡犬不宁》讲的就是家乡,一群辛酸的小人物,破破烂烂的开封城,琐琐碎碎的小事。

小时候去过几次开封,但记忆已经很模糊,只记得老爸在包公湖旁边打了我一顿,因为贪吃。不记得是开封公园还是动物园了,里面有个小池塘,在那里坐过碰碰船,坐过那种旋转的打靶小飞机,还第一次看到猴子。其它的,基本被时间抹去了。

《鸡犬不宁》拍得相当的真实,真实的可怕,就是普普通通的衣服,脏兮兮的街道,旧旧的房子。让我想到自己,也是在那种类似的环境里长大,其实还不如那里。现在虽然在大城市里过着不知好歹的日子,没事还写写Blog扯扯淡,好象自己多文明人一样,骨子里头不还是市井小民?那些所谓的农村风情小城往事忽略了太多生活的细节,可能让人很向往,但有点智商的人都知道那不真实。

我是一个小人物,虽然我会因为这苦恼,但我必须得承认这个。小人物带给我一些好的东西,比如对命运的不服,对美好生活的渴望,对不平的忍耐,但也给了我很多不好的东西,比如对财物的悭吝,对斤斤小事的计较,对风情的不解,对施舍的敏感。我曾经试图过去改变,但发现在我现在的条件下是很难改变的,就像父亲的辞世让我更早的考虑到柴米油盐的问题,虽然我实际并没有真正为这个发过愁,但它已经成为压在我心里的一个包袱,到现在我仍然没有甩掉。那些是随着小人物的标签贴在我身上的,只能等哪一天我换个标签来覆盖它。

小人物生存的世界有很多压力,就像巴士大叔说的一样,你有压力,我有压力,大家都有压力。但是无论压力有多大,小人物都能顽强的生存下去,像蟑螂一样,在城市和乡村繁衍生息,也许一些过得还不赖。小人物不免要向一些事情妥协,比如说强权,就像四海对团长,刘兵对老丈人,小人物很聪明,知道自己如果反抗的话会像蚂蚁一样轻易地被人捏死。即使是这样,小人物也懂得感恩,因为他吃的饭是别人舍予的,他已经很感谢别人没有说:嗟,来食。小人物会自得其乐,天塌地陷管不着总管得着自己吃喝拉撒吧。小人物很重感情,对朋友,对亲人都是真心相待,因为他知道,自己除了这些,可以说什么都没有。

小人物一直做梦要成为大人物,但四处碰壁以后会回到自己的小窝说金窝银窝不如狗窝。小人物也想去看看世界,但出发前会踌躇一番为什么要离开自己的老窝。小人物总以为世界缺了自己一个就不行,其实地球离了谁都转。小人物总是很倔,傻傻地把自己认为对的事情做下去,可能吃亏上当受骗挨一棍子。小人物很自信自己可以把事情处理好,但往往事情不会向预料的方向前进。小人物也会耍一些小技巧,骗人骗己混口饭吃但还不至于太过分。小人物做事还有些底线,如果没有底线坑蒙拐骗什么都干那还是得锒铛入狱。小人物经常把希望放在别人身上,破灭以后还会怪自己瞎了眼。小人物经常会嘲笑别人,却不知道自己和他是同类其实没什么区别。

看到这个电影我想到很多自己,也许我把自己想好了,也许我把自己想坏了,不管怎样小人物还是得活下去,小人物还想见识到更多的悲喜剧,小人物还是觉得人生很精彩。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

准备再次进京

四年级果然是峰回路转,找不到一个恰当的词形容经历这一切的心情。

最近的变化是在北京找了个实习,一家电子公司,做软件开发。蛮喜欢的,因为自己本身是数学专业,以后要学计算机网络,如果再能学到一些硬件底层相关的东西,无论对自己学术生涯还是职业生涯都会有很大好处。公司又离女朋友的学校近,相当的理想了。

在系里的工作要撂下了,准备找同学代替自己。地球离了谁都会转,不过到该走的时候还是有点舍不得,当了两年多的年级长了,已经适应了这个称谓,也喜欢和大家在一起的感觉。要离开大约半年,明年毕业前一段时间还是要回来的。

这两天走路做事都有点精神恍惚,不知道在想些什么,也许是人面临变化的些许不适应吧,会好起来的。毕业论文看来要在北京做了,题目到现在还没定下来,真是很惭愧,有我不愿承认的懒惰因素在里面。吴老师给我指了两个方向,两个都比较感兴趣,但是阅读量太大而且没有好好看,等安顿下来后我会去好好完成的。

写到吴老师又想说说他,吴老师是我认为数学系老师里最不娇柔做作的先生,也是数学系在计算机方面有过真正涉及的先生,这也是我想跟他做论文的原因。他会毫不掩饰地跟我们说他的糗事,也会毫不谦虚地跟我们吹他的成就,会和我们分享他的人生经验,也会经常口出金玉良言。虽然大学里他教授的两门课都不属于数学系的核心课,但我相信他赢得的尊重比大部分其他老师都要多,做人一个“诚”字也是令我最尊敬的品德。这里有他在百合的博客地址,主要是给学生们看的。另外吴老师在bokewu也有两个博客,感兴趣的就看你搜索技术了,刻意的揭露别人不愿意全部公开的东西不太合适。(这年头,search engine让我们无处藏身。)

另外吴老师对古文有相当深的研究,这点也是我佩服的。小时候文言教育留下的印痕还是很深的,繁体字和古文诗词在眼中有特别的美感。如果没有赚钱压力的话,可能当初就选中文了。

以前设想过如果保送研究生后会过什么样的生活,但没想到现在这样的情况。阿甘母亲的名言还是很有道理的,虽然每块都是不同味道的巧克力还没吃过^_^。

PS:用某个流行的技巧注了一个solrex的live.com帐号,以后公开的就用那个了,这个space对应的帐号留做跟朋友们联络,我可不想让单位领导成天看到我的博客有更新,说不定就惹什么麻烦了。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

第一次家教

领导给找的,推不得,正好趁机也完整一下大学生活,体验一下做家教的感觉。不过这样以来赚钱也不少,助理300块,家教200多,有点半独立的意思了。

小孩才上高一,挺好的,不是那种捣蛋的家伙,长得跟哲子的弟弟有点像,脸更圆些。原来觉得自己可能辅导不来,看了一下,高一的知识还是蛮简单的。地方离学校也不远,走路二十多分钟就到了,比坐公交车都快。

今儿总算把Prison Break赶上进度了。原来没打算看,可周围那么多水,搞得自己像外星人一样,多不好意思。花费了几天的工夫,恶补上了。

做家教回来还捎带借了主人本百家讲坛的《明亡清兴六十年》,打算再接受一下历史教育。

积压了很长时间的衣服总算处理了,老没衣服换也不是个事:-)。

心烦的时间过去了,明天能好好看看书了,挺高兴的。

PS:小黑、自盛你俩忒损了点吧,楞骗我说Sub周三就考了,害我还当真了。我可不想咒你俩今天不考好呀,嘿嘿,但这帐迟早还是要算滴,等着吧,卡卡卡卡!!!
Copyright © 2005-2006 Solrex Yang. All rights reserved.

南京大学仙林校区尘埃落定

不知道如何写标题,就以一则新闻代之吧。

据可靠消息,南京大学管理层今日决定,南京大学仙林校区将于06年底正式开工建设,08年完成一期工程,08年大一新生将首次入住仙林校区。南京大学仙林校区位于仙林大道北侧,仙林大学城未来中轴线九乡河路东侧,工程设计由南京大学建筑设计院中标。先期建设的一批建筑位于建筑规划的西南角,包括一部分实验室和纽约学院。据悉,南大仙林校区会为每系包括文科院系配置相应的实验室。未来的浦口校区有可能仿照东南大学模式留给其二级学院金陵学院。

PS:小黑今天又让我们给他GF发生日消息,去年兄弟们还一起给她叠过纸鹤,想想挺快的哈。祝有情人终成眷属吧!Copyright © 2005-2006 Solrex Yang. All rights reserved.

Chaotic Life

鼻炎加重,口腔溃疡,舌头起泡,混乱生活的代价。

时间被割成小块,切得生活支离破碎。也有一两半天看得进去了些书,终归是烦躁。乱七八糟的俗务,未能实现的计划,不被理解的困惑,搅得脑子如一团糨糊般牵扯不清。数次下决心清理生活,总有无可预料的事情发生,像抬头浮出水面时忽又被扯进去,挣扎但无所着力。

要真很忙碌倒也好,起码可以使自己专注,又到不了那个程度。闲暇倒也不少,却一条一条地恨自己不能拼成整片。参观拉贝故居,太羡慕那个小院,背靠校园外开铁门。门牌也好听,小粉桥1号。明白自己骨子里还是渴望那种闲适的生活的,仿佛继承了中国文人的传统理想,曲径桃源,了此一生。可若知道那院子修葺费了225万,几人会不入凡尘。

无论遇见什么事情,会先对自己说句:现实和理想是有差距的,然后才去搏。这样就算失败,也已经有句话安慰自己。总有事情让你无力,总有人让你无奈。想起开复先生的话:有勇气改变可以改变的事情,有胸怀接受不可改变的事情,有智慧来分辨两者的不同。但生活经验告诉我,就算貌似不可改变的事情,也可以尝试一下,看来我的智慧还不够。

对人也如此,曾以为能看透一些人,后来晓得功力仍是太浅。每人都是一个世界,看人像是用显微镜去看粒子,无论放大到多少倍,总有你无法发现的内容。永远不要觉得自己了解他人。

不想把混乱再继续下去,希望能处理好时间的关系。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

Google总让我惊喜

这篇是要赞一下GoogleReader的。今天忽然发现这个功能,太方便了。以前用RSS客户端,在重装系统时候忘记了备份feeds,订阅了那么多人的博客,一下子就没了,要不是幸亏有次把全部feeds的OPML文件上传到了gmail信箱里,就损失惨重了,不过还是少了很多增量更新的。现在有了googlereader,再也不担心丢失feeds列表了,嘎嘎嘎嘎。Google出来的每一项功能总让人耳目一新,真是赞。

最好的是GoogleReader还可以订阅到无法访问的博客,就比如blogspot.com(这几天被GFW禁了)上的博客,不知道这个功能是因为blogspot.com属于google的缘故,还是Reader的订阅本身就是Google服务器的行为,不管你客户端是否能访问该博客站点,因为Google的服务器肯定能访问那。

一个截图,哎,简直跟RSS客户端没什么区别呀!(BTW:这截图用的是Firefox Save As Image插件,方便。)

有自己的域名啦

买了一个域名,四年。现在还没有主机空间,先定义了几个域名转向:

http://solrex.cnhttp://www.solrex.cn都指向Google Page:http://solrex.googlepages.com

http://blog.solrex.cn指向Live Space:http://mu-er.spaces.live.com

哈哈,以后记个人主页和博客地址都方便多了,不用记那么长了。不过各位要注意是.cn中国域名,不是.com啊。.com让一个美国人注走了,但好象一直都没用,所以输入solrex.com什么也打不开。

Administrative Name ............. Phil Griffith
Administrative Organization ..... Private
Administrative Address .......... 194 W. 24th St. Holland, MI 49423 US
Administrative City ............. Holland
Administrative Province/State ... MI
Administrative Postal Code ...... 49423
Administrative Country Code ..... US
Administrative Phone Number ..... 616-395-9397
Administrative Email ............ peesed_off@hotmail.com
Expiration Date ................. Thu, Mar 15, 2007

距南大最近景点-拉贝故居

今天下午四点多从机房值班出来,本想赶校车去浦口参加系软件技术协会的一个会。刚出西大楼,碰到位老先生,用不怎么流利的普通话问我知不知道一个在南京大屠杀的时候保护过中国人的德国人住过的房子,他说看报道现在变成了一个纪念馆。我忽然想起以前在百合上看过一个人写曾经骑车路过一个外国人的故居,据说在小粉桥那里,和他的描述颇为相似。老先生说问过很多人都不知道在哪里,虽然我也不太清楚具体位置,但想人家那么大年纪来费心找这种对中国有重大纪念意义但经常被人忽略的景点,我真不好意思说不知道。反正大不了赶公车过去,我说我大概听说过,陪你一起去找吧,就从东北门出去到小粉桥,一直往南找。

聊天中知道他是香港一个退休的工程师,这次来是想体验下大陆各地的历史景点,他说下一步准备去苏州,还准备到运河上坐一天船。这样都快走到广州路了还没找到,我们都快放弃了,他正感谢我陪他找了那么长的路,忽然我发现旁边一块墙砖上凸刻着四个字:“拉贝故居”。当时我们都非常开心,总算没白跑。可是很可惜,大门紧闭,问了旁边书报亭的人才知道最近在修葺,31号正式开放。很遗憾让人家跑那么远,我就要了他的Email地址,打算等开放了以后进去照几张照片给他发过去,也算让老人家略了心愿。还正好31日开幕那天免门票,谁要有兴趣也可以去转转,觉得作为中国人,看看还是有意义的。

下面引点介绍:

以下引用网址:http://www.gmw.cn/01gmrb/2005-09/15/content_304821.htm

拉贝故居的人道光辉

南京大学校园边有一座不起眼的旧式西洋小楼,经过淅沥秋雨的洗礼,更显其古朴典雅。都市的喧嚣中,前来瞻仰的每一个人都能够深深体会到历史的凝重。这就是小粉桥1号——德国友人拉贝先生的故居。

1937年,日本发动全面侵华战争。日本政府警告各国驻华使领馆人员及侨民尽快撤离南京,否则一切后果自负。

为了避免与日本政府发生正面冲突,各国政府也劝告本国侨民离开南京。然而一部分外国友人出于人道主义的考虑,决定留下来帮助受战争之难的中国平民,他们于 1937年9月成立了南京安全区国际委员会,并推举德国西门子公司南京分行经理拉贝先生为主席。在德国政府的一再劝告下,拉贝也曾为是否要离开南京而徘徊。但最终,拉贝决定留下来帮助他的中国朋友。

日军对南京的空袭一开始,拉贝先生的住所就成为人们的避难所。每遇到日军空袭,拉贝先生就敞开大门迎接前来避难的人们,并组织人们有序地躲进防空洞里。他在防空洞口贴了一张用德、中文写的通知,规定孩子和妇女占用最安全的位子,也就是防空洞中间的位子;男人们只可使用两边的坐位或站位。

拉贝深知南京大屠杀将载入史册,他把所知道的日军暴行一一登记在册,成为今天的日本右翼无法否认的铁证。《拉贝日记》从某种意义上说,是一部关于南京大屠杀的逐日编年史和百科全书,日军在南京每一种类型的罪恶几乎都可以在《拉贝日记》中找到对应的案例。

由于希特勒认为日本是更有价值的全球战略伙伴,拉贝在1938年2月底被召回国。拉贝救助数十万中国难民的事迹,当时就为举世所知,他被誉为当时的“南京市长”,中国政府秘密对其进行表彰,《纽约时报》等英美媒体认为,拉贝为德国赢得了巨大的国际荣誉。第二次世界大战结束后,中国人民得知拉贝先生遇到了困难,立即采取各种方式帮助拉贝先生,让他在贫困中得到许多安慰。

以下引用网址:http://www.xhby.net/xhby/content/2006-10/27/content_1443558.htm

拉贝故居10月31日起开放

摘要:位于南京小粉桥1号的拉贝故居经过一年的修缮,昨天终于完工。这座曾保护600多位中国难民的拉贝故居将于10月31日起向市民开放,门票暂定10元,开幕仪式当天免收门票。昨天记者提前探访了修缮一新的拉贝故居。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

顺序存储双有序列的二分折叠查找算法

源于Google的一道笔试题:给出两个升序排列的n维整数数组,求这2n个数中的第n大数。(算法导论:Exercise 9.3-8)

笔试的时候有一个想法,但是写的很草率,回来仔细想了下,把它写出来。我想这个应该是别人已经做过的东西,但我也不知道怎么查,第一次自己写查找算法,在我这就把它叫做“顺序存储双有序列的二分折叠查找算法”吧。其实这个算法好象没什么实际作用,有序列的查找嘛,计算量都不大。

算法描述太累赘了,就写个基本思想吧:把每个数组尾部的指针向前移动n/2个数,然后比较这两个数的大小,如果a中的大,就把这个数与b从尾部开始比较直到某个数小于它,这样,第n个数肯定不在两个指针后面,把两个指针后面的数字个数加起来,作为count。n-count就是执行下次类似查找的n。主要工作量节省在每次跨n/2上。至于最后如何选择第n个数,需要分析一下具体情况。

int search4n(int *a, int *b, int n)
{
int *p,*q,*p1,*q1,range;
p = a+n;
q = b+n;
if( a[0]>b[n-1] ) return a[0];
if( b[0]>a[n-1] ) return b[0];
while(n>1)
{
range = ( n+1 ) / 2;
p1 = p-range;
q1 = q-range;
if( *p1>*q1 ){
n -= range;
p = p1;
q--;
while( *q>*p1 ){
q--;
n--;
}
}
else{
n -= range;
q = q1;
p--;
while(*p>*q1){
p--;
n--;
}
}
}
if( n==0 ) return *p > *q ? *p : *q;
else if( n==1 ) return *(--p) > *(--q) ? *p : *q;
else return 0;
}

其实这个算法可以推而广之到任意两个有序列的第n大数查找,见下面。但是为了控制指针越界需要浪费一些判断语句,其实有很多判断语句只有在足够接近边界时候才起作用。这算法也可以推广到链表,但似乎效率要低些。

int search4n(int *a, int *b, int an, int bn, int n)
{
int *p, *q, *p1, *q1, range;
p = a+an;
q = b+bn;
if( a[0]>b[bn-1] ) return n <= an ? a[an-n] : b[an+bn-n];
if( b[0]>a[an-1] ) return n <= bn ? b[bn-n] : a[an+bn-n];

while( n>1 ){
range = ( n+1 ) / 2;
p1 = p-range>a ? ( q==b ? p-n : p-range) : a;
if(q1==b && *q1>*(p-1)) return *(p-n);
q1 = q-range>b ? ( p==a ? q-n : q-range) : b;
if(p1==a && *p1>*(q-1)) return *(q-n);
if( *p1>*q1 ){
n -= (p-p1);
p = p1;
q--;
while( *q>*p && q>b ){
n--;
q--;
}
*q>*p ? q : q++;
}
else{
n -= (q-q1);
q = q1;
p--;
while( *p>*q && p>a ){
n--;
p--;
}
*p>*q ? p : p++;
}
}
if( n==0 ) return *p<*q ? *p : *q;
else if( n==1 ) return (p1==a || q1==b) ? ( p1==a ? *(--q) : *(--p) ) : ( *(--p)>*(--q) ? *p : *q );
else return 0;
}

算法复杂度:

时间复杂度,显然最优状况下,比较只需要常数次(如果比较次数不包括各种边界条件的比较);最坏状况下,比较主要在中间那个while双循环,假设n对应的比较次数为f(n),则f(n)=1+k+f(n-[(n+1)/2]-k),其中1=<k<[(n+1)/2];f(1)=1;f(2)=2。则f(n)的最大值就是最差情况下的比较次数,我估计不出来,所以无法说它的平均算法复杂度了,但由f(n)的下降速度可以看出比较次数是介于log(n)和n之间的,究竟是多少数量级不太清楚,回头再想想怎么估计平均复杂度,应该是需要考虑k的分布。

空间复杂度,需要4个指针空间和1个整型变量空间,常数级。

我估计这个算法应该不是最优的,尤其对题目来说这种算法肯定不是最优的,因为求中位数的话可以更简单,但它可以推广到任意两有序列的查找,也算是一种途径。不过我觉得这个算法里可能还有漏洞,只是我没检查出来,也该有优化的可能,以后再慢慢想吧。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

我玩自个儿的

好不走运,两次轮滑协会活动都下雨,而且发现版上对新人并不热情,昨晚干脆我就自己找个地儿练开了。刚开始还有点生生的,过一会儿就顺多了,起码我可以慢速滑滑而且控制住不摔交了,今天还打算过去,没人,也挺清净的,反正路过的我都不认识而且都不认识我。

想自己的经历也是,有时候犹豫这犹豫那反而办不好事,我就玩我自个儿的,别人爱怎么样怎么样。学计算机也是,也没人教,全靠我自己看书,学软件,写程序。去实验室面试时候老师问我计算机水平怎样,我说能和计算机系学习一般水平的同学差不多吧,他就表示:你看我不如招个计算机专业的前几名吧,其实我根本不相信我会不如那些计算机系学生。谁不是从大学过来的,大学生都在干吗也都清楚,我一个数学系学生,平常课业繁重还做学生工作,却还去学课外知识,英语能力和计算机能力绝对不能算差,我要有前几名我肯定申请出国了谁去你那呀?别人学了三年计算机,具有可比性吗?想到这我心里是真委屈呀,昨天给导师发了封邮件,他告诉我我是破格录取,如果说这个破格是因为实验室工程方向从来没招过数学系学生的破格我还觉得舒服点,如果说是因为我研究能力不行却破格,我真是很汗,不就是我不是科班出身吗,用得着说那么鄙视吗?

算了算了,又说激动了。不过导师是挺好的,给他发邮件很快就回了,还指出了我主页上英文的错误,还非常耐心的回答我的问题。唉,谁让我不小心用了签名档呀,这下连博客都让他知道了,以后就得小心点说话了。不过我也很少说别人坏话,看就看去吧,能怎么着啊。反正机会是他们给的,如果因为几句牢骚就收回去,我也无话可说。不过我真得感谢他们给我这个机会,不然我就不会悠闲地在这写博客了。

现在打算如果可能的话,先把毕业论文给做了,这样能让我专注一下去做件事,有利于平静心态。我还是太浮躁,老爸从小就教训我,做事要脚踏实地,戒骄戒躁,但老是改不了。还好我对自己有充分的自知之明,还算知道自己几斤几两,会时常地提醒提醒自己。从小就不服输,但也知道这个世界要靠实力说话。

又想起一个DBA前几天的一句话:现在的学生底线可真的不高。本科生一般 2000-3000,研究生 5000-7000。研究生一抓一大把,或许这就是"劣币驱逐良币"的一种表现形式吧。

但是我认为,只要人足够努力足够出色,良币还是良币,总能从劣币里区分出来,我们要有自信,与找工作的兄弟们共勉。

扯的太远了又,打住。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

猪猡生活计划(暂行)

开始背GRE单词,准备明年六月或者十月考试
开始学轮滑,准备练成个平花高手
开始学信号与系统,咱要当一个内外兼修、软硬通吃的IT人
接着写模拟股市,实现自己当初对整个系统的设想,如果可能的话,转用Servlet实现
开始看论文,了解有关信息安全方向的情况和最新动态

PS: 刚知道我的导师和方向,开心死了,不用读硕博了,这个方向只照两个硕士生,还能轮到我,太爽了。

Copyright © 2005-2006 Solrex Yang. All rights reserved.

梦想照进现实

为了免试研究生两次进京,现在一切搞定。

最痛恨的一件事是本以为今天体检必须参加,回来之后才被告知在中科院体检过的就不用了。

以我如此poor的成绩能保到中科院,运气太好。我感谢上天对我的眷顾,能让我如此轻易的到北京去。

参加复试时第一次到北京,一种漂泊无所依的感觉,但是我已经喜欢上这城市。也许与我北方人的本质有关,对南京的小气很不喜欢,北京城那种大气才对我的胃口。

去领接收函是第二次到北京,原来的那种漂泊感荡然无存,心里告诉我:This is my city.我感谢上天能让我和N多好朋友同在一个城市,感谢上天能让我保送到自己想进的专业,我是一个幸运儿,非常非常地满足了。

再在南京待半年多就该说再见了,我也有充足的时间去做自己想做的事了,想到这些仿佛还在梦里一样。
Copyright © 2005-2006 Solrex Yang. All rights reserved.

One Night In Beijing

——记我的保研历程

能保送,能保送到北京,能保送到北京中科院信息安全国家重点实验室,对我来说都是一件件奇迹。

准备2006.7.3-9.12

因为大二成绩比较差,从大三开始,我就没想要走保研这条路,一心一意准备考软件所,顺便考了个软件设计师。暑假里找了个实习,在一个网站做开发,刚找到就被于洋师兄批了一顿:如果想考研就早早回家看书,也可能有保送的机会。所以干了一星期,给公司做了一个抓取页面的小程序就回家了。在家没玩多少,说实话也没学多少,我还是以为自己没有保送的希望,一点数学书都没看,只看计算机了。

系内保研考试2006.9.13

回到学校后,参加系内保研考试只是为了不想错过机会,其前仍然一点数学都没有看,笔试大概会个一半,面试基本一半以上问题不会,其实根本没抱希望,算是见识见识什么是保研考试。结果出来以后显然没有我,不过比我高一名的老板居然榜上有名让我很不爽,大概是因为两次考试考的好吧。这时候有点后悔没听于洋师兄的话好好复习下数学了,不过我觉得如此低的名次也保不出去,保了也是白保。

申请2006.9.28

在我已经放弃了的时候,一天正在看编译原理,辅导员又专门打电话问我申请学校了没有,说我仍有可能保,说系里还在争取扩充名额。我当时半信半疑地让系里开了一个措辞模糊的保研证明就寄去中科院信息安全国家重点实验室了,因为我关注的地方只有它还接受申请,还给老师发了封简历电子版。这时候我根本不知道自己有没有可能拿到本校推荐免试生资格。

通知复试2006.9.30

十一前夜,比较郁闷,平常基本不玩游戏,这次从同学那拷了个游戏三国11,晚上正在玩,突然接到实验室老师的电话,问我材料怎么还没到,然后问了我一下名次,我就恳求她说材料28号已经寄出,十一过后肯定能到。老师说那我再跟领导商量一下,我想估计没戏,没想到过会儿真打来了通知我10月8号去北京参加复试。这里强烈鄙视一下中国邮政特快专递EMS,号称两天,四天才给我送到,和平信一个速度,太恶心了。

准备复试2006.10.01-07

因为申的是信息安全,好多专业都要,信息安全、电子、通信、信息工程、数学、计算机,所以根本不知道会考什么,非常郁闷地看了两天近世代数后,3号晚上看见大骚就跟他去了租房子的地方,看电视到5号,回到宿舍后接着看,把《血色浪漫》算是完完整整地看了一遍。6号晚上坐车去了北京,7号早上到了之后和同学聚聚基本上没什么时间了。晚上辅导员通知我说保上了,但要外推,估计系里那些个数学教授们没有想要我的,其实让我上数学系我真不一定上。找了个招待所地下室,40一天,晚上居然睡得还挺香。

复试2006.10.8

早上6点半起的,去等早就看好的公交车,40分钟才到,然后又坐了一个多钟头才到航天中心医院,还下起了雨,已经迟到半个小时了,总结出来一点,在北京能坐地铁千万别坐公交。在车上时候就想,太倒霉了,看来这次是上天阻拦我呀,抑制住心里马上坐车回去的冲动,赶到医院,发现体检还没有结束,正好连队都不用排,很快做完了体检,就是没带照片。

上午十点到实验室参加笔试,分理论和工程两卷,理论卷12道题选5道,工程卷19道题能做多少做多少。理论的主要是:近世代数、概率论、信息论、密码学原理,我做了8道;工程的主要是:概率论、信号与系统、密码学、C++、计算机网络、信息论,我做了15道,但都答的不那么清楚详细,跟我平时看书只是浮光掠影有关。当时还挺开心的,觉得这考试也不难嘛。

中午实验室提供了顿工作餐,吃的很郁闷,因为昨天系里说的是要外推到中科大,我不知道能不能推到中科院,心里没底。

下午两点开始面试,我是工程组倒数第三个。八个数学系学生七个在理论组,只有我面工程,当时我想,是不是笔试工程题目做的很好。到面试时候,开始先让自我介绍,我说:我是南京大学数学系信息与计算科学专业毕业的。第一句还没说完,实验室主任就问副主任:这是数学系的怎么跑到这一组来了,才知道原来他们是只看到我专业名字没看到系名。我特想进工程,我就赶紧给他们解释我想学工程,而且在大二就开始学习计算机方面的东西,还拿过什么什么证书。结果面试的一大半时间是我在和他们争辩到底我应该读理论还是应该读工程。我只记得真正是他们提的问题就5个:1.你英语六级多少分?562;2.你计算机拿过什么证书?江苏省二级三级还有软件设计师;3.如果我们把你录到理论那一组,你愿意来吗?那我得考虑一下;4.i=1;j=i++;j=?肯定是2,但是++运算符同一表达式只能用一次,在表达式里出现同一变量有两次++的情况是C++标准没有定义的,得根据编译器情况而定。5.如果我们录你的话,肯定是硕博连读,你愿意吗?没问题。我都愤特了,工程方面我行不行你问那,干吗在我专业上纠缠来纠缠去的。

而且最讨厌的是我当时的材料没有拿到面试老师那里,10.1到的但一直到8号都没人取,还是我亲自去中科院门房拿给办公室老师的,但她没有给考官。几个老师就对着我的一张简历问来问去,别人都是一沓,真的是很汗。

然后我就出去了,特别灰心,我觉得我肯定没戏,因为那个主任说如果我招工程方向学生的话肯定愿意要计算机和电子的,数学的不适合。出去以后,因为早晨体检照片还没贴,我想把信箱里的电子照片打出来贴上。一问在数码冲印店上网10分钟3块,立等取像10块,现照现取20。我一想,算了,反正你也不打算要我,我也不浪费这个钱了,正好旁边有个地铁站,坐地铁就去火车站回家了。

录取2006.10.9-10

没买到去南京的票,就想干脆回家一趟,然后从家里直接去中科大。9号去郑州看了一下我妹妹,晚上就到家了。10号下午忽然接到实验室电话,说我被录了,当时真不敢相信,问了好几遍确认肯定录了,开心死了,马上去买票回南京。中间还到商丘倒了趟车。因为还是不清楚自己能不能推到中科院,给领导老师打电话问了一下,说是只要外推就可以,当时那个开心那,别提了。

回南京拿学校教务处开的正式推荐免试生证明,本来可以寄过去的,我想,就我这成绩保到中科院,还是赶紧把接收函领到手里吧,免得夜长梦多。就这样又去了趟北京,顺便玩了几天。

总结:我估计实验室之所以要我,可能有几个原因:1.对工程应用方面的兴趣,在面试中我表现地很真诚,谁不愿意要一个真正想学这个专业的学生啊?2.计算机能力还可以。考过了软件设计师,在面试中唯一一道C++问题上表现出了对C++的掌握能力。3.英语能力不错,只是通过考试成绩证明了一下。4.笔试还行,我平时看的书很杂,考试的内容除了电子信号那部分不会其它或多或少都懂些,虽然都不精。5.我是南京大学数学系的学生。南京大学数学系还是有一定影响力的,而且参加复试的只有我一个南大学生。
Copyright © 2005-2006 Solrex Yang. All rights reserved.