11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

MountainWest RubyConf 2008 视频档

  • 2008-04-25
  • 本文字数:2253 字

    阅读完需:约 7 分钟

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

2008-04-25 07:11433

评论

发布
暂无评论
发现更多内容

Servlet-技术专题-Servlet3异步原理与实践

洛神灬殇

速度(Velocity)不背这个锅

BY林子

敏捷开发 估算与计划

架构师第一期作业(第5周)

Cheer

作业

深度详解企业CRM系统,体验软件快速开发平台

Marilyn

敏捷开发 快速开发 CRM

黄金圈法则:成功者必备的深度思考方法

程序员陆通

黄金圈法则 厉害 牛逼

iOS底层原理之—dyld与objc的关联

iOSer

ios开发 iOS Developer dyld objc

云原生在京东丨基于 Tekton 打造下一代云原生 CI 平台

京东科技开发者

ci 云原生 Tekton

sync-player:使用websocket实现异地同步播放视频

GoEasy消息推送

websocket 数据同步 实时通信

MySQL-技术专题-聚集索引和慢查询

洛神灬殇

架构师训练营第五周学习总结

邓昀垚

极客大学架构师训练营

金九银十期间成功斩获58万架构师Offer!六面字节跳动面经和面试题分享

Java架构追梦

Java 学习 架构 面试 JVM

目标2025:通信产业在能源变局中拥抱智能未来

脑极体

老公熬夜都要看的:从基础到进阶的Java面试题,助你2021年金三银四拿下大厂offer。

996小迁

Java 编程 架构 面试 计算机

蘑菇街大牛熬夜整理的Spring MVC知识点总结(思维导图+源码笔记),免费分享文档资料

Java架构之路

Java 程序员 架构 面试 编程语言

用Python加载数据的5种不同方式

计算机与AI

Python 数据处理

手把手带你玩转 openEuler | openEuler 的使用

openEuler

操作系统 openEuler

最新版MySQL在MacOS上的安装与使用

王磊

MySQL

go-zero 如何应对海量定时/延迟任务?

万俊峰Kevin

定时任务 时间轮 microservice 延迟任务 Go 语言

MySQL-技术专题-联合索引最左前缀匹配原则

洛神灬殇

忘记MySQL密码怎么办?一招教你搞定!

王磊

MySQL

LAXCUS大数据集群操作系统:一个分布式分时共享E级系统软件(四)

陈泽云

人工智能 大数据 数据结构 操作系统 数据存储

从资金荒、恒大事件看区块链技术在供应链金融上的应用价值

CECBC

区块链 供应链物流

spring-boot-route(二十)Spring Task实现简单定时任务

Java旅途

Java Spring Boot Spring Task

APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错!

程序员小航

Java bug Header携带签名 工作笔记 问题排查

十八、深入Python函数

刘润森

Python

java安全编码指南之:ThreadPool的使用

程序那些事

java安全编码 java编码指南 java安全编码指南 java代码规范

在算力“沃土”上,种植互联网下一个奇迹十年

脑极体

PLSQL 过程语言-结构化查询语言

Flychen

发挥区块链技术优势 确保食品安全

CECBC

区块链技术 信任机制

帆软授权失效处理

Flychen

详解GaussDB(DWS) explain分布式执行计划

华为云开发者联盟

数据库 计划 数据

MountainWest RubyConf 2008视频档_Ruby_Mirko Stocker_InfoQ精选文章