V8 release v7.3
Async stack traces. Faster await. Faster Wasm startup. V8 v7.3 comes with several new JavaScript language features: Object.fromEntries; String.prototype.matchAll; Atomics.notify. 另附:What’s New in ES2019: Array flat and flatMap, Object.fromEntriesNew JavaScript Features That Will Change How You Write Regex.

React v16.8: The One With Hooks
With React 16.8, React Hooks are available in a stable release! 另附:Hooks at a GlanceWhat Hooks Mean for Vue.

Angular - A plan for version 8.0 and Ivy
We are planning on having Ivy as an opt-in preview as part of the version 8.0 release in Q2 of this year. We are planning on having Ivy as an opt-in preview as part of the version 8.0 release in Q2 of this year: Differential Loading of Modern JavaScript; Opt-in Ivy Preview; Angular Router Backwards Compatibility; Improved Web Worker Bundling; Opt-In Usage Sharing.

Vue 2.6 released
This release combines a number of substantial improvements, internal changes and new features which are highlighted in this post.

New features in Webpack 5
In this article, I’ll be sharing some new features coming to Webpack 5, and what you should be aware of as you continue to use it in your daily work. This new release is jam-packed with tons of new goodies and while I won’t detail every new feature, I will share the few that are important as outlined by the core team.

React-Redux Roadmap: v6, Context, Subscriptions, and Hooks
In this issue, I want to lay out a description of the changes we made in v6 and why we made them, the challenges we are currently facing, the constraints that potential solutions need to conform to, and some possible courses of action for resolving those challenges.

How To Architect A Complex Web Table
Tables frequently appear on the web but aren’t easy to design and code. This illustrated guide explains the table anatomy and how to build a table, keeping in mind its future elaboration.

Revisiting the abbr element
A few weeks ago, I wrote about how to make the abbr element work for touchscreen, keyboard, and mouse. My suggestion involved making the <abbr> element focusable with the tabindex attribute and using pseudo-elements to create a tooltip from the title attribute. Since then, I’ve gotten some feedback on some accessibility-related issues to the implementation. With this feedback, I decided to revisit this and create a more accessible solution.

Paint the Picture, Not the Frame: How Browsers Provide Everything Users Need
Every website and web app is its own self-contained experience, with its own ideas of how things should look and behave. Some are closer to others, but each one requires learning how to operate the interface to a certain degree. Some browsers can also have parts of their functionality and appearance altered, meaning that as with websites, there can be unexpected discrepancies. We’ll unpack some of the nuance behind some of these features, and more importantly, why most of them are better off left alone.

Native or PWA? How to Choose the Right Approach for Mobile App Development
Getting ready to kick off your next mobile application project and not sure whether to build a native mobile app or a Progressive Web App? This guide is for you! 另附: Quick Guide to Comparing Ionic & React Native.

Computer science in JavaScript: Doubly linked lists
Implementing a doubly linked list in JavaScript.

TensorFlow.js: machine learning for the web and beyond
TensorFlow.js brings TensorFlow and Keras to the the JavaScript ecosystem, supporting both Node.js and browser-based applications. As well as programmer accessibility and ease of integration, running on-device means that in many cases user data never has to leave the device.

How we wrote our own Service Worker
As we continue the process of reinvigorating Tumblr’s frontend web development, we’re always on the lookout for modern web technologies, especially ones that make our mobile site feel faster and more native. You could have guessed that we are making the mobile dashboard into a progressive app when we open-sourced our webpack plugin to make web app manifests back in August. And you would’ve been right. But to make a high quality progressive web app, you need more than just a web app manifest—you also need a service worker.

Continuously testing React applications with Jest and Enzyme
To get the most out of this article, we assume a basic familiarity with React and Redux. If you’re new to React, the Intro to React tutorial provides a good overview of how React works. The Learn Redux section in the Redux docs provides lots of learning resources and the Redux examples page is also a good resource for exploring sample apps and getting a feel for how Redux works. With this info out of the way, let’s go ahead and get started.

Writing and Maintaining Good Code Documentation
Writing documentation is a practice that everyone working with code should strive to comply with. Since we ship an SDK here at PSPDFKit, providing good and clear documentation to our customers is as important to us as building the SDK itself. In this post, I want to outline how we handle documentation for our iOS products and show how you can leverage the same techniques we’re using to make your life easier.

Refactoring MDN macros with async, await, and Object.freeze()
In January, we landed a major refactoring of the KumaScript codebase and that is going to be the topic of this post because the work included some techniques of interest to JavaScript programmers.

The state of gRPC in the browser
gRPC 1.0 was released in August 2016 and has since grown to become one of the premier technical solutions for application communications. So far the benefits have largely only been available to mobile app and backend developers, whilst frontend developers have had to continue to rely on JSON REST interfaces as their primary means of information exchange. However, with the release of gRPC-Web, gRPC is poised to become a valuable addition in the toolbox of frontend developers. In this post, I’ll describe some of the history of gRPC in the browser, explore the state of the world today, and share some thoughts on the future.

Logging Levels 101
How do logging levels fit into this picture? How are they useful to the reader performing a post-mortem debug on an application? What are logging levels anyway? How many of them are there?

Performance monitoring with OpenTracing, OpenCensus, and OpenMetrics
If you are familiar with instrumenting applications, you may have heard of OpenMetrics, OpenTracing, and OpenCensus. These projects aim to create standards for application performance monitoring and collecting metric data. Although the projects do overlap in terms of their goals, they each take a different approach to observability and instrumentation. In this post, we’ll provide an introduction to all three projects, along with some key differentiators of each, and how they best support application monitoring.

Incrementally migrating over one million lines of code from Python 2 to Python 3
Over the last few months, we’ve explored why and how we rolled out our Python 3 migration, and how we ensured that the resulting application was reliable. In this piece, we’ll take a brief walk through the history of Python 3 in our desktop client, and then dive into the details of how we pulled off a gradual migration while allowing ongoing development.

Understanding Database Sharding
In this conceptual article, we will discuss one such database architecture: sharded databases. Sharding has been receiving lots of attention in recent years, but many don’t have a clear understanding of what it is or the scenarios in which it might make sense to shard a database. We will go over what sharding is, some of its main benefits and drawbacks, and also a few common sharding methods.

Event Sourcing is Hard
Why would I say such things? Because I’m a guy who previously drank the juice, had the power to make design calls, and took a team down the path of building an event sourced system from scratch. After an aggressive year of deploying a complex application, I’ve collected a lot of scars, bruises, and lessons learned. Below are my opinions, unexpected hurdles, bad assumptions, bad understandings, after growing an Event Sourced application.


滴滴在 GitHub 上开源了跨端解决方案 Chameleon,简写 CML,中文名卡梅龙;中文意思变色龙,意味着就像变色龙一样能适应不同环境的跨端整体解决方案,具有易用、开发快、高性能等特点。

First Public Working Draft_ WebXR Device API
Immersive computing introduces strict requirements for high-precision, low-latency communication in order to deliver an acceptable experience. It also brings unique security concerns for a platform like the web. The WebXR Device API provides the interfaces necessary to enable developers to build compelling, comfortable, and safe immersive applications on the web across a wide variety of hardware formfactors.

Release Radar · January 2019
Welcome to the January 2019 edition of Release Radar, where we share new and exciting releases from world-changing technologies to weekend side projects. Most importantly, they’re all projects shipped by you.

IntersectionObserver in WebKit
Web authors often need to know when a particular element on a page becomes visible. The element could be an ad or a video whose viewability we want to compute. Or we might want to defer loading an image until it is visible. A common way to solve this problem is using polling, periodically computing the position of an element with respect to the viewport. However, polling is inefficient, wastes battery life, and doesn’t work for cross-origin content. The IntersectionObserver API offers a better solution to this problem, and is now available in Safari Technology Preview, macOS 10.14.4 beta, and iOS 12.2 beta.

Introducing swc 1.0
swc(speedy web compiler) is a super-fast javascript to javascript compiler. It’s 16x - 20x faster than babel even on single-core synchronous benchmark. Note that actual performance gap is larger because swc works on worker thread while babel works on event loop thread.

How Many .com Domain Names Are Unused?
There are currently 137 million .com domain names registered.1 Of these, roughly 1/3 are in use (businesses, personal websites, email, etc.), another 1/3 appear to be unused, and the last 1/3 are used for a variety of speculative purposes.

Uppy is a sleek, modular JavaScript file uploader that integrates seamlessly with any application. It’s fast, easy to use and lets you worry about more important problems than building a file uploader. Fetch files from local disk, remote urls, Google Drive, Dropbox, Instagram, or snap and record selfies with a camera; Preview and edit metadata with a nice interface; Upload to the final destination, optionally process/encode.

ImmortalDB is a resilient key-value store for the browser. ImmortalDB is the best way to store persistent key-value data in the browser. Data saved to ImmortalDB is redundantly stored in Cookies, IndexedDB, LocalStorage, and SessionStorage, and relentlessly self heals if any data therein is deleted or corrupted.

High-performance reactive database for powerful React and React Native apps. Build powerful React and React Native apps that scale from hundreds to tens of thousands of records and remain fast.

TypeIt is the most versatile JavaScript typewriter effect utility on the planet. With its simple yet flexible configuration, you’re empowerd to type single or multiple strings that break lines, delete & replace each other, easily handle string containing HTML, loop, and a whole lot more. For more advanced, controlled typing effects, TypeIt comes with companion functions that can be chained to control your typing down to a single character or millisecond, enabling you to type an dynamic narrative, with complete reign over speed changes, line breaks, deletions, and pauses.

dumper.js is a better and pretty variable inspector for your Node.js applications.

Mercury Parser
The Mercury Parser extracts the bits that humans care about from any URL you give it. That includes article content, titles, authors, published dates, excerpts, lead images, and more.

Next.js-like framework for server-rendered React apps built with React Router 4.

Open sourcing ClusterFuzz
[Fuzzing] is an automated method for detecting bugs in software that works by feeding unexpected inputs to a target program. It is effective at finding memory corruption bugs, which often have serious security implications. Manually finding these issues is both difficult and time consuming, and bugs often slip through despite rigorous code review practices. For software projects written in an unsafe language such as C or C++, fuzzing is a crucial part of ensuring their security and stability. Today, we’re announcing that ClusterFuzz is now open source and available for anyone to use.

An open source parser for GitHub Actions
To expand that universe, we need to release the parser and the specification for the Actions workflow language as open source. Today, we’re doing that.

Airbnb’s Swift Style Guide
附:Our Swift Style Guide Is Now Open Source.

HTTP/3 explained
This book effort was started in March 2018. The plan is to document HTTP/3 and its underlying protocol: QUIC. Why, how they work, protocol details, the implementations and more. The book is entirely free and is meant to be a collaborative effort involving anyone and everyone who wants to help out.

Hacker Tools
As hackers, we spend a lot of time on our computers, so it makes sense to make that experience as fluid and frictionless as possible. In this class, we’ll help you learn how to make the most of tools that productive programmers use. We’ll show you how to navigate the command line, use a powerful text editor, use version control efficiently, automate mundane tasks, manage packages and software, configure your desktop environment, and more.

QuantEcon - Open source code for economic modeling
QuantEcon is a NumFOCUS fiscally sponsored project dedicated to development and documentation of modern open source computational tools for economics, econometrics, and decision making. We welcome contributions and collaboration from the economics community and other partner organizations.


被忽略的设计原则(SAP vs Salesforce vs 蚂蚁金服)
不知道有多少人在阅读一套设计规范的时候会去看设计原则的部分,并且花时间深入思考它背后的含义?至少以前的我,接触一个新的规范时候都是直接从视觉交互的部分开始,觉得这种假大空的文字是纯粹的装饰品,就像装帧上必不可少的高大上扉页而已。作为设计规范的真实消费者,没什么必要去研究设计原则。后来,工作职能的转变使我看待设计规范的角度发生了变化:我一直忽略的设计原则,其实是设计规范硬核的内在,它是设计过程中指导的思路与方法。而页面、控件等组件的交互行为是设计的基本的元素。我关注的最多的设计规范是SAP的Fiori,Salesforce的Lightning,蚂蚁金服的Ant Design。Fiori发布于2013年,后两者发布于2015年。我用了很长的时间观察和学习这些设计规范的变迁,这三者有各自的风格和特性并且都在不断的进化,组件日益成熟。

Principles For Designing Better Products
As a general rule, to build something great is not about more hours and resources thrown at a problem, but less bullshit.

7 Forbidden Web Design Techniques for UI Designers
With that in mind, let’s take a look at several web design techniques which should be left on the cutting room floor when it comes to UI optimization. Avoid these techniques actively and your site will be more engaging as a result.

Why Full-stack Developers Make the Best UX Engineers
All UX Engineers have four common traits: A solid understanding of programming fundamentals; A strong advocacy for UX, adept at UI implementation; Great collaboration skills to work alongside design, research, and product partners; Bi-lingual in pixels and pointer.

The New Design Frontier
An industry-spanning report that redefines design maturity today. InVision surveyed thousands of companies to explore the relationship between design practices and business performance. Explore the highlights here, and download the full report now to transform the way you work.


Reflecting on My Failure to Build a Billion-Dollar Company
In 2011 I left my job as the second employee at Pinterest–before I vested any of my stock–to work on what I thought would be my life’s work: Gumroad. It would become a billion-dollar company, with hundreds of employees. It would IPO, and I would work on it until I died. Something like that. That didn’t happen. Now, it may look like I am in an enviable position, running a profitable, growing, and low-maintenance software business with customers who adore us. But for years, I considered myself a failure. At my lowest point, I had to lay off 75% of my company, including many of my best friends. I had failed. I no longer feel shame in the path I took to get to where I am today. It took me years to realize that I was misguided from the outset. This is that journey, from the beginning.

腾讯发布2019互联网趋势报告,205页PPT解读16大机会 https://mp.weixin.qq.com/s?__biz=MjM5NDI2NDU5Mw==&mid=2655260666&idx=1&sn=cdf7fd852dbad127e2e5822bae9d7b5f



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