脑电波紊乱

Inventing on Principle — Always Options in Your Life

Inventing on Principle — Always Options in Your Life

超乎想像的 demo,关于创意,关于即时交互——修改的同时看到效果。(很好奇那个是什么编程利器) 看上去都很神奇,但 Bret Victor(苹果的 UI 交互设计师) 主要演讲的并不是谈论具体的技术,而是通过这些 demo 来展示来讨论发明创造中的一些基本的原则。 只要相信,哪些你在乎的,哪些你感觉到不对劲的而你有想法的,哪些你愿意为之而付出的,都是你生命中的可选项。

明知是错的,你还会延续下去吗?

同事跟我说,在某个类里面,有个 populate 方法可能有 bug。我随机打开那个类文件,查找一个叫 populate 的方法,那个具体步骤是这样(不具体的话看不出来到底会浪费多少时间),IDE 里用 pop 开头来过滤方法列表,但很遗憾,没看到叫 populate 的方法,却有以 populate 为前缀的几个方法。于是向同事确认,他也没看就说,就叫 populate。我还是相信他的,于是猜想可能是代码没更新,接着做更新,还是没有,可能不在 trunk 上而在分支里,几番周转无果,回到最初的类文件,绝望之中,竟然在方法列表里发现了一个叫 pupulate 的方法。 一股冏上心头泪千行的感觉。作为一个相对底层的类,使用率还不低的情况下,居然有个方法名字错了整整一年甚至更长。 同样是错误,那个 github 史上评论最多的一次 commit(原地址已经 404,可以看其它人的文字记录 或者 google “github giant bug”来重温)。那个要命的空格,让我笑到肚子疼。 rm -rf /usr /lib/nvidia-current/xorg/xorg 好歹人家也可怜地表示 sorry…

Continue reading

从分享文档的角度观察开源社区

国内的开源社区环境不咋地,朦朦胧胧的问题困扰着各个开源项目,而这个绝不是因为怀着开放理想的开源人做不出好的东西。 尴尬的状态在持续着,脾气再好的人时间长了也会忍不住发发牢骚。 我也很费解,到底是为什么,我们到底应该怎么做? 有人说就算不参与提交代码,写些文字分享一下总可以的吧?有人就说没什么好分享的。 类似的争论总有发生的时候。这里不具体讨论这些观点,就从分享文档的角度来看看事情。 相信有许多人都有这样的经历,在使用某开源项目时遇到困难就 google,搜索结果中排名靠前的并不一定是官方的,特别是各种细致的问题,从摘要都可以看出来那个 post 所描述的问题正好就是自己遇到的,心中一乐,点开链接之后数秒,问题解决。 假设没有搜索引擎(天哪!),但是你只是知道有官方文档,然后你去查,发现写这个项目的文档写得非常特别,可能项目比较新,或者开发者就是这么特别,你只好开始刨那些文档。运气好的,能从 FAQ 里面找到你想要的,运气不好的,不太会觉得是自己运气不好,会认为这个项目开始不靠谱了,但是问题,还是得解决,于是想着既然开源的,就看看代码吧,正好自己也会哪门语言,强大的你下载了源码,不管 3721,连上调试尝试快速寻找突破口,经过 N ( >=1 ) 个循环之后,终于找到了问题,原来只是自己理解的问题,修改一下自己的代码即可轻松绕过。为了掩饰自己的“无知”,你可能选择了什么事情都没有发生。 另一个“强大的你”在地球的另外一个角度重温了一下刚才那一幕,也许太忙了,就忘了~~ 还有另一个“强大的你”也遇到了,但是你也很特别,不会码字,然后就忘了~~ …… 第 M 个人同样遇到个类似的问题,就会有 M 种理由当什么事情都没有发生过,就会有 M 个人开始对这个项目产生坏印象。使用的人开始减少,项目维护的热情在消减。 但情况非常之容易改善,只要中间有一个人为此记录下来,发布到网上,就会产生 P ( < M ) 个开心秒杀的情况。当中微妙的差别可以影响很多。这…

Continue reading

Baidu, 整个场面 hold 住

百度在场内作恶的传闻也不是一天半天的事了,突然连续 3 天上电视,不是在广告里,而是在广告中插播的节目里,突然有种事态严重的感觉。 不过,在网上这事还真没炒起来,除了前两天大连方面搞的全民健身和 google 买了部手机之外,真是相当的平静~~ 百度把整个场面 hold 住了~~ 不知道 CCTV 策划的这次曝光还将持续多久呢?但如果百度一直这样 hold 住,效果就是单手拍掌。 单看报导本身,略显单薄的,来来去去就那几个案例,从材料到结论,某些案例背景交代“很有选择”,主观水分不少。专家鼓励的,用法律武器来保障自己,听起来不错,但怎么做呢,可以给些案例吗?场内局域网的游戏规则本身就不清不楚,光取证就已经够头大了,没相当的软硬实力就与垄断企业斗争,情况不容乐观。 大网站们自身影响力大自然排名就靠前的,给或者不给那点好处,对于它们来说,就像掉头发一样自然,但是对于许许多多的小企业来说,那就是割肉的问题了。而这里关键的问题并不是百度怎么作恶法,而是互联网整体缺乏有效的发展机制,无法培养出一个合理的对手。曾经有那么个声称自己不作恶的放在面前,不好好珍惜,现在没有如果了。作为网民也是有责任的,有责任指出不需要什么类型的服务,比如受人工干预的搜索结果,有责任选择和要求有更好的服务,比如选择 google。 百度不是一个人,树大容易有枯枝,大概不会期待现任领导者突然良心发现,即使真的良心发现了,又能控制得了多少呢?最后不一样钱照收,搜索结果照搞。当然事情也不能完全那么悲观,百度凭借目前的优势,只要思路拓宽,做好基础服务,是可以不作恶也赚到笑的。至少 CCTV 专门针对的假冒伪劣广告那部分是可以很好处理的。 互联网是时候需要有更多的关于 web 生态 的讨论了,需要明确下阶段究竟应该发展出什么样子的网络环境,明确具体的尺度和准则,网民的权利与义务,基本的游戏规则(不要告诉我是备案)和裁判守则,需要参与的企业具备怎么样的素质等等。 现在是百度 hold 住整个场面,究竟下一秒会变出什么惊喜呢? 百度知道你不知道~~

一路走好

世上本没有路,走的人多了,就有了。以前不明白,听起来挺形象直观,好像是那么回事。 突然之间想看《海上钢琴师》,看了。 人们看到的是孤儿,是天才,是目光聚焦的瞬间,然后,是孤独,如果是这么看,恐怕也只有“传奇”才可以形容 (The Legend of 1900)。因为就算是听了 1900 最后的内心独白,我也不能体会到那种感觉,不是理解,感觉到有差异,但不能感觉。就好像身着一身装备站在月球表面,隔着保护面罩看见,面前就有个人很自由地,只是穿着普通的衣服,舒服地活着。 如果,每个人都有自己的世界。 你跟我,或者他们,只是偶然遇上,那么那一切都说得通。差异是必然存在。 明白到自己和另外一个个体是存在差异,你可以选择接受或者不接受其他人的影响,消去或者保持差异。 世上本来就有路,一条属于自己的路,它像风,看不见摸不着,只能依靠树叶飘落,旗帜飞扬来反映风的存在一样,你走上去,而且只有在你走上去之后,人们才能发现,噢,那是一条路。那些曾经说过的计划,那些不给力的尝试并不能显示那条只有自己才能看见的路的存在。 所以,一路走好。 PS,如果能走到一起,是福气……

开始学习 Lisp

好吧,我是受到 《黑客与画家》 的催眠,去看 LISP 的,不过越看越清醒。 真的是好东西。之前看 Scala 的时候惊叹于它的 表达式 与 函数 之间的模糊边界,而且函数式编程使我从执着于模仿 Java 的编程方式中释放出来,对应该怎么样写代码有了更多新认识。虽然我了解的支持 FP 的首个语言不是 scala,是 JavaScript,只是很少人会把 FP 当成是一种特色,一种解决问题的方式。 学会了语法,了解了库,学会了设计模式,是能够让我开始编写代码解决问题了,但是不需要很长时间,就会发现“砖头”(构成代码的单元)不够用了。也就是自造砖头会成为一种常态,而怎么自制出跟你已经用惯了的那些基础砖头一样好用的砖头就成为一个问题——如何更好地表达问题,更好地抽象。而这个问题解决不好,它会以各种各样形式表现出来,我觉得是使我经常郁闷的重要来源。而且代码不仅仅是给自己用的,通常是一个开发小组里使用,它就成了像流行性感冒一样的不治之症,不时发作。在被各种头疼弄死之前,我觉得我还可以再抢救一下。 不是说 Lisp 本身多么的强大,也不是想要比较各种语言的强弱,程序猿要的不就是能够用好来表达自己解决问题的方式的语言么。其实我也说不准什么时候才会实战 Lisp ,更何况现在正受到 Nodejs 的感染…… 但这个开始,给了我信心,带来了更多可能性。 传送门: Lisp 之根源 (中文的,还有惊喜) ANSI Common…

Continue reading

没计划 != 不靠谱

最近在读 《黑客与画家》,里面写到了一个我一直以来都很困惑的地方,我们现在开发是没有所谓的长远计划的。一直以来所说的计划不过是一周,最长不超过两周的。正如他所说的,这事是不好随便公开的,因为几乎所有人都不理解,为此还不得不装出一个很有计划的样子。事实上,都不是这么回事。我觉得我们可能被传统的软件工程理论或者一些未经证实的推测给误导了。我觉得有必然在这个问题上重新思考,好好利用好这种短的开发周期,计划是另外一回事,是用来衔接的。 如果因缺乏详细计划而不能动手去做,那么什么时候才能得到这个详细的计划呢? 必须要对整体有全面的把握,然后才能做得好? 事实上,现在面临的对于我们来说都是全新的东西,基本上很难光靠脑海中的构想就能够把整体完全想通,即使能建立整体,但其中涉及到太多既可以这样又可以那样的细节做法,如果不把东西弄出来体验一番,是很难确定最终的模样。有时候过于纠缠一些搭建基础系统,现在看来基本都是鬼话,变动起来最痛苦的就是那些地方。如果想让产品更快一点与观众见面,就必须立刻就将想法实现出来。现实的感觉是,动手做了之后,计划才开始丰满起来。 改动不可怕,可怕在于长时间不去动它。

2011 来了

回头看看 2010 年的两大愿望,呵呵,都没实现。但是事已至此,现在看来也不是什么失败案例,只是这年里,更多的思考让自己更加认清自己,了解自己最能实现什么,需要什么。 2010 年上半年也是莫名其妙的过去了,如果有机会重选,100% 不会选择去浪费那些时间。 下半年才有点意思,开始累积一些东西,各个层面的问题错综复杂,很多事情要开展,做好计划是很重要的。团队磨合逐渐成熟,但是效率依然未能提升,我看是受普遍的基本功不足的制约。在架构设计方面,要体现模块独立,系统一致,自动流程,能够适应功能增长,都有一些经验累积,还有一些固化成为工具,使得开发过程更加流畅自然。不过不是所有地方的概念都足够完整,有足够多样的功能演化和测试,代码质量,代码的表达力也有待提高。2011 年,团队要做的事情还有很多,除了关注功能实现,还应该更多地关注团队自身的养成和经验累积,寻找更有效的发展路向,选择一些能够发挥团队效能的功能来实现,而不是盲目地满足需求。 对于团队来说,效率是第一位的,有更好的效率,才能更快更好地做实现更多价值。 2011 年要更加多的去阅读,思考,学习总结。还有太多东西要学,太多有趣的事情要去发掘。收集信息,整理,应用到实践中去,这些都需要耗费不少时间的。 另外,还要扩展一下交际网络,多寻觅一些人才,扩充团队,增强活力。

生活理想,开源

下班回家的路上,听见有歌声,在围观的人群里,发现了一个人在自弹自唱,唱得不错,从围观的数量来看,透过人群,地面上铺了一块布,晚上,灯光朦胧,上面的小字看不清楚,只看到标题:生活理想。 我顿时惊呆了。静下来听了一阵,他是嘶声竭力地吼着,歌词内容也很热血。然而,我却感觉一丝不对劲,反观围观的人,个个表情都很淡定,只是那些眼神透露出来一些闪光,是在听吗?还是在发挥着自己的想象力?还是在回忆着曾经的青葱岁月呢?忽然间,脑海里闪过一个影像,同样是艺术家在街头表演,不过不同的是观众的表情和反应,他们是享受的,他们是轻松的,他们是无悔的。 今天,群里热闹的在讨论开源的事情。我作为新手,这些讨论,让我激动着,觉得很有趣,给我很多启发。多么希望可以立刻将这些美妙的想法实践起来,将这些拥有开放思维的脑袋集中到一起,那将是多么美好的事情啊! 唯一让我感觉不自在的,就是不可避免地要去探讨残酷的事实现状,项目深入开展的困难,能不能养活贡献者等等。我试图唤醒一些人,就说:我喜欢做没钱的事。我其实不希望有人认为这是另类或者境界什么的。