每周分享第 5 期

本周,服务器遭受攻击,网站下线 50 多个小时。我一度以为,《每周分享》不能按时发了。现在,攻击停了,但你不知道,什么时候它还会回来。这件事情的细节,我后面会单独写文章,这里只说说我的一个感受。

消息传出以后,许多素不相识的朋友通过各种渠道,询问我是否需要帮助,愿意提供个人或公司的资源,帮我渡过难关。阿里云和腾讯云都向我赠送了高防 IP。我全部牢记心中,这里不再一一感谢了。就算攻击最大的时候,我都没有担心过,因为我知道,背后有那么多人支持,你打不垮我的,只会激发我的斗志。

我最大的体会就是,在互联网上做一个好人,真是一件最划算的事情。你平时无非就是网上写写教程,邮件回答一些问题,虽然也是尽力去帮助别人,实际上并没有什么了不起的付出。但是,互联网的传播作用使得一点点微不足道的善行,都会被许多人看到和记住。等到你有困难的时候,人们就会在网上出现,从四面八方走过来帮你,默默用眼神支持你。

相反,如果你做一个坏人,躲在黑暗的角落放冷枪,也许能够达到那些自私的目的,攫取各种利益,但是你从此不敢相信别人,紧张兮兮活着,因为别人可能也会用同样的手段对付你。等到你落难了,不要说有人帮,他们庆祝和复仇都来不及呢。我觉得,这种人生可耻又可悲。

新闻

2、成立仅 8 个月的币安盈利超过百年德意志银行

每周分享第 5 期

根据币安官方透露,它的上一季度利润达到 2 亿美元,已经超过了德国最大的银行 ---- 德意志银行,后者在 2018 年第一季度的利润为 1.46 亿美元。

德意志银行拥有 148 年的经营历史,旗下员工超过 10 万名。而 8 个多月前,币安还不存在。币安,英文名 Binance,是由 CEO 赵长鹏(CZ)创建的加密货币交易平台。现在它已经是全球最大的加密货币交易所。

3、如果 CA 撤销了你的 HTTPS 证书

每周分享第 5 期

加密网站都需要 HTTPS 证书,这些证书通常是由 CA(证书当局)颁发。最近,一家 CA 撤销了 stripe.ian.sh 这个合法网站的证书,理由仅仅是浏览器显示证书来自 Stripe Inc,与 stripe.com 太过相似,用户可能会混淆。

请仔细看上图,你会不会以为自己正在访问 Stripe.com 官网,但是其实是另一个网站。作者提出了一个问题,CA 可以任意撤销一个网站的证书,他们的权力是否过大?因为一旦失去了加密证书,商业网站就等同于下线了。最近开源论文网站 Sci-Hub 由于版权争议,它的 HTTPS 证书就被 CA 吊销 了。

4、机器宠物狗 视频

每周分享第 5 期

索尼公司推出了新一代机器宠物狗 aibo(爱宝),根据产品主页的介绍,它跟人的互动达到了前所未有的程度,已经很接近真实的狗。

人跟机器人做伴侣的时代真的不远了。

5、微软支持 Unix 换行符

文本文件的换行符,一直不统一。Unix 平台是
,Windows 平台是
,所以 Windows 打开其他平台的文本文件,都显示为一行。

那么多年过去了,微软终于在今年宣布下一次 Windows 10 更新时,Notepad 将支持 Unix 换行符(LF)、Mac 换行符(CR)。

6、Gmail 的智能回邮功能

每周分享第 5 期

谷歌 IO 大会宣布,Gmail 新增智能回邮功能。也就是你写几个单词,后面的句子它帮你准备好。上图的那封邮件,每句话都是你写两个单词,后面机器帮你补全。

以后你回复邮件,只写核心信息就行了,人工智能自动加上一大堆客套话。

7、Google One 存储

每周分享第 5 期

谷歌将网络储存升级成 Google One 服务,100GB 是每个月 2 美元,200 GB 是 3 美元,2TB 是 10 美元。这件事情的直接后果就是,Dropbox 大概要完蛋了,它是 1TB 每个月 10 美元。不过,这个价格还是不如百度网盘,它是免费用户就有 2TB。

JavaScript 高级前端开发课程

本期《每周分享》很高兴得到了 51CTO 学院 的赞助。下面介绍一下,他们最近推出了两门新课程,都由金牌讲师陈学辉主讲。

每周分享第 5 期

1、《JavaScript 深度揭秘之高级前端开发》:适合已在职、有基础的技术人员提升技术,挑战更高的薪资。该课程深入探讨函数、事件循环机制、异步编程、面向对象、浏览器渲染、数据交互等的内部原理和高级应用,使用 ES6/ES7 语法讲解,涵盖日常开发及面试所需的技能。并且结合当下技术热点实时更新课程。

2、《Web 前端高级开发工程师》:主要针对纯小白的学员,比如在校学生、在职想转行的人士等等,从基础讲起,并且包含了《JavaScript 深度揭秘之高级前端开发》课程的部分内容。

每周分享第 5 期

《Web 前端高级开发工程师》课程原价是 8980 元,《JavaScript 深度揭秘之高级前端开发》原价 7980 元,现在点击 这个链接 购买,可以 享受半价!报名之后马上开始学习,无需等待开班,并且采用授课老师、助教老师、班主任、就业指导老师四对一的服务模式,保证每一位学员都能真正掌握学习内容。

感兴趣的朋友,可以 点击这里 了解更多。

教程

1、[文章]最简单的马尔可夫链图解(英文)

每周分享第 5 期

上面是最简单的马尔可夫链图解。系统包括 A 和 B 两个状态。一共有四种转化路径:A 到 A、A 到 B、B 到 A,B 到 B。每种路径的可能性都是 50%,就得到了随机的运动轨迹。

一个通俗的实例是,每天有 " 晴天 " 和 " 下雨 " 两种天气,天气变化的概率是 50%,那么马尔可夫链就可以生成一个未来一周天气的模型。

2、[文章] 决策树模型入门(英文)

每周分享第 5 期

决策树模型(Decision Tree)是最简单的机器学习模型,也最容易理解。当决策受到多个因素影响时,这个模型相当有用。

3、[文章] 为什么 go 结构是有害的?(英文)

每周分享第 5 期

多线程编程之中,有一种 go 结构,就是主线程之外分出一个线程,这个线程完成任务以后,再回到主线程。作者认为,这种结构是有害的。他的最精彩观点就是:如果允许使用 go 结构,那么所有的语言功能都可以用这种结构实现,程序很快就会乱做一团。

4、[代码] Elm + Rust 开发桌面应用(英文)

每周分享第 5 期

目前,使用 Web 技术开发桌面应用,主要通过 Electron。它的缺点是,有时你只是想要在桌面上展示一个网页,不需要跟本地文件系统交互,但是不得不把整个 Chromium 浏览器和 V8 引擎包含在这个应用里面,导致不管逻辑是否复杂,任何一个 Electron 应用都至少有几十 MB 的大小。

这个项目展示了另一种开发桌面应用的可能。它的原理是,任何操作系统都有自己的 WebView,也就是说可以在应用程序里面调用 WebView 展示网页。那么可以使用 Rust 语言打包 WebView,而 JS 脚本部分交给 Elm 语言生成。由于 WebView 是系统提供的,所以打包出来非常小,一般只有几百 KB,资源占用也很少。

5、[文章] 高可用的部署技巧(英文)

Netflix 公司的工程师介绍,他们如何部署代码,提高服务的可用性,比如使用红黑部署、设置部署窗口等等。

6、[教程] 哈佛大学《CS109:数据科学基础》的课程资料(英文)

1xx 编号的课程都是本科生的基础课程,我看了一下,讲的是 Python、基础的统计学知识和数学模型,提供免费的课程视频和 PPT 下载。

7、[笔记]《技术面试需要掌握的基础知识整理》(中文)

技术面试需要掌握的基础知识整理。

8、[资料] 互联网公司技术架构(中文)

作者收集的国内各大互联网公司技术架构的资料

工具

1、sonarwhal

每周分享第 5 期

微软推出的开源网页 lint 工具(源码仓库),可以在线扫描网页,提供无障碍、互通性、性能、PWA、安全五个方面的扫描结果,给出改进点。

2、IPBlade

每周分享第 5 期

有的网络服务限制 IP 地址,比如只有中国的 IP 地址才能使用。这个 Chrome 插件点击一下就可以改变浏览器的 IP 地址,从而绕过这些限制。免费版只能改成美国的 IP 地址。

3、.gitignore 文件的命令行生成工具

每周分享第 5 期

.gitignore 文件设置了哪些文件可以不用进入 Git 版本管理。这个命令行工具可以根据项目类型,自动生成 .gitignore 文件。

4、jGoBoard

每周分享第 5 期

我在寻找围棋软件的时候,发现了这个生成互动式围棋棋盘的 JavaScript 库,觉得功能和样式都满足需要。另外,AlphaGo 官网也提供一个 棋盘生成器,基于 WGO.js

5、love2.io

一个收集开源书籍的网站。

6、Pyre

Facebook 推出 Python 的静态类型检查工具,有点像 Flowtype 对于 JS 代码的作用。

7、Google CTF 的试题

这个是试题库,收集了 Google 主办的黑客安全大赛 CTF 的题目。

文摘

1、冯象:AI 将终结资本主义

每周分享第 5 期

冯象是清华大学法学院教授。最近,《华尔街日报》发表了他在北京的一次演讲稿(英文),他认为 AI(人工智能)最终将导致目前的经济模式崩溃。

AI 将无情地导致技术亿万富翁的超级富豪寡头垄断,这些亿万富翁收获了机器人创造的财富,这些财富取代了人类的劳动力,从而导致大量的失业。

大规模失业的必然性和对全民福利的需求,将推动人工智能国有化的想法。

人工智能将会导致市场经济的终结。随着机器人的增多,工业发展只会导致更多的失业。除了国家的介入,没有什么好的选择。

2、毕业 20 年依然从事本行业的比例

1998 年,美国的人口普查局做了一次职业调查。

大学毕业后 10 年,57%的计算机主业的学生还在以程序员的身份工作;毕业后 15 年,这个比例下降到 34%;毕业 20 年后,也就是只有 40 岁出头的年龄,下降到 19%。相比之下,土木工程专业的数字是 61%、52%和 52%。

软件行业罕见 40 岁以上的程序员,看来全世界都是如此。这还是 20 年前的调查,如今的比例应该更低了。

3、自下而上的编程,by Paul Graham

传统的方法是,一个大型的程序必须分成几块,程序越大,它就越需要分割。你如何划分一个程序?传统的方法称为自上而下的设计:程序的目的是做这七件事,那么我把它分成七个主要的子程序,第一个子程序必须做这四件事,所以它又有四个子程序等等。这个过程一直持续到整个程序具有合适的粒度级别 - 每个部分都足够大,可以做一些实质性的事情,但又足够小,可以被理解为一个单元。

有经验的 Lisp 程序员对他们的程序进行不同的划分。除了自上而下的设计之外,他们遵循可称为自下而上设计的原则 - 改变语言以适应问题。在 Lisp 中,你不仅要将程序写入语言,还要将语言建立在程序上。当你正在编写一个程序时,你可能会想 " 我希望 Lisp 有这样一个操作符。" 所以你就去写了。

当你自下而上工作时,你通常会得到一个不同的程序。你得到的不是一个单一的,整体的程序,而是一个更大的语言、更多的抽象运算符,以及一个更小的程序。

4、为什么中文如此难学?

中文不但对我们英语人士来说很难,它在绝对意义上也是难的。这意味着对于中国人来说,中文也很难。如果你不信,随便问个中国人。绝大多数中国人都会高兴地承认他们的语言很难,可能是地球上最难的。(实际上很多人以此为傲,就好象实际上有些纽约人以居住在美国最不宜居的城市为傲一样。)

我有一次和北京大学中文系的三个博士生吃午饭,他们三个都是中国人(一个来自香港)。我那天正好感冒,打算给一个朋友写个纸条取消我们一个约会。我发现自己想不起来怎么写 " 喷嚏 " 中的 " 嚏 " 了。于是我问那三位该怎么写。结果吓我一跳,他们仨都尴尬而难为情地耸耸肩。谁都不能正确地写这个字儿。各位同学!北京大学常常被认为是中国的哈佛啊。你能想象三个哈佛大学英文系的博士生不会写 "sneeze"(喷嚏)?然而这种情况在中国绝不少见。

5、天空中有多少颗星星?

每周分享第 5 期

肉眼可见的恒星亮度等级,最低为 +6.5。符合这个标准,地球上可见的星星一共有 9,096 颗。由于在任何时刻只能看到一半的天空,我们必须将这个数字除以二得到 4,548 颗星星(视季节而定),那是来自你能想象到的最黑暗的天空。

大城市的郊区,只能看到亮度为 + 4 的星星,那只剩下 900 颗,任一时刻你还只能看到其中的一半。如果我们将城市市区的亮度等级设为 +2(与北斗星亮度相似),那么全球只剩下 70 颗星,或者说从芝加哥市中心或波士顿可以看到 35 颗星。

6、写一本 O'Reilly 书籍是什么体验?

每周分享第 5 期

作者回顾了他为 O'Reilly 写书的整个历程。看过美国的技术书籍作者,收入也不是想象的那么高。

这本书原计划 250 页,定价 59.99 美元。完成时,它只有 160 页,定价 39.99 美元。由于我们两个作者合写了这本书,我们每个人可以拿到每本书收入的 5%,电子书是 12.5%(个别作者可以拿到 10%和 25%)。这相当于我们每个人从实体书得到 0.99 美元,从电子书得到 0.46 美元。

从 2017 年 12 月到 2018 年 3 月,这本书售出了 1337 份。截止 2018 年 4 月份,我已经赚取了 11,554.15 美元。

本周金句

1、

非洲的人口 = 美洲 + 澳洲 = 欧洲 + 中东 = 亚洲 / 4(@MaxCRoser

2、

程序的功能单位不宜过大,太大的函数容易掩盖错误,就像一个大城市隐藏着逃犯一样。这样的软件很难阅读,很难测试,也很难调试。(《自下而上的编程》,by Paul Graham)

3、

记者问了 100 个 90 后," 你们为什么不愿意打电话呢?" 有人表示,只有陌生人才打电话。最陌生的人最常打电话:快递、外卖、骗子、你老板。(新京报

4、

Facebook 公司推出 Pyre,用来检查 Python 程序的静态类型错误,下面是一个网友的 评论

十多年前,Java 的繁琐让很多人仇恨类型系统,他们改用 Python、Ruby 等动态类型语言,这使我们能够快速而松散地完成工作。经过大约十年的热血编程,我们最终发现,动态语言编写的巨大单体项目是非常脆弱的。

评论(没有评论)