Jon Morrow: How to Quit Your Job…

看到这类文章,总是感到很震撼,或许是因为看到了一种不同的,理想中的生活吧。 HN上的一篇文章就是这么一个励志故事。 Jon Morrow本来和我们一样,住在租来小房间里,对自己的生活不满意,总是期盼自己能有更多的时候做自己的喜欢的事情,有更多的时间陪陪家人。然后,像我们大多数人一样,他没有做什么,只是想想。直到一次车祸发生。 由于腿部14处骨折,在接下来的几个月里,Jon能做的只是忍受痛苦,还有思考自己的人生、理想和事业。他无法放弃这些,于是他辞职了。很爽快的卖掉了自己几乎所有的东西,开始写Blog。改变的过程听起来简单,但却是需要坚持的意志力。一段全身心投入事业的时间之后,Jon的事情有了起色。自己的网站每天有2000多个访问者,也应邀做了一家知名网站的编辑。 然后呢?Jon开始环视四周,考虑是不是要离开自己住的这个该死的地方。“你有没有在某一天醒来之后,发现自己其实很厌恶你住的这个地方?天气很差,邻居唠叨,你不愿意请朋友到家里来,因为它看起来一团糟”。于是,在换了工作之后,Jon离开了自己的城市。 Jon的新办公室在墨西哥的马萨特兰,度假胜地。“我在写这些的时候,我就坐在我的阳台上,看着海豚从海里跃起⋯⋯“ 是不是觉得,太爽了吧!我也是这么想的 :] 但是到此为止,Jon的故事其实还不完整。 Jon患有一种严重的疾病,从颈部一下都不能行动。疾病的疗养费用是很高的,美国的医疗制度会给予Jon资助,但是做为获得资助的条件,要求Jon每月收入自己只能保留一定数量,其余上交。这当时不是很舒服的事情了,于是Jon开始自己筹钱。一开始就放弃资助是有很大风险的。当然,这个故事有个好的结局,Jon通过帮助别人,比如教人写Blog,给一些公司提供咨询等等,有了不菲的,足以应付医疗费的收入。 很酷!不是吗? 是不是该做点什么了?嗯,我想,我们还是先冷静冷静吧,励志故事总是容易让人冲动的,但是改变却不应该是一时之勇。 毕竟我们能看到的故事都是有一个好结局的,那些随便辞掉的工作而毫无建树的家伙们是不会出来给我们讲故事的。 冷静一下,如果自己内心真的渴望改变,这些改变的动力是可以积攒的。直到有一天开始行动,凭借多年以来积蓄的力量,我们才能走的更远。

[技巧]从地址得到symbol

做iOS开发的时候,常常会遇到crash,需要分析call stack的时候。 有时候App在别人的设备崩溃,把crash report在自己的机器上打开,Xcode没有自动的进行符号化。 这时候就需要自己去把地址解析成符号。 大前提是,必须有相同版本App对应的.dSYM文件。 这时候打开Terminal,进入到build/Debug-iphoneos 使用命令: $atos -arch armv7 -o XXX.app/XXX 0xabcdef XXX是你的App名字,用需要解析的地址替换上面的0xabcdef armv7是编译App时所用的Architecture,也可能是armv6,如果在simulator上的App,这个位置应该用i386 参考:stackoverflow

[技巧]ERROR NoMethodError 和 Failed to build gem native extension

用Rails遇到的两个错误和解决办法,目前还是不尽其所以然,先记下。 1.用Webrick起Server的时候,刷新页面的时候遇到如下错误 ERROR NoMethodError: private method `gsub!’ called 参考http://www.ruby-forum.com/topic/206225 换mongrel做Web Server $./scripte/server mongrel 即可 需要安装mongrel $gem install mongrel 2.安装gem的时候遇到如下错误 ERROR: Failed to build gem native extension. 参考http://stackoverflow.com/questions/43778/sqlite3-ruby-gem-failed-to-build-gem-native-extension 环境是Ubuntu,需要安装ruby对应的dev包 $sudo apt-get install ruby1.8-dev

[推荐]为什么我要把公司做成扁平型

链接:http://www.aqee.net/2011/04/12/jason-fried-why-i-run-a-flat-company/ 简单的说,这个老外办的公司是以一个扁平的状态存在的,也就是员工之间没有上下级的关系。无论是工程师还是设计师,都直接对产品负责,直接面对客户需求。 很赞同这个老外的想法,也很想向往这种没有上下级的公司架构。或许这更像是一个创业团队的感觉,但是如果我们真的热爱技术,我们其实不想分心去做所谓的管理,不是吗? “相反,我们推崇“水平型”的志向发展方向——在这种情况下,当员工喜欢他们所做的工作时,我们会鼓励他深入研究,扩展他的知识面,让他在这方面越来越强。我们一直在努力招到一些渴望成为技术高手的人,也就是那些希望成为大师级设计师的设计人员,想精通编程技术而不是管理工作的开发人员。“ 是的,开发者希望有一个自由的环境来发挥自己的特长,学习感兴趣的东西,做出很棒的产品。做这一切难道会是为了不再去做这些吗?如果真有这种想法的开发者还是趁早转行吧。在一般的公司,员工其实也未必想向上走,但是他们没有办法,向上走是唯一能提高自己报酬的方式。 ”相对于给予更高的管理职位作为奖赏——这样通常会把这些人从他们实际擅长的工作岗位上移走——我们奖赏跟他们的工作相关的东西。我们同时会提供高于市场水平的薪水和丰富的福利,包括夏天每周4天工作日,假期想休多少天都可以(当然,要有理由),在他们正在做的项目上给予他们充分的自主决策权。“ 很理想的工作环境。他们控制着自己的规模以保持这种结构的稳定性。 许多公司都在嚷嚷着要找踏实肯干的年轻人,你们给了他们踏实做事的环境吗?

没有想法

不知道是不是Coder的职业病之一,编码久了,脑子反而越来越呆了。很怀念大学时候做证明题的感觉,似乎只有在那种时候才意识到自己在思考。 编码的时候,大多数情况下,运指如飞,却感觉不到思维的活动。好像那些动作完全出于本能。曾经我还对此无比地羡慕。直到看到车间里目光呆滞的熟练工,才忽然觉得Code Monkey这个词如此的形象。 难道我的工作只剩下无趣了?也不尽然。有时候我会思维敏捷地找出一个解决方案,然后完美地实现它,之后再细细地品味这点来之不易的成就感。很酷!不是吗?这点珍贵的成就感几乎是我热爱coding的全部理由了。 不得不承认,目前工作中所涉及到的大部分编码是不需要考虑算法的,不需要小心地构建数学模型,然后艰难地去回忆仅有的一点数学知识来解决它。那么我们面对问题做了什么?我们也解决掉了问题,不是吗? 是的,我们BrainStorm。老外喜欢说BrainStorm,头脑风暴!又一次很酷!不是吗? 当然,平民化的说,这个就叫做”拍脑袋”。凭的是经验,靠的是直觉。 本来嘛,做程序和做其它事情没有什么区别,逻辑清晰的人只要会编程语言就能写程序。不需要思考,只要按照逻辑想想,大多数问题都是迎刃而解的。如果碰到了绕了点弯的问题,那恭喜你,又可以享受一次久违的成就感了。 面对这样的工作,怎么会让人有想法呢?需要来一点刺激的,让我可以坐下来静静地考虑,慢慢地回忆过去所学,一步步地设计解决方案,证明它是有效的,再加上经验丰富的地道的实现,这才是Programming。

linux下的VNCServer

Linux下的VNCServer很多,启用也很简单。 $vncserver 之后按照提示一步步执行。 这种方法会新建一个session,从其它机器连的server的时候需要指定display的值。 也可使用这个方法: $x0vncserver 可以让vncserver不启用新的session,使得server和client共享同一个桌面。 用的时候一般需要指定password文件。如果使用过前面的vncserver,在~/.vnc/下面会有一个password文件。 $x0vncserver PasswordFile=~/.vnc/passwd & 就行了。 不过这种大写参数的用法看起来倒是很奇怪