FEX 技术周刊 - 2018/08/06
Introducing Fusion.js: A Plugin-based Universal Web Framework
A little-known fact is that Uber builds a lot of web-based applications, hundreds of them and counting, in fact. Many of them are internal apps for managing various aspects of the business while others are public facing. A more well-known fact is that web technologies change quickly and best practices are constantly evolving. Providing a high quality framework with modern features to hundreds of web engineers while keeping up with the dynamic nature of the web platform has historically been a challenge. To address this challenge, Uber’s Web Platform team built Fusion.js, an open source web framework that makes web development easier and produces lightweight, high-performing apps.
A Look Ahead: Web Development Predictions
In this post, I would like to share some predictions about the world of web development. Making predictions is dangerous because there are high chances that they will be wrong. However, I enjoy thinking about the future because it is exciting and it can help us to identify potential future career opportunities. Remember that all innovations start as a fantasy.
React v16.4.2: Server-side vulnerability fix
We discovered a minor vulnerability that might affect some apps using ReactDOMServer. We are releasing a patch version for every affected React minor release so that you can upgrade with no friction. Read on for more details.
虽然 Node 的单线程特性给其提供的服务带来了许多问题，但只要我们积极面对这些问题，用合理的方法（如使用 child_process 等模块或构建分布式集群）去解决他们，发挥 Node 的各种优势，就可以享受到它所带来的好处！
Node 案发现场揭秘 —— Coredump 还原线上异常
Node.js 发展到今天，已经被越来越广泛地应用到 BFF 前后端分离 、 全栈开发 、 客户端工具 等领域。然而，相对于应用层的蓬勃发展，其 Runtime 对于绝大部分前端出身的开发者来说，处于黑盒的状态，这一点并没有得到很好的改善，从而也阻碍了 Node.js 在业务中的应用和推广。本文将介绍一种基于 Core dump 来分析定位线上应用故障的方法。
ProseMirror - 模块化的富文本编辑框架
另附：What Happens When You Create A Flexbox Flex Container
另附：Demo: GitLab + Jira + Jenkins
Google announces Grab and Go program for Chromebooks, powered by Angular
Last week at Google Cloud Next, the Grab and Go team showed off their newly announced Grab and Go program: a self service program for enterprises to automate managing Chromebook assets. An Angular application powers this program which automatically manages Chromebook assignments based on user logins. All of Google’s internal loaner Chromebook fleet is managed with this program, serving 30,000 unique users and over 100,000 loans last year.
另附：What’s New in WebStorm for Angular
The Web Push Checklist
We used a checklist-based approach to enable Web Push. This checklist encapsulates our learnings and research to provide the best user experience when dealing with notifications. In this post, we will outline that checklist.
I created the exact same app in React and Vue. Here are the differences
I’d read the React docs and watched a few tutorial videos and, while they were great and all, what I really wanted to know was how different React was from Vue. By “different”, I didn’t mean things such as whether they both had virtual DOMS or how they went about rendering pages. I wanted someone to take the time to explain the code and to tell me what was going on! I wanted to find an article that took the time to explain these differences so that someone new to either Vue or React (or Web Development as a whole) could gain a better understanding of the differences between the two.
Node.js Best Practices
The largest Node.JS best practices list. 附：We’re under attack! 23+ Node.js security best practices
Introducing Clinic Bubbleprof, a unique way to visualise Node.js code
In a nutshell, Bubbleprof observes the async operations of your application, groups them, measures their delays, and draws a map of the delays in your application’s async flow. The real power of the tool was demonstrated recently where it uncovered inefficiencies in both the Fastify web framework and in Node.js Core itself! The team has written a deep-dive blogpost into the features, technology and usage of Bubbleprof. In this post I want to cover some high level topics.
What Do You Need To Know When Converting A Flash Game Into HTML5
Xamarin vs React Native: the complete guide
Tips for selecting the ideal cross-platform mobile development framework for your project.
How we scaled nginx and saved the world 54 years every day
10 million websites, apps and APIs use Cloudflare to give their users a speed boost. At peak we serve more than 10 million requests a second across our 151 data centers. Over the years we’ve made many modifications to our version of NGINX to handle our growth. This is blog post is about one of them.
SQL vs. Flux: Choosing the right query language for time-series data
An examination of the strengths and weaknesses of SQL, and why query planners exist, by way of comparing TimescaleDB and InfluxDB.
另附：QLoo Creates GraphQL Interface for Existing Services
The story of a statistical programming language that became a subcultural phenomenon.
Go 1.11 Modules
Go 1.11 will add preliminary support for versioned modules as proposed here. Go modules will be an experimental opt-in feature in Go 1.11, with the hope of incorporating feedback and finalizing the feature for Go 1.12. Even though the details may change, future releases will support modules defined using Go 1.11 or vgo.
Ant Design 3.8.0
Announcing TypeScript 3.0
Which brings us to TypeScript 3.0! Despite the new big number, 3.0 has few breaking changes (meaning it should be very easy to upgrade) and introduces a new flexible and scalable way to structure your projects, powerful new support for operating on parameter lists, new types to enforce explicit checks, better JSX support, an overall better error UX, and much more! 附：译文
Filament - Physically-based rendering engine
Filament is a physically based rendering (PBR) engine for Android. The goal of Filament is to offer a set of tools and APIs for Android developers that will enable them to create high quality 2D and 3D rendering with ease.
Introducing the Dweb
The “d” in “dweb” usually stands for either decentralized or distributed. What is the difference between distributed vs decentralized architectures?
另附：You can now access a decentralized version of Archive.org、Chrome 69 Beta: CSS tricks, and more、Release Notes for Safari Technology Preview 62
Announcing GitHub Desktop 1.3
With the GitHub Desktop 1.3 release, you’ll be notified when your branch diverges from your repository’s default branch.
Istio reaches 1.0: ready for prod
The Istio open-source project has reached the 1.0 milestone. This is a key step toward delivering the Cloud Services Platform that we discussed last week, helping you manage your services in a hybrid world where some of your infrastructure runs on VMs and some in Kubernetes, some services run in the cloud and some on-premises. 另附：Celebrating Istio service mesh project at 1.0 and what it means for the Kubernetes community.
Removing Babel’s Stage Presets
Moving forward with v7, we’ve decided it’s best to stop publishing the Stage presets in Babel (e.g. @babel/preset-stage-0). We didn’t make this decision lightly and wanted to show the context behind the interplay between TC39, Babel, and the community.
Js13kGames - 2018
Gio.js is an open source library for web 3D globe data visualization built with Three.js. What makes Gio.js different is that it is simple to use Gio.js to customize a 3D data visualization model in a declarative way, add your own data, and integrate it into your own modern web application.
Useful JS libraries for exploring human-brain signals and reading people’s minds.
Vialer-js - Pluggable WebRTC communication platform
Vialer-js is a free and open-source communication platform in development. It’s purpose is to be an attractive unified communication tool to end-users, who value cross-platform user- and privacy-friendly features, like being able to accept and place calls over a phone network, setting up (p2p) video conferences, chatting and sharing files; all over secured encrypted channels.
UPASH - Unified API for password hashing algorithms
The upash (pronounced u-pash) project aims is to allow you to have a clean and easy-to-use API to use any password hashing algorithm seamlessly in your application.
Refresh - A fresh approach to the browser
It’s a collection of ideas for a modern web browser for touchscreen devices based on iOS Safari. The prototypes we developed are all designed for iPad but their concepts could apply to desktop and smaller touchscreens as well.
Code With Mu
Mu is a Python code editor for beginner programmers based on extensive feedback given by teachers and learners.
另附：Django 2.1 release notes
Open source content management for your Git workflow. Use Netlify CMS with any static site generator for a faster and more flexible web project.
CIP：延续 Linux 之光
Google’s New Book: - The Site Reliability Workbook
Freely downloadable until August 23 download, this new book is packed with concrete examples and case studies of putting SRE principles and practices to work.
Framer X - Interactive Design for Everyone
Framer X has all the features you need to draw everything from custom icons to intricate illustrations. Fine-tune your designs with our advanced path editor, export anything from your canvas, and more.
Learning From Terminals to Design the Future of User Interfaces
A successful interface isn’t one that looks good in a still screenshot, it’s one that maximizes our productivity and lets us keep moving. Legibility and whitespace are great, but they’re of vanishing unimportance compared to speed and responsiveness. Neither a terminal nor today’s web apps are what the future should look like, but the terminal is closer.
Your Friendly Guide to Colors in Data Visualisation
That was more than two years ago. Since then, great people have released greater tools, and I can write more confidently about colors. It’s time for an update! I tried to stay as close to the original post as possible and just update screenshots and improve explanations. Here we go.
另附：An argument for incorporating color early on in UX design.
The Rules of Effective UX Writing
UX writing is the practice of crafting UI copy that guides users within a product and helps them interact with it. UI copy includes buttons and menu labels, error messages, security notes, terms and conditions, as well as any instructions on product usage. The primary aim of UX writing is to settle communication between users and a digital product. In this article, I’ll provide some practical tips on effective UX writing.
另附：The ROI of UX writing.
Storybook by React — Design System Development
Design systems are a collaborative bridge between designers and engineers. The efficiency of project development helps business testing, and the world of business is not about precision, but to speed up testing and adjust direction at any time.
Designing a complex table for mobile consumption
When faced with overwhelming content, focusing on user behavior can help define the design approach.
We’ve trained a human-like robot hand to manipulate physical objects with unprecedented dexterity. Our system, called Dactyl, is trained entirely in simulation and transfers its knowledge to reality, adapting to real-world physics using techniques we’ve been working on for the past year. Dactyl learns from scratch using the same general-purpose reinforcement learning algorithm and code as OpenAI Five. Our results show that it’s possible to train agents in simulation and have them solve real-world tasks, without physically-accurate modeling of the world.
How Technology Grows (a restatement of definite optimism)
I submit that we have two big biases when we talk about technology. First, we think about it too much in terms of tools and recipes, when really we should think about it more in terms of process knowledge and technical experience. Second, most of us focus too much on the digital world and not enough on the industrial world. Our obsession with the digital world has pushed our expectation of the technological future in the direction of cyberpunk dystopia; I hope instead that we can look forward to a joyful vision of the technological future, driven by advances in industry. This is one of my longer essays; the final section summarizes the main points.
– THE END –