Sep 7, 2008 - Mr Right and Mrs Always Right

Comments

时至大选, 美国两党拉票不遗余力. 比如共和党候选人 John McCain, 就被戏称为 Mr. Right (一语双关, 右派先生, 或者意中人, 正确的人). 英文里面还有一个对 Mr. Right 的调侃, 叫做 Mrs. Always Right (一直都正确的女士). 估计他的副总统候选人, 那位保守派女性, 没几天就要被人称为Mrs Always Right (坚决右派的女士)了. 不过我对共和党的政治没啥兴趣, 这篇文章还是谈八卦.  

一个人从单身到结婚, 大多都是抱着”找正确的人”的心态的. 可”正确的人”的概念可模糊的紧. 革命年代有搞串联火车上做对面结果金婚几十年的, 现代社会也有两人开车相撞结果撞出一段感情的. 我就身边的一对一对, 也有街上吃麻辣烫遇到的, 一起去家乐福撞上的, 图书馆里谈上的, 不一而足. 原先心里倒是有标准的: 绰约佳人, 居姑射之山, 巧笑倩, 美目盼. 等到真的遇到了, 管它是风姿是效颦的也好, 颜容如荼蘼(百花之末)也罢, 也就相处一生, 细水长流了. 因此, “找正确的性格/容貌的人”是件极其不靠谱的事情. 因为你的潜意识是弗洛伊德控制的, 不是你控制的. 

除此之外, 找到正确的还有一个微妙的前提: 正确的人一定要在正确的地点和时间遇上, 而时间地点的正确性, 完全是不靠谱的. 比如, 人们总是盼望在遥远的香格里拉, 西藏或者丽江能有自己的艳遇, 撞上一个正确的人, 在正确的时间正确的地点碰到了还他妈的是住一个酒店跟一个导游背同样的背包. 其实, 从概率意义上说, 某天早晨某卖煎饼果子的小摊上坐在你旁边的和你吃一样豆浆油条煎饼果子的那个年轻姑娘/小伙子更加可能正确的人, 只是你觉得煎饼果子摊上认识的人不那么浪漫而已.  量子力学告诉我们, 每天如果做了10个决定, 就会有可能造成10次平行宇宙坍塌, 杀死10只薛定谔的小猫. 平行宇宙里的你和帅哥美女相逢而你在地铁上打瞌睡, 掐指一算, 每天错过的正确的人的数量就令人发指的达到10的三次方, 这是怎样的悲剧啊!    </p>

更加不靠谱的地方在于, 几乎所有的想找”正确的人”的, 都走到两个极端: 找一个”一直正确的人”; 或者把自己修炼成了”一直正确的人”, 想找一个”正确的人”来给自己服务. 用某个特殊行业的话说, 一个叫S, 一个叫M (当然我们只讨论性格上的S&M). 找一个”一直正确的人” 是无数少男少女的怀春梦想: “不管为他/她做啥我都愿意” (九十后小孩酌情把这句改成火星文). 这些深藏在小朋友深处的S情节, 如果从少年期带到了成年期, 就会对大街上某个容貌阳刚的男子产生无比的爱意. 这类找法, 就会找来一个本身自认为”一直正确的人”. 来满足自己的做甘于付出甘受虐待的爱情雷锋的欲望.  相反, 自以为”一直正确”的人, 挂在嘴边的则是”我这是对他/她好”. 并且, 这样的决断, 是全心全意为了对方, 所以一定要强迫对方理解, 一定要成为对方的全部, 一定让对方全听自己的, 而自己是伟大的国王. 你说这叫御也好, 控也罢, 反正得把满腔的爱意倾诉到他人身上, 而对方不接受不行. 所谓的正确, 是相对自己潜意识而言的正确, 是说服自己的正确, 而非有任何标准. 而人的 SM 情节是天生的, 没法变的. 如果不幸带到了成年, 就会不靠谱的在茫茫人海找正确的人. 让整个寻找的过程变得荒诞不靠谱. 

因此, 想要幸福的生活, 就要明白正确的人之标准之不靠谱, 犹如用手榴弹炸航母. 理性的方法是降低寻找白马王子或白雪公主的标准, 就骑白马的唐僧和出水的芙蓉姐姐也可以考虑; 要实在不行, 出门右拐走300米, 遇到的第一个中意的异性, 就大喝一声: 就他/她了, 保证正确. (如没有遇到, 继续走300米). 折腾了半天整的地动山摇的, 往往到了山无棱天地合的时候, 还是找不着. 为啥啊, 因为正确的人全跑琼瑶阿姨的书里面了, 没空来你面前闲逛. 还有, 不能为了找个正确了, 找了一个永远正确的, 或者把自己变成了永远正确的, 那就是性格的致命伤了, 是比哈姆雷特还性格悲剧的性格悲剧. 

更多关于不靠谱理论的叙述, 可订阅 北京女病人 博客. 

Sep 4, 2008 - 完全用命令行工作-1: 拔掉你的鼠标

Comments

(本文可能不适合windows用户, 也不适合美工设计人员)

我觉得, 工作效率低下的原因很简单: 精力没有集中. 在计算机前工作的时候, 我发现一个提高精力集中度的最好办法: 拔掉鼠标.

拔掉鼠标意味着上网的时候不到处乱点链接, 书写的时候不简单的拷贝粘帖以及不会先想着格式和排版以干扰思路, 阅读的时候不动个不停的指向正在读的词(很差的阅读习惯), , 编程的时候不会老拷贝粘帖而是使用重构, 打开应用程序的时候不会误点到魔兽, 无聊的时候不会在联系人列表上找个人就随便海侃. 总之, 做一件事情的时候被限制在当前的窗口中, 注意力必然会提升. 具体来说, 不用鼠标意味着只用键盘来操作应用程序, 优点至少有以下几个.

  1. 做正事时, 完全使用键盘能强迫人使用高效简洁和正确的工具. 我认为, 现在大多数应用程序都是堆砌一辈子用不到的功能, 而不是直截了当的解决问题. 那些工具窗口, 菜单栏, 状态栏等等到处都是, 想要完成一个任务必须在很多的工具中选择一个按钮点击. 其实选择和点击按钮只是完成操作的手段而已, 而不是必须步骤. 假如能够直接告诉计算机我想要做什么, 而不是先翻译成”我要点这个你才能做什么”, 效率会高很多. 而命令行就是直截了当的解决方法, 通常老手会选择使用快捷键, 这比点鼠标速度要快, 效率要高. 其实一般的应用程序, 核心功能不会超过20个, 这样20个核心功能用键盘操作完全有可能. 我甚至认为, 不能用键盘完全控制功能的程序, 可能本身就是不够简洁的. 使用这样的工具, 可能本身就是一个错误.

  2. 处理零碎任务时, 使用命令行效率比鼠标点击简洁高效. 这是我观察到的一个具体的例子, 我想要看2009年1月4日是星期几, 在图形界面下, 我需要点击日历, 通过下拉选择2009 和 01 这两个选项, 然后才能看到日历. 鼠标输入2009和01是很费事的事情, 而在命令行下面我只要 cal 1 2009 就可以直接看到日历. 命令行能够直指问题本身, 绕开不良窗口界面设计造成的很多操作负担. 再比如说, 在使用网上日历和提醒的时候, 一句”have lunch tomorrow at 12:00pm with X” 显然要比用鼠标一个一个选择日期, 时间, 地点和事件来得直接. 在这方面, Gtalk 有很多的机器人可供大家选用, 比如查字典, 直接给字典机器人发送一个单词就能获得翻译, 比点一下字典程序等着启动然后输入单词要快太多了. 所有的这些目的性明确的小任务, 耽误的时间都不应该超过10秒钟. 如果使用命令行, 这个时间可以继续减少, 而使用鼠标点来点去, 至少要30秒. 而日常的零碎事务往往全是这类. (比如写一行备忘, 发一个小文件, 加一个提醒, 查一个单词或者维基, 标记一个日历, 控制一个远程服务等等).

  3. 完全使用命令行, 使得浏览网页和无聊闲逛的时候注意力也集中. 我观察自己发现, 在电脑前面最浪费时间的事情就是顺着一个有趣链接点下去, 无穷无尽. 看上去获取了很多信息, 其实过眼即忘. 聊天也是, 往往一个爱说话的哥们上线聊上了, 一晃时间就过去好大一会儿了. 而完全使用命令行, 就强迫自己得用无穷多次的Tab才能点击那些链接. 这样, 就不会去主动点击那些链接. 聊天的时候也一样, 在命令行下面的会话没表情没声音也没提醒, 上线也没提醒, 干扰少很多.

再说我自己的具体的实现方法

  1. 邮件和日常事务

Gmail 网络效率也不完全高. 最好用 Mutt. 快速发送文件附件的情况下 Mutt 是瑞士军刀, 参见我以前的叙述. 编程和文本编辑器随便是vim, emacs 都用不着鼠标的, 而且效率高. 浏览器一般使用 elinks, 遇到非Ajax 不可的才搬出 Firefox. 排版和做演示都使用LaTeX, 这个大家做科研的都知道. 另外, 把一些日常要做的任务写成make 脚本, 效率的提高是超出想象的.

  1. 零碎小事

日常事务可借助形形色色的 Gtalk 机器人, 以及 Twitter 上一些特别的机器人. 其中Gtalk 客户端最好使用 GNU Freetalk, 可以自定义钩子(使用史上最优雅的 LISP 语言噢). 从而可以通过解析 Gtalk 消息调用系统程序. 比如我家有一台破电脑, 一直挂着Gtalk, 我在学校要回家之前就可以给这个Gtalk 发送信息让他提前打开我们家的空调或者电灯. 这些零碎的小事情的处理在 Web 背景下特别好解决. 如果你不是深度网络用户, 使用shell 脚本也能完成大多数工作. 比如日历, Linux 下面的日历管理工具都是支持命令行的. 其他如提醒啊, 日记啊, 字典啊, 都有工具. 除此之外, sed/awk, wget/curl 等等都有想不到的妙用, 完全可以把日常事务中的零碎小事处理得井井有条 (要知道, 当年贝尔实验室的科学家们就仅用这些工具辅助炸药奖研究的, 当时候微软还在做DOS呢).

如果你是Firefox 用户, 最近的一个 Ubiquity 的确是杀手级别的应用. 除了能控制网络服务外, 你也可以自己写个脚本, 把消息转解析到本机端口, 本机开一个简单的HTTP服务把消息代理给其他应用程序, 这样, 理论上, 在Firefox 里面也能控制整个计算机. 我也尝试了在学校Firefox里面控制我家的空调, 看上去很酷. 苹果用户也有福气, QuickSilver 这样的杀手级程序早就红遍大江南北, 我就不多说了(你要是苹果用户又不用QuickSilver或命令行, 那你真是把苹果当Windows用了, 暴殄天物啊!)

虽然没有严格的证明说鼠标一定浪费时间, 但是浪费时间的应用通常都需要鼠标支持. 我因为鼠标坏了舍不得买, 无意发现了这个结论. 如果你不相信我说的, 不妨尝试一下强迫自己不用鼠标一天, 看看自己是不是浪费的时间少了很多.

Aug 31, 2008 - 推荐黑帮电影

Comments

黑帮电影是电影的一个专门类别. 色彩浓而沉郁, 情节跌宕, 通常暴力血腥, 不适合一般人观看. 我最近碰巧看了几部之后, 居然爱上了黑帮电影, 尤其是俄罗斯黑帮电影.  </p>

电影中最经典的黑帮当属意大利黑帮. 这个也是随着<教父>深入人心的概念. 比如在<杀手不太冷> (Leon)中间, 这人就是意大利的. 还有在<美国黑帮> (American Gangster )中, 有人听说毒品大亨是黑人并且为家族打工的时候, 还很惊讶的说: 怎么不是意大利和欧洲人? 但是有一个国家的人从来没有进入我的视野: 俄罗斯黑帮. 俄罗斯黑帮片不怎么盛行可能也和市场不盛行有关. 不过这可完全不能代表俄罗斯黑帮片质量低. 从我最近看的 来说, 可以大胆预言: 俄罗斯黑帮片必将称为荧幕新经典.  </p>

俄罗斯的黑帮电影, 从我观看的感受看, 有其独特的表现手法: 没有枪战, 没有飞车, 就是对话, 环境和镜头三个重点, 再加上一些硬暴力(打斗用刀子不用枪). 相比于为家族做事忠于家族的那种黑手党精神, 俄罗斯黑帮完全是单干, 人不为己, 天诛地灭的哲学表现的很充分. 在加上和白道的勾结, 幕后交易, 阴谋阳谋都更加突出, 一反以前黑帮就是家族战争, 火拼贩毒, 杀人越货的老路子. 身在这个大片时代, 对于我这样观众来说, 枪战和飞车已经不是卖点了. 而对话冲突, 心理层面的博弈, 弱者和强者的猫鼠游戏等等这些才是看点. 

当然黑帮片的主角是哪个族裔不重要, 重要的是表现的方法.  黑帮电影的表现方法是非常上乘的. 喜欢看电影的都知道, 现在的电影已经和以前大不一样了, 完全是为票房服务了. 从<功夫熊猫>和<功夫>就知道, 动作片等于励志片; 从<黑客帝国>也认识到枪战片等于烧钱片; 从<变形金刚> <木乃伊归来>等也看出, 科幻片等于特技片. 像<纳尼亚传奇><魔戒><蝙蝠侠>这些, 又是老瓶新酒, 并不出彩. 而黑帮犯罪片, 故事悬疑, 情节引人, 把普通人在丛林法则里面人性的软弱和心理的微妙变化, 表现的淋漓. 像Godfather, Pulp Fiction, 无间道等这些笔触细腻的电影, 不光是黑帮电影的经典, 也是整个电影历史上的经典. 基于以上的这些, 我很推荐黑帮电影.  </p> </div>

Aug 26, 2008 - 臭鼬工厂启示录

Comments

提到著名的 Lochead-Martin 公司, 大家都会想到 F16 F22. 而这些世界知名的飞机,都是出自于这个公司一个很小的高级研究部门, Skunk Works(中文叫臭鼬工厂).  在英语中, skunkworks 是一个词, 用来形容高度灵活, 高度自治, 从事高级项目的小组.

如同莎士比亚说的, 成功的公司/团队都是一样的. 当年施乐的Polo Alto 实验室, 美国AT&T的贝尔实验室, 曼哈顿计划. 都是专业人员高度自治的(相对)小团队. 他们成功的关键是什么呢, 下面是臭鼬工厂的著名的Kelly 14 原则. 通过这个或许能窥斑见豹: (http://www.lockheedmartin.com/aeronautics/skunkworks/14rules.html)

  1. The Skunk Works manager must be delegated practically complete control of his program in all aspects. He should report to a division president or higher. [项目经理应该有项目的全部管理权. 他应该向部门总管或者以上的领导负责. 高度自治, 扁平责任链, 避免小官僚干扰]

  2. Strong but small project offices must be provided both by the military and industry. [小而强的团队是军方或者工业制胜的关键]

  3. The number of people having any connection with the project must be restricted in an almost vicious manner. Use a small number of good people (10% to 25% compared to the so-called normal systems). [与项目有关的人的总数应该严格控制. 使用少而牛的人(与传统相比, 只要10%-25%的人)]

  4. A very simple drawing and drawing release system with great flexibility for making changes must be provided. [原型极其重要]

  5. There must be a minimum number of reports required, but important work must be recorded thoroughly.[只走重要流程]

  6. There must be a monthly cost review covering not only what has been spent and committed but also projected costs to the conclusion of the program. Don’t have the books ninety days late and don’t surprise the customer with sudden overruns. [每月的成本计算和估算都要做, 以给客户最小惊奇 ]

  7. The contractor must be delegated and must assume more than normal responsibility to get good vendor bids for subcontract on the project. Commercial bid procedures are very often better than military ones. [模块化负责, 而且引入竞争招标]

  8. The inspection system as currently used by the Skunk Works, which has been approved by both the Air Force and Navy, meets the intent of existing military requirements and should be used on new projects. Push more basic inspection responsibility back to subcontractors and vendors. Don’t duplicate so much inspection. [测试这个事情到细化到最低层次]

  9. The contractor must be delegated the authority to test his final product in flight. He can and must test it in the initial stages. If he doesn’t, he rapidly loses his competency to design other vehicles. [各个模块都要有自己单元测试的权利 而且从一开始就要做测试]

  10. The specifications applying to the hardware must be agreed to well in advance of contracting. The Skunk Works practice of having a specification section stating clearly which important military specification items will not knowingly be complied with and reasons therefore is highly recommended.[如果有某些不能满足的需求 就提前说明]

  11. Funding a program must be timely so that the contractor doesn’t have to keep running to the bank to support government projects. [一次给足钱]

  12. There must be mutual trust between the military project organization and the contractor with very close cooperation and liaison on a day-to-day basis. This cuts down misunderstanding and correspondence to an absolute minimum. [互相信任 日常接触]

  13. Access by outsiders to the project and its personnel must be strictly controlled by appropriate security measures.[注意机密]

  14. Because only a few people will be used in engineering and most other areas, ways must be provided to reward good performance by pay not based on the number of personnel supervised.[奖励 激励]

有人肯定觉得这个东西地球人都知道, 不要再次强调, 其实不然, 比如说Google, 就再次强调了.

Google 的12条开发程序的准则

原文:

  1. All developers work out of a single source depot; shared infrastructure!

  2. A developer can fix bugs anywhere in the source tree.

  3. Building a product takes 3 commands (“get, config, make”)

  4. Uniform coding style guidelines across company

  5. Code reviews mandatory for all checkins

  6. Pervasive unit testing, written by developers

  7. Unit tests run continuously, email sent on failure

  8. Powerful tools, shared company-wide

  9. Rapid project cycles; developers change projects often; 20% time

  10. Peer-driven review process; flat management structure

  11. Transparency into projects, code, process, ideas, etc.

  12. Dozens of offices around world => hire best people regardless of location

粗译文:

1:所有程序员基于一个代码库工作,所以整个架构是共享的。

2:有了第一条,程序员可以修改任何一颗代码树上的 bug。

3:自动编译

4:统一的代码格式。

5:对所有的check in 强制要求代码评审

6:程序员写单元测试成一种习惯

7:单元测试始终被运行,遇到问题发封邮件给你

8:强大的工具,要在全公司分享

9:快速的项目开发周期;开发人员经常变更项目;20%时间.

10: 同伎评审,扁平管理

11:项目,代码,过程,点子等等都是透明的

12:全世界都有很多办公室,用最棒的人,不管他们在哪里

我们认真比照这两个列表, 就会发现, 一个做互联网, 一个做战斗机, 道理都是相通的.

或许看完这个你可能会觉得踌躇满志, 觉得搞小团队做高级项目的所有的道理都了然于心了. 其实这些做到是很难的, 不相信的童鞋可以买一本研读, 看看那些创始人如何做错了很多事情然后在一件关键的事情上做对了成功了的, 他们又是怎么慢慢意识到这些原则的.

Aug 24, 2008 - 老老实实告诉大家,我看不懂闭幕式

如题. 大实话.

哦, 唯一看懂有深层次意义的, 是交奥林匹克旗和小贝踢球.

(PS: 不欢迎张艺谋同学肚子里面的蛔虫来做老师告诉我到底每个表演是什么意思, 我真的不懂. )