在时间停止的村庄里吃一场散伙饭

一个成功逆袭,找到startup intern的朋友下午就要出发去工作的城市,于是儿童节的中午纠集了一群人吃饭。中午我到miss saigon的时候,店里才几个人,在座的还有一位不认识的mm。之后一群不靠谱的人陆陆续续分拨到达,人越来越多,长条桌都坐不下了。现在的状况就是这样,在一个地方呆了两年,一个人要走,随便一叫,就牵牵连连交出来一大片。 期间一位每天都来miss saigon吃午饭的同学加入了我们,还有另一对couple也很巧的出现了,真是个小地方啊。

今天在座的人里,一个要去马上去boston,一个要去游欧洲然后NJ读PhD,一个就要去加州读书,一个在找工作马上离开安村,还有两个马上要去road trip横穿美国(啊哈哈哈)。席间吵杂无比,长条行的桌子上,大家分成几段各自开小party,从头到尾的玩笑和吐槽。。。对面的二黑mm和高分子gg是一对到一起的每分钟都在互相吐槽的好搭档,二黑mm过几天就要去游欧洲然后再也不回来了(TT),高分子gg临走时要握手告别,也被二黑mm傲娇的拒绝啦。恩,一直没正行就对了。

中午阳光很好的downtown也没有多少人,都一副不紧不慢的样子,到了夏天这个村子就是生机勃勃、人烟稀少。这差不多是散伙饭了,之前快毕业典礼的时候二黑mm叫大家吃了一顿,但那个时候大家下一步的落脚地儿都还没确定。现在这些master们都有了明确的下一步,一群二十多岁的青年们就要离开这个安静如画的小镇,奔赴前程。心里有不舍,但更多的是期待和一分钟都不相等要跑着向未来的迫不及待。所以离别的伤感都埋在心里,化成从头到尾的吐槽,出国在外才知道生活之味的小青年,果然是要比本科毕业的时候成熟了。

最后我也要来吐槽一句,这些人才在一起玩的开心没多久,就要离开了,真是的,所以就说不要和master交朋友。

April 1st

Run into Alex at Rec Center. Only run for like 20 mins. Feel like I should start regular workout again.

The road trip plan is gradually figured out, yet still need to book rooms for Chicago, Salt Lake City, San Francisco and LA! OMG!

三月份的尾巴

最近有两件事是social network里information spreading突然突破了procalation的阈值的例子:一个是draw sth的突然火爆,还有一个是周围的人突然都开始买mega million彩票。

这个draw sth我就没觉得有什么意思,但是室友就从前两个星期开始玩,然后突然间周围所有的人都在玩了。mega million彩票这件事,让我知道原来美国人民也有着中东西。本来我没有想买,但是室友又很激动的像我推荐,因为这次的奖特别大,有5亿美元。不过作为一个中国人,在初中的时候就经过了福彩和体彩的大潮,现在完全淡定,不过还是让室友去买的时候帮我顺便买了一张。结果拿到之后就被我迅速的丢掉了!

Pentadactyl在wordpress里有bug,都不能正常编辑,真是太不爽了,把我写blog的心情扫的一干二净。简短结说,BoxPlayer上线了,定了一个road trip的计划!继续编程。Pentadactyl! You let me down!

There’ll be meteor shower

哎呦喂今天晚上我的车神奇的打不着了(皇阿玛你怎么了,皇阿玛你醒醒)。为了把我的车打着,我找来台湾师兄和高个子美女姐姐,三个人在-7度的寒风中集合了三辆车企图把我的“皇阿玛”救活,结果就是我们的手脚都冻僵了,皇阿玛没有反应,高个子美女姐姐的车被我们搞的也没电了,这是什么情况?

So there will be meteor shower tonight. Hope to get up and see it. It’s between 3:00 am and the dawn. Taiwan gg said it’s for my birthday~ Well that’s a very sweet way to put it.

ps. It’s maybe a good time to suggest a beautiful song, one of my favorite, Rule the World by Take That.

Let the sky be lighten up and together may we rule the world~~

Hello, 2012

今天下午,安村的天空展出一片蔚蓝,堆着很多变幻多姿的美的不可思议的云

出家门的时候,突然才想到在中国时间里我的生日已经到了呀,怪不得早上接到老爸兴高采烈却没什么内容的电话。今天晚上12点,美国时间的我的生日也就到了。其实过个生日没有什么大不了,但是过去大半年发生了各种事情,最近沉浸在半封闭的情绪里对人和人生、对自己进行了各种思考,这两天因为2012又到处都有一种特别的“末日情怀”,我想在中国时间12点和东部时间12点这之间的几个小时,是一个很适合来梳理梳理自己思绪的时间。ps,这期间,每个时刻地球上都有对应的一条经线是我的生日,这想法还不赖,:)

1.2011年,我搞砸了一段重要的友谊,也为此消沉了很久。当然最后我恢复了,虽然用了不短的时间。然而这段幽暗的时光确是我最大的收获,就像独自走在阴暗的河边树影里,我用了很多时间,了解自己。我意识到我是多么幸运,可以拥有很多份珍贵的友情,它们在这段时间里照亮和温暖我,让我真的懂得感谢和珍惜。

2.夏天到了的时候,万物复苏,我感觉就像被治愈了一样,勇气和希望好像和满世界的绿色一样回到了我心里。

3.回到西安的时候,那感觉真是,强烈的情感和记忆一下子从各个方向超我袭来,我坐在大巴上,看着西大街,汹涌的情感让我泪流满面,伴随着强烈的心痛,和快乐。即使是在学校里外晃荡的两天,我也还处在一种内在沉思的状态,然而有弟们的陪伴是快乐的,我真是何德何能。而后就是坐到西三美女姐姐的电脑前的那一刹那,一年前朝气蓬勃精神抖擞不知天高地厚的日子一下回闪出来,我看到了之前那个嚣张放肆的自己,那个充满了旺盛的三叶草和花香的初夏,漫长的梧桐道,细碎的阳光,初夏炎热的风在铺满教学楼侧墙的爬墙虎上吹出波浪,当时的T-shirt,仔裤,登山鞋和棒球帽,那个心里充满希望和思念,到处作怪的自己。

4.2011的秋天,Amherst没有往常的红叶,却有一场暴雪送来一段猛烈又迅速的恋情。现在回头看,美好、青涩,而我还没能想明白它是怎么回事。失败的恋情让我对感情和对自己的看法又产生了怀疑和不确定。冬天是个适合沉思的季节,(话说我这个人还真实喜欢沉思啊迥,大概是系统里有大迟延环节,所以面对各种情况的反应都是一样——发呆),还好这次从怀疑自己-思考人生-到给自己多添一圈年轮的过程没有用多久。我更清楚自己想变成什么样的人(Bao同学是很励志的:P),想要什么样的感情,以及爱情到底是怎么回事(爱上另外一个人这件事本身就是一个恩赐,relationship给我最大的帮助是让我成长成熟,成为更完整的人)。

5.感激的是,我仍然相信真感情,仍然要坚持做一个真性情的人并因此自豪,我依然抗拒游戏规则但开始追求智慧。我第一次认真面对“人生的意义”这个命题,我开始理解“勇气”、“真实”,并想要追求“责任”和“安全感”。

6.夏天看了《玛丽与马克思》,看完了之后在曲婉婷歌声里,哭的稀里哗啦。“每个人的道路不同,有的人生下来道路就是铺好了瓷砖的,有的人的道路迂回坎坷,就像你我的一样。但无论怎样,我希望我们的路可以在某个时刻相遇,这时我们就可以停下来,分享一罐炼乳”。“大多数人通常的时候都是错的”。(这句还应该加上Bao同学的评论:但是我们始终都要生活在社会里。)

7.后半年看了一个故事,开了眼界,对强大有了新层次的认识。在白纸上列了50多条“我活着是为了什么”,这个list还要继续,但不是现在。我对自己的期望和不满在纸上变得清晰,现在的主要矛盾和根本任务(什马?这个用词。。。)是学习本领,增加自己的技能和智慧,增加力量,为了探索人生的深度和广度这个宏大的目标。

8.看了《秒速5厘米》。也许每个人都会对这部电影有不同的解读,角度太多,每个人都只会看到能映射出自己的那一片。我喜欢第二部分,绚烂的天空,无尽的宇宙,期待和迷恋,空阔的探寻,夏天和成长。

9.客观上来说,人生是一个悲剧。因为人在物理世界里是如此藐小,人生如此短暂,漫无尽头的时间,无边际的空间。然而人心里有更广阔的世界,更不可测又更绚丽,而且这个世界里人可以用不遵循物理规律的速度和方式成长。每个人都有一个小宇宙,都是精神世界的一个样本,正是这样我才想要更加了解人心,也想要发展自己的小宇宙,让她很广大,很炫丽。这个想法可能太唯心又太自我,而我一直是一个偏感性和自恋的人。以上我在从Boston回安村的bus上想到的。

10.“如果我,没有走过这一遍,生命中,还有多少苦和甜美”,2011,有笑有泪,有阳光有黑暗,经历了,成长了,我会怀念它,带着感激。

这些算是给自己的一个备忘录,也算是对2011的一个交代。路还很长,没完没了。

Random little notes on NS-3 TCP

1. Packet reordering is handled in TcpRxBuffer
2. ForwardUp () is an important CallBack function <- what is a callback, need to figure out the CallBack system in ns-3.
3. what does the NS_ASSERT () function do?
4. To terminate a connection, there are two ways, one being the DoClose () function and the other the m_closeOnEmpty assertion.
5. TCP Hierarchy: App level (calls) -> Socket -> TcpSocket (attributes Set/Get interfaces) -> TcpSocketBase (handling TCP State-Transition) -> all sorts of congestion-control variants
TcpSocketFactory & SocketFactory: CreatSocket

一个噩梦

今天早上观察了一下昨晚的睡眠曲线,遗憾的发现后半夜都没有进入深度睡眠。到小区的gym跑完步走回家里的时候,一闪念,想起来后半夜我到底是在被什么困扰。一个很真实,很痛苦的梦魇啊,天哪,想起来的时候还可以感受到梦里我自己内心的煎熬,OMG,我可不可以做梦不要做的这么真?
是这样的,我梦见我身处在一个犯罪团伙里,我和一小群人在一起,一个尖瘦的长像凶狠的男人是我们的头头,我处在很大的压力下,如果我不听从他去杀人,表示我服从于他们,那我就相当于这个团伙的敌人,会被他首先处决掉。我心里非常的害怕,又纠结,为自己即将对无辜的人犯下罪行而愧疚,又觉得绝望,因为一旦服从于他们,一旦开始这种罪行我就再也没法离开这里。最终,我带着这种感觉,和对即将发生的暴力的害怕,合同这伙人一起冲进了一个餐厅,举起剑(?!)插入迎面遇到的人的身体。。。
回想起来这个梦之后,我不禁对自己进行了分析:
1.平日里跟别人聊天的时候,我会说起群体非理性行为,以及人对体制的服从,并且我认为只有格兰芬多的精神才能够对抗这种人性中普遍的弱点,即浪漫的英雄主义、勇气和正义感。但是梦里来自组织的压力如此真实,我梦里的行为,也就是我最无意识的本能的反应,是服从于集体的暴力,即使内心的良知让我内疚和绝望;生存的本能战胜了道德。早上我意识到这一点的时候,正从披着大衣从gym出来,走在清晨微凉的湿润的空气里,我感到对自己有点失望,虽然这只是个梦。
梦里我面对的是对两种局面的选择,一是不服从尖瘦的男人,然后面对自己将遭受的灾难;一个是服从,然后眼睁睁看着自己去犯下罪行。我选择了后者,道德感服从于恐惧。也许在梦里,人只能做出最本能的反应,但是这个梦反映了我内心在面对邪恶时的软弱。我希望可以拥有强大的内心,即使直面失败和罪恶。我希望我可以在面对邪恶的时候,强悍的fight back,对生活的磨难以血还血以牙还牙,我希望我可以始终保持自己的内心的完整,即使要面对悲惨的结局,也不妥协和服从。
2.为什么我会做这么远离生活而又栩栩如生的梦?我想我内心深处其实在担心未来某一天,我会把事情搞砸,使自己身处毫无选择的绝望的境地。我的生活一直以来,都还挺顺利的(感谢所有神灵的眷顾),但现在我开始踌躇不前,彷徨不定,虽想百尺竿头更进一步,却不能有足够的信心去争取更多的成功。I‘m kind of too worried.恐惧来自忧虑,忧虑来自不自信(或者其实来自我爸对我的悲观主义的教育,but there is an expiry date on blaming your parents for your life problems)。这种不自信的根本,在于我一直认为自己的CS学术基础太差,一直忧虑却一直懒惰一直没能有效改善这种状况。我会认为专业技能是用来吃饭的,是以后所有生活的基础,(虽然可能还没有重要的这个程度,但是也差不多),然而我却没有信心把它做好。对失败的恐惧和对自己的不自信,一直埋藏在我心里,时不时出来折磨我一下,哎,但是其实最重要的是,要在清醒的时候面对和解决这个问题。

好吧,我要想想办法。变大变强。

P.S.其实昨天看到了帝的微博,我意识到其实学习也不是一件孤单的事,因为实验室有很多和我处在一样状况的同时,系里也有这么多同学,学习和工作上的困难也没有想象中那么难,和身边的人请教、交流,互补有无,it‘s kind of fun.

P.S.S 我应该看看Willpower这本书

ns2.34 compiling errors when installed on Ubuntu 11.04

Today when I tried to install ns-allinone-2.34 on Ubuntu 11.04 and ran ‘./install’, an ERROR occurs. It goes,
> g++ -c -g -O2 -Wall …tools/ranvar.o tools/ranvar.cc
> tools/ranvar.cc: In member function ‘virtual double GammaRandomVariable::value()’:
> tools/ranvar.cc:219:70: error: cannot call constructor ‘GammaRandomVariable::GammaRandomVariable’ directly
> tools/ranvar.cc:219:70: error: for a function-style cast, remove the redundant ‘::GammaRandomVariable’
> make[1]: *** [tools/ranvar.o] Error 1
Then after some googling, I found http://erl1.wordpress.com/2011/05/12/installing-ns-2-34-on-ubuntu-11-04/.
The solution it provides solved my problem and NS2.34 could run correctly on my machine now.
I’d like to paste the piece of blog here for reference:
———————————————————————————————
Install the development files for X Windows plus the g++ compiler:
sudo apt-get install xorg-dev g++ xgraph

Fix the error in the linking of otcl by editing line 6304 of otcl-1.13/configure so that it reads
SHLIB_LD=”gcc -shared”
instead of
SHLIB_LD=”ld -shared”

Then, edit the file ns-2.34/tools/ranvar.cc and change the line 219 from
return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);
to
return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

Next, change the lines 183 and 185 in file ns-2.34/mobile/nakagami.cc to read
resultPower = ErlangRandomVariable(Pr/m, int_m).value();
and
resultPower = GammaRandomVariable(m, Pr/m).value();

Now the code will compile if you run ./install. However, you may not be able to run the ns executable. If you get an error stating that there has been a buffer overflow *** buffer overflow detected ***: ./ns terminated including a backtrace, ending with the word , during the execution, you need to do the following to make it work:

Install gcc-4.4 and g++-4.4 including dependencies from the Synaptic Package Manager. You can run Synaptic Package Manager either through the Applications button (the magnifying glass with a + inside), or run it from the command line:
$ sudo synaptic

Change the line 270 in tcl8.4.18/unix/Makefile.in that reads
CC = @CC@
so it appends the version parameter for version 4.4:
CC = @CC@ -V 4.4
Make sure it is a capital V.

Finally, run ./install from the ns-allinone-2.34 top folder again.
———————————————————————————————–
My thanks to Erlend’s Lookout Post.

漫长夏日又将到来

And so it is,

just as you told me,

life goes easy on me,

most of the time…

上午交了CS677的final,然后心情平静而轻松。

一个学期就这样结束了,回家的旅程就在眼前,然后将会是3个月的夏日时光,感觉很好。

还是会时常想起,12.30那天刚刚回到家里,坐在桌前,在室友的安慰中还是控制不住的哭起来。 现在虽然不会泣不成声,但偶尔回想起来,还是胸中闷痛,鼻腔内酸度急剧下降。

前两天,我又仔细的思考了这件事,从现在的情况看来,如果终能如我所愿,则必是靠着上天无限眷顾,用尽我所有的运气了。世殊事异,流光飞度,纵使我念念不忘,恐还是于事无补。诚是得之我幸,失之我命。我将倾尽全力做我能做的,边将余下的交给老天吧。也许最终我也不过是求不得,但终究在年轻时做了一件最浪漫的事,回忆时也不会后悔了。

我一辈子走过许多地方的路,行过许多地方的桥,看过许多次数的云,喝过许多种类的酒,却只爱过一个正当最好年龄的人。沈从文这句话实在是说出了所有人所有青春情怀之所在。

NS 2.3X nam problem

NS2, as a open source software, is poorly documented. Many adjustments and system modifications are needed for its installation.

Here’s a problem I’ve been struggling recently :P

When I command

> nam

It says

/usr/local/beta/lib/tk8.5/tk.tcl: no event type or button # or keysym
no event type or button # or keysym
while executing
“bind Listbox <MouseWheel> {
%W yview scroll [expr {- (%D / 120) * 4}] units
}”
invoked from within
“if {[tk windowingsystem] eq “aqua”} {
bind Listbox <MouseWheel> {
%W yview scroll [expr {- (%D)}] units
}

After some googling, I find this solution at http://bagalamukhi.blogspot.com/2010/06/ns231-nam-problem-code-omitted-because.html, and finally solved the problem. Now nam is working well.

Solution: 

  1. Download  ”tk-8.4-lastevent.patch” patch file from http://bugs.gentoo.org/show_bug.cgi?id=225999
  2. Save the file in tk8.4.x floder (remember that there could be tk8.4.14 or tk8.4.18)
  3. Patch the file with this command

patch -p1 < ./tk-8.4-lastevent.patch

4.  install again (with ./install command)

And here’s the detail of the .patch file:

// tk-8.4-lastevent.patch

--- generic/tk.h.orig	2008-02-06 16:31:40.000000000 +0100
+++ generic/tk.h	2008-07-24 08:21:46.000000000 +0200
@@ -635,17 +635,15 @@
  *
  *---------------------------------------------------------------------------
  */
-#define VirtualEvent	    (LASTEvent)
-#define ActivateNotify	    (LASTEvent + 1)
-#define DeactivateNotify    (LASTEvent + 2)
-#define MouseWheelEvent     (LASTEvent + 3)
-#define TK_LASTEVENT	    (LASTEvent + 4)
+#define VirtualEvent	    (MappingNotify + 1)
+#define ActivateNotify	    (MappingNotify + 2)
+#define DeactivateNotify    (MappingNotify + 3)
+#define MouseWheelEvent     (MappingNotify + 4)
+#define TK_LASTEVENT	    (MappingNotify + 5)

 #define MouseWheelMask	    (1L << 28)
-
 #define ActivateMask	    (1L << 29)
 #define VirtualEventMask    (1L << 30)
-#define TK_LASTEVENT	    (LASTEvent + 4)

 /*
Follow

Get every new post delivered to your Inbox.