第8期 — 2019-06-23

在浏览器中阅读

周e信

扫描二维码关注微信公众号

Node.js

Vincent Mühler

管理 docker 里的 nodejs 内存🔗

--memory 与 --max-old-space-size配合

  • docker docker run --memory 1000000b --interactive --tty <imagename> bash 决定 docker contaner 最多可用多少内存

  • docker 内部脚本 node --max_old_space_size=1024 test-fatal-error.js 告诉 nodejs 可用多少内存

  • --max_old_space_size 以 megabyte(兆字节) 做单位

  • process.memoryUsage()以 bytes(字节)做单位

  • 理论上 32 位 nodejs 默认不超过 700MB;64 位不超过 1400MB。

  • 实际上往往还是决定于--memory 赋值的 container 内存大小

Ravali Yatham

websocket-as-promised-promise 方式的 websocket🔗
import WebSocketAsPromised from 'websocket-as-promised';

const wsp = new WebSocketAsPromised('ws://example.com');
await wsp.open();
wsp.send('message');
await wsp.close();
  • 支持浏览器和 nodejs
  • 支持第三方 websocket 库

Vitaliy Potapov

Franck Abgrall

npm配合github保护npm token🔗

当包含npm token的代码提交到github公开代码仓库时,会触发 GitHub’s token scanning partnership program,npm撤销被公开的token的有效性。

npm 摘译 Ka

npm解雇风波导致罢工依然处于僵局🔗

硅谷也少不了这空降兵问题

Audrey Eschright 摘译 Ka

V8 发布 v7.6🔗
  • JSON.parse获得差不多两倍性能提升
  • Frozen/sealed 数组性能提升
  • 支持Promise.allSettled

Adam Klein 摘译 Ka

Mongoose 5.6.0 新特性-不可修改属性🔗
const Model = mongoose.model(
  'Test',
  new Schema(
    {
      name: String,
      createdAt: {
        type: Date,
        // 第一次赋值后将不可修改
        immutable: true
      }
    },
    { timestamps: true }
  )
);

Valeri Karpov

Alioth 基准测试-cpp>java>nodejs>ruby>python3 🔗
  • c++ 第一 比 java 快
  • java 比 nodejs 快一点,两者比较接近
  • nodejs 比 ruby 快很多
  • ruby 又比 python3 快

The Computer Language Benchmarks Game 摘译 Ka

前端

Fadi Khadra

Yuan Chuan

微前端?react-vue一起用🔗

微服务还不够,微前端也出现了,去年 2018 就有此概念提出

如果你想,也可以 react,vue 一起用。

使用Single SPA代码示例

为什么要这么做?也许是由于整合多个团队的已有代码。

用户会用这样的“百衲衣”界面吗?

Nader Dabit

TOAST UI

Daniel Tonon

Kevin Verdieck

react css 样式组件 styled-components🔗
import React from 'react';

import styled from 'styled-components';

// 创建一个Title组件
const Title = styled.h1`
  font-size: 1.5em;
  text-align: center;
  color: palevioletred;
`;

// 创建一个Wrapper组件
const Wrapper = styled.section`
  padding: 4em;
  background: papayawhip;
`;

// 使用
<Wrapper>
  <Title>Hello World, this is my first styled component!</Title>
</Wrapper>;

Evan Jacobs

Ka

React 的未来:与 Suspense 共舞🔗

React.lazy 函数能让你像渲染常规组件一样处理动态引入(的组件)。

我也很高兴能看到越来越多的库开始支持函数编程。这种模式肯定会彻底改变我们前端的编程方式。我也在关注 React 的并发改进——相关内容可查看官方文档。React-cache 和 Suspense 就是属于并发 react 的功能。

Lusan Das 译者 王强

Python

Deepfake 再升级!一张照片 + 音频“复活”爱因斯坦🔗

类似的研究层出不穷,让人们担心它们可能被用于误导和宣传,这个问题甚至已经困扰到了一些国家的立法者。尽管有无数种方法整明技术是无害的,但它确实已经造成了真正的伤害,尤其是对女性而言。

而合成技术产生的“合成数据”也有着不小的商业价值。合成数据可以减少对生成和捕获数据的依赖,可以做到比手工标记数据更便宜、更快速,还可以最大限度减少公司对第三方数据源的需求等等。

目前尚不知道本文提到的合成技术研究团队未来会将这项技术用在哪里,这项技术暂时也还没有开源。

陈思

Go

我不喜欢 Go 语言的十个理由🔗
  1. Go 语言使用首字母大小写来决定标识符的可见性
  2. 在 Go 语言里,结构体不会显式声明它实现了哪些接口,而是通过匹配方法签名来辨别
  3. Go 语言中没有异常,而是通过多个返回值来返回错误
  4. Go 语言里有很多“神奇”的行为
  5. 因为 Go 语言的首字母大写约定,很容易出现很多相同的标识符
  6. 要进行 Go 代码自动生成并不容易
  7. Go 语言没有三元运算符(?:)
  8. sort 接口很笨
  9. 缺少泛型
  10. 这是个小问题,但足以说明 Go 语言设计者没有完全站在程序员的角度考虑问题

有的网友对作者的观点表示认同,并表示虽然会将 Go 语言作为一种备用的编程语言,但如无必要不会再去用它。有的网友则觉得作者提出的大部分缺点都不是问题,并希望 Go 语言保持初心,不要随意修改。

Lawrence 译者 阿拉丁

其他

广告

硅谷 it 薪水全透明了🔗

硅谷公司薪水和级别 谷歌和 Facebook 是如何给工程师定职级和薪水的?

  • 起薪 15 万美元
  • 职级系统的一个不好地方在于它会形成一种“要么晋升,要么出局”的文化,而且会让大公司的多元化问题进一步恶化。
  • “这对公平性和多元化产生一定的影响。如果一些人因为具备较高的谈判技巧而获得较高的薪水,那么总有一些人会因为谈判能力不突出而拿不到满意的薪酬”。
  • “大部分工程师分布在 L3 和 L5 之间。在大部分公司里,员工等级就是职业等级,他们的余生可能就只能处在当前的等级上”。
  • “技术人对管理不太感兴趣,他们不想成为管理者,只想继续从事技术工作”。

Kif Leswing 译者 无明

国内首例云服务器侵权案二审改判,阿里云胜诉🔗

这一事件最初可以追溯到四年前。2015 年 8 月,乐动卓越公司接到玩家投诉称,网址为 www.callmt.com 的网站提供《我叫 MT 畅爽版》的下载及游戏充值服务。乐动卓越公司经比对发现,该款游戏涉嫌非法复制其游戏的数据包,通过技术手段发现,该款游戏内容存储于阿里云公司的服务器。

之后,乐动卓越公司两次致函阿里云公司,要求其删除涉嫌侵权内容,并提供服务器租用人的具体信息。乐动卓越公司认为,阿里云公司的行为涉嫌构成共同侵权,因而诉阿里云公司侵犯信息网络传播权。遂于 2015 年 11 月向北京市石景山区人民法院起诉,请求判令阿里云断开链接、停止服务,向其提供数据库信息,并赔偿经济损失。一审认定阿里云应承担侵权责任,赔偿 26 万余元。

当时,阿里云公司表示:“作为云服务器提供商,既没有任何权利去查看用户的信息内容,也没有任何理由去调用用户的数据。只有收到司法部门的正式裁决和通知,阿里云公司才会依照法律要求配合司法部门协助调查。”

至此,历时四年,北京知识产权法院最终确定阿里云公司不承担任何法律责任。

赵钰莹

Facebook 宣布数字货币 Libra,预计在 2020 年推出🔗
  • 白皮书的第一句话是:“Libra 的使命是建立一套简单的、无国界的货币和为数十亿人服务的金融基础设施”。
  • Libra 采用的协议和目标:通过去中心化的、可编程的数据库来支持小波动的加密货币(稳定币)。
  • Libra 核心代码托管在 GitHub,采用 Apache-2.0 开源许可证。

Libra 系统由三个部分组成:(摘自 infoq Facebook 发布加密货币白皮书:为全球数十亿人提供一种新的“互联网货币”)

  1. 它建立在一个安全、可扩展和可靠的区块链(The Libra Blockchain)之上;
  2. 由旨在赋予其内在价值的资产储备(The Libra Currency and Reserve)作为后盾;
  3. 由独立的 Libra 协会(The Libra Association)管理,负责发展生态系统。

局长@OSCHINA

AWS花费🔗
CPU部分 月消费中位数
1 modern vCPU (4 AWS ECUs) 58 $
With 1 year convertible reservation (all up front) 一年预付费 43 $
With 3 years convertible reservation (all up front) 三年预付费 30 $
With spot pricing (estimated) 抢占实例 30 $
存储部分 月消费中位数
1 GB RAM 10 $
1 GB RAM 1 year convertible reservation (all up front) 1GB一年预付费 8 $
1 GB RAM 3 years convertible reservation (all up front) 1GB三年预付费 5 $
SSD 0.11 $
Hard Disk 硬盘 0.05 $
S3 0.02 $
S3 Glacier 0.004 $
Type of data transfer Cost of transferring 1GB
EU/US region to any other region 欧美区到其他区 0.02 $/GB
APAC region to any other region 环太平洋区到其他区 0.09 $/GB
EU/US region to Internet 欧美区到互联网 0.05 $/GB
APAC region to Internet 环太平洋区到互联网 0.08 $/GB
Between two AZs in the same region 同区不同AWS Zone之间 0.01 $/GB
Inside the same AZ 相同AWS Zone Free

AWS并不便宜,但是你花的是免维护硬件服务。

David Hatanian 摘译 Ka

扫描二维码关注微信公众号
本期阅读量