Skip to content

科技爱好者周刊(第 115 期):保护你的 DNA,不要泄漏

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

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。

周刊讨论区的帖子《谁在招人?》,提供大量就业信息,欢迎访问或发布工作/实习岗位。

封面图

澳门去年11月举办龙马巡游,该大型机械装置为中法团队合作打造,上身为龙,下身为马,身体各部分都能动,还能喷火。(出处:Instagram

本周话题:保护你的 DNA,不要泄漏

上周,美国佛罗里达州通过了《DNA 隐私法》,成为美国第一个对 DNA 立法的州。它明文规定 DNA 属于个人隐私,保险公司不得获取 DNA 测试的结果。

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

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

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

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

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

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

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

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

暑假到了,大家打算怎么利用这个假期?

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

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

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

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

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

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

资讯

1、平流层飞船

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

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

2、AI 海滩救生系统

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

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

3、加州大学旧金山分校支付赎金

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

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

4、自动结算的购物车

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

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

5、宝马汽车的付费加热座椅

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

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

6、一句话消息

  • 科学家在海拔6700米的安第斯山脉的山顶,发现了老鼠。这是已知生活区域最高的哺乳动物。这些老鼠吃什么,目前还是一个迷,那个高度没有植物,氧气只有海平面的一半。

  • 小米申请了滑动相机专利,手机背面设置一个滑动条,上面装了三个摄像头。要用前置摄像头时,滑动条会自动滑出,这样手机正面就可以实现全面屏。

  • 英国科学家发表研究成果,每天盯着红光看几分钟,有助于防止老年人视力下降。

  • 推特工程部门宣布,开始替换带有歧视性的软件术语,比如“黑名单”(blacklist)改为“拒绝名单”(denylist),“白名单”改为“允许名单”(allowlist)。

  • 中国电子书厂商 Onyx 拒绝发布设备源码,那是根据 Linux 内核改的,明显违反了 GPL 许可证。Reddit 社区正在讨论,开源软件有没有办法在中国维权。

文章

1、Vim 的由来(英文)

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

2、史上最难的定位挑战(英文)

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

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

3、Makefile 的静态网站实现(英文)

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

4、哈希算法的种类(英文)

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

5、React Hooks 的常见的错误写法(英文)

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

6、字体反爬的攻与防(中文)

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

7、分页查询不要使用 OFFSET 和 LIMIT 语法(英文)

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

8、写给 JavaScript 程序员的 Rust 教程(英文)

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

9、Git 多行提交信息的简单方法(英文)

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

工具

1、ward

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

2、httpsproxy2http

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

3、jsonbase

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

4、guietta

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

5、UIkit

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

6、Zettlr

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

7、Reabble

Kindle 等电子书阅读器的 RSS 推送服务,绑定 Inoreader 帐号。(@weijarz 投稿)

8、Midway Serverless

阿里发布的 Node.js 的 Serverless 框架,帮助 Node.js 开发人员迁移到云端 Serverless 平台。(@czy88840616 投稿)

9、gitqlite

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

10、honkit

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

资源

1、微软学习 TV

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

2、aww rated

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

3、Go 语言编程

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

4、Just JavaScript 课程

著名程序员 Dan Abramov 正在撰写的 JavaScript 教程,他还没有写完。只要在上面网址报名,每写好一部分就会通过邮件发给你。(@hacker0limbo 投稿)

5、webRTC 执行流程演示

这个网页演示和讲解,如何在无后端的情况下,通过 webRTC 建立双方的实时视频通话。(@nashaofu 投稿)

6、Raft 共识的动画讲解

通过一步步的动画,讲解 Raft 协议如何保证分布式集群的一致性,以及选举 leader 的过程。(@wzxJayce 投稿)

图片

1、盲文的由来

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

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

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

2、漫长的雨

《漫长的雨》(The long rain,中译全文)是美国科幻小说作家雷·布拉德伯里(Ray Bradbury)1950年发表的一篇短篇小说。

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

小说的开头是这样的:

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

文摘

1、克拉马托尔核事故

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

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

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

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

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

2、Linus 不再编程了

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

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

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

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

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

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

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

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

言论

1、

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

-- 李敖

2、

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

-- 《创业公司要创造客户不期望的产品》

3、

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

-- 《创业公司要创造客户不期望的产品》

4、

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

-- 《NPM 生态系统令人担忧》

5、

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

-- Hacker News 读者

回顾

2019年的本周(第 64 期):新人如何进入互联网行业?

2018年的本周(第 12 期):政府无法保障养老,必须靠自己

订阅

这个周刊每周五发布,同步更新在阮一峰的网络日志微信公众号

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

(完)

Released under the MIT License.