像外行一样思考————记2015乐天技术会议

2015乐天技术会议

今儿天气不错,起了个大早,为了大老远赶到公司参加一年一次的技术会议,名曰乐天技术会议。

乐天技术会议跟世界大部分的技术会议一样:以技术的名义…恩,你懂的,耍牛氓,比如做个广告、秀下业务、搞个招聘。

但是因为有Matz等嘉宾,所以每年对它还有个属于技术本身的期待。

此外,今年还有计算机视觉方向的泰斗级人物——Takeo Kanade,以及设计了一个非线性模式匹配语言的80后新生小将——Egison

计算机视觉的有趣研究:从机器人、体育到药品

Speaker : Takeo Kanade

木有找到百科简介,委屈读者大大勉力翻墙啦。

金教授主要谈了他在计算机视觉领域近30年的各种研究或开发的有趣点。具体来说有如下几个:基于视觉的自主机器人、电子眼的视觉、生物活细胞追踪、人脸图像分析和水滴照明。(很晕对吧,别慌,我当时也是)

关于演讲内容,金教授显然做过精心准备,考虑到普通听众的专业领域知识水平有限,介绍每个点基本围绕轶事经验、策略和研究哲学来介绍,听起来不怎么吃力。

同时整个演讲,教授的哲学始终贯彻如一:像外行一样思考,像专家一样行动 (Think like an amateur, do as an expert)

难忘的是,演讲中有不少段子,而情到处,金教授以70岁高龄,笑起来还像孩子一样

演讲前还翻到一篇池建强介绍其著书《像外行一样思考》的文章————你需要多久才能变成一个傻瓜

作者是美国卡耐基·梅隆大学(CMU)的计算机科学和机器人研究所的金出武雄教授。金教授的学术固然在同行眼里高山仰止,行文也极为流畅。关于写作,他的观点是,无论写科普还是论文,都要像创作小说那样写出引人入胜的独特观点。这一点和 MacTalk 秉承的写作原则一脉相承。

金教授在1980年的春天从日本到了美国,开始了自己的学术研究生涯。他信誓旦旦的对自己的妻子说:咱们只去五年。三十年过去了,伊带着这个弥天大谎参与了人工智能和机器人领域相关的各种研究,工作兢兢业业,为美国人民的人工智能事业做出了卓越的贡献,这包括:自动驾驶汽车,能够进行火星探查和火山口探查的机器人,自动驾驶直升飞机,虚拟现实和三维视频,等。

对教授背景或研究感兴趣的童鞋们拿走不谢

Takeo Kanade resume in CMU

TK60

h-index

如何设计编程语言

Speaker : Matz

Matz一如既往,带来自己对于编程,对于程序员的新思考。去年是从Ruby中学到的经验,今年则是《如何设计编程语言》。

  1. 英语、日语、Java、Ruby都是语言,本质一样
  2. 没有人特意地去设计语言
  3. 你设计过语言吗?每个人都设计过语言,比如你设计过Interface、API、文档等等
  4. Programming is a process of design your own disable —- (The) Dave Thomas
  5. Coc (Convention over Configuration) 约定大于配置
  6. DRY (Don’t repeat yourself) 避免重复
  7. Avoid Guessing Games
  8. Avoid Alpha syndrome

这次因为时间的关系,Matz讲的没有上次那么多,那么细,但很直白、很容易GET到他的点。那些年,那些优雅那些坑。

最后,补上去年没能上的照片(右一),回想当年我还…没现在这么老呀。

与Matz的合照_2014年

Philosophy behind the Creation of Egison

Speaker : Satoshi Egi

先上个问题,会后有好事者问Egi,目前公司有人用Egison么? 答曰:目前只有我。泪奔…

学Egi不难,目测官网既有入门手册,又有交互界面,还有Cheatsheet,更别说还有文档和源码。

然后…就没有然后了…

演讲主要有三个部分:(果然Egi还年轻,07年才入读大学,只会总-分-总)

  • 计算机科学中的各种抽象表示
  • 创造一种新的抽象表示的过程
  • Egison的诞生历史

住: Representation,暂翻译为 抽象表示。 求更好的翻译,请直接留言。

计算机科学中的抽象表示

举了很多栗子:如数字标记、数学表达式、化学公式、编程语言等等都是人类对自然现象的一种抽象表示。

同一种表示也有很多种:如数字标记就可以分阿拉伯数字、罗马数字、中文数字等等。不过根据语言、地域区分的不同表示,仅仅影响到可读性,在功能上是一样的。

创造一种新的抽象表示的过程

整个过程沿着这个过程:大自然 -> 人类直觉 -> 抽象表示

下面举例分析

n = a + b 10^1 + c 10^2 + … + z * 10^r

  • 识别字符和数字, 如a-z, 1-10
  • 识别加号
  • 识别乘号

  • 表达式中的所有数字是唯一的

如何设计

  • 给每个数字一个名字
  • 造一个数值系统
  • 造一个0作为占位符

Egison的诞生历史

Egison作为一种语言,主要致力于更好地解决非线性的模式匹配问题,所以他不是一门大而全的语言,更像一种Lisp方言。

余下参考luikoreEgison: 非线性模式匹配的Lisp方言中的解释:

  1. Egison支持的matcher主要是三种:List、Multiset、Set
  2. Egison的模式构造器主要是:cons,join、snoc、nioj
  3. 模式运算: | (或), & (与), ^ (非)

Matz和Egi

参考资料

Egison’s slides

Egison: 非线性模式匹配的Lisp方言

注: 15年官方资料还没公布,更新后会补充发布