A Hungry Fool

Month: September 2019

《数据与格利亚》读书笔记

数据和格利亚:收集你数据并控制你世界的隐秘战争

Data and Goliath: The Hidden Battles to Collect Your Data and Control Your World

Data And Goliath

https://play.google.com/store/books/details/Bruce_Schneier_Data_and_Goliath_The_Hidden_Battles

https://www.amazon.com/Data-Goliath-Battles-Collect-Control/dp/039335217X

https://www.schneier.com/books/data_and_goliath/

格利亚是圣经故事中威力无穷的巨人。作者用在书名中,以这个凶猛的巨人指代在大数据时代获得无比力量的巨头公司和政府。

经朋友推荐看完了这本书,感觉这本封面平平名字也略有些奇怪的书比我想象的精彩很多。果然不能通过一本封面评判一本书。也在此推荐给所有对大数据伦理问题,人工智能伦理问题,数据隐私和数据权益相关话题的朋友。

作者 Bruce Schneier 在密码学界德高望重,曾出版过《应用密码学》(Applied Cryptography)和《密码学工程》(Cryptography Engineering)等极具影响力的著作,也出版过多本包括本书在内的面向大众的科普类作品。他的博客也是访问量极高的密码学相关的科普博客。另外他还是电子前哨基金会的董事会成员之一。

提到大数据,大家可能第一想到的是大数据如何产生大量的广告收入,数据已经如何成为 21 世纪的“原油”。本书讨论了一个迫切的问题:和很多科技一样,大数据也有其两面性,既带来福祉,也像巨人一样带来了危害,我们如何在大数据时代认识和应对它对现代社会的冲击,并以什么样的思考方式引导其向正确的方向。

整本书给我的感受是不仅事例数据翔实,引用来源丰富细致,说理中肯有条理,是一部非常开阔视野,并很具有说服力的一部书。书中没有很多呼喊口号的内容,所有作者意见及对社会各方面的建议都有很多的事实和论证作为支撑。

最后可以看得出来,作者的政治背景和观点都是植根于民主监督的政府。他的所有观点也都是在这个政治框架下提出来的,例子也大多数来自美国。

关于程序员的记忆卡片

最近开始尝试使用 Anki 记忆一些我认为重要的知识碎片,也是刚刚上手。记忆卡片软件不止 Anki 一款,但它是个不错的例子。在此分享一些心得并尝试着回答这个问题:为什么一个程序员(或各行脑力工作)需要有一个记忆卡片软件?

Anki 是什么

Anki 是一款记忆卡片软件,最早于 2006 年发布,应该算是记忆卡片软件中历史最悠久,最具影响力的。其名来源于日语的“暗记”,意思就是“记忆”。Anki 本身的概念其实非常简单:正面写上单词或是你需要记忆的概念,背面记上单词的释义或是概念的详细解释。如果你能够看到正面能够准确地回想起背面,那么表明你记住了这个卡片,Anki 就会隔更长的时间再次问你(比如一个星期),否则它会缩短间隔的时间(比如一天)。

记忆卡片背后的科学原理也很简单,就是大家熟知的,大名鼎鼎的“艾宾浩斯”遗忘曲线。当你尝试记忆一个单词或是概念,你对它的记忆会成指数型下降。而当你反复间隔一段时间重新记忆它之后,你对它的遗忘速度会下降,你对它的有效记忆时间也更久,从而达到更高的记忆效率。这个知识对学生和脑力工作者是一个福音。

Anki 是开源软件,在移动端也有 App,非常适合通勤等碎片时间中使用。它功能强大,可以插入 HTML 网页,图片,音频等富媒体。

关于思维导图

又是周末了,简单写点碎碎念。

为什么用思维导图?

最近时不时会关注一些关于高效学习的文章,“思维导图”是一个非常经常被提到的词。我之前会偶尔在纸上随手画画,但是从来没有系统地研究和使用过。我从最近的一些阅读里所理解的思维导图,基本上就是从一个话题发散,并分叉出很多子话题的大型树状图。有些变种还支持不同子话题的联系,可以用一条虚线连接(如图),这样就更像计算机算法中描述的“图”了。

v2-c311da71765f3f00e01ff41d59f317d9_720w

我对思维导图帮助学习和消化的理解是:人的短期记忆是有限的,因此很难线性地去理解一整个话题。一个思维导图能够简单明了地高度概括一个话题,阐明不同子话题之间的关系。之前可能需要 O(N) 定位的一个概念,可以在 O(logN) 时间定位。自己建立导图的这个过程也是一个有力的学习和消化的过程,因为导图在这个过程中会引导你厘清不同概念之间的关系。树状的结构能够符合很多概念之间的关系,也符合人在理解和学习时的思考方式。

在我看来,通常一本技术书的目录其实就是一个简单,高度概括的思维导图:目录和子目录解释了一个话题包含的各个概念,只不过是一条条罗列出来的。思维导图就是将他们以视觉上更友好的方式呈现出来并加以更多的解释。

另外,思维导图还有支持小组内头脑风暴,协助长期的复习和记忆的功能。我在看一些技术博客的时候也会遇到有不少博主会将一个话题的学习以思维导图的形式展示。说明思维导图还是很受欢迎和承认的。

论文阅读:对现实世界中 Go 的并发 Bug 的研究

论文链接:https://golangweekly.com/link/59972/b208593eda

最近在订阅的邮件中看到的一篇论文,来自宾州大学,第一次系统性地研究了几大 Golang 的开源软件中的由并发带来的 Bug。他们研究了以下几个软件的提交历史:Docker, Kubernetes,etcd,gRPC,CockroachDB 和 BoltDB,并得出了一系列很有趣的结论。

研究方法

这次研究的重点是并发相关的 bug,他们的研究方法是(扒了这些项目的黑历史):搜索了这些项目的 Github 提交历史,搜索“race“,“deadlock”,“synchronization”等关键字,或是和 Golang 特有的同步原语的关键字,如“context”,“once”,“WaitGroup”,等等,找出对同步 bug 的修复,甚至对某些 bug 进行了复盘和重现,并将这些 bug 归类为“阻塞”或是“非阻塞”。

不同项目中的bug数量及类型

Powered by WordPress & Theme by Anders Norén