技术的极限(4): 解决不可靠的网络的挑战

上一篇: 技术的极限(3): 像科学家一样思考
下一篇: 技术的极限(5): 识别计算与技术背后的心智

目录
** 0x01 单位圆上的六种三角函数
** 0x02 使用Ττ(Tau)代替2π
** 0x03 宇宙膨胀导致孤“岛”
** 0x04 Stripe公司的一个工程师给10-20岁青少年的建议
** 0x05 如何结对编程
** 0x06 Fallacies of Distributed Computing Explained
** 0x07 Global education: 7 slide decks with key charts on progress and challenges
** 0x08 NASA’s Interplanetary Internet,NASA星际互联网

0x01 单位圆上的六种三角函数

原文:twitter 鯵坂もっちょ 🐟 @motcho_tw

单位圆上的六种三角函数。注意半径是1,在不同的直角三角形里有时候是作为斜边,有时候作为直角边。利用同一个角θ(读Theta,'Th'发/th/音)在不同直角三角形里的位置,分别计算,得出这些这些颜色标记的长度,刚好是对应六种三角函数的值。可暂停在一个位置,观察静态图,消耗一下脑细胞。

0x02 使用Ττ(Tau)代替2π

原文lets-use-tauits-easier-than-pi-happy-pi-day
参考wiki:Pi

古代使用“圆周率(Pi)=周长(circumference)/直径(diameter)”是因为古代并不好直接求直径。一些人认为用τ=2π是更好的选择,例如大量的数学公式是包含有2π的;例如教学中如果直接使用τ会更好理解,如果使用π,1/4个圆对应的是π/2,2/4个圆,对应的是π,3/4个圆对应的是3/2π,4/4个圆对应的是2π,但是如果使用τ,则1/4个圆是1/4τ,2/4个圆是2/4τ,3/4个圆是3/4τ,4/4个圆对应的是4/4τ,是不是好理解很多?计算那些三角函数的时候也很直观?

0x03 宇宙膨胀导致孤“岛”

原文tools-humanity-year-trillion

Since the cosmic expansion is accelerating, I showed that once the universe will age by a factor of ten (about a hundred billion years from now), all matter outside our Local Group of galaxies (which includes the Milky Way and the Andromeda galaxy, along with their satellites) will be receding away from us faster than light.

作者的意思,人类应该发展宇宙工程技术,找一个合适大小的恒星做星际移民,不能太小能力不足,又不能太大过早演化完主序星阶段,建造戴森球,利用恒星级别的能量。从而在宇宙“孤岛”里生存。有一个产品经理写的《程序员修真》的小说,其世界观设定就是世界破碎,形成一个个迷雾孤岛,每个孤岛的能量只会逐渐消耗完毕,于是导致了孤岛之间的弱肉强食的吞并战争,主角所在的孤岛用大阵把孤岛隐藏起来不被其他孤岛发现,并且封锁能量利用,等待其他孤岛在漫长时间的吞并战争中消耗完毕能量,到时候就有累积下来的能量优势再崛起,不过作者的笔法写起来还是稚嫩,我看了一些就没看下去,这个设定倒是有一点点可取之处。

0x04 Stripe公司的一个工程师给10-20岁青少年的建议

原文advice by engineer from Stripe
要点

  • Go deep on things. Become an expert.
  • In particular, try to go deep on multiple things. (To varying degrees, I tried to go deep on languages, programming, writing, physics, math. Some of those stuck more than others.) One of the main things you should try to achieve by age 20 is some sense for which kinds of things you enjoy doing. This probably won't change a lot throughout your life and so you should try to discover the shape of that space as quickly as you can.
  • Don't stress out too much about how valuable the things you're going deep on are... but don't ignore it either. It should be a factor you weigh but not by itself dispositive.
  • To the extent that you enjoy working hard, do. Subject to that constraint, it's not clear that the returns to effort ever diminish substantially. If you're lucky enough to enjoy it a lot, be grateful and take full advantage!
  • Make friends over the internet with people who are great at things you're interested in. The internet is one of the biggest advantages you have over prior generations. Leverage it.
  • Aim to read a lot.
  • If you think something is important but people older than you hold don't hold it in high regard, there's a decent chance that you're right and they're wrong. Status lags by a generation or more.
  • Above all else, don't make the mistake of judging your success based on your current peer group. By all means make friends but being weird as a teenager is generally good.
  • But having good social skills confers life-long benefits. So, don't write them off. Get good at making a good first impression, being funny (if possible... this author still working on it...), speaking publicly.
  • Make things. Operating in a space with a lot of uncertainty is a very different experience to learning something.
  • More broadly, nobody is going to teach you to think for yourself. A large fraction of what people around you believe is mistaken. Internalize this and practice coming up with your own worldview. The correlation between it and those around you shouldn't be too strong unless you think you were especially lucky in your initial conditions.
  • If you're in the US and go to a good school, there are a lot of forces that will push you towards following traintracks laid by others rather than charting a course yourself. Make sure that the things you're pursuing are weird things that you want to pursue, not whatever the standard path is. Heuristic: do your friends at school think your path is a bit strange? If not, maybe it's too normal.
  • Figure out a way to travel to San Francisco and to meet other people who've moved there to pursue their dreams. Why San Francisco? San Francisco is the Schelling point for high-openness, smart, energetic, optimistic people. Global Weird HQ. Take advantage of opportunities to travel to other places too, of course.
  • People who did great things often did so at very surprisingly young ages. (They were grayhaired when they became famous... not when they did the work.) So, hurry up! You can do great things.

0x05 如何结对编程

原文结队编程中哪些是核心要素?
要点

  • Share. "In pair programming, two programmers are assigned to jointly produce one artifact (design, algorithm, code, among others). ... One person is typing or writing [driving], the other is continually reviewing the work [navigating]. ... Both partners own everything."
  • Not only is this an effective learning technique, it is also more productive than splitting a task in two, working on each half separately, and then combining the two. 
    Play fair.
  • It is important to take turns typing or writing [driving], so that the other person gets a chance to review [navigate]. 
    Clean up.
  • Defects belong to the pair. Having two sets of eye balls is much better than one. 
    Hold hands and stay together.
  • All programming should be done together; do not create things done alone. The literature of pair programming shows that most defects are traceable to things done singly. It also inhibits learning. 
    Say you're sorry.
  • "Ego-less programming ... is essential for effective pair programming." Do not insist on having things your way or else. Do not get defensive about criticism. Work things out as a pair.

Laurie A. Williams and Robert R. Kessler. 
All I really need to know about pair programming I learned in kindergarten. 
CACM, 43, 5 (May 2000), pp. 109-114.

根据文献看,最早形式的结队编程是强调“同时”,“面对面”以及“轮流上手”的。但是从我的角度看,大部分实际开发中,更多的是“分时”,“隔空喊叫/IM聊天”以及“切分任务后各自上手”的。另一方面,非“面对面”也有好处,例如一个人在深圳,一个人在北京,那么他们就会不得不在同一个代码仓库里随着代码的变动,及时更新文档,否则他们就要在IM聊天里写很多说明,但是,这样实际上这些说明稍加整理也就形成了文档。

0x06 Fallacies of Distributed Computing Explained

原文fallacies.pdf
要点

  1. The network is reliable.
  2. Latency is zero.
  3. Bandwidth is infinite.
  4. The network is secure.
  5. Topology doesn't change.
  6. There is one administrator.
  7. Transport cost is zero.
  8. The network is homogeneous.

网络是不可靠的,延迟不是零的,带宽不是无限的,网络是不安全的,网络的拓扑结构一直在变,不只有一个管理员,传输是有代价的,网络是异构的。没有一个是理想的情况,整个网络的历史就是在各种抽象层上制造轮子对抗和缓和上述这些问题。给我的启发是,在思考一个系统的时候,要挑战你自己的假设,特别是那些你做的理想化假设,往往问题就会出现在那些理想化的假设上,这些假设多半是错的。

0x07 Global education: 7 slide decks with key charts on progress and challenges

原文全球教育变化和调整的7个幻灯片(7 global-education-slides)
要点

  • Part 1: Population growth and pressure on global education systems
  • Part 2: Progress in the expansion of schooling
  • Part 3: Challenges in education quality and learning outcomes
  • Part 4: Characterisitcs and behavior of teachers around the world
  • Part 5: Corruption and accountability challenges in education systems
  • Part 6: Cross-country correlations between education and other social outcomes
  • Part 7: Missing data and statistics on education

我认真看了1-4,大部分数据没有脱离我的判断。但是我觉的这些基于统计数据的工作很有价值,其实也可以看到很多数据其实是缺失的。也许现在的大公司可以通过其互联网和移动APP来搜集各种数据,在数据之间挖掘出这些缺失的数据的一些推断。从而弥补上述研究中缺失的数据。总的来说教育在改变全球人口的结构上存在在巨大的作用。未来100年非洲人口会超过亚洲。中国过去50年总的来说教育对人口结构的影响是正面的。当然这好像不用数据也能得出。

0x08 NASA’s Interplanetary Internet,NASA星际互联网

原文nasa-interplanetary-internet-earth-mars

NASA的两个团队在合作(Science Mission Directorate 和 Human Exploration and Operations)努力把星际互连网最终搭建出来。在星际空间传输数据,会面临长延迟、高噪声、高错误率的情况。针对这些特点,NASA这两个团队构建的星际网络是“高延迟容忍网络”(Delay/Disruption Tolerant Networking),简称DTN。实际上DTN在1998年就开始测试了,DARPA(U.S. Defense Advanced Research Projects Agency)在NASA的一个小队专门研究深空长延迟无线网络,使用的是由Adrian Hooke开发的“空间通信网络协议”(Space Communications Protocol Specifications ).

也许20到50年之后,人们就开始开发星际互联网产品,这些产品结合了VR/AR做为交互式界面,以各种AI技术为辅助,在充满无限可能的星际之间构建起宇宙中独一无二的人造恒星际世界。从这个维度看,似乎没区块链什么事,这么慢的技术在星际间使用,谁用谁S13。

--end--

posted @ 2018-07-25 19:45  ffl  阅读(1130)  评论(0编辑  收藏  举报