# 科技爱好者周刊（第 115 期）：保护你的 DNA，不要泄漏

这里记录每周值得分享的科技内容，周五发布。

本杂志开源（GitHub: [ruanyf/weekly](https://github.com/ruanyf/weekly)），欢迎提交 issue，投稿或推荐你的项目。

周刊讨论区的帖子[《谁在招人？》](https://github.com/ruanyf/weekly/issues/1315)，提供大量就业信息，欢迎访问或发布工作/实习岗位。

## 封面图

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070117.jpg)

澳门去年11月举办龙马巡游，该大型机械装置为中法团队合作打造，上身为龙，下身为马，身体各部分都能动，还能喷火。（出处：[Instagram](https://www.instagram.com/p/CCDW-Z1l5BF/)）

## 本周话题：保护你的 DNA，不要泄漏

上周，美国佛罗里达州通过了[《DNA 隐私法》](https://www.washingtonexaminer.com/politics/florida-becomes-first-state-to-enact-dna-privacy-law-blocking-insurers-from-genetic-data)，成为美国第一个对 DNA 立法的州。它明文规定 DNA 属于个人隐私，保险公司不得获取 DNA 测试的结果。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070601.jpg)

为什么 DNA 不能让保险公司知道？

因为 DNA 包含了一个人所有的遗传信息，你有什么基因缺陷，一查 DNA 都能知道。保险公司拿到你的 DNA 以后，就能识别你可能会得哪些疾病，于是相应调整费率，或拒绝你投保人寿险和医疗险。

DNA 不仅对保险公司有用，对就业和招生也有用，可以用来找出基因上最合适的人选。所以，DNA 里面的个人信息可能不利于你，要注意保护，防止泄漏。

DNA 测序已经是一项常规技术了，普通实验室都能做，毫无难度。现在，新生儿出生前，医院都会建议孕妇做一下产前 DNA 检查，防止遗传病。2018年，湖南一个孕妇[起诉华大基因公司](https://www.huxiu.com/article/252310.html)，原因就是该公司的 DNA 检查一切正常，但是新生儿生出来有严重的遗传病。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070602.jpg)

如果 DNA 检查发现遗传缺陷，这个新生儿是不会生出来的。引申一下，这对成人也一样，如果你的 DNA 泄漏了，有时就直接出局了。

DNA 检测现在有多便利？电商平台搜一下“DNA 检测”、“DNA 测序”，会返回很多结果。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070603.jpg)

DNA 也很容易获得，头发、血液、唾液、身体组织都能用来检测。所以，保护 DNA 的难度其实挺大的，只能说个人要有保护意识，尽量不留下 DNA 痕迹。

## 讲座：算法面试的必考知识点

暑假到了，大家打算怎么利用这个假期？

如果你能静得下心，其实可以考虑好好学一下算法。以后进入公司，开发任务一重，就很难有时间和心思，再来学这些基础的东西。

这里介绍一门极客大学推出的讲座 **《算法面试必考知识点》**，可以帮助你学好算法。因为算法内容实在太多，所以这个讲座一共安排了7天。

讲座的主要内容是针对 LeetCode 的海量题库，精选 30 道 BAT 大厂面试高频特色算法题，重点讲解面试的必考知识点，教学风格通俗易懂，零基础的同学也可以听。录播、直播、线上答疑相结合，配合小测试和课后作业，保证教学效果。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070902.jpg)

主讲老师是覃超，他曾担任 Facebook 多年面试官，作为 Facebook Messenger Tech Lead，主导和参与了 Facebook App、Facebook Messenger、Facebook Phone 等产品的研发工作。离开Facebook以后，他与极客大学合作，亲自授课，传授大厂面试经验。通过覃超老师指导的学员，很多都拿到了硅谷公司以及国内顶级互联网公司 Offer。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070901.jpg)

除了视频讲座，每天还会有来自一线互联网企业的助教老师在群内答疑，并配备专属班主任全程带班，召开班会，帮助大家结成学习伙伴，互相监督鼓励。课程结束后，还有学习资料可以领取。

这样规格的7天讲座，仅象征性收费 **9.9元**。微信扫描下方二维码，即可报名，只有 100 个名额哦。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070903.jpg)

## 资讯

1、[平流层飞船](https://www.geekwire.com/2020/space-perspective-reboots-vision-flying-passengers-stratosphere-balloon/)

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062804.jpg)

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062805.jpg)

美国一家私人公司提出了“平流层飞船”计划，让游客乘坐飞船上升到平流层（距离地面30公里），体验一下太空的感觉，票价预计为每人12.5万美元。飞船可以乘坐八名乘客和一名飞行员，先进行长达两个小时的上升，然后在空中停留两个小时，最后再花两个小时下降。

飞船的上升动力，主要来自一个巨大的充满氢气的气球。飞船内部有酒吧，还有一个“拥有世界上最佳视野”的厕所，甚至有 Wifi。该公司计划飞船在2024年完工，目前已经在[官网](https://thespaceperspective.com/fly/)接受预订。

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062806.jpg)

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062807.jpg)

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062808.jpg)

2、[AI 海滩救生系统](https://venturebeat.com/2020/06/26/sightbit-deploys-ai-on-beaches-to-help-lifeguards-spot-distressed-swimmers/)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070103.jpg)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070102.jpg)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070104.jpg)

夏季的海滩有很多人，如果发生溺水，不容易发现。为了帮助救生员尽快发现溺水者，以色列创业公司 Sightbit 开发了一套 AI 溺水救生系统，使用摄像头自动侦测溺水者，还能发现无人看管的孩子和异常的水流。

该系统接受了“成千上万张照片”的训练，只要三个摄像头，就能监控300米的海岸线。它会自动识别游泳者，一旦发现危险，就会出现闪烁框，救生员可以单击警报，放大查看。

3、[加州大学旧金山分校支付赎金](https://gravitational.com/blog/how-to-ssh-properly/)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070112.jpg)

6月1日，加州大学旧金山分校（UCSF）的电脑中毒，出现了上图的对话框，要求支付赎金，才能继续使用电脑。

旧金山分校立刻根据留下的 Email 地址，与黑客取得联系。黑客要求支付赎金300万美元，旧金山分校说新冠病毒使得学校财务很困难，希望只支付78万美元。最后，双方讨价还价，黑客同意了114万美元的赎金。第二天，旧金山大学就将116.4个比特币转移到了对方的电子钱包，然后就得到了解密软件。

4、[自动结算的购物车](https://www.instagram.com/p/CB-EdKKnWs8/?igshid=i4pqo65w8voq)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070122.jpg)

合肥某超市出现了带有自助结算装置的购物车。消费者从货架取完商品后，使用该装置扫描二维码，然后手机付款，就完成了整个自助结算的过程。

这个装置可能不容易推广。它最大的问题是，购物车需要经常充电，而且容易遭到破坏或偷窃，一旦被人拿走，超市会有较大的损失。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070121.jpg)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070120.jpg)

5、[宝马汽车的付费加热座椅](https://www.cnet.com/roadshow/news/bmw-vehicle-as-a-platform/)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070203.jpg)

德国宝马汽车公司最近发布了新的汽车操作系统，最引人注目的是将许多汽车功能做进了系统，让它们都变成了软件服务，像自动导航、自动远光灯、甚至加热座椅都变成了软件控制。

新的系统还带有收费设置，这意味着，这些服务都可以改成按小时收费，付款后才能开启。以后，你可能需要按月购买服务包（service pack），才能使用汽车的某些功能，比如冬季购买加热座椅服务，夜里购买自动远光灯服务。 

6、**一句话消息**

> - [科学家](https://www.nationalgeographic.com/animals/2020/03/mouse-found-atop-volcano-highest-altitude-mammal/)在海拔6700米的安第斯山脉的山顶，发现了老鼠。这是已知生活区域最高的哺乳动物。这些老鼠吃什么，目前还是一个迷，那个高度没有植物，氧气只有海平面的一半。

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020063006.jpg)

> - [小米](https://www.researchsnipers.com/xiaomi-registers-new-sliding-camera-patent-to-increase-screen-to-body-ratio/)申请了滑动相机专利，手机背面设置一个滑动条，上面装了三个摄像头。要用前置摄像头时，滑动条会自动滑出，这样手机正面就可以实现全面屏。

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062308.jpg)

> - [英国科学家](https://www.cnn.com/2020/06/30/health/declining-eyesight-red-light-scn-wellness/index.html)发表研究成果，每天盯着红光看几分钟，有助于防止老年人视力下降。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070202.jpg)

> - [推特工程部门](https://twitter.com/TwitterEng/status/1278733305190342656)宣布，开始替换带有歧视性的软件术语，比如“黑名单”（blacklist）改为“拒绝名单”（denylist），“白名单”改为“允许名单”（allowlist）。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070301.jpg)

> - [中国电子书厂商 Onyx](https://old.reddit.com/r/Onyx_Boox/comments/hk7d5v/onyx_is_violating_the_linux_kernels_license/) 拒绝发布设备源码，那是根据 Linux 内核改的，明显违反了 GPL 许可证。Reddit 社区正在讨论，开源软件有没有办法在中国维权。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070505.jpg)

## 文章

1、[Vim 的由来](https://pragmaticpineapple.com/how-did-vim-become-so-popular/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070107.jpg)

Vim 有30多年历史，目前依然是最流行的编辑器之一。本文简要地回顾了历史，它的一些主要的设计决定，到底是怎么来的。

2、[史上最难的定位挑战](https://nixintel.info/osint/using-flight-tracking-for-geolocation-quiztime-30th-october-2019/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070111.jpg)

一个推特用户发了一张照片，空荡荡的蓝天上有一架飞机。他给出了三个已知条件，本文分析如何根据下面三个条件，定位他在哪里拍这张照片。

- 天空中的飞机是从伦敦飞往香港的波音747。
- 该照片拍摄于2019年10月30日。
- 拍摄者在旅馆里。

3、[Makefile 的静态网站实现](https://metin.nextc.org/posts/The_Idea_Of_Makefile_Blog.html)（英文）

现在有各种各样的静态网站工具，比如 Jekyll 和 Hugo 等。作者提出，Makefile 也可以用来实现静态网站，这样就不需要任何外部工具了，只维护一个 Makefile 配置文件即可。

4、[哈希算法的种类](https://pradeeploganathan.com/blockchain/hashing/)（英文）

这篇文章用相对通俗的语言，介绍了目前常用的几种哈希算法，以及它们各自适用的场景。

5、[React Hooks 的常见的错误写法](https://www.lorenzweiss.de/common_mistakes_react_hooks/)（英文）

Hooks 是前端框架 React 现在主推的写法，它很灵活，但也很容易误用。本文作者总结了四个错误写法，虽然能够运行，但是不应该这样写。

6、[字体反爬的攻与防](https://cjting.me/2020/07/01/douyu-crawler-and-font-anti-crawling/)（中文）

作者因为业务原因需要爬取一批斗鱼主播的相关数据，结果发现斗鱼使用了一种很有意思的反爬技术：字体反爬。

7、[分页查询不要使用 OFFSET 和 LIMIT 语法](https://hackernoon.com/please-dont-use-offset-and-limit-for-your-pagination-8ux3u4y)（英文）

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070502.jpg)

数据查询时，如果数据多，就需要分页，一般使用 OFFSET 和 LIMIT 语法。这篇文章提出，这样做不好，耗费资源，有性能问题。

8、[写给 JavaScript 程序员的 Rust 教程](http://www.sheshbabu.com/posts/rust-for-javascript-developers-functions-and-control-flow/)（英文）

一组系列文章，使用 JavaScript 作为例子，介绍 Rust 语言。

9、[Git 多行提交信息的简单方法](https://www.stefanjudis.com/today-i-learned/git-commit-accepts-several-message-flags-m-to-allow-multiline-commits/)（英文）

`git commit`命令的`-m`参数用来指定提交信息，但是这样提交的信息只有一行。本文介绍实现多行信息的简单方法。

## 工具

1、[ward](https://github.com/B-Software/Ward)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070113.jpg)

一个简单的服务器监控的仪表盘，基于 Java。

2、[httpsproxy2http](https://github.com/novalagung/httpsproxy2http)

一个开源的反向代理服务器，以 Docker 镜像形式发布，提供 HTTP 到 HTTPS 的反向代理服务，可以把不加密的 HTTP 网站代理成加密的 HTTPS 网站。

3、[jsonbase](https://github.com/Devs-Garden/jsonbase)

一个 JavaScript 数据库，后端数据都存成 JSON 格式文件，可以用来学习怎么自己实现关系型数据库。

4、[guietta](https://github.com/alfiopuglisi/guietta)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070302.jpg)

一个 Python 工具，用来生成简单的图形界面。

5、[UIkit](https://getuikit.com/)

一个前端 Web 组件库，不依赖任何框架，组件类型多、功能强。

6、[Zettlr](https://www.zettlr.com/)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070401.jpg)

一个桌面 Markdown 编辑器，界面美观。

7、[Reabble](https://reabble.cn/)

Kindle 等电子书阅读器的 RSS 推送服务，绑定  Inoreader 帐号。（[@weijarz](https://github.com/ruanyf/weekly/issues/1327) 投稿）

8、[Midway Serverless](https://github.com/midwayjs/midway)

阿里发布的 Node.js 的 Serverless 框架，帮助 Node.js 开发人员迁移到云端  Serverless 平台。（[@czy88840616](https://github.com/ruanyf/weekly/issues/1328) 投稿）

9、[gitqlite](https://github.com/augmentable-dev/gitqlite)

使用 SQL 语法查询 Git 仓库的工具，比如`SELECT * FROM commits`。

10、[honkit](https://github.com/honkit/honkit)

GitBook 官方不再维护开源版本后，其他人分叉继续开发的版本。

## 资源

1、[微软学习 TV](https://docs.microsoft.com/en-us/learn/tv/)

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062406.jpg)

微软官方的学习视频中心，有各种教程。

2、[aww rated](https://awwrated.com/en/netflix)

![](https://cdn.beekka.com/blogimg/asset/202006/bg2020062802.jpg)

这是一个Netflix 评价网站，通过抓取 IMDb、metacritic、烂番茄、豆瓣等评分网站的数据，列出 Netflix 各种节目的评分。

3、[Go 语言编程](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook)

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070116.jpg)

英文的免费电子书，DigitalOcean 发布的。

4、[Just JavaScript 课程](https://justjavascript.com/)

著名程序员 Dan Abramov 正在撰写的 JavaScript 教程，他还没有写完。只要在上面网址报名，每写好一部分就会通过邮件发给你。（[@hacker0limbo](https://github.com/ruanyf/weekly/issues/1326) 投稿）

5、[webRTC 执行流程演示](https://nashaofu.github.io/webrtc-demo/)

这个网页演示和讲解，如何在无后端的情况下，通过 webRTC 建立双方的实时视频通话。（[@nashaofu](https://github.com/ruanyf/weekly/issues/1332) 投稿）

6、[Raft 共识的动画讲解](http://thesecretlivesofdata.com/raft/)

通过一步步的动画，讲解 Raft 协议如何保证分布式集群的一致性，以及选举 leader 的过程。（[@wzxJayce](https://github.com/ruanyf/weekly/issues/1331) 投稿）

## 图片

1、[盲文的由来](https://stitcher.io/blog/braille-and-the-history-of-software)

1786年，法国人 Valentin Haüy 发明了第一本凸起字母书，盲人和弱视的人通过触摸读书。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070108.jpg)

1831年，美国人塞缪尔·豪（Samuel Howe）的美国人受到浮雕字母的启发，发明了一种新的字体，更容易触摸识别，称为波士顿字型。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070109.jpg)

1932年，六个点的布莱叶盲文，成为国际标准，取代了具体的字母。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070110.jpg)

2、[漫长的雨](http://www.samweller.net/bradbury-1/2018/11/29/the-essential-bradbury)

《漫长的雨》（The long rain，[中译全文](https://www.sohu.com/a/337866552_771944)）是美国科幻小说作家雷·布拉德伯里（Ray Bradbury）1950年发表的一篇短篇小说。

它讲述四个宇航员因为火箭失事，来到一个不停下雨的星球。这个星球永远在下瓢泼大雨，过去10年一秒都没有停过。宇航员冒着雨水，在丛林里面穿行，拼命寻找前人修建的“阳光穹顶”，那里是一个大屋顶，有温暖的人造阳光，以及充足的食物和休息的场所。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070201.jpg)

小说的开头是这样的：

> "大雨，永远的雨，升腾着汗水和蒸汽的雨。这是密集的瓢泼大雨，像鞭子一样打在眼睛上，飞溅到脚踝上。它是一场淹没其他所有雨水的雨，让人遗忘所有关于雨水的记忆。”

## 文摘

1、[克拉马托尔核事故](https://en.wikipedia.org/wiki/Kramatorsk_radiological_accident)

1989年，乌克兰克拉马托尔市 Hvardiytsiv Kantemyrivtsiv 大街7号公寓大楼的居民，向有关部门要求，立即检查该栋大楼是否存在核辐射。1980年到1989年，该楼前后有4人死于白血病。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070114.jpg)

检查发现，该楼的核辐射极高。最后确认，在85号和52号房间之间的那堵墙壁里面，有一个具有高度放射性的铯-137胶囊。

9年前，这个胶囊在一个采石场丢失，始终没有找到。现在人们知道了，这个丢失的胶囊混在石料里面，做成了混凝土，砌进了这堵墙。

九年的时间里面，两个家庭就在这堵墙旁边生活，其中有一个家庭的孩子的床就放在放射源旁边。事后统计，一共有17个人受到了严重的核辐射。

最终，这堵墙被拆除，铯胶囊由核研究所取出，并进行处置。

2、[Linus 不再编程了](https://linux.slashdot.org/story/20/07/03/2133201/linus-torvalds-i-do-no-coding-any-more)

2020年5月，Linux 基金会一年一度的峰会上，Linux 创始人莱纳斯·托瓦尔兹（Linus Torvalds）与 VMware 公司副总裁兼首席开源官 Dirk Hohndel 进行了对话。

![](https://cdn.beekka.com/blogimg/asset/202007/bg2020070605.jpg)

Dirk Hohndel 问 Linus，现在的工作流程是怎样的。

Linus 说，我现在整天就是读 Email，写 Email，再也不编程了。

我现在写的大部分代码，都是在 Email 里面。某人给我发来一个补丁，或者一个 Pull Request，或者跟我讨论，我就写一段伪代码，不编译也不测试，发给对方看，然后在邮件里加上一句“我觉得应该这么写”。

我现在就干这些事，我不再是程序员了。

我每天读的 Email，要比写的多得多。 因为我的工作说到底，就是拒绝其他人的代码。总是需要有一个人来拒绝其他人，其他开发者知道代码写得不好，会被我拒绝，就会更小心。为了能够有说服力地拒绝他人，我不得不知道事情的前因后果，否则我就不称职了。所以基本上，我的所有时间都用来读其他人的 Email，必须知道他们在干嘛……这工作很有意思，但是你不得不把大部分时间用来读 Email。

对于开发者，我希望大家不仅只是写出好的代码，还必须很善于解释自己的代码。代码的提交信息，对我来说，几乎跟代码本身一样重要。有时，代码的意图非常明显，不需要解释，但是这种情况极其少。我对开发者的一个希望就是，能够更好地解释他们的代码是干嘛的，为什么需要变更以前的代码。这样的话，我管理起来就比较容易，如果你能够解释清楚，我就能信任这些代码。

开源软件的一大部分其实是交流，而交流包括提交信息，也包括来来回回的 Email。告诉别人你想做什么，为什么原来的代码你觉得要改，真的是非常重要的一件事。

## 言论

1、

看到抽象的东西，应该尽量使它变得具体；看到具体的东西，应该尽量使它变得抽象。

-- 李敖

2、

创业公司不要专注于创造产品，而要专注于解决问题。

-- [《创业公司要创造客户不期望的产品》](https://medium.com/@jproco/why-your-startup-needs-to-build-the-product-your-customers-arent-expecting-8d769054db53)

3、

创新型的创业公司，一开始的目标用户应该是对新产品最有兴趣的那2％的人群，并设法与剩下的那 98％的人建立一座桥梁，把那些人推向未来。

-- [《创业公司要创造客户不期望的产品》](https://medium.com/@jproco/why-your-startup-needs-to-build-the-product-your-customers-arent-expecting-8d769054db53)

4、

NPM 现在有130万个软件包，绝大部分都不是长期维护的。即使你找到一个长期维护的软件包，它可能会有10层或更多的依赖，涉及其他数百个包，你根本不可能每一个都去验证。

-- [《NPM 生态系统令人担忧》](https://sambleckley.com/writing/npm.html)

5、

自从第一款游戏机问世，此后的每一款游戏机都出现了盗版。但是，这种情况已经结束了，Xbox One 和 PS4 已经上市了将近6年，没有任何黑客能够破解它们实现盗版游戏。这是游戏机历史上第一次持续了如此长的时间，没有出现破解和盗版。

-- [Hacker News 读者](https://news.ycombinator.com/item?id=23657458)

## 回顾

2019年的本周（第 64 期）：[新人如何进入互联网行业？](http://www.ruanyifeng.com/blog/2019/07/weekly-issue-64.html)

![](https://cdn.beekka.com/blogimg/asset/201907/bg2019071101.jpg)

2018年的本周（第 12 期）：[政府无法保障养老，必须靠自己](http://www.ruanyifeng.com/blog/2018/07/weekly-issue-12.html)

![](https://cdn.beekka.com/blogimg/asset/201807/bg2018070601.jpg)

## 订阅

这个周刊每周五发布，同步更新在[阮一峰的网络日志](http://www.ruanyifeng.com/blog)和[微信公众号](http://weixin.sogou.com/weixin?query=%E9%98%AE%E4%B8%80%E5%B3%B0%E7%9A%84%E7%BD%91%E7%BB%9C%E6%97%A5%E5%BF%97)。

微信搜索“阮一峰的网络日志”或者扫描二维码，即可订阅。

![](http://www.ruanyifeng.com/blogimg/asset/2018/bg2018042311.jpg)

（完）
