[技巧]从地址得到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 & 就行了。 不过这种大写参数的用法看起来倒是很奇怪