我觉得最大的区别就是想象力,以及把想象转变为现实的热情,Passion and Imagination
#17 楼 @Peter 另外,可以给你分享一下我的习惯,不一定都合适不过可以借鉴。
首先,一个窗口开 10+ 个标签页,这本身就是很“反人类”的习惯,因为这么一来窗口标题完全看不到了(除非你屏幕够大,但是大屏幕全屏浏览器不利于阅读,我通常都是缩小固定中央或两侧展高);标签页固然是很好的功能,但并不是只能用标签页啊!
我的习惯如下:
command + [1-9]
。这些网站会占据我每天看网页至少一半的时间,所以我对它们形成肌肉记忆了,LOL;command+n
开新窗口。新窗口随便折腾好了,不碍事的;看到比较好的,收藏之,笔记之……。当然,还会有 command+shift+n
的时候,这个……你懂得,视情况自己决定;command+~
之;如果窗口开的超过 2 个,四指向上/下滑动选择之(windows? sorry...)还有一点特别重要:请一定安装并学会使用 Vimium,这是秒杀一切的神器。
===忘记了,补充下===
如果你把常用的一组网页保存在一个收藏文件夹中,你可以用一个新窗口一次性开启这个收藏夹的所有网页,所以合理有序的组织自己的收藏夹也是一个很有用的小技巧哦,请发挥想象力吧。
===再补充个,Vimium 的好处一图以蔽之,完全脱离鼠标的必备武器===
还可以用 control+tab
和 control+shift+tab
切换标签页啊,我把 control
映射在 caps lock
键上了,所以如果用键盘的话,我通常是一根指头就搞定了……
#1 楼 @dale, @blackanger 不是什么“同舟共济”,这句话其实是衍生自 Steve Jobs 的原话:
Real artists ship
原意是“真正的艺术家完成伟大的作品”,当然原话里并没有“伟大的作品”这个词汇,不过这句话的语境揭示了这一点。Steve 用这句话鼓励他的团队完成 Macintosh 的设计和生产,在苹果的眼里 Macintosh 就是“伟大的作品”。所以 Steve 的意思是“我们正在完成一个伟大的作品,而只有真正的艺术家才能做到这一点”。
在英文里,ship
常用于表示 交付
或 上市
等意思,所以 "Real developers ship" 应该是说“能交付产品的才算真正的开发者”,用中文来讲比较接近于“说不如做”这样的意思,当然从另外的角度也是一种激励性的座右铭,效果和 Steve 的原话差不多。
vendor
这是惯例
$ git push origin :old_branch
BTW, it actually delete the remote old branch, but you get it, when it done, you can push your new branch back to the origin.
CHANGELOG 在这里:https://gist.github.com/mjhea0/6200588
#30 楼 @blacktulip BTW,15 楼是和我说的最接近的方案。试试他那个吧。
#28 楼 @blacktulip 是啊,如果你需要一个 Parser 来负责解析,而不是 Tom 的责任,那么就是如此。
简单地说,Tom 的唯一职责就是把 words 传递给 Parser,然后接收 Parser 返回的结果,你可以把 Parser 想象成为 Tom 的语言中枢处理器。——这就是我之前为啥想给 String 做 MonkeyPatch 的原因,因为我不觉得需要一个单独的 Parser,对这个需求而言。
#25 楼 @blacktulip new
只负责初始化对象,用实例方法接收 words,然后返回 response
#18 楼 @blacktulip attr_reader
定义了一个属性 + 它的 getter 方法,所以你不用初始化 instance variable 了。
我在想啊,需求列出的若干情况不都是对 String
做出响应吗?干脆给 String
打个 Monkey Patch 得了,比如增加一个 String#silly_response 方法。管他是 Tom 还是 Jerry 还是阿猫或阿狗呢,统统管用,任何一个对象只要:
# Pseudo Code
class Anything
def respond_to(words)
words.silly_response
end
end
Monky Patch 怎么打,楼上诸位都写了,我就不重复了。就说我为啥不用一个单独的类处理呢?因为 Conversation 在一个应用里 99% 都是用 String
来表示吧?(或许有 1% 的奇葩),在业务逻辑尚未表示出足够的复杂性之前,我干嘛非得专门写个类来处理本应该 String
自己就能处理的事情?
或许你会觉得 #silly_response
返回的本应该是 Tom 的责任,但我不这么看,我觉得它的返回结果是 a kind of conversation 的责任,而 this kind of conversation 我们用 String
来表达,Tom 仅仅是 响应 this kind of conversation 的一个对象罢了。
不靠谱的念头,仅供调戏用。
第一段的“本来……所以……”个人表示异议,典型的找借口。
个人比较崇拜 Gary 的 DAS 系列,感觉太牛了,无论是讲得内容,还是录制的过程,看起来很少剪辑,也很少出错。
#11 楼 @willmouse 嗯,说的没错,我就是太贪心,一次下一个会议的,想一口气看完,结果没看一半就困得不行了,呵呵。
BTW,吃饭的时候少看,以前没觉着,现在发现吃饭看东西(视频、书、代码等等)会严重影响食欲。
#9 楼 @willmouse 是呀,你要挑着发,而且发的都是很有看头的,那就是说明你都看过了呗?我就是对你这种精神崇拜不已啊~~~请问看了多少了?
我也曾经撸过,连着看两三部之后就开始打瞌睡了……
我建议楼主把 CodeSchool 的两部 jQuery 视频过一遍,以后再也不用发愁 jQuery 的问题了,讲得非常好。
敢问楼主是不是打算把 Confreaks 从头到尾撸一遍?
你可以在命令模式下,把 W 也映射了呗,反正它也没啥用处
:command WQ wq
:command Wq wq
:command W w
:command Q q
很喜欢这门语言,年初不小心在 Peepcode 上给它买了(真心点错,当时心疼了好一阵子),但是越看越觉得有味道,挺合我的胃口的。
装 Node.JS,犯不着在这上面费劲。