2009/5

蹦极!蹦极!

我苦寻蹦极已好久,今天终于在十渡如愿以偿了~!

十渡这个地方风景挺不错的,好玩的也挺多,感觉好像有点儿开发过头了。其它的就不说了,直接说说我这第一次蹦极的体会吧。

排了接近两个小时的队才轮到我,我上去以后其实一点儿也没当回事儿。以前登山的时候还感觉有点儿“恐高”,这次蹦极站在那居然一点儿都没有,可能这高度太低了。

我是被后面的管理人员半推下去的,从我下面的同事给我拍的录像来看,好像是被自杀(-_-|)。脚刚离开的那一瞬间感觉很不适应,因为毕竟双脚习惯了重力,突然一下子失去重力,身体适应不过来,本能地第一反应是恐惧,感觉自己要完蛋了,特别想喊出来。快坠落到底时突然就意识过来这只是个游戏,说服大脑没有危险,身体终于放松下来。下面就是弹上弹下,把我的眼晃得天旋地转,等我的视线调整好后基本上就停了。然后就被慢慢放下去到下面的滑艇上,整个蹦极结束,相当地快。

不知道是不是因为第一次的缘故,突然失去重力的“恐惧感”竟然不能克服,我觉得以后多跳几次应该可以克服这个,然后就可以在第一次下落的过程中做一些动作了。:-) 所以以后有机会还会去试试,太刺激了!!

P.S. 蹦完我就马上和同事朋友们回合,他们都已经吃完了,只给我留的烤羊肉串和鱿鱼,我狼吞虎咽地全吃完了!然后我们就去划竹筏去了,我发现划这个东西真是个体力活!不信您来试试!

P.P.S. 我们回去时一路狂奔向火车站,差一分钟就晚了火车!比蹦极还刺激。。。

===========

注:我蹦极的那段视频是用数码相机拍的,质量肯定不咋的,凑合着看吧。压缩包解压密码是我手机号的后四位,视频格式是ogg,5.5M。不知道我手机号的可以给我发邮件问密码,如果你想看的话,有豆瓣的给我发豆油也成!^_^

视频下载地址:wangcong.org/down/my_bungee_jumping.rar

大量图片:http://www.douban.com/photos/album/16293868/

夭折的一个补丁

这个补丁其实本来是我分配到的一个任务,不过在我们内部讨论时被拒了,所以放出来也无妨。再说了,在我们内部提交补丁的第一原则是必须首先在LKML上得到认可,没什么秘密。:-)

这个任务其实很简单,就是要把socket的一些选项给通过/proc导出,这些选项就是通过setsockopt(2)设置的那些。

初看这个任务感觉很简单,无怪乎就是一个/proc下的interface,然后就是通过某种方式把数据传输过来。但仔细一看其实不简单,因为setsockopt(2)并没有把这些数据集中存储起来,而是分散地存放到各个角落,然后通过switch/case的方式逐个判断。所以这里问题就来了,在某种程度上,其实我们要的就是一种“迭代”,而无奈的是,这些数据太过离散而不能迭代!这就是难点所在!

怎么解决呢?我首先想到的是用hash,把这些数据通过链表连起来,用其level和optname作关键字。后来想想其实这样也很麻烦,而且越往下想越麻烦。。。这时我就开始反思是不是该往简单里想想了?我盯住那switch/case,发现它既然能阻止我“迭代”,那我也能用它来“迭代”!对,我的主意就是用fall through!于是下面这个技巧就出来乐~~!

[c]

define BREAK(OPT, val)

   if (optname != SO_ALL)  
           break;          
   len += scnprintf(buf+len, *(int *)optlen - len, "%dt%dt%ldt%dn", 
           level, OPT, (long)(val), (int)sizeof(val))

define STOP() if (optname == SO_ALL) {

                   *(int *)optlen = len; 
                   return 0;       
           }

[/c]

其余的就很简单了,尤其是/proc的函数接口,感觉那块儿代码算是很整洁的,相当值得一读。

当然了,正如开头所说,现实是很残酷的,这个补丁被拒绝了,因为大牛David Miller不喜欢,他说这个是Solaris上有的东西,这并不代表Linux就一定要有,如果真的需要这个功能,我们还有systemtap,而且程序本身有义务自己打印socket的设置选项,如果调试的话。

如果你要有兴趣的话可以试试我这个补丁,但真要用的话还得自己完善一下,尤其是输出格式。:-)

湿一首——《越狱》剧情简介

盼星星,盼月亮,《越狱》总算是出完鸟~~~

为表纪念,小生聊作湿一首,献丑献丑~!

奇异家庭兄弟从小相依为命
哥哥被陷入狱弟弟舍身相救
竟遭跨国追捕弟弟再次入狱
红颜知己相伴为爱奔走相救
为救弟弟哥哥深入龙潭虎穴
恨难忿誓死与公司战斗到底
兄弟手足情深纵母子情难挡
有志者事竟成终获自由之身

觅食@初夏夜

自从上了班之后,中午饭算是没什么希望了,基本上就紧密围绕在融科周围了,翻过来调过去也就那么几样了,所以我还是把更多的希望寄托在晚饭上。:) 为了避免晚饭重蹈午饭的覆辙,我尽量地想法四处觅食,上至五道口,下至人民大学,周末时还偶尔折腾一下更远的,比如公主坟什么的。

这个周五下午,手头工作结束得早,在那里闲着没事逛豆瓣,正好看到同城上有人吆喝着去吃柳林烤鸭,我看到时就已经五点了,而他们说是6点半就要到!啥也不说了,查查地图,看看怎么坐车,立马就赶过去了!去了总共五个人,来自五个不同的行业,聊得非常开心,吃的感觉一般,除了我最喜欢的那个玉米土豆炖排骨。不过菜相当划算,我们点了六个菜,还有米饭,最后平均下来才一人20,这在北京可算是够便宜了!我觉得恐怕只有北京的豆瓣上才能在这么短的时间内凑齐这么些互不相识的人来一起吃顿饭!

因为周六那天参加户外活动,逛了一天的八大处,下午出来后就直接跟他们去“腐败”了。领队认识一个饭店的老板,所以就直奔那里吃晚饭了,吃的是炝锅鱼,感觉非常鲜嫩,就是太少了,我们五个人才要了一只三斤多的鱼肯定不够……

没有聚会的时候我就得自己琢磨着去哪吃,最近天气比较热,所以我比较喜欢找个在路边的小摊,最好再能来上一杯冰凉的扎啤,这是我在夏夜里最喜欢吃的了!

前些天,晚上出去逛的时候一直逛到人大南边的一条街,意外地发现了这儿有一条小吃街!!一直走进去,吃的非常多,到了晚上人也很多。我在一家卖凉菜的摊子上停下了,叫了一碟混合的凉菜,还有一杯扎啤,就坐在路边,看着来来往往的过路人,听着我旁边那两个操着一口正宗的河北口音民工谈话……吃得甭提有多爽了!

今天星期天,我一冲动跑到了五道口那边去找吃的,找了半天才找到传说中的东王庄小区,一进去就能看到有好多卖烧烤的,烟雾缭绕,还有几个女老外也在那吃。我找了一个靠墙的摊子坐下来吃,正好一个老奶奶也过来,年龄比较大了,说话慢吞吞的,她说今晚不做饭了,买几串羊肉串回去和米饭一起吃,老板就在那给她烤,我们就一起听她在那唠叨家常,太有趣了。

有时候,实在没的吃了就吃那四处可见的麻辣烫!在后海时吃过,那有一家的豆皮辣得很爽,到现在为止那还是我吃过的最好的一家麻辣烫!而且后海那边还便宜,到中关村这就不行了,贵不说还难吃,物美超市里面的那家麻辣烫难吃死了,中科院门口那家也不咋的!我住的这附近有个隐藏在后面的“小吃街”,里面经常有一些民工吃饭,这里也有卖麻辣烫的,也是那样,不过相对于中关村其它地方的来这算是比较好的,所以我偶尔还会到这里来吃几串麻辣烫,也许还来上一杯扎啤,听着旁边的“叔叔阿姨”们聊天,偶尔也搀和几句,这生活真是太惬意了!

吃完回去洗个澡,只穿个裤衩坐在屋里吹着窗外的风……我就喜欢这样的夏夜生活!

P.S. 接触的人多了我就逐渐学会了根据别人的长相和口音来判断对方是哪里人,有一次同学来北京玩,他把他同学的照片给我看,我第一眼就看出了他那同学肯定是湖北人!而且我发现有些广东人特别容易就能看出来。至于口音,东北人最好分辨,还有四川人,山东附近的一些方言比较近,有时候不太容易分辨,比如山东话,河南话,河北话,天津话其实都比较近的。当然了,我也有错得离谱的时候,上次见一个姑娘,我猜了半天愣是没猜出人家是四川人!唉……

第一次面试别人

最近公司还在一直招人,因为我是内核开发这边第一个,所以开发这边的面试自然就落到了我身上。

我被面试过N次,但面试别人还是大姑娘上花轿——头一次,说实话,心里真没什么底儿。以前被面试时总觉得当个面试官是多么地拽,现在真轮到我当面试官了,发现其实根本就不是这样的!

我觉得面试别人比被面试还要难!因为,首先面试的题目你不光要知道答案或者回答的标准,而且,更重要的是,你还要权衡这些题目是不是真能够考察应聘者适合这个职位与否,还要估计一下题目是不是太难了或者太简单了。这还没完,在面试过程中你要记录应聘者的回答,人家面试完了你还得通过他们的回答来对他们做出一个准确的评价!

其它方面我就不说了,重点说说面试题目的选择,到底怎样的面试题目才是合适的?这也是我在准备面试题目的时候最棘手的问题。以前我被面试时我就想过这个问题,现在我开始面试别人了,我想我有资格说说我对这个问题的看法了。

1. 不要问google到问题。

你google得到应聘者也能google得到,尤其是一些大公司的面试题更是在网上都传遍了的。

2. 不要问和职位不相关的问题。

如果人家应聘的是Web开发,你非要问人家如何检测单链表中是否有一个循环,这显然没多少实际意义,哪个做web开发的还要去拿C去写单链表程序?!你可能会说对底层和算法了解对职位有帮助,但就这么一个破单链表的问题真的能反映出一个Web开发者有问题么?如果这个理由成立的话,那和计算机相关的你最好都问一遍,都“有帮助”。:-)

3.不要问别人能猜到答案的问题。

“五年之内你有什么打算?”这个问题极其幼稚!哪个非经济学家在1年前能告诉我现在会有经济危机?计划永远赶不上变化,老老实实做好当前工作就是很好的打算!而且这个问题有固定的“标准”答案,首先你不能说“我准备3年之后自己创业”,傻子也会猜到这么说了没几个公司愿意录用你,其次,“我打算一直在xxxx这样的公司工作”基本上就是最标准的答案了。同理,“你为什么要来这里应聘?”这个问题也类似。不要让别人看了你的问题就猜到你的一些倾向,从而让他去根据这去回答,尽管你的本意可能是好的。

4. 少问考察记忆力的问题。

我承认这类问题在某种程度上确实可以反映应聘者的熟练程度,比如,我用shell很熟练,我确实能够记住$!,$?,$$标示什么意思,但我记不住就能说明我shell能力不够么?如果是,那整个man手册的内容你都可以放心大胆地去问了!!你当应聘者是man手册么?连你自己都知道遇到记不住的东西时我们可以去查手册这个东西!所以,这类问题如果非要问的话,你自己心里最好有个底:人家能回答上来说明他或许就是很熟悉,人家不能回答上来说明不了什么多大的问题!

5. 少问有“标准”答案的问题。

诚然有标准答案可以让你很容易地根据回答来判断应聘者的水平,但知道标准答案可能和应聘者的能力没太大关系,我应聘的时候有几个问题还正好是我应聘前一天看过的呢!!这除了能说明应聘者幸运之外又能说明什么?坐下来想想,问一些没有标准答案,没有固定回答的问题,比如:“你觉得C语言这门语言如何?为什么?”,“你见过最酷的C语言技巧是什么?”,应聘者何种水平,何种学习的态度,通过这两个问题的回答基本上就知道个差不多了!

面试时间宝贵,不要把时间浪费在无聊的问题上。和应聘者坐下来好好聊聊,谈谈编程的心得,工作的经验,说说自由软件的文化,黑客精神,开源社区,这些远远比问上面某些无聊的问题要好得多!

所以,诚实地来讲,很多面试基本上就是在浪费面试者和应聘者双方的时间……

祝母校生日快乐!

虽然可能太晚了,但还是想说一句,祝母校生日快乐!

哎,记得年前回西安时和我们几个毕了业的同学谈西邮,发现其实离开了西邮之后才知道西邮好。。。现在狠怀念我们西邮的小吃街的说。。。