跟随,学习,进步

阮一峰

阮一峰的个人网站

http://www.ruanyifeng.com
转到作者网站

科技爱好者周刊:第 74 期

这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。 封面图:篮球世界杯,上海东方体育中心,2019 刊首语 大家有没有感觉,互联网上免费的东西越来越少了。 打开很多网站或 App,都要求你付费:听歌要钱,视频要钱,下载要钱,读一篇文章也要钱。这当然无可厚非,但是我总觉得,纯粹的信息收费不是一个好的商业模式,除非有增值服务。 这有两个原因。 第一个原因是,信息与实体商品不同。实体商品具有排他性,我吃了这只苹果,别人就吃不到,但是信息可以无数次消费。 而且,信息有一个奇怪的特征:消费的人越多,它的价值越高。一篇文章只有二三十人看,很快就会被忘记;但有一百万人看,就是全国的热点。 收费会阻止信息的这种零成本的自我增值。 第二个原因是,信息收费很难扩展。80%的用户都是看一眼就走了, 收费会阻止这些轻度使用的用户。 比如,《纽约时报》网站是收费的,但是我一个月就看几篇文章,不太可能为这几篇文章成为付费用户。信息收费的前提是,用户会深入地、长期地使用这个服务,这种深度用户很难找,因此收费很难扩展。 所以,我认为, 信息的商业模式,不应该是收费,而是应该鼓励更多的人消费它。 越多人消费,信息的价值越高,这时就可以开发增值服务,从服务赚钱。 开源软件就是很好的例子。Linux 原来是一个大学生的作品,可以免费用,结果成了行业标准。基于 Linux 的 Red Hat 公司,所有产品都是开源的,只对服务收费,最终被 IBM 以 340亿美元的价格收购。 就像上图的那句话:"Open is smart. Smart is open" 。我们不要做 closed 的产品,而要做 open 的产品。Open 一定会带来更大的价值。 60天攻克数据结构与算法 算法和数据结构是编程的内功,对于编程能力的提高和职场道路的进阶至关重要,能让学习编程语言和框架事半功倍。而且,它们也是互联网公司面试的必考知识点。 很多人自学算法,往往不成体系、不得要领,缺乏结果反馈,难以评估效果;刷题缓慢,难以坚持;做过的题目总是忘记,面对面试题不知从何入手。 极客时间与前 Facebook 工程师覃超联合推出了"算法训练营" ,用 60 天高强度训练营,带你攻克数据结构与算法,目前已经开设第 4 期。 课程采用视频、直播方式教学,结合线下社交讨论,并由班主任和教研组倾力提供全方位线上学习服务,包括助教答疑、作业、期中总结、考试、毕业等环节。 内容从低到高,由浅入深,从链表数组讲到动态规划、并查集、字典树、红黑树和 AVL 树、位运算、布隆过滤器和 LRU Cache,适合不同基础的软件工程师精进算法能力、构建知识体系。下面是详细的课程大纲: 预习周:数据结构和算法总览 第一周:数组与链表、栈与队列 第二周:哈希表、映射、集合 第二周:树、二叉数和图 第三周:递归、分治和回溯 第四周:深度、广度优先搜索与剪枝 第四周:贪心算法与二分查找 第五周:动态规划 第六周:并查集、字典树、红黑树和 AVL 树 第七周:位运算、布隆过滤器和 LRU Cache 第七周:排序、字符串操作串讲 毕业周:整体知识总结 原价 ¥2499,优惠价 ¥1499,使用口令:RUANYFENG,还可以再省100元。微信扫描下方二维码,可以查看训练营详情并报名。 资讯 1、北极河流干涸 今年夏天,北极异常的高温,导致俄罗斯西伯利亚北极圈内的主要河流 Lena 河,水位下降了2.5米,近乎干涸。船只已经无法通航,导致了严重的问题,因为河流沿线有一些居民点,不通公路,都靠水运补给。 2、最快的四轮车女性 Jessica Combs 是美国女子职业赛车手。8月27日,她在美国俄勒冈州的沙漠企图挑战世界最快的四轮车速度纪录时,驾驶的赛车不幸撞毁,她因此身亡,享年39岁。 2013年,她创下女子四轮车速度记录,平均速度632公里/小时,最高速度为709公里/小时。2016年,她将最高速度提升到768.61公里/小时。她驾驶的都是叫做"北美之鹰"的喷气引擎汽车,这次撞毁的也是这辆车。 3、最黑的黑色汽车 宝马发布了 Vantablack 版本的 X6 轿车。Vantablack 是世界最黑的黑色颜料,可以吸收99%以上的光线。这使得宝马 VBX6 是目前世界上最黑的黑色汽车,几乎完全消除了所有反光。理论上,如果一个物体不反射任何光线,本身又不发光,那么视觉上就是一个黑洞。 4、竹子学校十周年 印尼巴厘岛的绿色学校庆祝十周年,该学校完全用竹子建造,具有国际知名度。竹子通常用于廉价的棚屋、摊位、围栏、脚手架等,极易受到火灾的影响,而且因为含有水和淀粉,会被昆虫和真菌吞噬。建筑师对竹子做了特殊处理,才使之可以用于持久性的大型建筑。 研究人员正在开发由竹纤维和树脂制成的防火耐用竹板,将竹子建筑进一步推广。 5、USA-224 侦察卫星 8月29日,伊朗的萨菲尔火箭发生事故,发射失败。第二天,美国总统特朗普发了一条推文,附上一张高清卫星照片(上图),声称火箭事故与美国无关。 天文学家根据照片上面阴影的方向和大小,推算出拍照的时间。这个时间经过伊朗上空的美国侦察卫星只有 USA-224 一颗,因此这张照片极可能是这颗卫星拍的。该卫星专门拍摄地面的高清照片,是美国的军事项目,高度保密。特朗普发的照片,是该卫星流出的第一张照片,他是不应该发这张军用级别的照片的。 6、自愈水泥 传统的混凝土出现裂缝是一种普遍现象。荷兰一所大学的微生物学教授发明了一种添加细菌的生物混凝土。这种细菌会产生乳酸钙,进而形成石灰石,导致混凝土的裂缝自然愈合。 这种细菌平时处于休眠状态,只有出现裂缝时,外部的空气和水分才能唤醒。该技术目前能够愈合任何长度的裂缝,但是最大宽度不能超过0.8毫米,而且成本是普通混凝土的两倍。 下图是该种混凝土刚刚破裂的情景。 下图是28天后。 下图是56天后。 7、沙特石油袭击 9月14日,沙特的一处石油设施遭到袭击。现场照片公布以后,可以看到完全是精确袭击,不攻击人,只攻击设施,17枚炸弹都不偏不倚命中目标,见上图的红框处。目前还不知道这是怎么发动的,这么精确的袭击最大的可能就是无人机。 8、一句话消息 《自然》杂志发表文章称,目前河沙采掘速度,已经超过了自然恢复的速度,将对生态造成不可恢复的伤害。建筑业需要大量沙子,但是沙漠的沙和海沙太细,只有河沙才能用,全世界每年大约会使用320亿吨至500亿吨河沙,主要用来制造水泥和玻璃,都要从河流中挖掘。 加州通过法律,规定在 uber 接活的司机是雇员,而不是合同工,因此可以享受最低工资和加班费。uber 公司已经提起上诉。 印度宣布,10月2日起在全国禁止六种一次性塑料制品:塑料袋、杯子、盘子、小瓶子、吸管和小塑料包。 美国一家创业公司提出,全球每天有2460亿封电子邮件,消耗的能量相当于排放98.6万吨碳。其中很多邮件都是不必要的,因此提倡及时退订你不需要的邮件列表。 美国 5G 网络的峰值下载速度,经测试只比 4G 网络的峰值高三倍,这还是在信号最好的情况下。5G 带来的提升,并没有宣传的那么好。 Buzzfeed 试验新的用户界面,用户进入主页以后,在六种心情里面选一个:"好奇,压力,无聊,怀旧,快乐,饥饿",然后网站根据你的心情,向你展示内容。 美国阿肯色州的钻石州立公园,上个世纪曾经发现过很多钻石,后来开辟成公园。最近,一位游客在阴凉处观看如何寻找钻石的 YouTube 视频,结果一低头发现沙子中有一颗巨大的3.72克拉钻石。 文章 1、安卓的三层结构和鸿蒙 OS(英文) 安卓实际是一个三层结构:Linux 内核、安卓中间层和谷歌服务框架。华为的鸿蒙 OS 比较可行的选择是,依然使用底下两层,只取代谷歌服务框架的部分。 2、生物识别安全平台的数据泄露(英文) 一个安全团队披露,他们破解了一个广泛使用的用户数据库,获得了100多万条指纹和面部识别信息。他们认为,生物特征作为密码是不安全的,一旦数据泄露,用户不可能更改指纹和面部特征。 3、使用 Backblaze B2 和 Cloudflare Workers 搭建免费图床(英文) 开发者通常都有图片托管的需求,本文介绍一个免费的搭建个人图床的方案。 4、motd 功能解释(英文) 类 Unix 系统的/etc/motd服务,可以对所有用户显示登陆时的通知信息。本文介绍怎么使用这个服务。 5、抗癌史上的华人传奇(中文) 世界上第一个使用化疗治疗癌症的医生,是中国人李敏求。 6、静态博客的技术方案(英文) 这是 Hacker News 的讨论帖,讨论当前自己搭建博客的最佳技术方案。 7、ncdu 命令的用法(英文) du命令是类 Unix 系统查看文件和目录大小的命令,ncdu是du的替代品 8、Cherry MX 机械键盘的类型(英文) 本文给出机械键盘几种类型的参数和内部构造动画。 9、如何使用图像预览加速图像加载(英文) 网页图像可以先加载预览图像,然后再自动加载完整图像,这样有助于提高网页性能。本文总结了图像预览的几种方案。 10、我的周末项目(英文) 本文记述作者一个周末写的项目,结果意外变成了苹果应用商店的最佳新应用,赚到了4000美元。作者谈了他的一些感想。 工具 1、Unison 一个桌面软件,可以让 OSX、Unix 和 Windows 系统的文件同步。 2、QR Code Scanner Flutter 的二维码扫描插件。(@leyan95 投稿) 3、Dadroit JSON Viewer 一个浏览大型 JSON 数据文件专用的桌面 JSON 查看器。 4、Node.js 爬虫示例 一个 Node.js 爬虫的示例项目,帮助感兴趣的同学了解爬虫的实现。(@ZY2071 投稿) 5、wallace-cli 一个 CSS 样式表的命令行分析工具,显示有多少条规则、选择器,压缩前后的文件大小等等。 6、Anime4K 实时提升卡通动画的分辨率,使其成为高清动画的工具。 7、翻译侠 浏览器翻译插件,支持 Chrome 和 Firefox,鼠标点击或选择触发翻译,可以翻译多种语言,底层为 Google translate API。(@cloudfroster 投稿) 8、Hexo theme cold stone Hexo 博客框架的一套样式主题。(@xrr2016 投稿) 9、DarkDarkGo 开源的暗网搜索引擎工具。 10、cve-search 一个 CVE 漏洞的本地搜索引擎,上图是漏洞的分类排行。 11、majestic 一款好用的 Jest 测试框架的图形界面。(@ifrontend-xyz 投稿) 资源 1、版本博物馆 该网站收集世界主要网站和应用程序的页面变迁。 2、算法 英文免费电子书,伊利诺伊大学计算机科学课程的讲义。 3、GIF cities 该网站收集各种 GIF 动画图片。 4、Python 语法笔记 一个比较完整的 Python 教程,主要是语法方面的笔记。(@nosarthur 投稿) 5、现代 Web 开发 一个在线的 Nodejs + React 的互动教程。 6、CPU 原理导论 一篇使用通俗语言讲解 CPU 原理的教程。 7、No CS Degree 该网站专门采访自学成才的程序员,每个采访对象都会问他们怎么学会编程,怎么找到工作。(@nosarthur 投稿) 图片 1、敌对建筑 敌对建筑是一种建筑设计策略,设计师故意让公用建筑使用起来不友好,防止滥用。 长椅故意不做平,让人无法躺下。 突出的墙角,防止有人小便。 花坛的矮墙装上铁扳手,防止有人在上面玩滑板。 2、海岸边的美国 美国很多大城市和重要设施都在海岸边,海平面上升对美国会产生重大影响。本文提供很多航拍图片,展示美国城市距离大海有多近。 下图的后方是大西洋城,前方是城市的污水处理厂。 下图是纽约肯尼迪机场。 3、自然界的二叉树 下面的植物,每个节点都有两个分支。 文摘 1、暗物质开发者 天文学中,暗物质是一种未知的物质,据说宇宙的大部分是暗物质。它既不发光也不反射光,因此望远镜不能直接看到。 你看不到暗物质,但我们很确定它在那里。我们知道它,但无法看到它。它永远不会露面。 有些开发者不是我们经常遇到的那种开发者,就像暗物质一样,可以称之为暗物质开发者。他们不会大量阅读网上的文章,也从不写文章,不去讨论区发言,也不发推文,很少在大型会议上露面。 他们依然在使用老旧的技术,解决各种问题。比如,在小公司的办公室里使用着 ASP,或者在墨西哥写着 VB6,或者在大型芯片制造商内部编写 PHP 日历应用程序。 他们使用众所周知的、经过充分测试并且易于理解的成熟产品。他们不追逐最新的测试版,也不太感兴趣,他们只是让软件可以工作。 暗物质开发者永远不会阅读这篇文章。 2、任正非《我的父亲母亲》 (图片:军队时期的任正非) 1978年3月,我出席了全国科学大会,6000人的代表中,仅有150多人在35岁以下,我33 岁,是军队代表中少有的非党人士。 我有幸在罗瑞卿同志逝世前三个月,聆听了他为全国科学大会军队代表的讲话,说未来十几年是一个难得的和平时期,我们要抓紧全力投入经济建设。我那时年轻,缺少政治头脑,并不明白其含意。过了两、三年大裁军,我们整个兵种全部被裁掉,我才理解了什么叫预见性的领导。 转入地方后,不适应商品经济,也无驾驭它的能力,一开始我在一个电子公司当经理也栽过跟斗,被人骗过。后来也是无处可以就业,才被迫创建华为的。 华为的前几年是在十分艰难困苦的条件下起步的。这时父母、侄子与我住在(深圳)一间十几平方米的小房里,在阳台上做饭。他们处处为我担心,生活也十分节省,攒一些钱说是为了将来救我。 听妹妹说,母亲去世前两个月,还与妹妹说,她存有几万元,以后留着救哥哥,他总不会永远都好。母亲在被车撞时,她身上只装了几十元钱,又未带任何证件,是作为无名氏被110抢救的。中午吃饭时,妹妹、妹夫才发现她未回来,四处寻找,才知道遇车祸。可怜天下父母心,一个母亲的心有多纯。 当时在广东卖鱼虾,一死就十分便宜,父母他们专门买死鱼、死虾吃,说这比内地还新鲜呢!晚上出去买菜与西瓜,因为卖不掉的菜,便宜一些。我也无暇顾及他们的生活,以致母亲糖尿病严重我还不知道,是邻居告诉我的。华为有了规模发展后,管理转换的压力十分巨大,我不仅照顾不了父母,而且连自己也照顾不了,我的身体也是那一段时间累垮的。 我父母这时才转去昆明我妹妹处定居。我也因此理解了要奋斗就会有牺牲,华为的成功,使我失去了孝敬父母的机会与责任,也消蚀了自己的健康。 回顾我自己已走过的历史,唯一有愧的是对不起父母,没条件时没有照顾他们,有条件时也没有照顾他们。爸爸妈妈,千声万声呼唤您们,千声万声唤不回。 言论和数据 1、 食品应该标注两个日期:最佳质量日期和丢弃日期。 -- 《华尔街日报》 2、 人类正在充分利用元素周期表。20世纪80年代的第一代手机,包含25到30种化学元素。今天的手机包含大约75种化学元素,几乎是周期表的四分之三,其中可能包括卢旺达的钽、白俄罗斯的钾、墨西哥的银、缅甸的锡、印度的碳和中国的锗。 -- 《元素周期表150周年》 3、 Pixar 最初是一家图形计算公司,为了显示自己的技术实力,他们制作了一部 CGI 短片,结果得到了奥斯卡最佳动画短片。于是,他们就改行成了电脑动画公司。 -- 《乔布斯签名的 Pixar 海报》 4、 2010年3月,一个比特币的价格是0.003美元,2017年12月17日是19,783.06美元。 -- 《投资比特币之前要考虑的事情》 5、 每一天很长,但几十年很短。 -- Sam Altman,《我的30岁感想》 招聘信息 周刊讨论区的《谁在招人?》,有大量工作/实习岗位,欢迎查看。 如果你的团队需要招人,可以免费在那里张贴招聘信息。如果希望发在周刊上,请联系我(Email: yifeng.ruan@gmail.com ),每条价格 300 元。 1、熵简科技 国内领先的数据中台服务商,帮助企业打造一站式数据智能服务平台,已完成B轮融资,客户包括嘉实基金、睿远基金、淡水泉投资、波士顿咨询等顶级金融资管及咨询机构。工作地点北京。 以下岗位开放招聘:高级产品经理、NLP算法工程师、后端工程师、前端工程师、运维工程师、测试工程师。详细要求看这里。 2、秘猿科技 秘猿科技是区块链创业公司,为加密经济提供区块链基础设施和服务。工作地点:杭州或 remote。 本公司招聘区块链工程师、高级后端工程师、安全和测试工程师。详细要求看这里。 回顾 去年的本周:《周刊第 22 期》 订阅 这个周刊每周五发布,同步更新在阮一峰的网络日志、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年9月20日


科技爱好者周刊:第 73 期

这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。 封面图:上海,2019。 刊首语 很多人家里买了跑步机,练了一阵子,就渐渐不用了,放在角落积灰。我家就是这样。 跑步 App 诞生的时候,也面临这个问题。如何让三分钟热度的用户坚持下来,不要放弃? 它想了很多办法, 我认为最有用的一招,就是数据记录。 昨天跑了几公里,今天跑了几公里,每天都记录下来。你可以看到自己的进步,产生一种不断挑战自己、超越自己的愿望。 为了强化这种愿望,App 还推出连续打卡获得勋章的活动,并且建立跑步圈,看看朋友里面谁领先、谁落后。有了这样的措施,很多人就真的坚持下来了,跑步从健身活动,变成带有心灵修炼和社交活动的色彩。 这就是数据的威力,仅仅把数据记录下来,哪怕是最简单的连续编号,就很可能改变一个人的行为。我听过有人说:"我曾经希望连续跑100天,哪知道最后竟然坚持了800天。" 类似的例子是,GitHub 个人页有一个日历栏目,只要当天有代码提交,那一天的小方格就会变成绿色。如果这一年,你每天编码,日历就全是绿的,否则就会有白色的小方块。所有人都可以看到这个"编码日历"。 很多人为了让绿色小方格子不要中断,就会尽量每天提交代码。时间一长,真的多做了不少项目。 这件事的启示就是,不管做什么事,都应该进行数据记录和数据分析。对个人来说,可以从一个业余爱好者变成专业人士;对产品来说,可以从一个普通产品变成数据产品。 资讯 1、冰川的墓碑 8月18日,冰岛为该国第一座消失的冰川,举行了葬礼。冰岛总理亲自出席。Okjokull 火山顶曾经被冰川覆盖,足足有16平方公里。但在2014年冰川已经接近完全消失(上图)。卫星照片可以清楚看到1986年大片白色的冰雪,到了今年只剩下火山口附近一小片(下图)。 200多个活动参与者在火山顶立下了一块墓碑。碑文警告,若是放任气候变迁继续恶化下去,未来两百年,这个岛国的四百座冰川,都将步上同样的后尘。 2、太空犯罪 安妮·麦克莱恩(Anne Charlotte McClain)是美国宇航员,2018年12月3日进入国际空间站,2019年6月24日返回地球。在这期间,她在空间站上偷偷访问已经分手的配偶的银行账户。 现在,配偶对她的这个行为提起诉讼,起诉她侵犯他人财产。这是有史以来第一起因为发生在太空的行为,而导致的法律诉讼。(@starshipsea 投稿) 3、猴子税 美国生物医学界很担心美国对中国商品提高关税,因为美国所有进口的非人类灵长类动物(主要是猴子),约有80%来自中国。这些猴子用来试验各种治疗艾滋病、埃博拉和帕金森病等的药物。 根据美国国立卫生研究院,实验室猴子的需求持续上升,但是科研经费并没有上升,如果由于关税使得猴子的成本增加5%至25%,一些研究人员将被迫缩减项目规模,或者索性把研究转移到中国。据说在中国,灵长类动物的实验只要1,500美元,而在美国需要6,000美元。 4、浮动的核电站 俄罗斯启用了世界第一个浮动核电站,那是一艘带有两座核反应堆的浮动平台,长144米,宽30米。它没有发动机,需要靠拖船拉动。它将驶往西伯利亚城市 Pewek。 反对者认为这是一项危险的技术,对北极环境带来巨大的危险。当地已有一座建立在永久冻土层上的核电站,现在已经陈旧不堪,而且由于气候变化,本来坚固的永久冻土层的地基开始融化,所以计划很快就会关闭,使用浮动核电站取代。 5、无人船横渡大西洋 英国一家创业公司建造的无人船 Maxlimer,长11米,正在准备横渡大西洋。由于这船不载人,所以可以多放很多货物。在港口拥挤的水域,它由人类通过无线电远程操作;在大洋上,则它自动跟随 GPS 信号航行。 该船于2017年发布,此前曾经内部测试了很长时间。发布后,已经成功在英国和比利时之间运输货物。接下来,将在英国与挪威之间航行,然后预定在2020年上半年横渡大西洋。如果这种船只成功,将会改变世界航运市场。 6、Facebook 推出约会功能 Facebook 正式推出约会功能。开启这个功能的人,会有一个单独的约会主页,展示自己的照片和视频。其他人浏览这个主页,如果愿意与对方约会,可以按赞。最后,你在所有按赞的人里面,选出约会对象。 有意思的地方是,Facebook 会智能选出哪些人可以看到你的约会主页,其中包括陌生人,也包括你的好友。 7、世界最古老的在线摄像头 位于旧金山的 FogCam,是目前最古老的网络直播摄影头,从1994年开始上线,至今已经直播了25个年头。它于8月30日正式关闭。 这个摄影头放置在旧金山州立大学,当时两个学生搭建了网站,摄像头自动每隔一分钟拍摄一张照片,上传到网站上。之所以称为「FogCam」,是因为旧金山的风景以雾闻名。 他们表示关闭摄像头,主要是因为学校里再也找不到地方放置摄像头了。另外,根据维基百科记载,FogCam 网站也是成立最久,而且一直到现在还在运行的网站之一。 8、零售业百强 2018年度中国零售百强名单发布,前四名全部是电商。七家企业销售规模过千亿元,依次为天猫、京东、拼多多、苏宁易购、大商集团、国美电器、华润万家。 2018年,阿里巴巴实现了900多亿元净利润,一家顶百家,其净利润比所有非电商类零售上市公司所实现的净利润总额还高出四成多。 9、一句话消息 一家美国半导体公司推出有史以来最大的半导体芯片,包含1.2万亿个晶体管。相比之下,1971年的4004处理器只有2300个晶体管,最新的 AMD 家用处理器则有320亿个晶体管。 推特关闭了短消息发推的功能,因为 CEO 杰克·多尔西的账户就是这样被黑的。有人冒名注册了他的 SIM 卡,然后通过短消息在他的账户上发推。 Firefox 宣布试点,只要使用它家的浏览器,美国境内所有流量默认都走 HTTPS 代理,防止暴露用户信息。 9月5日,发生了一笔10亿美元的比特币交易。这就是比特币的一个特点,所有人都可以看见这笔交易,但是不知道是谁交易。整笔交易的手续费是600美元,这个费用是传统银行不可想象的。 印度月球车首次登陆月球,结果距离月球表面2公里时失去联系,控制中心都傻了,就这样全国直播出去了。今年4月份,以色列月球车登陆也失败,看来这件事很不容易。 丹麦启用世界最大的电动渡轮,可以搭载30辆车和200名乘客,采用一个巨型电池系统供电。 苹果发布 Apple Music 的 Web 版了,成为会员后可以收听数百万首歌曲,跟 Spotify 竞争。看来 iTunes 是真的要废掉了。 文章 1、中国贫穷地区的发展(中文) Quora 上有人再次针对中国提出尖锐问题:如果中国有那么多钱投资其他国家,为什么不用这些钱发展本国的贫困地区呢?有一个答案内容详实,获赞最高,让围观小伙伴们赞不绝口。 2、历史上哪两件事听起来不在同一个年代,实际上却同时发生的?(中文) 知乎的一个帖子。按赞最多的回答是:"爱因斯坦发表相对论的那一年,中国废除科举。" 3、如何开始机器学习?(英文) 初学者应该怎么学习机器学习?这篇短文概述了需要掌握的几个方面,以及可用的学习资料。 4、TypeScript 与 React 一起使用(英文) 本文是写给初学者的 TypeScript 介绍,以及它如何与 React 一起使用。 5、如何使用 Firefox 的免费代理?(中文) Firefox 推出了浏览器全局的默认代理,本文介绍如何安装试用。(@erossszh 投稿) 6、如何安全运行他人的 JavaScript 代码?(英文) Figma 是一个网页应用程序,有很多第三方开发者写的插件。如何才能在网页安全运行第三方代码,这是 Figma 团队面临的重大问题。本文记录了他们的探索过程,最后使用的是新提出的 Realm API。 8、黄金分割的数据可视化(中文) 本文通过可视化图形解释,为什么植物花盘都符合黄金分割。黄金分割这个无理数的比率,在图形上到底是什么含义。(@jwenjian 投稿) 9、各种编程语言的 0.3 我们知道,浮点数计算是不精确的,0.1 + 0.2 不精确等于 0.3。这个网站列出了各种编程语言的 0.1 + 0.2 的结果。(@NeoTse 投稿) 10、Chrome 浏览器的工作原理(英文) 谷歌官方的系列文章,一共有四篇。采用多幅图片,一层层从计算机底层一直到浏览器渲染引擎,介绍 Chrome 浏览器渲染网页的工作原理。(@NeoTse 投稿) 工具 1、formik React 的表单组件,目标是提供一个最小的 API,方便用户扩展。 2、Detoxify.app 一个很有意思的应用,帮助用户戒掉某个 App。手机访问它的网站,可以为任意 App 生成一个假的图标。每次在桌面点击假图标,就会跳到一个内置的网页,提示你放弃使用。 3、蚂蚁搬家工具 小程序跨平台开发工具。一键实现微信小程序项目到支付宝小程序的迁徙,不再为重复开发而烦恼。(@xiaofuzi 投稿) 4、Research 一个中文搜索的聚合网站,显示同一个关键字在不同网站的搜索结果。(@ifrontend-xyz 投稿) 5、oktools 该网站收集了程序员需要的10多个在线小工具,包含JSON 格式化、Base64 编解码、颜色值转换、图片压缩、正则测试、时间戳转换、HASH 计算等。(@wangyiwy 投稿) 6、Tone.js 一个使用 Web Audio API 在浏览器创建交互式音乐的框架。(@zhang14725804 投稿) 7、Web 通知请求阻止器 很多网站都会跳出一个对话框,要求允许它们发送 Web 通知,非常讨厌。这个 Chrome 浏览器插件可以彻底关闭这个功能。 8、npmview 该网站让你查看 npm 模块里面包含了什么文件。 9、CS50 IDE 一个在线 IDE,背后是基于云的 Ubuntu 环境,支持代码高亮和单词自动完成,以及代码调试。 10、在线哈希计算器 用户输入一个字符串,在线显示各种哈希算法的运算结果。(@DoctorLai 投稿) 11、logForShell Bash 的日志工具,出错时打印调用堆栈,方便快速定位问题和源文件。(@7ippo 投稿) 12、996.Blockchain 一个区块链项目,专门用于保存加班记录,用户可以把自己的加班记录存到区块链。(@996BC 投稿) 资源 1、让产品经理全面理解深度学习(PDF) 65 页的中文电子书,汇总了深度学习相关的重要知识点,通过长图和 PDF 的方式呈现给大家。(@easyaitech 投稿) 2、Golangbot 的 Go 语言初级教程(中译) Golangbot 是国外开发者写的 Go 的初级教程,对小白和基础比较薄弱的开发者比较适用。作者没有讲很高深的理论,而是用很多简单的例子和代码进行讲解。(@hznuksco 投稿) 3、世界火力发电厂地图 这个网站通过网友提交数据,生成全世界火力发电厂的在线地图。 4、HelloDjango - Django 博客教程 Django 框架的中文入门教程,免费带你学 django 全栈。(@521xueweihan 投稿) 5、Linux Journey Linux 系统的免费教程网站,针对初学者。(@zhjp0 投稿) 6、技术面试手册(英文) 开源电子书,帮你准备下一次的技术面试。 图片 1、黑白照片的彩色网格线 第一眼你会觉得,上面的图片是彩色照片,其实它是黑白照片,加上了彩色的网格线。彩色网格线会欺骗大脑,因为对人类的视觉来说,亮度比色度更重要。 2、酋长岩 酋长岩(El Capitan)是美国约塞米蒂国家公园的一块巨型岩石,高达914米,近乎完全垂直。它是全世界攀岩爱好者的一个流行的目标。 最近国内上映的2018年奥斯卡最佳纪录片《Free solo》,就是拍摄 Alex Honnold 在2017年6月3日的一次完全没有保护的徒手攀岩,他用了3小时56分钟到达顶峰。 正常情况下,攀岩爱好者需要4到5天才能爬上顶峰。下面照片上东一点西一点的亮光,就是一个个攀岩者在峭壁上过夜,他们睡在岩钉固定的吊床上。 文摘 1、Youtube 推荐算法的问题 五年前,我上传了第一个 Youtube 视频。此后,我一直在发布内容。我觉得,自己的内容很有趣,肯定很受欢迎。 但是,没人看我的视频!每个视频平均只有20次观看。Youtube 从来不把它们推荐给任何人,因为我是一个小频道。也许有些视频质量不高,但我确实发布了一些自己感到自豪的作品。 后来,我开始使用抖音 TikTok。出于无聊,我选了一首歌,拍了一段模仿视频,有50次观看。我逐渐又发布了一些视频,合计得到了4万个喜欢和1200个关注者,视频总观看次数是15万。注意,我的第一个视频是在今年2月份拍的,6月份才拍了第二个。 YouTube 不鼓励小创作者、非知名人士和没钱做广告的人,而抖音让任何有才华的人都变得至少相对受欢迎。 抖音的算法是,你发布视频时,抖音会将其显示给一定数量的人。如果有足够的人看到它并按下"喜欢",抖音就会让更多的人看到这个视频,这个过程不断重复,直到应用程序里面的每个人都看到它。这很简单,直接,透明。 YouTube 的算法是什么,根本没人知道。我觉得很好笑,一个中国公司的算法更加透明。YouTube 不了解它的使用者,它是一个垄断公司,已经停滞不前。我的遭遇是众多类似故事中的一个。 2、饿死的狮子王 我们参观南非的克鲁格国家公园(Kruger National Park),看到一只巨大的雄狮蹲在河岸边。 他瘦得皮包骨头,几乎站不起来。 他慢慢地离开河边,摇摇晃晃地好像喝醉了一样。每走几步,他就会停下来喘口气,低着头,直到他有足够的力量再走几步。走到一半的时候,他突然倒在路上。很明显,他已经在生命的最后阶段了。 一只大象靠近他,他努力站起来,试图逃跑。 当天晚些时候,我们发现他躺在草地上,筋疲力尽无法动弹。我离他不到五英尺,看着他的眼睛。我只是想让他知道,他不会独自死去。 他的胸部一上一下,不停地抽搐,一个小时之后,他死了。 多年来,作为一名摄影记者,我拍摄过失去一切的人、受伤的人、正在死去的人,但从来没有拍过像这只雄伟的动物那样悲伤的东西。他是真正的野兽之王,但是老了以后,可怜地饿死了。 后来我们才知道,这只高贵狮子的名字是Skybed Scar,他在克鲁格国家公园以其漫游和统治多年而闻名。他自由地生活,自由地死去。 言论和数字 1、 青木原(Aokigahara forest)的日语意思是树木之海。1993年出版的 Waturu Tsurumi 的《自杀完全手册》宣布它是日本最佳的死亡地点。因为它的树木长得很紧密,所以它们阻挡了风,而且由于动物和鸟类很少,森林异常安静。树木之海面积很大,十四平方英里,所以尸体可以被掩盖几个月未被发现。 -- 《一个僧人遭遇日本的自杀文化》 2、 写书为时已晚,创业为时已晚,学习新语言为时已晚,这称为时间焦虑。 -- 《时间焦虑》 3、 有史以来第一次,我觉得观看 Apple 产品发布会是浪费时间。 -- HN 读者 评论 iPhone 11 发布会 4、 今天美国大城市的平均单程通勤时间约为26分钟。 --《历史上的城市通勤》 5、 海洛因和月薪同样危险。吸食海洛因会上瘾,每月领薪水也会上瘾。 -- Nassim Nicholas Taleb,《黑天鹅》的作者 招聘信息 周刊讨论区的《谁在招人?》,有大量工作/实习岗位,欢迎查看。 如果你的团队需要招人,可以免费在那里张贴招聘信息。如果希望发在周刊上,请联系我(Email: yifeng.ruan@gmail.com ),每条价格 300 元。 1、全栈高级工程师/技术主管 杭州初创公司正在组建初创团队,开发面向年轻人的社交类产品。工作地点:杭州滨江区。 应聘者主导公司产品研发迭代,有独立开发前后端的能力。必备技术栈关键字: Vue/React, Node, NoSQL, DevOps, 微信开发。详细要求见这里。简历投递 haodong@hanhan.tech 2、秘猿科技 秘猿科技是区块链创业公司,为加密经济提供区块链基础设施和服务。工作地点:杭州或 remote。 本公司招聘区块链工程师、高级后端工程师、安全和测试工程师。点击这里,查看详情。简历投递:zhouyun@cryptape.com 回顾 去年的本周:《周刊第 21 期》 订阅 这个周刊每周五发布,同步更新在阮一峰的网络日志、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年9月13日


GitHub Actions 入门教程

GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。 这些天,我一直在试用,觉得它非常强大,有创意,比 Travis CI 玩法更多。 本文是一个简单教程,演示如何使用 GitHub Actions 自动发布一个 React 应用到 GitHub Pages。 一、GitHub Actions 是什么? 大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。 很多操作在不同项目里面是类似的,完全可以共享。GitHub 注意到了这一点,想出了一个很妙的点子,允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。 如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。 GitHub 做了一个官方市场,可以搜索到他人提交的 actions。另外,还有一个 awesome actions 的仓库,也可以找到不少 action。 上面说了,每个 action 就是一个独立脚本,因此可以做成代码仓库,使用userName/repoName的语法引用 action。比如,actions/setup-node就表示github.com/actions/setup-node这个仓库,它代表一个 action,作用是安装 Node.js。事实上,GitHub 官方的 actions 都放在 github.com/actions 里面。 既然 actions 是代码仓库,当然就有版本的概念,用户可以引用某个具体版本的 action。下面都是合法的 action 引用,用的就是 Git 的指针概念,详见官方文档。 actions/setup-node@74bc508 # 指向一个 commit actions/setup-node@v1.0 # 指向一个标签 actions/setup-node@master # 指向一个分支 二、基本概念 GitHub Actions 有一些自己的术语。 (1)workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。 (2)job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。 (3)step(步骤):每个 job 由多个 step 构成,一步步完成。 (4)action (动作):每个 step 可以依次执行一个或多个命令(action)。 三、workflow 文件 GitHub Actions 的配置文件叫做 workflow 文件,存放在代码仓库的.github/workflows目录。 workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀名统一为.yml,比如foo.yml。一个库可以有多个 workflow 文件。GitHub 只要发现.github/workflows目录里面有.yml文件,就会自动运行该文件。 workflow 文件的配置字段非常多,详见官方文档。下面是一些基本字段。 (1)name name字段是 workflow 的名称。如果省略该字段,默认为当前 workflow 的文件名。 name: GitHub Actions Demo (2)on on字段指定触发 workflow 的条件,通常是某些事件。 on: push 上面代码指定,push事件触发 workflow。 on字段也可以是事件的数组。 on: [push, pull_request] 上面代码指定,push事件或pull_request事件都可以触发 workflow。 完整的事件列表,请查看官方文档。除了代码库事件,GitHub Actions 也支持外部事件触发,或者定时运行。 (3)on.<push|pull_request>.<tags|branches> 指定触发事件时,可以限定分支或标签。 on: push: branches: - master 上面代码指定,只有master分支发生push事件时,才会触发 workflow。 (4)jobs.<job_id>.name workflow 文件的主体是jobs字段,表示要执行的一项或多项任务。 jobs字段里面,需要写出每一项任务的job_id,具体名称自定义。job_id里面的name字段是任务的说明。 jobs: my_first_job: name: My first job my_second_job: name: My second job 上面代码的jobs字段包含两项任务,job_id分别是my_first_job和my_second_job。 (5)jobs.<job_id>.needs needs字段指定当前任务的依赖关系,即运行顺序。 jobs: job1: job2: needs: job1 job3: needs: [job1, job2] 上面代码中,job1必须先于job2完成,而job3等待job1和job2的完成才能运行。因此,这个 workflow 的运行顺序依次为:job1、job2、job3。 (6)jobs.<job_id>.runs-on runs-on字段指定运行所需要的虚拟机环境。它是必填字段。目前可用的虚拟机如下。 ubuntu-latest,ubuntu-18.04或ubuntu-16.04 windows-latest,windows-2019或windows-2016 macOS-latest或macOS-10.14 下面代码指定虚拟机环境为ubuntu-18.04。 runs-on: ubuntu-18.04 (7)jobs.<job_id>.steps steps字段指定每个 Job 的运行步骤,可以包含一个或多个步骤。每个步骤都可以指定以下三个字段。 jobs.<job_id>.steps.name:步骤名称。 jobs.<job_id>.steps.run:该步骤运行的命令或者 action。 jobs.<job_id>.steps.env:该步骤所需的环境变量。 下面是一个完整的 workflow 文件的范例。 name: Greeting from Mona on: push jobs: my-job: name: My Job runs-on: ubuntu-latest steps: - name: Print a greeting env: MY_VAR: Hi there! My name is FIRST_NAME: Mona MIDDLE_NAME: The LAST_NAME: Octocat run: | echo $MY_VAR $FIRST_NAME $MIDDLE_NAME $LAST_NAME. 上面代码中,steps字段只包括一个步骤。该步骤先注入四个环境变量,然后执行一条 Bash 命令。 四、实例:React 项目发布到 GitHub Pages 下面是一个实例,通过 GitHub Actions 构建一个 React 项目,并发布到 GitHub Pages。最终代码都在这个仓库里面,发布后的参考网址为ruanyf.github.io/github-actions-demo。 第一步,GitHub Actions 目前还处在测试阶段,需要到这个网址申请测试资格。申请以后,可能需要几天才能通过。据说,2019年11月就会放开。 获得资格后,仓库顶部的菜单会出现Actions一项。 第二步,这个示例需要将构建成果发到 GitHub 仓库,因此需要 GitHub 密钥。按照官方文档,生成一个密钥。然后,将这个密钥储存到当前仓库的Settings/Secrets里面。 上图是储存秘密的环境变量的地方。环境变量的名字可以随便起,这里用的是ACCESS_TOKEN。如果你不用这个名字,后面脚本里的变量名也要跟着改。 第三步,本地计算机使用create-react-app,生成一个标准的 React 应用。 $ npx create-react-app github-actions-demo $ cd github-actions-demo 第四步,在这个仓库的.github/workflows目录,生成一个 workflow 文件,名字可以随便取,这个示例是ci.yml。 我们选用一个别人已经写好的 action:JamesIves/github-pages-deploy-action,它提供了 workflow 的范例文件,直接拷贝过来就行了(查看源码)。 name: GitHub Actions Build and Deploy Demo on: push: branches: - master jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@master - name: Build and Deploy uses: JamesIves/github-pages-deploy-action@master env: ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} BRANCH: gh-pages FOLDER: build BUILD_SCRIPT: npm install && npm run build 上面这个 workflow 文件的要点如下。 整个流程在master分支发生push事件时触发。 只有一个job,运行在虚拟机环境ubuntu-latest。 第一步是获取源码,使用的 action 是actions/checkout。 第二步是构建和部署,使用的 action 是JamesIves/github-pages-deploy-action。 第二步需要四个环境变量,分别为 GitHub 密钥、发布分支、构建成果所在目录、构建脚本。其中,只有 GitHub 密钥是秘密变量,需要写在双括号里面,其他三个都可以直接写在文件里。 第五步,保存上面的文件后,将整个仓库推送到 GitHub。 GitHub 发现了 workflow 文件以后,就会自动运行。你可以在网站上实时查看运行日志,日志默认保存30天。 等到 workflow 运行结束,访问 GitHub Page,会看到构建成果已经发上网了。 以后,每次修改后推送源码,GitHub Actions 都会自动运行,将构建产物发布到网页。 五、参考链接 GitHub Pages 官方文档 Github Actions for web apps, Luke Boyle My First Week With GitHub Actions, Adam Zolyak (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年9月12日


Cookie 的 SameSite 属性

Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。 一、CSRF 攻击是什么? Cookie 往往用来存储用户的身份信息,恶意网站可以设法伪造带有正确 Cookie 的 HTTP 请求,这就是 CSRF 攻击。 举例来说,用户登陆了银行网站your-bank.com,银行服务器发来了一个 Cookie。 Set-Cookie:id=a3fWa; 用户后来又访问了恶意网站malicious.com,上面有一个表单。 <form action="your-bank.com/transfer" method="POST"> ... </form> 用户一旦被诱骗发送这个表单,银行网站就会收到带有正确 Cookie 的请求。为了防止这种攻击,表单一般都带有一个随机 token,告诉服务器这是真实请求。 <form action="your-bank.com/transfer" method="POST"> <input type="hidden" name="token" value="dad3weg34"> ... </form> 这种第三方网站引导发出的 Cookie,就称为第三方 Cookie。它除了用于 CSRF 攻击,还可以用于用户追踪。 比如,Facebook 在第三方网站插入一张看不见的图片。 <img src="facebook.com" style="visibility:hidden;"> 浏览器加载上面代码时,就会向 Facebook 发出带有 Cookie 的请求,从而 Facebook 就会知道你是谁,访问了什么网站。 二、SameSite 属性 Cookie 的SameSite属性用来限制第三方 Cookie,从而减少安全风险。 它可以设置三个值。 Strict Lax None 2.1 Strict Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。 Set-Cookie: CookieName=CookieValue; SameSite=Strict; 这个规则过于严格,可能造成非常不好的用户体验。比如,当前网页有一个 GitHub 链接,用户点击跳转就不会带有 GitHub 的 Cookie,跳转过去总是未登陆状态。 2.2 Lax Lax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。 Set-Cookie: CookieName=CookieValue; SameSite=Lax; 导航到目标网址的 GET 请求,只包括三种情况:链接,预加载请求,GET 表单。详见下表。 请求类型 示例 正常情况 Lax 链接 <a href="..."></a> 发送 Cookie 发送 Cookie 预加载 <link rel="prerender" href="..."/> 发送 Cookie 发送 Cookie GET 表单 <form method="GET" action="..."> 发送 Cookie 发送 Cookie POST 表单 <form method="POST" action="..."> 发送 Cookie 不发送 iframe <iframe src="..."></iframe> 发送 Cookie 不发送 AJAX $.get("...") 发送 Cookie 不发送 Image <img src="..."> 发送 Cookie 不发送 设置了Strict或Lax以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。 2.3 None Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。 下面的设置无效。 Set-Cookie: widget_session=abc123; SameSite=None 下面的设置有效。 Set-Cookie: widget_session=abc123; SameSite=None; Secure 三、参考链接 Using the Same-Site Cookie Attribute to Prevent CSRF Attacks SameSite cookies explained Tough Cookies, Scott Helme Cross-Site Request Forgery is dead!, Scott Helme (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年9月 9日


科技爱好者周刊:第 71 期

这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。 封面图:伊朗的住宅小区,距离德黑兰50公里。 刊首语 我家附近有一所重点中学,校门口拉起了大红条幅:"热烈祝贺我校三名同学考入北大清华"。 这不禁让我想到,很多科技公司的创始人都不是一流名校毕业。马云是杭州师范学院,马化腾是深圳大学,任正非是重庆建筑工程学院,丁磊是成都电子科大,周鸿祎是西安交大。 当然,名校毕业的也不少。李彦宏是北京大学,张朝阳是清华大学,王兴是清华大学,张一鸣是南开大学,陈天桥是复旦大学。但是,其中不少是留学回国后创业,有政策扶植的。 总的来说,我认为,来自一般学校的创业者更常见,反倒是高管大部分都是名校毕业。 理由是好学校毕业以后,出路比较好,通常都会进入不错的单位,离职创业的机会成本比较大。如果是一般学校毕业,就业又是很普通的单位,看不到前途,反而容易创业,而且因为没有退路,只能破釜沉舟,放手一博。 从这个角度看,高考不理想的同学,应该早早就有思想准备,将来可能走创业这条路。 资讯 1、澳大利亚企鹅岛 澳大利亚墨尔本以南的菲利普岛,是企鹅的繁殖地之一。以前,岛上有不少居民,企鹅上岸的海滩分布着大量民宅(下图),加上纷至沓来的观光客,企鹅数量开始锐减。 从1985年开始,澳大利亚政府决定收购岛上所有私人地产,将整个岛彻底变为企鹅岛。经过多年的努力,企鹅的数量从12,000只增加到了31,000只。 上个月,耗资5,800万美元的游客中心(下图)完工,将游客限制在指定区域,游客只能坐在看台上,不能随便乱走,等着企鹅经过。 2、美国海军更换触摸屏 2017年8月21日,美国麦凯恩号航空母舰在新加坡与一艘油轮相撞,造成油轮的10名船员死亡,麦凯恩号48人受伤。美国军方最近公布了调查报告,事故原因之一是航母操作人员对计算机系统不熟悉,有人将操作系统置于手动模式,但是其他人没有发现。 问卷调查中,大部分人表示,更喜欢机械控制,而不是触摸屏操作。因为机械装置"提供了即时的触觉反馈"。报告指出,如果存在机械控制,舵手可能会提前发现问题。军方因此决定,2020年开始在驱逐舰上,用机械装置取代触摸屏,控制油门和舵。 3、闲置的波音 737 半年之前,由于两起空难,波音 737 Max 全球停飞,一共几百架。这些飞机长期不飞,但必须一直保养,维护成本巨大。燃油系统和发动机部件必须每天启动,防止腐蚀;计算机系统和辅助动力装置也必须每周检查;还要防止鸟类和动物在飞机里面筑巢。 根据波音公司的737维修手册,飞机休眠超过两个月时,机身间隙必须用乙烯基胶带密封。目前,波音 737 Max 年底能不能恢复飞行,依然有很大疑问。已经有航空公司表示,如果停飞持续下去,将把最值钱的发动机和主要部件拆卸保存,机身只能不要了。 4、世界最快超级计算机 超级计算机制造商 Cray 公司与美国政府签署了一份价值6亿美元的合同,建造世界第一台每秒100亿亿次(10的18次方)浮点运算的超级计算机,名为 El Capitan。它预计将在2023年末投入使用。 目前,世界最快的超级计算机是美国的 Summit,每秒运算20亿亿次,占地面积相当于两个网球场,耗资2亿美元。 5、老年人更喜欢手机 美国一项调查发现,65岁以上的美国人每天花费近10个小时在屏幕前(包括电视、电脑和智能手机)。跟2015年的调查相比,看电视的时间没有变,但是玩手机的时间增加了七倍,每天平均是2个小时。 我自己的观察是,老年人比年轻人更喜欢手机,因为他们的生活中缺乏其他消遣。所以,尽量给长辈使用配置高的手机,而不是让他们用老年机。 6、反人体识别的服装 现在越来越多的监控系统有人体识别功能,时装设计师凯特·罗斯(Kate Rose)在拉斯维加斯 DefCon 安全大会上,展示了反识别服装。穿上这种衣服,监控系统就识别不出这是一个人。 它的原理是衣服上提供足够的噪音(比如下面的图案),就能使得模式识别失效。当然,这种方法只适合于人体识别,对于人脸识别无效。 7、空间站机器人 俄罗斯在8月22日向国际空间站发送一个人形机器人,将在那里停留两周,然后于9月7日返回地球。 该机器人可以自主执行某些任务,但本次主要是为了测试,准备将来将其发送到月球上。它还可以与人对话,可能有助于缓解宇航员的孤独。 8、比特币发明人 一名49岁的澳大利亚男子Craig Wright,一直声称他就是比特币发明人中本聪。 结果,一个美国人起诉他,声称跟他一起发明了比特币,但是没有拿到报酬。现在美国法院判决,Craig Wright 必须将持有一半的比特币分给那个美国人,价值约为50亿美元。Craig Wright 则称,他已经遗失了密钥,无法取出比特币。 9、一句话消息 美国莱斯大学宣布,开发出一种将热量(红外辐射)转化为光的方法,从而可将太阳能发电的效率从22%提高到80%。 联合国气候委员会发布报告,认为由于气候变化,未来大量土地将会荒漠化,农业生产也变得不稳定。农业改革刻不容缓,人们应该少吃肉,不再发展畜牧业。 可口可乐公司将它的瓶装水产品改成铝罐包装,因为塑料对环境影响太大,各国都开始限制使用塑料。 特斯拉公司开始在加州交付太阳能屋顶,原有的屋顶瓦片都被换成可以发电的太阳能瓦片。 npm 模块都是免费使用,有人现在想出怎么通过它赚钱了。你安装 StandardJS 的最新版本 npm install standard,命令行会输出一个广告。 文章 1、即将到来的宣传自动化(英文) 作者认为,由于自动生成文本、图片、视频的技术都已经逐渐成熟,将来脸部识别认出你是谁以后,就可以针对你推送内容。软件不断生成新内容,从而实现宣传自动化。 2、如何查询 StackOverflow 和 GitHub 的最新趋势(英文) StackOverflow 和 GitHub 每天都有大量动态,只要加以统计,就能看出最新的技术趋势。这两家公司的数据查询都是公开的,本文展示如何自己写查询,得到趋势统计。 3、我的日本码农就职总结(中文) 本文较为详尽的记录了计算机专业应届生在日本校招求职整个过程,包括抉择、事前准备、面试经历及感想。如果你想去日本工作,可以参考。(@vinci7 投稿) 4、FACEBOOK 伦敦终面经历(中文) 五月份的时候,在 LINKEDIN 上看到 FACEBOOK 伦敦的招聘广告,于是就投了,当时不抱希望的。投了简历很快就接到 FB 猎头的联系。(@DoctorLai 投稿) 5、随机数函数的图像(英文) 作者写了一个工具,可以生成随机数函数的图像,从而判断随机数生成是否有规律。上图中,明显randomC函数比较理想。 6、风险是可控的,只是需要高度自律(中文) 纪录片《徒手攀岩》中,Alex 徒手没有任何保护,爬上了酋长岩。即使是在专业的攀岩运动员看来,这也是一个不可能完成的任务。说白了,就等于送死。 他说了一句话,非常地奇怪,他说:"风险和后果是两回事。徒手攀岩的风险很低,只是后果很严重。" 7、文本压缩算法比赛(英文) 一个澳大利亚计算机教授,在2000年发起一个比赛。谁将100MB 的维基百科文本文件,压缩得最小,可以得到5万欧元奖金。 经过20年,领先者的记录从18MB 降低到16MB 以下。目前还在等待,谁第一个压缩到 15MB 以下,就是冠军,拿到5万欧元。 8、DevOps 干什么?(英文) DevOps 作为一个新近诞生的职位,它的职责范围是什么?作者以一个 DevOps 工程师的身份,谈了自己的主要工作职责。 9、机器学习算法的最低数学要求(英文) 机器学习对数学要求比较高。本文总结了需要掌握的最低限度的数学模型。 10、Chrome 隐身模式依然可以检测(英文) Chrome 76 堵上了隐身模式的漏洞,使用内存模拟 FileSystem API,导致隐身模式的检测脚本失效。本文提出,隐身模式依然有办法检测到。一种令人惊艳的思路是,内存比文件系统快得多,因此可以从访问速度判断是否为隐身模式。 工具 1、 Writeathon Writeathon 是一款在线写作工具,基于极简理念,提供简洁、高效、专注的写作体验。(@Hcs66 投稿) 2、ish iOS 的 Linux 虚拟机,实际运行的是 alpine linux,提供命令行 shell,可以访问网络,安装各种软件包,类似安卓平台的 Termux。 由于 iOS 平台的限制,iSH不能从应用市场直接安装,需要使用TestFlight安装beta版本。(@argan 投稿) 3、blogger-cli 命令行工具,可以将 jupyter notebook、markdown 文件转成静态网站。 4、fork 桌面的 Git 客户端。 5、Anbox Linux 系统的安卓模拟器。 6、jokenpo 一个网页游戏,使用机器学习算法,让玩家与计算机进行"剪刀石头布"游戏。 7、Lockdown 一个手机的防火墙 App,暂时只有 iPhone 版本。 8、WPS Office for Linux 金山 WPS 的 Linux 版本。 9、node-jvm 一个用 Node.js 实现的 JVM,实现的非常简洁清晰,方便学习。(@douchuan 投稿) 10、sftpgo 一个 Go 写的 sftp 服务器,可以架设加密的 FTP 服务。 11、iPic Mac 系统的桌面图片上传工具,用于将本地图片上传到图床,功能强大。(@atjason 投稿) 资源 1、BBC 的音效库 英国广播公司 BBC 的音效库,包含16000多种可以下载的音效,比如停车的声音、机床的声音、鸟叫的声音等等。 2、where is Sci-Hub Sci-Hub 提供免费的科学论文下载,由于版权问题,它必须经常更换域名。该网站告诉你,现在可以通过哪个域名访问到 Sci-Hub。 3、trackerslist 该仓库收集 BitTorrent 下载所需要的公共的 tracker 服务器网址。 4、git-flight-rules Git 操作往往会遇到各种问题,比如,如何把未暂存的内容移动到一个新分支,或者删除的分支如何恢复。这个仓库就收集这类问题的操作方法,有中文翻译。(@ifrontend-xyz 投稿) 5、redditix Reddit 是美国最大的在线论坛,有许多子板块。这个第三方网站是 Reddit 的在线浏览器,自动抓取并显示某个版的所有最新图片。 6、皎然影音乐 一个中文网站,收集电影音乐资源。由于刚刚开站,资源还不多。(@jiaoran198916 投稿) 图片 1、鲸鱼没有牙齿 鲸鱼没有牙齿,口腔里面就是空的。它们进食的时候,就是直接吞下食物,从不咀嚼。 2、最初的 Youtube 2005年4月23日,Youtube 上线,最初是一个约会网站,用户可以上传一段视频介绍自己。 五天过去了,没有一个人上传视频。Youtube 于是宣布,改成通用视频网站,用户可以上传各种视频。 文摘 1、电动车是 Spotify 出现之前的 MP3 未来,没有人会关心汽车使用什么技术,重要的是从 A 地到 B 地的便利性。那时,有人可能很高兴拥有一辆精致的电动汽车,但大多数人都不会在意。 这就好比 Spotify 到底使用的是 MP3 还是其他格式,没有人关心,重要的是音乐。虽然 Hifi 爱好者依然存在,他们喜欢黑胶唱片,但那是极少数人。 90年代,我第一次看到 MP3 时,就被迷住了,陆续把我的 CD 都翻录成了 MP3,拥有了巨大的 MP3 收藏。今天,音乐是我从 Apple,亚马逊或 Spotify 获得的商品。人们不关心底层的技术,也不想拥有音乐,随时从互联网获取音乐可以让你以更低的价格消费,更方便更快速地升级。 电动车是一样的。未来的汽车将是分享的,你用 App 招呼汽车,汽车的自动驾驶系统会找到你,停下来,让你进入汽车,并自动带你到目的地。汽车公司将不再通过出售汽车获利,而是通过提供运输服务获利。 对许多人来说,汽车是一项巨大的投资,但它们的利用率很低。如果你每天使用汽车两小时,那么一天92%的时间它都是闲置的,但你必须支付百分之百的保养成本。总之,租用自动驾驶汽车,将比购买自己的汽车便宜得多。 共享经济将流行,汽车会成为像电力或计算力之类的商品。私人的汽车所有权将停止,许多汽车公司将死亡。我们正生活在汽车的高峰期。从现在开始,私人拥有的汽车数量下降。戴姆勒和宝马正在建造世界上最大的汽车共享公司,通用汽车正在关闭工厂,并将开始一项机动车出租车服务,大众汽车开始在柏林投入高达1500辆共享汽车。 2、黑匣子的故事 1934年10月19日,一架从塔斯马尼亚岛飞往澳大利亚的小型飞机不幸坠海,机上12人全部遇难,其中有一位33岁的英国传教士休伯特·沃伦牧师。 他的儿子大卫·沃伦那时只有八岁,父亲留给他的最后一件礼物是一个晶体管收音机,但是坏掉了。这激发了大卫对科学的兴趣,后来他通过自学,设法修好了收音机。 1920年代,大卫·沃伦在悉尼大学读完本科,然后在伦敦帝国理工学院获得化学博士学位。毕业后,他去了航空研究实验室(简称 ARL),作为一名研究员。那是澳大利亚国防部的一个下属单位,专门研究飞机。 1953年,ARL 接到了一个任务:协助调查最新的英国喷气式客机----彗星飞机接连坠毁的原因。 由于资料很少,很难分析出什么原因导致飞机坠毁。大卫·沃伦不禁想到,如果有一个记录器,能够保存飞行过程的所有参数,以及飞行员的录音,并且还能在事故里幸存下来,那该多好。 他把这个想法告诉他的上司,结果却被泼了冷水。上司告诉他:"你是一名化学家,专业是化学和燃料。这种事情就交给仪器组,你不需要插手。" 没有官方的支持,大卫个人不可能实现这个发明。所幸这位上司后来调走了,新上司对大卫的想法很感兴趣,愿意让大卫投入研究。但是,因为这不是政府批准的项目,也不是可以用于战争的新武器,所以只能偷偷研究。 大卫受到鼓舞,在一份题为《协助调查航空器事故的装置》的报告中写下了自己的想法,并将其发送给整个行业。飞行员工会立刻表示反对,不愿意在飞行过程中被录音。澳大利亚民航局则表示,这种装置"没有实际意义"。 这种情况下,大卫决定在自己的车库里,组装出一个原型装置。这将是有史以来第一个飞行记录仪,又称"黑匣子"。 (图片:大卫·沃伦一家) 大卫把这个装置赠送给了英国人。由于本国彗星飞机的接连失事,英国对这个装置的接受程度比较高。一家飞机公司愿意生产它。 这个装置的正式名称是"飞行记录单元"。当时,一个记者在报道中称其为"黑匣子"(black box,黑箱),这个术语来自电工学,后来成为它的通用名称,尽管它并不是黑色。为了在事故后更容易发现,该装置做成了橙色,今天依然如此。 1960年,澳大利亚成为世界第一个强制飞机驾驶舱必须录音的国家。 今天,黑匣子安装在了每一个商业航班上面,能够防火、防海水,外层是坚固的钢铁。 大卫·沃伦在 ARL 工作直到1983年退休,成为其首席科学家。他于2010年7月19日去世,享年85岁。他从来没有从黑匣子的发明里面,得到一分钱的特许使用费。 他的棺材上写着"飞行记录器发明者:不要打开"。 言论 1、 90%的 Web 应用是数据库前端。 -- HN 读者留言 2、 领导者的三种模式。 模式一:"这就是我想要的,你按照我说的做。" 模式二:"这就是我想要的,你自己想如何去做。" 模式三:"让我们一起弄清楚我们能做些什么。" -- 《领导模式》 3、 人们的经验是,对于10行代码的脚本,Perl 语言是完美的。但如果你有500行脚本代码和几千行的库,那么需要大量的纪律才能使 Perl 代码可维护。 而在 Python 语言中,即使没有那么多的纪律,代码仍然具有相当的可读性和可维护性。 -- Guido van Rossum,Python 语言创始人 4、 SQLite 测试代码的行数,是软件本身的662倍。 -- 《如何测试 SQLite》 招聘信息 周刊讨论区的程序员招聘帖,有大量工作/实习岗位,欢迎查看。 如果你的团队需要招人,可以免费在那里张贴招聘信息。如果希望发在周刊上,请联系我(Email: yifeng.ruan@gmail.com ),每条价格 250 元。 1、秘猿科技 秘猿科技是区块链创业公司,为加密经济提供区块链基础设施和服务。以下职位的工作地点为杭州,也可以 remote。 高级区块链工程师:需要熟悉 Rust 语言。 高级后端工程师:熟悉分布式系统开发。 首席安全官:5年以上安全从业经验。 高级测试经理:从事区块链底层的自动化测试。 点击这里,查看详情。简历投递:zhouyun@cryptape.com 回顾 去年的本周:《周刊第 19 期》 订阅 这个周刊每周五发布,同步更新在阮一峰的网络日志、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月30日


任正非管理思想

前一段日子,网上出现了一个仓库,收集了华为公司创始人任正非的讲话稿,从1994年直到2018年,一共400多篇。 我把这些讲话稿做成 epub 文件(下载),每天睡觉前读一点。足足两个月,总算全部读完了,一百多万字。下面就是我的读后感。 我推荐大家也读一下,眼界会不一样。你会了解,年收入千亿美元的公司怎么运作,最高层怎么思考问题,如何在全世界开展业务,十几万员工又怎么管理,奖金怎么分配。 如果你还不知道任正非的个人历史,建议先滚动到本文结尾,读一下附录《答法国记者问》,这是他谈自己最多的一次谈话。 一、任正非的作用 任正非说过一段话,解释他在华为的作用。 我刚来深圳,还准备从事技术工作,或者搞点科研的,如果我选择这条路,早已被时代抛在垃圾堆里了。我后来明白,一个人不管如何努力,永远也赶不上时代的步伐,更何况知识爆炸的时代。只有组织起数十人、数百人、数千人一同奋斗,你站在这上面,才摸得到时代的脚。 我转而去创建华为时,不再是自己去做专家,而是做组织者。 在时代前面,我越来越不懂技术、越来越不懂财务、半懂不懂管理,如果不能民主的善待团体,充分发挥各路英雄的作用,我将一事无成。从事组织建设成了我后来的追求。 《为轮值 CEO 鸣锣开道》(2011年12月25日) 后来,任正非说得更直接: "我什么都不懂,我就懂一桶浆糊,将这种浆糊倒在华为人身上,将十几万人黏在一起,朝着一个大的方向拼死命的努力。" 他做的就是制度设计和组织建设,将所有员工团结起来,集中力量,在公司的战略方向上发起主攻。 所以,他的讲话内容大部分都跟企业管理有关,许多是非常细节的问题(如何建设驻外机构的员工食堂,就谈了好多次),行业趋势和未来方向他谈得不多。这一点跟马云正好相反。 二、生存危机感 任正非最大的特点,我认为,就是他有极强的生存危机感。 任正非始终担心,华为会生存不下去。这一方面因为他充满磨难的个人经历,另一方面也跟科技行业的激烈竞争有关。虽然很多创业者都是小心谨慎,但是像这样怀有浓厚的危机感,彷佛灾难随时就会发生的企业家却不多见。 1997年,他说: 成功不是走向未来的可靠向导,我们需要将危机意识更广、更深地传播到每一个华为人身上。 谁能把我们打败?不是别人,正是我们自己。古往今来,一时成功者众多,持久的赢家很少。失败的基因往往在成功时滋生,我们只有时刻保持危机感,在内部形成主动革新、适应未来的动力,才可能永立潮头。 我们要让公司始终充满危机意识,在做实中不断优化自己。 1998年,他说: 我们的幼稚还体现在复杂的产品做得十分好,而应用在简单地方就如此之差,远远不是科学的商人,这种不成熟性,处处都展示着公司的危机。 我们本来预测公司的危机可能在三年以后出现,而实际上,比这个估计更提前。既要发展,又要避开危机,唯有的办法就是要大力加速改变现状。 1999年,他说: 我们华为公司是一个随时都会崩塌的危险的公司。危机是什么?危机就是我们还不知道危机在什么地方,或者我们感觉不到危机。如果知道危机是什么,华为就没有危机了,就稳操胜券了。 2001年,他发表了长文《华为的冬天》。 我们正处在危机中,还有一项例证。就是处在危机并不认识危机,前方浴血奋战,后方歌舞升平。 在华为公司,我们的冬天意识是否那么强烈?是否传递到基层?是否人人行动起来了? 公司所有员工是否考虑过,如果有一天,公司销售额下滑、利润下滑甚至会破产,我们怎么办?我们公司的太平时间太长了,在和平时期升的官太多了,这也许就是我们的灾难。泰坦尼克号也是在一片欢呼声中出的海。而且我相信,这一天一定会到来。面对这样的未来,我们怎样来处理,我们是不是思考过。我们好多员工盲目自豪,盲目乐观,如果想过的人太少,也许就快来临了。居安思危,不是危言耸听。 如果华为公司真的危机到来了,是不是员工工资减一半,大家靠一点白菜、南瓜过日子,就能行?或者我们裁掉一半人是否就能救公司。如果是这样就行的话,危险就不危险了。 十年来我天天思考的都是失败,对成功视而不见,也没有什么荣誉感、自豪感,而是危机感。也许是这样才存活了十年。我们大家要一起来想,怎样才能活下去,也许才能存活得久一些。 失败这一天是一定会到来,大家要准备迎接,这是我从不动摇的看法,这是历史规律。 目前情况下,我认为我们公司从上到下,还没有真正认识到危机,那么当危机来临的时刻,我们可能是措手不及的。我们是不是已经麻木,是不是头脑里已经没有危机这根弦了,是不是已经没有自我批判能力或者已经很少了。 今年我们要广泛展开对危机的讨论,讨论华为有什么危机,你的部门有什么危机,你的科室有什么危机,你的流程的哪一点有什么危机。还能改进吗?还能改进吗?还能提高人均效益吗?如果讨论清楚了,那我们可能就不死, 危机并不遥远,死亡却是永恒的,这一天一定会到来,你一定要相信。从哲学上,从任何自然规律上来说,我们都不能抗拒,只是如果我们能够清醒认识到我们存在的问题,我们就能延缓这个时候的到来。 在世界大潮中,我们只要把危机与压力传递到每一个人,每一道流程,每一个角落,把效率不断提升,成本不断下降,我们就有希望存活下来。 任正非自己也知道,他对危机看得比较重,但是认为这样没什么不好。 全体员工要有悲剧感,也许只有强烈的悲剧感才能防止悲剧的真实上演。 三、坚持主业 正是由于强烈的危机感,他始终强调华为不能偏离主业,必须集中力量主攻战略重点,牢牢占领市场。这样才可能建立竞争优势,不被对手轻易击败。 虽然地处深圳,华为从来没有去碰房地产和股票,不碰那些可以快速赚钱的行业,而是集中精力做强主业。 1997年制定的《华为基本法》,第一条就是华为永不进入信息服务业,只做信息设备供应商。任正非这样解释: 华为决心永不进入信息服务业,把自己的目标定位成一个设备供应商。 这在讨论中争论很大的,最后被肯定下来,是因为只有这样一种方式,才能完成无依赖的压力传递,使队伍永远处在激活状态。 进入信息服务业有什么坏处呢?自己的网络、卖自己产品时内部就没有压力,对优良服务是企业的生命理解也会淡化,有问题也会推诿,这样企业是必死无疑了。 在国外我们经常碰到参与电信私营化这样的机会,我们均没有参加。当然我们不参加,以后卖设备会比现在还困难得多,这迫使企业必须把产品的性能做到最好,质量最高,成本最低,服务最优,否则就很难销售。 破釜沉舟,把危机意识和压力传递到每一个员工。通过无依赖的市场压力传递,使内部机制永远处于激活状态。这是欲生先置于死地,也许会把我们逼成一流的设备供应商。 《华为的红旗到底能打多久(1998)》 任正非对华为的定位就是"做信息管道",不碰信息内容,唯一的目标是让信息通过华为的管道流动。 我们不可能建信息渠道,我们没有那个能力。软件业务我认为主要建立一个支持电信网络宽带化的构架,开放中间件平台,让别人的业务产品可以载在我们的平台上。这个平台支持扩大公司网络产品的流量使用价值,至于管道内部的介质,由互联网去做,我们不行。 我认为华为的未来,要聚焦在网络制造上,做一个好的管道制造公司,产品做到水龙头为止。任随风云变换,业务产品不断兴亡,土地与平台只会越来越丰富。目的是支持网络的竞争力。 我每次批示,问你们是不是在做管道产品,不是做管道产品我认为就要切掉。将来一定会崛起一个伟大的管道公司,当然不一定是我们,但软件不能分散公司的竞争实力。华为的软件是为了推动管道的有效利用,未来宽带的有线网和无线网的宽带化,就是管道。所以我的批示是说:我们只做到水龙头为止,水龙头以外的东西我们暂时不要投资,否则的话,我们怎样度过这场金融危机?这是我的看法,软件怎么考核法?就和全公司所有部门一样,正的现金流、正的利润流、正的效益增长。 《与IFS项目组及财经体系员工座谈纪要(2009年2月6日)》 四、极度重视利润 公司如何才能生存下去?任正非认为,利润是第一位的。没有利润,公司就活不下去,而且利润必须丰厚,否则无法抵抗风险。公司所有的活动都必须以利润为目标。军人以胜败论英雄,华为以利润论英雄。 创业的早期,任正非特别强调,科研必须面向公司的利润,不能去搞短时间内无法见效的基础研究。 科研必须面向公司。如果人类给你发奖金,你就面对人类去做吧。因为待遇是我们公司给你发的,所以你要面对公司的核心竞争力提升,才能给你评价! 有人可能不太接受我的观点,说我在做着完全的创造发明,和梵高的画是一样的,也可能死了多少年之后,一张纸可以卖到2000多万美金,如果你留下遗嘱的话,我们会忠实地将这笔钱转给你的受益人。 华为长期还会处于技术实用性研发阶段,我们的创新是有局限性的,就是提高华为的核心竞争力。有些人很不理解,我做出的东西,明明是最新的爆出冷门的东西,他做出来的大众化的东西,却给他要评出一个创新奖。我认为你做出的东西没有商业价值,就由人类来给你发奖吧。 (在"创业与创新"反思总结交流会上的讲话,1999年。) 有一年,由于科研人员不了解市场需求,做出来的产品市场滞销,仓库里堆积如山。任正非提出,发年终奖的时候,将这些卖不出去的产品打包,科研人员一人发一包拿回家,看看自己做出了什么东西。 任正非曾经说过,华为是技术商人,不是科研机构。 华为做的是技术商人,不是科学家,科学家可以什么都不管,一辈子只研究蜘蛛腿的一根毛。对科学家来说,这是可以的。但是对我们呢?我们只研究蜘蛛腿,谁给我饭吃?因此,不能光研究蜘蛛腿,要研究客户需求...... 《在变革战略预备队誓师及颁奖典礼上的座谈纪要(2015年5月8日)》 等到后来站稳脚跟,华为逐渐成为行业领头公司时,任正非这时才开始允许公司对基础研究投资,资助知名教授。 为了保证利润,在早期,华为是不做品牌的。因为做品牌要投入大量广告费,对利润影响太大。 我们要坚持放弃品牌的路线不能动摇,我们不能昨天放弃了品牌,今天转过来也要做品牌。今天终端赚的钱,赚的就是广告费,赚的就是渠道费。其实我们就是把广告费砍掉了,把渠道费砍掉了,然后我们就有点利润。不能因为我们今天在委内瑞拉有了成功,就盲目的起来去做终端的品牌,这一点我是不同意的。因为我们要做品牌,每年的付出的钱是巨大的,做品牌不是很简单的。 《在委内瑞拉与员工座谈纪要(2007年7月3日)》 五、尽可能降低成本 只要降低成本和费用,就能产生利润。任正非非常喜欢举越南的铁塔作为例子。 我在越南提出一个问题,百年一遇的台风,把爱立信的铁塔吹倒了,诺基亚的铁塔也吹倒了,就我们的铁塔没有倒,我请问你这个财务人员,如何评价? 这说明对成本管理并没有做好,这说明项目存在过度交付的问题。就像飞利浦的灯泡,只有两年寿命,用了两年刚好坏掉,这就是最好的产品。如果客户只付了两年灯泡的钱,但是我们保证10年的寿命,只能说明我们不懂经营。 但是我们当年考市场人员和财务人员的时候,每个人都充满了自豪感,你看,诺基亚和爱立信的铁塔都倒了,就我们没倒,华为的水平多高啊!华为公司的铁塔只有一个标准,在永远不会有台风的沙漠里,装的也是这种铁塔。我们僵化地制定了太高的标准,为此我们每年多浪费了10万到20万吨钢铁。所以,我们今天必须加强项目财务的有效管理,我想三五年后我们一定会看到有结果。 《与罗马尼亚账务共享中心座谈会纪要(2011年06月14日)》 为了降低成本,必须减少非生产人员。有些岗位不需要高学历,以前招硕士生,现在改成招大专生,也能把成本降下来。 永远要合理地减少非生产性人员,增加专业与业务人员,才有可能提高人均效益。各级干部一定要把自己部门内部效率低、不出贡献的人淘汰出去。不能因为也在做工作,与周边关系、上下级关系不错,就一直迁就,如果一个干部不懂得通过主动置换,去创建一个更有效的组织,这个干部是不合适做一把手的。 我们要进一步对岗位责任制进行合理设计,不必处处要求高学历。不合理的使用高学历,就是高成本。我们的管理已经逐步变得规范,操作已经明晰,在相当多的岗位上,可以开放专科生上岗。一定要把成本降下来。 我们的出路只有二个选择,一条是降低工资,一条是多做一些工作,如果大家不愿意降工资,那就要更加努力工作,舍此难道还有更高明的办法吗? 《干部工作会议上的讲话》,2004年 机关就是非生产人员,所以要精简机关,让办公成本降下来。而且机关不是管理部门,是服务部门,时刻支援前线。 公司主要的资源要用在找目标、找机会,并将机会转化成结果上。我们后方配备的先进设备、优质资源,应该在前线一发现目标和机会时就能及时发挥作用,提供有效的支持,而不是拥有资源的人来指挥战争、拥兵自重。谁来呼唤炮火,应该让听得见炮声的人来决策。而现在我们恰好是反过来的。机关不了解前线,但拥有太多的权力与资源。 就是把决策权根据授权规则授给一线团队,后方起保障作用。这样我们的流程优化的方法就和过去不同了,流程梳理和优化要倒过来做,就是以需求确定目的,以目的驱使保证,一切为前线着想,就会共同努力地控制有效流程点的设置。从而精简不必要的流程,精简不必要的人员,提高运行效率,为生存下去打好基础。 当然炮火也是有成本的,谁呼唤了炮火,谁就要承担呼唤的责任和炮火的成本。后方变成系统支持力量,必须及时、有效地提供支持与服务,以及分析监控。公司机关不要轻言总部,机关不代表总部,更不代表公司,机关是后方,必须对前方支持与服务,不能颐气颇指。 后方平台(包括设在前线的非直接作战部队)要及时、准确满足前线的需求。我们机构设置的目的,就是为作战,作战的目的,是为了取得利润。平台的客户就是前方作战部队,作战部队不需要的,就是多余的。后方平台是以支持前方为中心,按需要多少支持,来设立相应的组织,而且要提高后方业务的综合度,减少平台部门设置,减少内部协调,及时准确地服务前方。 《销服体系奋斗颁奖大会上的讲话(2009年1月16日)》 六、裁员,再裁员 如何保证华为始终具有竞争力,持续获得利润?任正非认为,裁员是必不可少的。这样可以淘汰不适任的员工,激活团队,空出位置补充新人,避免公司出现惰怠。 我在美国时,和 IBM、 CISCO、LUCENT 等几个大公司领导讨论问题时谈到,IT 是什么?他们说,IT 就是裁员、裁员、再裁员。以电子流来替代人工的操作,以降低运作成本,增强企业竞争力。 《华为的冬天》,2001年 大家一定要有一个心理准备。我们可能会不断地扩张,也会产生不断的裁员。 因为整个环境是在大变化的,随时随地你们都可能会被裁掉,包括我自己在内。 裁员的过程中,每个骨干可以向有关部门申诉,"我是什么样的骨干,我做过什么贡献,为未来能承担什么责任"。不要赌气,你愿意留在华为工作的话,你可以申诉,大家加强沟通,但是裁员是永远不可避免的。自动降薪也是一样,我们的薪水如果只能升不能降的话,这个公司也是一个悲剧。 裁员时我们要友好,请人家吃顿饭,欢送欢送,送点礼品。我们不是有劝退指标吗?劝退最高可以送12个月的工资,我们有这些东西都是一种友好的表现,各级部门要善于理解公司这种友好的态度。以后还会裁员,这是毫无疑问的,这一点我们决不会向员工做太平的承诺,我们永远不会太平,是因为市场竞争太激烈,我们又不是强手。世界上没有一个上帝能保证我们是常胜将军,我们怎么保证员工终身能在公司工作呢?我们没有这个承诺保证。 所以我建议从现在开始, 员工们都少一些主人翁意识,多一些打工心态,我到这个公司是打工来的,我要好好干,不好好干就会被裁掉。我说的是少一点,而不是没有,这也是针对一部分员工说的,他们的主人翁精神太强,进入公司后事事关心,但自己的本职工作做得不好,突然被主管调整,心里想不通,我这么爱公司,关心公司,这么主人。需知每个人在公司的工作地位是以本职工作做好来确定的。 《与员工的对话(2000年)》 华为对于效益不好的部门,政策就是七个字:"减人,增产,涨工资"。整个部门发一个总额固定的薪酬包,你们想要涨工资,就要减人,把减掉的人的工资分给其他人。 华为对于基层员工实行绝对指标考核,只要绩效超过考核线,就算合格;对于高级干部实行末位淘汰制,如果排名靠后,就要撤换。这也是为了保证团队始终具有奋斗精神。 最近中国航母选人的方式对我启发很大。中国航母选的人都是"疯子",不是"疯子"不要,选的就是那些终生热爱航母、具有献身精神的人员。不然干十年,你要转业,烧这么多油培养的经验全没用了。 西点军校的末位淘汰制设计出来的,是为了选拔将军。它的原理是不管整个队伍如何优秀,都要将排在后面的分子末位淘汰掉,形成挤压,逼先进更先进,从而产生更多地将军。我们一般岗位的员工,经验是主要的,他们的生产技能,资历也是重要的。用不着A、B、C的挤压,挤压可能使基层员工不团结(他没有这么高的理解力),而且耗费了大量的人力资源,他们实行绝对考核更适用;这些员工天天面面相见,不用写考核日记,减轻他们的负担,把精力好好用在工作上;基层员工也不用走之字形成长的路,还是干一行,爱一行,专一行,在最佳角色上做出贡献。更不能频繁考试,让他们的精力不用在生产上。我们绝大多数员工应该快乐的度过平凡的一生。他们不想当将军,不想跳"芭蕾",就不必受那个磨难。只要贡献大于成本就可以了。但他们也不要羡慕那些更努力的人。我们把人力资源管理的精力,聚焦牵引优秀员工的进步上,促进他们更优质的成长。这也符合战略竞争力量不应过多消耗在非战略目标上的原则。 《任正非谈话纪录(2015年3月10日)》 七、如何提高管理效率 为了实现利润,每个部门一定要有指标考核。指标必须数量化,这样才可以比较。内部部门也要对服务定价,这样可以进行内部结算,从费用中心转变为利润中心。 追求管理的效率可能就是要坚定不移地实行定编、定员,确立有效的考核模式,一定要加强预算管理、业绩考核管理,在未来2~3年内,主要部门要从现在的费用中心转变成利润中心。 我们要坚持责任结果导向的考核机制,各级干部要实行任期制、目标责任制,述职报告通不过的,有一部分干部要免职、降职。 要坚持员工聘用合同制,一部分员工已经不太适合这些岗位了,我们应该有新陈代谢。我们考核的文化,要走向高绩效文化。 我们必须合理减少管理层级,扩大基层团队的管理控制量,缩小团队的数目。尽可能地压缩行政管理干部的数量,降低非生产劳动力的比例。我们的出路一是增加销售额,二是降低成本。 《干部管理培训班上的讲话》, 2003年。 干部都有聘期。聘期结束后,薪酬和岗位都要重新评定,没有达到目标,就要降职降薪。 一个人说,我很努力,工作也做得不错,思想品德也好,为什么我不能继续任职?因为标准是与时俱进的,已经有许多比你进步快的人,为了公司的生存发展,你不一定能保持职务。长江一浪推一浪,没有新陈代谢就没有生命,必要的淘汰是需要的。任期制就是一种温和的方式。 我们坚持责任结果导向的考评制度,对达不到任职目标的,要实行降职、免职,以及辞退的处分。公司决定,对完不成任务的部门,一把手要降职、免职处分,同时决不能在本部门将副职补充提成正职,不然,以后就会出现正、副职的不合作。2005年以后要同时冻结这个部门全体成员下一年度的调薪,不管他是否调出去。将来从后进部门调往先进部门工作的人,要适当地降职使用。除非因公司决策错误而撤销的项目人员。 对于机关这类难以确定目标来考核的部门,我们实行今年的人均工作量与去年的人均工作量相比,进步不大的部门,正职就应受降职处分。 八、人均效益增长是核心指标 考核的核心指标是人均效益。 一个企业最重要、最核心的,就是追求长远地、持续地实现人均效益增长。 不仅仅是当前财务指标的人均贡献率,而且也包含了人均潜力的增长。 人均效益就是看劳动的投入产出比。 一定要看劳动投入产出比,要有绩效目标。部门一把手要勇于挑指标下去,而不是为部门来和公司讨价还价,那公司会崩溃的,这样的干部是不能培养的。 部门述职抓核心指标,把今年的指标和去年的指标比,指标不好你就要往下走。和同行比会掩盖他自己的问题,自己与自己比他就会急。 工资要计入成本,以后我不看人均销售收入,转到考核劳动投入产出比。 人均效益每年应该增长15%以上,才算合格。 我们怎样才能活下来。同志们,你们要想一想,如果每一年你们的人均产量增加百分之十五,你可能仅仅保持住工资不变或者还可能略略下降。电子产品价格下降幅度一年还不止百分之十五吧。我们卖的越来越多,而利润却越来越少,如果我们不多干一点,我们可能保不住今天,更别说涨工资。 我们的干部述职报告所有指标都是人均效益指标。人均效益指标降低了,我们就坚定不移地降工资。如果你连降工资都不能接受,我认为你就没有必要再留在华为公司奋斗了。 一个部门领导没有犯过什么错误,但人均效益没有增长,他应下台了。 另一个部门的领导犯过一些错误,当然不是品德错误,是大胆工作,大胆承担责任,缺经验而产生的错误,而人均效益增长,他应受到重视。若他犯的错误,是集体讨论过的,错了以后又及时改正了,他应受到提拔。各级干部部门,要防止明哲保身的干部被晋升。在一个系统中,人均效益的指标连续不增长,那么主要部门领导与干部部门的人,应全部集体辞职。因为,人是他们选的,您选了些什么人。 《华为的冬天》,2001年。 九、绩效考核 绩效越突出,奖励就越多。华为的利润都是分给员工的。 我们希望一般骨干员工的薪酬高于社会可比岗位20%-30%,但是优秀骨干员工可以高出几倍。你看我这二十多年讲话,一贯主张多发钱,发给谁?优秀人员! 考核的时候只看结果,不看过程。 我们当年也走了弯路,强调关键事件过程行为考核,强调过程,而不是结果。很多人一步就把事情做完了,没有过程,只有结果,却得不到积极的评价,非逼着人家制造一点复杂才行。我们今后不要讲过程了,就讲责任结果。 工龄不作为待遇标准,而且,职级工资要封顶,每年的收入主要由该年的绩效决定。 我们从来不强调按工龄拿待遇。经常看到调薪的时候有人说"这个人好几年没涨了,要涨一点工资。"为什么?这几年他的劳动质量是否进步了?他的贡献是不是真大了?如果没有,为什么要涨工资?我们有的岗位的职级为什么不封顶呢?要封顶。有的岗位的贡献没有变化,员工的报酬不能随工龄而上升。我们强调按贡献拿待遇,只要你贡献没有增大了,就不应该多拿。我们公司把股票分给了员工,大家不仅获得了自己劳动的报酬,甚至还获得了资本增值的报酬,这种报酬比较多,对公司的影响就比较大。有人就因此惰怠。要防止在奋斗者这个层面也产生惰怠者。 《华为关于如何与奋斗者分享利益的座谈会纪要(2011年04月14日)》 十、员工必须是奋斗者 任正非认为,华为的主体员工必须是奋斗者。"只有奋斗才会有未来,我们奋斗可能会不成功,但不奋斗肯定是不成功的。" 所谓奋斗者就是"一些怀抱着理想、有伟大抱负、愿意为这个事业献出这一生的人,因为你热爱,就无怨无悔。"为了事业,全力拼搏,完全投入到工作中去,一定要达到目标。奋斗者的一个标准就是主动放弃所有带薪休假,为公司创造出利润以后,可以享受回报。 在任正非看来,选择职业是"爱一行,干一行;干一行,专一行"。你选择华为,是因为你喜欢这个行业;既然你喜欢,进了公司没有理由不好好做。 当然,只求做好本职工作,希望按时下班,不当奋斗者,也是允许的。但是那样就只能拿固定的低薪,不能享受奖金。 不奋斗的干部、专家,不是公司的宝贵财富。 人的天性就是要多休息,追求舒服,这样的话,企业如何发展。华为的理念"以奋斗者为本,长期艰苦奋斗",就是针对这种人性的惰怠产生的。 员工都可以到食堂用餐。......(也)可以选择放弃(食堂)用餐,但是不能形成一堆人下班买菜做饭的氛围。精力要用在作战上。 《在行政流程责任制试点进展汇报会上的讲话(2014年11月4日)》 为了保证员工始终有奋斗精神,任正非要求不得使用"员工满意度"作为考核指标。 怎么行政系统出来一个莫名其妙的员工满意度,谁发明的。员工他要不满意,你怎么办呢?现在满意,过两年标准又提高了,又不满意了,你又怎么办? 不要随便使用员工满意度这个词来作为考核的鞭子。员工满意度是与成本有关的。欧洲曾经是一个幸福社会,现在大罢工风起云涌。原因是没有足够的钱去满足人民日益增长的物质要求,适当的降低也不为人民答应。实质上人民的要求是无法充分满足的,只能在适当条件下,达到适当的水平。我们要理解舒舒服服是不可能长久的,唯有艰苦奋斗才能创造好的生活。 我们提以客户为中心,不断提高客户满意度,是因为只有客户不断地给我们合同,我们才能产生生存必须的利润。客户满意就是要我们吃些苦才能实现。因此,我们在生活上仅给员工提供基本的生活保障,标准的生活服务。员工想生活再好一些,就像工作服与时装一样,时装是个性化的,好看,但钱较贵。员工希望自己的生活再好一些,就如穿时装一样,自己应从工资、奖金、补助中支付一部分才可能自己去改善。个人的自由个人来承担。 《在全球行政人员年度表彰暨经验交流大会座谈纪要(2010年03月04日)》 (正文完) 附录:答法国记者问(节选) 2013年11月25日 记者:您是个低调的人,我们希望了解您是什么样的人,您的童年是怎样的,您来自哪里? 任:我小时候生长在贵州的一个少数民族边缘小镇(镇宁县),在小镇读了小学和中学,随父亲工作变动,到了很小一个城市(都匀市)读中学,然后考上大学。我父母都是中、小学教师,虽然他们没有给我们宽松的物质生活条件,但在我们的教育上付出非常大。 记者:希望您接着向下说。 任:我考上大学后,学的是建筑,在重庆建筑工程学院。电子方面是自学的,是改行了的。 记者:后来我们知道您从军了一段时间,有人说您那段时间做的是工程方面的工作,也有人说是密码方面的工作,有人说是军官,也有人说不是军官。 任:大学毕业后我是当兵了,当的是建筑兵。当然是军官,不是士兵,在中国"当兵"这个说法是指行业,而不是职位。我当兵的第一个工程就是你们法国公司的工程。那时法国德布尼斯·斯贝西姆公司向中国出售了一个化纤成套设备,在中国的东北辽阳市。我在那里从这个工程开始一直到建完生产,然后才离开。 我跟法国很有缘分,第一个工程就是法国的。我是从事石油裂解开始的油头8个装置的自动控制工作。当时有400或600多个法国专家在现场指导工作,他们教了我化工自动控制。 因为当时中国比较贫穷,国家的理想就是每一个老百姓都能穿上化纤的衣服。中国人那时认为化纤的衣服很挺,不打皱,很漂亮。那个化纤厂建好以后中国就改革开放了,改革开放后中国人认为棉布比化纤好。 化纤有个缺点,不透气,一旦着火以后沾在身上烧很危险。这个厂没有实现给每个中国人提供化纤服装的梦想,后来转变为做包装袋材料,而不是做衣服了。(记者:丝绸更好。)丝绸很贵啊,那就更不可能了。那时候中国人总体生活水平还是很低的。 所以为什么那个时期以化纤为中心,就是为了解决中国人的温饱问题。像现在法国奢侈品对中国的出口,在那时候连印象都没有,因为30年前中国的基本问题是温饱问题。 记者:当时您已经想到要创业吗?因为创建一个像华为这样的企业,不是什么人都能想到的。 任:没有。因为中国改革开放后,邓小平要裁减军队,要裁减非战斗部队,比如铁道兵和基建工程兵,我们就脱下军装了。 记者:你创建华为时,政府是否鼓励你们创业? 任:我们脱下军装以后就要走向生活。其实那时我们很缺乏生活能力的,因为不熟悉市场经济。中国当时正面临着社会转型,我们这种人在社会上,既不懂技术,又不懂商业交易,生存很困难,很边缘化的。我转业在南海石油深圳开发服务公司工作,这个公司主要是盖房子。(记者:哪年)1982到1983年,这时已经是市场经济时代了。 南海石油深圳开发服务公司,它不属于石油系统,隶属深圳市政府。深圳想给南海石油多盖些房子,赚它的钱。我因为不适应市场经济和管理方法,没有干好,人家也不要我了,我只好辞职找工作。 记者:为什么走上电信这一行? 任:如果我去卖水果,你也会问我为什么去卖水果。但是如果我聪明的话,不走上电信,也许对我的人生意义会更大。如果我去养猪的话,这时可能是中国的养猪大王了。猪很听话,猪的进步很慢,电信的进步速度太快,我实在累得跑不动了。 不努力往前跑就是破产,我们没有什么退路,只有坚持到现在。我根本跟不上电信发展的速度。那个时候就是错误地以为电信产业大,好干,就糊里糊涂地进入电信了。进去后才知道电信最难干,它的产品太标准了,对小公司是一种残酷。 但是我们退不出来了,因为一开业一点钱都没有了。退出来我们什么钱都没有了,生活怎么过,小孩怎么养活。退出来,再去"养猪"的话,没钱买小猪,没钱买猪饲料。因此也不可能改行了,只好硬着头皮在电信行业前行。 记者:您是指开始很不顺利?后面才好些? 任:应该是无知,我以为电信市场那么大,我做一点点养活我就行了。进来才知道电信不是小公司能干的,标准太高了,进步太快了。要活下来只有硬着头皮干到底,不然就干不下来了。那时应该说和我们同样傻走上电信行业的公司有几千家、上万家,也许他们早认识到他们的傻,所以转到别的行业成功了。 记者:当时中国政府是否有鼓励计划,鼓励人们在电信领域投资? 任:我们那时是因为傻继续走下来了,越往前走公司越少,越走越孤单。当时中国最大的问题是上千万"知识青年"从农村返回城市,无法就业,政府那时鼓励大家去卖大碗茶、卖馒头等做生活。这些人那时叫个体户,做得很成功的就叫万元户。万元户的概念就是一年能挣1000欧元,在那个时候可能是大明星了,政府渴望解决知识青年回城就业问题。我也就是一个成功的个体户。 有些成功的个体户就开始雇工,成为雇主,那时有法律规定雇工不得超过8个。中国的市场化,私有化就是从这样的情况磕磕碰碰开端的。不可想象今天可以十几万的雇工。 中国那时还没有想到在高科技产业产生突破,高科技在那个时候的中国还认为是高不可攀的事。中国那时想解决的是文革的后遗症,使国家尽快稳定下来。在那个变化的时代,我们这个年龄段是很容易被时代抛弃的。转型的时代,中国从封闭的落后时代,转化到现代化电脑化的时代,我们这个年纪是最没有价值的。电脑不懂,英文不好。 那时最代表中国潮流的是大面积的出国留学,吸收外国的经验,这对中国后来的经济发展起到很大推动作用。我们那个时代没有条件出国留学,只能看看书,从书中了解外国的经验是什么。 记者:那您当时为什么没条件出国呢? 任:第一,我有老婆小孩,他们要吃饭、上学,总不能留学两年不管他们吧!第二,我本人英文不好,我自学英文要花很长时间。又要挣钱又要补习英文对我来说是很困难的。因此我目光短浅一点,没有出国。 记者:华为公司的名字是您建立初就起的,还是后来起的?华为是中国繁荣的意思? 任:我们当初注册公司时,起不出名字来,看着墙上"中华有为"标语响亮就拿来起名字了,有极大的随意性。华为这个名字应该是起得不好。因为"华为"的发音是闭口音,不响亮。所以十几年来我们内部一直在争议要不要改掉华为这个名字,大家认为后面这个字应该是开口音,叫得响亮。最近我们确定华为这个名字不改了。我们要教一下外国人怎么发音这个名字,不要老发成"夏威夷"。 记者:中国在继续变革,您拥有华为1.4%的股份,您想怎样把您的股份传给子女?    任:我在开放改革的整个历史过程中仅仅是个过客,我没想过身后什么事,我太太的观念是把儿女培养成有能力的人。她说前面十几年辛苦,后面一辈子都不苦。如果前十几前没有努力教育好孩子,孩子没有教育好,后面几十年都是痛苦的。我赞同她的观点。 我太太为了教育孩子,一生就是做了家庭妇女。(有几个孩子?)三个孩子,因为我孩子总体教育是成功的,所以我从来没有考虑过财产怎么分配的问题。 记者:为什么你只有1.4%的股份,而不是更多,以便更好地把握企业的经营? 任:为什么要持有更多的股份?能不能解释一下?难道我要一辈子承担企业的经营责任吗?迟早一天我会得老年痴呆的。总有后面的人比我们优秀,就让他们去管好了。后面人也会更辛苦,他们钱比我还少。 记者:您在董事会里掌握的表决权是否比股份份量更重? 任:我们是一人一票制,而不是根据股权重量。在董事会上我说得对大家听取,我说的不对,大家反对,我们从来都是民主讨论。 记者:您一生为人低调,媒体见得不多,为什么今天您这样做了?而且选择在法国? 任:我一贯不是一个低调的人,否则不可能鼓动十几万华为人。在家我平时都和小孩一起疯。家里读书的小孩经常和我聊天,我很乐意夸夸其谈。我并不是像外面媒体描述的低调的人。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月26日


科技爱好者周刊:第 70 期

这里记录每周值得分享的科技内容,周五发布。 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐你的项目。 封面图:南浦大桥,上海,2019。 刊首语 本周有两条新闻,大家可能没注意。 第一条是丹麦发放全世界第一笔负利率贷款,利率是-0.5%。银行借你一万元,一年后你还9950元。 据说原因是,银行没有足够的贷款业务,为了减少存款,已经向企业存款收费了。既然存款可以收费,那么贷款负利率也能赚钱。 第二条是德国政府正在出售负利率的债券。你买一万元国债,若干年后,政府还你9000多元。还真的有人买,据说动机是,以后的负利率会更大,所以这种债券还有升值可能。 这两条新闻说明了什么?就是一点,欧洲的钱非常多,但是投资机会很少,钱没有去处。所以,移民到欧洲好不好?生活环境是很好,但可能也很苦闷,因为看不到发展机会。 目前,全世界都是资本过剩。国内的利率已经在下跌,肯定还会不断下跌,投资机会也会越来越稀缺。 这告诉我们两点启示。一是钱存在银行,长期肯定不会增值;二是融资将会越来越容易,创业项目根本不担心融不到钱。 Vue 源码解析 随着小程序和移动端的混合开发框架(比如 Weex 和 React native)的兴起,传统的 Web 网页开发重新焕发生机。 与之相适应,Web 开发正在走向技术深水区。每个前端开发者必须不断更新自身的知识结构,否则就会被淘汰。 国内领先的在线教育平台"开课吧",邀请廖雪峰和阿里前端架构师,制作了一份脑图 《Web 全栈架构师所需技术栈》 ,高清大图免费赠送给大家。 最新录制的 《Vue 源码解析》 视频课程(定价799元),也是免费赠送。 微信扫描上方二维码,添加好友,即可领取,本期的免费名额一共是300位。 开课吧:致力于打造互联网从业者职业成长平台。 现在面向前端程序员,专门打磨了进阶课程 《Web全栈架构师》 ,帮助大家打破技术瓶颈,提高自身竞争力,实现职业的可持续成长。 资讯 1、太阳帆 一个全球性的民间组织"行星协会",为了验证太阳帆的可行性,于2019年6月25日发射了一个小型飞行器,日前已经打开了太阳帆。 所谓太阳帆,就是一块巨大的薄膜,以太阳的辐射压做为飞行器的推进动力,不再需要燃料。辐射压虽然很小,但是只要太阳继续照耀着,太阳帆就能继续飞行。目前,飞行器的远地点增加了2公里,科学家认为这就是太阳帆导致的,因此实验已经成功。 2、3D 打印皮肤和骨骼 德国德累斯顿大学的科学家正在研发,3D 打印人体皮肤和骨骼。皮肤使用人体血浆细胞打印,骨骼使用磷酸钙加上人体干细胞打印(上图)。 这个项目是为了火星旅行,以及其他行星旅行项目研发的。因为飞行过程非常漫长,火星的单程旅程就需要半年,在这期间如果宇航员受伤,只能就地治疗。这时,3D 生物打印就可以挽救他们的生命,烧伤就可以移植 3D 打印的皮肤。 3、飞越英吉利海峡 8月4日,40岁的法国发明家弗兰基·萨帕塔(Franky Zapata)依靠一个背负式喷气式飞行器,飞越了英吉利海峡,耗时22分钟(35.4公里),最高速度170公里/小时。 该飞行器采用装满煤油的背包提供动力。法国军方赞助了这个项目,希望未来用于军事用途。 4、新能源样本房 特斯拉公司在澳大利亚展示新能源样本房。这是一套五个居室的乡间别墅,屋顶安装了33块太阳能板,电能储存在车库的两个 Powerwall 电池组里面。不过,太阳能只能满足一半的用电需求,每天用电几个小时之后,还是需要当地电网供电。 5、太阳能道路试验失败 2016年,法国宣布了一个大胆计划,将用光伏电池板铺设1000公里道路,完成后可以为500万个家庭供电。第一阶段一公里的道路已经完成,计划为5,000个家庭供电,但是看上去这条道路已经失败了。 主要原因是光伏板在高速公路上的磨损,远远超过预期。2800平方米的光伏池板已经剥落,其中100米路段破损严重而无法修复。另外,这条道路每年仅产生15万度电,效率远低于普通的倾斜式太阳能电池板。 6、印尼的屋顶村庄 西方媒体最近发现,印尼首都雅加达的一座购物中心10楼的楼顶,居然有一个78座两层别墅构成的居民小区。小区里面有道路、绿地、网球场和游泳池,汽车可以一直从地面开到楼顶。 雅加达有1000万人口,十分拥挤,交通堵塞,严重污染。而且由于地势低,经常被水淹。这个居民小区反映了这种现实。 7、去除海洋微塑料的新方法 16岁的爱尔兰少年 Fionn Ferreira 发明了一种从海洋中去除微塑料的新方法,获得了2019年谷歌科学节(Google Science Fair)的大奖。 Ferreira 的方法是将磁铁碎屑液化倒入水中,可以吸附微塑料,然后将磁铁放入水中,把带有微塑料的磁铁碎屑吸走。据报道,这种方法可以从水样中去除了约88%的微塑料。 微塑料是长度小于5毫米的塑料颗粒,由于非常小,因此逃脱了水过滤系统,进入了河流和海洋,各种的海洋动物都会摄入它们,并且最终进入人体。 8、一句话消息 IBM 公司过去十年解雇了十万人,2018年底该公司全球员工人数为35万人。 一位加拿大摄影师在出海时,拍到了鲸鱼捕食海狮的一瞬间。 俄罗斯一架空中巴士8月14日在莫斯科起飞后,撞到一群海鸥,导致发动机故障,迫降在玉米田,233名乘客无一死亡。在俄罗斯坐飞机,真是需要勇气。 一个波兰团队发现,银河系的形状不是一个平的圆盘,而是像一个两端翘起的黑胶唱片,一端向上翘,另一端向下翘。 NEC 公司展示新研制的飞行汽车。日本政府计划2023年通过飞行汽车运送货物,2030年之前开始城市的载人飞行。 文章 1、为什么一天有两次潮汐(中文) 潮汐是月球引力引起的,这样的话,应该最靠近月球的时候,才会发生涨潮。但是事实上,地球上大多数地方,一天有两次涨潮,某个地点最远离月球的时候也会涨潮,这是为什么? 2、我用 50MB 度过一天(英文) 以前,有人尝试100元钱生活一周,现在的挑战是 50MB 流量过一天。这实在是很艰巨的任务,因为即使是谷歌那样简洁的首页也有 402KB。这篇文章介绍作者采取的各种节省带宽的方法,以及网站应该如何减少网页的体积。 3、如何杀死一个进程和所有子进程 各种类 Unix 系统里面杀死进程,要比想象的难。一个主要的问题是,杀死父进程,子进程并没有一起杀死,会变成孤儿进程。如何才能做到这一点? 4、海盗党的版权改革主张(英文) 这篇文章是瑞典盗版党的版权改革主张:非商业用途应该免费,商业用途只能保护作品发布后的五年,允许衍生作品不支付版权费,废除数字版权机制 DRM。 5、Flutter 带给我的挫败感(英文) 一个安卓开发者谈他对 Flutter 初次尝试的印象。 6、Syslog 日志指南(英文) Syslog 是一种日志协议,Linux 系统普遍使用这种日志,其他系统也可以使用。本文介绍这种日志的基本知识。 7、为什么你应该使用 pathlib(英文) 本文介绍 Python 新的路径库pathlib比原来的os.path好在哪里。(@nosarthur 投稿) 8、22岁奥地利 PHP 程序员专访(英文) 22岁的皮特完全通过自学,掌握 PHP 编程。他介绍自己如何通过互联网接项目,找到远程工作,目前的收入每月税前可以达到15K欧元。 9、狗狗克劳斯的历史(英文) 狗狗克劳斯(Clarus the dogcow)曾经是苹果公司技术的吉祥物,现在已经不用了。本文回顾它的历史。 10、产品经理与项目经理的区别(英文) 简单说,产品经理负责向客户提交的最终结果,项目经理负责一项涉及后续活动的计划。 工具 1、exa 目录查看命令ls的替代品。 2、wtf-cli 一个查询字母缩写含义的命令行工具,比如缩写 OS 代表 Operation System,数据来自abbreviations.com。(@Haixiang6123 投稿) 3、sandman2 一个 Python 语言的数据库适配库,可以为各种数据库自动生成 RESTful 接口。 4、Formcake 该网站提供线上服务,接收表单数据。可以为静态网站提供跟用户互动的手段。 5、Lite 编程语言 国产的静态编程语言,追求简单可读,目前支持转码为 C#/Go/TypeScript。(@kulics 投稿) 6、SuperTinyIcons 一个 SVG 图标库,提供100多个常用的 Logo 图标。 7、Ananas Analytics 数据可视化的桌面工具,可以连接各种数据源,进行图形可视化操作。 8、sostupidsearch 一个搜索命令 grep 的替代品,使用 Rust 语言编写,有更好的速度和输出界面。 9、Firefox puppeteer 谷歌团队推出的无头浏览器 Puppeteer 的 Firefox 版本,与 Chrome 版本有同样的接口,可以用于 Firefox 浏览器自动化。 10、Fastify 一个比 Node.js 原生的 HTTP 处理更快的 Web 框架。 11、Gissue GitHub issues 备份工具,只要填入仓库地址就可以下载压缩文件包,一次性下载所有 issue。(@tangkaichuan 投稿) 12、Zdog 一个 JavaScript 的 3D 设计和动画制作库。(@ifrontend-xyz 投稿) 资源 1、DistroTest 浏览器体验 Linux 和 Unix 操作系统,可以在线试用 200 多种 Linux 和 Unix 发行版,无需本地安装。只要打开网站,选择 Linux/Unix 发行版,然后开始试用!(@ron159 投稿) 2、RutHub 一个分享知识的小型中文网站,可以分享某个知识点或主题相关的书籍、课程、视频、网页等,或每周、每月的读书所得。(@danloh 投稿) 3、the-super-tiny-compiler 编译器原理的教学示例项目,使用 JavaScript 语言,只有200多行代码,并配有详细的注释,帮助你理解编译器原理。 4、美国的废弃建筑 该网站专门探访美国废弃的建筑,有民宅,也有工厂和商店,然后拍摄照片,撰写游记,放到网上。 5、互动式元素周期表 点击查看各种元素的介绍,以及其他一些互动功能。 6、33个免费图标网站 该文收集了33个免费的图标资源网站。 图片 1、哈尔格林姆教堂 哈尔格林姆教堂(Hallgrímskirkja)是冰岛首都雷克雅未克最大的教堂,高74.5米,也是冰岛最高的建筑之一。该教堂从1937年开始设计,1945年开工,于1986年完工。 教堂外观借鉴了冰岛常见的景观:玄武岩山脉和冰川。 2、Watchman Sony 公司生产的便携式音乐播放器 Walkman,开创了一个时代,影响了几代人。其实,Sony 公司同时还推出了便携式电视机 Watchman,用来收看电视。 第一代 Watchman 于1982年推出,后来陆续又推出了其他机型,前后共有65种。由于它只能接收模拟信号,随着数字电视的兴起,最终在2000年 Watchman 停产。 文摘 1、鲍莫尔成本病 20世纪60年代,美国经济学家威廉·鲍莫尔发现了一个奇怪的经济现象。有的部门劳动生产率根本没有上升,甚至出现了下降,但是该部门的工资却在上涨。这是传统经济学理论无法解释的,根据后者,如果生产率下降,工资应该随着下降。 鲍莫尔的解释是,这跟其他部门的工资上涨有关。 如果有两个部门,一个是进步部门,另一个是停滞部门。进步部门的生产率快速增长,导致该部门工人的工资上升。停滞部门的工人,尤其是那些高级工人,就会要求涨工资,如果不涨的话就会跳槽到进步部门。 比如,制造业的生产率增长通常高于服务业,因此制造业的工资较高。服务业的生产率并没有提高,但是那些服务业的经理看到制造业工资上涨,也要求涨工资,否则就要跳槽。 2、街角的一尊佛像 Dan Stevenson 与妻子住在加州奥克兰的东湖区,已经40年。不知何时开始,东湖区治安越来越差,有贩毒的、卖淫的,偶尔还有进户抢劫的。 最让 Dan 感到愤怒的,是第11大道和东19街的交叉口,有一小块车道分流的三角绿地。那里本来应该是绿化,却堆满了废弃床垫、沙发、衣服、随手扔弃的垃圾、甚至使用过的保险套和针筒。更糟的是,Dan 还看过有私人垃圾车开过来把一车的垃圾跟废弃家具倾倒完,就跑了。 从 Dan 的窗户看出去,就看见这一大坨堆积如山的垃圾。Dan 与太太每天都要不断打电话给市政府,但都没什么用,清掉一次,这里马上又会堆满垃圾。 Dan 与妻子为这个事想了很久,到底该怎么改善这坨垃圾山的问题,他们想了很多方法。有一天,他们浮现一个主意:佛像! 他们决定去买一尊佛像摆在那块小树丛。Dan与妻子并不是佛教徒,为什么会想到佛像呢? Dan 说,因为佛教在西方是很温和中立的一种信仰。假如放一尊耶稣神像,可能就会有争议,但佛像不一样,似乎不太有人会对佛陀有什么不满。 Dan 开始到处找合适的佛像,有天他看到一尊大约60公分高的黑色石雕佛像,很喜欢。但他担心如果佛像放在那块地上被偷走,所以给佛像做了底座,让她坚实地固定在草地上。 就这样,Dan 每天早上起床喝咖啡的时候,就可以看到佛像是否还安好。这算是在公有土地上做私有的事,Dan可不管,他觉得有些事就是先做再说,别管什么行政程序了。 佛像就静静地坐在那块草地上,一开始,垃圾少了,然后大约四个月后的某天一早,他发现有人坐在草地上给佛陀上漆。那人非常小心翼翼,他把佛像漆成了白色的。而且那人还留了一颗橘子在佛陀前。 隔了一天,一颗橘子变成了一对橘子。在那之后,佛陀每天都有新的贡品,有时是花束、有时是水果,有时甚至还有钱币。 有天 Dan 下班回家,发现佛陀神像旁多了两尊神像。Dan 不知道这是怎么回事,但他后来理解,应该是有人觉得佛陀需要被保护。 慢慢地,这尊石雕佛像,摇身一变成了一座神坛。而且佛陀也升级了,她不再是白色的,而是金色的,而且还有人给她做了衣服(袈裟),Dan 觉得她现在的样子酷极了。 这尊佛雕除了外型变了,还有人为她盖了一栋房子,若你个子娇小,还可以钻进去跟佛陀一起睡一晚的那种小房子。 每天早上七点,就会有人来膜拜诵经,他们会敲着木鱼念唱一段时间。有时候,神坛前会出现一排桌子摆满食物与祭品,然后这些虔诚的信徒们会先进行祭拜仪式,接着他们就在树下闲聊,过一会再把祭品收拾干净,或者坐在草地上分享祭品一起吃掉。 这些信徒都是从别处来的,不是这个社区的,他们英文不好,有的甚至不会说英文。现在一天大概会有70-80个人特别来这里祭拜佛陀,甚至还有从明尼苏达来的。 这几年时间,先是垃圾没了,然后不知从何时开始,毒贩一个个搬走了,然后卖淫的也纷纷离开了。一篇当地报导写道,Oakland 东湖区从2012年有神秘佛坛与固定祭祀活动开始,这区的犯罪率在一年内下降了80%。 言论 1、 写一本书需要坚强的意志、忍耐力、厚脸皮(敢于说出自己的观点)和非金钱动机。 -- 《我写了一本 C++ 教材》 2、 改革开放40年,中国社会发生了翻天覆地的变化,除了总的制度没变,能够改变的几乎都变了。 --《纽约时报》 3、 我认为,美国无法禁止比特币或其他加密货币。它们实际上是一种开源软件,存在于互联网上。任何人都可以实现它,可以运行在互联网运行的任何地方。 -- 一位美国国会议员 4、 我在美国时,在和IBM、 CISCO、LUCENT等几个大公司领导讨论问题时谈到,IT是什么?他们说,IT就是裁员、裁员、再裁员。以电子流来替代人工的操作,以降低运作成本,增强企业竞争力。 -- 任正非《华为的冬天》,2001年 5、 尼日利亚人平均60%的收入用于食品,这意味着,你卖给普通尼日利亚人的任何东西都与食物竞争。 在尼日利亚东北部,121%的收入用于食品。这意味着,花光所有收入,也只能吃八成饱。 由于人口增长快于 GDP,尼日利亚是全球唯一一个人均国内生产总值在过去20年中稳步下降的国家。 -- 《尼日利亚市场规模之谜》 招聘信息 周刊讨论区的程序员招聘帖,有大量工作/实习岗位,欢迎查看。 如果你的团队需要招人,可以免费在那里张贴招聘信息。如果希望发在周刊上,请联系我(Email: yifeng.ruan@gmail.com ),每条价格 250 元。 1、厦门铃盛软件 职位:前端软件工程师,工作地点:福建省厦门市 RingCentral(NYSE: RNG)是纽约交易所上市公司,总部在美国硅谷,是全球领先的企业云通信协作解决方案提供商。 要求应聘者掌握 WEB 前端开发技术,具有良好的代码风格、设计意识和产品意识,详细要求请点击这里查看。有意者请发送简历至邮箱:hiring.xiamen@ringcentral.com 。 2、秘猿科技 秘猿科技是区块链创业公司,为加密经济提供区块链基础设施和服务。以下职位的工作地点为杭州,也可以 remote。 高级区块链工程师:需要熟悉 Rust 语言。 高级后端工程师:熟悉分布式系统开发。 首席安全官:5年以上安全从业经验。 高级测试经理:从事区块链底层的自动化测试。 点击这里,查看详情。简历投递:zhouyun@cryptape.com 回顾 去年的本周:第 18 期 订阅 这个周刊每周五发布,同步更新在阮一峰的网络日志、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月23日


科技爱好者周刊:第 69 期

这里记录每周值得分享的科技内容,周五发布。 本杂志开源,访问 GitHub 的 ruanyf/weekly 仓库获取源文件。欢迎提交 issue 投稿或推荐你的项目。 封面图片:上海世博源,2019。 刊首语 一件事"做得好"比较好,还是"做得快"比较好? 鱼和熊掌不能得兼,你怎么选择:做得好,付出的代价可能是耗时长、成本高;做得快,意味着完成度低、不是精品。 我很赞同一篇文章的结论:做得快更好。 做得快不仅可以让你在单位时间内完成更多的工作,而且 因为你工作得很快,所以你会觉得成本低,从而倾向于做更多。 写一篇博客,你可能需要两天。这是很高的时间成本,你觉得太贵了,于是你很少写。但是,做好一件事的唯一方法,就是多做这件事。 做得越快,这件事的时间成本就越低,你会愿意做得更多。 人们总是倾向于,多消费时间成本低的东西。网站很快,就会多访问;搜索很快,就会多搜索;文章很容易读懂,就会多读几篇。做得快的核心,就是要让时间成本降下来,从而多做。 家庭保障规划 周刊第 60 期介绍了 孙明展老师 公众号。当时参与活动的朋友挺多的,现在活动搞第二期了,孙老师团队就联系我,想再发一次消息。 孙老师毕业于广州中山大学,现在还是金融系、统计系的(兼职)硕士导师。他曾经在一家世界500强保险公司担任精算师,设计各种产品。 他发现很多人不了解保险,容易上当,就开办了自己的公众号,专门揭露各种理财骗局和保险套路。目前,已经有500多篇原创文章,介绍理财知识、保险案例分析等等,值得一看。 他创立的谱蓝公司,主营业务就是财务咨询,普及保险理财知识,解决家庭保障需求。进一步的情况,可以搜索"谱蓝"。 这次的推广活动,免费向大家赠送 家庭保障定制化服务 。如果你被保险代理人坑过,心有余悸,或者对各种保单或险种感到很难懂,拿不定主意,再或者就是单纯想增加家庭财务保障,都可以参加这个活动。活动内容主要是,根据报名情况进行电话或网络沟通,了解家庭背景资料以后,回答保险理财咨询。 个人及家庭成员 保障责任综合评估 现有保险产品的 性价比分析比较 基于家庭状况和需求的 综合保障规划构建 微信扫描关注下面的公众号,然后输入 "阮一峰 + 你的手机号码" ,就可以参加这个活动了。参加者都可以获赠一份价值 800元 的免费保障规划。 资讯 1、变色纹身 德国科学家开发出一种特殊颜料,会随着人体内葡萄糖、白蛋白或 pH 值的变化而改变颜色。它们纹在身上以后,就可以让患者和医生通过颜色,实时监测糖尿病和肾脏疾病等慢性疾病。 你可以对着纹身拍照,然后让手机 App 解读颜色变化。不过,该颜料尚未在人体实验,纹身都是在猪身上进行的。 2、屏幕最多的汽车 本田公司最新的电动车"本田 e",驾驶台上安装了五块触摸屏。如果算上头顶的中央后视镜,一共有六块屏幕,是世界上屏幕最多的小汽车。 五块触摸屏之中,左右两侧是两块后视镜,驾驶盘前是仪表盘(8.8英寸),旁边则是两块娱乐用的触摸屏(12.3英寸),分别供司机和前排乘客使用。 3、新西兰计划清除食鸟害虫 新西兰由于地理的孤立性,保存了大量珍稀动物。但是,这些珍稀动物,尤其是鸟类以及鸟蛋,常常被其他动物捕食,使得新西兰大约80%的珍稀野生鸟类面临灭绝的危险。 因此,新西兰决定在野外消灭这些鸟类的天敌,主要是白鼬、老鼠和负鼠。目前,首都惠灵顿的郊外已经基本消灭了这些害虫。 4、Fortnite 世界杯 热门游戏 Fortnite 最近举行自己的世界杯比赛,共耗资3000万美元。美国16岁少年 Kyle 夺得冠军,奖金300万美元。 这个奖金已经超过了温布尔登网球赛的冠军,只比美国公开赛的冠军少80万美元。这就是说,电子竞技的奖金已经跟顶级的职业体育运动不相上下了。Fortnite 世界杯最后一天的决赛在 YouTube 直播,有近900万人观看。 5、更高效率的光伏电池 加州大学伯克利分校的研究人员宣布,他们研发出了更高效率的光伏电池,可以让超轻型无人飞机连续飞行数天。 目前,商用光伏电池的光能转化效率是23%,该团队将效率提高到29%,还声称不久的将来有望达到50%。 6、Megapack 特斯拉虽然是汽车公司,但是核心技术是电池。它在推出家庭电池包 Powerpack 以后,又推出了企业级电池包 Megapack,类似集装箱大小,一次可以储存3000度电。 300多个 Megapack 就可以组成一个电能储存厂,保存100万度电,能够满足旧金山6个小时的用电需求。这种电能储存厂的安装速度也很快,只要用卡车把 Megapower 拉到现场以后,可以快速建厂。 7、软体机器人 清华大学和加州大学伯克利分校的研究人员,研发了一种新型软体机器人。它就是上图左下角的那个金属片,长3厘米宽1.5厘米,看起来像一张弯曲的纸条,但每秒能够前进60厘米,而且被踩踏也没关系,可以说就是一只电子蟑螂。 这种机器人可以经受自身重量100万倍的踩踏,可以爬上15度的坡,还可以背负一颗花生米前进。 8、Tumblr 被甩卖 8月13日,博客平台 Tumblr 以 300万美元卖给了 WordPress 的母公司。2013年,雅虎收购 Tumblr 花了11亿美元,这意味着仅仅六年时间,Tumblr 变得一钱不值。 雅虎公司创造了一项记录,他家收购的所有优质产品都被毁掉:GeoCities、Delicious、Flickr、Tumblr 等等。当年,谷歌创始人找上门要求被收购,雅虎拒绝;微软提出高溢价收购雅虎,雅虎拒绝。该公司的最成功一件事,是把雅虎中国卖给阿里巴巴,换来后者39%的股份。 9、一句话消息 软银集团的远景基金(Vision Fund)宣布筹集到第二期的1080亿美元资金。第一期已经有1000亿美元,这些天文数字的金钱都会投入高科技产业,主要是人工智能、芯片、机器人等方向。 日本批准第一例人体细胞移植入小鼠胚胎,长大以后就是带有人类细胞的老鼠。实验目的是让人类细胞在老鼠身上发育,长出人体器官,最后再移植回人体。 美国庆祝北美大陆横贯铁路建成150周年,世界最大的蒸汽火车头7月26日举行了纪念性行驶。该铁路从纽约到旧金山,1869年建成。 文章 1、面向对象编程:一万亿美元的错误(英文) 这篇长文详细解释了,面向对象编程的一些缺点。比如,OOP 引入了太多的层,大项目很快就会变得非常复杂,而且由于对象内部有状态,不能保证同样的输入得到同样的输出,因此很难测试。 2、我盖了一栋自己的房子(中文) 台湾网友的长篇帖子,海量图片,记录他在老家的土地上,请建筑师设计了一栋三层钢结构的民宅,然后再请施工队盖出来,完成各种内外装修,直到入住。 3、如何在 Bash 提示符显示动态信息(英文) Zsh 的命令行提示符会显示当前目录的 Git 分支名(上图),这在 Bash 中如何做到? 4、如何使用 AWS S3 和 Cloudflare 托管免费网站(英文) 本文一步步介绍如何将静态网站托管在 AWS S3 上面,然后用 Cloudflare 建立 CDN,这都是免费的。 5、CSS 的 background-image 属性是反模式 作者提出,如果图像是内容一部分,就不应该设置成 CSS 的背景图像,而应该使用<picture>标签加上 CSS 的object-fit属性。 6、如何用 Puppeteer 破解滑块验证(英文) 很多网站现在都有滑块验证,识别用户是否为真人。但是,其实它们都可以用 Puppeteer 的自动化脚本破解,本文展示怎么做到这一点。 7、ping 的故事(英文) ping是最常用的网络命令之一。这篇文章是ping的作者介绍他怎么写出这个工具。他以前的工作是研究声纳和雷达,声纳发出的声音脉冲就叫做ping。 8、从图片优化说起(中文) 谈谈如何使用 Node.js 进行各种图片操作,优化 Web 图片体验。(@cj1128 投稿) 9、lerna 入门教程(英文) 对于大型项目,多个模块放在一个代码仓库里面会比较方便。lerna 是管理这种多模块复合仓库的流行工具,本文介绍 lerna 的最简单用法。 10、iOS 和 Android 共享代码的隐藏成本(英文) Dropbox 一直使用C++编写手机代码,同时支持iOS和安卓,这样只写一次代码就够了。 现在它也放弃了,不得不改用Swift和Kotlin各写一次。主要原因之一是,招不到同时懂前端和C++的程序员。 工具 1、hostyoself 一个开源工具,可以架设服务,连接本地计算机,让其他人可以通过互联网访问本地的文件夹和文件。 2、listmonk 一个开源的新闻邮件和邮件列表发送服务,带有管理后台。 3、go-pry Go 语言互动式的 REPL 环境,可以直接运行 Go 脚本。 4、Dato MacOS 菜单栏系统时钟的替代品,显示月历和时区,免费软件。 5、osgood 一个专门运行 JavaScript 脚本的 HTTP 服务器。你可以把它想象成内置了 Express 框架的 JS 运行时。 6、BitMatrix 矩阵数据结构的 JavaScript 库,使用了底层的二进制接口,性能较好。(@cnwhy 投稿) 7、Vugu 一个使用 Go 语言写 HTML 前端页面的工具。完全不用 JavaScript,就能写出前端页面。未来的全栈将不再限于 JS,后端语言都可以写前端。 8、video-object-removal 这个工具使用机器学习算法,去除视频里面的运动物体。 9、TabNine 基于深度学习的代码补全工具,号称支持所有语言。(@ifrontend-xyz 投稿) 10、licia 这个库收集 Web 开发的各种 JavaScript 小工具,使得开发者只用加载它一个库即可,跟 lodash 的思路有点像。(@surunzi 投稿) 11、civitas 一个 JavaScript 写的网页策略模拟类游戏。 资源 1、《使用 Julia 语言学习统计学》(PDF,英文) 免费电子书,大学本科的统计学入门教材,其中的示例使用简单的 Julia 语言。 2、爱丽丝和鲍勃:密码学最著名的两个人 爱丽丝(Alice)和鲍勃(Bob)通常用来解释加密协议,指代用户 A 和用户 B。该网站收集密码学发展过程中,使用这两个人作为例子的各种历史资料。 3、astronaut.io 很多上传到 Youtube 的视频,从来没有人观看。该网站会随机选择那些很少人观看(接近零观看)的视频,播放给你看。 4、bootlin 快速查看和搜索 linux 内核源代码的网站。(@kele1997 投稿) 5、leetcode 多线程同步题 Leetcode 新增的多线程同步的题目。(@DoctorLai 投稿) 6、家庭关系称谓查询 根据对亲戚关系的描述,返回正确的称谓。(@DoctorLai 投稿) 图片 1、英国没有入侵的国家 英国历史上是"日不落帝国",殖民地遍布全球。历史学家统计以后发现,现在全球近200个国家和地区,只有22个从来没有被英国入侵过(上图白色的部分)。 2、孟菲斯集团的家具 上个世纪80年代,意大利米兰的孟菲斯集团招聘了很多年轻的设计师,他们设计了很多后现代主义风格的家具。 椅子。 桌子。 沙发。 架子。 柜子。 文摘 1、三氟化氯 我们知道,沙子可以灭火。有一位读者提问,是否存在某样东西会让沙子着火。 事实上,这种物质是存在的,它碰到沙子,沙子会烧起来。它就是三氟化氯。 三氟化氯是人类已知的最强氟化剂,比任何一种氧化剂的效果都更强烈。它与大多数无机和有机材料都会产生激烈的化学反应,可以在没有任何火源的情况下,让许多不易燃烧的材料发生燃烧,甚至爆炸。 由于它的氧化能力比氧更强,因此可以让已经烧到无法再烧的东西,继续燃烧下去,比如沙子、砖块和石棉瓦片,它都能让它们烧起来。它甚至还会点燃,已经在氧气中烧成灰烬的材料。一次工业事故中,900公斤的三氟化氯泄漏,使得30厘米的混凝土和90厘米的砾石层被烧穿。除了使用氮气和惰性气体外,没有已知的方法能够抑制该种物质的燃烧。 第二次世界大战期间,德国人曾经想把它用于火焰喷射器,后来发现太难控制,只能放弃。目前,它主要用于半导体工业,清除电路板表面的氧化物。 它能让玻璃烧起来,所以不能放在玻璃容器中,只能保存在钢、铜、铝等金属容器中,因为这些金属表面会形成一层金属氟化物薄膜,防止金属与它发生化学反应。一位化学家写道:"如果这种涂层熔化或被擦掉,操作者就会面临金属氟化物火灾的风险。这时,我推荐一双好的跑鞋。" 2、为什么飞机窗户都是圆角的? 如果你曾经坐过飞机的靠窗座位,可能已经注意到窗户是圆角的。你有没有想过这是为什么? 答案很简单:保证飞行安全。 要了解背后的原因,我们需要回到1954年。那时,飞机制造业开始制造专门的民用客机。 自从莱特兄弟发明飞机以来,几乎所有的飞机都使用螺旋桨,这已经被证明适用和可靠。但是,螺旋桨无法令飞机飞得更快,而且具有巨大的噪音和振动,使得飞机的行程极不舒适。对于战斗机,这不是一个问题,但是对于民用航空,乘客舒适性是一个优先事项。 人们把目光转向喷气发动机,由于喷气发动机包含在外壳里面,因此不用考虑空气阻力,可以推动飞机穿过声障。而且,喷气式飞机相对安静,对乘客没有打扰。 1949年,英国航空业先驱 de Havilland 开设了自己的飞机公司,制造了第一架民用的喷气式客机,称为彗星飞机(comet)。 彗星飞机的机翼内装有四个喷气发动机,比传统的螺旋桨飞机速度高出近50%。而且,它具有增压舱设计,可以在高空保持跟平地一样的气压,带给乘客平稳舒适的乘坐体验。但是,有一个地方,它的设计跟传统飞机一样:它的窗户是方形的。 这架飞机立即在世界各地取得了成功,各国纷纷订购。可是,意想不到的事情出现了。在服役的第一年,就发生了两起飞机坠毁事故。1953年3月3日,加拿大航空公司的一架飞机坠毁,机上11人全部遇难。1953年5月2日,另一架飞机在印度坠毁,造成43人死亡。最初的调查都认为,这是飞行员错误引起的,而不是彗星飞机本身的问题,可以照常飞行。 接下来的1954年,又发生了两起坠毁事故。1954年1月10日,一架从罗马飞往伦敦的飞机坠毁,35人遇难。1954年4月8日,一架南非的飞机坠毁,21人遇难。 经过四起坠机事故,英国政府终于决定对彗星飞机展开彻底调查。调查人员怀疑,事故原因与气压有关。高空没有足够的氧气供人们呼吸,因此飞机内部是加压的,这就要求飞机是密封的,防止氧气泄漏。如果在高空,飞机有裂缝,内部的空气就会冲出来,力量之大,有时甚至会引起机身撕裂。 调查人员经过了各种测试,甚至将整个机舱浸没在一个巨大的水箱中,然后反复地加压和减压。他们终于找到了原因,一切都跟那些方形窗户有关。 当飞机内部反复加压和减压,数月之后,飞机金属机身的强度就会逐渐减弱,这叫做金属疲劳。机身的方形窗口会带来尖角,就会有叫做应力集中的过程,那些尖角处会变得比其他地方更脆弱,最终裂缝开始在那些角落形成。其中一个裂缝变得足够宽时,机舱内的压缩空气就会冲出来,从而撕裂飞机。 以前有过加压舱的飞机,但由于它们是螺旋桨驱动的,只能在较低的高度飞行,机身应力不那么严重。直到喷气动力的彗星飞机出现,飞机才能飞到更高的高度,使得机身应力超过了断裂点。可以这样说,彗星飞机的悲剧从第一天试飞就注定了。 彗星公司立刻将所有窗户改成了圆角,并且采取了其他安全措施。但为时已晚,它的声誉受到了致命的打击,航空公司不再愿意购买它的飞机。彗星公司最终在1960年将自己卖掉了。美国的波音公司和洛克希德公司虽然进入喷气式客机市场较晚,但​​被认为更加安全,从而带来了属于美国的喷气机时代。 言论 1、 软件的运行速度快,说明这个软件是专注的。 -- 《快的软件,最好的软件》 2、 我们要把社会责任感强烈的人培养成领袖,还要把个人成就感强烈的人培养成英雄。 领导者的责任就是要使自己的部下成为英雄,而自己成为领袖。 -- 任正非,1998年 3、 面向对象编程的问题是,每个对象都有自己的状态,开发程序时,必须记住当前所有对象的状态。 为了让我们的生活更轻松,最好只有一小部分代码库处理状态,其他代码都是无状态和纯的。实际上,这就是前端的 Redux 库取得巨大成功的主要原因。 -- 《面向对象编程:一万亿美元的错误》 4、 20世纪50年代,建造月球基地是一项工程和技术挑战。 今天,它基本上是一个政治和经济挑战,难点是说服足够多的人,花时间和精力去做这件事是值得的。 -- HN 读者 招聘信息 周刊讨论区的程序员招聘帖,有大量工作/实习岗位,欢迎查看。 同时,欢迎企业免费张贴招聘信息。如果希望发在周刊上,可以联系我(Email: yifeng.ruan@gmail.com ),每条价格 250 元。 1、秘猿科技 区块链创业公司,为加密经济提供区块链基础设施和服务,主要产品有 Nervos、火币金融公链、CITA 等,全部开源。 工作地点:杭州 或者 remote。诚意招聘以下岗位: 高级区块链工程师:需要熟悉 Rust 语言。 高级后端工程师:熟悉分布式系统开发。 首席安全官:5年以上安全从业经验。 高级测试经理:从事区块链底层的自动化测试。 点击这里,查看详情。简历投递:zhouyun@cryptape.com (一天内回复) 回顾 去年的本周:《周刊第 17 期》 订阅 这个周刊每周五发布,同步更新在阮一峰的网络日志、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月16日


科技爱好者周刊:第 68 期

这里记录每周值得分享的科技内容,周五发布。 欢迎投稿,或推荐你自己的项目,请前往 GitHub 的 ruanyf/weekly 提交 issue。 封面图片:松江方塔,上海,2018。 该塔高九层,始建于宋朝,清朝重修,沿袭了唐代砖塔风格。 刊首语 一个月之前,我在周刊讨论区发了一个帖子《谁在招人?》,欢迎企业免费张贴招聘/实习信息。现在已经有30多家公司的100多个岗位,找工作的朋友可以关注。 有的读者私下问我:"大部分公司没写报酬,工资会不会给得低?"我心想,你怎么会有这种担心!普通程序员的工资能有多大差别呢? 程序员是一个高度流动的行业。一家公司如果待遇偏低,肯定留不住人。普通程序员的待遇,公司与公司之间的差别不会特别大。 程序员分为两种:普通程序员需要找工作,高级程序员不需要找工作,企业争相邀请他加入。 对于大多数人来说,要操心的不是找一份工资高的工作,而是设法让自己尽快变成高级程序员,可以在这个行业里面为自己定价,而不是让别人给你定价。 Vue 源码解析视频 目前,Vue 和 React 已经成为前端工程师的基本技能。Vue 3.0 很快就会发布,但是有些 Web 前端工程师对 Vue 2.0 都没有做到熟练掌握。 如果你想深入学习 Vue,现在有一个很好的机会。国内领先的在线教育平台"开课吧"联系我,愿意给周刊读者提供了一个特别优惠。 定价1988元的视频课程《Vue 源码解析》,限时免费领取 ,适合所有想提升技术水平的前端学习者。 他们给了我400个名额,微信扫描下面的二维码领取。 另外,大家熟知的IT技术大牛 廖雪峰 已加盟开课吧,耗时半年研发了精品付费课程---- 《Web全栈架构师》 ,来帮助初级前端工程师实现全方位进阶。课程深度对标百度T6--T7,适合有1-4年开发经验的前端程序员们学习。 《Web全栈架构师》 开课时间: 12月底 讲课老师:盛鑫(专家),前百度和360前端架构师 课程价格:7980元(前50名) 课程的其他问题,可以加上面微信了解。 资讯 1、新加坡进口澳大利亚太阳能 新加坡由于国土面积太小,无法发展太阳能。上图是世界最大港口之一的新加坡港,已经拥挤不堪,紧邻住宅区了。另一方面,澳大利亚地广人稀,内陆地区有着大片阳光普照的荒漠。 一家私人公司提出了一个计划,在澳大利亚建设一个大型太阳能电厂,然后通过太平洋的海底电缆,将电能输送到新加坡,两国政府都已经表示有兴趣。按照计划,该电厂可以满足新加坡20%的电力需求。如果可行,世界上的荒漠国家就多了一条发展道路。 2、淘汰纸制教科书 美国主要的教科书出版公司 Pearson 宣布,将逐步淘汰纸制教科书,向电子书转变。这家公司目前数字业务的收入,已经超过总收入的一半。 大家都知道,美国的大学教科书是非常贵的,很多学生买不起,只能选择购买二手书或者租用教科书。为了保证收入,书商不得不每三年推出教科书的新版,这是行业的通用做法。Pearson 公司认为,改成电子书以后,对收入更有利,因为可以持续不断地更新教科书,不再是三年一个版本,而是每个月都有新内容,能够推动学生付钱购买。 3、儿童的职业选择 阿波罗11号飞船登月50周年纪念日(7月20日)前夕,乐高公司委托一家民意调查公司,调查了中国、英国和美国的3,000名儿童,让他们选择最想从事的职业。 中国儿童的选择依次是:宇航员、教师、音乐家、体育明星、网络红人。 英美儿童的选择依次是:网络红人、教师、体育明星、音乐家、宇航员。 4、北极大火 根据卫星照片,北极圈内多个地点,从阿拉斯加、西伯利亚到格陵兰,目前都是烟雾缭绕,表明那些地方都正在发生森林大火。 今年6月,北极圈的气温是有史以来最高的,很多地方超过30度,异常闷热,干燥高温导致了这些森林火灾。更糟糕的是,火灾会释放大量二氧化碳,进而引起气温进一步升高,而更高的气温又引发了更多的火灾。那些地点都是人迹罕至,不太可能去扑救,只能听任大火燃烧。 5、FaceApp 受调查 最近,FaceApp 非常受欢迎,它使用人工智能,给出用户变成老年人的样子,正在病毒式传播。这是一家俄罗斯公司开发的 App,据估计,它至少已经有了1.5亿人的面孔数据。 美国一个前参议员认为,这已经构成了对国家安全的威胁,要求联邦调查局介入调查,美国公民的面孔和其他个人数据是否将被发送和存储到俄罗斯。 6、AI 绘制地图 人工绘制地图,通常很慢,标识道路、高速公路、桥梁等,需要大量的投入。Facebook 开发了一个人工智能系统,可以从卫星照片自动生成地图。上图中,白色线条是现有道路,粉红色线条是人工智能识别出来的道路。 这套系统可以识别出上图中的河边小道,因此对地理信息不全的农村地区尤其有用。该系统已经补全了泰国和印尼现有地图缺失的道路,将泰国地图的道路总里程,从28万英里增加到了60万英里。传统方法需要三到五年,它只用了18个月。 下图是用来训练的卫星照片,白色线条是需要发现的道路。 7、软件外包的风险 西门子公司的很多软件都是外包开发的。一个外包程序员在软件里面留下了一个逻辑炸弹,设置在指定日期后触发,会使得软件崩溃。 结果,2014年开始,软件就发生故障了。西门子只能打电话找那个外包程序员,付费让他修复。这种情况发生了多次,直到2016年5月,才有西门子员工发现这是故意留下的逻辑炸弹。目前,该外包程序员已经认罪,等待法庭判决,面临最高10年的监禁,罚款25万美元。 8、一句话消息 哥斯达黎加是中美洲的岛国,500万人口,已经完全使用可再生能源运行了300天。目前,全国所有电力都来自水力、地热、风能和太阳能。 世界第一个商用的核聚变反应堆,官方宣布已经取得重大进展,将于2025年12月正式运营。 炸弹无人机的实物被贴到了推特,可以编程指定飞行轨迹,具有12分钟飞行时间,或20分钟滞空时间。难以想象,这种武器普及的后果。 澳大利亚珀斯造币厂在纽约华尔街的马路上,展示世界最大的金币,重达一吨,价值4500万美元。 文章 1、如何识别无头浏览器(英文) 命令行抓取网页,往往使用无头浏览器,比如 Puppeteer 这样的工具。怎样才能区分正常的访问与无头浏览器呢?本文提供了一个方法。 2、太空中如何大小便? (中文) 太空没有重力,所有东西都是漂浮的,大小便成了棘手的问题。本文介绍美国宇航局如何在零重力的太空环境,解决宇航员的大小便问题。 上图是国际空间站的马桶,这里的关键是屁股与马桶之间不能有空气泄漏,这样就可以用气压吸走排泄物。 3、如何识别 Chrome 浏览器的隐身模式(英文) 隐身模式用来防止网站追踪用户。有时,开发者可能希望识别,哪些用户正在使用隐身模式。本文介绍可用的方法。 4、华为基本法(中文) 华为公司1998年通过的一份公司纲领性文件,详细阐述了公司的原则和管理方法,长达1.7万字。第一条就明确写明,华为是一家信息设备供应商,永远不进入信息服务业。 5、什么是 CGI 脚本?(英文) CGI 是"通用网关接口"的缩写,用来将任意脚本接入 Web 服务器,处理 HTTP 请求。它属于诞生于互联网早期的一种技术,如果网站访问量不大,现在依然可以使用。学习它有助于深入理解后端的 Web 实现。 6、什么是 CVE 漏洞?(英文) 软件漏洞经常有一个 CVE 编号,比如 CVE-2018-8589,这个编号是什么意思?它是怎么来的?请看这篇英语的简单介绍。 7、谷歌表格的27个诀窍(英文) 谷歌表格(Google Sheet)的功能非常强大,本文介绍27个很有用、但是你可能不知道的使用诀窍。 8、制造美少女卡通头像自动售货机(英文) 一个旧金山的动漫团队,在动漫展览会上搭建了一个美少女卡通头像的"自动售货机"(上图)。 用户付款后,可以选择一个头像,然后对头像进行发型和颜色的调整,最后打印出来,拿到头像证书。 9、运动平滑正在破坏电影(英文) 电影每秒是24帧,电视机的刷新率是 60Hz ~ 240Hz,这导致电视机播放电影时,有时会产生不连贯的现象。为了减轻这个问题,现在的电视机都默认开启了"运功平滑"功能,会在电影的每帧之间自动插入新的帧。很多电影工作者认为,这种功能对电影艺术的破坏,大于它带来的好处。 10、如何使用 JavaScript 写一个扫雷游戏(英文) 作者讲解如何用 JavaScript 写一个网页的扫雷游戏。 11、JetBrains IDE 基本快捷键(中文) IntelliJ 的快捷键绝大部分同样适用于其他 JetBrains IDE,包括前端开发常用的 WebStorm 和 Android 开发常用的 Android Studio。掌握这些快捷键能使你成为一个更娴熟的软件开发者。(@Alice-sos 投稿) 工具 1、hub GitHub 官方的命令行客户端。 2、Zen Flowchart 简单好用的在线流程图工具。 3、autosetup 一个 Bash 脚本,可以在 Debian 系的发行版上,让用户通过图形界面,一次性选择所要安装的应用程序,主要用于新系统的装机。 4、foliate 一个使用 GTK 图形框架的 Epub 桌面阅读器,只支持 Linux 系统。 5、pixelfed 照片分享服务 Instagram 的开源替代品,基于 ActivityPub 协议,可以与其他平台交换信息。 6、面包多 创造者出售数字作品的平台。你上传作品,设定价格,在这个平台出售。(@wdkwdkwdk 投稿) 7、哈利路亚英文输入法 这是 Mac 平台上一款智能英语输入法,可以提示单词拼写和中文解释。(@dongyuwei 投稿) 8、rc-leaflet 一个基于 Leaflet 地图引擎的 React 地图组件库。(@Coder-JJ 投稿) 9、SoloPi 支付宝推出的安卓应用自动化测试工具。公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间。(@ifrontend-xyz 投稿) 10、那样记账 一个安卓的记账 App,有报表和图表功能,支持多个账户。(@Chloe-Y 投稿) 11、守望先锋 UI 组件库 一个《守望先锋》游戏风格的组件库,基于 Vue.js。(@Haixiang6123 投稿) 资源 1、favorite-link 笔记仓库,收集各种开发工具和资源的链接,每日更新。(@machunyugit 投稿) 2、腾讯云软件源 腾讯云提供的各种开源软件的下载镜像,更多类似的镜像请看这里。(@CmderQ 投稿) 3、植物画册 1865年,英国著名女插画家 Elizabeth Twining 出版了二卷本的《植物画册》,包含160幅全彩色的植物插图。该网站将这160幅画都上线,可以下载。打印出来,挂在墙上是很好的装饰品。 4、简单英语指南 美国政府的官方网页,有几百条单词建议,指导你怎么写出简单的文章,不要用复杂的单词。比如说,"a 和 b 可以同时使用,也可以单独使用",不要用a and/or b,而要用a or b or both。 5、数字隐私档案 该仓库收集互联网上保护用户隐私的各种工具和方案。(@No-Github 投稿) 6、今日热榜 这是一个信息聚合服务,聚合各站热点,包括微信、今日头条、百度、知乎、V2EX、微博、贴吧、豆瓣、天涯、虎扑、Github、华尔街见闻等,有 Web 版和 App 下载。 图片 1、DOS 图形界面 下面是上个世纪90年代前期,Windows 3.1 发布之前,典型的 MS-DOS 图形界面。20多年前的大众软件就是长这个样子。 2、iOS 13 的全局变量 iOS 13 有一些非常冗长的全局变量,用于联系人标签,比如下图这个变量,长达82个字符,翻译成中文,意思是"表妹或堂妹"。 文摘 1、为什么北极融化不会导致海平面上升? 北极都是海冰,漂浮在水中。我们知道,冰山质量的90%都在水下。当冰融化变成水时,体积会缩小,所以不会导致海平面变化。 但是,南极完全不一样,冰山基本都在陆地上。当陆地冰川融化时,就会导致海平面上升。南极洲的冰量是世界上其他陆地冰川总和的50倍。 有研究称,过去2000年,海平面保持稳定。但是从1990年以来,海平面上升速度增加了一倍。据估计,到本世纪末,海平面预计将上升2英尺(61厘米)。 2、新能源的极限 目前,石油、天然气、煤等碳氢化合物,提供了全世界84%的能源。风能和太阳能提供了全世界2%的能源。 尽管如此,许多人还是主张尽快把所有碳氢化合物都替代掉,并称其为"新能源经济"。 但是,风能,太阳能和电池存储技术有其极限,全世界近期几乎不可能向"新能源经济"过渡。原因如下: (1)碳氢化合物有低成本、高能量密度、稳定性、安全性和便携性等卓越的优点,科学家尚未发现跟它们一样优秀的替代物。 目前,在风力涡轮发电机或太阳能电池板上投入100万美元,每年产生约5000万度电,但是在页岩钻井平台上花费100万美元,生产的天然气可以产生2亿度电。 (2)硅光伏电池有物理极限,称为 Shockley-Queisser Limit,即最多只有 34%的光子可以转换为电子。今天最好的商业光伏技术,转化率已经超过26%。 (3)风力发电机的物理极限是 Betz Limit,即最多只能从移动的空气中捕获 60% 的动能。今天的商用风力涡轮机,转化率已经超过 40%。 (4)世界最大的电池工厂特斯拉的 Gigafactory,一年生产的电池只能支撑全美国的用电需求三分钟。连续生产1000年的电池,可以支撑美国两天的电力需求。与此同时,每生产一磅电池,需要开采、移动和加工50-100磅的各种材料。 言论 1、 美国癌症协会、FDA 和许多其他组织强烈反对食用鱼翅,或者食用鲨鱼肝油,认为效果跟吃自己的指甲差不多。 -- 《没有鲨鱼的世界会怎样?》 2、 多年使用 Vim 之后,我有一个顿悟:如果坚持使用默认配置,就可以在任何环境中毫无困难地使用 Vim。 -- HN 读者留言 3、 人生所有的事情之中,后悔是最可怕的。失败是一种答案,拒绝也是一种答案,但后悔却是永远得不到答案。"要是我当初......"、"如果我那样选了......"、"不知道如果走了那条路会怎样......",你永远、永远都不会知道答案,而且这些疑问会纠缠你一辈子。 -- [南非] 特雷弗·诺亚《天生有罪》 4、 只有落后者才说抓住机会,发达国家是创造机会,引导消费。 -- 任正非 5、 每节课的时间,对于老师来说太短,对于学生来说太长了。 -- 《如何创建一个有效的课程》 招聘信息 以下公司正在招聘,欢迎应聘。 本栏目为收费服务,每条价格 250 元人民币,用于资助周刊。如果你的公司正在招人,欢迎联系我(Email: yifeng.ruan@gmail.com)。 讨论区有更多职位,欢迎大家访问。 1、秘猿科技 区块链创业公司,为加密经济提供区块链基础设施和服务,主要产品有 Nervos、火币金融公链、CITA 等。工作地点:杭州 或者 remote。 诚意招聘以下岗位: 高级区块链工程师:需要熟悉 Rust 语言。 高级后端工程师:熟悉分布式系统开发。 首席安全官:5年以上安全从业经验。 高级测试经理:从事区块链底层的自动化测试。 详细招聘要求,欢迎点击这里。 简历投递:zhouyun@cryptape.com (一天内回复) 回顾 去年的本周:《周刊第 16 期》 订阅 这个周刊每周五发布,同步更新在阮一峰的网络日志、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月 9日


xargs 命令教程

xargs是 Unix 系统的一个很有用的命令,但是常常被忽视,很多人不了解它的用法。 本文介绍如何使用这个命令。 一、标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数。 $ cat /etc/passwd | grep root 上面的代码使用了管道命令(|)。管道命令的作用,是将左侧命令(cat /etc/passwd)的标准输出转换为标准输入,提供给右侧命令(grep root)作为参数。 因为grep命令可以接受标准输入作为参数,所以上面的代码等同于下面的代码。 $ grep root /etc/passwd 但是,大多数命令都不接受标准输入作为参数,只能直接在命令行输入参数,这导致无法用管道命令传递参数。举例来说,echo命令就不接受管道传参。 $ echo "hello world" | echo 上面的代码不会有输出。因为管道右侧的echo不接受管道传来的标准输入作为参数。 二、xargs 命令的作用 xargs命令的作用,是将标准输入转为命令行参数。 $ echo "hello world" | xargs echo hello world 上面的代码将管道左侧的标准输入,转为命令行参数hello world,传给第二个echo命令。 xargs命令的格式如下。 $ xargs [-options] [command] 真正执行的命令,紧跟在xargs后面,接受xargs传来的参数。 xargs的作用在于,大多数命令(比如rm、mkdir、ls)与管道一起使用时,都需要xargs将标准输入转为命令行参数。 $ echo "one two three" | xargs mkdir 上面的代码等同于mkdir one two three。如果不加xargs就会报错,提示mkdir缺少操作参数。 三、xargs 的单独使用 xargs后面的命令默认是echo。 $ xargs # 等同于 $ xargs echo 大多数时候,xargs命令都是跟管道一起使用的。但是,它也可以单独使用。 输入xargs按下回车以后,命令行就会等待用户输入,作为标准输入。你可以输入任意内容,然后按下Ctrl d,表示输入结束,这时echo命令就会把前面的输入打印出来。 $ xargs hello (Ctrl + d) hello 再看一个例子。 $ xargs find -name "*.txt" ./foo.txt ./hello.txt 上面的例子输入xargs find -name以后,命令行会等待用户输入所要搜索的文件。用户输入"*.txt",表示搜索当前目录下的所有 TXT 文件,然后按下Ctrl d,表示输入结束。这时就相当执行find -name *.txt。 四、-d 参数与分隔符 默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。 $ echo "one two three" | xargs mkdir 上面代码中,mkdir会新建三个子目录,因为xargs将one two three分解成三个命令行参数,执行mkdir one two three。 -d参数可以更改分隔符。 $ echo -e "a\tb\tc" | xargs -d "\t" echo a b c 上面的命令指定制表符\t作为分隔符,所以a\tb\tc就转换成了三个命令行参数。echo命令的-e参数表示解释转义字符。 五、-p 参数,-t 参数 使用xargs命令以后,由于存在转换参数过程,有时需要确认一下到底执行的是什么命令。 -p参数打印出要执行的命令,询问用户是否要执行。 $ echo 'one two three' | xargs -p touch touch one two three ?... 上面的命令执行以后,会打印出最终要执行的命令,让用户确认。用户按下回车以后,才会真正执行。 -t参数则是打印出最终要执行的命令,然后直接执行,不需要用户确认。 $ echo 'one two three' | xargs -t rm rm one two three 六、-0 参数与 find 命令 由于xargs默认将空格作为分隔符,所以不太适合处理文件名,因为文件名可能包含空格。 find命令有一个特别的参数-print0,指定输出的文件列表以null分隔。然后,xargs命令的-0参数表示用null当作分隔符。 $ find /path -type f -print0 | xargs -0 rm 上面命令删除/path路径下的所有文件。由于分隔符是null,所以处理包含空格的文件名,也不会报错。 还有一个原因,使得xargs特别适合find命令。有些命令(比如rm)一旦参数过多会报错"参数列表过长",而无法执行,改用xargs就没有这个问题,因为它对每个参数执行一次命令。 $ find . -name "*.txt" | xargs grep "abc" 上面命令找出所有 TXT 文件以后,对每个文件搜索一次是否包含字符串abc。 七、-L 参数 如果标准输入包含多行,-L参数指定多少行作为一个命令行参数。 $ xargs find -name "*.txt" "*.md" find: paths must precede expression: `*.md' 上面命令同时将"*.txt"和*.md两行作为命令行参数,传给find命令导致报错。 使用-L参数,指定每行作为一个命令行参数,就不会报错。 $ xargs -L 1 find -name "*.txt" ./foo.txt ./hello.txt "*.md" ./README.md 上面命令指定了每一行(-L 1)作为命令行参数,分别运行一次命令(find -name)。 下面是另一个例子。 $ echo -e "a\nb\nc" | xargs -L 1 echo a b c 上面代码指定每行运行一次echo命令,所以echo命令执行了三次,输出了三行。 八、-n 参数 -L参数虽然解决了多行的问题,但是有时用户会在同一行输入多项。 $ xargs find -name "*.txt" "*.md" find: paths must precede expression: `*.md' 上面的命令将同一行的两项作为命令行参数,导致报错。 -n参数指定每次将多少项,作为命令行参数。 $ xargs -n 1 find -name 上面命令指定将每一项(-n 1)标准输入作为命令行参数,分别执行一次命令(find -name)。 下面是另一个例子。 $ echo {0..9} | xargs -n 2 echo 0 1 2 3 4 5 6 7 8 9 上面命令指定,每两个参数运行一次echo命令。所以,10个阿拉伯数字运行了五次echo命令,输出了五行。 九、-I 参数 如果xargs要将命令行参数传给多个命令,可以使用-I参数。 -I指定每一项命令行参数的替代字符串。 $ cat foo.txt one two three $ cat foo.txt | xargs -I file sh -c 'echo file; mkdir file' one two three $ ls one two three 上面代码中,foo.txt是一个三行的文本文件。我们希望对每一项命令行参数,执行两个命令(echo和mkdir),使用-I file表示file是命令行参数的替代字符串。执行命令时,具体的参数会替代掉echo file; mkdir file里面的两个file。 十、--max-procs 参数 xargs默认只用一个进程执行命令。如果命令要执行多次,必须等上一次执行完,才能执行下一次。 --max-procs参数指定同时用多少个进程并行执行命令。--max-procs 2表示同时最多使用两个进程,--max-procs 0表示不限制进程数。 $ docker ps -q | xargs -n 1 --max-procs 0 docker kill 上面命令表示,同时关闭尽可能多的 Docker 容器,这样运行速度会快很多。 十一、参考链接 Linux and Unix xargs command tutorial with examples, George Ornbo 8 Practical Examples of Linux Xargs Command for Beginners, Himanshu Arora (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月 8日


Web Components 入门实例教程

组件是前端的发展方向,现在流行的 React 和 Vue 都是组件框架。 谷歌公司由于掌握了 Chrome 浏览器,一直在推动浏览器的原生组件,即 Web Components API。相比第三方框架,原生组件简单直接,符合直觉,不用加载任何外部模块,代码量小。目前,它还在不断发展,但已经可用于生产环境。 Web Components API 内容很多,本文不是全面的教程,只是一个简单演示,让大家看一下怎么用它开发组件。 一、自定义元素 下图是一个用户卡片。 本文演示如何把这个卡片,写成 Web Components 组件,这里是最后的完整代码。 网页只要插入下面的代码,就会显示用户卡片。 <user-card></user-card> 这种自定义的 HTML 标签,称为自定义元素(custom element)。根据规范,自定义元素的名称必须包含连词线,用与区别原生的 HTML 元素。所以,<user-card>不能写成<usercard>。 二、customElements.define() 自定义元素需要使用 JavaScript 定义一个类,所有<user-card>都会是这个类的实例。 class UserCard extends HTMLElement { constructor() { super(); } } 上面代码中,UserCard就是自定义元素的类。注意,这个类的父类是HTMLElement,因此继承了 HTML 元素的特性。 接着,使用浏览器原生的customElements.define()方法,告诉浏览器<user-card>元素与这个类关联。 window.customElements.define('user-card', UserCard); 三、自定义元素的内容 自定义元素<user-card>目前还是空的,下面在类里面给出这个元素的内容。 class UserCard extends HTMLElement { constructor() { super(); var image = document.createElement('img'); image.src = 'https://semantic-ui.com/images/avatar2/large/kristy.png'; image.classList.add('image'); var container = document.createElement('div'); container.classList.add('container'); var name = document.createElement('p'); name.classList.add('name'); name.innerText = 'User Name'; var email = document.createElement('p'); email.classList.add('email'); email.innerText = 'yourmail@some-email.com'; var button = document.createElement('button'); button.classList.add('button'); button.innerText = 'Follow'; container.append(name, email, button); this.append(image, container); } } 上面代码最后一行,this.append()的this表示自定义元素实例。 完成这一步以后,自定义元素内部的 DOM 结构就已经生成了。 四、<template>标签 使用 JavaScript 写上一节的 DOM 结构很麻烦,Web Components API 提供了<template>标签,可以在它里面使用 HTML 定义 DOM。 <template id="userCardTemplate"> <img src="https://semantic-ui.com/images/avatar2/large/kristy.png" class="image"> <div class="container"> <p class="name">User Name</p> <p class="email">yourmail@some-email.com</p> <button class="button">Follow</button> </div> </template> 然后,改写一下自定义元素的类,为自定义元素加载<template>。 class UserCard extends HTMLElement { constructor() { super(); var templateElem = document.getElementById('userCardTemplate'); var content = templateElem.content.cloneNode(true); this.appendChild(content); } } 上面代码中,获取<template>节点以后,克隆了它的所有子元素,这是因为可能有多个自定义元素的实例,这个模板还要留给其他实例使用,所以不能直接移动它的子元素。 到这一步为止,完整的代码如下。 <body> <user-card></user-card> <template>...</template> <script> class UserCard extends HTMLElement { constructor() { super(); var templateElem = document.getElementById('userCardTemplate'); var content = templateElem.content.cloneNode(true); this.appendChild(content); } } window.customElements.define('user-card', UserCard); </script> </body> 五、添加样式 自定义元素还没有样式,可以给它指定全局样式,比如下面这样。 user-card { /* ... */ } 但是,组件的样式应该与代码封装在一起,只对自定义元素生效,不影响外部的全局样式。所以,可以把样式写在<template>里面。 <template id="userCardTemplate"> <style> :host { display: flex; align-items: center; width: 450px; height: 180px; background-color: #d4d4d4; border: 1px solid #d5d5d5; box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.1); border-radius: 3px; overflow: hidden; padding: 10px; box-sizing: border-box; font-family: 'Poppins', sans-serif; } .image { flex: 0 0 auto; width: 160px; height: 160px; vertical-align: middle; border-radius: 5px; } .container { box-sizing: border-box; padding: 20px; height: 160px; } .container > .name { font-size: 20px; font-weight: 600; line-height: 1; margin: 0; margin-bottom: 5px; } .container > .email { font-size: 12px; opacity: 0.75; line-height: 1; margin: 0; margin-bottom: 15px; } .container > .button { padding: 10px 25px; font-size: 12px; border-radius: 5px; text-transform: uppercase; } </style> <img src="https://semantic-ui.com/images/avatar2/large/kristy.png" class="image"> <div class="container"> <p class="name">User Name</p> <p class="email">yourmail@some-email.com</p> <button class="button">Follow</button> </div> </template> 上面代码中,<template>样式里面的:host伪类,指代自定义元素本身。 六、自定义元素的参数 <user-card>内容现在是在<template>里面设定的,为了方便使用,把它改成参数。 <user-card image="https://semantic-ui.com/images/avatar2/large/kristy.png" name="User Name" email="yourmail@some-email.com" ></user-card> <template>代码也相应改造。 <template id="userCardTemplate"> <style>...</style> <img class="image"> <div class="container"> <p class="name"></p> <p class="email"></p> <button class="button">Follow John</button> </div> </template> 最后,改一下类的代码,把参数加到自定义元素里面。 class UserCard extends HTMLElement { constructor() { super(); var templateElem = document.getElementById('userCardTemplate'); var content = templateElem.content.cloneNode(true); content.querySelector('img').setAttribute('src', this.getAttribute('image')); content.querySelector('.container>.name').innerText = this.getAttribute('name'); content.querySelector('.container>.email').innerText = this.getAttribute('email'); this.appendChild(content); } } window.customElements.define('user-card', UserCard); 七、Shadow DOM 我们不希望用户能够看到<user-card>的内部代码,Web Component 允许内部代码隐藏起来,这叫做 Shadow DOM,即这部分 DOM 默认是隐藏的,开发者工具里面看不到。 自定义元素的this.attachShadow()方法开启 Shadow DOM,详见下面的代码。 class UserCard extends HTMLElement { constructor() { super(); var shadow = this.attachShadow( { mode: 'closed' } ); var templateElem = document.getElementById('userCardTemplate'); var content = templateElem.content.cloneNode(true); content.querySelector('img').setAttribute('src', this.getAttribute('image')); content.querySelector('.container>.name').innerText = this.getAttribute('name'); content.querySelector('.container>.email').innerText = this.getAttribute('email'); shadow.appendChild(content); } } window.customElements.define('user-card', UserCard); 上面代码中,this.attachShadow()方法的参数{ mode: 'closed' },表示 Shadow DOM 是封闭的,不允许外部访问。 至此,这个 Web Component 组件就完成了,完整代码可以访问这里。可以看到,整个过程还是很简单的,不像第三方框架那样有复杂的 API。 八、组件的扩展 在前面的基础上,可以对组件进行扩展。 (1)与用户互动 用户卡片是一个静态组件,如果要与用户互动,也很简单,就是在类里面监听各种事件。 this.$button = shadow.querySelector('button'); this.$button.addEventListener('click', () => { // do something }); (2)组件的封装 上面的例子中,<template>与网页代码放在一起,其实可以用脚本把<template>注入网页。这样的话,JavaScript 脚本跟<template>就能封装成一个 JS 文件,成为独立的组件文件。网页只要加载这个脚本,就能使用<user-card>组件。 这里就不展开了,更多 Web Components 的高级用法,可以接着学习下面两篇文章。 Web Components Tutorial for Beginners Custom Elements v1: Reusable Web Components 九、参考链接 The anatomy of Web Components, Uday Hiwarale (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月 6日


科技爱好者周刊:第 67 期

这里记录每周值得分享的科技内容,周五发布。 欢迎投稿,或推荐你自己的项目,请前往 GitHub 的 ruanyf/weekly 提交 issue。 最近,我读了小说《侏罗纪公园》。 这本书改编过电影,大家应该都知道情节:一个富豪复活了恐龙,开设主题公园,结果恐龙逃出来,造成了灾难。 小说里有一个数学博士伊恩·马尔科姆(Ian Malcolm),他是混沌理论专家,专门研究复杂系统。作者通过他告诉读者:侏罗纪公园必定失败。原因很简单:复杂系统不可预测,也无法维护。 "譬如说撞球吧。你打它一下,它就开始不断反弹。理论上来说,撞球是个很简单的系统,几乎可以说是牛顿系统。由于你知道加在球上的力、球的质量,因此你可以计算出球的撞击角度,因而可以预测这颗球的轨迹。从理论上来说,你可以预测它三小时之后将处于哪个位置。 可是事实上,你最多只能预测到未来几秒钟之内的情况。因为有些非常小的影响----桌面不平、桌子木头上有小凹陷之类的问题,都会使情况发生变化。过不了多久,你那些精确的计算就会不灵了。结果便证明了,像在桌上玩撞球这种简单系统也具有不可预测的表现。" 侏罗纪公园是一个复杂系统,人为复活了6500万年前灭绝的恐龙,把它们圈养在一起,但是这些基因工程产物的习性,我们一无所知。另一方面,在这些恐龙的旁边,还要维护一个井井有条的主题公园,让游客玩得开开心心,一边看着原始动物,一边喝着可口可乐,享受现代文明。这等于创造出了一个地球上不存在的世界,并让其持续运转,势必引入了空前的复杂性。 复杂系统受到太多的变量影响,任何一个变量发生异常,都可能引发连锁反应。 侏罗纪公园最后的结局也是如此,工作人员一不小心导致停电,让恐龙逃了出来。其他人发现,整个系统过于复杂,无法恢复,只能眼睁睁看着,岛上一片大乱,恐龙到处吃人。这就是说,一个按钮错了,复杂系统就崩溃了。 你可能会说,只要严格管理,就能避免这类错误,比如引入更加完善的权限控制、建立备用供电线路等等。但是这样一来,系统的复杂性就进一步增加了,相当于 为了防止一个按钮失败,又额外引入了更多的按钮。 现实世界就是一个复杂的主题公园 ,为了保证每个"游乐设施"都正常运作,这个公园越造越复杂,管理难度成倍增加,最后人们只好让计算机来管理。根据伊恩·马尔科姆的观点,最后总归会有人按错一个按钮,现实世界就会变得像恐龙横行的侏罗纪公园。 资讯 1、石灰岩矿洞变成游戏场 历史上,美国密苏里州有一个巨大的地下石灰矿场,里面的道路密密麻麻,就像迷宫一样。现在,它当作物流仓库使用。 最近,有人在里面骑自行车漫游,将视频传到网上,引起轰动,这个场景简直像视频游戏一样。人们已经在讨论,是否可以把现实增强 AR 游戏引入这个地方。 2、神奇的北极狐 挪威的科学家在一只北极狐身上安装了 GPS 追踪器,想知道它的行踪,结果发现了惊人的结果。从2018年7月开始,这只狐狸在短短76天内,从挪威跑到了加拿大,总行程超过3500公里,平均每天移动46.3公里,最多一天移动了155公里。它成为已知的移动速度最快的狐狸。 由于它的路线相当于从欧洲跑到了北美洲,横跨了北冰洋,所以有一部分路线是在海冰上。整整两周,它都待在冰上。科学家曾经怀疑,是不是有人把它抓到船上,但是不可能有船在北极行驶3000公里。 北极狐是非常耐寒的动物,可以在冰下50度的冰冻温度生存。我们永远不会知道这只狐狸的下落,因为2019年2月,GPS 追踪器不再工作,停止发送信号。 3、不开车的租车人 一家日本租车公司发现,很多租车人并没有开车,他们归还的车辆有异常低的里程数。调查后发现,这些人租车的目的五花八门,有人为了午睡,有人为了一个临时的工作空间,有人是为了把行李和个人物品存放在车中,甚至还有人是为了手机充电。 半小时租车价格是400日元(约25元人民币),平均8个人之中就有一个人,将车辆用于非运输目的。 4、生菜收割机器人 英国剑桥大学开发了一个收割生菜的机器人。它用摄像头识别出每棵生菜,然后使用机器学习算法判断是否生长成熟,有没有感染疾病,如果一切正常,就进行收割。 科研人员希望用它来证明,传统上难以自动化的一些农业操作,也可以使用机器人。理论上,这套自动化方法不局限于生菜,任何农作物都适用。 5、美国签证要求披露社交媒体 美国签证的新版申请表格出来了,要求申请者披露自己的社交媒体帐号。指定的社交媒体,国外的主要有 Facebook、Flickr、Instagram、LinkedIn、Pinterest、tumblr、Reddit、推特、Youtube,国内的有豆瓣、QQ、新浪微博、腾讯微博和优酷。 根据规定,哪怕帐号已经删除了,只要没有超过五年,都需要披露。不过,根据最近签证的朋友反映,这项目前还是选填的。 6、Windows 1.0 微软与 Netflix 合作,在电视剧《怪奇物语》里面,还原了 Windows 1.0 操作系统。这部电视剧的时间设定在1985年,Windows 1.0 就在那一年发布。 这个还原的系统实际上可以运行,微软内部称其为 Windows 1.1。 7、新西伯利亚的废水湖 俄罗斯新西伯利亚有一个漂亮的绿松石颜色的湖泊,最近引来许多网红和访问者打卡拍照。但是,这其实根本不是一个湖泊,而是当地火力发电厂的一个巨型废水池,里面有钙盐和各种金属的氧化物,导致它呈现现在这种颜色。 下图可以看到,水里都是各种化合物,浓度极高,pH 值也很高。这里的水不要说游泳了,碰到一点,对皮肤都是有毒的。目前,电厂只能警告来访者,尽量远离这个湖泊,千万不能碰到水。 8、健康寿命 国家卫健委统计,2018年中国人的平均寿命77岁,但是健康寿命是68.7岁,后面都是带病生存。如果65岁退休,剩下的健康日子平均只有3年多。这么想想,人生还是很短暂的。 同一时间,日本厚生省也公布了,2018年日本女性平均寿命为87.32岁,男性为81.25岁,都是历史新高。 9、一句话新闻 印度生产的 iPhone 开始出口欧洲。 全国日发电量7月22日至25日连续四天创历史新高,最高达235.35亿千瓦时,较去年夏季最高值增长4.2%。 教育部发布文件,要求全国每所高校至少有一所实体书店。 美国宇航局从卫星照片发现,世界比20年前更"绿"了,主要原因是中国和印度种植了更多的树。 微软云服务 Azure 最新一季度的收入(114亿美元),已经超过了 Windows(113亿美元)。目前,Azure 云服务排在亚马逊之后,名列世界第二。 一家澳大利亚创业公司可以往电路板上套印各种图案,从而制作出彩色电路板。 文章 1、计算机专业的学生应该知道什么?(英文) 一个美国大学教授谈,计算机专业的学生应该具备哪些方面的知识。 2、indieAuth 协议介绍(英文) OAuth 协议已经成为授权协议的标准,但是获取用户身份的时候,必须明确列出各种平台(上图),看上去非常繁琐。indieAuth 协议是针对这一点改进,让任何网站都具备 OAuth 认证功能,甚至个人的 WordPress 网站也可以用来认证身份,用户只要提交一个 URL 即可。 3、GitHub 是最大的字体盗版网站(英文) 作者发现可以在 GitHub 轻松找到并下载各种商业字体。 4、使用 Datasette 探索 SQLite 数据库(英文) Datasette 是一个探索和管理数据集的工具,它可以把各种各样的数据都转成 SQLite 数据库,然后在浏览器里面展示数据,并进行各种操作。本文是 Datasette 作者的一个演讲,解释他为什么要做这样一个工具,图文并茂,值得一读。 5、著名程序员的工作时间(英文) Git 提交代码的时候,都会记录提交时间。作者统计了多个一流程序员的提交时间,比如 Linus (上图)基本上是工作时间提交代码,晚上10点以后不工作。 6、Raw 文件是什么样子?(英文) 数码相机拍摄的原始文件就是 Raw 文件,作者尝试直接读取 Raw 文件。 7、安全相关的 HTTP 头信息介绍(英文) HTTP 头信息有许多字段跟安全相关,本文介绍所有这些字段,并给出设置方法。 8、利用谷歌爬虫的 XSS 攻击(英文) 有的网站安全性差,可以注入外部脚本,即 XSS 攻击。作者发现,注入脚本的网页可以提交给谷歌爬虫,被谷歌收录,用来提高第三方网站的排名。这个漏洞已经被谷歌修复了,但是攻击思路值得学习。 9、我的创业体会(英文) 一个印度创业者讲述自己的创业经历,最后总结三条体会。有一条说,不要想着做独角兽,要想着做蟑螂,那些大公司和风投看不上的角落,有更大的机会活下去。 10、冰川下的飞机(英文) 1942年,美军的一个飞行中队,包括6架战斗机和2架轰炸机,在飞越大西洋的过程中,由于天气恶劣而迷航,不得不在格陵兰冰川上迫降。1988年,这些飞机在冰下80多米的深处被发现,探险队抢救出了一架战斗机。经过修复,这架飞机于2002年10月重新飞上了天空。本文讲述飞机的发现和挖掘过程。 工具 1、postmarketos 一个适用于手机的 Linux 操作系统。 2、reverie 一个优雅的 Jekyll 静态网站主题。 3、数字雨 浏览器还原电影《黑客帝国》的数字雨,链接为 Codepen.io 演示。(@ developerchengang 投稿) 4、巡云轻论坛系统 Java + MySQL 开发的一个论坛程序,自适应手机端和电脑端,界面简洁,功能完整。(@diyhi 投稿) 5、lazydocker 命令行管理 Docker 服务的一个图形界面工具。 6、videodownloader 一个使用 Electron 制作的 Youtube-dl 的图形界面,可以下载包括 Youtube 在内的110个网站的视频。 7、谷歌地球 Web 版 谷歌地球的官方 Web 版,可以浏览全球的卫星照片。该应用体积很大,初始访问可能需要很长时间加载。 8、show-facebook-computer-vision-tags Facebook 从2016年4月开始,对用户上传的每张照片进行机器识别,给出内容的关键词。这些关键词都随照片一起发送,但不会对用户显示。这个 Chrome 浏览器浏览器插件,可以把它们显示在照片上。 9、visitor-count-badge 一个开源服务,可以统计 GitHub 仓库的 Readme 文件的阅读次数,然后生成 badge 徽章,以便挂在仓库里。(@jwenjian 投稿) 10、AMP AMP 是一个基于 web components 技术的网页组件库,属于谷歌的官方项目,开发者基本都是谷歌的在职工程师。 11、lit-html lit-html 是一个极其简单好用的网页模板渲染库,使用 ES6 语法,一共只有两个方法。它是谷歌的 Polymer 团队出品。 资源 1、 MacOS Mojave 动态壁纸 MacOS 目前支持动态壁纸,壁纸会随着一天里面时间的不同,而自动变换。该网站提供各种动态壁纸下载。 2、独角兽公司榜单 该网站收录了估值达到 10 亿美元的创业公司,实时更新。(@kiddyuchina 投稿) 3、旋律百科 该网站收集各种旋律,用户可以通过多种方式(文字、声音、网页键盘)搜索旋律。 4、马克思主义文库 在线的马克思主义中文文库,包括马恩列斯、毛选等各种文献。(@zhang14725804 投稿) 5、HTTP Cat 该网站为各种 HTTP 状态码都生成一张猫的照片。(@sedgwickz 投稿) 6、联想 BIOS 模拟器 BIOS 是计算机的开机固件,联想公司在官网提供该公司 BIOS 的网页模拟器。 7、Developer jobs in Japan 该网站收集日本的软件工作机会,想去日本的朋友可以关注,由一个在日本工作的中国工程师维护。早期是邮件列表,第49期曾经推荐过,现在升级成了网站。(@rourouroujiang 投稿) 8、github-do-not-ban-us 一位伊朗开发者发起的项目,抗议只要国籍是美国政府制裁的国家,该用户就会被限制使用 GitHub。 (@marsvet 投稿) 图片 1、青蛙设计 青蛙设计是一家著名的设计公司,苹果公司早期的产品大多由该公司设计。这篇文章收集了很多青蛙设计的作品。 下图是苹果的 Lisa 电脑的设计原型。 下面是乔布斯离开苹果以后,推出的 NeXT 电脑。 2、登月宇航服 阿波罗计划的登月宇航员,宇航服的袖口都缝着操作步骤,防止宇航员漏掉某一个操作。 文摘 1、机器里的达尔文 1863年6月13日,英国小说家塞缪尔·巴特勒在新西兰的《新闻报》上发表文章《机器里的达尔文》,提出了机器可能是一种不断进化的"机械生命" ,最终机器可能取代人类成为优势物种。 我们自己创造了自己的继承者:我们每天都在增加他们身体的美丽和精致,我们每天都给予他们更大的力量,并通过各种巧妙的设计,让他们可以自我调节。随着时间的推移,我们将发现自己是次等种族。 日复一日,机器正变得比人类更强。我们日复一日地对他们屈服,每天都有更多的人被发展成机器的奴隶,更多的人每天将他们一生的精力投入到机器的发展中。结果,只是一个时间问题,机器最终将掌握真正的世界霸权。 2、我侄子的最后几天 我的侄子迈克尔曾经是一个健康的少年,但是不幸得了癌症,于2019年5月22日去世,只有15岁。 这六年来,所有的医疗方法都已经用过,完全无效。最后,我们只能束手无策地面对他的最后几天。 2019年5 月14 日,我来到医院。他坐在医院的病床上,正在玩《精英:危机四伏》游戏。 这是他最喜欢的游戏。在他生命的最后时刻,我实在不知道能做什么,只能希望他在游戏里面玩得开心。 我把他的情况和照片,发上了推特。《精英:危机四伏》的开发公司看到了推特,主动联系我,表示愿意赠送迈克尔一些礼物。当我透露,他可能只有几天生命了,他们表示会先给他提升一些装备。 第二天,他们就来病房看望了迈克尔,带来了开发团队所有成员的签名海报。游戏的创始人也在网上送出了祝福。 回去以后,他们把这次探望,放到了游戏论坛上。玩家们非常感动,纷纷在游戏里鼓励和帮助迈克尔。这让迈克尔心情愉快,一连几个小时在做任务,还从病房走到了食品间,这是几周来都没有的壮举。 迈克尔提出想访问游戏公司,公司在城市的另一边,医生建议不要离开医院。很快,他的病情恶化,面部肿胀越来越严重,眼睛很难睁开了,但是他仍然设法在屏幕上观察并修补他的太空船。 三天之后的周六,游戏公司得知他已经看不见时,提出专门为他创造一个音频章节,让他可以听到游戏情节。起初,我拒绝了这个提议,觉得这需要太多的时间,迈克尔可能没有那么多时间。但是随后,迈克尔的情况有所好转,游戏公司就开始推进这个想法。 周日,编剧在一天内写了一篇精彩的7000字的剧本。下周一,游戏公司找来三位专业配音演员,录制这个故事。周二,音频工程师合成整个音频,当天晚上将这个音频小说送到了医院,迈克尔听完了它。 周三,我联网跟他一起玩游戏。突然间,他开始咳嗽,通信断了,我立刻动身前往医院。到达那里时,他已经注射了镇静剂,处于昏迷状态。他的妈妈、爸爸和我轮流和他坐在一起,握住他的手。我在他耳边播放了专属于他的那个音频章节。 几个小时后,他去世了。 他的棺材写着游戏的格言:"领航员不死,将在另一个太空站重生。" 言论 1、 知识使人自由,或者起码渴望自由。 -- [南非] 特雷弗·诺亚《天生有罪》 2、 有些书只需尝一口,有些书可以吞下去,有些书要咀嚼和消化。 -- 弗朗西斯·培根。这段话镶刻在纽约公共图书馆门前的地面。 3、 推特宣布限制第三方客户端时,我就决定不再使用它了。这种服务要求用户投入大量时间,却不提供个人数据的所有权和控制权。 -- 《我相信 IndieWeb》 4、 宇宙不过是一片巨大的黑暗,银河系是漂浮在其中一个角落的恒星群岛。 -- 《极简宇宙史》 5、 日食与遮住头顶的遮阳伞没有什么不同。只不过挡住太阳的不是伞,而是月亮。 -- 《向女儿解释月蚀》 招聘信息 以下公司正在招聘,欢迎应聘。 本栏目为收费服务,每条价格 250 元人民币,用于资助周刊。如果你的公司正在招人,欢迎联系我(Email: yifeng.ruan@gmail.com)。 讨论区有更多职位,欢迎大家访问。 1、 高级前端开发工程师 易路软件,企业人力资源的 SaaS 服务,提供复杂薪酬计算的解决方案,刚拿到 C 轮投资。工作地点:上海闵行区。 本岗位参与公司前端产品研发和维护,包括不限于 PC 端、H5、小程序、Node 服务。要求3年以上的前端开发经验,熟悉 MVVM、组件化思想,精通 VUE / React 的一种。查看详细信息。 简历投递 Email:luol@ersoft.io 2、前端技术专家,Java 技术专家 阿里钉钉(DingTalk),中国领先的智能移动办公平台。工作地点:北京、杭州。 这里是钉钉文档中心的对外招聘,负责开发和维持钉钉的企业文档服务,点击查看招聘详情。 联系方法:钉钉号/微信号 pizner,Email zhanxin.lin@alibaba-inc.com。 3、滴滴出行 本团队致力于以 IM 为中心,打造一套安全高效的企业智能沟通协作平台,赋能企业信息化与组织管理,提高公司员工的工作效率,支撑业务增长。 招聘岗位: iOS 资深研发工程师(Swift 方向) Android 资深研发工程师(Kotlin 方向) IM 前端资深工程师(Electron/React 方向) IM 服务端专家工程师(Java/Rust 方向) 工作地点:北京 / 深圳 简历投递: linyuan@didichuxing.com 回顾 去年的本周:《周刊第 15 期》 订阅 这个周刊每周五发布,同步更新在阮一峰的网络日志、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月 2日


信息论入门教程

1948年,美国数学家克劳德·香农发表论文《通信的数学理论》(A Mathematical Theory of Communication),奠定了信息论的基础。 今天,信息论在信号处理、数据压缩、自然语言等许多领域,起着关键作用。虽然,它的数学形式很复杂,但是核心思想非常简单,只需要中学数学就能理解。 本文使用一个最简单的例子,帮助大家理解信息论。 一、词汇的编码 小张是我的好朋友,最近去了美国。 我们保持着邮件联系。小张写信的时候,只使用4个词汇:狗,猫,鱼,鸟。 信的所有内容就是这4个词的组合。第一封信写着"狗猫鱼鸟",第二封信写"鱼猫鸟狗"。 信件需要二进制编码,在互联网传递。两个二进制位就可以表示四个词汇。 狗 00 猫 01 鱼 10 鸟 11 所以,第一封信"狗猫鱼鸟"的编码是00011011,第二封信"鱼猫鸟狗"的编码是10011100。 二、词汇的分布 最近,小张开始养狗,信里提到狗的次数,多于其他词汇。假定概率分布如下。 狗:50% 猫:25% 鱼:12.5% 鸟:12.5% 小张的最新一封信是这样的。 狗狗狗狗猫猫鱼鸟 上面这封信,用前一节的方法进行编码。 0000000001011011 一共需要16个二进制。互联网的流量费很贵,有没有可能找到一种更短编码方式? 很容易想到,"狗"的出现次数最多,给它分配更短的编码,就能减少总的长度。请看下面的编码方式。 狗 0 猫 10 鱼 110 鸟 111 使用新的编码方式,小张的信"狗狗狗狗猫猫鱼鸟"编码如下。 00001010110111 这时只需要14个二进制位,相当于把原来的编码压缩了12.5%。 根据新的编码,每个词只需要1.75个二进制位(14 / 8)。可以证明,这是最短的编码方式,不可能找到更短的编码,详见后文。 三、编码方式的唯一性 前一节的编码方式,狗的编码是0,这里的问题是,可以把这个编码改成1吗,即下面的编码可行吗? 狗 1 猫 10 鱼 110 鸟 111 回答是否定的。如果狗的编码是1,会造成无法解码,即解码结果不唯一。110有可能是"狗猫",也可能是"鱼"。只有"狗"为0,才不会造成歧义。 下面是数学证明。一个二进制位有两种可能0和1,如果某个事件有多于两种的结果(比如本例是四种可能),就只能让0或1其中一个拥有特殊含义,另一个必须空出来,保证能够唯一解码。比如,0表示狗,1就必须空出来,不能有特殊含义。 同理,两个二进制位可以表示四种可能:00、01、10和11。上例中,0开头的编码不能用了,只剩下10和11可用,用10表示猫,为了表示"鱼"和"鸟",必须将11空出来,使用三个二进制位表示。 这就是,上一节的编码方式是如何产生的。 四、编码与概率的关系 根据前面的讨论,可以得到一个结论:概率越大,所需要的二进制位越少。 狗的概率是50%,表示每两个词汇里面,就有一个是狗,因此单独分配给它1个二进制位。 猫的概率是25%,分配给它两个二进制位。 鱼和鸟的概率是12.5%,分配给它们三个二进制位。 香农给出了一个数学公式。L表示所需要的二进制位,p(x)表示发生的概率,它们的关系如下。 通过上面的公式,可以计算出某种概率的结果所需要的二进制位。举例来说,"鱼"的概率是0.125,它的倒数为8, 以 2 为底的对数就是3,表示需要3个二进制位。 知道了每种概率对应的编码长度,就可以计算出一种概率分布的平均编码长度。 上面公式的H,就是该种概率分布的平均编码长度。理论上,这也是最优编码长度,不可能获得比它更短的编码了。 接着上面的例子,看看这个公式怎么用。小张养狗之前,"狗猫鱼鸟"是均匀分布,每个词平均需要2个二进制位。 H = 0.25 x 2 + 0.25 x 2 + 0.25 x 2 + 0.25 x 2 = 2 养狗之后,"狗猫鱼鸟"不是均匀分布,每个词平均需要1.75个二进制位。 H = 0.5 x 1 + 0.25 x 2 + 0.125 x 3 + 0.125 x 3 = 1.75 既然每个词是 1.75 个二进制位,"狗狗狗狗猫猫鱼鸟"这8个词的句子,总共需要14个二进制位(8 x 1.75)。 五、信息与压缩 很显然,不均匀分布时,某个词出现的概率越高,编码长度就会越短。 从信息的角度看,如果信息内容存在大量冗余,重复内容越多,可以压缩的余地就越大。日常生活的经验也是如此,一篇文章翻来覆去都是讲同样的内容,摘要就会很短。反倒是,每句话意思都不一样的文章,很难提炼出摘要。 图片也是如此,单调的图片有好的压缩效果,细节丰富的图片很难压缩。 由于信息量的多少与概率分布相关,所以在信息论里面,信息被定义成不确定性的相关概念:概率分布越分散,不确定性越高,信息量越大;反之,信息量越小。 六、信息熵 前面公式里的H(平均编码长度),其实就是信息量的度量。H越大,表示需要的二进制位越多,即可能发生的结果越多,不确定性越高。 比如,H为1,表示只需要一个二进制位,就能表示所有可能性,那就只可能有两种结果。如果H为6,六个二进制位表示有64种可能性,不确定性大大提高。 信息论借鉴了物理学,将H称为"信息熵"(information entropy)。在物理学里,熵表示无序,越无序的状态,熵越高。 七、信息量的实例 最后,来看一个例子。如果一个人的词汇量为10万,意味着每个词有10万种可能,均匀分布时,每个词需要 16.61 个二进制位。 log₂(100, 000) = 16.61 所以,一篇1000个词的文章,需要 1.6 万个二进制位(约为 2KB)。 16.61 x 1000 = 16,610 相比之下,一张 480 x 640、16级灰度的图片,需要123万个二进制位(约为 150KB)。 480 x 640 x log₂(16) = 1,228,800 所以,一幅图片所能传递的信息远远超过文字,这就是"一图胜千言"吧。 上面的例子是均匀分布的情况,现实生活中,一般都是不均匀分布,因此文章或图片的实际文件大小都是可以大大压缩的。 八、参考链接 Visual Information Theory, by Christopher Olah Information Theory (PDF), Roni Rosenfeld (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年8月 1日


每周分享第 60 期

这里记录过去一周,我看到的值得分享的东西,每周五发布。 欢迎投稿,或推荐你自己的项目,请前往 GitHub 的 ruanyf/weekly 提交 issue。 中国历史的第一课,总是教大家,我国很早就有人类活动,周口店发现的北京猿人已有20万年~70万年的历史。 因此,我从小就以为,所有的中国人都来自北京猿人。长大了,才知道不是这样,科学界的主流意见是,所有现代人都是智人,属于猿人的一个分支。也就是说,中国人跟北京猿人其实关系不大。 1987年,美国科学家根据 DNA 检查,提出了夏娃假说,认为现代人都来自一个20万年前的非洲女性,也就是说,人类起源于非洲。然后,大约在7万年前,人类开始走出非洲,逐渐分布到了世界各地。人类每到一地,就淘汰了当地的猿人。最终,其他猿人都灭绝了,智人成为了地球的主宰。 尼安德特人(上图)是欧洲的古人类,生活在40万年~4万年前,也被智人淘汰了。但是,2010年瑞典生物化学家斯万特·帕博发表论文,宣布测出了尼安德特人的 DNA,发现现代人类的 DNA 有1%~4%来自尼安德特人。也就是说,现代人的祖先跟尼安德特人有过杂交。 更惊人的是,他发现,中国人继承的尼安德特人基因,居然多于欧洲人,但是中国从未发现尼安德特人的踪迹。因此,只能推断,人类走出非洲以后,第一步来到中东,然后分别向东和向西迁移。向东迁移的过程中,与当地的尼安德特人不断有杂交,然后才来到中国。这就是中国人的起源。 我知道这些,是因为斯万特·帕博的自传《尼安德特人》中译本(下图)去年出版了。这本书值得一读,既可以了解科学家的人生和学术界的内幕,又可以学到很多人类进化的遗传知识,推荐给大家。本期周刊的《文摘》部分也摘录了这本书。 家庭保障规划 本期周刊很高兴得到了孙明展老师的支持。这里向大家介绍一下他正在举办的一个活动,提供家庭财务保障的咨询。 孙明展老师是广州中山大学统计系硕士,毕业后进入了保险行业,后来创办了"谱蓝"品牌,目前是中山大学金融系、统计系专业(兼职)硕士导师。进一步的情况,可以搜索"谱蓝"。 除了开公司,他还搞了一个公众号,名字就叫"孙明展",专门介绍家庭保障、儿童保险、儿童财商这方面的知识。 目前,已经有500多篇原创文章,介绍理财知识、保险案例分析等等,值得一看。 为了推广公众号,他这一次策划了一个"家庭保障规划咨询活动",免费提供保险理财咨询。 如果你被保险代理人坑过,心有余悸,或者对各种保单或险种感到很难懂,拿不定主意,再或者就是单纯想增加家庭财务保障,都可以参加这个活动。活动内容主要是,根据报名情况进行电话或网络沟通,了解家庭背景资料以后,回答保险理财咨询。 扫描关注下面的公众号,然后输入 "阮一峰 + 你的手机号码",就可以参加这个活动了。参加者都可以获赠一份价值800元的免费保障规划,包含对于家庭成员保障责任的综合评估。 资讯 1、重新设计购物小票 超市购物的时候,都会提供购物小票,列出购物的详细清单。这种小票通常非常简陋,Netflix 公司的数据可视化工程师 Susie Lu 尝试对它重新设计。她在小票的头部加上分类图(上图),并在每项物品的下方加上一个水平的柱状图,表示金额的大小(下图)。 2、光纤传导阳光 大楼深处的房间要得到自然光照明,往往非常困难。美国一家创业公司开发了光纤照明系统,在屋顶上架设集光器,收集阳光,然后通过光纤,将阳光导入室内,让地下室也能照到阳光。 3、照亮小镇的镜子 挪威南部的 Rjukan 小镇位于峡谷之中,每天只有很短的时间能够照到阳光,其他时候只能看着阳光找到两边的山上。 为了解决这个问题,一个企业家说服小镇的议会,出资在山上安装了三面巨大的镜子,每面镜子的面积是17平方米。可以在下午将阳光反射到小镇中央的广场。镜子建成的那一天,所有居民集中在广场上,等待阳光来临。 4、豌豆蛋白 很多创业公司正在开发"植物肉",使用植物蛋白制作传统的肉制品,这样有成本和环境上面的好处。下面的图片都不是真的肉,而是植物肉。 植物肉主要使用大豆蛋白制作,其中豌豆蛋白最接近肉制品的口味。预计到2025年,全球豌豆蛋白的销售量将翻两番,其中大部分增长都是植物肉带来的。因此,未来的豌豆种植预测会大幅上升。 5、SAT 考试增加"逆境分" 美国高中生都要参加 SAT 考试,考试成绩是大学招生的主要参考指标之一。近几年来,考试委员会越来越觉得,SAT 成绩不足以反映学生的努力,同样都是90分,穷人家的孩子获得这个成绩的难度,要大于富人家的孩子。因此,SAT 委员会正在试验,再给出一个"逆境分"(adversity score),反映该学生是否身处逆境。 这个指标通过15个因素计算得到,满分100分,最低1分。分数越低,表示处境越糟。如果你来自高收入家庭,有着受过良好教育的父母,那么你的"逆境分"就会比较高。平均得分是50分,表示处于社会的中间阶层。该指标已经在50所大学试行,以后可能会全面推广。 6、澳大利亚的滤水网 澳大利亚城市 Kwinana 最近在河道上游,安装了滤水网,过滤各种垃圾,尤其是塑料垃圾,保证河水的清澈。这个发明看上去非常简单,但是很有效。 下图是安装时的样子,以及装完垃圾的情景。 装满垃圾以后,只要换一下网,又可以重新使用了。该发明不仅可以用于河道,又可以用于山上的溪流。 7、云服务影响 3M 公司 3M 公司是位于美国明尼苏达州的一家著名的工业产品制造商,主要生产工业粘合剂、磨料、涂料等产品。最近,它的销售额开始下降。 公司将原因归咎于,越来越多的用户开始使用互联网云服务,正在用软件重构他们的业务,将生产和管理过程搬到网上,从而减少了对实体工业产品的需求。 8、一句话新闻 《自然》杂志报道,中国科学家研发了每秒钟4万亿帧的照相机,可以拍出光的运动轨迹。 华为公司还有海底电缆业务,铺设了第一条从非洲到南美洲的海底电缆。美国正在讨论,禁止华为参与铺设西方国家之间的海底电缆。 美国有300万人直到60岁,还没有还清学生贷款,总金额860亿美元,平均每人欠款将近3万美元。 特斯拉公司的 CEO 马斯克2018年的职务收入是23亿美元,创了有史以来 CEO 收入的最高记录。 文章 1、CSS 制作中国窗格(英文) 本文介绍如何使用 CSS 的 -webkit-box-reflect 属性,通过镜面反射制作中国窗格图案。 2、学习 Dart 语言的10个理由(英文) Dart 语言本来已经死掉了,就是因为 Flutter 这个非常有前景的业务绑定了它,所以又活过来了。说到底,还是业务重要。好的技术不一定能活,坏的技术不一定会死,取决于有没有业务。 3、非设计师需要知道的设计原则(英文) 如果你的团队没有专业设计师,那么这篇文章教你四个基本的设计原则。只要你遵循这四个原则,就会取得不错的效果。 4、Python 3 好在哪里?(英文) Python 3 是 Python 2 的全新升级版,有重大的改进。本文介绍 Python 3 到底增加了哪些功能。 5、2019 年的 PHP(英文) PHP 语言发展到今天,已经有了巨大改进,各方面的状况逐步让人感到满意。本文介绍 PHP 语言在2019年的最新状况,包括语法改进、性能提升、框架和模块体系等等。 6、清洁能源的下一步发展(英文) 比尔·盖茨谈,他眼中的接下来能源革命的三大发展领域,也是他的基金会重点投资方向:能量储存技术、碳捕获和核能技术、长距离的高压输电线路。 7、React 应用的 Docker 化(英文) 这篇教程一步步详细教你,如何将 React 应用打包成生产环境可用的 Docker 容器。 8、SOLID 原则:以 TypeScript 为例(英文) SOLID 原则是2004年 Robert C. Martin 提出的软件架构原则,创造更健壮、可维护的代码,包括5个小点。本文以 TypeScript 代码为例,介绍 SOLID 的含义。 9、我的透明创业实验(中文) 一个正在进行的创业实验,一年时间做10个小产品,看看能否达到每月被动收入1000美元的目标。(@timqian 投稿) 10、5G网速那么快,基站辐射会很大吗?(中文) 5G 通信使用比 4G 更高的频率,需要的能量更大,这对基站和手机的辐射有何影响。这篇文章给出了很好的分析。 软件 1、Darling Darling 的意思是 Darwin + Linux。它是一个转换层,允许在 Linux 直接运行 macOS 的二进制文件,前提是该应用不使用图形界面。 2、uppy 一个文件上传的 JS 库。 3、koken 一个搭建个人图片库网站的软件。 4、KeePass 一个管理密码的桌面软件。 5、NoScript 一个 Chrome 浏览器插件,可以指定关闭网页中的某一个 JS 脚本。 6、RandomJson 一个生成随机 JSON 数据的 Kotlin/Java 库。 7、ipfs-deploy 将静态网站发布到 IPFS 的命令行工具。 8、sonic 一个 Rust 语言写的搜索服务器,可以用作 Elasticsearch 的替代品。(@ifrontend-xyz 投稿) 9、Librian 根据准备好的背景图片和剧本,自动生成 Galgame 游戏图景的工具。(@RimoChan 投稿) 10、pastel 一个基于 React 和 Ink 的命令行应用开发框架。 11、utterances 将 GitHub 的 issue 当作评论系统,插入第三方网页的 JS 库。 12、Flutter4GitLab 一个 Flutter 实现的 GitLab 客户端,可以用作 Flutter 学习资源。(@stefanJi 投稿) 13、Open-Registry 开源的 JavaScript 模块管理服务,目标是取代 npm。它希望用社区捐款来运作,而不是将 JS 模块管理的重任交给一家盈利性公司。说实话不看好,话说 npm 以前也是非盈利性的,后来实在撑不下去,才成立了公司。 资源 1、Prob 140 加州大学伯克利分校的数据科学概率入门课程的教科书。 2、VS Code 能做到 该网站收集 VS Code 能够实现的各种高级功能教程,目前已经有36个。 3、如何 root 该页面收集各种安卓手机 Root 的方法。 4、数据科学项目 Python 实战 DigitalOcean 推出的免费电子书,介绍如何使用 Python 完成三个基本的机器学习项目:自动分类、识别手写数字、机器人构建。 5、如何使用 Python3 编程 DigitalOcean 推出的免费电子书,介绍 Python3 编程,针对新手。 6、i18ns.com 一个制作国际化应用的利器。该网站收集各种语言包,你输入中文,它返回各种语言包对这个词的翻译。(@2i18ns 投稿) 7、CTOLib 码库 该网站收集并分类开源项目和资源,每日更新。目前共有49959个收录,并归类到658个分类。(@ctolib 投稿) 文摘 1、《尼安德特人》 《尼安德特人》是瑞典生物化学家斯万特·帕博(Svante Pääbo) 的自传,中译本由浙江教育出版社出版。他是第一个尝试获取木乃伊的 DNA 的科学家,目前致力于测出尼安德特人的完整 DNA 图谱。 13岁时,妈妈带我去了埃及,自此我就迷上了那里的古老历史。大学时,我选修古埃及历史,连续两个夏天在斯德哥尔摩的地中海博物馆做志愿者。我或许会成为瑞典的一位古埃及学者,并在同一家博物馆工作。但是我发现,那里的人第二个夏天所做的事情与第一个夏天几乎一样。此外,他们在同一时间去同一家餐馆吃同样的饭菜,讨论同样的古埃及之谜和学术八卦。我开始意识到,对我而言,埃及古文物学这个领域发展太慢。这不是我想要的那种职业生活。我想经历更多的兴奋,想要与我所看到的周围世界有更多的关联。 于是,我选择乌普萨拉大学的医学院,攻读生物化学博士学位。但是,我仍无法完全摆脱对古埃及的迷恋。只要有时间,我就去埃及学研究所听课。虽然我热爱古埃及,但很难看到未来。我也喜欢分子生物学,它可以不断提升人类的福祉。我不知道应该选择哪一条人生道路。 一个新的想法逐渐浮现在我的脑海:能不能对古埃及木乃伊进行 DNA 测序呢?DNA 分子能否在木乃伊中留存下来呢?我们是否有可能通过研究古 DNA 序列,从而阐明古埃及人彼此之间以及与现今人类之间是否关联呢?如果可以做到,那么我们便可以回答埃及学研究中常规方法所无法回答的问题。 我遇到的第一个问题是 DNA 能否在死后的组织中长期存活。我推测,如果组织变得干燥,如古埃及木乃伊那样,那么 DNA 或许可以长期保存良好,因为降解 DNA 的酶需要水来激活。这是我需要测试的第一件事情。 1981年夏天,实验室没有太多人,我去超市买了一块小牛肝。为了模仿古埃及木乃伊,我决定将牛肝封存在实验室的烤箱中并加热到50℃,让其木乃伊化。第二天,怪味招致了许多闲言碎语,所幸随着脱水过程的进行,气味不再浓郁,于是也就没有腐烂的气味或埋怨的话传到教授那里。 几天之后,肝脏就坚硬干燥,并变成黑褐色,就像埃及木乃伊一样。我开始从中提取 DNA,大获成功。我获得的 DNA 是只有几百个核苷酸的短片段,不像从新鲜组织中提取的 DNA 那样有数千个核苷酸,不过依旧足够用于实验。我的想法得到了证实。认为 DNA 可以在一个死组织中存活至少几天或几周,这并不荒谬。但是,几千年呢?很明显,下一步便是在埃及木乃伊中尝试同样的方法。我需要从真的木乃伊身上,尝试获取 DNA。 2、华氏度的合理性 温度有两种表示方法:摄氏度和华氏度。 只要学过化学,就会知道摄氏度更好。因为它的定义很简单明确:0℃是水的冰点,100℃是沸点。华氏度的定义就显得复杂:特定的冷冻盐水溶液的温度为0℉,水的冰点为32℉,体温为96℉(未校正前)。显然,这个温度体系不那么直观。 但是,摄氏度是针对水的状态,对于表示日常天气,效果很不理想。我发现,使用负数表示不那么冷的温度,令人很烦,然后只要35℃,就是一个高温天了,这也不那么直觉。事实上,在化学实验室之外,我并不关心水的冰点和沸点,我更关心本周会有多热或多冷。摄氏度不是为了这个目的设计的,而华氏度恰恰是针对人的感觉设计的。 下面是华氏度的一些优点。 直观:0度就是极冷的天气,100度就是极热的天,这对人们来说很自然。 避免小数:预报气温的时候,摄氏度需要带上小数,华氏度都是整数。 避免负数:华氏度的0度足够冷,温度很少低于0度。 避免3位数字:华氏度很少出现高于100度的高温天气。 下面是波士顿和加利福尼亚州红木城一年的天气变化,可以看到,就在0度~100度之间变动。 图片 1、美国人的反应 只要表现不低于平均水平一个标准差,美国人就会说"This is awesome",不低于两个标准差会说"Pretty good"。 2、最后的白犀牛 2018年3月,世界上最后一头雄性的白犀牛在肯尼亚去世。目前还活着的两头白犀牛都是雌性,这宣告了这个物种注定灭绝。 犀牛角在中国、韩国及越南等国家都是珍贵药材,巨大的利益导致了盗猎猖獗。为了保护这些犀牛,肯尼亚政府派了武装警卫。这些警卫荷枪实弹,全天候巡逻佔地 360 平方公里的保护区。去年一场枪战中,就打死了三名偷猎者。 言论 1、 技术新闻和技术会议等地方,传播的都是行业的前瞻性观点,这些声音过于响亮,得到了最大的权重。但是,请不要忘记,世界仍然运行在 Excel、Java 8 和 Sharepoint 上面。 -- 《美国运行在 Java 8 上面》 2、 作为公司的首席 JavaScript 工程师,我总是让团队尽可能少写 JavaScript 。 -- 《保守的前端开发者》 3、 开发 Redis 之前,我从未一周七天,每天都在工作。我必须在 Redis 投入全部的时间,因为这个项目在以最快的速度发展,我需要的工作效率,大于我被迫每天工作所产生的生产力。 -- antirez,Redis 的发明者 4、 开发软件是一件很棒的事情,但绝不会像写一本能存活几个世纪的著作那样伟大,最终总是会有新的软件取代它。所以,有时我相信,我所做的一切最终都是徒劳的。 -- antirez,Redis 的发明者 5、 我在这个开源项目上投入多年,非常辛苦,但是我是做自己真正喜欢的事情,这给我带来了朋友、认可、金钱,所以我不想说这是一个糟糕的交易。 -- antirez,Redis 的发明者 回顾 去年的本周:《每周分享第 8 期》 订阅 这个专栏每周五发布,同步更新在我的个人网站、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年6月14日


响应式图像教程

网页在不同尺寸的设备上,都有良好的显示效果,叫做"响应式设计"(responsive web design)。 响应式设计的网页图像,就是"响应式图像"(responsive image)。 响应式图像的解决方案有很多,JavaScript 和 CSS 都可以实现。本文介绍最简单的、语义性最好的 HTML 方法,浏览器原生支持。 一、问题的由来 我们知道,<img>标签用于插入网页图像,所有情况默认插入的都是同一张图像。 <img src="foo.jpg"> 上面代码在桌面端和手机上,插入的都是图像文件foo.jpg。 这种处理方法固然简单,但是有三大弊端。 (1)体积 一般来说,桌面端显示的是大尺寸的图像,文件体积较大。手机的屏幕较小,只需要小尺寸的图像,可以节省带宽,加速网页渲染。 (2)像素密度 桌面显示器一般是单倍像素密度,而手机的显示屏往往是多倍像素密度,即多个像素合成为一个像素,称为 Retina 屏幕。图像文件很可能在桌面端很清晰,放到手机上会有点模糊,因为像素扩充了。 (3)视觉风格 桌面显示器的面积较大,图像可以容纳更多细节。手机的屏幕较小,许多细节是看不清的,需要突出重点。 上面两张图片,下方的手机图片经过裁剪以后,更突出图像重点,明显效果更好。 二、像素密度的选择:srcset属性 为了解决上一节的这些问题,HTML 语言提供了一套完整的解决方案。首先,<img>标签引入了srcset属性。 srcset属性用来指定多张图像,适应不同像素密度的屏幕。它的值是一个逗号分隔的字符串,每个部分都是一张图像的 URL,后面接一个空格,然后是像素密度的描述符。请看下面的例子。 <img srcset="foo-320w.jpg, foo-480w.jpg 1.5x, foo-640w.jpg 2x" src="foo-640w.jpg"> 上面代码中,srcset属性给出了三个图像 URL,适应三种不同的像素密度。 图像 URL 后面的像素密度描述符,格式是像素密度倍数 + 字母x。1x表示单倍像素密度,可以省略。浏览器根据当前设备的像素密度,选择需要加载的图像。 如果srcset属性都不满足条件,那么就加载src属性指定的默认图像。 三、图像大小的选择:srcset属性 + sizes属性 像素密度的适配,只适合显示区域一样大小的图像。如果希望不同尺寸的屏幕,显示不同大小的图像,srcset属性就不够用了,必须搭配sizes属性。 第一步,srcset属性列出所有可用的图像。 <img srcset="foo-160.jpg 160w, foo-320.jpg 320w, foo-640.jpg 640w, foo-1280.jpg 1280w" src="foo-1280.jpg"> 上面代码中,srcset属性列出四张可用的图像,每张图像的 URL 后面是一个空格,再加上宽度描述符。 宽度描述符就是图像原始的宽度,加上字符w。上例的四种图片的原始宽度分别为160像素、320像素、640像素和1280像素。 第二步,sizes属性列出不同设备的图像显示宽度。 sizes属性的值是一个逗号分隔的字符串,除了最后一部分,前面每个部分都是一个放在括号里面的媒体查询表达式,后面是一个空格,再加上图像的显示宽度。 <img srcset="foo-160.jpg 160w, foo-320.jpg 320w, foo-640.jpg 640w, foo-1280.jpg 1280w" sizes="(max-width: 440px) 100vw, (max-width: 900px) 33vw, 254px" src="foo-1280.jpg"> 上面代码中,sizes属性给出了三种屏幕条件,以及对应的图像显示宽度。宽度不超过440像素的设备,图像显示宽度为100%;宽度441像素到900像素的设备,图像显示宽度为33%;宽度900像素以上的设备,图像显示宽度为254px。 第三步,浏览器根据当前设备的宽度,从sizes属性获得图像的显示宽度,然后从srcset属性找出最接近该宽度的图像,进行加载。 假定当前设备的屏幕宽度是480px,浏览器从sizes属性查询得到,图片的显示宽度是33vw(即33%),等于160px。srcset属性里面,正好有宽度等于160px的图片,于是加载foo-160.jpg。 注意,sizes属性必须与srcset属性搭配使用。单独使用sizes属性是无效的。 四、<picture>标签,<source>标签 上面两节分别解决了像素密度和屏幕大小的适配,但是如果要同时适配不同像素密度、不同大小的屏幕,应该怎么办呢? 这时,就要用到<picture>标签。它是一个容器标签,内部使用<source>和<img>,指定不同情况下加载的图像。 <picture> <source media="(max-width: 500px)" srcset="cat-vertical.jpg"> <source media="(min-width: 501px)" srcset="cat-horizontal.jpg"> <img src="cat.jpg" alt="cat"> </picture> 上面代码中,<picture>标签内部有两个<source>标签和一个<img>标签。 <source>标签的media属性给出媒体查询表达式,srcset属性就是<img>标签的srcset属性,给出加载的图像文件。sizes属性其实这里也可以用,但由于有了media属性,就没有必要了。 浏览器按照<source>标签出现的顺序,依次判断当前设备是否满足media属性的媒体查询表达式,如果满足就加载srcset属性指定的图片文件,并且不再执行后面的<source>标签和<img>标签。 <img>标签是默认情况下加载的图像,用来满足上面所有<source>都不匹配的情况。 上面例子中,设备宽度如果不超过500px,就加载竖屏的图像,否则加载横屏的图像。 下面给出一个例子,同时考虑屏幕尺寸和像素密度的适配。 <picture> <source srcset="homepage-person@desktop.png, homepage-person@desktop-2x.png 2x" media="(min-width: 990px)"> <source srcset="homepage-person@tablet.png, homepage-person@tablet-2x.png 2x" media="(min-width: 750px)"> <img srcset="homepage-person@mobile.png, homepage-person@mobile-2x.png 2x" alt="Shopify Merchant, Corrine Anestopoulos"> </picture> 上面代码中,<source>标签的media属性给出屏幕尺寸的适配条件,每个条件都用srcset属性,再给出两种像素密度的图像 URL。 五、<source>标签的type属性 除了响应式图像,<picture>标签还可以用来选择不同格式的图像。比如,如果当前浏览器支持 Webp 格式,就加载这种格式的图像,否则加载 PNG 图像。 <picture> <source type="image/svg+xml" srcset="logo.xml"> <source type="image/webp" srcset="logo.webp"> <img src="logo.png" alt="ACME Corp"> </picture> 上面代码中,<source>标签的type属性给出图像的 MIME 类型,srcset是对应的图像 URL。 浏览器按照<source>标签出现的顺序,依次检查是否支持type属性指定的图像格式,如果支持就加载图像,并且不再检查后面的<source>标签了。上面例子中,图像加载优先顺序依次为 svg 格式、webp 格式和 png 格式。 六、参考链接 Responsive Images 101, Jason Grigsby Responsive images, MDN (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年6月10日


每周分享第 59 期

这里记录过去一周,我看到的值得分享的东西,每周五发布。 欢迎投稿,或推荐你自己的项目,请前往 GitHub 的 ruanyf/weekly 提交 issue。 (题图:浦东滨江,上海,2018年) 关于未来有很多预测,最新的一种预测是,未来你很难交朋友。 那种可以交流内心的朋友,未来会越来越少。理由是,人们的生活变动和活动范围越来越大,很难与他人持续的、深入的接触。 一项调查发现,美国人成年后的20年中,平均要搬家6次,每个地方就住三年多。刚刚与别人熟悉了以后,你就要离开了,除非刻意,以后就很难再见面了。一位教授感叹:"我的曾祖父一生的生活圈是40平方公里,就在小镇过完一生。祖父的生活圈是400平方公里,最远就去了城里。父亲是4,000平方公里,我自己是40,000平方公里,不仅生活在东海岸和西海岸,足迹遍布全世界。" 深厚的友谊不是一蹴而就的,需要多次接触和反复交流。但是由于生活圈子越来越大,变动越来越快,结交好朋友的难度正在不断加大。这么说吧,友谊是一个静态累积的过程,但是我们的生活正变得越来越动态。 事实上,25%的美国人一个好朋友也没有。 未来人与人的直接接触将极其稀少,大多数时候都是跟机器打交道。现在,付款和点餐就已经是自助式,不需要人类接触了。未来我们与他人接触将越来越多在网上,你大多数交到的朋友将是网友。 这意味着,为了一个健康的、有着丰富社交的生活,你需要多在网上展示自己、接触他人。对于那些互联网上沉默寡言的人,未来的人生将会非常孤独。 新闻 1、德国的电力卡车高速公路 重型卡车耗能大,燃油多,造成的污染也大,如果改用电动,需要太多电池,实际上不太可行。今年五月,德国开始尝试一种新的解决方案:在公路上方架设电线。 卡车经过改造后,顶部有一个向上的导电架,可以从电线上取电,从而变成电力驱动。卡车本身是混合动力,没有电线的地方,依然使用传统的柴油发动机。这种方案的一个好处是,由于不需要电池和充电设备,所以成本较低,缺点 是需要对现有公路进行改造,第一期已经完成了法兰克福机场到工业区的道路施工。 2、窗边读信的少女 《窗边读信的女孩》是一幅世界名画,完成于1657年~1659年,作者是荷兰著名画家维米尔(Vermeer)。收藏它的德累斯顿美术馆,进行 X 光扫描后发现,墙上原来有一副爱神丘比特的画像,居然被涂掉了。据信应该是作者本人涂掉的,因为几百年来,从来没有人提到过这件事。该美术馆正尝试去掉涂料,还原丘比特画像。 3、中国在亚马逊成功 亚马逊最近宣布,将退出中国的网上零售市场。这是亚马逊在中国的失败,但中国却在亚马逊成功。欧洲有一项新的法律,要求在线零售平台披露卖家的统计信息,因此亚马逊的欧洲各国分站披露了各自市场的前10000家大卖家的分布。结果,欧洲各国大卖家的最大来源,几乎都是中国。 比如,2018年英国亚马逊的大卖家,主要不是英国公司,而是中国公司,占到市场份额的40%(上图)。如果以公司家数衡量,英国亚马逊的中国卖家占到总家数的34%,德国亚马逊28%,法国亚马逊47%,意大利亚马逊45%,西班牙亚马逊52%。美国亚马逊不受该法律管辖,因此没有公布数据,但据估计中国卖家也能占到40%。 4、路灯植物 麻省理工学院的科学家创造出一种发光植物,希望以后用植物替代路灯。科学家将一种含有荧光素的酶,包装成纳米粒子,然后将这种纳米粒子注入植物的叶子,一旦荧光素氧化,就有一部分能量以光的形式释放出来,从而达到发光的效果。 这种粒子的照明效果,可以用来阅读书籍,大约持续4个小时。下一步,研究人员会设法提高光亮,不仅让它可以用作街道照明,还可以用作室内照明,甚至是台灯。 5、AirPods 耳环 AirPod 是现在最流行的无线耳机,特点就是完全没有耳机线。有人就发明了 AirPod 耳环,为它加上了线,可以把耳机挂在耳朵上,想听的时候就塞进耳朵,不想听就挂着,预订价是20美元。 有人说这样不好看,但是如果能够接受,有人整天耳朵塞着 AirPod,为什么不能接受,让它挂在耳朵下呢? 6、如果登月失败 1969年7月20日,阿波罗计划第一次将人类送上月球。整个计划的安排是,宇宙飞船先进入月球轨道,再发送登月舱,让两名宇航员登上月球。但是有一个风险点,就是登月完毕以后,登月舱需要从月球起飞,将宇航员送回宇宙飞船。没人知道月球起飞能否成功,因为无法测试。万一无法起飞,两名宇航员只能在月球表面等死,因为没有为这种情况设计任何救援计划。 美国政府完全了解这种风险,尼克松总统还为两名宇航员死在月球,事先准备了一份演讲稿。几十年以后,这份演讲稿才披露出来,里面的内容是:"命运已经决定,那些前往月球探索的人将会在月球上安息。这些勇敢的宇航员知道他们的获救没有希望,但他们也知道人类将从他们的牺牲中看到希望。对于每个在未来的夜晚仰望月球的人来说,会知道有人长眠在那里的某个角落。" 7、智能汤匙 帕金森症在老年人中越来越常见,单单在美国,就有1000万患者。这种疾病的特征是,患者的手会不停颤抖,导致吃饭很困难,因为手一抖,食物就会掉下来,必须有人喂。这对病人和家属都很痛苦,而且目前无药可治。 有人发明了一种智能汤匙,试图解决这个问题。这种汤匙可以判断手抖的频率和幅度,从而产生反向震动,抵消手的抖动,使得汤匙尽量平稳。它的售价接近200美元,并不便宜,但是销售量已经超过了1000个。 8、一句话新闻 美国国务院正式要求,所有申请美国签证者,都要提供过去五年使用过的社交媒体帐号。 SpaceX 公司为了实现"星链"计划,建立低轨道卫星宽带服务,5月15日通过一艘火箭发射了60颗卫星,成功完成"一箭六十星",每颗卫星的重量是227公斤。 W3C 宣布与 WHATWG 达成协议,HTML 和 DOM 标准都以 WHATWG 为准,也就是说以后只有一套 HTML 标准了。 苹果公司发布自己的第三方登陆服务,所有苹果商店上架的应用,只要提供第三方登陆,都强制要求接入该服务。 三星公司发明了一种技术,只用一张普通照片,就可以对人脸建模,生成各种表情的视频。(@wangweiX 投稿) 文章 1、如何评价 Erlang 语言之父 Joe Armstrong(中文) Joe Armstrong 是 Erlang 语言的发明人, 单单他的论文《面对软件错误构建可靠的分布式系统》就足以载入史册,他提出面向对象编程本质上不是并发的正确处理方法。 (@YongHaoWu 投稿) 2、SHA-256 哈希算法(英文) 一篇通俗教程,一步步解释了 SHA256 的计算方法,并有图例和 JavaScript 实现。(@xwu64 投稿) 3、你用不惯 RxJava,只因缺了这把钥匙(中文) 帮助读者理解 RxJava 操作符,并给出了一个示例项目。(@KunMinX 投稿) 4、前端框架的性能比较(中文) 本文将一个 App 用18个前端框架实现,然后比较它们的性能,翻译自英语原文。(@ahuigo 投稿) 5、如何将 gif 转成视频?(英文) GIF 动画格式有很多缺点,最大问题就是体积过大。本文教你如何将 GIF 转成视频,嵌入网页,并且兼顾 浏览器兼容问题。 6、什么是暗网(英文) 针对新人的暗网基本知识,不涉及技术细节。 7、十四亿人的口腹之欲,是如何被满足的?(中文) 本文翻译自剑桥大学博士在 Quora 的回答,中国如何使用农业科技,生产出足够便宜的农产品,满足14亿人的消费。(@arezl 投稿) 8、树莓派 GPIO 介绍(英文) 树莓派的功能扩展,往往都要通过板载的通用输入/输出模块 GPIO。本文介绍 GPIO 的基本知识。 9、JavaScript 开发者的 Vim 配置指南(英文) 本文详细介绍几个对于 JavaScript 开发非常有用的 Vim 插件。 10、从虚拟主机到 Kubernetes(英文) 一位后端架构工程师以自己的亲身经历,详细介绍公司基础架构的变化。 11、Dependabot 服务介绍(英文) 最近,GitHub 收购了 Dependabot,并将它的服务完全免费了。本文介绍如何使用这个非常好的依赖管理工具。 软件 1、MineTime 一个跨平台的桌面日历应用,具有人工智能的分析功能。 2、BasicCAT 一个计算机辅助翻译软件,特点是将文章分解成句子,然后判断新的句子与原有语料的相似程度,自动生成翻译。(@xulihang 投稿) 3、Fika Chrome 浏览器插件,可以将网页转成可以专心阅读的样式,内置四种主题。(@yueyericardo 投稿) 4、git_curate 项目的 Git 仓库有很多分支,你都忘记了哪些分支是有用的,导致不敢删除。这个工具可以显示每个分支的详细情况,以及是否已经合并了,帮助判断是否应该删除这个分支。 5、excelize 一个读写微软 Excel 文件的 Go 语言库。 6、Benchmarks Game 常用编程语言(27种)的两两性能对比,发现哪种语言最快。(@NeoTse 投稿) 7、Base web uber 公司开源的 React 组件库,风格比较简单干净。 8、Cedreo 一个 3D 的家居建模渲染软件,还可以生成平面图,免费注册使用。 9、Screen Record 一个浏览器里面的录屏工具,非常简单好用。 10、impression.js 监测网页元素是否出现在视口内的 JS 库,用于监测广告的曝光。(@vivaxy 投稿) 11、booster 滴滴推出的针对移动应用的质量优化工具包。(@johnsonlee 投稿) 12、halo 优秀的开源 Java 博客系统,国产软件,有良好的中文支持。(@ruibaby 投稿) 资源 1、龙猫学术导航 一个外文期刊检索与下载的网站,里面有很多资源链接。类似网站还有"大木虫学术导航"。(@Andrew5c 投稿) 2、MOOC 课程搜索引擎 该引擎可以搜索全世界的开放课程,目前包含1.2万门课程,里面也有中文课程。(@ketra21 投稿) 3、开放的招聘信息网站 一个开放式的张贴工程师招聘信息的网站,该网站本身也是代码开源。(@timqian 投稿) 4、awesome-uikit 该仓库收集前端各种JS框架,Web组件库和后台管理模板。(@jaywcjlove 投稿) 5、SAFE 这个项目在印度尼西亚婆罗州的热带雨林里面,放置了十几个录音设备,然后将每个小时录到的声音放到网上,让访问者听到每天不同时辰的大自然的声音。 6、任正非思想 该仓库收集了1994~2018年任正非400余篇讲话。这里是可下载的合集。(@wikiios 投稿) 7、Dork-Admin 这是一个中文仓库,盘点世界上比较重大的数据泄漏事件。(@No-Github 投稿) 图片 1、深圳电动出租车 深圳的2万辆出租车都是电动的,每天都要充电。下图是出租车停车场,司机等着电动车充电完毕。 2、Manolo 的绘画 阿根廷艺术家 Manolo Gamboa Naon 是色彩、构图和复杂性的大师。他的作品具有探索性和复杂的构图,好像软件生成的一样。 文摘 1、安卓设备极低的升级率 安卓 9.0 是2018年8月发布的,结果发布后81天,9.0的设备只占到0.1%。 安卓 8.0 Oreo 是2017年8月发布的,发布后431天,8.0的设备只有21.5%。7.0 Nougat 发布后的795天,低于7.0的设备依然占到50.3%。也就是说,有一半的安卓设备至少在2年内没有更新。 安卓设备不及时更新,用户就无法从系统的升级中受益。尽管谷歌多次尝试改善这种情况,但多年来情况一直在恶化。相当一部分安卓设备一旦出厂,就再也不会升级了,直到设备报废。 因此,安卓设备的特点就是,系统几乎不升级,或者升级的速度非常慢。谷歌正在加快新版本的发布,而老版本的比例却在不断上升。下表是各个版本的安卓,一年后的设备采用率。 影响系统升级的因素有三个:(1)制造商向设备发送更新包的速度,(2)制造商发布新系统设备的速度,(3)用户购买新设备的愿望。由于安卓平台本身的复杂性急剧增加,以及各个制造商在系统上又增加了自己的层,导致更新旧设备变得越来越困难。用户想要彻底升级,往往只有购买新设备,但是用户更换手机的速度也在放慢。 此外,除了手机和平板电脑,安卓设备还包括电视和车载系统,这类设备极少更新系统。 安卓厂商的快速变化,也有一定的影响。HTC、索尼和摩托罗拉都发布过很多安卓设备,随着这些公司的衰落,它们的设备就没有更新了。三星已经吞噬了许多较小公司的市场份额,这些小企业可能对基础操作系统的定制程度较低,而三星的系统定制程度较高,这也使得无法更快地发布系统更新。 总之,安卓的老版本将长期地困扰着厂商、消费者和开发者。 2、自行车日 1943年4月,瑞士生化学家阿尔伯特·霍夫曼在实验室工作时头晕目眩,感到非常不舒服,他觉得自己可能是某种化学品中毒了。三天后,病情不见好转,他决定使用一种新的物质麦角酰二乙胺(缩写 LSD),进行自我实验。这种物质是他在1938年首次合成的,当时认为具有兴奋剂的作用。 4月19日早上,他合成了0.5毫升的 LSD,将其溶解在10毫升水中,并在下午4点20分服用250微克(0.000025克),这是他认为可能会生效的最小剂量。 下午5点,他感到有点头晕,就决定骑自行车回家。途中,症状变得越来越强烈,后来他在1979年回忆道:"我很难描述,我的视野出现了波动,像一张扭曲的镜子,看到的东西都在游泳。"到家后,他立刻打电话给邻居,请邻居帮忙叫最近的医生。 这时,他的症状继续发展。"眩晕,视觉障碍,在场的人的面孔都像在做鬼脸。我的头部,身体和四肢都感觉很重,好像装满了金属;小腿痉挛,手冷,没有感觉;舌头上有金属味,干燥和收缩的喉咙,一种窒息的感觉。" 医生到达后,症状的高峰已经过去了。医生的笔记保留了下来,上面写道他被霍夫曼的"运动障碍和焦虑情绪"所震惊,但没有发现任何严重的问题。"客观地说,他心跳规律,脉搏稳定,呼吸平静。" 霍夫曼自己的感觉是,"现在,一点一点地,我开始享受前所未有的色彩和形状,在我闭着的眼睛后面持续存在。万花筒般的,奇妙的图像突然出现在我身上,交替,杂色,开放,然后以圆形和螺旋形闭合,在彩色喷泉中爆炸。" 第二天早上,他更是有一种奇妙的感觉。"我充满了幸福,仿佛开始了新的生活。世界仿佛是新生。"但是,当年的医生报告只是说,他醒来后"有点疲倦,感觉完全恢复了健康,但在医生的建议下,又躺在床上休息了一天"。 这是人类第一次发现迷幻药 LSD 的效果,由于霍夫曼当时在骑自行车,这一天就被叫为"自行车日"。每年4月19日,全世界都会举行"自行车日"纪念游行和派对。 言论 1、 React hooks 发布以后,同事们很想重写公司 App 的大部分代码,只是因为现在有了新的 API。 -- HN 读者留言 2、 2006年1月19日,新视野号宇宙飞船发射,飞向遥远的冥王星。经过三十亿英里的飞行,九年后的2015年7月14日11点49点,到达预定地点冥王星。这只比2006年的预测慢了1分钟,达到了99.99998%的准确度。 -- 《了不起的 NASA》 3、 对于强者来说,失败会激励他们。对于弱者来说,失败会使他们更加失败。 -- 罗伯特 T. 清崎,《富爸爸,穷爸爸》的作者 4、 生命是一个实验。实验越多,您对自己和世界的发现就越多。 -- 爱默生,19世纪美国著名作家 5、 ORM (对象-关系映射)对于简单的 CRUD 操作比较有用。但是,我宁愿不用 ORM,而是多花一点时间写 SQL 语句,这样可以节省我阅读 ORM 文档、优化查询、调试 ORM 的时间。 -- 《ORM,用还是不用》 回顾 去年的本周:《每周分享第 7 期》 订阅 这个专栏每周五发布,同步更新在我的个人网站、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年6月 7日


HTTP Referer 教程

HTTP 请求的头信息里面,Referer 是一个常见字段,提供访问来源的信息。 很多开发者知道这个字段,但是说不清它的具体细节。本文详细介绍该字段。 一、Referer 的含义 现实生活中,购买服务或加入会员的时候,往往要求提供信息:"你从哪里知道了我们?" 这叫做引荐人(referrer),谁引荐了你?对于公司来说,这是很有用的信息。 互联网也是一样,你不会无缘无故访问一个网页,总是有人告诉你,可以去那里看看。服务器也想知道,你的"引荐人"是谁? HTTP 协议在请求(request)的头信息里面,设计了一个Referer字段,给出"引荐网页"的 URL。 这个字段是可选的。客户端发送请求的时候,自主决定是否加上该字段。 很有趣的是,这个字段的拼写是错的。Referer的正确拼写是Referrer,但是写入标准的时候,不知为何,没人发现少了一个字母r。标准定案以后,只能将错就错,所有头信息的该字段都一律错误拼写成Referer。 二、Referer 的发生场景 浏览器向服务器请求资源的时候,Referer字段的逻辑是这样的,用户在地址栏输入网址,或者选中浏览器书签,就不发送Referer字段。 主要是以下三种场景,会发送Referer字段。 (1)用户点击网页上的链接。 (2)用户发送表单。 (3)网页加载静态资源,比如加载图片、脚本、样式。 <!-- 加载图片 --> <img src="foo.jpg"> <!-- 加载脚本 --> <script src="foo.js"></script> <!-- 加载样式 --> <link href="foo.css" rel="stylesheet"> 上面这些场景,浏览器都会将当前网址作为Referer字段,放在 HTTP 请求的头信息发送。 浏览器的 JavaScript 引擎提供document.referrer属性,可以查看当前页面的引荐来源。注意,这里采用的是正确拼写。 三、Referer 的作用 Referer字段实际上告诉了服务器,用户在访问当前资源之前的位置。这往往可以用来用户跟踪。 一个典型的应用是,有些网站不允许图片外链,只有自家的网站才能显示图片,外部网站加载图片就会报错。它的实现就是基于Referer字段,如果该字段的网址是自家网址,就放行。 由于涉及隐私,很多时候不适合发送Referer字段。 这里举两个例子,都不适合暴露 URL。一个是功能 URL,即有的 URL 不要登录,可以访问,就能直接完成密码重置、邮件退订等功能。另一个是内网 URL,不希望外部用户知道内网有这样的地址。Referer字段很可能把这些 URL 暴露出去。 此外,还有一种特殊情况,需要定制Referer字段。比如社交网站上,用户在对话中提到某个网址。这时,不希望暴露用户所在的原始网址,但是可以暴露社交网站的域名,让对方知道,是我贡献了你的流量。 四、rel属性 由于上一节的原因,浏览器提供一系列手段,允许改变默认的Referer行为。 对于用户来说,可以改变浏览器本身的全局设置,也可以安装浏览器扩展。这里就不详细介绍了。 对于开发者来说,rel="noreferrer"属性是最简单的一种方法。<a>、<area>和<form>三个标签可以使用这个属性,一旦使用,该元素就不会发送Referer字段。 <a href="..." rel="noreferrer" target="_blank">xxx</a> 上面链接点击产生的 HTTP 请求,不会带有Referer字段。 注意,rel="noreferrer"采用的是正确的拼写。 五、Referrer Policy 的值 rel属性只能定制单个元素的Referer行为,而且选择比较少,只能发送或不发送。W3C 为此制定了更强大的 Referrer Policy。 Referrer Policy 可以设定8个值。 (1)no-referrer 不发送Referer字段。 (2)no-referrer-when-downgrade 如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况发送(包括 HTTP 网址链接到 HTTP 网址)。这是浏览器的默认行为。 (3)same-origin 链接到同源网址(协议+域名+端口 都相同)时发送,否则不发送。注意,https://foo.com链接到http://foo.com也属于跨域。 (4)origin Referer字段一律只发送源信息(协议+域名+端口),不管是否跨域。 (5)strict-origin 如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况只发送源信息。 (6)origin-when-cross-origin 同源时,发送完整的Referer字段,跨域时发送源信息。 (7)strict-origin-when-cross-origin 同源时,发送完整的Referer字段;跨域时,如果 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,否则发送源信息。 (8)unsafe-url Referer字段包含源信息、路径和查询字符串,不包含锚点、用户名和密码。 六、Referrer Policy 的用法 Referrer Policy 有多种使用方法。 (1)HTTP 头信息 服务器发送网页的时候,通过 HTTP 头信息的Referrer-Policy告诉浏览器。 Referrer-Policy: origin (2)<meta>标签 也可以使用<meta>标签,在网页头部设置。 <meta name="referrer" content="origin"> (3)referrerpolicy属性 <a>、<area>、<img>、<iframe>和<link>标签,可以设置referrerpolicy 属性。 <a href="..." referrerpolicy="origin" target="_blank">xxx</a> 七、退出页面重定向 还有一种比较老式的技巧,但是非常有效,可以隐藏掉原始网址,谷歌和 Facebook 都在使用这种方法。 链接的时候,不要直接跳转,而是通过一个重定向网址,就像下面这样。 <a href="/exit.php?url=http%3A%2F%2Fexample.com">Example.com</a> 上面网址中,先跳转到/exit.php,然后再跳转到目标网址。这时,Referer字段就不会包含原始网址。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年6月 4日


每周分享第 58 期

这里记录过去一周,我看到的值得分享的东西,每周五发布。 欢迎投稿,或推荐你自己的项目,请前往 GitHub 的 ruanyf/weekly 提交 issue。 据我观察,经营最好的自媒体,似乎都是美妆类的,介绍化妆品和服饰。 那些频道天天更新,拍视频,办线下活动,跟粉丝互动,送小礼品等等,办得很红火。为什么美妆类可以投入这么多,其他自媒体就没有这么活跃? 我的解释是,这是因为美妆类产品(化妆品、女装、包包等)有着极高的利润,可以在推广上面大量投入。据说,化妆品的定价是成本的20倍~50倍,网上文章这么介绍化妆品的成本: SK-II著名的神仙水在中国零售价格为560元,而其制造成本仅为人民币6.5元。就算研发成本都加进去,每单只成本也不超过人民币10元。资生堂650元/50克的眼霜连包装成本也只有10元不到。而欧伯莱那些150元左右的低端眼霜成本仅在3元左右。 如果10块钱的产品,定价500元,那么多出来的490元用在哪里呢?回答就是用在推广上面,重金投入,千方百计说服消费者愿意出500元购买这个成本10元的产品。所以,美妆类自媒体才可能得到那么多厂商的资源,可以不断做活动。 相比之下,其他产品就没办法这样推广。针对消费大众的软件类产品,尤其是 SaaS,其实定价都不算高,因为价格一高,用户就会去用开源产品或免费方案,所以很难在推广上面重金投入。那些免费的 SaaS 就更不用说了,只能靠口碑推广了。 新闻 1、可以走动的机舱 飞机上通常不能随意走动,这使得长途航班往往令人精疲力尽。英国一家航空公司的首席工业设计师,提出了机舱的新设计,提供一个可以走动的区域,包括健身房、工作室、酒吧、售货机、会议室和厨房,使得十几个人可以同时在该区域活动。多家航空公司对该概念设计,表示了浓厚的兴趣。 2、蘑菇尸衣 去世以后,主要有两种处理人体的方式:土葬和火葬。前者不环保,后者消耗能源。一家创业公司提出了一个更绿色的处理方式。他们发明了一种里面种植了蘑菇孢子的衣服,死者穿上以后,蘑菇孢子会不断分解人体的组织,转换成肥料。 3、微软纸牌游戏 2019年5月,微软纸牌游戏入选世界电子游戏名人堂,跻身 Doom、俄罗斯方块、魔兽世界、神奇宝贝和塞尔达传说的行列。 1990年,纸牌游戏首次发布,与 Windows 3.0 捆绑在一起,然后 Windows 的几乎所有版本都带有它。它是世界上游戏人数最多的游戏。 4、激光武器击落导弹 美国空军透露,2019年4月23日进行了一次实验,战斗机使用激光武器,成功击中飞行中的导弹。具体的细节都没有披露。该技术可能改变导弹防御的现状。 目前,只知道该技术还处在试验阶段,真正做出武器原型可能还需要两年,2022年以后才有可能装备部队。 5、味觉机器人 为了保证食品安全,防止伪劣食品,中国轻工业协会正在推广人工智能驱动的味道测试机器人,让机器人确定食品的质量和真实性。目前,测试对象包括干面条、米醋、茶和黄酒。 以前,测试食物取决于人类品尝者。这个过程很慢,结果可能因人而异。机器人与真人具有大致相同的精确度,但可以在不到一秒的时间内完成每次品尝,并且每天24小时运行。机器人具有电子和光学传感器,可模拟眼睛,鼻子和舌头。传感器收集食物和配料的视觉和气味信息,神经网络算法处理所有信息并查找数据中的模式,并可以不断学习。 6、光学鼠标20年 1999年4月,微软发布它的第一代光学鼠标,也是全世界最早的商业化光学鼠标,通过光学影像的位移来定位,促成了鼠标的升级换代,距今正好20年。此前人们使用的都是机械鼠标,里面是一个橡胶球,通过滚动带动三个滚轮来定位,它的最大缺点就是定位不精确,而且需要经常清洗,防止污垢影响精确度。 早期的光学鼠标不能在玻璃和光滑表面使用。2009年8月,罗技公司推出了会发射出两束激光的鼠标,这能使得它可以在玻璃上使用。 7、底特律的路灯危机 2014年,底特律市政府向加州一家 LED 公司,购买了2万多个路灯,预计使用年限是10年。但是,由于灯具的设计问题,从2018年底开始,这种 LED 灯就因为温度过高而烧焦,出现了大面积的故障,变得非常昏暗,最后就完全不亮。 LED 公司承担不起更换路灯的费用,底特律政府由于财政困难,也没钱更换路灯。如果你现在去底特律,40%的地区的路灯不正常,非常昏暗,可能会导致犯罪率上升。 8、一句话新闻 美国科学家提出设想,在漆黑的宇宙使用光电板发电。方法是通过吸收宇宙中的辐射,使得发光二极管发光,照亮光电板。 新加坡通过法律,宣布假新闻是刑事犯罪。发布诋毁新加坡或影响选举的假新闻,将最高被判10年徒刑和巨额罚款。 二氧化碳的大气浓度达到了 415ppm,即大气中100万个分子里面,二氧化碳分子有415个。这是最近300万年来的最高水平。 旧金山通过法律,禁止政府机构使用面部识别。 Intel 发布8核心 CPU i9-9900KS,每个核心均为5.0 GHz。 文章 1、DOOM 动态火焰效果(英文) 本文介绍 DOOM 火焰效果怎么实现,并且给出了 JS 源码。 2、微软的复兴(英文) 微软的市值最近超过了1万亿美元,过去5年上涨了两倍多,达到历史的最高峰。本文是微软 CEO Satya Nadella 的长篇特写,介绍这个在印度出生并接受教育的工程师,如何带领微软实现了复兴。 3、JPEG 图像还原(英文) 详细介绍 JPEG 图像格式和压缩方法。 4、Unsplash 的运营成本是多少?(英文) Unsplash 是最流行的高清图片分享网站,创始人披露,2019年2月该网站的运营成本:服务器 + 带宽大约7万多美元,数据处理 + 监控2万多美元,总费用10万美元。 5、使用 React Native 创建 Windows 桌面应用(英文) 微软的官方教程,解释如何用 React Native for Windows 写一个 Windows 桌面应用。 6、WordPress 的签名验证机制(英文) WordPress 采用在线更新机制,从远程下载更新包,因此必须有一个签名验证机制,防止被插入恶意代码。本文介绍 WordPress 如何实现签名验证。 7、如何制作一个多人实时协作的编辑器(英文) 这是 Hacker News 的一个讨论帖,完整涉及了现有的多人实时协作的算法和软件实现。 8、如何编写深色主题的 CSS (英文) 越来越多的应用,提供浅色主题和深色主题两种模式。本文介绍如何在现有代码改动最小的情况下,添加深色主题的 CSS 代码。 9、Chrome 浏览器计划加强 cookie 限制(英文) Chrome 浏览器宣布, Cookie 默认将不能跨站点发送,这实际上消灭了 CSRF 攻击。 10、只使用 CSS 的实时聊天(英文) 一个匪夷所思的实验,不使用 JS,只使用 CSS 实现实时聊天。 11、任正非5月21日专访全文(中文) 2019年5月21日,多家中文媒体联合采访任正非,长达150分钟,这里是全文记录稿,信息量很大,值得一读。 软件 1、gandul 一个轻量级的图片惰性加载的 JS 库,使用<a>标签替代<img>标签。 2、纯 css 的 tooltip 纯 CSS 的气泡提示框。(@pc175 投稿) 3、goldendict 一个基于 QT 的桌面词典,支持 Windows / Mac / Linux 平台。(@circleapps 投稿) 4、PicGo 一个桌面工具,直接将图片上传到选定的图床,返回上传后的图片 URL。(@ifrontend-xyz 投稿) 5、Mozilla SSL配置生成器 针对常见 Web 服务器软件的 SSL 配置文件生成器。(@ray0324 投稿) 6、gridea 一款跨平台桌面软件,可以在本地将 Markdown 文档编译成静态博客,然后发布到 GitHub Pages 或 Coding Pages。(@ifrontend-xyz 投稿) 7、code2flow 一个符合直觉的,从伪码生成流程图的工具。(@linlicro 投稿) 8、ikonate 一套开源的 SVG 图标。 9、Darwin Mail 一个第三方的 GMail 的 Web 客户端。 10、Nana 一个跨平台的 C++ 图形界面组件库。 11、Flutter 的豆瓣客户端 一个 Flutter 的学习项目,完整还原豆瓣客户端。(@CharlesCCC 投稿) 资源 1、Lorem Picsum 图片占位服务,可以返回指定大小的图片,并且提供多种定制参数。 2、1mb.site 一个免费的静态网站托管服务,支持绑定域名、SSL 和 NoSQL 数据库。 3、Haskell 趣学指南(中文) Haskell 语言开源教程的中译本,针对初学者。 4、Oddly Satisfying 一个视频项目,收集各种无限循环的短视频。 5、ui-libraries 该仓库收集前端各种 UI 组件库的名单,现在有20个左右,主要的组件库都包括在内了。 6、从零打造 Echarts(中文) 原创的中文教程,介绍如何从零开始,打造一个你自己的 canvas 图表库,大体遵循 echarts 的设计。(@webbillion 投稿) 7、openbiox.org 一个开源的生物信息学的中文社区,源码托管在 GitHub。(@Miachol 投稿) 文摘 1、科马洛夫的故事 下面是苏联宇航员科马洛夫的故事。他自愿执行一个自杀式任务,换取最好的朋友加加林活下去。 1967年,冷战达到了顶峰。列宁的诞辰纪念日将于4月22日到来,苏联领导人勃列日涅夫决定隆重纪念。他命令,两艘苏联的宇宙飞船在太空对接,各自的宇航员交换位置,进入另一艘飞船。这是前所未有的壮举,向世界显示苏联航天科技的先进。 对于这样重要的飞行,苏联航天局挑选了最好的宇航员,加加林和科马洛夫都入选了。他们是亲密的朋友,同时在空军服役,平时会一起喝酒,一起打猎,也一起进行太空训练。 但是,参与这个项目的所有技术人员都明白,联盟1号宇宙飞船无法在指定日期做好所有准备。加加林检查了飞行器,发现了203个不适合飞行的结构问题。他向勃列日涅夫写了一封信,希望推迟这个任务,但是没有任何回音。 随着发射日期的临近,科马洛夫被指定为本次任务的宇航员,加加林是后备人选。科马洛夫知道,这相当于判了他死刑。如果他退出,那么加加林将代替他上天。为了避免好朋友送死,他还是决定自己来飞。 1967年4月23日,科马洛夫登上了拜科努尔航天发射场的联盟1号飞船。 发射后,飞船出现了各种技术问题,围绕地球飞行了18圈后,地面指挥部决定放弃本次任务,命令科马洛夫返回地球。由于操作系统失灵,他必须手动控制飞船,回到地面。 这时,地面指挥部也知道,他不太可能幸存下来了。苏联总理柯西金与科马洛夫进行了通话,科马洛夫的妻子也一起参与。这段录音保存了下来,可以在互联网上找到。 进入大气层以后,飞船的降落伞没有打开,最后摔成了碎片,科马洛夫的遗体被烧成了焦炭。 去世时,他只有40岁,留下了妻子和孩子。他是世界上死于宇宙飞行的第一个人。苏联为他进行了国葬,骨灰埋葬在莫斯科红场。 2、华为 5G 设备的风险分析 最近,英国网络安全评估中心发布了一份报告,声称华为 5G 设备有技术风险。报告写道,华为的代码是一场噩梦,非常复杂,以"不安全"的方式编写,使用"不安全"的语言。考虑到代码的规模和复杂性,导致无法分析代码以寻找错误,更不用说发现隐藏的后门。即使有后门,也无法跟 bug 相区分。 另外,即使能看懂所有代码,他们也无法确定每次构建代码时,会不会有额外的产物。因此,无法确定设备上运行的最终代码,是否与通过检查的代码相同。 基本上,他们就是说,因为看不懂代码,所以它可能有风险。这种风险肯定不是华为独有的,世界上大多数计算机基础设施都是类似的情况。但这确实意味着,英国没有技术能力保证华为网络设备的安全。 现在,英国有三个选择。 第一个选择,继续购买华为设备,这样可以节省几十亿美元,代价是冒一点风险。 第二个选择,购买爱立信或诺基亚的设备,虽然价格会比较贵。 第三个选择,放弃升级到 5G。4G 其实已经够快了,如果增加 4G 信号的发射设备,使得每个用户能够独占全部带宽,那么也可以跑到更快的网速。 图片 1、IBM 大型机 1964年,IBM 公司推出 System / 360 大型机,下面是当时的宣传图片。(@mcushilei 投稿) 整套系统需要占满一间大厅。上图中央的双 H 机柜是 CPU,左侧靠墙和前方的机柜是内存和磁带机,右侧和下部的机柜都是 I/O 设备。 2、苏联太空旅行博物馆 苏联太空旅行博物馆在1967年对外开放,至今已经有50年历史了。最近,法国摄影师拍摄了一组系列照片,他说:"博物馆和火箭公园在雪地里看起来很忧郁。" 言论 1、 季后赛我有没有压力?不,这只是打篮球而已。 那些无家可归的人,才有真正的压力,他们不知道下一顿饭在哪里。单亲母亲为了支付房租而苦苦挣扎。我们打一场比赛就会赚到很多钱,确实会有一些挑战,但如果把这叫做压力,那对于普通人来说几乎就是侮辱。 -- 开拓者队的球星利拉德,回答记者提问。 2、 根据1950年到2000年的数据,发达国家的预期寿命每年大约增加34天。也就是说,如果再过十年,你还活着,那么你的预期寿命可以比十年前增加一年。 -- 《预期寿命到了顶峰吗?》 3、 疼痛是一个了不起的老师,但前提是它必须很尖锐。慢性疼痛会劫持你的反应、你的想法、你的人际关系以及你的生产力,并让它们都变得畸形。慢性疼痛的可怕之处是,你会变得习惯它们。 -- 《关于疼痛》 4、 你要避免两个陷阱。一个是尝试自动化一个不完全理解的服务,另一个是盲目地相信别人的自动化,而不理解它在幕后做的事情。 -- 《我忘了如何管理服务器》 5、 旧金山是美国房价上涨最快的地方。调整通货膨胀以后,1980年一栋31万美元的房子,2015年为75万美元。 -- 《美国住房政策》 回顾 去年的本周:《每周分享第 6 期》 订阅 这个专栏每周五发布,同步更新在我的个人网站、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年5月31日


每周分享第 57 期

这里记录过去一周,我看到的值得分享的东西,每周五发布。 欢迎投稿,或推荐你自己的项目,请前往 GitHub 的 ruanyf/weekly 提交 issue。 (题图:陆家嘴,上海,2018) 前些日子,一个运营的女同学问我:"为什么程序员喜欢分享?" 我说,整个程序员社区都是这样啊,把自己知道的东西告诉别人,也从别人那里学习新知识。她回答,我就不喜欢分享,我的运营计划一说出去,所有人都知道了,好不容易想出来的东西,马上就被别人拷贝了,我什么好处也拿不到。别的运营也是这样,都不愿意分享自己的成果。 我想了想,发现真的是这样:除了程序员以外,好像没有别的行业,流行分享自己的知识。相反的,这个世界上大部分行业,强调的都是保密,千万不能让别人知道我的独家信息和知识。 由此看来,程序员世界的开源和分享,其实是例外。正常情况下,这些东西都应该是标价出售的,花了钱才能拿到手。 经济学有一个假定,每个人都是自私的,追求自己的利益最大化,从而才能让这个世界变得有效率。那么,当我们鼓励开源和分享的时候,可不可以说我们正在做一件反人性的事情呢? React 免费视频课程 本期周刊很高兴得到了开课吧的支持。他们是国内领先的互联网从业者职业成长平台,为互联网人提供职业成长服务。 React 是目前全世界最流行的前端框架,国内大型互联网公司,几乎全部在使用它。想要进入这些公司,从事前端开发,React 几乎是绕不过去的技术。同时,React 本身是对很多底层技术的抽象。深入理解 React,有助于吃透前端开发,提升个人竞争力。 开课吧结合国内 React 的应用现状,针对初学者的学习痛点,推出了系列教学视频 《React 基础+实战CNode》 ,得到了很多学员的肯定和好评。 这套视频的第一部分,带大家快速掌握 React 的基础,学习各种底层库和组件库,搭建一个 React 项目《QQ 好友列表》。第二部分是实战训练,具体内容请看下图。 第三部分《React 16 虚拟 DOM 原理剖析》,紧跟最新版本的底层改动,讲解了 setState 异步队列、虚拟 DOM 的 Diff 算法、Fiber 架构、React Hooks 等难点内容,并教你如何构建自己的虚拟 DOM 库。 微信扫描下面的二维码,就可以领取视频。由于教学助理精力有限,限额500名。 新闻 1、宇宙射线观测站 4月26日,中国的第一个高海拔宇宙射线观测站,正式在四川稻城启动,当地的海拔是4400米。宇宙射线是来自外太空的高能粒子,携带着宇宙起源、天体演化、太阳活动及地球空间环境等重要科学信息,被称为传递宇宙大事件的"信使"。 自从1912年被发现,宇宙射线的来源至今仍然是一个谜。这个观测站的启用,有助于回答宇宙射线来自哪里,它们又是如何被加速到千倍于人类现有加速器之高的能量,这些一直是困扰科学家的问题。 2、白鲸武器 一个挪威渔民最近出海时,发现一条小白鲸主动游到船边。这条白鲸身上还有绑带,上面写着俄文,意思是"圣彼得堡的设备"。 渔民说,这头鲸鱼的行为非常奇怪,会主动寻找船只,并试图拉动船的两侧的绳索。考虑到它可以携带相机和武器,专家怀疑这是附近摩尔曼斯克的俄罗斯海军专门训练的白鲸。上个世纪80年代,苏联曾经训练海豚发现鱼雷,海豚视野敏锐,有良好的记忆力,使它们成为有效的水下探测武器工具。一份2017年的报告显示,俄罗斯海军重新开始训练用于军事目的的白鲸、海豹和宽吻海豚。 3、Red Hat 的新 Logo Red Hat 公司发布了新 logo(上图),变得更简洁和更具有可识别性,从一个戴着红色帽子的男人(下图),变成一顶红帽子。 Red Hat 这个名字来自创始人之一 Marc Ewing,他总是戴着红色曲棍球帽。每当他的同学们在卡内基梅隆大学的计算机实验室需要帮助时,他们就会说"寻找红帽子的那个人。"Red Hat 公司希望,每当人们发现自己需要帮助时,就会去找他们。 4、停车场办公 创业者往往想要使用共享的办公空间,但是大城市的办公空间很贵。旧金山的一个创业者灵机一动,注册了 WePark 公司。他在旧金山的热门区域,选择若干个停车位,付出一整天的停车费,然后摆上桌椅,按小时卖给创业者。创业者就在停车位办公。 WePark 的优势在于价格,每小时收费 2.25美元。相比之下,WeWork 的办公空间,每天收费50美元加上每月会员费。 5、菠菜叶生成的血管 人工心脏的一大问题,就是无法生成心脏肌肉上面的毛细血管,3D 打印可以生成人体组织,但是毛细血管不行。科学家提出了一种新的设想,菠菜叶子或许可以达到这个目的。 菠菜叶子去除叶肉以后,留下层层的叶脉,可以作为支架,将人体细胞培植在上面。然后,通过叶脉为细胞提供水和养分,促使其生长。长成以后,再取出菠菜叶,就会留下血管框架。上图左侧为去除叶肉的菠菜叶,右侧为红色染料处理过的菠菜叶。 6、大麦哲伦星云的照片 一群法国的天文爱好者使用4,000张图片,拼接成一张大麦哲伦星云的照片。这些照片是2017年7月至2019年2月期间,使用位于智利天文台的160毫米折射望远镜拍摄的。 大麦哲伦星云距离地球大约16万光年,是最靠近银河系的星系之一,大约包含了200亿颗恒星,也是裸眼能看见的最遥远天体之一。北半球大多数区域看不到它,只有南半球才能看到。 7、Minecraft 的 AR 玩法 Minecraft 发布了 AR (增强现实)新玩法,允许在现实世界叠加像素艺术。你只要掏出手机,对准街景,就可以在上面叠加一个 Minecraft 层。其他玩家在同一个地点,就可以看到这个层,与你互动。 由于这是微软的产品,应该会引进国内,看看会不会造成像《口袋妖怪》那样的抓宝风潮。 8、一句话新闻 美国2019年销售的汽车82%带有触摸屏,五年前这一比例为53%。这意味着,大部分汽车带有一个计算机操作系统。特斯拉的系统有86%的满意度,评价最高,其次是宝马80%。 微软将 Linux 内核放进了 Windows 10,这是 Linux 第一次成为 Windows 的一部分。 日本计划将手机号码升级到14位,取代现在的11位号码。原因是 5G 通信普及以后,将有大量号码用于"机器对机器"的通信(比如 5G 电视),11号号码不够用了。 美国国防部高级研究局正式宣布,与六所大学合作,研发下一代脑机接口,直接用神经活动控制计算机。 文章 1、电路图符号解释(英文) 本文介绍基本的电路图符号的含义。 2、一张纸对折12次)(英文) 长久以来,人们一直认为,一张纸最多对折7次。2002年,加利福尼亚州的17岁中学生 Britney Crystal Gallivan(1985年出生)成功演示了,将一张1200米长的卫生纸对折12次。她还给出了一个计算公式(上图),根据纸张的厚度和想要对折的次数,算出所需的纸张的最小长度。 3、Caddy 服务器如何过滤网络请求(英文) Caddy 是一种非常好用的 Web 服务器,作者演示如何根据 HTTP 请求携带的 Cookie 信息,返回不同的 CSS 样式表。 4、一种新的网络钓鱼方法(英文) 安卓系统的 Chrome 浏览器,用户向下滚动网页的时候,会自动隐藏地址栏。有人就利用这个特点,伪造了一个地址栏(上图的 hsbc 的地址栏就是伪造的),用来网络钓鱼。 5、虚拟内存探究(中文) 这组系列文章通过实验的方式,介绍虚拟内存的相关概念和实现,这里是中文翻译,还可以参考英语原版。(@NeoTse 投稿) 6、x86-64 汇编语言入门教程(英文) 本文通过运行一个最简单的 hello world 实例,介绍汇编语言的基本概念。 7、使用 Wasabi 和 restic 备份服务器(英文) 本文介绍如何写一个简单的脚本,将服务器数据备份到 Wasabi。 8、如何从零开始制作一块智能手表(英文) 本文含有大量图片,作者从零开始制作一块手表,表盘是3D打印的,电路是自己设计的,电池和充电器都是自己装配的。 9、二进制文件的编译过程(英文) 源码编译成为可运行的二进制文件,有好几个步骤,本文用一个最简单的例子,详细解释编译器的每一步都在干什么。 10、美国政府的高技术管制名单(英文) 2018年底,美国联邦政府发布了一份高技术出口管制名单,列出了14个大项、40多个小项的管制行业。凡是属于这些行业,原则上都不能出口,必须得到政府批准。这份名单可以当作参考,目前哪些行业属于真正的高科技行业。 软件 1、water.css 一个极小化的 CSS 框架,用来快速为网页加上简单样式,特别是不必使用任何 class。 2、ElGrapho 一个基于 WebGL 的浏览器数据可视化库,主要用于性能要求特别高的可视化图形。 3、googler 命令行搜索谷歌的工具。另外,还有一个 DuckDuckGo 的命令行客户端 ddgr。 4、Convert images to LaTeX 数学公式的截图 OCR 转为 LaTex 代码的桌面软件。(@chenylvia 投稿) 5、ScreenDump 一个在线截屏工具。用户只要输入网址,就会显示各种设备的网页截屏,相当方便。 6、I love IMG 该网站提供各种在线的图像编辑工具,比如图像缩放、压缩、裁剪、水印等。(@ifrontend-xyz 投稿) 7、mpvue 基于 Vue.js 的小程序开发框架,美团点评出品。这里有一篇教程,以及用它开发的 Unsplash 小程序。(@iyuyoung 投稿) 8、Motrix 一款桌面端下载工具,支持下载 HTTP、FTP、BT、磁力链、百度网盘等资源。(@ifrontend-xyz 投稿) 9、js-cloudimage-360-view 一个可以360度旋转观看图片的 JS 库,用于在网页上展示商品。 10、re-editor 一个基于 Slate 的开箱即用的 React 富文本编辑器,可以定制化。(@wowlusitong 投稿) 11、Pyodide 一个在浏览器运行的完整的 Python 解释器,可以执行 Python 脚本。 12、Microsoft Edge MacOS 预览版 Microsoft 公司的 Edge 浏览器发布第一个 MacOS 的版本。(@sedgwickz 投稿) 资源 1、国家地理频道纪录片:宇宙时空之旅 美国国家地理频道拍摄的13集科学纪录片,从理论物理学的角度,探讨宇宙的奥秘。中英文字幕,网易公开课提供全片。(@qinhanlei 投稿) 2、wamp 一个收集 WebAssembly 软件包的网站,相当于 WebAssembly 模块的 NPM。它还提供一个命令行工具,可以在命令行运行这些软件包。 3、数据库基础 免费的英文电子书,介绍数据库涉及的基本的数学知识。 4、MuseNet 人工智能公司 OpenAI 开发的自动作曲系统,可以指定你想听的音乐家(比如肖邦、莫扎特),然后该系统就会使用10种乐器生成一段4分钟的音乐。现在,OpenAI 每天在网上直播音乐会,旋律都是人工智能生成的。 5、数据科学的原理与技巧 加州大学伯克利分校的本科生入门教材,全英文,介绍数据科学原理,内容较简单,需要统计学和 Python 基础。 6、RemixIcon 一套免费高质量的开源图标库,目前有1500多枚图标,提供矢量图和字体图标文件,可用于商业用途。(@xiaochunjimmy 投稿) 文摘 1、为什么我们的工作时间越来越长? 中国社科院曾经发布过一个报告,说2017年我国每天工作时间超过8小时的人,占了42.2%。而且这不仅仅是中国的情况,日本,美国这些发达国家也普遍存在过劳。 这种现象虽然普遍,而且我们都身在其中。但仔细想想就会发现,其实"过劳"这件事,不太符合逻辑。 我们都知道,近两百年,人类整体的生产效率,那是一飞冲天啊。按说,生产效率上去了,单位工作时间的产出高了,那相应的工作时间应该减少才对啊。所以经济学家凯恩斯在1930年曾经做出一个有名的预测,他认为到2030年,人类的劳动时间每周15小时,就足够了。 现实是,很多互联网公司甚至开创了996模式,上午9点上班,下午9点下班,一周工作6天。我们还有724模式,一周7天24小时随时待命。你看,凯恩斯在1930年的预测错了。错的离谱,方向都错了。 问题是:他为什么错了?工具越高级,应该干活越省力才对。那为什么我们反而更累了呢? 《过劳时代》这本书里提供了很多解释。比如,全球化把所有人拉到了同一个竞争平面上。你是在一个地方工作,但你不是在和一个地方的人竞争。一个美国的工人是和一个中国的工人,甚至是非洲的工人在竞争。所以,竞争强度增大了。再比如,消费主义盛行。你和身边的人越来越多的攀比,比房子比车比包包比度假酒店,你想挣钱的欲望就越大,所以只能拼命干活。等等。 但是,我觉得最有说服力的解释,不是这些。问题的根子不在别的,就在于生产工具本身。它越进化、越高级、效率越高、越好用,我们就用得越多,所以工作时间就越长。 这是一个很有意思的悖论。举个例子,过去我们上班,必须得到单位才行,和同事见了面,才能展开协作。很不方便,后来有了电脑,有了邮件,有了微信,按说是更方便、更省时间了。但是结果呢?你知道的,老板能随时在微信群里抓到我们说事,周末也行,深更半夜也行。你上班的时间能不更长吗? 表面上看,工具的发明,总是解决一个现实问题的。有了斧头,砍树就更快。有了汽车,走得就更远。这是工具给我们提供的第一样东西,叫便利性。 但是,如果你只看到这一面,就忽略了一个更重要的东西,这也是工具带来的。你要解决问题,任何问题都是有它的时间空间边界的,工具一升级,边界内的问题,是被更高效的解决了,但是,这个时空边界本身也被打破了。于是,会出现新的问题,而且是更大的问题。 比如说,当年人们用马车,非常慢。后来,给车装上了发动机,这就成了汽车,速度提上去了。在有限的时空边界内,这就是一项改善。确定无疑的改善吧?那你说,会因为速度提上去了,所以,人旅行用的时间少了,所以车就会变少吗?当然不是啊。因为汽车打破了原来的时空限制,出现了全新的可能性。你就想,原来坐马车,你至少要带一个马车夫。现在呢?可以开汽车,一个人就可以开车,没有马车夫打扰了。车不仅是交通工具,它还是一个移动的私人空间了。所以就出现了一种新的行为方式,没有确定目的的开车兜风,这种行为模式就出现了。不去哪儿,就是带上女朋友开车去看看诗和远方。车的使用当然就越来越多。 当然,现实中远远不止是这一种情况了。因为车可以走得更远,所以,就一定会走得更远。因为可以走得更远,所以,整个社会的假设就变了,汽车旅馆就出现了,郊区景点和度假村就出现了,远离城区的购物中心,像奥特莱斯就出现了。这就反过来逼迫,你如果不能有汽车,你不能走得更远,你就没有办法享受社会基础设施提供的便利。它就会走到这个程度。 你看,这个过程就是:工具不仅为你解决了问题。工具还在你始料未及的地方,推开了一扇新的可能性的大门。这扇大门一旦推开,就再也关不上了,后面的人就会一涌而出,只会把门撑得越来越宽。这就是工具对人的反向塑造。 有句话叫,身怀利刃杀心自起。你身上有把刀,看见什么都想用上。对,工具虽然只是提供了某种可能,但是人性使然,我们总是倾向于要把这种可能性变成现实性。工具在可能性上推开了多大的空间,我们就一定会倾向于把这个空间填满。 理解了这个逻辑,再回到今天的主题,为什么劳动工具效率越来越高,我们却越来越忙呢?这么看来,答案就非常简单了。和全球化,消费主义有关,但关系没那么大。因为劳动工具让我们工作的可能性越来越高,我们就一定会把这个可能性填满,我们当然就会一直工作,所以越来越忙。 《过劳时代》这本书的解读人,李南南老师还开了一个脑洞。他说,假如未来,你的工资不是按月计算,而是按秒计算。在你的面前,有一个计时器,你每多工作一秒,你的账上马上就会多一毛钱。结果会是什么?表面看起来,这对你只有好处没有坏处。首先,每天工作8小时,这就是一天2880块钱,不少吧?你收入提高了。更重要的是,你碎片时间的工作,比如,吃饭间歇、睡觉前给同事回个工作微信,也能计算报酬了,对你更公平了。好事吧?好工具。 但这是在你现在的时空边界下看问题。真实情况可能是,这个可能性的大门一旦打开,大多数人因为碎片时间也能挣钱,会工作到筋疲力尽才会停。如果不信,你现在到网吧里去看看那些打游戏挣积分通宵不睡的人,你就知道,如果真有那么一天,工作到筋疲力尽那就是我们的未来。 图片 1、微软总部 当你漫步在微软位于西雅图 Overlake 社区的庞大总部时,一定会觉得,那里熙熙攘攘的喧嚣就像大学校园一样。 微软在那里雇佣了超过50,000名员工。午餐时间,你会发现很多人在微软内部的许多咖啡馆和餐馆闲逛,在建筑物之间漫步,浏览商店,就像周末在一个小镇一样。 微软总部的中央大楼,里面有咖啡馆、银行、电信服务、快递服务、酒吧、餐厅和体育用品商店。较低楼层是提供全世界各种口味食物的免费食堂。 中央大楼室外有几个运动场,那里举办的员工足球和板球联赛非常受欢迎。 总部内部还有一片森林,里面有一套树屋会议室。 在微软较新的工作空间中,八到十二人的团队一起工作在大型吊舱中,附近有一些会议室、休息区、咖啡馆、游戏设施,甚至还有充满乐器的音乐室。 言论 1、 工会不允许波音公司解雇任何人,结果导致有大量不干活的员工。我保守估计,同事中有30%是反社会人士,他们会积极破坏其他人的工作;另外50%的人在那里愚蠢地整天瞎扯,阅读报纸或书籍;剩下的20%才是那些真正关心飞机乘客不会死亡的人。 -- 一个自称是波音员工的人,在网上爆料。 2、 我发现很多东西都过时了。其中一个就是签名,现在没有人要我的签名,大家都拿着手机,要求跟我一起自拍。 -- 泰勒·斯威夫特,美国红歌星 3、 年少时,我选择做一件事,只是因为我喜欢这件事。现在,只要一个爱好无法获利,我就会放弃它,转而开始尝试一个可能带来收入的新的爱好或目标。 -- 《每个爱好都是一次赚钱的尝试》 4、 任何情况下,几乎都不应该购买喷墨打印机。激光打印机已经非常便宜,而喷墨打印机的墨水非常贵,实际比香奈儿5号的香水还贵。一加仑墨水的价格,可以购买超过2,600加仑的汽油! -- 《没有理由购买喷墨打印机》 5、 我们现在可以期待,中国人加倍努力推出自己开发的智能手机操作系统,设计自己的芯片,开发自己的半导体技术,并实施自己的技术标准。这只会加速创建数字铁幕的过程,将世界分为两个截然不同的互斥技术领域。 -- 《技术冷战已经开始》,彭博社评论 回顾 去年的本周:《每周分享第 5 期》 订阅 这个专栏每周五发布,同步更新在我的个人网站、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年5月24日


每周分享第 56 期

这里记录过去一周,我看到的值得分享的东西,每周五发布。 欢迎投稿,或推荐你自己的项目,请前往 GitHub 的 ruanyf/weekly 提交 issue。 (题图:昆山森林公园,苏州,2018) 一篇新闻报道提到,美国就业行情最好的十种工作,八种是 STEM 岗位。 所谓 STEM,就是科学(Science)、技术(Technology)、工程(Engineering)、机械(Machine)的缩写。也就是说,就业最好的工作,80%是理工科岗位。这跟我的感觉一致,理工科的就业远远好于文科。 现在是信息社会,大量的工作都是技术岗,需要技术工人和工程师,而传统的办公室文秘和管理岗位,由于被软件替代,正在不断减少。这种趋势以后将会越来越明显。理工科学生往往有好几个 offer 可以挑选,文科学生想要一个 offer 都很难,很多人不得不选择考研和考公务员。 所以,中学生选择大学专业的时候,为了就业,建议尽量选择理工科,不要选择文史哲和理论经济学,否则毕业以后,找工作很困难。 除了就业难,文科学生的发展前景也不好。文科培养的其实不是技能,而是思想。但是国内的社会环境,根本不允许你有独立的思想,能做的只是诠释领导的政策。一个例证就是,我国现在培养出了各种各样的人才,但是似乎就是没有思想家。 新闻 1、火星模拟生存基地 甘肃省金昌市政府与中国航天员科研训练中心,合建了一个"火星1号基地",作为航天员火星模拟生存的实验基地,同时也是一个文旅项目,供游客体验火星生活。据介绍,金昌的地理条件与火星表面非常相似,山地和沙漠混合,气候干燥,全年风力强劲,昼夜温差巨大。 该基地共有总控舱、气闸舱、乘员舱、生物舱等9个舱体。生物舱种植小麦和蔬菜,为航天员提供食物来源;生保舱用于处理生活垃圾;乘员舱不仅有宽松舒适的床,还可以做饭、看书,空间宽敞;总控舱是"航天员"与"地球"联络的重要枢纽。 2、徒手移动25吨巨石 古代巨大的石头建筑,到底是怎么组装的?麻省理工学院的研究人员做了一个实验,他们制作了大约25吨重的巨型混凝土结构,仍然可以徒手移动。这些混凝土块的重心都是精心设计的,考虑到了稳定性和平衡性,并且具有斜面、圆角和枢轴点,由此可以被徒手推动、倾斜和旋转。 虽然这种石块仍然不足以解释,复活节岛的巨石人像是怎么放置的,但是这为未来的建筑提供了一种思路,有一天,你甚至可能像组装积木那样,组装巨型混凝土。 3、美国对离境旅客启用人脸识别 美国政府一直想知道,哪些人逾期滞留,成为非法移民。现在,他们终于找到了一个好的方法,美国国土安全部宣布,未来四年中,将对所有离境的旅客进行人脸识别。 旅客登机前会被拍照,跟入境时签证或护照上面的照片进行比对。一旦发现不匹配,就会人工进一步处理。那些逾期滞留的人,将受到法律处罚。目前,美国已经有15个机场在测试这套系统,发现了七千多个逾期滞留的旅客。 4、特斯拉出租汽车服务 特斯拉公司的老板马斯克公开说,"如果你现在不买特斯拉,而买其他车,就是经济上的发疯,好比你给自己买了一匹马。" 他所指的是,特斯拉公司即将推出出租车服务。车主买了特斯拉以后,可以在不用的时候,把车借给特斯拉公司,当作出租车运营。特斯拉公司会将收益分给车主,每年估计可以达到1万美元。马斯克还说,最快明年特斯拉的自动驾驶,就能做到无需人工干预,因此出租车服务也将是无人驾驶。 5、机器解雇工人 媒体揭露,美国亚马逊公司的仓库,有一个计算机系统跟踪仓库工人的工作效率。一旦发现有人没有达到绩效,该系统会发出命令,自动解雇那些工人,整个过程无需人工干预。系统会跟踪工人的休息时间,计算你一天中多少时间没有干活,这使得工人在休息时都感到非常紧张。 根据资料,亚马逊的巴尔的摩仓库,以生产率不达标的原因,一年内解雇了300多个工人。 6、躲过机器监控的图案 比利时鲁汶大学开发出一种二维图像,只要将其打印在衣服上面,就会令监控系统无法识别出这是一个人体。上图左侧是正常的识别,右侧佩戴这种图像以后,识别系统就失灵了,没有认出这是一个人。 它的原理是,通过图像产生足够的噪音,增加随机性,使得模型无法得出结论。 这种方法还可以用于汽车,躲过高速公路上的监控。但是,它对于人脸识别无效,只能躲过那些先判断人体、再识别人脸的系统。 7、切尔诺贝利实境游戏 两个乌克兰青年按照实景,建造了切尔诺贝利核电站废墟模型,包括住宅楼,酒店,音乐厅,游乐园和体育场等场景,然后开发了一个游戏《Isotopium:Chernobyl》。玩家可以通过互联网,控制一辆遥控小车,上面带有摄像头,在这个模型城市里面漫游,感觉跟在真实场景完全一样。 游戏的费用是每小时9美元,同时最多只能20人在线,玩家寻找隐藏在各个地点的能量球,来淘汰其他对手,获取游戏胜利。全球目前有62,615人注册参与游戏。 8、一句话新闻 日本由于人口不断萎缩,据统计,全国13.6%的住房已经废弃,成为荒宅。 SpaceX 公司得到美国政府的许可,可以发射4,425颗卫星,组成一个低轨道卫星网络,用于销售上网服务。 美国2019年4月的能源构成中,可再生能源(水力、风能、太阳能等)的发电量,历史第一次超过煤炭的发电量。 加拿大北极地区由于气温变暖,永久冻土带融化,许多地方已经出现了大型塌方,估计会变得越来越严重。 文章 1、如何画一幅栩栩如生的画(英文) 作者讲了七个让作品变得更真实的绘画技巧/技术。它们与软件开发有相似之处,可以借鉴,比如顶层设计、一开始不要过分关注细节等。(@BIT-zhaoyang 投稿) 2、统计图表撒谎的5个方法(英文) 本文介绍五种统计图表技巧,用来隐藏或突出某些统计信息。比如,上面左右两个图的深色部分都是30%,但是右图比左图看上去大得多。 3、PaaS 和 Serverless 的差异(英文) 本文讨论 PaaS 和 Serverless 两种架构有何不同。 4、美国2020总统大选参选人的网站设计(英文) 本文介绍评论了美国2020年总统大选的参选人的网站设计,目前一共有几十个参选人。 5、为什么面向对象编程糟透了?(英文) 这是 Erlang 语言的发明人 Joe Armstrong 的一篇短文,解释他为什么不喜欢面向对象编程。不过他也承认,面向对象编程的流行是有道理的。 6、Rust 语言的编译时内存安全(英文) Rust 语言不会发生内存错误,都能在编译时发现。本文通过几个简单的例子,解释为什么这项功能很有用。 7、软件开发趋势 2019 调查报告(英文) 这是一份对全世界软件开发者的调查报告,可以了解商业软件开发的趋势,比如软件公司的主要编程语言是什么,使用什么项目管理工具,是否使用外包等。 8、Go 语言为什么快的5个原因(英文) 本文从计算机底层分析 Go 语言运行速度快的五个原因。(@NeoTse 投稿) 9、AWS 上搭建免费的 Wireguard 服务(英文) AWS 提供12个月的免费帐号,可以用来搭建 Wireguard 服务,每月 15GB 流量。 10、放弃 Sass(英文) Sass 是最流行的 CSS 预处理器。作者提出,随着 Grid 布局和 CSS 变量的出现,Sass 已经不是那么有用了,可以考虑放弃了。 软件 1、Precise UI 一个轻量级 React 组件库,提供70多个组件,特点是比较简洁。 2、coc.nvim Vim 的一个插件,提供类似的 VSCode 的自动补全功能(intellisense)。 3、Lode Runner 游戏《挖金子》(Lode Runner)的 Web 重制版,制作非常精良,值得玩一下。 4、tinytetris 命令行游戏"俄罗斯方块",使用 C++ 编写,代码较为简单,可供学习。 5、MikuTools 该网站收集一系列轻量级工具,比如各大视频网站的视频在线下载工具。(@wikiios 投稿) 6、hanzi-writer 一个演示汉字笔画顺序的 JS 库。 7、PeerJS 一个简化 WebRTC 的点对点通信的 JS 库。 8、markdown-nice Markdown 文档进行微信公号排版的工具,支持自定义样式。(@zhning12 投稿) 9、gacp 定制 Git 的提交信息的命令行工具,支持 Emoji。(@vivaxy 投稿) 10、react-component-echarts Echarts 的 React 封装,各种配置项可以写成子组件的形式。(@dawiwt 投稿) 11、gogo 勾勾是一个基于谷歌的开源搜索工具。(@zenuo 投稿) 资源 1、围棋百科 一个英文的围棋维基网站。 2、天线知识 这是无线电天线的百科网站。 3、开源语音数据库项目 Mozilla 基金会为了开发语音识别技术, 做了一个开源语音数据库项目,邀请全世界用户为这个数据库朗读句子,或者听他人的录音,判断朗读是否准确。(@user12138 投稿) 4、镜子中的谷歌街景照相机 该网站收集谷歌街景出现的镜子里面的拍摄机器。 5、命令行的艺术(中文) 一篇命令行的详细介绍,各种任务可以使用什么命令。(@sdir 投稿) 6、kindle电子书分享网 个人业余时间搞得一个小网站,以解决自己找电子书的烦恼,后端基于rails,可以参考技术方案。(@sun1752709589 投稿) 文摘 1、科幻文学本质是幼稚的 以下摘自刘慈欣2001年银河奖的获奖演说。 科幻文学从本质上说是幼稚的,它所要表现的,是童年时代的人类,面对广漠深邃的宇宙所产生的好奇和恐惧,以及探索的冲动。在这样的一个宇宙面前,人类的科学和哲学都很幼稚,科幻是表现这两者的唯一一个文学形式,浸透着稚气也就不奇怪了。未来人类的科学发展到极致,宇宙的一切毫发毕现之日,也就是科幻消亡之时。 目前在国内科幻界,面对中国科幻的幼稚,大家都羡幕美国科幻的成人读者群,并把这看做是科幻文学成熟的标志之一。但要知道,成人之后就是老年,老年之后就是死亡。当今美国科幻的繁荣,很大程度上是影视的繁荣,这些科幻影视仍在延续黄金时代的风格。而当今美国的科幻文学已露出了深深的暮气,作品用复杂的技巧表现晦涩的隐喻,全无黄金时代的朝气与活力,近年来许多顶峰之作已透出了死亡的气息。现在,美国25岁以下的人已基本上不读科幻小说了。我实在看不出这种局面有什么可羡幕的。 我们最应该羡幕的是自己,现在,国内的科幻读者都是八九点钟的太阳,甚至是六七点钟的太阳,中国科幻面对的是一个充满青春与希望的市场,这正是我们这些科幻人信心和力量的源泉。相比之下,幼稚真算不了什么。 2、如何收入1亿美元? 如果你要创造一家收入1亿美元的互联网公司,下面五种收入模式,你觉得哪一种最容易。 方法一、设法做到1000万活跃用户,然后通过出售广告,每人每年变现10美元。不过,千万级别的活跃用户,意味着用户总量要达到1亿左右,市场上能到一亿用户的产品并不多。 方法二、100万付费用户,每人每年付费100美元。这意味着,至少需要1000万人使用你的应用。 方法三,10万小企业,每家每年付费1000美元。这意味着你的 SaaS 服务定价应该是每月50-100美元。你需要大约200万~50万次试用,具体数量取决于你的转化率。 方法四、1万家企业,每家每年付费1万美元。这意味着你可能需要找到10万个客户,让他们试用你的产品。但是,每家一万美元的价格,又不足以向他们做现场销售。你实际上是在互联网上销售价格极高的 SaaS。 方法五、1000家大企业,每家每年付费10万美元。这可能相对容易一些,因为对于大公司来说,10万美元要比一位高级员工的工资更便宜。但是,难点在于你需要花费大量时间和成本,说服他们相信,你真的解决了他们的难题。 图片 1、1969~1970年的贝尔实验室 贝尔实验室在计算机历史上有着重要地位,Unix 系统和 C 语言就是在那里发明的。最近,一位工作人员将他在近50年前拍摄的几十张照片,放到了互联网上。上图是磁带架,当时没有硬盘,数据都是储存在这种磁带上面。下图是当时的计算机。 2、宇宙的形状 自从科学家观测到宇宙正在膨胀,就推断宇宙的形状像一个不断膨胀的气球。随着气球越变越大,气球内部任意两点的距离都在不断增大。 3、百事可乐的新 Logo 2009年,百事可乐公司重新设计了 Logo,左边是原来的 Logo,右边是新 Logo,看上去差异不大,只是改了一下旋转角度。但是,百事可乐为了这个新 logo,支付了100万美元的设计费,据说这个设计象征着未来与革新(下图)。 言论 1、 友谊悖论指的是,你总是觉得,自己的朋友比自己有更多的朋友。 -- 友谊悖论 2、 年轻时,我没受过多少系统教育,但什么书都读。读得最多的是诗,包括烂诗,我坚信烂诗早晚会让我邂逅好诗。 -- [哥伦比亚] 加西亚·马尔克斯,诺贝尔文学奖得主 3、 我从法律系退学,追求成为一个作家。一些老师千方百计地帮我,劝我就算不喜欢,好歹把大学念完。家里每个人都缺钱,指望我毕业当律师,为家里挣钱。我却觉得,没希望比没钱更令我沮丧。 -- [哥伦比亚] 加西亚·马尔克斯,诺贝尔文学奖得主 4、 据说,只要你在 Facebook 上面按过300个"赞",它就会比你自己更了解你。 -- 《电脑会拥有一切吗?》 5、 我是 WebEx 的首席工程师,Webex 被思科收购后,我又在那里待了14年。与客户交流时,我意识到 Webex 的架构有一些深层缺陷,影响可靠性和视频质量,思科需要从头开始重建 Webex。我告诉思科领导,但他们没有听。 我在2011年辞职,独自开发新的视频会议系统。幸运的是,Webex 最有才华和最有远见的工程师很快就加入了我,我们在接下来的两年里一起构建了Zoom 1.0。 -- 袁征,Zoom 创始人 回顾 去年的本周:《每周分享第 4 期》 订阅 这个专栏每周五发布,同步更新在我的个人网站、微信公众号和语雀。 微信搜索"阮一峰的网络日志"或者扫描二维码,即可订阅。 (完) 文档信息 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证) 发表日期: 2019年5月17日