第2期 — 2019-05-12

在浏览器中阅读

周e信

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

Node.js

使用Comlink简化WebWorker调用🔗

使用ES6 Proxies

使用Comlink.expose(value, endpoint?)暴露模块。

使用Comlink.wrap(endpoint)获得其他线程暴露的模块的代理。

GoogleChromeLabs

lowjs-用于嵌入式设备的nodejs环境🔗

lowjs是用于嵌入式设备,单片机的 Node.js 环境,适用于便宜,低耗能的使用场景。

目前 70%的 Nodejs 接口已经实现,另外 30%仍在实现中。

对其他npm第三方模块的支持需要自己验证。

Ka

基于mongodb的轻量级计划任务框架mongodb-cron🔗

将配置存储到 collection 里,使用 mongo 原子命令(atomic commands)保证任务安全性,支持集群,使用简单。

import { MongoCron } from 'mongodb-cron';

const collection = db.collection('jobs');
const cron = new MongoCron({
  collection, // 任意集合以存储计划任务
  onDocument: async doc => console.log(doc), // 当任务执行时触发
  onError: async err => //当错误发生时触发triggered on error
});

cron.start(); // 开始执行
const job = await collection.insert({
  ...
  interval: '* * * * * *', //定义一个每秒执行的任务
});

Kristijan Sedlak

前端

Linux上运行Javascript虚拟的win95🔗

v86虚拟化 Windows 98 之后,又有人使用Electron和 v86 虚拟化了 Windows 95。可在 Linux, Mac, Windows 上运行。

好了,赶快去安装一个沙丘魔堡 😄!

Ka

微软在Build开发者大会上正式公布了React Native for Windows🔗

React Native for Windows 开发的是原声的 Windows 应用。

直接允许开发者使用 React / web 技能直接编写 Windows 平台 UWP 应用,且是 Windows 10 支持的所有设备(包括 PC、平板、二合一、Xbox、混合现实设备等)构建应用程序,从而提升用户体验 (UX)。当然,喜欢 C#和 XAML 的开发人员可以继续使用 Xamarin 和 Xamarin.Forms 来实现类似的高性能需求。

该项目此前是使用 C# 实现的,然而 React Native 的持续发展方向涉及 C++ 与 JS 之间更密切的交互,这很难通过单独的 C# 实现来实现。

所以当前微软正在使用 C++ 重写 React Native for Windows,以获得更好的性能,同时更好地与暴露出来的 C++ React Native 核心保持一致。微软打算提供一个具有最小破坏性更改的兼容层,该层将支持使用 C# 编写的现有应用、view 管理器和原生模块。

参见微软即将完成将 office365 用 react-native 方式重写

此项目目前文档尚不太详细。

Ka

Jorge Moreno

535种方法刷新页面🔗

好吧实际上原理重复的很多,作者也是闲的可以 🤷‍♂️

location = location;
location = location.href;
location = window.location;
location = self.location;
location = window.location.href;

Stoyan Stefanov

数据库

微软旗下Citus Data发布postgres自动故障转移插件pg_auto_failover🔗

pgautofailover 包含以下部分:

  • PostgreSQL 扩展 pgautofailover
  • PostgreSQL 运行的 pgautofailover 监视器(monitor)服务
  • pgautofailover 守护进程操作 PostgreSQL 示例

支持 Postgres 10 及以后版本

Lukas Fittl

微软推出SQL serverless预览版🔗
  • 计费单位为秒。
  • 可自动扩容。
  • 从 pause 状态到 resume 状态需要最多 1 分钟。

如果状态为 pause,则下一次 login 会导致 resume,但是本次 login 会返回 error 显示连接不可用,等到 resume 成功,需要再次 login 才能创建连接。

Microsoft

Mongo公开官方brew tap🔗

homebrew是 mac 上的开源包管理工具,为众多 mac 开发者喜爱。 brew tap 相当于是第三方的仓库。 安装运行 mongo 的 brew style: brew tap mongodb/brew 添加 mongo tap
brew install mongodb-community 安装 mongo 免费社区版
brew install mongodb-community-shell 安装 mongo 命令行工具
brew services start mongodb-community 启动
brew services stop mongodb-community 停止
brew install mongodb-community@3.6 安装指定版本
brew upgrade mongodb-community 更新

Dj Walker-Morgan

sqljs更新到Sqlite 3.28.0🔗

SQL.js 是一个 SQLite 的 JavaScript Webassembly 移植版本,使用 Emscripten 对 SQLite 的 C 代码进行编译。

数据库保存于内存中,支持以文件或者 buffer 导入 sqlite 并导出到 javascrpt 数组。

在线Demo

Alon Zakai

Python

PyTorch 杠上 TensorFlow:谁才是增长最快的深度学习框架?🔗

目前来看,TensorFlow 和 PyTorch 都在快速增长, 两者现在都有很好的高级 API —— tf.keras 和 FastAI——它们降低了深度学习入门的门槛。

Jeff Hale 杨旭东(翻译)

做好语音翻译无捷径:语音识别是前提,实时翻译亟待攻破🔗

市面上的语音翻译产品并不总能让用户满意。以讯飞翻译机为例,虽然据科大讯飞称这个产品的用户满意度为 99%,但在同声传译等场景下,目前只能做到帮助用户更方便地理解内容,但有时识别效果和翻译效果还会出现一些问题。

另外,在语音翻译领域还有一种现象:一些公司宣称在重大比赛项目中获得很好的成绩,准确率再创新高,等等,但当在实际场景中一应用,往往会发现效果并不是很理想,甚至会出现低级错误,比如在英翻中任务中,翻译准确率会大打折扣。

王士进认为,语音翻译技术未来的发展趋势,一方面是在复杂环境下的语音识别,语音翻译如果想进一步扩大应用场景,这点首先要解决好;另外,如何解决低资源语音翻译技术难题也是一个重点,很多语种有很大的价值和前景,但是目前的资源是比较少的;最后,是端到端的语音翻译技术,实现直接从原始语音到目标译文的翻译,相信这将会是未来语音翻译的发展方向。

陈利鑫

反驳马斯克:自动驾驶离不开激光雷达,图像技术足够成熟至少还要十年🔗

关于高精地图,马斯克近日来发表的那句引起了很大争议的言论绝对值得一提:“False and foolish = HD maps and LiDAR”。和很多人一样,邹亮也并不认同这一说法。

他认为,马斯克说这句话的出发点可能在于目前来说激光雷达的成本太高,甚至超过一辆汽车的价格,如果激光雷达的成本降低,马斯克也许就不会这么说了。

高精地图生产关键点 大规模、低成本生产无人驾驶高精地图是业界难点,解决这个问题的关键点是什么?邹亮说道,大规模制图的关键点主要包括三点:

数据采集的管理,需要有数据采集路线和需要更新的数据,才能合理判断道路的采集方式和最省时省资源的路线,而这些都需要好的设计才能优化达到最高效率; 大数据处理,高精地图所需要处理的数据量巨大,必须使用数据中心计算机集群来做处理,并且涉及到很多并行计算和处理,这些对数据处理能力都是极大的考验; 高精地图的实时更新也相当重要,道路环境有可能在不断的变化,需要实现快速有效的更新发生变化的区域。

高精地图技术和实际应用之间的鸿沟还有很多,在自动驾驶真正上路之时仍然会遇到很多挑战。比如在地下车库场景中最突出的完全没有 GPS(+ 信号)的现象。由于低成本 IMU 惯导无法获取精确的初始位置,因此难以进行定位。

邹亮表示,高精地图是自动驾驶不可或缺的技术,Waymo、Cruise 等已经证明了其价值。但在技术上,高精地图厂商亟需解决制作覆盖全国的点云融合高精地图的问题,以及实现地图的及时更新。

陈利鑫

为你的python 程序选择最好的docker image🔗

不建议使用 Alpine,因为很多依赖缺失,且使用的 c 是 musl 而不是普遍流行的 glibc。 Alpine 其默认线程栈很小,容易导致 python 崩溃。musl 也可能导致 python 运行慢很多。

Debian 用户建议使用 python:3.7-slim-stretch 或者 python:3.7-stretch。 如果想要最新的包,建议使用 ubuntu 系列如 ubuntu:18.04。

Itamar Turner-Trauring

运维

运维upsplash的开销🔗

2016 年的统计(每月):

  • Web 服务器: $2,731.23

  • 监控: $630.00

  • 数据处理: $1,000.00

  • 图片服务: $11,170.00

  • 其他: $2,127.39

    总计 (美元/每月): $17,658.62

2019 年的统计(每月):

  • Web 服务器: $29,763

  • 监控: $7,679

  • 数据处理: $15,223

  • 图片服务: $42,408

  • 其他: $3,580

    总计 (美元/每月): $98,653

花费差不多是 2016 年的 5 倍。然而吞吐量却是 2016 年的 12 倍。

钱主要花在图片服务上。

Luke Chesser

Java

谈判失败:Oracle是如何杀死Java EE的?所有企业级Java的巨大损失!🔗

双方达成协议:Eclipse和Oracle已经同意JakartaEE社区不能再开发javax 包名称空间。同样,Jakarta EE规范也不能使用现有规范名称等Java商标。

业内认为:这不只是JavaEE和JakartaEE之争,波及到Spring框架,仅仅Spring Framework就有2545个javax导入,这是所有企业级Java的巨大损失。

banq

其他

微软宣布推出Windows Subsystem for Linux 2(WSL 2)🔗

WSL 2 在 Windows 中集成了一个真正的 Linux 内核,以实现完全的系统调用兼容性,微软表示将通过 Windows Update 发布更新。WSL 2 将随 Linux 内核版本 4.19 一起提供。 WSL 2 将在 6 月底前将提供给 Windows insider 预览体验会员的用户进行测试。

醉落红尘

微软在Build开发者大会上公布了Windows Terminal🔗

预计这款应用在 6 月就可以与系统管理员和开发人员们见面。

支持多 Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU 运算的文本渲染等等。同时该终端依然符合我们的目标和要求,以确保它保持快速、高效,并且不会消耗大量内存和电源。

cnBeta.COM

GitHub 推出包管理服务 GitHub Package Registry🔗

目前是beta版。

据官方介绍,GitHub Package Registry 完全集成在 GitHub 中,因此和 repo 一样,用户可以使用相同的搜索、浏览和管理工具来查找和发布软件包。此外,还可以使用相同的用户和团队权限来同时管理代码以及软件包。

GitHub Package Registry 还支持许多大家都比较熟悉的包管理工具,如:

npm (JavaScript) Maven (Java) RubyGems (Ruby) NuGet (.NET) Docker images (用于虚拟化 Docker 操作系统的软件)

GitHub Package Registry 通过 GitHub 的全球 CDN 提供了快速和可靠的下载服务。

至于收费方面,GitHub 表示将永远面向开源免费,不过具体的定价细节还没公布。

github,局长

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