Tagged: thinking RSS

  • tin 2:34 am on February 12, 2010 Permalink | Reply
    Tags: , , thinking   

    和老婆去了一趟谭柘寺,春节前来这里的人并不多。我们两个来这里是为了追求一丝平静。因为过去的一年实在有很多不利的事情发生,心里希望寺庙能够给我们一些好运气。大雄宝殿边有个告示,是告诉大家佛家将“种善因,得善果”,因果报应理论,劝大家多行善。如果是冷眼旁观,我会觉得这是一个心里暗示,告诉你应该做好事,因为会得善报,不应该做坏事,因为会得恶报。这是一个积极的心里暗示。而我从这里也得到了一点平静,因为它让我朴素的感悟到佛教在教化世俗的过程中,它的基本价值观是积极的。我之所以会觉的最近做事很晦气,很大的程度上是因为我对自己进行了过多的消极心里暗示。

    上次在OpenParty的聚会上面好看簿的蚂蚁同学就指出过我的一些说法都是消极心里暗示。

    虽然我不笃信佛教,但是我可以从它的智慧里面得到一些好的暗示。那就是坚持积极的生活态度,谨慎认真的修身养性,以达到自己所希望得到的结果。我在寺庙里面好好的烧了一炷香,然后跪在庄严的大佛面前好好的进行了自我反省,我问自己希望得到的(愿望)是什么,过滤掉自己过多的贪欲,然后问自己达到这些愿望所需要做的是什么。然后,我就知道我应该怎样做的。

    回来的路上,身上轻松了很多。在路上开车心态也平衡了很多,不去斗气,平和的和老婆谈话。感觉健康了很多。努力的做那些积极的事情,期望达成那些积极的愿望。积极的心里暗示,好像“种善因,得善果”。

     
  • tin 6:00 am on December 17, 2008 Permalink | Reply
    Tags: NoneTeck.非技术, , , , thinking, , ,   

    工具-不会用不丢人,怕会用才丢人 

    工具就是进行生产劳动时所使用的器具。工具的目的在于提高生产劳动的效率。感慨于一些真正的Geek的blog,我也想了一些工具对于我的重要意义,用来作为下一段的目标。

    人家说工欲善其事必先利其器,还有磨刀不误砍柴工,实际上在说明工具对提高工作效率真的非常有意义。

    今年的我,上游离于前端开发和后端开发之间,同时我还要在两个不同的团队(ThoughtWorks StudioCruiseMingle两个产品开发团队)之间切换,所以对于我来说频繁的需要Context Switch(工作环境切换)。两个团队所使用的技术也不同。

    • Cruise是一个标准的Java团队,大家的开发工作站都是Ubuntu环境,IDE是Intellij IDEA,源代码控制是Mercurial(aka. HG),自动化构建脚本基于Ant,持续集成工具就是自己开发的Cruise。
    • Mingle团队是标准的JRuby on Rails团队,大家开发机器是Macbook pro或者Mac mini,编辑器是TextMate(JRuby部分有IntelliJ IDEA的工程),源代码控制是Git,自动化构建脚本基于Rake,持续集成工具有两个,其中提交前使用的precommit CI是基于我们公司的开源产品CruiseControl.rb,而主持续集成服务器是基于Cruise(也就是前面那个团队的产品)。
    • 两个团队所使用的敏捷环境是Mingle,用过Mingle的朋友知道,这个NB的工具的可配置性很高,这两个团队的Mingle项目模板区别很大。
    • 这两个环境的区别还是相当大的,而且每次我切换了团队(大约2个月的周期),我很有可能就需要很大的更新我的Macbook pro上面的各种库。
    • 当我做前端开发的时候,我还要切换与我的Mac上的Photoshop CS3和Mac的VMWare Fusion上的Fireworks中(使用Windows的Fireworks的原因是授权,我的正版授权是Windows的)。使用Fireworks的原因是我们的设计师使用它,所以我需要使用它来调整一些小的设计。
    • 在做Javascript逻辑的部分,我需要在Firefox 3/2、Safari 3、IE6/7(VMWare Fusion)之间切换,每个浏览器都有不同的附加调试工具(主要的三个Firebug、Inspector、IE Dev toolbar)。

    我想对于一个强悍的程序员(最近比较崇拜的delphijhdcola云风等神人)来说做这样的环境切换也许还是可以的。可是对于我这个不善于multi-task工作的人来说,马上让脑子适应不同环境,熟练使用不同的工具就成为了一个挑战。

    所以,结果是,这一年中,我基本上对于这些工具很少深入学习,基本上就是凑合着使用,如果没有通用的快捷键我就懒得去翻手册学习了。结果就是使用HG的queue功能(超级有用的qnew、qrm、qpop、qpush系列)的时候经常把自己搞崩溃(今年居然有和李彦辉教授在pair的时候搞丢了2个小时内的修改,相当丢人),所以后来在使用HG的时候异常小心,生活在心理阴影下面。而对于Git,我居然完全没有使用过stash功能(和HG的queue类似)。昨天胡凯还问我是否用过bisect,是一个折半查找坏提交的功能(在HG和Git里面有等价的功能),我完全没有使用过。因为这些精巧的基于命令行的源代码控制工具对于程序员来说非常之重要,从这个角度体现了我对于工具的不求甚解达到了什么程度。突然想到梅兰芳里面十三燕那个很棒的台词“输不丢人,怕才丢人”,用不好工具没事,但是害怕学习用工具那就是很丢人的问题了。

    那么自我分析的结果就是,由于环境切换,我缺少了专注,形成了对学习环境中的工具的恐惧,最后影响了我的工作效率。

    下面的内容用来自勉,分析一下工具对于我到底有多么的重要(也就是说这个是我使用和学习工具中比较Happy的部分)。对于还没有注意到工具重要性的朋友,可以关注一下,看看是否有所借鉴。

    1. 关于GTD:去年看了不少退墨的文章,我深感这种意为减轻压力的“Todo list“对我的重要。最早我使用了文本文件来记录,每天一个文件。但是后来发现跨天完成的任务使用这种方式不好,需要手工拷贝。所以后来按照每个Context(家、单位、电脑、手机…)放一个文件,然后使用日期作为风格,跨天的任务我就拷贝一下,这个文件本身放在EverNote里面实现多平台共享。但是后来我发现这样也不好,因为不明显,也不好做计划。再后来我开始使用iGTD,发现似乎不错,它的结构比较简单,而且它分开了context和project两个概念,所以像“OpenParty、Mingle、Cruise、梦想”也有了自己的归宿。GTD的做法,please google之。
    2. 关于工作和休息的切换:一开始我惊艳于Livid修改过的TimeOut这个软件,但是它运行的经常很慢。后来我使用了原版的AntiRSI这个抗劳损软件,它的原理就是根据你设定的时间提醒你做短休息(一般是15分钟,站起来休息30秒),还有长休息(一般是45分钟,站起来休息5分钟)。再做结对编程的时候弹出它可能你的pair会有意见,但是你需要通过它的实际效果来感动他们。结果是Mingle的队友已经基本上都在使用它了。
    3. 分布式版本控制工具:DVCS可以帮助你更好的管理本地分支,让分支变得轻量,而且它还可以帮助较大的分布式团队更好的管理自己的本地主干。而且他们里面还有很多帮你管理提交习惯的工具,比如前面提到的提交队列工具,可以鼓励你使用更加频繁的本地提交。当然使用分布式版本控制工具的前提就是你要仔细阅读一下hand book,学习一下他们的基本概念和原理,这样才能达到更好的效果。
    4. Feeds工具:我使用Google Reader阅读文字型RSS Feeds,使用iTunes订阅Podcast。
      • 阅读工具多了去了,你的选择很多。但是要做的是学会更好的使用这些工具。今年从Patrik lightbody那里学会了重构Rss Feed订阅的重要性,要减少一个feed使用多个tag进行管理,因为一般鼓励在一定时间段里面保持未读feed不要积攒太多(这就失去了持续阅读的能力),但是如果使用多个Tag标记feed,那么在统计未读条目的时候往往会重复统计,会造成很大的阅读压力,而且对于给自己的不同feed组定不同的优先级也不利。
      • 所以我首先做的是将所有的订阅单一化,分类清晰了很多。分类有一个小技巧,不要对个人博客按照主题打标签,比如以前我给robbin的博客打上java的标签,而livid打上了apple的标签,那么在我决定要看哪个标签下的主题的时候就会感觉很迷惑,因为个人博客都没有固定主题,所以这些标签就编程没有意义的误导了,所以我现在对于这类feed直接标记为“Interesting Person(有意思的人)”,我可以给这些人很高的优先级。
      • 另一类是如GizmodoLifehacker这种信息门户型,他们每天要更新50+的新条目,所以我把他们放到一个单独的如news portal这样的分类里面,我可以给他们很低的阅读优先级。
      • 不同优先级的条目在Google reader里面还可以对应列表/展开的方式查看,可以很好的提高使用效率。再有就是Google Reader的快捷键,在吃午饭的时候,右手用来吃饭,左手可以通过一个空格健来实现滚动和查看下一条,s是标星,Shift+S是共享,这个基本上就可以实现单手阅读了,很方便。
      • Podcast是坐地铁上班时很重要的学习工具:因为地铁和很多交通工具非常拥挤,即使带上书也没有空间看(尤其时备上电脑上班的我们)。所以在非常拥挤的时候我会选择听音频的Podcast,如锵锵三人行(了解时事)开卷八分钟(了解好书,不过越来越没意思了)、Ruby on Rails Podcast(Rails的)、RailsEnvyTackSharpJDD主讲的关于摄影)等等。在不是那么拥挤,也就是胸前有10厘米以上空间的时候,我会选择看视频Podcast,最精彩的是TED Talks的演讲,不错的有Apple Quick TipsX-Play Game Previews等。用这种方式消磨时间比用PSP好很多。这是一个购买iPod touch 2的理由^__^
    5. 信息分享服务:这个又是一个很大的话题。大家在聊天的时候经常感觉很有收获,原因是兴趣相投的人在互通有无可以带来很多的有用信息,而不是像电视的新闻节目或者报纸那样给你带来没有针对性的噪音。社会化网络SNS实际上是个很好的分享有用信息的平台,可是我不是很喜欢facebook等给我带来的参与压力,所以我一般通过一些通用的分享服务来满足自己的需求。
      • 我一般通过Last.fm来实现音乐播放历史的跟踪,通过它的推荐服务来发现一些我喜欢的音乐。这实际是一个相关度算法的应用场景,它不同于简单的试听型的网站(现在国内的xiami.comkedou.com我觉得基本上属于这种类型),它的目的不是给你知道的音乐听,而是根据你听过的音乐推荐你一些音乐听,收集音乐品味的过程叫scrobbler,我在使用iTunes放音乐以后会被自动同步到last.fm并用来做数据挖掘。使用Last.fm服务需要注意的就是要及时更正你的mp3-tag信息,这样你提交的数据就不会是垃圾,这对未来享用推荐服务非常重要。但是现在我发现的一个问题是,由于中文有简体和繁体,所以很和多时候Last.fm的亚洲歌手的名字都会出现多个版本,这给推荐带来了难度,也许国内的服务上可以帮我们解决这个问题吧。使用iTunes的朋友可能苦恼于mp3-tag信息乱码,那么使用Glider开发的ID3Mod2这个软件。
      • 看电影和看书通过豆瓣就很爽了,我对它使用的很初级,但是豆单等已经聚合过的相关分组已经可以给我看电影很多启发了。使用豆瓣这样的工具我们要做的就是尽量及时的更新你的阅读列表,这样豆瓣得到你的更多数据,那么推荐也会更加准确。
      • 我非常珍惜Google Reader的share功能,尤其是share with note。因为这个几乎是最好的和靠谱的朋友分享信息的手段,我一直认为这个是最好的一个人肉过滤器,你的朋友圈子越准确,得到的share也就更符合你的品味。自己在share的同时,可以看到你的share的朋友就和你做了非面对面的交流。而且有的时候如果你1个月没有读feed,已经无从看起的时候,完全可以把他们置为已读,然后去看朋友的分享。这减少了很多信息过滤的成本。
      • 最后一个重要的分享服务就是Twitter了。Twitter解决了你不能和所有的你想交朋友的人聊天的缺憾,这样你可以轻松的follow业界大牛,如d2hkent beck等。它也是一些重要信息的最快速发布场所,同时也是一个重要的社交场所。在使用Twitter以后我发现我甚至越来越少的在使用IM软件了。使用Twitter这个工具你需要做的就是有节奏的发信息,而不是三天打鱼两天晒网,这样大家不会因为你太贫而退订你,也不会因为常年见不到你的twitt而忘记你。
    6. 信息存储服务:网上看到好东西我们经常想收藏,这种行为叫做网摘,最早我使用CyberArticle(荣幸的买了正版,用的很High),而后用了Linux,所以改用Scrapbook,作为firefox的插件它是跨平台的。此时我的同时推荐我使用在线的Google记事本,这几个软件都能很好的做网摘。但是这几个软件的缺点是缺少协作,那么后来最常见的就是社会化书签应用,delicious,在浏览器装个插件以后它可以帮你用tag管理书签,好处是还顺便帮你做推荐服务,很方便。后来我发现并非只有这些数据需要存储,我们还需要网络磁盘服务,这类服务很多,我个人倾向于使用Dropbox,它的好处是各个平台都有客户端(Win、Mac、Linux),而且是用户空间磁盘系统,用起来和本地磁盘一样,它同样可以用来在项目组之间共享一些文档、电子书等。最后,我还推荐一个类似M$的OneNote的免费在线文档、及数据存储服务EverNote,我用它来存储一些简单的文本文档,还有用它写一些视频note,因为它有一些方便的工具帮你来做音频或者视频的记录。(对了,还有梦断代码里面描述的难产的软件Chandler,它是一个本地的数据中心软件)
    7. 快速启动服务:就是使用键盘快捷索引的启动工具,有代表性的是QuickSilver(是Mac下的,详情看Robbinlu的这篇blog),它显然比Mac自己的Spotlight好用(而它又比win下的很多桌面搜索强很多很多)。通过培养这样的软件可以帮你极大的提高效率。Windows下有launchy也很不错。
    8. 还有很多,但是我没有必要一次全部说完……

    下面要分析一下我做的不好的地方,迎来跟踪我的改进:

    • 没有认真的学习Git和HG的用法,没有很好的贯彻他们的最佳实践。
    • 没有很好的学习shell。很少给自己写脚本来提高每天工作的效率。对很多*nix命令还很不了解,如wc、du……,对于微语言awk等不了解,这就限制了我制造自己的组合工具的能力。
    • 没有学习如何使用Mac的automator和appleScript。
    • 对于C语言的了解太初级,还是大学上课的水平,而它又是读懂很多code的关键(我并不想成为c程序员)。
    • 没有很好的整理好自己在各个网站的帐号。所以经常忘记去使用这些服务。
    • 没有很好的整理自己家的硬盘,没有对里面的电影和音乐进行过删减。因为数据也会过期,如果总是舍不得那么它们都被积累为工作噪音。所以要勇于与过去告别。
    • 没有好好学习Photoshop和Fireworks的使用,总是在使用低效的重复劳动。
    • 没有管理好自己的博客。我今年做了的事情就是把blog从BlogJavaLive Space移动到了朋友的机器上的wordpress上,但是由于访问速度比较慢,而且离线的时候写东西不方便,我今年也很少写blog post。
    • 没有学会使用一个有效的照片库软件,iPhoto的分库功能我最近才知道,不过没有认真整理(要减少单个iPhoto Lib的大小,这算个最佳实践)。我也应该学会使用一个LightRoom或者Apeture那样的面向摄影的后期软件。
    • 没有学会使用图片分享服务,我游离于flickr、picasa web和好看簿之间,前两者现在都有了iPhoto客户端,但是我还没有很好的使用。在9的内容做好后,我要更好的利用图片分享服务。
    • 没有很好的学习Ruby on rails,虽然一开始仔细阅读并且也用1.0的rails写了些小应用,但是我的知识没有及时更新。
    • 没有很好的清理自己的数据遗迹,我这个人很注意备份,但是没有注意清理过期的备份,想个好的工具来解决它,如TimeMachine。
    • 没有使用好Facebook和Linkedin这两种SNS,它们实际上能够帮助我很多
    • 没有利用好我买的图书,书是学习工具,而不是收藏品,我没能很好的阅读它们。

    暂时先准备写到这里,其它的关于工具的话题我会另开post来总结。(最后更新于2008年12越21日)

     
    • Sparkle 4:03 am on December 18, 2008 Permalink

      可以另外开一篇专门说ipod touch吗 :)

  • tin 2:19 pm on October 18, 2008 Permalink | Reply
    Tags: thinking, , , , , , , 旅行 澳大利亚   

    我的旅行的意义,去澳大利亚后 

    我在想,我为什么和老婆去澳大利亚旅游。我们旅行的意义是什么?

    记得今年我读了阿兰德波顿的旅行的艺术,里面探讨的就是旅行的意义。我记得书中说旅行是为了验证什么或者逃避什么。那么我们去澳大利亚是验证什么或者逃避什么呢?其实在去之前我并没有问我自己这个问题。

    我很怕在熟悉的人面前出丑,但是到了陌生的环境我感觉我就自由了。这种现象在幼儿园的时候就有了,爸爸来接的时候我都特别乖,特别的沉默,但是爸爸走了我就怂恿身边的小伙伴们做坏事,气老师。这些其实我也记不清除了,是爸爸和我说的,老师抱怨过,我记忆中就是身边的男孩女孩都特别听我的,而且我记得做得最好的就是我能够让他们在做了坏事以后不说是我让做的,所以我一直以为我是非常安全的。不过,实际上是怎样我也不知道,我所认为和我所记得的都是在那个年龄的心智范围以内的。

    去了澳大利亚这么远的国家我就不怕出丑了,我就又可以自信的做自己想做的了。自信,不怕出错,感觉很自由,就像回到了童年。回到童年是非常快乐的事情,因为童年在我的记忆里是个太快乐的年龄段了。那个时候搜索所有的记忆也只有两件害怕的事情,一个是“从山上掉下来”一个是“杀人”,其实都是梦境。梦境里面梦到过很多次和爸爸一起爬山,爸爸总是爬在我的前面,而我跟在后面,我们爬的是笔直的峭壁,我非常害怕,但是最后还是掉下去了,身上会感受到失重的感觉,非常可怕,因为我是个恐高的人,我能做的就是呼叫我爸爸,呼叫,大声的呼叫,最后我醒了,自觉的下地去撒尿。嗯,这个恐高症的梦原来就是意味着我要撒尿了。另外一个是在上了小学的时候会做的梦,我会杀掉Turtle同学(是我的发小,最好的朋友(之一)),一般就是用铅笔戳死或者用手攥死。这种梦很离奇,因为杀人以后Turtle同学就神奇的消失了,而且我每次都没有看到我杀掉他的细节,只是强烈的知道我杀了他,然后就是好害怕,开始想念我的好朋友,开始害怕蹲监狱,害怕见不到爸爸妈妈,最后几乎都是哭醒的,不过哭醒以后我发现我没有哭,甚至眼睛里面没有湿润,爸爸妈妈也没有听到我哭。这个梦大概是说那个时候我在意的这些人吧,我怕失去最好的朋友,怕失去爸爸妈妈。那么这两个噩梦就是所有了,其余的记忆都是那么的鲜艳。

    澳大利亚就是这么一个鲜艳的国度,鲜艳的要命,就像有生命要从那鲜艳的颜色里边爆发出来,都咄咄逼人的让你目眩。它让我想起了我的童年,我可以和我的老婆撒娇。我终于可以拉着一个漂亮的小姑娘的手一起在大街上面看到所有的东西都兴奋的大呼小叫了。小的时候我不好意思和女孩子说话,实际上在幼儿园的时候我还是和小女孩说话的。但是上了小学以后我发现女孩不能欺负,因为会被老师和父母加倍责备。还有就是我对女孩的身体感觉很神秘,很像偷偷看看,但是又不敢偷偷看,所以干脆不如不看、不听、不想,那么当然也就不说了,所以那个时候开始不怎么和女孩子说话了。但是内心里面我也想和一个打扮的漂亮的有大眼睛长头发的小姑娘一起拉拉手的,直到二十多年以后我的这个梦想才实现。这次去澳大利亚似乎就是让我牵着我漂亮的小姑娘走到了童年,我得到了我一直想要却从来没有得到的东西。我的老婆就是最爱的女人,但是她也是一个童年的伙伴,我在童年直到青年都不认识她,但是现在拉着她的时候她看起来还是一个小女孩,非常可爱,有小圆鼻子,大眼睛,漂亮的细眉毛,薄而细的嘴唇,脸上有几个小小的祛斑,耳朵又小又圆很俏皮,所以她就是我小小的女神。我曾经梦到过很多次,小的时候,我在胡同里面玩的时候,她也在某条胡同里面玩着,我在一刹那,想到了她,她也感知到了我。拉着我亲爱的女神,走在童话的街道上面,我感觉好幸福,就好像我喜欢的摄影画册,浪漫的街头,带有颗粒感的画面,我们傻傻的微笑。为什么会想到摄影画册,是因为悉尼的阳光是那样的赤裸的闪耀,穿过各种神奇的大树小树投射在我们的身上和脚下,光影就这样交错在一起,和我们的身体和空气交织。我喜欢有光影的空气,这种空气可以滋润你的心情,让心情被热带的潮湿空气软化。悉尼的空气我很怀念,那是一种湿润和凉爽的空气,水滴像是水晶的雾摩擦着你的皮肤,闪烁的广从水晶里面渗透到身体里面,身体的内部都被水和光射透了,感觉就像在天堂一样。光非常强烈,感觉心情非常神圣。童年、女孩、颜色、光影、神圣,实际上这是我从宫崎骏的动画里面读到的一些关键字。正巧上周和爱人看了《悬崖上的金鱼公主》,我很强烈的知道,即使是在童年,我也知道我要的是什么样的世界,什么样的女孩,什么样的生活。似乎这个电影就是记录的我们在澳大利亚作为一对结了婚的恋人的感受,那种童年的幸福感的回归。

    童年不怕什么,我回到了童年,所以我活得了2周的自由,这种自由是一个多彩的调色板,我们可以肆无忌惮的使用颜色。在那里很自由,即使没有那么多的钱住很好的旅馆,没有那么多的钱去吃正餐,没有那么多钱享受遍历出租车,可是我们可以享受愿意往哪个方向走就向哪个方向走的自由。我们可以放纵的用中文说一些肉麻的话,却不用担心有人会在意,我们就像风一样在城市里面穿梭,我们还可以相信我们是透明的。我们不会给城市留下什么印记,我们只求城市给我们留下一个快乐的印记。这种感觉非常的自由。

    这是我旅行的最大意义。

    这次还圆了另外一个梦,我看到了动物世界里面最多彩的珊瑚礁。我是一个看颜色上瘾的人,在动物世界里面给我最大震撼的就是大堡礁,那里有最神奇的颜色。记得小的时候我学过很多年的绘画,其中最自豪的就是在最初的配色课程上面老师总是夸奖我,那个时候就是在一个鱼的轮廓上面填充颜色,鱼身上的鳞是相同的几何图形,你可以发挥的想像让它变得五颜六色。那个时候的我很自由,所以我会按照我的心的方向去填充,所以我就有了漂亮的的图画。但是在后来那些灰色的学习会话的岁月里面我却只记得我错过了变形金刚,我错过了太多太多的周六晚上才有的动画片,就是因为我要去学习画画。所以在后来我在绘画方面没有任何发展,现在不过就是比从来不画画的人能画出圆润一些的线条,其它的所有技能都退化了。大堡礁就在我的面前的时候我又捡起了对颜色的那种自由的饥渴,我感觉我又可以自由的享受颜色带来的兴奋了。生物选择使用绚烂的色彩绽放自己的生命!所以颜色就是生命的象征,我喜欢颜色,实际上是因为我喜欢我们的生命!我在水中不停的呼唤我的亲爱的老婆,喊出不知道名字的鱼的名字,拿起活着的蓝色海星给她摸,我非常喜欢给我身边的朋友讲生物知识。虽然现在我的生物知识已经不如小学生了,但是我依然可以享受讲解那些不清楚的记忆里面的知识的快感,分享知识在任何时候都可以给你快乐。亲爱的老婆也非常兴奋的听我胡乱编造出的各种介绍,并且认真的问问题。浸泡在颜色中,享受分享快乐的幸福,这是大堡礁给我的。

    在丹特里特的雨林里面,我们还划了独木舟,和亲爱的人一起冒险。水是透彻的,因为透彻,所以我就不会恐惧。一直认为密西西比河是可怕的淡水河,因为淡水里面总有奇怪的张牙舞爪的水中生物。但是在丹特里特的清澈小溪中,没有未知,所有的东西都浸泡在透明的水下,所以我不用鼓起勇气就可以用双脚去接触小溪的鹅卵石,却一点都不担心有奇怪的水中生物。我们可以看到好笑的王八和小鱼在水里游泳。

    我的感情就随着这样的旅行得到了释放,得到了慰籍。我想这就是旅行的意义吧。

     
  • tin 2:32 pm on September 24, 2008 Permalink | Reply
    Tags: , , , thinking, , , , ,   

    良心能够保护你自己! 

    沉默了很久,但是这句话要喊出来!良心能够保护你自己,问问自己的良心吧。

    老婆写了一篇文章很不错的日记发生在我身上的小故事来谈谈信用问题,里面记录了上个周末我们逛灯具市场的时候遇到的一些“信用”问题,我们总是需要费神的侃价,才能稍微看清我们买的到底是个什么档次的灯。之所以感叹这个司空见惯的事情,是因为我们去澳大利亚旅游的时候看到了很多的诚信,而诚信在商业上体现在定价的自信上。我们看到的澳大利亚商人,尤其是小商品市场的商人,他们对自己的定价充满了自信。我们经常可以看到如冰箱贴这样的小商品,在他们的摊位上可能明确的写着一个3元,两个5元,3个7元。我们习惯侃价,所以问老板是否可以优惠,老板会指指板子上写的价格。那么我们会追问,那4个呢,老板会拿出计算器,3+7=10元,完全按照他写的规则来。这种死板的定价方式体现的是老板对定价的一份自信。回忆起来那里的大部分人都有这种自信。

    而继续回忆,在澳大利亚我们不仅看到“自信”,更多的还是信任。比如,我们去住他们的度假村,我们说我们要出海去玩,老板就拿出两条大浴巾给我们,说出海这个用的上,当然他们信任我们会在离开的时候还给他们。街边的饮水机旁边还有抽拉纸巾,遛狗人多的地方有免费的宠物便便袋子,国家植物园是开放的,公园里面的芒果树上掉下的芒果大家也可以自助,社区里面也有公用的烧烤架,众多的方便实际上都是基于信任,大家都回按需消费这些东西,支付的是“信用”,积累的也是“信用”。

    我们宏观的问问自己,“诚信”和”信任“哪里来?我觉得从良心里面来。用良心这个词是因为它非常朴素,我们也可以说它是”道德标准“。我相信朴素的感情里,人都回体现出良心。

    上周和ThoughtWorks的胡凯,是我在Cruise的队友,热爱背包客文化。他和我说起曾经背包在云南步行过3个月,经常是走饿了就去田边的老乡那里讨口饭吃,老乡经常就分享出自己的”馍馍“来,并且绝对是不要胡凯的钱的。遇到好客的,胡凯还被邀请去人家一起吃过午饭,临走还拿到了老乡现采的很多脐橙,然后又拿脐橙作为报酬搭了顺风拖拉机。听起来感觉很美好,背包客非常崇尚”缘分“。我认为,”缘分“在这里其实就是朴素的良心的体现。我记得动物世界说大象是不愿意看到同类的尸骨的,他们会远远的忘着其它大象的尸骨,并且哀鸣,即使完全不认识这些尸骨的主人,并且他们走近尸骨的时候都回被“吓跑”。我觉得大象的本能是一种设身处地的朴素感觉,他们怕自己死掉,所以会对死者表示哀思。那么对于人类,这也可以更加高级的表现为看到别人有难愿意帮助,看到别人高兴自己也会高兴。

    看来完全不相关的事情,其实都是良心。有良心,你可以看到朴素美好的感情,没有良心,你可以看到互相的不信任,欺诈,甚至是幸灾乐祸,还有很多到了恶毒程度的感情。

    现在,还没有解释为什么一定要写这篇blog。因为有毒奶粉的问题。因为我怕我也成为沉默的大多数。

    在我们公司,因为零食和饮料是免费供应的,所以冰箱里面的东西往往是提前储备好的。这次的毒奶粉事件我刚听到的时候没有在意,因为我国的食品安全问题是常事了,常见也就容易麻木。前天收到我们公司的一位新妈妈给公司集体发的一封信,提醒大家不要让声音就这样越来越小,提醒我们要注意身边的各种奶制品的安全。同事她也说到我们公司冰箱里面的蒙牛奶已经全部更新为三元的了,而提醒我们公司更换奶的人是我们一位国外的PM。听到此事有点感慨,我们公司的外国同事在公共问题上都有很强的责任感。以前有人上班用音箱放音乐,我的同事bobby就发信解释因为每个人的品味问题,所以可能每个人对所放的音乐的反应不同,所以提醒大家最好用耳机。后来有人用P2P软件看电影,网管出来说希望大家不要用了,bobby也站出来写信跟大家解释为什么。我的意思是说,我们不能沉默(龙应台的文章:中国人,你们为什么不生气?),我们要负起责任。公共责任也是良心的体现。

    我的文笔不好,写点文字总是形散神也散。上周周末我们非常成功的又举办了一次Beijing Open Party活动,我这次又当了主持,回家的时候我感觉非常累,身体累,但是精神上非常满足。因为我感觉我为社区贡献了我的力量,这是我的责任,我认为它是我能做也应该做的一件事。我又想起我平常面对我的工作,不管是我在新浪的时候做新浪邮件,还是到了ThoughtWorks工作在Cruise和Mingle项目之间,都有一种良心在驱动我所写的程序,我怕我写的代码会对后来维护代码的人带来麻烦,所以我感觉我没有写出什么不负责任的代码。我怕,但是怕的感觉让我按照了良心做事,没有出轨。

    那么如果我们的同胞都能保持孩童时的朴素感情,我想他们一定不会越轨去制造这么多可怕的食品安全灾难,那样我们就可以有足够的自信,有足够的自信为自己的服务定价,我们就可以在离开世界前都无愧于良心了。从我们自己做起,不要再带来新的灾难了。我们不能闭嘴,我们不能保持沉默!我们要告诉自己,也要告诉别人,我们有权生气,有权表达我们的想法。

     
  • tin 2:29 pm on August 19, 2008 Permalink | Reply
    Tags: , , thinking, ,   

    说说我以为的RIA与Rich client 

    中午徐X和米高讲了一下Rich client的架构。其中徐X讲的是如何从单机分层系统到Rich client。

    实际上最早的单机分层系统的UI部分激发了OO作为界面的编程模型。然后分层模型为了C/S结构发生了一些变化,目的是共享数据和通信,但是由于OO在远程调用上面的失败应用(Corba,EJB,Dcom),所以让人对OO产生了怀疑(实际上只是用错了地方)。而后又发生了B/S的变化,是一种完全的中心共享方式,原因是HTTP的无状态性造成客户端很难保存state,所以就有了完全中心共享状态的架构。而后通过通讯的增强(Ajax),客户端的状态保持逻辑通过异步通信来增强,所以产生了更好的用户体验。但是对状态同步的进一步要求和对会话状态保持的进一步要求让Ajaxian了的应用还是有点难以承受,所以Rich client又回归了。当然回归的时候同时带来的还有新的编程模型,如基于标记的声明式编程模型,还有更方便View-Model同步(通知)的数据binding机制,布局管理器,绘图支持能力,多线程能力,内嵌的视频编解码能力。其实WPF作为Windows上的新型UI编程模型他的确从Mozzila的XUL还有Adobe的mxml吸取了一些经验。上面这些是徐X阐述的主要内容,很精彩(最后的编程模型是我加的注释)。

    而后米高做了一些技术层面的对比,主要是对比了Web和rich client的区别,不过我比较失望^___^,因为对比有失偏颇,原因是米高只用了5分钟准备ppt。

    最后是我的意见。我现在已经不想割裂的分开Rich client和Web上的RIA,实际上目前他们已经有走向统一模型的趋势。

    去年在InfoQ写文章的时候我就表达过这个意见。今天徐X也强调了,经典的MVC实际上很重要的是解决了数据共享(同步通知问题)与状态(会话)保持的问题,所有的架构问题其实都围绕了这个问题。首先RIA里面已经开始了layout数据分离的加强过程,比较明显的就是声名式的组件组合配置,还有数据绑定模型,这个在Flash和Silverlight还有JavaFx都有着重的解决,而且方向都很类似。其中Silverlight其实是一个减缩版的WPF。然后我们从架构方面来思考,解决状态共享和传递是通过增强的双向通信能力来完成的,很多RIA框架在开始提供web socket模型,这样让通讯超过无状态的且单向的HTTP,包括HTML5(目的是扩展Web上常用的一些Object,增强Web的编程能力,且让很多元素得到正确的语义,这个与XHTML2的关注点不同)的草案里面也有Web socket(类似socket的编程对象,可以实现二进制协议的面向连接的通讯)的提案。当然些努力就是让实现消息传递的开销更小,时效性更高,配合线程概念的支持,就可以实现复杂的基于消息的异步界面逻辑(这会极大的扩展RIA应用的能力)。因为通讯其实是解决状态共享的一个方向,通过高效的消息通知达到多个消费端的状态共享。另外一种解决Browser端状态同步(这里主要指客户端与服务器的数据库同步)的方法就是离线存储能力,这样削弱客户端对服务器的依赖。这种解决方案的代表就是各种Gears,Google gears,dojo offline等等,他们在浏览器里面嵌入sql lite一类的数据库,让客户端有自己的结构化存储能力,对于没有多客户端数据同步要求的应用来说离线方式可以让客户端形成完整的编程模型,通过sync机制在连线的时候进行数据同步是一种非常帮的RIA发展方向,从这个角度它已经是Rich client了。

    那么可以扩展一下。我们知道Lotus Notes有服务器端replication的模式,离线会存在本地,连线的时候再同步。而对于另一些应用,极端地如Skype,他对实时的同步要求很高(当然它属于通讯类应用,也就是3C中的Communicate,而不是Content system),Skype的解决方案就是p2p。如果RIA有了socket(当然还有跨域支持),有了多线程,那么p2p是不是也不算难事了呢?状态同步通过p2p来实现,虽然不是可靠的通讯方式,但是却符合Internet的最大努力原则,所以我觉得这两种技术的结合的确很容易让RIA和Rich client不在有明显的界限,未来的目的就是融合。所以,要注意的是为什么微软拼了命在推Silverlight,而且拼了命的公布了Mac和Linux版本的Silverlight,其重要原因就是让WPF的模型渗透到RIA,用Rich client围攻RIA,来解决Adobe用超级NB的Air这个RIA衍生来围攻Rich client的困难。

    这样,我们知道2年前开始声音渐强的Offline storage和越来越强的绘图,data binding的意图了吧,融合已经开始了,目标当然就是吃下这个大平台,然后成为最大的赢家!

     
  • tin 10:14 am on July 27, 2008 Permalink | Reply
    Tags: , , thinking, , ,   

    防止脑子坏了 

    Limo说我总喜欢把twitter的内容和google reader贡献也聚合到我的wordpress (blog)里面是个非常不好的“恶习”。可是我觉得实在是没有办法,因为现在我能产生的唯一一些有价值的信息估计都在twitter的bitching里面或者google reader的人肉过滤结果里面了。当然,如果3个以上的朋友在twitter或者邮件里面也同意Limo所说我就停止这样的做法。

    博文标题说“防止脑子坏了”是因为最近一年经常发生上下文丢失的事情,就是说本来是想做事情A,但是实际上却转去做了事情B、C、D,结果最后一件也没有做好。还有一种情况是要实现一个目标,结果遇到了问题A,结果为了解决问题A又发生了问题B,我又调查了问题C、D、E都没有解决问题B,造成最后很疲惫的一件事情都没做好。我觉得这种情况发生的原因是“思路的丢失”。在一个人的思考习惯有问题的时候就容易发生这种丢失思路的毛病。

    这种丢失思路对于我这种看到什么都感兴趣的人来说就造成了什么事都做不专。可是我一直以来是以做事情做的专业自居的(为了我的自信心,不要反驳我的这个说法)。在和Limo pair一些东西的时候我也发现了这种情况,他说你做事的方式有改进的空间。因为我这个人本性里面缺少决断力,所以做事犹豫,所以就需要更多的理由来支持自己,所以非常容易发生分支思路。如果所有的分支思路都去cover一遍,那么付出的努力就会很大。无法让问题收敛并最终达到一开始的目标。

    我现在已经意识到了这个问题,我正在思考解决的方法。我听说钱钱同学在学习决断力的课程,我相信用处不大,因为人的思考方式没有那么容易就通过学习班提高。今天我尝试了冥想的方式,自己感觉身体的每一个部位的存在,发现这种类似健康治疗的方法对于集中注意力非常有好处,感觉这是个路子。然后开始执行的就是在电脑工作的时候开一个文本记录思路和所有做过(要做,尽量让要做的分支工作进入堆栈,推后处理),在其它地方做事就尽量用本子记录同样的事情。短期看,已经发现了做事效率的提高,起码减少了不少分支的发生。待续…

     
    • Alex 11:28 am on August 4, 2008 Permalink

      哈哈,看来这个现象越来越普遍了。

      为了改善时间管理,现在流行GTD,我也在用rememberthemilk,但是过了一段还是会混乱。

      现在,又回归部分原始: 用笔和纸,感觉很亲切

    • tin 12:20 pm on August 4, 2008 Permalink

      我也一直在学习GTD。我用文本文件,和ThinkRock,主要是在线服务没有手机无法保持什么时候都可以用。纸质本本还是很好用的,共勉。

  • tin 2:57 pm on June 30, 2008 Permalink | Reply
    Tags: , , , , thinking,   

    准备可扩展的网站-架构与部属 

    这个幻灯片是我为Beijing Open Party所准备的,好看簿也有图片版本。欢迎所有对网站可扩展架构感兴趣的朋友一同交流,也欢迎参加Beijing Open Party的活动。

     
  • tin 2:39 pm on May 2, 2008 Permalink | Reply
    Tags: , , , thinking   

    重构我人生 

    我是一名程序员,但是其实我从来没有规划过我会成为一名程序员。从小我的爸爸就培养我的各种兴趣,其实所有的兴趣对于我都是一样,兴趣本身不是目的,收获的是一种态度,这种态度会指导我的生活。所以我有了现在,我是一名程序员了。

    那么这个引子的目的是想说我的程序员中最大的收获,这个收获就是方法和态度。这个名字就是敏捷,敏捷就是这几年以来我接受的最有用的一个态度。敏捷是一个基本的不能基本的概念,但是我在这里不想展开,但是敏捷的所有方法中都提到的迭代与反馈的方法。而人生也是这样的,年复一年人生在迭代,每年我们都会回顾这一年,给这一年的生活一个反馈。所以说基本上我们的生活也可以是一个敏捷过程,那么我们还没有做的是通过改变自己的生活提升自己生活的质量。这个过程我们可以用程序员的一个术语,重构来描述,当然这是片面的。重构就是在不改变程序结果的情况下重新调整逻辑体,为程序的改变或者提升可读或者正确性等尽行的改变工作。那么人生也需要自己从自己的生活中找到可以提升效率或者改进行为方法的地方,为未来的变化做好准备。

    扯多了,但是这个问题其实简单,所有的自发的变化都有可能产生重构的效果。那么这一段时间我进行了什么重构呢?

    • 1、开始消灭我的个人电脑的硬盘分区。从很就以前我的Windows机器的硬盘都是有很多分区,里面力图放相应的内容。但是后来发现这样一点也不好,因为最后数据的无序造成分区的最早企图的失败。那么后来我发现Unix的树型管理很科学,你也可以把不同硬盘/分区挂载到树的不通节点,很灵活。而且Windows的盘符其实和目录没有本质区别,但是灵活性奇差。硬盘的第二个变化就是买大硬盘替换多个小硬盘。我有80G+120G X2+160G+250G+320G这么多硬盘,放到机器里面实在费电,所以应该做的就是买500/750/1T这样的硬盘替换它们,这样省电省事。同时,随着关键数据的量的增大,逐渐我也要开始使用Time Machine备份来提高安全性。
    • 2、使用好Mac,这个的确提升了我的效率,而且也有机会接触更多Unix哲学。不是说Unix哲学怎样,而是多学习很有好处。
    • 3、读书。我在包里面放一本技术书、一本文学/哲学书、一本杂志,分不同场合查看。这个是好看簿的大野狼告诉我的一个方法,后来我发现真的很好。原因就是如果专注技术而忘记了人文知识的补充,那么人生就会暗淡下去了,所以这种方法引诱我丰富自己,感觉很好。
    • 4、重新思考自己的选择。看着我去年写的wishlist,关于一些男人的玩具,如大液晶,好手机,昂贵的镜头,这些愿望在去年没有实现,但是去年的目标都是一些“超值”的选择,但是经过一年的思考,从《身份的焦虑》这本书里面我知道对物品的期待如果画一条满足度的曲线,那么得到那个物品以后这条曲线会急速下降。所以其实我能够享受的很多就是拥有前的期待,尤其对于这些男人的“玩具”也许逐渐提高你的期待才是更有意义的。比如,现在如果我再期待拥有的单反已经是D300+17-55 DX+105VR+S 10-20+SB800这样的配置了,而长焦我基本上放弃了。而去年购入的LX-2给我带来的满足非常之大,这半年来我也的确照到了不少的好照片,记忆满满。提高的需求可以延缓无谓的投资带来的资金损失,在头脑清醒后可以增加准确度。
    • 5、经常整理你的物品/文件,删除或者扔掉没用的东西,这样可以减少下次整理它们带来的麻烦。减少没有必要的需求,让你能够享受的需求的质量更加高一些。

    等我写到这里的时候我知道题目说大了,上面的这些还和敏捷搭不上边际。但是在实施和回顾的过程中,我发现我的生活变化了,变好了,这就够了。

     
  • tin 12:57 pm on April 15, 2008 Permalink | Reply
    Tags: , mashup, saas, saleforce, thinking,   

    Google apps + Saleforce,新mashup,新SAAS 

    半年前我在InfoQ上面报道了一下SAAS的事情,现在看到这个,想想mashup的益处,很快这张大网就要收了。Google花了这么久来织网,我们看到了facebook和amazon也挤进了这班车,可怜MS,我看及时收购了Yahoo也搭不上这班车了,因为Yahoo自己也没买到车票。

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel