1

美国之行

 2 years ago
source link: http://wwj718.github.io/post/%E9%9A%8F%E7%AC%94/usa-travel/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

美国之行 - 夜行人

2019-04-09
  • 圣地亚哥
    • Open edX 2019
      • Régis的晚宴
      • 我们的分享主题: blocks for open edx
      • Developer Summit: 席地而坐的吐槽大会
      • 明年葡萄牙见(Lisbon, Portugal)
    • 向@Grace介绍CodeLab
    • San Diego Bay:  如果潮来你还不来
    • 圣地亚哥军港: 爱情、自由与航空母舰
  • 洛杉矶
    • 约书亚树国家公园: 沙漠、小镇与雪山
    • 环球影城
      • 霍格沃滋的城堡与魔法棒
      • 3D电影与过山车的结合
    • 格里菲斯天文台: 万点灯芒浮夜海
      • 《La La Land》(爱乐之城)取景地
    • 灰石公园(GREYSTORE): 城堡与庭院
    • UCLA: 草地树荫好读书
  • 旧金山与奥克兰: 行程有变
  • 波士顿: 春寒料峭
    • 拜访The Clubhouse Network
    • 哈佛大学
      • 科技馆与艺术馆
      • @yating的休学旅行
      • @Eric的不羁人生

这两天倒时差,今天5点多醒来后便睡不着,于是6点多出发到办公室写这篇文章。

3月25号早上8点的飞机,飞往北京。

早上6点钟的广州,天色晦暗,大雨倾盆,我和@leeyi乘@阿武哥的车,一早往白云机场。在机场与@liuxin、@finn集合,一同飞往北京。

@曾老师下午一点钟到达首都机场,草草吃了个午饭,从北京出发往洛杉矶。

飞机往东北方向飞行,行程中有一段接近北极圈。

途中只睡了几个小时,其余时间在读艾伦·凯的《Smalltalk的早期历史》和卡尔·波普尔的《开放社会及其敌人》

《Smalltalk的早期历史》是艾伦凯写于1993的一篇论文,当时他已经离开施乐(Xerox),在Apple工作。 在这篇论文里,艾伦凯回顾了Smalltalk诞生历史及其思想来源。

艾伦凯在论文的开篇里写道:

Most ideas come from previous ideas.

他回顾了Smalltalk诞生的背景:

在60年代,特别是在ARPA社区,通过交互式分时计算机、图形屏幕、指点设备(pointing devices)产生了很多关于人机共生的概念…现代个人计算机、层叠窗口界面和面向对象设计带来的范式转变都来自将60年代的工作视为更好的旧事物… 早期的Smalltalk是这些新观点的一次完全实现,它同时是硬件、编程语言和用户界面…

艾伦凯在论文里提到一件趣事,当Allen Newell访问PARC时,被要求解决一个问题:

given a list of items, produce a list consisting of all of the odd indexed items followed by all of the even indexed items.

Allen Newell使用类似IPL-V的编程语言,在这门语言里,指针被显式操控,他很难完成这个程序。艾伦凯在2秒内写下:

oddsEvens(x) = append(odds(x), evens(x))

这是LISP语法,他继续写下:

where odds(x) = if null(x) ∨ null(tl(x)) then x
                   else hd(x) & odds(ttl(x))
     evens(x) = if null(x) ∨ null(tl(x)) then nil
                   else odds(tl(x))

艾伦凯说到:

这种以声明形式写下解决方案,并使它们也成为程序是这种语言(LISP)的吸引力和美感的一部分。

看着一个比自己聪明的著名人物奋斗了超过30分钟来解决这个问题(其中还有一处错误),这给艾伦凯留下了深刻印象, 他想到:

point of view is worth 80 IQ points.

我并不聪明,但我有一个更好的内置思维工具来扩展我的能力.

这一事件和其他事件使得他想到:

任何儿童工具都应该具有伟大的思维模式和内置的深层美感。

论文接下来讨论了几个我很感兴趣的话题,诸如面向对象设计以及Smalltalk与孩子

艾伦凯试着回答面向对象设计的特殊效率来自何处?这个问题,他说:

正确地进行封装,不仅是对状态的抽象,而是为了从编程中消除面向状态的隐喻…OOP是一种后期绑定(late binding)策略,这种策略比旧策略更能对抗脆弱性和代码规模爆炸。

在讨论Smalltalk与孩子时,论文提到LOGO海龟,除了表面效果,并无法帮助孩子们创作互动工具(dynamic media)。

语言用于阅读和写作,但在某些时候,观点的组织开始主导语言能力…所以我们决定教授设计。

Adele认为所需的是关于问题的模糊想法,以及详细编码之间的中介。她称这个中间形式为design template(ps:有些像UML)。使用这个东西,孩子们可以查看他们想要模拟的情况,并将其分解为类和消息,而不必担心具体的方法如何工作。之后使用英语非正式地完成方法规划,这些注释稍后将作为实际代码的注释和指南(《代码大全》有过类似建议)。这个方法运行得很好。

抵达洛杉矶

飞行了12小时候后,抵达洛杉矶。我在途中读完《Smalltalk的早期历史》以及卡尔·波普尔对黑格尔的批判。

抵达时还是3.25号, 美国时间是下午。

西海岸的天气和海风都宜人,清爽舒适。我们租了两辆车,往San Diego开去。

行程的前半段景色平平,将近圣地亚哥时,路的一边临海,海边有灌木草丛。 摇下车窗,海风拂面, 落日西沉,风光热情洋溢,仿佛赴一场party。

抵达下榻的酒店,已是美国时间下午6点。

放下行李,出门找吃的去。一同参会的@杨教授给我们推荐了一个中餐馆。 菜的分量十足,味道也地道。

我和@曾老师一个房间,一日奔波,夜里10点多便入睡,凌晨三点醒来,就睡不着,与@曾老师闲聊到天亮。

Open edX 2019 X UC San Diego

Open edX ConferenceUCSD举行,我们住处离会场大约半小时车程。

会议从9点正式开始,在UCSD Center Hall。

会议的日程为Open edX 2019 Schedule。 第一天是开发者大会,会议分5个分会场。

我们一行人,分头行动,选择各自感兴趣的主题。我往113分会场。这是DevOps分会场,正在进行的议题是: Open edX Production-Ready in 10 Steps。我不为议题而来,为主讲者而来。

Régis

Régis Behmo是主讲者之一,来自法国的自由职业者。

它在Github的自我介绍里提到:

Freelance teacher, fullstack dev, data scientist, data architect. Expert in machine learning, computer vision, Python. I work remotely EXCLUSIVELY.

与Régis建立联系缘于他的tutor项目。tutor是个出色的项目,通过引入Docker,极大地简化了Open edX的安装部署,做到了一键安装。 edX官方团队在Docker这块的进展一直都不顺利。 Régis以一己之力,完成了大多数的工作。

如果你了解Open edX复杂的架构: Open edX Architecture, 就会对Régis所做的事,抱有敬意。

草草看一眼edx架构鸟瞰图:

tutor令人吃惊的地方在于,它把Open edX的开发和部署一体化了,将脏活累活做完后,为用户留下简洁漂亮的命令行界面。

tutor给我留下了深刻印象。围绕docker和Open edX我此前做过不少尝试,甚至做过分布式部署。但都不如tutor做得 看到tutor在这块取得的进展,我希望将其与Kubernetes结合, 如此一来我们就可以构建一个SaaS平台,将Open edX实例作为服务提供给用户。这是我一直以来想做的事。

于是我在tutor(彼时,这个项目还叫openedx-docker)的基础上继续前进。 将实验结果记录在将Open edX部署到Kubernetes上的踩坑笔记一文里。我把遇到的问题,提交给了Régis: How to deploy to kubernetes with Kompose? ,希望他一起来推进这项工作。

Régis当时对kubernetes还不熟悉。他只说:

I’ll try to find the time to take a look at this.

我提交这个issue的时间是2018.8.13, 半年后,Régis宣布他基本完成这项工作了。于是我邮件他说,想邀请他在第一天会后一起吃个晚饭,碰面细聊。Régis回复说:

the luxurious life of open source maintainers!

回到我们的113分会场。Center Hall的113分会场是个阶梯教室。我推门进来时,讲解已经结束,大家忙着各自实操。讲台上空无一人。

我回忆着Régis 在Github的头像,寻找棕色皮肤的中东面孔,搜寻片刻,一无所获。于是问前排女生(Open edX核心开发者之一,在网上见过照片)谁是Régis,她向人群里的招了招手,Régis走过来,眼前是一张白人面孔,网友见面,寒暄几句,约着晚上吃饭细聊。Régis在Github的头像应该是徒步中拍的(估计被爆嗮),Régis喜欢满世界徒步,他的肤色随着行程而变化。

会场的另一位主讲者,是Régis 的老友Lawrence。和Lawrence聊了一会儿。Lawrence住在墨西哥,热情奔放,富有魅力,Lawrence大叔工作经验丰富,早在1993年,就在做数据分析方面的工作,在高盛和IBM待了几年,近年在几个教育相关的非营利组织当志愿者,目前是一位自由职业者。Lawrence经常和Régis结伴旅行。他们二人为Open edX做了很多出色的工作。在Open edX 2018上,edX CEO在大会上演讲致辞时,特别感谢了他们二位。

Lawrence善于数据分析,在这块的经验将近20年!于是我们与他聊了edX在数据分析这块的困境,吐槽了edx-analytics的庞大臃肿和难以修改。Lawrence吐槽说他也受够了,推荐我们下午还来这个教室里听Get Started with Figures的主题报告。由appsembler带来的figures是个轻量级项目。

我此前在盘点Open edX社区中拥抱开源的公司及值得关注的项目里推荐过figures。但此前并未对它有足够重视。

中午吃过午饭,与@曾老师一起逛了逛UCSD校园。我们都很喜欢这面墙:

下午听完Get Started with Figures演讲,现场将其运行起来之后,觉得效果十分理想。与会者皆十分振奋。edx的数据分析是整个体系中最笨重的部分,它在设计之初被定位与于处理千万级用户的数据,数据结构也极为复杂。但大多数用户并没有edx.org这种量级的数据,却不得不忍受这个项目庞大的设计和烦人的复杂度。figures为大家带来曙光。Open edX官方团队成员在被吐槽数据分析项目时,也推荐大家转向figures

the luxurious life of open source maintainers!

@Jackson于3.25夜里抵达San Diego,专程过来请我们一起吃晚餐。@Jackson常年四处飞行,于是教给我们倒时差的技巧: 红酒与褪黑素。

Régis骑着一个电动滑板车过来,用餐的西餐厅里的光影极好,适合聊天,Régis开朗幽默。 我们邀请他来广州,与我们一起折腾一些有趣的东西, 他表示十分乐意,暂定在夏天过来。

blocks for open edx

我在blocks for open edx中提到:

Elite Education邀请我与@MT(曾老师)和他们一同参加2019.3.26在UCSD(加州大学圣地亚哥分校)举办的Open edX年会,在年会上,我们可能会就blocks4edx做一个主题演讲。

如文中所言,blocks for open edx的idea最初由@leeyi想到,@leeyi有着惊人的创造力、清晰的逻辑和强大的执行力,@leeyi目前是Elite Education负责人,也是CodeLab最热心的志愿者之一。当讨论问题时,@leeyi总能耐心听完所有发言者的观点和分歧,在一边沉思。当需要总结时,他的观点常常是最完备的;而当需要发散的点子时,他的创造性总是令我吃惊。我不知道如何能同时保有这些优越的思维特征。

我不满于IQ(智商)的定义,在我看来这东西类似灵魂的概念,充满了含糊不清,我不知道心理学上如何能忍受这种混乱的臆测(据我所知,心理学上对此的攻击很多),我觉得智力是一种动态的东西。相比于IQ,我更关注人们思维的深度,@leeyi是我结识的人中,思考最为清晰深刻的人之一。

回到我们的演讲话题。blocks for open edx想做的事情是这样的:

将积木引入Open edX中,帮助课程团队创作复杂的题目。blocks4edx可用于替代Open edX的Custom Python-Evaluated Input题目编辑器。允许课程团队在不写代码的情况下,通过拖拽积木自动生成代码与题目(XML)。

对这个话题有兴趣的朋友可以看Slide: Blocks for Open edX

演讲由@杨教授发言,@杨教授在自我介绍里写着:

  • Co-founder of Elite Education in Guangzhou, China
  • Associate Professor at Long Island University, New York
  • Course launched on Open edX based platform since 2016
  • A big fan of MATLAB

在正式发言前,我们与来自MIT的@jolyon bloomfield在休息区做过交流,他可能会将我们的积木概念与他自己的项目做结合。@jolyon bloomfield也是speaker之一。他带来了一个非常有趣的项目,该项目可以自动分析出数学公式中存在的错误,并给出提示,就像编程语言中的静态分析器。MIT的物理学院目前在使用这个工具。

Developer Summit

会议的最后一天是开发者峰会,参与者众。

在各个分会场,参与者多于凳子数量时,大家便席地而坐。

我将其称作"席地而坐的吐槽大会"。这句玩笑话,是伪装成吐槽的赞美。

Open edX的核心团队全部在现场,他们大方承认社区成员所吐槽的地方,并与大家一起探讨改进方案。有时也加入吐槽大军,幽自己一默。这种集结大家共识的讨论,让参与者对项目的未来报以极大信心。

我参与了Developer Summit的多个分会场,在其中一个分会场,Régis与几个社区核心贡献者,讨论tutor的插件系统和未来,令人满怀期待。

由于Régis出色的工作,Open edX试图将其收归官方团队,但Régis闲云野鹤惯了,加之让他去做的事,并不是他当前热衷的方向, 便拒绝了。

Open edX的Developer Summit给我留下极为深刻的印象, 人们分享各自的困境和探索历程,发言者来自不同的国家和公司,但都心无芥蒂,乐于分享。人们在讨论时彼此信任、耐心倾听,遇到分歧,则各自陈述立论点,与会者一起加入梳理和讨论,直至达成共识。

在参与Developer Summit时,令我感叹开放组织的优越性。我现场在手机备忘录里记录了这段感受:

开放组织的优越性,不在于开放是道德正确或者效率最高。而在于它的开放机制赋予了组织的纠错能力。在构建复杂系统时,尤其是在新的领域里探索而不是复制时,大可大方承认我们是在试错,这和科学探索极为相似,需要不断接受外部世界的反馈(可能是用户需求和使用场景),及时调整自己的假设。今天,至少在软件工程领域,人们已经普遍达成共识,无论是《人月神话》的出版,测试驱动的流行,还是开源运动的胜利,人们都假设错误是常态,好的机制不是杜绝错误,而是能够及时从错误中重新出发,不要因为一个错误而使系统陷入灾难。 那些喜好权威的人,总是喜欢自顶而下的设计,他们喜欢一蹴而就(这种倾向根植于人性深处),他们喜欢集中力量办大事,他们将其定义为效率,如果你对历史感兴趣,可以看到这些想法带来了多少末路狂奔。他们当中最有名的人物如柏拉图,所设计的乌托邦(理想国),最终为我们带来了什么,如卡尔·波普尔所言:

怀抱着建立人间天堂的最美好的愿望,但它只是成功地制造了人间地狱—人以其自身的力量为自己的同胞们准备的地狱。

希特勒和前苏联是柏拉图历史主义的两个典型产物。

开源运动或者说开放组织在今天取得的胜利鼓舞人心。

waiting…

拜访MIT Media Lab

拜访The Clubhouse Network

科技馆与艺术馆

@yating的休学旅行

@Eric的不羁人生


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK