杭州乌镇行

2010-6-5 评论(12) 分类:生活 Tags:

一个多月前就想要去旅游,但对咱这样的穷学生来说,旅游的具体时间还得由机票价格定,结果便宜的机票只买得到5月底的,于是,5月28号,出发了。

飞机

第一次坐飞机,提前了差不多两个小时到机场,挺兴奋,飞机上升的感觉挺爽,很喜欢起飞和降落阶段从飞机上看下去的景象,建筑密密麻麻,车子像玩具一样跑,很可爱,哈。在飞机上看蓝天也很不错,有时候很漂亮,云一层层的。我们坐的是东方航空,飞机比想象中要小,肥肥的,哈。座位比想象中拥挤,车上提供饮料和点心/饭,都挺不错~~

飞机

西湖

第一天晚上到达时就直接步行去了西湖旁,看了会音乐喷泉,其实,我挺喜欢看喷泉的,不知道是不是那晚刚下完雨天气潮湿的原因,喷上去的水落下来时像雾一样,很漂亮,柔和的感觉。

音乐喷泉

第二天环湖暴走了差不多一圈,从差不多音乐喷泉那里,沿着断桥-苏堤绕回来一直走过去河坊街。似乎跑步和走路用的脚力不一样,我跑那么多次步也不见走路的脚力增强,还是容易脚酸~走到最后到达河坊街时脚酸到已经物极必反,不酸了~一路走过去,西湖十景虽然大部分都经过了,但并没有特别去留意,总感觉游得太急了。那天阴天有雾,景色挺不错的,朦胧朦胧的~

第三天下午又再去了一次西湖,这次是坐船过去三潭印月,轻松缓慢地游玩。而这一天天气又跟第二天不一样,大晴天,可以看到整个西湖了,很喜欢坐船飘荡在湖上的感觉,下次如果再去西湖应该要租船飘荡上一个小时。我忘了游三潭印月时那些景点的名堂了,当时感觉挺不错,悠闲悠闲地游晃。

可惜在西湖拍的照片都没了,实际上西湖没有给我留下很深的印象,我们游西湖的这两天都是周末,人多也为西湖减色不少。我觉得要是住在杭州,有事没事来西湖慢悠悠地晃晃是挺爽的,慢慢感受西湖美景。而作为游客匆匆游过,感觉没那么好~

西湖

(更多…)

第二次腾讯实习生应聘历程

2010-6-3 评论(15) 分类:生活 Tags:

开始

第二次去腾讯应聘实习生,这次腾讯招人明显跟去年不一样,流程规范了,招的人也多了。

首先筛选简历进入笔试,似乎他们没怎么筛选,应该报名的都去笔试了,那名单那么长,没有细数,应该也有两三千人吧。

笔试

这次笔试比较爽,不是像去年那样所有报开发的都填同一份试卷考计算机几门基础课程和算法,而是各个方向分开了。就开发类的有JAVA/PHP/JS/FLASH,一份试卷四个方向都有,自己挑一个做。我当然选JS。他这试题出得很刁钻,一开始看吃了一惊,感觉很难,考得这么细这么冷门,后来觉得还好。细到什么程度呢?有这一题原题

还真想知道我那笔试试卷能得多少分,不过似乎他们没评分,没见着。早上笔试完当天晚上就通知一面,这么多人的试卷这么少的时间当然不会怎么去评分了,估计只是大概浏览下。

三次面试

技术类一面有700来人。不知道腾讯来了多少员工,面试700人,汗,真够花功夫的~去年估计也就一两百人吧。我本来还以为还是像去年那样在华师附近的腾讯办事处面试,结果估计因为人多,专门在大学城华工中心酒店包了N个房间进行面试。因为这个我一个星期内跑了四次大学城,真累啊~

一面的面试官给人感觉不错,很有礼貌,会对每个人说“不好意思让你久等了”。面试过程大都在问我推特中文圈的事,要我写出页面自动刷新新推的整个过程,问这个项目的难点在哪里,我觉得还真没啥特别难的难点,就说了下排行榜数据抓取和OAUTH。还有问我后面写的一列作品中哪个技术含量最高。就说陆战军旗了。其他的忘了问啥~整个面试过程感觉挺快。

等了两天才等到二面的名单,还剩两百来人,分了三天,我第二天才面试。二面面试官憨厚和蔼,感觉相当好,面试内容好像并没有考我什么,还是在说做过的项目,推特中文圈和陆战军旗,十来分钟就结束了,这也是这个面试官的习惯吧,每个人都是只面十来分钟。

三面面试官是个女的,还第一次碰到女的面试,还是问了挺多推特中文圈的,还有大学期间是怎么过的,有什么收获,家里情况怎样,有没有代沟什么的。问得挺严肃,面试官看起来很累,可能是因为当时是下午4点多,之前面过很多人了吧。答得不怎么好,自我感觉一般。

结果

23号面完HR,等了8天,直到31号我旅游了三天才收到被录取的短信通知,而具体信息还要继续等。今天通知6月10号之前通知完成实习签约手续,挺慢的,等到花儿都谢了~之前在等待各次面试和录取通知时很多时候很不蛋定,有点坐立不安,但最后收到录取通知的短信时并没有与之对应的兴奋和激动,可能等的时间太长了消磨了一些激情吧~还是够高兴的~

这次笔试和三次面试全在大学城进行,结果一个星期跑了四次大学城,累死,这次有小木舟和大头全程赞助陪伴,感谢两位兄弟的支持,最后大头也进了,可惜小木舟没有,不然是相当圆满~

运气

应聘面试这东西,除了技术底子,运气成分还是占挺高的,估计占到3成。另外两个同学二面的时候运气不佳,其中一个碰到个面试方法很怪异的人,问了两道IQ题,比较难的那种,同学答不出来。另一个碰到面试官问你能实习多久,同学说暑假两个月吧,面试官说我们这里规定是三个月的,只有两个月不行,同学说可以跟学校说下看能不能多留点时间,面试那人说开学了有课程就要上课。于是就杯具掉了。还有别的面试官喜欢问算法,还好我没碰到喜欢问算法的~算法这东西我平时慢慢研究下还可以,当面讲可能有点悬,这次我运气算不错了。

其他

对于实习时间这点,似乎很多面试官都会问,很奇怪,实习时间你们安排就是了,没特殊原因肯定你们要求实习多久就实习多久啊,进腾讯也不容易,到时也不会说急着想走人吧。让人感觉腾讯对吸引人才方面没信心。

另外,跟去年一样,无论哪一面,被刷的人是不会收到通知的,笔试和一面通过群发短信通知大家上网站查看名单,但只发给了通过的人,那些没通过的又没有熟人的只能干巴巴等,笔试和一面还好,可以上网站看名单,二面以后就没名单了,只能干等,那焦急的心理我有体会,二面以后剩下的人不多了,发个短信说一下“对不起你没过这次面试”只是举手之劳,却因为对自己没必要而不去做。我知道别的公司一般也都这样,但这一举手之劳会让人对这个公司留有好印象,还能体现公司为用户着想的理念。

浪费粮食的罪恶

2010-5-5 评论(4) 分类:随记 Tags:

在所有的浪费中,似乎人们对浪费食物看得比较重,食堂里贴着“节约是传统美德”,有些人会一定把所有食物吃干净,还会鄙视(或多或少)浪费食物的人。

“锄禾日当午”“粒粒皆辛苦”这是古代的情况,古代民以食为天,吃饭是生活中最大的问题,也是最大的开支,所以人们对食物看得比其他物品更重,自然浪费食物会比浪费其他物品更遭人谴责。

但现代不一样了,农业技术发达,贸易发达,耕种的成本降得很低,人们对粮食的支出在所有开支中所占比例越来越小,浪费食物也没有像古代那样比浪费其他东西更罪恶了,所有东西的价值都显示在价格上。把浪费粮食跟道德绑在一起也是不合适的,粮食跟其他商品相比并没有多少特别之处,都是投入人力物力自然资源转化而成的,而且有些时候,浪费粮食会比浪费其他同等价格的物品所造成的危害更小。

举个例子,浪费同等价格的食物和汽油,哪个更不好?可能很多人会回答浪费食物比较罪恶,看着那么多可以吃的东西倒掉让人感觉不妥,下面分析一下。

浪费食物的例子通常是,食物不好吃,或者你已经就十成饱了,桌上还剩下1半的食物。那么不浪费粮食的结果是,自己硬塞下不好吃的食物,或者硬撑破肚子。前者还好,只是对精神上造成些不快,后者可能还会对身体造成伤害。那么浪费食物的结果呢,食物不一定会直接倒垃圾桶,可能会回收给猪吃,最差的也会在大自然里分解循环。

看看浪费汽油的例子,很难确定怎样才算浪费,姑且举个不太算浪费的例子,这样对粮食方有利。假设你要去上班,并不很赶,自己有车,可以选择坐公车还是自己开车过去。坐公车的结果是,路途可能没有开车那么舒适,增加自己一些不快。自己开车过去的结果是,增加自己路途的舒适(但其实也有可能并不舒适),但浪费了汽油。石油不是可再生可循环的资源,并且燃烧石油会释放二氧化碳,以及少量其他不太好的气体。于是这次浪费汽油的举动同时造成了环境的危害,石油资源的减少。

按上面的分析看起来,显然浪费同等价格的食物和汽油,浪费汽油更罪恶。

当然我不是在提倡浪费粮食,只是说不要把浪费粮食看得太重了,浪费其他东西造成的危害可能更大。

itouch使用感受&挑刺

2010-5-4 评论(4) 分类:互联网 Tags:

买了个ipod touch 2体验下,跟之前想象中一样,用起来确实是很爽,爽在四个方面,一是用手指操纵灵敏快捷,二是交互细节设计好,三是速度快动画流畅,四是应用程序多。四者缺一不可,缺了一就跟mac一样,我试用过mac,一点都不觉得爽。缺了二三四就跟其他触屏手机一样,没什么特别了。

苹果产品设计很注重细节,确实很多地方都做得很好,但事物没有完美,产品更没有,还是挑得出刺的。现在说下几点感觉做得不太好的地方。

1.itouch背部极容易刮花,另外也是个指纹收集器。

2.输入方面,输入英文还是挺快的,但里面的中文输入法简直是噩梦,一分钟能输入20个字就不错了。

3.自带的闹钟不会自动调节音量。一般使用touch没人会把声音开到最大吧?我一般是关到静音的。作为闹钟声音应该是越大声越好吧?而touch闹钟不会自动帮你调音量,你一不小心调完闹钟忘记调高音量它就等于失效了。另外还不能使用音乐库里的音乐作为闹钟声音。

4.重力感应翻转屏幕没有开关。这在正常姿势下使用touch没问题,要是躺在床上用就麻烦了,屏幕总是向自己不愿意的方向翻转。为什么不加个开关?

5.safari浏览网页不方便,底部那栏东西没法隐藏,切换页面效果看似很好,但很不方便,要换看一个页面多了两步以上的动作。为什么不像传统那样标签栏放上面,去掉底部那栏按钮,用手势控制网页前进后退?

6.视频播放器,拖动条,必须按住那个控制点拖动才能倒带,无法像电脑上的播放器那样点横条上任意一点就跳转到那个位置。操作困难,也没有快进倒退上五秒下五秒的功能。

7.为什么同步图片无法选择压不压缩?一律压缩到只够屏幕那么大,一放大就模糊,那你放大缩小图片的功能有何用?苹果的传统:霸道

到目前为止有意见的就这几点了。

再说些题外话,我很喜欢iphone/itouch,但我不喜欢苹果公司,其做事方式的霸道让人不爽,像之前几例代理生产苹果产品的公司的员工跳楼的事件,还有上次某网站编辑泄露iphone4G导致被抄家,还有乔布斯前些天发的thought in flash那篇大义凛然的文章等等,都让我对苹果公司没有好感。我非常希望其他公司做出的产品能超过苹果。

桂林阳朔行·杂记

2010-5-1 评论(5) 分类:生活 Tags:

这次旅游有挺多第一次的,第一次出省,第一次组团旅游,第一次坐夜车等等。

第二天下午进麦当劳厕所的时候,感觉很奇特,之前在一些旅游景区去过厕所,几乎都是很脏的,有的还脏到小虫子乱飞,西街里店面很大的餐馆也是,厕所都并不干净,跟麦当劳的厕所反差太大了。是否可以理解成,这是中西文化差异?

不知道那些管理大榕树竹筏的,还有西街沿路卖明信片的,还有在一些景点卖小东西的人是不是当地人,要是的话,那真是差劲,对他们印象极差,大榕树的管竹筏的态度极其恶劣,这种旅游景区,来了一次不会来第二次的,态度差你拿他没辙,只能回来向人宣传,这个地方真烂,旅游别进这里。那些沿途卖小东西的人是很烦人的,明说了不要,他们还是纠缠不清,就是要粘住你粘到你买为止。第二天下午我们在麦当劳外面休息的时候来了个卖明信片的,神经兮兮,表情诡异,把趴在上面的人一个个拍醒问要不要买明信片,还对人用手戳,靠,我怀疑真的是疯子,反正对这些人印象极差。

西街上虽然很多店面卖的东西都一样,但也不乏有特色的店,有一家好像叫“慢饮慢递”,可以在里面买明信片,写好日期,然后帮你在你指定的日期里寄出去,很简单的思路,操作也容易,很不错。

这次旅游很少买东西,回来后发现可以买的东西其实不少,只是有的我没逛到,有的觉得没用不买。要是老以实用主义的方式买礼物还真是没劲,第一次旅游是这样,以后应该就好点了~同行的同学也有不少买了东西后悔的,旅游区的东西挺诱人购买的,假货也很多,购物不能太冲动啊~

跟旅游团旅游是挺辛苦的,而且有时候他们设计的路线和安排的时间并不靠谱,有时还会让人恼火。但也是有好处,首先便宜,其次不用你动脑全给你安排好~

觉得旅游跟不同的人去是不一样的,有些人会独自背个包走各个地方,我是觉得挺没意思,良辰好景,旁边没人分享,不闷得慌吗。

我以前就发现,我们家乡风景也是挺好的,有山有海有田园,也可以算一个旅游景区的,只是开发不起来~

我对旅游并不感冒,这次旅游也没什么特别的感受,我想像这样去看一看名胜景区,并不会对自身修养造成很大影响,能造成影响的是不同的经历,长时间的积累才能形成。单纯看看风景的旅游是挺无聊的,风景不会比人重要,这次旅游最主要的是跟班上大伙玩乐的经历,山水风景是其次。

桂林阳朔行·游记

2010-5-1 评论(4) 分类:生活 Tags:

启程

班里要组织毕业旅游,原因是怕大四大家都没时间,凑不到一起可以去旅游,大三就毕业旅游感觉挺奇怪,一点也没有毕业的感觉,但跟班里的人去旅游下也好,就去了。这是我第一次出省~

本来是三天的,后来压缩到两天,来回坐两个夜车。我本来还以为是坐火车,后来以为是卧铺的大巴,结果是普通的只有座位的小巴。

4月27日晚上9点出发,预计第二天早上6点到达,那天很不幸,吃错了东西肚子一直不好,到了傍晚还头晕,这样的状态坐车,结果很糟糕。刚开始坐车时还好,能说能笑的,坐了一个多小时候,胃就开始翻滚了,相当难受,吐了三次,而且我吐得还相当大声,算是车上晕车晕得最厉害的了,哎,给班里的人留下了超级晕车的印象,还好1点钟停车休息后,在车上半醒半睡地直接到达目的地了。

漓江

早上差不多6点到达目的地,天还没全亮,在一家小店吃桂林米粉当早餐,味道还不错,也没觉得啥特别,我好像没吃过桂林米粉~吃完就去游漓江,那里景色确实不错,山清水秀,我们坐竹筏游览漓江,在一个小岛上停,但过去的时候比较冷,胃也不太舒服,不能很好的感受美景。到了小岛在岛上玩了一会扔石头,真原始啊,都在比跳石头。在那个岛上看一座山的纹理,听说可以看出N匹马,我只看出一匹。坐竹筏回去的时候比较爽,太阳跑得高一点了,倒影在水上,也没那么冷了,感觉很清爽舒服。整个桂林行我就觉得这里风景最好。

20100428605 20100428612

(更多…)

JS模仿AS3事件机制

2010-4-18 评论(3) 分类:技术文章 Tags:

练习下自定义事件的实现,想让JS可以用AS3的语法使用自定义事件,实现很简单,因为没考虑复杂的情况吧。试过后发现有些地方还是模仿不了,最主要不一样的地方是:

1.侦听函数没法自动绑定那个函数所在的object,必须手动把object传进去,像这样:dispatcher.addEventListener(SampleDispatcher.ACTION, e.action, e);
最后还要传“e”这个obj进去,否则函数action里的this不指向e

2.使用的时候继承十分麻烦,还得小心翼翼,看demo就知道了。

(更多…)

YUI3的沙箱机制

2010-4-10 评论(2) 分类:技术文章 Tags:

YUI2

在YUI2.x里,每一个模块功能的引入都会直接添加在全局的YAHOO里,例如dom.js里:

var Y = YAHOO.util;
Y.Dom = {...}

这样在整个页面范围内,YAHOO.util里就多了一个功能Dom。

YUI3-add()

在YUI3里,每一个模块引入时并没有把功能直接添加到全局的YUI里,看看YUI3里的dom.js:

YUI.add('dom-base', function(Y) {
    //在这里添加dom方法
    Y.DOM = {
        ...
    }
...
}, '3.0.0' );

再看看yui.js里add的源码:

add: function(name, fn, version, details) {

    YUI.Env.mods[name] = {
        name: name,
        fn: fn,
        version: version,
        details: details || {}
    };

    return this; // chain support
}

所以YUI3里引入每个模块时只是把这个模块的内容储存在YUI.Evn.mods里。

YUI3-use()

需要使用某个模块时,在创建YUI实例以后,用use取出来执行模块里的程序,为这个YUI实例添加相应的方法:

YUI().use('dom-base', function(Y) {
    //这里可以用到模块dom-base里对YUI添加的方法Y.DOM
    alert(Y.DOM) //[object object]
})

而在同一个页面里,YUI实例里如果没有指明use(‘dom-base’),就没有Y.DOM这个方法

YUI().use('', function(Y) {
    alert(Y.DOM) //undefined
})

沙箱

这里YUI().use(”,function(Y){…})就是一个安全沙箱,可以确保这里面的Y是纯天然无污染的,Y实例里有什么功能完全取决于use里传进的模块名称,function(Y){}里面的程序跟外界是隔离的,在里面创建的变量(除了全局变量)以及对YUI的添加修改都不会影响到同个页面上其他人写的程序。

但是这个纯天然无污染是有点代价的,就是每次都要新建一个YUI实例,消耗内存,但如果不怕Y被污染,可以不每次都创建实例:

var Y = YUI();
Y.use('dom-base', function(Y) {
    //可以同时使用dom-base和oop模块里添加的方法
});
Y.use('oop', function(Y) {
    //可以同时使用dom-base和oop模块里添加的方法
});

add()和use()配合一些参数(例如require)和YUI Loader就成了YUI3模块化编程的基础。

最简化的YUI沙箱

去除了YUI Loader以及require等参数,参考自这里
(更多…)

陆战军旗

2010-4-7 评论(7) 分类:作品 Tags:

army

AI版(AI很笨):http://cnbang.net/army

前言

小时候玩的棋类游戏中,军旗算是玩得比较多的,接下来就是跳棋了。不知有多少年没碰过军旗,上次偶然在姐家下了一盘,挺怀念的,网上查了一下,四国军棋是挺多,但我们的玩法是不断翻开盖住的棋子的,据说这叫翻翻棋,边锋游戏有,下载后发现不咋地,应该是十几年前做的了,我想自己做一个网页版的。奇怪怎么这么久还没有大型的网页版的棋牌游戏,总比QQ游戏方便很多吧。

前期

前期得先把棋盘画好,定好棋子在上面的走动规则。话说这棋盘画得我自己挺满意的,呵,高仿真啊,我是把棋盘拍照下来照着画的,不过缺点是高度太大了,对于小电脑一个屏幕可能还看不到整个棋盘。棋子就不咋地,很一般,不过想换肤很容易。

程序的实现方面,这次我还是用了jquery,本来想用YUI练习下的,但发现YUI本来就不适合用来做这样的游戏,只适合用于分模块构建中大型网站,另外它没有在dom里保存data的功能,所以还是用回jquery。
(更多…)

web workers各浏览器下参数传递的差异

2010-4-5 评论(0) 分类:技术文章 Tags:

做军旗游戏时想用web workers消除计算时界面的停滞,实现了后发现在firefox下正常,但在chrome/safari下却不能用,网上关于web workers的资料太少了,也可能是因为我没找到,结果就一直debug了半天,才找出原因所在,原因就是:chrome/safari下,web worker传递的参数全都会被转换成字符串。

chrome/safari下,只能用字符串通信,无法传递其他数据,无论是数组,object,布尔值,数值,全都会被转成字符串,而在firefox下则支持所有数据类型的传递。

看这段示例代码,以下测试在firefox3.5 safari4.0.5 chrome4.1下进行:

HTML:

<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML4.0 Transitional//EN">
<html>
<head>
	<title>Test threads fibonacci</title>
</head>
<body>
    <script type="text/javascript">
		var worker = new Worker("testWorker.js");
		worker.onmessage = function (event) {
			alert("type:" + typeof event.data);
			alert(event.data[1]);
		};
		worker.postMessage([2,3]);
    </script>
</body>
</html>

testWorker.js:

onmessage = function (event) {
    postMessage(event.data.name);
};

safari/chrome显示:type:string “,”(字符串”2,3″第二个字符)
firefox显示:type:object 3(数组第二个元素)

可以把worker.postMessage([2,3]);的参数改成其他类型试试,safari/chrome显示出来的type都是string。

写出来好简单,发现这个却花了我挺多时间,firefox对google创造出来的东西的支持比chrome还好,真是奇怪~
(更多…)