InfoQ

新闻

MountainWest RubyConf 2008视频档

作者 Mirko Stocker 译者 刘申 发布于 2008年4月25日 上午7时11分

社区
Ruby
主题
编程,
社区,
领域特定语言,
语言
标签
Merb,
RubyConf,
元编程,
会议,
Rubinius
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,而且还介绍了一下RackGitHub.

  • 为什么他选择了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

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。