2018 年 11 月摘要
Table of content:
About
这个月在持续看「激荡四十年」,里面的提到的企业跌宕起伏让我对现在的行业充满了敬畏,非常值得看。
同时,这个月开始开始尝试把横向阅读的技术书里面提到的点和自己的理解写成 Cookbook,过程非常有趣, 比如最近写了关于 Docker 的
Music
朱晓玫「哥德堡变奏曲」
一直很怕写到朱晓玫和巴赫,因为怕自己对音乐的理解还不够而有失偏颇。抱着这种恐惧和好奇,我看了关于朱晓玫的书籍,纪录片和访谈。
想起了一个评论「很久以来,我常问自己为什么《哥德堡变奏曲》能打动那么多听众,无论是在音乐厅,还是在学校,医院,甚至是在监狱里。
其实,原因很简单:在这部作品中,巴赫将生命谱写成乐曲。他的生命,我们的生命,每个人的生命。」
我想,朱晓玫也将自己的生命谱写成了动人的乐章。她出身在上海的艺术家家庭,从小学习钢琴,在文革期间学习中断送去插队,在当时的环境下背负着很多压力,偷偷练习。再后来去了美国,生活也非常的困难撂倒,以及最终在法国演出的成功。这一切,如她所言,是「奇迹」。
- 朱晓玫与哥德堡变奏曲——2014 年纪录片 http://v.youku.com/v_show/id_XODEzNzQ2NTQ0.html
- 视频:古尔德 1981 年重录版 https://www.bilibili.com/video/av1713682/
- 朱晓玫纪录片旁白的整理 https://www.douban.com/group/topic/66013378/
- 打开巴赫的正确姿势 https://www.jianshu.com/p/640ca56aa27c
- 书籍「写意巴洛克」的章节「朱小枚是谁」
November rain, Bohemian Rhapsody & American Pie
很多歌曲里面和 November 相关的似乎都是略带阴冷,失落的歌。November rain 长达 8 分钟,仿佛把这种情感拉长放大,最后升华到了整个人生,「Nothing last forever, even cold november rain」。Slash 经典的 solo,主唱穿透性的嗓音,如泣如诉,如哀如怨。
除开 November Rain,在我心中超过 5 分钟的歌曲 top 3 的歌曲还有:
- Bohemian Rhapsody 6 分钟。第一次听到这首歌的时候内心是非常震撼的。另, 王菲「唱游大世界香港演唱会」上的演唱会翻唱版本是目前听过的最惊艳的了
- American Pie, 8 分 32。「American Pie」算是 Don McLean 的成名之作了。这是一首关于破碎美国梦的挽歌,就像一部音乐版的「阿甘正传」。对于不了解当时文化和历史的人来说,对歌词百思不得其解。对了解的人,也同样因他的缄默而进行着持续解读,试图揭开谜团。而就在「American Pie」一首歌的时间,贯穿了整个摇滚史。「I can still remember how that music used to make me smile 」总会让我想起那句歌词「未怕罡风吹散了热爱」,每每提起,心有戚戚。
A star is born & La Vie en Rose
「A star is born」是同名电影的专辑,Lady Gaga 参与了里面大部分歌曲的创作。在电影里面,Lady Gaga 穿着性感的吊带裙,贴着细细的假眉毛,眉目传情,搔首弄姿, 将 La Vie en Rose 娓娓道来。她唱起歌来是非常有灵魂和魅力的,听过二十几个版本 La Vie en Rose,Lady Gaga 是我听过的最有坚定的版本。
最性感的来自麦当娜的演唱会,最温柔的来自手嶌葵,最意味深长的源自小野丽莎,而当然,最经典的版本,还是伊迪丝 · 琵雅芙 Edith Piaf, 是时候再回味下「玫瑰人生」了。
文章
To all the older folk (50+), how short is life really? What are some of your biggest regrets?
一个朋友分享 Reddit 上的一个讨论,看到标题时,想起了很多年前看到的 TED「Top five regrets of the dying」的演讲,本来觉得差不多基本都会是那几点抱着可以简单看一看的心态点开了链接,但是被里面的很多故事深深吸引,并看了几乎所有的回复,里面浓缩了很多经验, 人生感悟和人间百态。
对时间快慢的感受,问题的回复中普遍都提到了一点「life speeds up as you age」,随着年龄增长,感觉时间过的越来越快,特别是养孩子的情况下。旅行时,或者在尝试新的事物时,时间会比较慢,但是日常重复规律的生活,会感觉非常快。
普遍提到的 Regrets:
- Didn’t love others enough. Regret not telling people I care for them before they’re gone. Not spending more time with family
- Didn’t push myself to be the best that I could be
- Regret not taking more risks
我在另外一篇文章里面进行了总结,link
ofo 剧中人:我不愿谢幕
这篇文章里面提到了几点:
- 每一轮融资完都有新高管加入,所有部门都在不断空降领导。一个领导来,他会招自己的团队,原有员工被边缘化,公司出现冗余和不断的权利交割
- 随着融资,管理层开始挥霍且浮躁
- 当资本之手越来越熟练,创业者永远是生涩的创业者
看完这本书,让我想起了「激荡四十年」里面的很多章节。以下是一些摘要:
在 2015 年至 2016 年绝大部分时间里,ofo 的故事始终围绕高校展开。2016 年 4 月,它遇到扩张中第一个麻烦——已经进入 20 所北京高校的 ofo 订单徘徊不上( 2 万单/天)。大量社会用户和学生把车骑出校外,自行车丢失率很高。为表示不欢迎,ofo 将社会用户价格从 5 元上调至 30 元,但没能把这些 “不速之客们” 吓退。
ofo 此时处在双线交错的转折上。一来 ofo 正执行其扩张野心——它的计划是先从 1 个学校到 20 个学校,再从 1 个城市到 5 个城市,5 个城市到 20 个城市,目前刚打完第一场战役,开始向其他城市摸索;另一方面,他们在寻求第一笔以千万美元计的大额融资,B 轮往往是决定企业生死关键一步。资方对戴威的要求是:请证明你有日均 10 万单的能力。而整个北京高校,还只有 5 万多单。
2016 年 9 月,摩拜又明目张胆挺进北大,ofo 的大本营。ofo 终于坐不住了。一声令下,ofo 重开校门,小黄车涌入城市。这距离它封锁校园刚刚过去四个月。从此,共享单车战场真正有了硝烟的味道。
ofo 运营团队从开疆扩土的老员工,到陆续接管城市的张严琪、大池团队,年龄呈上升趋势。早期员工最年轻,1990 年上下;张严琪的人在 1985 年上下;大池的人在 1980 年前后。到这里,ofo 运营的权力交割还未结束
这些只是运营层面。整个 2017 年,包括产品(CPO 陈为)、供应链(副总裁杨飞)、市场(高级副总裁南楠)、人力(副总裁左佳)、财务(副总裁林叶明)、战略(副总裁黄迪),甚至客服(副总裁杜静)等,全部迎来新任高管,ofo 全盘 VP 化。2016 年入职的 ofo 员工雷冬雪(化名)说,每一轮融资完都有新高管加入,所有部门都在不断空降领导。经常的状况是,一个领导来,他会招自己的团队,原有员工被边缘化,公司出现冗余。
当资本之手越来越熟练,创业者永远是生涩的创业者。在 ofo 的故事里,包括创始人在内的年轻团队不堪重负,一切都在变形。
关于老布什,想说两件事
https://mp.weixin.qq.com/s/FCBDQuFzK9POWXKZptwCsA)
老布什在收拾行李离开白宫时,他在办公室给克林顿留下了一封手写的信,里面有句话非常让我印象深刻「一定不要让那些批评打败你,更不要让它们左右你」, 2018 年走了那么多人,很多人都带走了一个时代。老布什的离去同样有着这样的象征意义,他象征着一个优雅体面时代的落幕。不仅仅是优雅体面,老布什带走的还有一个曾经意气风发的乐观时代。
重新读一下老布什在 1989 年就职典礼上的演说,你会明白我的意思。
那一年,世界正在经历前所未有的巨变。
他说,“我们生活在一个和平繁荣的时代,但是我们可以让它变得更好。新的风正在吹来,一个自由的新世界似乎正在重生…… 未来就像是一扇叫做明天的门,你随时可以跨进去。”
他还说,“今天的我们有着这样一个目标,那就是让这个国家的形象变得更友善 (kinder),让这个世界的形象变得更温和 (gentler)。”
不到 30 年之后再读这些老派的话语,有恍如隔世之感。
CNN 的报道说,亲友们在互相告知老布什死讯时用了一个缩写 “CAVU”,这是飞行员在执行任务时常用的一个代号。
意思是,“ceiling and visibility unlimited”,代表最高的能见度,万里无云,是最适合飞行的晴朗好天气。
老布什生前也曾经用 CAVU 形容自己的人生。联想到老布什年轻时曾经做飞行员的往事,更能感受到这句话的浪漫和美。
世人所能想象的完美人生,大概也不过如此吧——拥有丰足的爱,因此天空再无极限,可以自由任意地翱翔。
而老布什,一辈子被爱围绕,低调优雅温和,如此幸运,如此完美,如此受上天眷顾。
k5fuwa 的作品
https://www.instagram.com/k5fuwa/?utm_source=ig_profile_share&igshid=yotn4lw2ti53
他说「我想借不高兴、严肃脸,让画里的时间静止,表现出日常中常有的尴尬的两三秒空气和氛围,然后画成一幅有趣的画」,带有一些日式幽默,和独特想象力, 我想他的作品也证明了这一点。
画画是一件需要时间和专注力并且创造力的事情,对我而言,更难能可贵的一点是在工作之余还在保持创作,并且非常高产。
PyCon 2017 的演讲摘要
http://www.zlovezl.cn/articles/instagram-pycon-2017/
Instagram 迁移 Python3 非常有借鉴意义,总结起来是:
- 拒绝引入并替换不兼容 Python 3 的 package
- 增加测试, 并增加内部员工的灰度过程
- 每次修复多个文件的一个兼容问题,而不是一下修复一个文件中的多个兼容问题, 小步快跑
以及 Facebook 迁移 Python2 到 3 的过程也可以看看。
- http://www.infoq.com/cn/news/2018/08/facebook-python2-to-3?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global
- https://www.infoq.cn/article/2018%2F08%2Ffacebook-python2-to-3
Deployment Strategies Defined
这篇文章讲了各种常见的部署策略 http://blog.itaysk.com/2017/11/20/deployment-strategies-defined
Reckless Deployment
简单粗暴,先杀后起,不管杀掉之后后果是什么。通常用在测试环境或者是不是很重要的应用上。
Rolling Upgrade
滚动部署,逐渐用新版本替换旧版本。
Blue/Green Deployment
蓝绿部署,但是这个在一定程度上非常耗费资源
Canary Deployment
暴露一些新版本给实际的用户, 小流量发现一些代码问题。
Versioned Deployment
一种设计就是让多个版本同时运行的部署方式
但是还可以进一步思考的问题是:
- 离线任务或者只能运行一个的任务,要怎么更好的灰度和部署
- 金丝雀的可以作为一个长期方案么?比如,跑一天的金丝雀充分收集数据,还是说时间越短越好。
- Linkedin 的 Red eye 部署系统的设计细节和背后的考量
The Twelve-Factor App
在很多书上都看到了这个引用, 里面提到的准则非常受用。
- 基准代码, 一份基准代码(Codebase),多份部署(deploy)
- 依赖,显式声明依赖关系( dependency )
- 配置, 代码和配置严格分离
- 后端服务, 把后端服务 (backing services) 当作附加资源
- 构建,发布,运行, 严格分离构建和运行
- 进程, 以一个或多个无状态进程运行应用
- 端口绑定, 通过端口绑定 (Port binding) 来提供服务
- 并发, 通过进程模型进行扩展
- 易处理, 快速启动和优雅终止可最大化健壮性
- 开发环境与线上环境等价, 尽可能的保持开发,预发布,线上环境相同
这里是我的一些笔记 https://amylewis.github.io/2018/11/24/twelve-factor-app/
@yeting 推荐的 David Beazley 的多个 slide
@yeting 推荐了几个 David Beazley 的 slide,都非常好
Cooncurrency
- Python Concurrency From the Ground Up: LIVE! - PyCon 2015
- A Curious Course on Coroutines and Concurrency
Generator
- Generator Tricks for Systems Programmers
- Generators The Final Frontier
GIL
- 2010 Understanding the Python GIL https://www.dabeaz.com/python/UnderstandingGIL.pdf
- 2009 Inside the Python GIL http://www.dabeaz.com/python/GIL.pdf
正在分别写对应的文章。
@wen 推荐的: Celery 最佳实践
http://einverne.github.io/post/2017/05/celery-best-practice.html
文章中提到了一些准则还是非常有参考价值的,比如:
- 使用多个队列
- 定义具有优先级的 worker
- 使用 celery 的错误处理机制
- 使用 flower
- 设置 Task 超时
- 将大型 Task 作为类
- 对于执行时间长短不一的任务建议开启 -Ofair
关于头图
费城艺术博物馆门口的塑像