深阅读

Node v13.0.0 (Current)
https://nodejs.org/en/blog/release/v13.0.0/
https://medium.com/@nodejs/node-js-12-to-lts-and-node-js-13-is-here-e28d6a4a2bd
The V8 engine was updated to version 7.8. This includes performance improvements to object destructuring, memory usage and WebAssembly startup time. Node.js releases are now built with default full-icu support. This means that all locales supported by ICU are now included and Intl-related APIs may return different values than before. The minimum Xcode version supported for macOS was increased to 10. 另附:10 Years of Node with Gireesh Punathil of IBM.

Preparing for the Future with React Prereleases
https://reactjs.org/blog/2019/10/22/react-release-channels.html
To share upcoming changes with our partners in the React ecosystem, we’re establishing official prerelease channels. We hope this process will help us make changes to React with confidence, and give developers the opportunity to try out experimental features. This post will be most relevant to developers who work on frameworks, libraries, or developer tooling. Developers who use React primarily to build user-facing applications should not need to worry about our prerelease channels.

Open-sourcing Polynote: an IDE-inspired polyglot notebook
https://medium.com/netflix-techblog/open-sourcing-polynote-an-ide-inspired-polyglot-notebook-7f929d3f447
We are pleased to announce the open-source launch of Polynote: a new, polyglot notebook with first-class Scala support, Apache Spark integration, multi-language interoperability including Scala, Python, and SQL, as-you-type autocomplete, and more.

What is Serverless? The “2020” edition
https://medium.com/swlh/what-is-serverless-the-2020-edition-5a2f21581fe5
I’ve spent most of this year avoiding talking about serverless as can be seen from previous blog posts such as Serverless is Doctrine, not a Technology and Cloud 2.0 is no longer King — Serverless has dethroned it. Discussions on various networks have tended to descend into discussions around the compute aspects of FaaS. Not only that, but I’ve tried to stay out of discussions, because it feels like too many big companies and marketing budgets are trying to “own” the word, to ensure that their technology is part of the movement. The word “serverless” has definitely been co-opted by a range of companies to fit their preferred technology that in my mind it doesn’t fit. 另附:Zoho Catalyst - The simplest serverless platform you’ll ever see.

Rethink: Serverless For Frontend
https://www.yuque.com/egg/nodejs/sff-slide
大概两个月前,为了给团队小伙伴分享我们目前做的事的价值,写了一篇 『Serverless For Frontend 前世今生』 。在那篇文章中,主要讲了进入每个阶段的缘由和产出的东西,但对演进背后的源动力的思考和阐述有所欠缺。在之后这段时间,一方面跟内外的同学交流,一方面在实践中去复盘,于是有了本分享。我希望讲清楚 Serverless For Frontend 的 Why 以及一部分目前看到的 What ,但不会讲太多 How ,因为都还在摸索中,且大家的基建都不一样,无从复制。本文,则主要是对分享的 Slide 的一些提炼,完整的 Slide 参见文末。另附:2019 JSConf China 《面向传统,Serverless 进化之路》分享文字版.

阿里开源十年激荡史
https://mp.weixin.qq.com/s/pJFt2ivGtP-vBpTFOGCbyw
在圈内,开源一度被称为“集市”。相对封闭严格的传统企业 IT 文化,开源更强调自由开放的社区文化。InfoQ 追踪阿里巴巴多年,找到了阿里巴巴整个开源发展过程中的数位关键”赶集人“,试图了解这一中国近十年极具代表性的科技公司的开源历史。过去十年,阿里巴巴经历了淘宝的壮大,阿里云计算的成立,上市,双11节节攀升的流量,每一个阶段都有其存在的意义和目标,开源也随着这些变化而在不同的时期表现出不一样的状态。不变的是,阿里这群“赶集人”探索出了一条自主开源的道路,一走就是十个年头。

解密国内BAT等大厂前端技术体系-百度篇
https://mp.weixin.qq.com/s?__biz=MzI5MjYyODYyNQ==&mid=2247483972&idx=1&sn=717de03ea3e9c95fecaac91f7f9e5795
百度作为国内老牌的互联网公司,其技术积累还是相当深厚的,可以看到在应用框架、数据可视化、智能小程序、工程化等方面都有很好的沉淀。当然,文章的内容都是基于公开信息整理而成,内部的众多技术框架依旧不得而知。

如何通过 DDD 降低软件开发的成本
https://mp.weixin.qq.com/s?__biz=MjM5Mjg4NDMwMA==&mid=2652977080&idx=1&sn=19e47cf4391b0a0216c411bd69b57351
DDD 是一个有效的方式,但是如果 DDD 的落地方式过于复杂,一定会催生出更简化的方式。即:复杂度同力一样不会消失,也不会凭空产生,它总是从一个物体转移到另一个物体或一种形式转为另一种形式。

Server-X:一款可能提升你十倍工作效率的工具
https://zhuanlan.zhihu.com/p/87684011
本文将介绍一款全新的前端开发工具,希望它能给你的前端开发带来看起来和现在一样但其实又不那么一样的体验。如同它名字的前半部分,server,你可以简单地说,server-x(缩写为 svrx)就是一个本地服务器, 并且它还是一个功能丰富、使用便捷的轻量级服务器。

The problems of shared mutable state and how to avoid them
https://2ality.com/2019/10/shared-mutable-state.html
This blog post answers the following questions: What is shared mutable state? Why is it problematic? How can its problems be avoided? Sections marked with “(advanced)” go deeper and can be skipped if you want to read this blog post more quickly.

Focusing on focus
https://blog.whatwg.org/focusing-on-focus
Focus behavior in HTML had been under-specified for the past few years, and it was also quite confusing due to a variety of subtle differences between focusing methods, UA-specific behaviors, relation to the tabindex attribute, relations to shadow DOM, etc. A few months ago Domenic filed a meta-bug that contains a list of things to fix so that we would have a good foundation for further additions to focus-related stuff, and to hopefully make focus in HTML make sense to browser engineers and web authors!

Writing Asynchronous Tasks In Modern JavaScript
https://www.smashingmagazine.com/2019/10/asynchronous-tasks-modern-javascript/
In this article, we are going to explore the evolution of JavaScript around asynchronous execution in the past era and how it changed the way we write and read code. We will start with the beginnings of web development, and go all the way to modern asynchronous pattern examples.

Gantry: Slack’s Fast-booting Frontend Framework
https://slack.engineering/gantry-slacks-fast-booting-frontend-framework-fb70c8eed2fd
Gantry’s successful rollout internally came down to us taking a concept that was already working and abstracting it for general consumption. The intersection of multiple product requirements meant we covered most use-cases that a Slack application might need, and this has kept Gantry flexible enough to support many other applications since its inception.

Task-based effectiveness of basic visualizations
https://blog.acolyer.org/2019/10/25/task-based-effectiveness-of-basic-visualizations/
So far this week we’ve seen how to create all sorts of fantastic interactive visualisations, and taken a look at what data analysts actually do when they do ‘exploratory data analysis.’ To round off the week today’s choice is a recent paper on an age-old topic: what visualisation should I use? No prizes for guessing “it depends!” …the effectiveness of a visualization depends on several factors including task at the hand, and data attributes and datasets visualized. Is this the paper to finally settle the age-old debate surrounding pie-charts??

The Dynamic Composer (an AWS serverless pattern)
https://www.jeremydaly.com/the-dynamic-composer-an-aws-serverless-pattern/
I’m a big fan of following the Single Responsibility Principle when creating Lambda functions in my serverless applications. However, there are several drawbacks with this approach that often attract criticism. These include things like increased complexity, higher likelihood of cold starts, separation of log files, and the inability to easily compose functions. I think there is merit to these criticisms, but I have personally found the benefits to far outweigh any of the negatives. A little bit of googling should help you find ways to mitigate many of these concerns, but I want to focus on the one that seems to trip most people up: function composition.

Storing 50 million events per second in Elasticsearch: How we did it
https://datadome.co/bot-protection-engineering/store-50-million-event-per-second-in-elasticsearch/
Improving our monitoring has allowed us to better understand what is happening inside our cluster. For each index, no matter its size, we now have shards with no more than 25GB of data on each. Having smaller shards also enables better rebalancing and relocation when needed. We avoid hotspot issues because our hot layer only has shards in write, and the hot, warm and cold architecture improves our cache utilization for read requests.

PyTorch Mobile: Exploring Facebook’s new mobile machine learning solution
https://heartbeat.fritz.ai/pytorch-mobile-exploring-facebooks-new-mobile-machine-learning-solution-96c99efbfd58
PyTorch enters the mobile machine learning game with its experimental mobile deployment pipeline.

GRIT: a Protocol for Distributed Transactions across Microservices
https://tech.ebayinc.com/engineering/grit-a-protocol-for-distributed-transactions-across-microservices/
eBay technologists recently showed off a distributed transaction protocol called GRIT, for distributed ACID (atomicity, consistency, isolation, durability) transactions across microservices with multiple underlying databases.

A new era of spatial computing brings fresh challenges—and solutions—to VR
https://www.microsoft.com/en-us/research/blog/a-new-era-of-spatial-computing-brings-fresh-challenges-and-solutions-to-vr/
Researchers will be showing off a method for allowing people to safely navigate a given route in real-world environments, such as a daily walk to work, while seeing themselves strolling a different VR world, such as a city of their choosing. They’ve also developed a technology that leverages newly introduced eye-tracking of users so that visual details in VR can be changed in real time without those changes being detected. Finally, researchers have invented a new haptic feedback controller that uniquely emulates the human sense of touch by meshing centuries-old and cutting-edge technologies.

Lesser Known Coding Fonts
https://vfoley.xyz/lesser-known-coding-fonts/
In this post, I want to show five fonts that I don’t see as often on /r/unixporn, but which I believe deserve to be better known. (Edit: ironically enough, this post cannot be posted on /r/unixporn, because they don’t accept content that isn’t screenshots, photos, or videos.)

SSH PORT
https://www.ssh.com/ssh/port
The default SSH port is 22. It is not a coincidence. This is a story of how it got that port.

Why Devs (Should) Like Estimates
https://stackoverflow.blog/2019/10/23/why-devs-should-like-estimates/
As a Principal Web Developer at Stack Overflow and a long time Tech Lead, I learnt that accurate estimates were essential in order for a company to be healthy and productive. Over the years I have spent a good deal of time developing my theories for why estimates and breakdowns are so important, and crafting my own methodology for how best to go about doing them. Below, I attempt to distill the lessons I’ve learned so that others can experiment with and improve upon my techniques. Now, I should be clear, the advice below is what works for me. I’m sure there are different approaches that might work better for others. Feel free to share your favorite approach in the comments.

新鲜货

Quantum Supremacy Using a Programmable Superconducting Processor
https://ai.googleblog.com/2019/10/quantum-supremacy-using-programmable.html
We developed a new 54-qubit processor, named “Sycamore”, that is comprised of fast, high-fidelity quantum logic gates, in order to perform the benchmark testing. Our machine performed the target computation in 200 seconds, and from measurements in our experiment we determined that it would take the world’s fastest supercomputer 10,000 years to produce a similar output. 另附:IBM casts doubt on Google’s claims of quantum supremacy.

Dapr: Microsoft’s New, Portable, Event-driven, Runtime for Distributed Apps
https://dapr.io/
Dapr is a portable, event-driven runtime that makes it easy for developers to build resilient, microservice stateless and stateful applications that run on the cloud and edge and embraces the diversity of languages and developer frameworks.

Firefox 70 — a bountiful release for all
https://hacks.mozilla.org/2019/10/firefox-70-a-bountiful-release-for-all/
Amazing user features and protections aside, we’ve also got plenty of cool additions for developers in this release. These include DOM mutation breakpoints and inactive CSS rule indicators in the DevTools, several new CSS text properties, two-value display syntax, and JS numeric separators. In this article, we’ll take a closer look at some of the highlights! 另附:Dramatically reduced power usage in Firefox 70 on macOS with Core Animation.

Developers: Get Ready for New SameSite=None; Secure Cookie Settings
https://blog.chromium.org/2019/10/developers-get-ready-for-new.html
In May, Chrome announced a secure-by-default model for cookies, enabled by a new cookie classification system (spec). This initiative is part of our ongoing effort to improve privacy and security across the web. Chrome plans to implement the new model with Chrome 80 in February 2020. Mozilla and Microsoft have also indicated intent to implement the new model in Firefox and Edge, on their own timelines.

Electron 7.0.0
https://electronjs.org/blog/electron-7-0
Electron 7.0.0 has been released! It includes upgrades to Chromium 78, V8 7.8, and Node.js 12.8.1. We’ve added a Window on Arm 64 release, faster IPC methods, a new nativeTheme API, and much more!

Puppeteerv2.0.0
https://pptr.dev/
Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium.

OpenJS Foundation launches new professional certification program to support the future of Node.js development
https://openjsf.org/blog/2019/10/22/openjs-foundation-launches-new-professional-certification-program-to-support-the-future-of-node-js-development/
The certifications focus on critical skills that Node.js developers need to build Node.js applications and services in professional environments; Certification is valid for three years with a renewal option.

GitLab 12.4 released with improved Merge Request Dependencies and Audit API
https://about.gitlab.com/blog/2019/10/22/gitlab-12-4-released/
GitLab 12.4 is released with several improvements for governance including an Audit API, Code Owner approvals for Protected Branches, and Access Control for Pages. Merge Request Dependencies help you orchestrate work across teams, while so many more exciting features help you be more efficient and deliver better software faster.

Announcing the GitHub Education Classroom Report 2019
https://github.blog/2019-10-24-announcing-the-github-education-classroom-report-2019/
https://education.github.com/classroom-report/2019
How teachers are using GitHub to train the next generation of developers.

Automated Continuous Deployment at Heroku
https://blog.heroku.com/automated-continuous-deployment-at-heroku
Over the past four years, the Heroku Runtime team has transitioned from occasional, manual deployments to continuous, automated deployments. Changes are now rolled out globally within a few hours of merging any change—without any human intervention. It’s been an overwhelmingly positive experience for us. This doc describes why we decided to make the change, how we did it, and what we learned along the way.

ws: a Node.js WebSocket library
https://github.com/websockets/ws
ws is a simple to use, blazing fast, and thoroughly tested WebSocket client and server implementation.

resourcerer
https://github.com/SiftScience/resourcerer
https://engineering.sift.com/introducing-resourcerer-declarative-react-data-fetching-for-rest-apis/
Declarative data-fetching and caching framework for REST APIs with React. resourcerer is a library for declaratively fetching and caching your application’s data. Its powerful higher-order React component (HOC) withResources allows you to easily construct a component’s data flow, including: serial requests, prioritized rendering for critical data (enabling less critical or slower requests to not block interactivity), delayed requests, prefetching…

Convert cURL Commands to Node.js Code
https://curl.trillworks.com/#node
Uses the request library. It also supports Python, PHP, Go, and other languages.

Type Route
https://www.type-route.org/
Type Route is a flexible, type safe routing library built on top of the same core library that powers React Router.

uPlot
https://github.com/leeoniya/uPlot
An exceptionally fast, tiny time series chart.

TinaCMS
https://github.com/tinacms/tinacms
Tina is a site editing toolkit for modern React-based sites (Gatsby and Next.js).

Peaks.js — Interact With Audio Waveforms
https://medium.com/better-programming/peaks-js-interact-with-audio-waveforms-b7cb5bd3939a
Peaks.js is a client-side JavaScript component to display and interact with audio waveforms in the browser

RxDB
https://github.com/pubkey/rxdb
RxDB (short for Reactive Database) is a NoSQL-database for JavaScript Applications like Websites, hybrid Apps, Electron-Apps and NodeJs. Reactive means that you can not only query the current state, but subscribe to all state-changes like the result of a query or even a single field of a document. This is useful for UI-based apps that always display the realtime state to the user. RxDB can do a realtime replication with any CouchDB compliant endpoint and also with GraphQL endpoints.

Mitt
https://github.com/developit/mitt
Tiny 200 byte functional event emitter / pubsub.

CKEditor 5 v15.0.0 with horizontal line, page break, responsive toolbar and SVG upload support
https://ckeditor.com/blog/CKEditor-5-v15.0.0-with-horizontal-line-page-break-responsive-toolbar-and-SVG-upload-support/
This editor version introduces support for inserting horizontal lines, page breaks and SVG images into the WYSIWYG editor. It also allows you to define the document title section thanks to the new title plugin. The editor toolbar is now responsive, which improves the UX, especially for mobile devices. But there is more — so read on!

Ghost 3.0
https://ghost.org/blog/3-0/
Ghost 3.0 is far and away the biggest release we’ve ever done, in terms of scale. We announced more today in one go than at any other point in our history - and more people were involved in this release than ever before.

Nordic.js 2019 Talks
https://www.youtube.com/playlist?list=PLGP3VO5jDf8x0gh5H7dZ41F0nVDlwDMuy#nordicjs
Nordic.js is a single track JavaScript conference with talks by internationally renowned speakers and rising stars in the JavaScript community.

docker-nginx-http3
https://github.com/RanadeepPolavarapu/docker-nginx-http3
Alpine Linux image with nginx with HTTP/3 (QUIC), TLSv1.3, 0-RTT, brotli support. All built on the bleeding edge. Built on the edge, for the edge.

The New World of Notebook Publishing
https://writings.stephenwolfram.com/2019/10/the-new-world-of-notebook-publishing/
We’ve been working towards it for many years, but now it’s finally here: an incredibly smooth workflow for publishing Wolfram Notebooks to the web—that makes possible a new level of interactive publishing and computation-enabled communication.

设计

Open Doodles - Free sketchy illustrations
https://www.opendoodles.com/
Open Doodles is a set of free illustrations that embraces the idea of Open Design. You can copy, edit, remix, share, or redraw these images for any purpose without restriction under copyright or database law (CC0 license.) I hope that this kind of resource makes it easier for designers to show the value of illustration in their mockups. Maybe you use these images as placeholders, before you’re ready to hire an illustrator. Or perhaps this will encourage others to create their own kit and share it with the world.

Inside Adobe Spectrum, the design system making apps like Photoshop on iPad possible
https://9to5mac.com/2019/10/22/adobe-spectrum-design-system-photoshop-ipad/
Adobe is opening up new resources for designers and developers with the launch of an official website for its company-wide design system, Spectrum. From the new Creative Cloud desktop app for Macs to the upcoming Photoshop on iPad, Spectrum is what gives Adobe’s apps their distinct look and feel. 另附:Adobe发布PS 2020版!逆天黑科技看哭设计师…Designing accessible color systems.

Connecting the Dots Between Product and Branding
https://medium.com/microsoft-design/connecting-the-dots-between-product-branding-7e7de44bf7dd
How rethinking brand expression influenced Microsoft products and vice versa.

How to Measure Learnability of a User Interface
https://www.nngroup.com/articles/measure-learnability/
To measure learnability, determine your metric, gather your data, and plot the averages on a line curve. Analyze the learning curve by looking at its slope and its plateau.

Change for the Good or Bad? A Guide to UX Innovation
https://www.toptal.com/designers/ux/ux-innovation
UX innovation is a natural extension of that desire to create new things and make life easier. But while carefully thought-out innovations are often welcome, not all change is good. Innovation for innovation’s sake often leads to websites that aren’t user-friendly and do little more than feed the designer’s ego. So how does a UX designer decide when to innovate and when to follow established design patterns? Why do designers choose to implement innovative UX designs in the first place? And what should designers keep in mind when they’ve decided to try something original and creative on a project?

Speaking Up for Conversation Design
https://www.uxmatters.com/mt/archives/2019/10/speaking-up-for-conversation-design.php
Voice-first user experiences are now ubiquitous. Smart-speaker sales are up, as is their usage. Older adults are benefiting from the use of voice assistants. However, a large percentage of users still find the experience of talking to voice assistants unnatural. So how can we make voice experiences better?

产品及其它

The Internet of creation disappeared. Now we have the Internet of surveillance and control
http://lab.cccb.org/en/renata-avila-the-internet-of-creation-disappeared-now-we-have-the-internet-of-surveillance-and-control/
An interview with this specialist in human rights, technology and freedom of expression to discuss how today’s societies are advancing to the drumbeat of “digital colonialism”.

为团队打造的专业文档协作工具:Coda 2.0
https://sspai.com/post/57133
Coda 是一款专为团队协作设计和开发的多人合作「在线工作空间」,它将在线文档、表格与各种第三方 App 相结合,打造出了一个功能强大的文档工具。最近,Coda 更新了 2.0 版本,不仅优化了整体界面、让撰写文稿的体验更加清爽,还增加了不少实用功能,让用 Coda 协作这件事更加符合直觉,就像 Coda 的 CEO 说的那样:Coda 1.0 是为文稿创作者准备的,Coda 2.0 则是专为整个团队打造的。

产品经理为什么要有科学思维?
https://mp.weixin.qq.com/s/wL-kqZUU1AOPor-pu6FueQ
如果对如何发掘用户价值、如何做客观中立的数据分析、如何做好健康的迭代有深度思考,可能就会发现,它们的方法论支撑,实则就是社会科学的理论。一个产品决策者研究用户、产品、行业,与经济学奖、心理学家、社会学家研究人和社会,是一脉相承的,而负责大规模用户的产品负责人和业务负责人,就是在这个巨大试验场上做实验的社会科学家:他们有自洽的方法论体系,以及快速学习这些用户和这个行业的能力。对于一个优秀的企业家来说,他首先应该就是出色的用户专家和产品专家。成为这种级别的用户专家和产品专家需要什么?是做需求的准确度甚至写文档的能力吗?当然不是了。那会是一些既有的方法论,比如像自然科学那样的知识体系,学会了就能成为一个好的用户专家和产品专家,继而成为好的企业家吗?也不是。

张一鸣:2300个夜晚的深度思考,成功是水到渠成
https://mp.weixin.qq.com/s?__biz=MzUyMDgzODMyMQ==&mid=2247483704&idx=1&sn=7b18d76fc0725384c6c6594aa1051baa
张一鸣有多勤奋和爱思考?我们试图从他的社交网络上寻找一些答案。我们发现,从2009年8月注册微博到2015年底的2300多天中,张一鸣在微博上共留下2800多条动态,记录了他从九九房到今日头条创业初期点滴的思考和感悟。张一鸣喜欢在夜晚发微博,时间常常集中在10点到凌晨2点之间,虽然自嘲“喜欢晚睡晚起”,其实大多数时间,他早上10点会出现在公司,继续一天的工作。另附:王兴:8年时间,我对商业的思考

对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2019-10-28·可视化式的思考与图形式的发现、IBM Technology Garden、The Language of Congress

作者:Dafrok (https://github.com/dafrok) - Open source is justice.

- 百度数据可视化
- 百度智能建站