• 晕,一定要用表单吗?这个从语义上来说很糟糕啊。为啥不直接用链接?

  • #45 楼 @puake 我说了只是举个例子,说 codeschool 的目的是想说明像它那样的网站用什么来提供高质量的内容,用什么去留住用户,这方面做的非常好,非常清楚,用户不需要猜也不需要费力去获取。

    所以你要看明白我说的重点在哪里,并不是说非要像 codeschool 那样满足专业化的需求,但不管是哪种需求,你能不能让教的人和学的人简单清楚的看到?

    关于平台你举淘宝的例子其实是不恰当的。因为淘宝的方式有一个前提:东西已经有了(店家负责),我只负责帮他们卖。而你要创造的平台的关键在于:我怎么帮助他们创造知识?

    这一点会导致你的平台非常难做。你可以用淘宝做个类比:“卖”东西是比较单一的一致的行为,有迹可循。“造”东西就五花八门了!淘宝很清楚这一点,所以它永远不插手“造”的过程,专一服务于“卖”。

    你现在的网站能够成功,你不得不感谢你的朋友,这一点你也认清楚了——因为他解决了“造”知识的问题,你才有可能“卖”的好。现在你想要复制这个成功去做平台,谁来扮演你的朋友这个角色?

    OK,你或许会说:只要我的平台做好了,谁都可以像我朋友一样在上面造知识。真的是这样吗?你问问你自己,如果没有你的朋友,你一个人会不会把目前这个项目做成这个样子?

    这就好比你的供应商也许不会造汽车,但你也不会造齿轮。

    我举 codeschool 这个例子,目的就在于说明这一点。codeschool 的内容制造者就是他们自己,他们非常清楚他们的平台需要什么样的技术来服务于他们的内容,也非常清楚他们可以利用这个平台把他们的内容强化到什么地步。

    你要为任何一种知识的创造提供一个通用的平台,那你就得解决一个问题:你了解所有的,或者大部分的知识创造者都需要什么吗?你了解你的朋友,但这是个例。你朋友提供的那种知识,可能一个论坛就够了;codeschool 则不够;其他的知识创造又需要什么呢?

    再说,你还不能把平台造的太复杂(这是很可能的,因为不同种类的知识需求的支持不同),否则会造成大家都觉得不好用。

    另外我想送给你个个人的经验:在我的身边越是营销做得好的人越不谈论营销。恕我浅见,就你的例子而言,我反而觉得你朋友比你更懂你嘴里一直强调的营销。你不妨问问他关于你要打造在线教育平台的想法。

  • 赞一下,只因我也用 middleman

  • @chairy11 这本书不建议买中文版,因为翻译的不太好。

  • 针对你的后半部分,我想提出这样一个个人的观点:

    假设同时有你设想中的网站和 codeschool.com 这两个存在,并且两个网站的质量差不多(我是指 UI 交互 信息架构等等没有硬伤,可用性和易用性都不错),区别在于 codeschool 是定向的,而你那里是五花八门的。此时有人告诉我这两个站上都有很好的 Rails 教学,我会选择哪个呢?

    按照你的构想,你的网站是一个平台,Rails 专家可以在上面发布课程,用户可以选择跟随他学习(免费或收费)。但是有一个至关重要的问题你没有回答:学习的方式、过程、以及反馈是怎样的?

    像 codeschool 这样的网站有一个很好的功能就是模拟终端/编辑器,并且你提交的练习它会发送至服务器环境编译/运行,然后把结果反馈给你。这就意味着: 我学习这上面的知识是不需要额外环境/工具的,也不存在平台的差异化支持问题,只要是个浏览器就行。

    可别小看这个功能,它最大程度的抹平了学生特别是初学者的入门门槛——我们都知道初学者搭建环境和准备工具要费很大劲儿。

    但是这个功能只有 codeschool 自己能做,因为涉及到与服务器的交互处理,肯定是不能随意开放给外部用户来使用的,而且即使开放了也不见得能行。那么在你构想的网站里,专家们如何交付给学员学习和练习的资源呢?

    我只是举个例子,当然不是所有的课程都需要上述的那种复杂的后台支持。但是我们可以看到一个现象:只要定向的,专注于某个领域的在线教育网站,才能在教学方式上做到“能人所不能”。很多学员可能没有意识到,这才是吸引他们成为忠实客户的重要原因——至少是重要原因之一。

    前几天 @Xdite 一篇文章里讲到:先别做平台,先做好软件。我觉得很有道理,这些年我自己的工作经历和项目经历依然让我听到“做平台”就觉得头疼。平台想做大不难,但是像 App Store 那样做成一个比较完善的生态系统那可就太难了。

    在线教育类的平台想要做好,我觉得至少得想好几点:

    1. 如何保证内容的质量?要么定向,如 codeschool;要么有权威的资源,如 coursera/edx 等等;开放式平台要如何控制内容的质量?你能想象 App Store 如果没有审核机制和开发者准入机制会变成什么样吗?

    2. 如何交互?在线教育之所以在线就是为了抹除地域和时间的差距,但是代价就是师生之间的互动。如何提问?如何回答?如何评判?如何激励?

    3. 社区的建立?这个相比倒是简单的了,不过社区的存在很重要,即使实现起来不难也要考虑好做什么样的,要有什么特色,以及怎么运营。

    最后,我很赞同你的一个观点,即知识是中性的,好坏取决于如何教与如何用;虽然如何用是学生的责任,但如何教却是老师的责任。所以平不平台的不重要,保证教的好才是成功之本。

  • 你这个用 Rails 框架写一个应用的,除非代码组织的特别好,或者体现了什么精彩的设计理念,否则开源了的确意义不大。

    不过有些项目则例外,比如说 Redmine 这样的通用化的工具类 App,开源的好处大大的,二次开发啦,学习啦,参考啦什么的都用得上。

  • 这个好啊,附带了参考资料了,一般我看完就忘了……

  • 是不是对很多人来说,电子版无法取代纸质书?我觉得纸质书好麻烦,又笨重不说,勾勾画画也不方便,写注释动不动地方就不够……

  • ……我就不吐槽了

  • 书是不错,但是践行书本里的知识还需要客观环境。比如你是否有一个靠谱的团队以及你是否在团队里有决策权等等。

  • rbenv 安装太慢的解决办法 at 2013年10月07日

    为什么会这么慢?应该从自己的网络上找找原因了。我现在也使用 rbenv / ruby-build,电信 2M ADSL,速度很快啊。

  • #4 楼 @song940

    针对你提到的优点:

    1. 安装版本管理软件就为了管理多版本,甚至是一个版本的不同 gemset。修改环境变量并没有你想象中的那么“多”,像 rvm 其实就两句。

    2. 多用户共享,且不提优点或缺点,就说咱们使用的开发机器有多少是多用户共享的?而且其实 rvm / rbenv 是可以多用户共享使用的,具体看文档。

    3. 符合 OS X 的什么风格?这一点有些莫名其妙。就开发者而言 OS X 的风格就是 *nix 的风格,rvm / rbenv 之类的软件并没有违反之处。

    4. 版本切换怎么看都比手动的更方便,更重要的是一套方法可在多系统、多机器上通用,手动管理则会变得复杂。

    实际上 rvm / rbenv 所做的事情并没有你想象中的那么复杂,使你和系统之间不够 亲密,它们都是开放源代码的项目,你完全可以看看它们做了哪些事情。而且它们能做到的事情也远比你现在能考虑到的要多,没有道理会让你觉得“事情变得更复杂”。

    其实我想说的是,像 rvm / rbenv 这样的东西生来就是为了帮助开发者减少麻烦,节省时间的,我们何必重复造轮子呢?

  • Ryan Bates 怎么了 at 2013年10月03日

    其实我觉得吧,400 期已经足够了,哪怕是完全新人把这已经有的看完也不需要再依赖 RB 录这种视频了。我要是 RB 就转型了,录点不一样的东西。

  • 不想喷你,就说几句我的看法:

    1. 等等!router 难道不是 rails 的概念之一?ember 有 router 怎么就“不一脉相承”了?
    2. 如果你觉得 view 和 controller 的功能重合,那基本上是把代码写错了地方;
    3. 如果你觉得粒度过细,那大概是因为你现在做的项目用不到那么细致,从这个角度来说选择你说的 bm 没有错
    4. you really don't understand ember-data, especially with rails -- and it's not ready for stable yet.

    最后,ember 不是用来做 b/m 的替代品的,它们面向的是不同等级(通常来说是复杂度)的应用,所以如果你的应用不需要这么重,那么你觉得别扭也是正常的。所以我也不是喷你,只是补充几点。

  • #13 楼 @hlxwell grunt 可以由你来指定源目录和目标目录,配置写好了之后,拷贝/清除/转码/编译/压缩/打包/预览/自动刷新……等等等等只要你想得出来的事情都可以全自动一条龙完成,yeoman 就是在 grunt 的基础上整了一堆现成的项目模板,bower 是管依赖的只负责这一块,yeoman 默认用它,grunt 可用它也可不用它。

  • 项目文件为什么要放到云存储里面去?至少目前还没这个必要吧?为了备份?为啥不用 Github?

  • #8 楼 @jiyinyiyong Ember 不是抄 Cocoa 架构,而是核心开发团队本来就是 SproutCore 那拨人(Tom Dale 吧我记得)2.0 的时候更名为 EmberJS,Yehuda 加入把 Handlebars 带了进来。

  • Rails Activerecod callback 问题 at 2013年09月30日

    #5 楼 @Justin 我觉得你已经把你的需求描述的很仔细了,就按这个需求写个方法不就好了?

    def self.my_query
      # 改变状态
      # where
    end
    

    如果你的 where 查询条件会变化,那就先写好 scopes 作为参数传进去。

  • 直接把源文件命名为 xxoo.s.scss 不就好了?Compass 只改后缀,文件名是你做主。

  • codeschool 的视频好像是 viddle hosted 的,没记错的话。反正在上海这里翻墙之后会比较快且比较稳定,不翻墙的话时快时慢,用不用迅雷都是一个尿性。在这种事情上迅雷帮不了什么,没有太多资源可以共享。

  • 因时而异,因地制宜。

  • show 下你的 Vim 配置吧 at 2013年09月28日

    #2 楼 @luikore 那个 token 已经被删换掉了,用来测试 Gist.vim 查件的,只不过我本地的 commits 还没有 push。

  • show 下你的 Vim 配置吧 at 2013年09月28日

    其实用什么插件都无所谓,不用插件一样可以活,无非就是操作繁琐些。

    好多人对 completion 和 snippets 类的插件很狂热,但在 vim 里我从来不用,使用 vim 的很重要理由就是帮助自己思考和集中注意力。

    我常用的插件都在下面的 .vimrc 里,基本上都是 syntax 和 highlighting。

    https://github.com/nightire/dotfiles

  • #54 楼 @habbyn 沟通啥?阿森纳?

  • 说得好!

  • #46 楼 @whitecrow 这个问题是无解的,或者说答案是 只有自己才能给自己做出“一份高质量的学习路线图/攻略”

    因为学习不是游戏,没有固定的路程可走。每一个人,由于其教育背景的差异都会导致在路线选择或是优先级上的偏差。还记得最早开始学习 web 开发的时候,我也找了很多类似的“攻略”,刚开始找到的时候很兴奋,可是学不了多久就坚持不下去了。

    “别人走的路有别人的理由,拿来照搬就一定适合自己吗?”那时候我经常问自己这个问题。后来我索性也不看别人的路线图了,自己用思维导图做了个。凡是遇到的坑就把它作为一个节点画出来,标上两个数据:“截止目前我认为的掌握程度”和“对自己来说比较合适的优先级”——事实上这两个数值经常会改动的,因为随着你的知识越来越丰富,过去的判断就会需要修正。

    事实证明,只有自己做的路线图和攻略才是真正适合自己。后来有许多同事、朋友拿我的路线图去看。刚开始也是觉得好兴奋,但用不了多久就碰到同样的问题:学不下去。

    很多时候:用户反馈给你的数据是“原始的”,“未经打磨的”,大多数用户其实并不知道自己真的需要什么,也不知道自己的问题究竟要如何解决。或者是这样的:明明知道最正确的途径是什么,但是都不会照做的——懒!人性皆如此。

    我觉得面向学习的应用不要把精力放在“帮用户偷懒”上,因为这样本身就是一条弯路。“一份高质量的学习路线图/攻略” 我们仔细分析一下这句话背后的诉求是什么?找捷径!但偏偏学习这件事情是绝无捷径的。更何况如果你把精力放在找捷径上(假设真的有捷径可循),那么你要如何保持你这个应用有持续性的增长能力?特别是盈利能力?你把捷径(如果真的有)给了别人,别人凭什么还要回到你的应用里来?

    我觉得还是把精力放在内容的创造上,这才是持久之道。