技术的极限(2): 概念应该基于事实
上一篇: 技术的极限(1): 从编程开始
下一篇: 技术的极限(3): 像科学家一样思考
目录
** 0x01 Deep into free store & stack
** 0x02 Choosing a Name for Your Computer
** 0x03 科学研究上的涡流和创新
** 0x04 Case by Case文案套路
** 0x05 Factfullness
** 0x06 JavaScript的超集语言(super language)
0x01 Deep into free store & stack
Q:请教一下 想深入理解一下c++书上提到的free store或者stack等等这些概念 看什么书补充?在看stroutrup的 programming practice and principles.
A:继续完整吃透那本书,完了的话,啃下下面两本,中间你可以搜索一些关键字,找一些别人写的文章印证,有不明白的地方,自己多写代码验证。
0x02 Choosing a Name for Your Computer
原文: Choosing a Name for Your Computer
RFC1178这篇指南讨论了如何给一台电脑命名,包括了一些不好的命名和一些好的命名条目,并分别阐释了理由,是一个不错的指南。
要点1,应该避免的做法::
- Don't overload other terms already in common use.
- Don't choose a name after a project unique to that machine.
- Don't use your own name.
- Don't use long names.
- Avoid alternate spellings.
- Avoid domain names.
- Avoid domain-like names.
- Don't use antagonistic or otherwise embarrassing names.
- Don't use digits at the beginning of the name.
- Don't use non-alphanumeric characters in a name.
- Don't expect case to be preserved.
要点2,建议的做法::
- Use words/names that are rarely used.
- Use theme names.
- Use real words.
- Don't worry about reusing someone else's hostname.
摘要:
"Most people don't have the opportunity to name more than one or two computers, while site administrators name large numbers of them. By choosing a name wisely, both user and administrator will have an easier time of remembering, discussing and typing the names of their computers."
0x03 科学研究上的涡流和创新
原文:学术“创新”的湍流现象
“学术‘创新’的湍流现象的基本定义是:由于研究者多(管流速度很大),研究时间长(圆管长度很大),导致在某个时期(圆管的某个下游位置)出现毫无实质性研究进展的停止现象(出现湍流的阻流现象),而且,在近期及当前(有时,局部学术团体)进一步出现在学术上的倒退现象(湍流区可能出现沿管壁的回流现象)。”
作者总结了对科研上的创新的理解:
- 总之,共识化原则,不能用于评价“创新”;违反共识,并不是真“创新”。
- 违反共式(否定已有的学术本质成就)+无法包容多数实验(就几个实验而立论)=假创新。
- 本质上的创新(吸纳和消化共识的本质)+形式上的违反共识(重新解释相关多数实验)=真创新。
0x04 Case by Case文案套路
原文:What Makes a Great Extension?
这篇文章的结构是一个常见的文案模板,如何表述一个产品拥有哪些特性,并吸引用户来使用呢?文章的结构通过祈使句,层层表述核心Feature,最后一个祈使句自然过渡到让用户立刻行动起来,画龙点睛。是一个很好的示例。
文章结构如下:
introduction
...
Make It Dynamic
....
Make It Fun
...
Make It Functional
...
Make It Firefox
...
Make It Clear
...
Make It Fresh
...
Submit Your Extension Today
...
0x05 Factfullness
原文: Factfulness, Factfulness单章.PDF
刚读了《Factfulness》这本书的一章,感觉很有意思。作者首先通过提问“不同国家儿童出生率”的方式让学生们展示他们大脑中对于“发展中国家”和“发达国家”的固化概念,接着作者使用了统计数据来挑战学生们的认知。
学生们又提出可以使用“每个家庭拥有的儿童数量不多,并且整体存活率高”来区分“发达国家”与“发展中国家”。到这里,作者认为时机成熟,先展示了一个泡泡统计数据,“极大的支撑了学生的观点”,确实发展中国家每个家庭儿童数量更多,整体存活率低于95%,例如中国和印度;而发达国家则每个家庭儿童数量少,整体存活率高于90%,例如美国。两个集合之间有明显的间隙。
但是,紧接着发生转折,这个统计数据是1965年的,而实际上现在的统计数据显示,大部分国家都位于“每个家庭拥有的儿童数量少,整体存活率高于90%“的区域,只有少数国家位于“每个家庭儿童数量更多,整体存活率低于95%”的区域,以及少数国家更好。
因此,作者认为记者、政治家、教师等等都还在使用“发展中国家/发达国家”,以及“东方/西方”,“我们/你们”等二元对立的区分概念是不对的,实际上在很多领域,大部分国家都处于中间位置,在两端的都是少数。
这本书看上去挺有意思,还有其他9个作者认为是错误理解世界的固化观念。从这个方式上看,统计数据可以更好的帮助人们理解与事实相悖的思维定势。
0x06 JavaScript的超集语言(super language)
能编译生成JavaScript的上层语言很多,例如TypeScript, Flow, Reason, PureScript, Elm等等,它们都有Union Type,但是这些语言的Union Type编译成JavaScript之后,其实是各不相同的,这就是:抽象泄漏的问题。这篇文章对比了上述几种不同语言下使用Union Type的代码,以及它们编译成的JavaScript代码的异同。
用JavaScript的super language写代码,久了之后,会存在无法直接把高层代码在大脑里映射成JavaScript语言的问题。这是一个中性的描述,不好也不坏,毕竟我们用C写代码,也不可能直接能想象生成的汇编语言是长什么样子的,实际上也没必要,只要理解大致原理即可。
但是,JavaScript原生在浏览器上支持,实际上这个语言代表的是浏览器平台,并没有办法像汇编或者更低阶的WebAssembly那样直接不管。
-end-