辞职

辞职了

2009年7月19号,毕业进入腾讯工作,2014年3月20号辞职,再有四个月就满5年了,确实是一段很长的时间。

总的来讲,腾讯是一家很好的公司,各种福利待遇都很好,对员工也不错。公司大了,当然也会有很多问题,但是我想这些问题在很多公司都会存在吧。

刚工作头两年还是很开心的,同事们都很好,工作也不是很忙,环境氛围也不错。

后来到一个加班很多的部门,因为当时刚成立,以为过去发展前景很好,过去一段时间才发现不是想象中的样子,GM从外面挖了许多人进来,管理很混乱,内部勾心斗角,当时天天加班,眼睛就是那个时候出现的问题。也就是12年的时候,当时还有其他一些事情,加到一起,实在是很不开心。想想也没啥好呆的了,不如辞职自己做手游。

后来毛哥跟我说,回幻想这边吧,平时工作不忙,有大量时间搞自己的东西。想想也不错,可以先休息休息眼睛,然后准备下自己的事情。

其实幻想是个不错的项目组,平时工作不忙,奖金发的倒是不少,上班一帮同事瞎侃侃时事政治,气氛很好,挺适合养老的。

可惜,呆了一年多,什么东西都没有做出来。之前看许多人说这种两边搞的方式不可取,一直不太相信,直到自己尝试之后才发现。首先是不敢太放开做,毕竟上班工作不能太招摇了,另一个是经常性的被打断,工作上的事情也要兼顾,就会先把手头的东西放下,这种状态切换的代价是很高的,因为进入状态需要一段时间,切出再进入,又要重新开始,特别是有时候一两周之后才有时间回来搞,甚至就懒得再整了。

另一个头疼的事情就是美术了,找过许多美术,大部分都是看完demo很有兴趣,结果画几下或者画几张图,觉得麻烦就不了了之。

本来去年就想辞职出去,一方面是美术问题没有解决,另一方面还是有些犹豫。但是当时基本的想法已经确定了,就是过了年肯定会走。

过年的时候以前的一个美术主动过来说他有想法,又拉了两个美术过来,后来他们出了一版切图,感觉确实是想做东西,心里有了些底,仔细考虑了段时间,最终还是辞职出来了。

感谢毛哥,回去一年多,没怎么帮到他,还想办法帮我争取各种好处。

坦白的说,我有很多想法,如果问我真正想做什么,那肯定是很大很遥远的东西了,游戏并不是我真正想做的,但是,那些东西,想想还可以,实际做出来,困难重重,有些东西离研究阶段都很遥远,更不要说产业化了。

至少自己做了5年的游戏,对这个行业和技术相对熟悉一些,而且在当前中国的互联网行业,这也是最容易赚到钱的方式。大一点说,想改变这个世界,必须先有一笔足够的财力。小一点讲,要先想办法解决温饱问题。

一直在老东家待下去,至少可以保证一定的生活质量,有时候也想,娶个老婆买个房子,踏踏实实过一辈子算了。父亲也经常劝我,别瞎折腾。

我反正是厌倦了大公司那种天天上班的生活方式,平淡的人生,总要有一些挑战,内心的理想,总要想办法去实现。年轻的时候不追随自己的理想尝试尝试,怕将来老了会后悔,反正这年头也饿不死人。

我早就预料到前面的道路充满荆棘,困难重重,甚至看不清去处。但既然选择了远离大道坦途,就要坚持走下去。引用宋朝某大人物的话,“莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?”

Galileo

今天到make faire去看了看,还不错。

如果真正评价一下专业性质的话,只能说大部分东西看起来有些好玩,毕竟创客是个业余的行为,很多东西看一眼就能估算出来背后的工作量,基本比入门阶段走不了多远。但是也有一些专业的公司参加,比如DJI,应该是借机会宣传下他们的产品。

意外的收获是,发现了intel的Galileo。当时看到一个哥们做的监控植物生长温湿度并调节风扇和供水的东西,他的笔记本上在打出来收集的数据信息log,我惊讶的发现他是用putty直接ssh到开发板的,跟他聊了聊,了解到了Galileo的一些信息。

回来之后便仔细的找了找Galileo相关的资料,并且买了一块开发板,这里有一篇介绍Galileo的很好的文章。

仔细的看下可以发现,Galileo就是一个标准的PC系统,EFI BIOS,USB,网卡,PCI Express等PC接口和组件一应俱全。

Galileo的引脚和Arduino保持兼容,这意味着一大堆的shields可以直接拿过来使用。

Galileo提供的是一个完整的开放PC平台,包括一个x86指令集的400MHz CPU,提供256M内存,通过SD卡实现存储。

个人感觉,intel推出来Galileo是一个很正确的选择,市场定位很清晰,应该很快就会流行起来。

不同能力的硬件,可以用来做不同的事情,而不同的开发者团体,则意味着什么样的东西会被开发出来。

我上学的时候对硬件感兴趣过,可以通过几个例子对比说明下。

大一的时候有段时间玩8051,在面包板上接个LED闪几下,拼几个汉字显示,基本都是这些简单的东西。

大三的时候一个电气学院的同学,找我一起做个ARM平台的东西,用的芯片是LPC2148,当时还没有安卓,按照我们的需求,要往SD卡上记录一些数据,我就尝试移植文件系统上去,读了一大堆SD卡时序接口之类的文档,还有FAT文件系统的结构,好像成功的写入过几次数据,不过后来都以失败告终。最让人头疼的是,在调试器直接跟踪汇编代码都无法知道具体发生了什么,我记得好像有个本来是3.3v电压的地方我们电路版上直接接到了5v。反正最后没有做出来,不了了之。

毕业后有次跟他聊起这件事,觉得当时还是经验不足,甚至电路都没有完全调通。这时候他在工作中已经很娴熟的往SD卡上记录数据了。

当时主要的精力都花在了不相干的底层细节上了。

arduino就是当初8051的替代,用的avr的基本同档次cpu,简化了入门的复杂度,提供了一个很好的扩展性平台。

Galileo则解决了后来arm上的那个问题,不过现在arm也很成熟了,随便买个开发板就能烧个安卓上去,能搞的很专业。

arduino和galileo做的事情,就像前面说的用51和arm之间做的事情的区别一样,一个是简单应用,另一个则规模宏大。

至少galileo让我觉得很方便,不用担心底层和电路相关的东西,集中精力实现应用就行了,基本就是个开放的PC平台,极度程序员友好。

arduino面向的用户其实很尴尬,真正的电子工程师很少会直接使用arduino制作产品,可能偶尔会在上面实现几个原型设计,真正的产品,还是会自己绘制电路,使用最具有性价比的单片机来做出来产品。他们毕竟对各种芯片和电路很熟悉了,知道需要的是什么以及该用什么来实现。

武断的说,arduino是用来玩的,不是用来做真正应用,它的主要用户,不是电子工程师而是感兴趣的普通爱好者,有一个好玩的东西来实现他们一些想法。

而Galileo就不一样了,它提供的是一个可扩展的PC平台,程序员应该很容易喜欢上这个东西,到处都是很熟悉的工具和环境,不用考虑细节麻烦,连接上网线,就是一台linux服务器,可以直接写代码处理各种输入数据,提供了实现各种有趣系统的可能性。

当有大量的程序员开始投入的时候,各种精巧的东西就会被构造出来,毕竟电子工程师做的还是偏底层,单片机和嵌入式应用一般侧重点都在硬件,这样就导致他们不会实现太复杂的东西。

由于Galileo刚刚推出,所以近期看不到太多实现,估计它应该会火起来,两三年后可以回头验证下我的预测。

老鹰

最近这段时间大族激光的楼顶上经常有一只老鹰驻足,有时候一连好几个小时都不走,从腾讯大厦的茶水间刚好可以看到,但是距离有些远,看不太清

也许那个楼顶的角度很好,它喜欢在那里看风景或者休息。但应该没这么简单吧,经过长时间的观察,我猜测,它应该在那个楼顶下了个蛋,孵小鹰。

然后又开始瞎掰,如果小鹰孵出来之后,爬上去偷走,自己驯养,养大之后就可以擎在肩膀上,看到兔子一挥手,它就去抓回来,应该是很有趣的事。

不知道大族的楼顶有没有锁起来,大部分写字楼顶层都是封闭的,改天可以去看看,估计希望不大,而且上面边上还有一层是柱子,楼顶距地面有一百多米,且靠在边上,要是老鹰回来攻击自己的话,还是很危险的。

就是能把小鹰成功偷走,也没有空间驯养,封闭的房间并不能于其提供生存之地,必须要有自家院子的地方才行。而且哪里有兔子去抓呢,到处都是高楼大厦。

以上都是不切实际的瞎想,仔细考虑下,古代人的农牧生活未必不好,他们过的说不定比现代人开心多了。没有太多压力,也不用加班,闲着没事就可以养一只鹰去抓兔子,或者拿个弹弓去打鸟。

那我们为什么过的这么累呢,我想主要是整个社会的节奏都加快了,虽然我们创造了大量的物质,但同样我们需要的物品种类也增多了,比如古人不需要电视机手机这些物品,但我们大部分人必须购买,可消费物品的增加也导致我们相应进行更多的工作,想方设法创造一些让别人消费的东西,其他人也在创造一些需要我们消费的东西,这样就形成了一个互相刺激的效应,于是每个人都很忙。

如果有人做个统计并比较一下的话应该可以发现,农牧时代的平均工作时间,肯定比现在社会要少,个人估计,平均每天能到四个小时都应该算多了

其实以前人们也并没有想象那么好,打鸟养鹰之类的人,通常被认为是纨绔子弟。每个时代都有一些想做事的人,这种人往往过的比较辛苦。现在中国处于经济迅速发展的时期,整个社会的节奏普遍偏快,累的人就偏多了一些。

我并不太在意生活状态,是否富足的生活并不意味着开心。于己而言,更关心的是认知和思考。太过于轻松愉悦的生活,往往意味着虚度光阴,人都是在艰难之中学到更多东西。

老鹰往往独自出现,用屈原的话讲‘鸷鸟之不群兮’,处于生物链的顶层,能够供养的食物只能维持少量个体。人群之中,同样有类似于鹰的存在,这些人往往要付出更多的东西,耐得住孤独和寂寞,当然,也飞得更高,视野更广。

生死

上周二爸爸突然打电话说奶奶不行了,便匆忙赶回了家中,仅仅见到遗体最后一面。

之前奶奶身体一直很好,上次回去还给我摘柿子吃,很健康,没想到这么快就走了,医生说是心肌梗塞,是急性致死疾病。

奶奶今年79岁,也算高龄了,生死有命,挡也挡不住,平时身体这么好,没人想到会这么快。事情好坏分两面,我过去一两年眼睛天天疼痛,深知疾病折磨的滋味。无疾而终,不受长期病痛的折磨,未尝不是件好事。

这是我第一次真正面对死亡,并进行了仔细的思考。为何死亡总是令人畏惧,充满悲伤?或说,求生的本能令我们避开它。生物大脑设定的正确道路就是生存,无论如何的艰难。

死亡本事并不是一件痛苦的事情,就如一觉睡下去,倘若不再醒来,怎会感觉悲伤?悲伤在于知道自己要死了,而有许多事情牵挂。倘若一个人在世间饱受折磨,死也许是一种解脱,但要是在人间享乐,却是对死亡充满畏惧。但饱受折磨的人同样畏惧死,许多人苟且偷生,可能是生物进化的本能吧,只有想尽一切办法保证自己生存的生物才能在进化的自然选择中胜出。

假如自己知道明天就要死去的话,那么考虑现在的心情倒是件有趣的事。我还有什么事情没处理完?什么东西要告诉别人?我活到现在做了什么事?我这一生的意义是什么?我最遗憾的是什么?假如再给我多少时间我会去干什么?我还有什么牵挂羁绊?

当面对死亡的时候,我们开始真正思考人生的意义。

从纯粹唯物的角度来看,人就像一台上足发条的机器,自动运作,不断更新状态,眼睛、耳朵、触觉等接受外界输入,并通过运动、声音进行输出,通过输入改变大脑内部神经元连接,并根据不同大脑结构和输入产生相应输出,不断与环境交互作用,直至这台机器磨损坏掉,停止运转。

如此看来人不过是一台精巧的自我复制机器罢了,意识在这里丧失了一切意义。哲学家有一个术语,把那些天天按时运转,谋生做事,不去考虑存在意义的人称作僵尸。放眼望去,大街上人来人往,谁知道他们不过是一台台装饰着衣服的巧妙机器呢?

也许人类除了机械式的躯体以外还存在另一种微妙的东西,就是笛卡尔所谓的思考着的自我,或者所谓的灵魂。

躯体是否可以标记一个人?有些电影里会有两个人换了身躯的情节,但周围的人并不认为这个躯体就是那个人,真正标记一个人的,是他经历过的事情和记忆的总和。比如我们遇到一个小学同学,形态大变,并不能认出,而去通过聊天,说当初怎么怎么样,什么事怎么了,最终才说,你就是那个谁谁谁啊。

人的意识停止之后,躯体还存在,只是我们无法跟它交互作用,无法通过问答的形式读取他大脑中的信息。而随着新陈代谢的停滞,这些大脑状态逐渐损坏,慢慢归于尘土。

我并不畏惧死亡,如果让自己考虑下有什么牵挂值得活下去的话,那就是花费许多年的努力去获取了知识,有许多疑问需待解决,最主要的,就是意识的本质,思考的自我,到底机械的肉体如何产生自我意识?这也是笛卡尔之类的哲学家一生在探求的问题。当我每次思考各种问题,最终都汇总到这个问题上,我想这是我活着最值得牵挂的事情。孔子说,“朝闻道,夕死可矣”,夫子之言,于我心有戚戚焉。

我们说盖棺定论,人死之后才去思考他的一生,评价功过。对于奶奶的一生,是普通的平凡人,没有什么大事和有争议的评价,也没有人去著书立传。每次过年回去都会问她一些过去的事情,但也是些很模糊的东西,大致简单的记录一下我所知的事情。

奶奶出生于三十年代,她的父亲当年被国*民*党抓壮丁抓去当兵,去了台*湾,至今下落不明。据她讲,当初国*共*两*党在我们那边拉锯战,打过来又打过去,她舅舅从事共*产*党的工作,当时她还去给八*路*军通风报信,后来好像她舅舅被国*民*党处决了,没赶上解放后出头。还讲过当时我们那里过中央军,什么郭银坡的部队。

解放后经历过各种运动,还讲过当年跟爷爷一起去三门峡还是哪里修过水库。当年化工部下放到我们那边的五七干校,她说那些干部很想跟他们沟通接触,有个干部在地头跟她聊天,给她茶叶喝,她不太懂,倒掉了,那个干部还很可惜。

本来今年还准备回去问她些过去的事情,可惜再也没有机会了。

奶奶晚年笃信基督教,每周再忙也会去教堂,常常劝我信服上帝,记得上小学的时候她还带我去守礼拜,让我念圣经给她听,我在上高中的时候经常跟她辩论上帝的存在性,始终不承认自己皈依上帝,上大学后就渐渐不跟她争了,尊重她的信仰。临死的时候她还在说,“我不行了,叫主接我”。若是有上帝的话,应该是眷顾了她,儿孙满堂,无疾而终。

葬礼上教会对她的追悼辞写的还不错,便要了一份,附在这里,算是对她简单的评价吧。

今天我们大家都怀着沉重的心情,来到这里为xxx老人的去世,表示沉痛的哀思。今天xxx因病医治无效与世长辞,噩耗传来,四面八方无不悲痛,无不为她的去世悲伤。

今天应本主邀请,按基督教的教规教义,为xxx老人殡葬,我作为教会代表,表示沉痛的悼念,并向其家属表示亲切的问候。

生从何来,死往何处,今当何为,是历代哲学家、宗教家在探索的真理,也是每一个头脑正常的人不得不思考的问题,惟有对这三个问题寻得了正确答案,才能领悟人生的真谛,拨正人生的航向。

在xxx的短暂人生里,虽也尝尽了人世间的酸甜苦辣,但她找到了人生真谛,悔改信了耶稣。她不怕苦,不怕难,对教会付出了心血。她教子有方,辛勤劳动,勤俭持家,她爱人如己,她是一位充满爱心的老人,她一生廉洁为公,对自己克勤克俭,对一些有困难的人,她热心帮助。她是一位谦卑平易近人的人。她像一朵幽兰,他不宣费,也不扬声,她始终是静静的散发出一种基督的香气。她对任何人都是一无所求,从不麻烦别人。她爱所有的人,却不企求任何回报,她像一朵白云,她像一朵兰花。悄悄的来,悄悄的去。她鞠躬尽瘁,完成了她一生的本分。

今天我们大家看见了千古不变的真理,即人有一生,也有一死。今天xxx老人比我们先过了这一关,到永远安息的地方去了。今后世界黑暗的权势不能压迫她,人世间的痛苦不能烦恼她,永远在上帝的怀里享安息。

我们在肉身上再也看不见这位老人,在人情上免不了有伤感。但我们相信有一天能与她团聚,人生死的事实,表明了上帝的能力。

今天xxx老人,走完了人生的路程,息了自己的劳苦,但做工的果效会追随着她。因圣经已给我们说明,不要为信主睡了的人忧伤,好像没有指望的人一样。求主特别赐恩安慰这一家,使他们在哀动中得蒙上帝的慈爱和眷顾。而能顺变节哀,更能从苦难中明白主的旨意。最慈悲的父神已接xxx姐妹的灵魂,使我们明白在世如同客族,应靠赖主恩。

今天教会失去了一位好姐妹,家庭失去了一位好母亲,社会失去了一位好公民,我们应化悲痛为力量,以她生前所做的好行为和榜样,把她没完成的工作继续下去。

天家相会,主恩无限,恩泽天下,神爱深长,爱撒人间。愿我们都做上帝的好管家。

NAT

先罗列下我的需求,有两台机器,一台windows 7,另一台mac,现在想在这两个机器间自动同步文件。两台机器位于不同的私有子网段,也就是说,躲在两个不同的路由器后面接入公网。

因为nat的存在,使得两台机器间直接建立tcp连接成为不可能,想了几个方案:

第一,通过一台有公网ip的机器中转,两台机器同时跟这台服务器建立tcp连接,定时交换文件时间戳并相应的更新。这种方案存在巨大的弊端,我的服务器在美国,两台挨在一起的机器,传送数据居然需要绕过层层路由跨过海底光缆传送到大洋彼端然后再传回来,速度慢,占带宽,太折腾。

第二种就是udp打洞了,假设两台机器分别为A和B,中转机器为S,这样A和B都可以向S发送UDP数据包了,S可以得到NAT转换后的ip和端口号,由于UDP不是面向连接的,任何主机都可以向这个ip和端口号发送数据。理论上讲,只要S把这些信息告诉A和B,这两台机器就可以直接通信了。但是因为安全性的考虑,如果这个数据包的ip和端口号不是先前发给S的那个地址,就会被路由器丢弃。如何取得路由器的信任,是打洞最需要解决的问题。一个简单的想法是,A向B的NAT转换后的地址发送一个udp包,这样A的NAT对于B的这个地址就是敞开的了,如果B能发出具有这样地址的包,二者之间的连接就能建立起来。

今天花了一个下午编写调试相应的代码,A和B之间的数据包始终不能成功接收,后来才意识到,A向B再次发送数据包的时候,NAT路由器会重新生成不同的端口号,换了个端口向S发包测试打印地址印证了这个想法,这个端口号似乎是随机生成的。

google了下,有些路由器确实是这样实现的,这种情况下UDP打洞基本不可行。

总之,问题没那么圆满的解决,最终还是使用方案一中转,先只同步小文件吧,至少比手动拷方便些。

客观评价下NAT对互联网的影响吧,好的方面:解决了ip地址快速耗尽的问题,估计延缓了一二十年。也提高了安全性,某种程度把病毒隔离在一个个子网范围内。

另一方面,把端口号扩展为ip地址的一部分,本身就是一种很踅脚的做法,增加了软件的复杂度。一个好的设计应该简单统一,不应该让人在实现的时候感到头疼。

在已有系统上缝缝补补,用最简单的改变来适应环境,是生物的进化的基本特征。互联网在遇到问题时的解决方案似乎也在重复着大自然的脚步。

还是希望ipv6早日普及吧。

迁移

在linode买了台vps,加州fremont机房,1G内存,24G硬盘,xeon L5520 cpu,ping值在180ms左右,性能速度尚可。有个公网ip的机器还是很有用的,比如开一些服务,可以在任何地方连上去,或者开vpn绕开长城。

以前在一个叫cyberultra的新加坡运营商那里买了虚拟主机,一年下来几百块前,基本还算稳定。用了三年,下个月到期,想想还是换下吧,在一个地方耗的太久,因循守旧,就像人生,总是觉得乏味。

今天在vps上装了个apache和mysql,整了整wordpress,把以前的数据导入,算是差不多搭了起来,换了个新的主题,尝试改变下。

罗列一下遇到几个小问题,一个是permlink改变成非?打头的话,会导致404错误,找不到页面。仔细找了下,是.htaccess文件里的重写规则没有生效,在apache的配置文件的Directory项里,AllowOverride None会把这个选项关闭,改成AllowOverride All就可以打开了。另外还要注意看下apache的rewrite模块有没有打开。

另一个是theme的问题,右边的widget里都有一个Click to view/hide的头,看起来很不协调。懒得去慢慢看代码修改了,先将就着,改天再换个主题用吧。自从眼睛出问题以来,心情精力严重下降,没有当初巨细靡遗的折腾劲了。

现在微博微信大行其道,博客开始变得越来越小众,就像某种古老的技术一样渐渐淡出。我不喜欢微博,一大堆无用信息,把精力都耗费在看别人唠家常上了,加上眼睛不好,手机用回了nokia黑白屏,似乎跟这个时代格格不入。从个人而言,这些新型的媒体或者社交形式,除了把空闲时间套牢,信息量实在微乎其微。

我想博客还会继续存在,就像很多有价值的东西一样,比如邮件列表还是开发人员最有效的沟通方式,bbs仍然提供有价值的社区交流,博客也会继续记录个人的思想,一直作为一种概念形态凝结于未来的社会中。