Kevin Hu 的博客

A Hungry Fool

论文阅读:对现实世界中 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数量及类型

调试一个Go应用的死锁Bug

上一周几乎花了一整周的时间调试这个头疼的死锁 Bug。死锁 Bug 很难重现,因此也很难调试。谨以此文纪念这个教训。

博客与文章推荐 2019/01/27

Augmenting Long-term Memory

http://augmentingcognition.com/ltm.html

我最近开始关注 Michael Neilsen 的个人博客,感觉像是发现了一座金矿。这是个非常有趣的计算机科学家,投资人,著名的 YCombinator 研究会员,他的研究方向是深度学习,量子计算,并涉足了人机交互等等话题。他的网站博客通常都很长并且很深入,需要有一定的理解能力耐心才能读完。

他这篇解释他如何使用 Anki 速记卡片软件的文章给了我很深的印象。尽管 Anki 并不是他的发明,也不是他最先使用,但是他将 Anki 发挥到了淋漓尽致。他的习惯是:每当读完一篇有价值有意义的文章,他会将文章分解为不同的问题,在卡片反面给出回答,然后定时回忆和复习所有的卡片(就像国内学生背单词一样)。

这样做的好处不仅在于你可以牢固地记住一篇文章的要点,你在拆解文章为问题的同时还加强了对这个问题本身的理解。而大范围的记忆知识对理解一个领域有着举足轻重的作用。

Are We Living in the Gilded Age 2.0?

https://www.history.com/news/second-gilded-age-income-inequality

美国目前又进入了一个“镀金年代”吗?科技的发展带来了生产力飞速的提升和一批一夜暴富的商人。上一次美国出现如此大规模的产业革命,是在 19 世纪末和 20 世纪初。洛克菲勒,卡耐基等等到如今都家喻户晓的名字就是在那个时代诞生的。但是一个时代华丽的外表下是严重的贫富分化,工人血汗被压榨,官商勾结,巨额的政治献金可以左右法律的平等。这个时代被马克·土温称为“镀金年代”。而今天的社会发展和那个年代有着诸多的类似。

The Writer Who Destroyed an Empire

https://www.history.com/news/second-gilded-age-income-inequality

索尔仁尼琴,被誉为“苏联的良心”。他的作品《古拉格群岛》首次揭露前苏联的古拉格流放监狱系统。他是一个真正敢说真话的学者。

It’s time for a Bill of Data Rights

https://www.technologyreview.com/s/612588/its-time-for-a-bill-of-data-rights/

数字时代的权益法案?作者提出,在 AI 盛行的当下,有必要提出新的法案,以保护数字时代网民不被监控,审查和操纵的权益。

  • The right of the people to be secure against unreasonable surveillance shall not be violated.
    人民不被不合理监控的权益应当得到保护。
  • No person shall have his or her behavior surreptitiously manipulated.
    没有人应该被暗中被操纵。(比如通过个人数据影响个人决策,如影响大选,等等。)
  • No person shall be unfairly discriminated against on the basis of data.
    没有人应该因为数据而被歧视。

工作三年记

不知不觉一晃眼已经从开始工作已经过去了三年多,有不少坎坷也有不少收获。目前还是一个初级码农,正努力朝着工程师的方向努力。借着跨年简单记录下这一年工作的感受。

Golang 初体验

最初接触 Golang 是因为工作需要。起初很不情愿地接手了一个 golang 项目,但是阴差阳错地喜欢上了这门语言。

“Weaving The Web” — — 读书笔记

最近因为机缘巧合,我找到并看完了这本“90后”的技术书 — — “Weaving The Web”。本书最早出版于 1999 年,作者正是万维网的发明人蒂姆·伯纳斯·李(Sir Tim Berners-Lee)。尽管是本非常老的书,但是内容确非常出乎意料地有趣,值得一看。

关于老罗

没错,做手机的那个老罗。

牛仔,作词家,诗人和自由的卫士

很惭愧,第一次听说约翰·佩里·巴洛(John Perry Barlow)这位伟大的互联网的先驱,是他最近的讣告。之后才了解他的生平事迹,了解他充满传奇色彩的一生和对互联网自由的贡献,知道了他是我一直关注的电子前哨基金会(Electronic Frontier Foundation, EFF)的共同创始人。

很惭愧,曾经想过写一系列的文章介绍 EFF 这个神奇的组织,想让更多人知道他们的工作和贡献,甚至翻译他们的文章,但都因为懒而耽搁了下来。

博客与网站推荐 2018/01/30

以下是我最近刚开始关注的网站与博客,文章质量都很不错。虽然和我目前的工作没有什么直接的联系,但作为拓宽视野,了解最新的科研成果和动态都是不错的资源。

鹦鹉螺,是一种神奇而且神秘的海洋生物。无数数学家,科学家,包括著名科幻作家凡尔纳都曾为其性质着迷。这部在线科学杂志以此命名,为的也是表现科学神秘与令人着迷之处。

鹦鹉螺杂志内容涵盖心理,数学,天文,地球科学,人类学,甚至哲学,教育学,经济与社会学类等等话题的科普文章,几乎无所不包。虽说是科普,但是文章通常都很长,很耐读,写作质量也是上乘,读通一篇通常都需要相当的耐心。适合夜晚睡前或是周末闲暇时细细品读的文章。

杂志在 2013 年出版第一年就荣获各类科普类杂志的奖项,此后也是荣誉不断。

和 Nautilus 杂志一样,万古杂志也是科普类杂志,2012 年成立。内容涵盖同样全面,但更偏重文化,哲学和社会学等话题。内容有长篇,短篇和视频,也有更多读者的互动。另外,这是一部主要由读者捐助维持的科普杂志,没有付费墙等。在这个买卖知识盛行的年代里保持内容自由是件挺不容易的事情。内容质量也是上乘,也是一部获好评不断的杂志。

每天早上一篇计算机科学类的论文或是文章,由一人 — — Adrian Colyer,筛选和推荐的。

虽然不能每篇都看,但时不时关注一下总能看见有些有趣的文章,如:The paradigms of programming

同样是计算机类论文和文章的推荐,但是是更多读者推选和讨论出来的。他们在全球各地都有爱好者和贡献者,和在各地的聚会与讨论一篇文章。
论文内容的方向很多,比较适合偶尔抽一篇自己感兴趣的看看。


Originally published at www.jianshu.com.

工作两年记(三): “高效的工程师”

这应该是最后一篇工作总结。想到今后每年可能还要再写一篇总结就有点紧张。今年的工作学习不能偷懒。

Page 4 of 5

Powered by WordPress & Theme by Anders Norén