MountainWest RubyConf 2008视频档

MountainWest RubyConf于3月28日和29日在盐湖城举办。在Confreaks和其他赞助商的努力下,所有15个演讲视频都已经可以从 Confreak网站上下载(网站也提供在线的Flash观看)!我们将为你介绍其中的几个演讲,为你提供一些内容简介,如果可行的话,还会告诉你演讲的时间段,你可以直接跳到所感兴趣的那部分去观看。

强化ruby生态圈第一部分:Rubinius,演讲人Evan Phoenix

Evan Phoenix是Rubinius项目的创建者,它是一个Ruby的虚拟机。这不是一个关于Rubinius的纯技术演讲,更多涉及的是此项目当前的状况 (它已经可以运行irb和RubyGems(09:12))和对它整个开放开发流程的阐述。Evan提到,现在最大的成果是它庞大的Spec组件(7: 08)。然后他列举了9个Rubinius社区成功的关检点,这些经验同样可以被其他开源项目所借鉴。
  • 没有任务是微不足道的(17:55)
  • 每一个贡献者都是有价值的(20:05)
  • 每一个贡献也都是有价值的(21:22)
  • “请求原谅”要好过“请求认可”(21:44)
  • 有争论是件好事(22:26)
  • 你是你,而你的项目是你的项目(24:31)
  • 没有制胜的法宝(29:47)
  • 促进实验(33:38)
  • 兴奋是会蔓延的(由实例引入)(38:00)

强化ruby生态圈第二部分:Merb,演讲人Ezra Zygmuntowicz

Ezra首先对Web框架merb作了一个介绍, 阐述了它的基本原则和关键的设计考量,比如Merb的口号“不存在任何代码比没有代码还快(No code is faster than no code)”。他不仅仅谈论了merb,而且还介绍了一下Rack和GitHub.

  • 为什么他选择了merb,为什么Rails并不总是最好的选择。
  • merb中的新特性(10:43)。
    • 对Rack的简单介绍(12:43)。
    • Merb::Router (21:16)
  • merb-morezhong中的组件(30:46)。
  • 简单谈谈merb-plugins (34:48)。
  • GitHub的优点是什么 (36:22)。
  • 对于actions的运作merb的参数是如何来传递的(46:45)。

代码生成:元编程的安全剪刀,演讲人Giles Bowkett

Giles首先以希腊字母pi、lambda和单词meta为元编程开头(5:25)。他提到我们通常做的不是愿编程,而是meta-OO。首先演示了一个关于Ruby2Ruby的例子(6:28),然后把一个Rails模型类转变成ruby代码,由此看看神奇的Rails是如何运作的。

Giles是一个非常幽默的演讲者,我建议大家看看完整的视频。下面是它的演讲大纲:

  • 为什么monkeypatching(指在运行环境下的补丁)不总是恰当的(12:15)。
  • 如何通过为补丁打补丁(meta-monkey-patching)生成一个用于可视化对象图形的脚本(14:33)。
  • 《Code Generation in Action》──一本每个程序员都应当读的书(26:14)。
  • 他对Lisp评判了一番(29:12),并说明为什么没人用它。
  • Ruby与Lisp和Perl比起来,在简易性和神奇性之间有一个更好的平衡(38:20)。

总结,他的主要观点是每个人都应当读读《Code Generation in Action》这本书。

高级Ruby,演讲者Jeremy McAnally

Jeremy认为大多数开发者都没有正确的使用Ruby对象,所以他的话题比较高阶,谈论了诸如单例类(singleton classes)和instance_eval.

  • 什么是对象?它的定义,以及与其他语言的比较(04:19)。
  • 行为:用于改变对象功能的方式(8:19)。
  • 动态性:*_eval-methods的大家族(11:40)。
  • 建议:建议使用define_methodinstance_variable_set,而不用instance_eval (14:24)。
  • 实用性:DRY你的代码,并应用到实践中去(16:09)。

这个演讲大概持续了20分钟,余下的部分为提问时间。

特定领域语言:改造Ruby,演讲者Joe O'Brien

软件的生命周期和维护会占去整个软件成本的85%,所以软件 代码必须有很强的可读性。这可以通过DSLs来实现。Joe是以星巴克DSL这个经典实例开头的(13:41),然后对Ruby为什么适合写DSLs,以 及它的“配料”都是从哪得到的进行了详细的阐述(24:10)。

演讲的后半段对3种DSLs作了一个陈述(31:31):

  • 场景1:"oops,我创建了一种DSL", 是关于rake中的任务,以及Jim Weirich是如何无意中创建rake的。
  • 场景2:一致性,关于在rails模型种自定义assert的实例(37:19)
  • 场景3:商业语言,关于如何通过DSL使对规范对于客户来说可读性与可校验性更强(42:53)

用Ockham来刮胡子,演讲者Jim Weirich

Jim的演讲题目实际为"我想谈论的一切(Anything I Want to Talk About)",以一些非常棒的(5页演示稿)Fredrick Brooks《人月传说》"The Mythical Man Month"书中关于编程本质的话开头。他接下来讲述了他是如何成为一个编程者的(5:40),以及他看见的第一段Lisp代码。 接下来的10分钟是对Lisp的介绍,讲述了Lisp的基础知识以及它之所以强大的原因(21:24)。

他接着讲述了他的第一个项目,通过被人遗弃的硬件实现一些通 用而且有趣的图形功能。它们需要使用汇编语言在两种完全不同的架构上工作(26:10)。为了在两种截然不同的环境下工作,它们把Forth分别移植到两 种系统上,这样一来就会相对容易些,因为Forth只有一小段内核是属于机器专有的(34:53)。

此后,Jim必须在一个多线程的系统上工作,这让他感觉到多线程的程序编起来非常的困难(46:39),接着,他继续讲了在这方面有很大优势的Erlang(47:25)。对Erlang进行了10分钟的介绍。

在演讲的最后,他对为什么我们总是试图创建异常复杂的软件(01:00:20)和Tony Hoare(01:05:32)关于两种构造软件设计想法的评论。对我们来说很有用的是,还有一些对未来可能趋势的看法(01:08:05)。

提示: InfoQ刚刚发布了一个 对Jim Weirich的视频采访,谈论了一些关于rake和DSLs的内容。

查看英文原文: http://www.infoq.com/news/2008/04/mountainwest-rubyconf-2008-video

你可能感兴趣的:(MountainWest RubyConf 2008视频档)