深阅读

V8 release v8.0
https://v8.dev/blog/v8-release-80
Will we have a party? Will we ship a new compiler? Will we skip versions 8 and 9 and just stay at an eternal V8 version X? Finally, after over 10 years of work, on our 100th blog post, we’re pleased to announce our newest branch, V8 version 8.0 V8, and we can finally answer that question: It’s bug fixes and performance improvements.

WebAssembly becomes a W3C Recommendation
https://www.w3.org/2019/12/pressrelease-wasm-rec.html.en
WebAssembly is a safe, portable, low-level format designed for efficient execution and compact representation of code on modern processors including in a web browser. At its core, WebAssembly is a virtual instruction set architecture that enables high-performance applications on the Web, and can be employed in many other environments. There are multiple implementations of WebAssembly, including browsers and stand-alone systems. WebAssembly can be used for applications like video and audio codecs, graphics and 3D, multi-media and games, cryptographic computations or portable language implementations.

Rethinking Atomic React: an interpretation of Brad Frost’s Atomic Design to use in React projects
https://cheesecakelabs.com/blog/rethinking-atomic-design-react-projects/
Atomic Design is a very widespread topic nowadays within the front-end community, but while looking at several projects, I realized that there is still a lot of personal opinion on its implementation, and here I list some points that caught my attention throughout the years. This article is not a tutorial on how to create your applications but it is intended to share my interpretation on how to best use this amazing methodology.

ECharts 技术发展简史
https://mp.weixin.qq.com/s/CSM7bcd5mevvgi1Jo3zp8Q
ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。2019年12月7号在上海由ECharts核心团队成员发起的专场线下交流会上,由@沈毅分享了《ECharts 技术发展简史》。

AntV 架构演进-G2 篇
https://www.yuque.com/antv/blog/it4eag
G2 自 2014 年以来已经发展到 4.0,回顾过去,我们发现每一个版本都是一笔记忆,当我们队每个版本的架构进行梳理,分析每个版本背后的思考时,这些记忆就转换成了财富,我从下面这些阶段谈起:G2 之前的图表;v0.1 - v1.0 成型;G2 v2.0 完善图形语法;G2 v3.0 通用场景的支持;G2 v4.0 交互语法和多维分析。

CSS flex属性深入理解
https://www.zhangxinxu.com/wordpress/2019/12/css-flex-deep/
CSS flex属性还是很难理解的,但是flex布局要想玩得溜溜溜,这一关必须得过,来来来,一起看看究竟是什么意思,如何更容易理解与记忆。

聊聊AIOps落地监控报警的应对之策
https://mp.weixin.qq.com/s?__biz=MzUyMzA3MTY1NA==&mid=2247485402&idx=1&sn=6b6e7235eb7f45e6eb10287bccafcc1b
监控报警是故障发现的重要一环,也是百度在AIOps的最早切入方向之一,目前百度AIOps在监控报警方面已经有两个场景取得突出效果:智能异常检测和智能报警合并。如何支撑AIOps算法在监控报警系统的快速落地并产生业务价值,这对监控报警架构提出了很大的挑战!在上篇《AIOps对监控报警架构的挑战》文章中,我们介绍了监控报警系统在故障处理流程中的位置(故障发现和故障通告),并且分析了AIOps对监控报警架构的三个挑战。在本篇,我们将详细介绍应对这三个挑战的方案:为了应对挑战一,我们研发了策略运行平台,让AIOps算法迭代找到飞一般的感觉。为了应对挑战二,我们提出了基于状态机的事件管理引擎,让事件管理so easy。为了应对挑战三,我们设计了灵活的报警合并方案,让值班工程师彻底跟报警风暴say bye bye。下面我们来详细看下这三个方案的实现细节。

State of Storybook 2019
https://medium.com/storybookjs/state-of-storybook-2019-b6a91ac79b74
Breakout year for Community, Product, and Ecosystem

Looking into Svelte 3
https://medium.com/javascript-in-plain-english/looking-into-svelte-3-b3d0b43cd794
Quickstart by creating a retro board in Svelte from scratch

Angular 9.0.0 and Ivy improvements
https://ionicframework.com/blog/angular-9-0-0-and-ivy-improvements/
One of the biggest updates in the pipeline right now is the upcoming release of Angular 9.0.0. Currently in RC, Angular 9.0 will hopefully ship early next year. But this release includes so much that I thought it required a post to highlight some of the most important updates.

What Is JavaScript Made Of?
https://overreacted.io/what-is-javascript-made-of/
Over the years, I’ve formed a mental model of JavaScript that gave me confidence. Here, I’m sharing a very compressed version of it. It’s structured like a glossary, with each topic getting a few sentences. As you read through this post, try to mentally keep score about how confident you feel about each topic. I won’t judge you if quite a few of them are a miss! At the end of this post, there is something that might help in that case.

Monitor Frontend Performance With User-Centric Performance Metrics in New Relic
https://blog.newrelic.com/product-news/monitor-frontend-performance-with-user-centric-performance-metrics/
Further, interactivity metrics help you measure and improve customer experience by showing:

  • How quickly your users can interact with visual content after your site renders it
  • How quickly your users get a response after interacting with visual content
  • How code-level elements of your site affect user interaction across device type, browser, or browser version

Building an Awesome UI Component Library in 2020
https://codeburst.io/building-an-awesome-ui-component-library-in-2020-a85cb8bec20
How to build your team’s next-gen component library in bit.dev, with real React component examples!

How Shopify Manages API Versioning and Breaking Changes
https://engineering.shopify.com/blogs/engineering/shopify-manages-api-versioning-breaking-changes
At Shopify, we have tens of thousands of partners building on our APIs that depend on us to ensure our merchants can run their businesses every day. In April of this year, we released the first official version of our API. All consumers of our APIs require stability and predictability and our API versioning scheme at Shopify allows us to continue to develop the platform while providing apps with stable API behavior and predictable timelines for adopting changes.

Evaluating BBRv2 on the Dropbox Edge Network
https://blogs.dropbox.com/tech/2019/12/evaluating-bbrv2-on-the-dropbox-edge-network/
Overall, BBRv2 is a great improvement over the BBRv1 and indeed seems way closer to being a drop-in replacement for Reno/CUBIC in cases where one needs slightly higher bandwidth. Adding experimental ECN support to that and we can even see a drop-in replacement for Data Center TCP (DCTCP). *Minus the 0.0001% of outliers with a >60% packet loss.

The On-Device Machine Learning Behind Recorder
https://ai.googleblog.com/2019/12/the-on-device-machine-learning-behind.html
We launched Recorder, a new kind of audio recording app for Pixel phones that leverages recent developments in on-device machine learning (ML) to transcribe conversations, to detect and identify the type of audio recorded (from broad categories like music or speech to particular sounds, such as applause, laughter and whistling), and to index recordings so users can quickly find and extract segments of interest. All of these features run entirely on-device, without the need for an internet connection.

Deterministic Aperture: A distributed, load balancing algorithm
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/daperture-load-balancer.html
In this blog post, we will walk through a new client-side load balancing technique we’ve developed and deployed widely at Twitter which has allowed our microservice architecture to efficiently scale clusters to thousands of instances. We call this new technique deterministic aperture and it’s available within Finagle, Twitter’s protocol-agnostic remote procedure call (RPC) framework.

An Update on CDNJS
https://blog.cloudflare.com/an-update-on-cdnjs/
When you loaded this blog, a file was delivered to your browser called jquery-3.2.1.min.js. jQuery is a library which makes it easier to build websites, and was at one point included on as many as 74.1% of all websites. A full eighteen million sites include jQuery and other libraries using one of the most popular tools on Earth: CDNJS. Beginning about a month ago Cloudflare began to take a more active role in the operation of CDNJS. This post is here to tell you more about CDNJS’ history and explain why we are helping to manage CDNJS.

This Page is Designed to Last - A Manifesto for Preserving Content on the Web
https://jeffhuang.com/designed_to_last/
My proposal is seven unconventional guidelines in how we handle websites designed to be informative, to make them easy to maintain and preserve. The guiding intention is that the maintainer will try to keep the website up for at least 10 years, maybe even 20 or 30 years. These are not controversial views necessarily, but are aspirations that are not mainstream—a manifesto for a long-lasting website.

新鲜货

The State of JavaScript 2019
https://2019.stateofjs.com/
And so after over 21,717 respondents took this year’s survey we had to dig up our components and charts, curse us-from-a-year-ago for writing such crappy code, and get to work digging through the data.

The future of merge requests: Real-time collaboration
https://about.gitlab.com/blog/2019/12/19/future-merge-requests-realtime-collab/
We want to hear your thoughts on the future of merge requests and code review.

Chrome 80, Content Indexing, ES Modules and More
https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html
Unless otherwise noted, changes described below apply to the newest Chrome beta channel release for Android, Chrome OS, Linux, macOS, and Windows. Learn more about the features listed here through the provided links or from the list on ChromeStatus.com.

Why we forked Firefox and not Chromium
https://0x65.dev/blog/2019-12-17/why-we-forked-firefox-and-not-chromium.html
In 2015 Cliqz released its own desktop web browser, forked from Firefox. Up to that point, we had distributed our search and privacy products as a single Firefox addon. In this article we cover why we thought it necessary to create our own browser, why we chose Firefox, and why we think it was the right choice. It’s bug fixes and performance improvements.

Tesseract.js
https://tesseract.projectnaptha.com/
Tesseract.js is a pure Javascript port of the popular Tesseract OCR engine. This library supports more than 100 languages, automatic text orientation and script detection, a simple interface for reading paragraph, word, and character bounding boxes. Tesseract.js can run either in a browser and on a server with NodeJS.

Relay V8.0
https://github.com/facebook/relay/releases/tag/v8.0.0
Relay is a JavaScript framework for building data-driven React applications.

A-Frame v1.0.0 - WebXR Support, AR Mode
https://aframe.io/blog/aframe-v1.0.0/
With the help of a community of hundreds of thousands of developers over the years, we’re releasing A-Frame v1.0.0 to support the coming out of the WebXR spec which has been under discussion for the past several years. The upgrade to A-Frame v1 and beyond will become necessary on more and more browsers as they deprecate WebVR and only support the WebXR specification.

Sarus - A JavaScript library for WebSockets
https://sarus.anephenix.com/
Engineered to handle unexpected socket closures.

Alpine.js
https://github.com/alpinejs/alpine
Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM, and sprinkle in behavior as you see fit.

Hammerspoon – macOS automation with Lua
https://www.hammerspoon.org/
This is a tool for powerful automation of OS X. At its core, Hammerspoon is just a bridge between the operating system and a Lua scripting engine. What gives Hammerspoon its power is a set of extensions that expose specific pieces of system functionality, to the user. You can write Lua code that interacts with OS X APIs for applications, windows, mouse pointers, filesystem objects, audio devices, batteries, screens, low-level keyboard/mouse events, clipboards, location services, wifi, and more.

Database Internals
https://www.databass.dev/
The book consists of two parts: Storage Engines and Distributed Systems since that’s where most of the differences between the vast majority of databases is coming from. In Storage Engines, we start with taxonomy and terminology, then explore In-Place Update storage and discuss several B-Tree variants and their structure. Then we talk about binary data formats and file organization and explore the ways to compose efficient on-disk structures. In Distributed Systems, we start with basic concepts such as processes and links and start building more complex communication patterns.

Monica - Open source personal CRM
https://www.monicahq.com/
Monica helps you organize the social interactions with your loved ones.

Redis 6 RC1 is out today
http://antirez.com/news/131
Redis 6 does not bring just ACLs and SSL, it is the largest release of Redis ever as far as I can tell, and the one where the biggest amount of people participated. So, let’s start with credits. Who made Redis 6? This is the list of contributors by commits (it’s a terrible metric, but the one I can easily generate), having at least two commits, and excluding merge commits. Also note that the number of commits in my case may be inflated a lot by the fact that I fix many small stuff here and there constantly.

文言 wenyan-lang
http://wenyan-lang.lingdong.works
文言文編程語言。A programming language for the ancient Chinese.

Announcing Rust 1.40.0
https://blog.rust-lang.org/2019/12/19/Rust-1.40.0.html
The highlights of Rust 1.40.0 include #[non_exhaustive] and improvements to macros!() and #[attribute]s. Finally, borrow-check migration warnings have become hard errors in Rust 2015.

设计

Design APIs: The Evolution of Design Systems
https://matthewstrom.com/writing/design-apis/
Design systems enable designers and developers to quickly create quality software on a massive scale. As the needs of software-driven businesses grow even larger, design systems are evolving — they are beginning to look and work like APIs.

Six Questions to Structure Great Projects
https://medium.com/facebook-design/six-questions-to-structure-great-projects-24a557cb11ab
A clarifying rubric to help teams align around new ideas. Before green-lighting any project, there are six questions your team should be able to answer: What’s the context? What’s the “people problem”? What’s our causal hypothesis? What’s our project plan? How will we measure success? What will we do next?

Your Bot Will Fail
https://medium.com/microsoft-design/your-bot-will-fail-8fa00ac89592
Balancing the real with the ideal in conversational design.

UI/UX Design Trends for 2020
https://uxplanet.org/ui-ux-design-trends-for-2020-f6512b5eb3ac
Twenty design trends for everyone in the world of user interface and experience to watch(out) for in twenty-twenty.

Quantitative Data Tools For UX Designers
https://www.smashingmagazine.com/2019/12/quantitative-data-tools-uxdesigners/
Data analysis, tools and workflow are very helpful to UX designers in a data-driven world, especially for those working on visualizations or data products.

产品及其它

张一鸣:人才不是核心竞争力,机制才是!
https://mp.weixin.qq.com/s/PnjLPyAf2ICtlhO7VWROYg
“在我看来,创业其实同时在做两个产品,一个是为用户提供服务的产品,另外一个就是公司,而CEO是公司这个产品的产品经理。”这绝非一个好做的产品。伴随飞速增长的不仅是流量、收入与估值,还包括执行团队规模:如今已近5万人的队伍。大量公司会在团队快速扩张时,遭遇文化稀释和管理困局。怎么让一个组织,而不仅仅是一款产品具有持续的竞争力,尤其是在这个组织飞速变大之时?本文试着给大家些许答案。

一个有趣的问题:中文BBS的遗产被谁继承了?
https://mp.weixin.qq.com/s/r-vqBySyZIelLaZ8GdkrRQ
中文互联网不会再有一款真正意义上的“BBS应用”了,但是BBS的遗产将被彻底吃下、吸收,以某种前人难以想象的方式,以所有人都认不出来的方式,生动活泼地存在下去。

聪明人的10个工程思维
https://mp.weixin.qq.com/s?__biz=MzUyMDQ5NzI5Mg==&mid=2247514326&idx=1&sn=94fb6f6e4a2b9d22f83bc561ee51120d
创业成功最关键的个人要素是什么?你可能会说,这类问题怎么会有标准答案呢?首先当然是要运气好,肯干,愿意冒险。从鸡汤的角度说,需要有愿景,要追随内心的梦想;从鸡血的角度说,需要有执行力,百折不挠。从商学院的角度说,需要商业模式;从硅谷的角度说,需要精益创业。……我认为,如果你想靠创业发大财,最关键的个人要素是:工程思维。事实上,这是地球上那些最聪明的家伙正在运用的关键思维。本文将阐述如下观点:工程思维是创业方面最基本的、最普适的、最科学的利器。

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