Wednesday, January 04, 2006

ns2 2.26 tcl compile error

Fedora Core 3 (gcc3.4.2):
1. compiling tclcl:
tclcl-mappings.h: In static member function `static int TclObjectHelper::dispatch_(void*, Tcl_Interp*, int, char**)':
tclcl-mappings.h:51: error: incomplete type `Tcl' used in nested name specifier
tclcl-mappings.h:52: error: invalid use of undefined type `struct Tcl'
tclcl-mappings.h:41: error: forward declaration of `struct Tcl'
tclcl-mappings.h:57: error: invalid use of undefined type `struct Tcl'
tclcl-mappings.h:41: error: forward declaration of `struct Tcl'
make: *** [Tcl.o] Error 1

[apply the following patch]
 #include "tclcl-config.h"
-#include "tclcl-mappings.h"
#include "tracedvar.h"
+// tclcl-mappings.h included below, AFTER definition of class Tcl

struct Tk_Window_;

@@ -158,6 +158,8 @@
Tcl_HashTable objs_;
};

+#include "tclcl-mappings.h"
+
class InstVar;

class TclObject {

Friday, August 05, 2005

cs faculty

* Stanford

如果将计算机看作一门科学,那Stanford大学的计算机科学系肯定是最出色。假如计算机
是一门科学,它的灵魂自然是人工智能(AI)。早期MIT的AI实验室做了一些开拓性的工作
,冷战期间美国国防部搞了无数超大的AI项目,一时各校纷纷以做AI为时髦,现在UTexas
(Austin)和UMass(Amherst)的CS系便是那个时代的产物。可好景不长,随着在AI领域的投
入产出被证明是国防部的一大败笔,大师们一一归隐。为了生存,后来的AI也发展了一些
面向应用的方向。从那以后,Stanford大学在AI领域应该算最强的。

除了AI,Stanford的计算机系以拥有最强的计算机体系结构和数据库团队而闻名。

* MIT

MIT属于不好说的一个学校,名声很大,faculty看上去都很牛,可说不出它有什么实力超
群的团队。比较各校毕业的PhD学生,应该说MIT的PhD在学术上是最有成就的。这其中,
又以理论和系统为最。除此之外,无话可说。

* Berkeley

当年网络还没有成为泡沫时,Berkeley出去的PhD人人都能去名校当faculty, 这说明了
Berkeley的计算机系有很强的操作系统/网络专业。另外,在图形学和计算机视觉领域,
Berkeley应该可以和Stanford平分秋色。

* CMU

从AI(比如语音识别)起步,因为做Mach操作系统而独树一帜。微软每年从各个学校招收大
量的Software Engineers, 但在早期的工业研究及产品开发上,微软受到了两个学校的深
刻影响,一个是CMU,另一个是Washington(Seattle),可见CMU的软件之强。现在的CMU拥
有庞大的Robotics及Computer Vision研究队伍,全是早期国防部做AI的遗物。可惜CMU没
多少家底,搞了一个其大无比的计算机学院,用各种五花八门degrees拼命捞钱,有点无
聊。

* UIUC

为硬件和超级计算而生,所有与超级计算相关的方向几乎都是最好,包括算术,硬件,机
器结构,编译及数值分析。80年代以后学术队伍老化,UIUC因此迷茫了十多年。现在的硬
件队伍已经全部退休,新的faculty全部换成了软的。

=======================

用个比喻来总结吧。

UIUC的教授和学生发明了晶体管,集成电路和计算机算术,所以Intel可以做出处理器(
CPU)来。

微软从CMU找来很多脑袋做出了Windows内核, 有很多毛病,可它可以运行一个CPU,所以
人人买得起。

IBM说,PC的计算能力很有限,又不可靠,所以大机器才是真正的计算机,于是UIUC的PhD
都去了IBM.

Berkeley说,超级计算机不算什么,我用几台PC连在一起转得一点不差。PC也不算什么,
不用网络连起来不好玩。正好这个时候网络泡沫的起来了,Berkeley的PhD们都去了各个
大学教网络课。

Stanford的学生们溜得最快,做AI的教授们还没想明白,yahoo和google就已经开始赚钱
了.

MIT什么都没有,但它的感觉是最好的,因为它可以证明,所有的人在学术上都是它的孙
子的孙子。

Sunday, March 27, 2005

career

rather interesting.....

- illinois's solid reputation is well deserved.
- purdue is way down from her previous glorious days, while UIC is
catching up fast.
- UC irvine & santa barbara are rising stars


Active NSF CAREER Award: Midwest Research Universities
-----------------------------------------------------
Illinois 63
Wisconsin 43
Michigan 42
Penn State 34
Northwestern 25
Iowa State 22
Purdue 21
Minnesota 21
Washington-St Louis 17
Notre Dame 15
Illionois-Chicago 15
Iowa 14
U Chicago 13
Michigan State 13
Indiana 13


Active NSF CAREER Award: research universities in the west
-----------------------------------------------------------
Washington-Seattle 40
Stanford 26
UC, Berkeley 29
UCLA 24
Arizona State 22
UC, Irvine 19
UC, Santa Barbara 18
Arizona 18
UC, San Diego 17
Univ of S. Calif 17
UC, Davis 12
UC, Riverside 12

faculty

我博士毕业的时候,只申请了两个学校的教职,虽然
比较冒险,但我的申请针对性很强,拿到了一个面试,
也拿到了这个职位。去年,由于个人和家庭的原因,
决定换个地方,也只申请了两个学校,拿到了其中的
一个面试。前几天,学校来电话,给我offer。我个人
感觉,我在这两次面试的过程中,给对方的影响很好,
我经常听到的一句话就是:you cerntainly have done your
homework。我想和大家分享一下我在准备面试的经验,
希望大家都能在面试的时候把自己的长处充分发挥出
来。

首先,申请的时候要看空缺是不是和你的方向相符,如
果不相符的话,就要考虑是否值得费功夫。如果相符的
话,准备申请材料时一定要把自己的研究和教学经历和
招聘条件上靠。我曾在参与了两个faculty空缺的招聘。审
阅申请人资格的过程十分简单,看看CV和cover letter,如
果和空缺的条件不复合,马上剔除,大家都不讨论。决
定一份申请材料是否入围,只是三分钟的事情。所以,
申请的时候,不要用千篇一律的cover letter和CV,要花些
时间针对每个职位定制一份申请。否则,用现成的东西来
申请是省了你的时间,但也让审阅人不怎么费劲地把你排
除在short list之外。

如果你对自己的资格不太确定,或者空缺的描述不是特别
清楚,一定要和search committee的头儿联系一下,澄清你
的疑问。有时候,一个职位说是需要几个不同方向的,但
和对方联系一下,你打开能知道他们的倾向,看自己是不
是符合条件。

如果对方对你有兴趣,会首先和你电话联系,一来看你是
否还对该职位感兴趣,二来确定面试的时间。如果在电话
里,对方感觉到你对这个职位不太热衷的话,你在short list
的顺序会有所变化,这样大家在投票是,优先权就不一样
了。在确定面试时间的时候,一定得给自己留出至少一周
的时间来熟悉对方和准备你的job talk。

准备面试是个艰苦的过程,我个人的感觉是要把每个面试
当作找对象,尽可能地了解对方的所有情况,去对方网站
上,翻个底朝天。大到对方教学计划的设计宗旨,小到有
几个staff来服务学生和faculty。从教学、科研和服务(service)
几个方面看你是如何能帮助对方增强实力。在这个过程中,
你会发现一些不明白的东西,记下来,作为面试时问对方
的问题。尽可能记住每个faculty的名字和他们的研究方向,
读一下他们的文章,看你如何能和他们合作。做到这点比
较费时间,但非常重要。如果时间不够得话,一定要把要
和你见面的faculty的东西搞明白。(尽早和对方联系拿到
面试的日程安排。)

面试的时候,要有碰到jerk的心理准备。学术界的人比较
难对付。有个说法,工业界的人都比较友好(nice),有些
人比较聪明;学术界的人都比较聪明,有些人比较友好。
所以,你可能会碰到很刁难的问题。除了尽力解释你的
东西之外,有一个原则会比较有用:if you cannot kick his
ass, kiss his ass. 至于怎么做,那就看自己了。

在做job talk的时候,对方要看的除了你的研究外,还有你
处理提问的水平和能力。这个东西要在做TA的时候就多练
习才对。在这方面,我的体会有两点。一是要在对方提问
完了之后,用自己语言描述一下问题,看是否正确。这样
做一来可以避免答非所问,二来可以让没听情问题的人明
白问题,三来可以给自己争取一些思考的时间。第二点是
不要简单地用yes或no。要给自己留余地。在解释你的理解
的时候,也要把其他的东西点一下,比较一下各自的长处
短处。

总之,面试的时候要把对方的情况摸得很透澈才是。而且,
要把自己的角色调整一下,想象一下如果自己是其中的一
员,会有什么感受,然后从这个角度去提问题和回答问题。

Monday, March 07, 2005

google

【八阕】Google将其成功部分地归功于公司所发明的独有运算机制,令其搜索引擎可以在极短时间内对数以百万计的网络用户的搜索请求提供答案。 上周三,Google副总裁Urs Hoelzle在Eclipse会议上的一番发言,令与会者有机会了解Google的搜索技术是如何产生以及该技术现在是如何运作的。 Hoelzle对与会者说,要发明Google的技术,开发者必须抛弃过去大型数据库所使用技术的思维定势。由于一天里面所有搜索请求的内容都是不可预计的,因此手头上就必须拥有100亿左右的网页数据,这是确实是很大的挑战。 Hoelzle出示了一系列早期Google硬件数据中心的照片。1997年拍的照片中是两台破旧的台式电脑。1999年,是数台Intel服务器,机器后面露出一堆乱七八糟的数据线。2000年的数据中心内,摆放的是1000台排列整齐的双处理器服务器。 Hoelzle表示,“底层的硬件价格十分低廉,但却完成了许多工作。”同时,使用如此多的服务器,可靠性是Google关心的另一重点。Hoelzle表示,“Google使用自动控制的机制进行运作。否则,工程师们需要为重启服务器而疲于奔命。” 为了抵抗不可抗力带来的影响,Google搭建了Google文件系统,该系统与Google的搜索运算系统紧密结合,并且对服务器故障有很高的承受能力。 Google的所有操作均基于一系列的大容量文件,这些文件被拆分为64M大小的数据包,分布在多个“数据包服务器”中。文件的描述、数据包的数目和数据包的位置等资料都存放在中央服务器中。每一个64M的数据包都会在另外两个服务器上备份,三份拷贝的路径亦存放在中央服务器中。 由于所有的文件都存放在Red Hat Linux服务器中,Google以很低的成本就保证了服务的可靠性。中央服务器会定时向数据包服务器发出脉冲信号,确定数据包服务器是否在正常运作。如果没有收到应答信号,又或者应答信号中显示某台数据包服务器的数据受到损害,中央服务器会从其他数据包服务器上取出数据包修复受损的服务器。这一工作通常在一分钟内则可以完成。 Hoelzle指出,只有三台服务器上的拷贝同时受损,才会对Google的服务有所影响。这时候,就需要用一段长时间去收集互联网的数据以重建受损文件。 Google会对Web Crawler收集到的网页进行索引, Web Crawler亦会对这些网页的作出描述。Hoelzle表示,建立网页的索引是很艰巨的一项工作,需要数百台计算机运算数天。同时,索引必须经常地更新。 为了高速地对索引进行检索,Google将其分成许多称为“碎片”的小块,分布在不同的服务器中,以便进行并行搜索。每一台服务器都搜索出一部分结果,然后再整合在一起成为完整的答案。 Hoelzle表示,Google的文件系统、索引技术及商用服务器的网格令每一次搜索的平均时间四分之一秒。而文件系统的定时脉冲信号机制,则给予Google很高的可靠性和可用性。 同时,当Google的服务器分析搜索请求的时候,会将该搜索请求拆分,然后再从数据库中找出令大部分用户满意的结果,这一过程称为“map reduction”。Hoelzle表示,“Google曾经在一次大型维护意外事故中失去了2000台map reduction服务器中的1800台。”但由于系统的负载均衡机制,将未完成的搜索任务合理分配,Google仍然能完成所有的搜索请求。 Hoelzle指出,“这一机制使我们能很快从故障中复原,并不影响我们的服务。”

Sunday, March 06, 2005

scientist!

Don't Become a Scientist! Jonathan I. Katz Professor of Physics Washington University, St. Louis, Mo. [my last name]@wuphys.wustl.edu Are you thinking of becoming a scientist? Do you want to uncover the mysteries of nature, perform experiments or carry out calculations to learn how the world works? Forget it! Science is fun and exciting. The thrill of discovery is unique. If you are smart, ambitious and hard working you should major in science as an undergraduate. But that is as far as you should take it. After graduation, you will have to deal with the real world. That means that you should not even consider going to graduate school in science. Do something else instead: medical school, law school, computers or engineering, or something else which appeals to you. Why am I (a tenured professor of physics) trying to discourage you from following a career path which was successful for me? Because times have changed (I received my Ph.D. in 1973, and tenure in 1976). American science no longer offers a reasonable career path. If you go to graduate school in science it is in the expectation of spending your working life doing scientific research, using your ingenuity and curiosity to solve important and interesting problems. You will almost certainly be disappointed, probably when it is too late to choose another career. American universities train roughly twice as many Ph.D.s as there are jobs for them. When something, or someone, is a glut on the market, the price drops. In the case of Ph.D. scientists, the reduction in price takes the form of many years spent in ``holding pattern'' postdoctoral jobs. Permanent jobs don't pay much less than they used to, but instead of obtaining a real job two years after the Ph.D. (as was typical 25 years ago) most young scientists spend five, ten, or more years as postdocs. They have no prospect of permanent employment and often must obtain a new postdoctoral position and move every two years. For many more details consult the Young Scientists' Network or read the account in the May, 2001 issue of the Washington Monthly. As examples, consider two of the leading candidates for a recent Assistant Professorship in my department. One was 37, ten years out of graduate school (he didn't get the job). The leading candidate, whom everyone thinks is brilliant, was 35, seven years out of graduate school. Only then was he offered his first permanent job (that's not tenure, just the possibility of it six years later, and a step off the treadmill of looking for a new job every two years). The latest example is a 39 year old candidate for another Assistant Professorship; he has published 35 papers. In contrast, a doctor typically enters private practice at 29, a lawyer at 25 and makes partner at 31, and a computer scientist with a Ph.D. has a very good job at 27 (computer science and engineering are the few fields in which industrial demand makes it sensible to get a Ph.D.). Anyone with the intelligence, ambition and willingness to work hard to succeed in science can also succeed in any of these other professions. Typical postdoctoral salaries begin at $27,000 annually in the biological sciences and about $35,000 in the physical sciences (graduate student stipends are less than half these figures). Can you support a family on that income? It suffices for a young couple in a small apartment, though I know of one physicist whose wife left him because she was tired of repeatedly moving with little prospect of settling down. When you are in your thirties you will need more: a house in a good school district and all the other necessities of ordinary middle class life. Science is a profession, not a religious vocation, and does not justify an oath of poverty or celibacy. Of course, you don't go into science to get rich. So you choose not to go to medical or law school, even though a doctor or lawyer typically earns two to three times as much as a scientist (one lucky enough to have a good senior-level job). I made that choice too. I became a scientist in order to have the freedom to work on problems which interest me. But you probably won't get that freedom. As a postdoc you will work on someone else's ideas, and may be treated as a technician rather than as an independent collaborator. Eventually, you will probably be squeezed out of science entirely. You can get a fine job as a computer programmer, but why not do this at 22, rather than putting up with a decade of misery in the scientific job market first? The longer you spend in science the harder you will find it to leave, and the less attractive you will be to prospective employers in other fields. Perhaps you are so talented that you can beat the postdoc trap; some university (there are hardly any industrial jobs in the physical sciences) will be so impressed with you that you will be hired into a tenure track position two years out of graduate school. Maybe. But the general cheapening of scientific labor means that even the most talented stay on the postdoctoral treadmill for a very long time; consider the job candidates described above. And many who appear to be very talented, with grades and recommendations to match, later find that the competition of research is more difficult, or at least different, and that they must struggle with the rest. Suppose you do eventually obtain a permanent job, perhaps a tenured professorship. The struggle for a job is now replaced by a struggle for grant support, and again there is a glut of scientists. Now you spend your time writing proposals rather than doing research. Worse, because your proposals are judged by your competitors you cannot follow your curiosity, but must spend your effort and talents on anticipating and deflecting criticism rather than on solving the important scientific problems. They're not the same thing: you cannot put your past successes in a proposal, because they are finished work, and your new ideas, however original and clever, are still unproven. It is proverbial that original ideas are the kiss of death for a proposal; because they have not yet been proved to work (after all, that is what you are proposing to do) they can be, and will be, rated poorly. Having achieved the promised land, you find that it is not what you wanted after all. What can be done? The first thing for any young person (which means anyone who does not have a permanent job in science) to do is to pursue another career. This will spare you the misery of disappointed expectations. Young Americans have generally woken up to the bad prospects and absence of a reasonable middle class career path in science and are deserting it. If you haven't yet, then join them. Leave graduate school to people from India and China, for whom the prospects at home are even worse. I have known more people whose lives have been ruined by getting a Ph.D. in physics than by drugs. If you are in a position of leadership in science then you should try to persuade the funding agencies to train fewer Ph.D.s. The glut of scientists is entirely the consequence of funding policies (almost all graduate education is paid for by federal grants). The funding agencies are bemoaning the scarcity of young people interested in science when they themselves caused this scarcity by destroying science as a career. They could reverse this situation by matching the number trained to the demand, but they refuse to do so, or even to discuss the problem seriously (for many years the NSF propagated a dishonest prediction of a coming shortage of scientists, and most funding agencies still act as if this were true). The result is that the best young people, who should go into science, sensibly refuse to do so, and the graduate schools are filled with weak American students and with foreigners lured by the American student visa.

DH and RSA~!

Thursday, February 24, 2005

number theory& course link!

Friday, February 04, 2005

windump

advice to young researcher!

Raise your standards as high as you can live with, avoid wasting your time on routine problems, and always try to work as closely as possible at the boundary of your abilities. Do this because it is the only way of discovering how that boundary should be moved forward.
We all like our work to be socially relevant and scientifically sound. If we can find a topic satisfying both desires, we are lucky; if the two targets are in conflict with each other, let the requirement of scientific soundness prevail.
Never tackle a problem of which you can be pretty sure that (now or in the near future) it will be tackled by others who are, in relation to that problem, at least as competent and well-equipped as you are.
Write as if your work is going to be studied by a thousand people.
Don't get enamored with the complexities you have learned to live with (be they of your own making or imported). The lurking suspicion that something could be simplified is the world's richest source of rewarding challenges.
Before embarking on an ambitious project, try to kill it.
Remember that research with a big R is rarely mission-oriented and plan in terms of decades, not years. Resist all pressure --be it financial or cultural-- to do work that is of ephemeral significance at best.
Don't strive for recognition (in whatever form): recognition should not be your goal, but a symptom that your work has been worthwhile.
Avoid involvement in projects so vague that their failure could remain invisible: such involvement tends to corrupt one's scientific integrity.
Striving for perfection is ultimately the only justification for the academic enterprise; if you don't feel comfortable with this goal --e.g. because you think it too presumptuous--, stay out!

conference

Conferences on Networking and Distributed Systems
General Distributed Systems
SOSP 2001, 2003, 2005
OSDI 2000, 2002, 2004
NSDI 2004
USITS 2001, 2003, 2005
USENIX 2001, 2002, 2003, 2004, 2005
FAST 2002, 2003, 2004
SIGMETRICS 2001, 2002,2003, 2004
INFOCOM 2002, 2003, 2004, 2005
ICDCS 2002,2003, 2004, 2005
Wired Networking Systems
Classic Papers in Networking
SIGCOMM 2001,2002,2003, 2004
IMC 2002, 2003, 2004
ICNP 2002,2003, 2004
PODC 2002, 2003, 2004
Wirless Networking and Mobile Distributed Systems
MobiCom 2001,2002,2003, 2004
MobiHoc 2001,2002, 2003, 2004
MobiSys 2003, 2004
IPSN 2003, 2004
SenSys 2003, 2004
Computer Security
CCS 2002, 2003, 2004, 2005
S&P 2002, 2003, 2004, 2005
USENIX Security 2002, 2003, 2004, 2005
NDSS 2002, 2003, 2004, 2005