FEX 技术周刊 - 2018/12/10
Microsoft Connect(); 2018 Conference
附：Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect(); 2018.
Flutter 1.0: Google’s Portable UI Toolkit
We’re announcing Flutter 1.0, the first stable release of Google’s UI toolkit for creating beautiful, native experiences for iOS and Android from a single codebase. Cross-platform mobile development today is full of compromise. Developers are forced to choose between either building the same app multiple times for multiple operating systems, or to accept a lowest common denominator solution that trades native speed and accuracy for portability. With Flutter, we believe we have a solution that gives you the best of both worlds: hardware-accelerated graphics and UI, powered by native ARM code, targeting both popular mobile operating systems. 另附：Hummingbird: Building Flutter for the Web.
Angular Console: What is it and why is it valuable for you?
When trying to learn or design a piece of software, I believe the most important place to start is to concretely define a mental model of what exactly that piece of software is attempting to convey to its end user. So let’s start there, with an overview of Angular console’s current design and feature set. After that, we’ll move onto to a discussion of where the Angular team and Nrwl want to take Angular Console in the future.
What’s on the NativeScript Roadmap for 2019?
NativeScript + Vue.js; Improved Developer Experience; Code-Sharing between Web and Mobile; nativescript-web; Analytics & Crashlytics; Achieve a Rich and Beautiful UI.
Inside Fiber: in-depth overview of the new reconciliation algorithm in React
The how and why on everything from React elements to Fiber nodes.
Use React.lazy and Suspense to Code-Split Your App
React.lazy takes practices and libraries that have already existed in the ecosystem and codified them as a best practice by providing first-party support. This is a wonderful step forward for React and is an example of what it does best: make hard things simple and simple things…
How Does React Tell a Class from a Function?
This blog is for a curious reader who wants to know why React works in a certain way. Are you that person? Then let’s dig in together. 另附：Why Do React Elements Have a $$typeof Property?、Why Do We Write super(props)?.
In this article, we’re going to dig into the concept of CSS-in-JS. If you’re already acquainted with this concept, you might still enjoy a stroll through the philosophy of that approach, and you might be even more interested in the next article. 另附：Announcing Emotion 10 - The Next Generation of CSS-in-JS
An Introduction to CSS Shapes
CSS Shapes allow us to make interesting and unique layouts by defining geometric shapes, images, and gradients that text content can flow around. Learn how to use them in this tutorial. 另附：CSS Animation 101、A look at CSS Resets in 2018.
Progressive Web Apps: The Case for PWAs
Did you know that there are three brain networks that are involved in creativity? In this article, Susan Weinschenk explores what creativity is, the recent brain science on what is happening in your brain when you are being creative, and the role of creativity in UX design. 另附：Progressive Web Apps: The Case for PWAs
QUIC and HTTP/3 : Too big to fail?!
This post takes a (nuanced) “devil’s advocate” viewpoint and looks at how QUIC and HTTP/3 might still fail in practice, despite the large amount of current enthusiasm. In all fairness, I will also mention counter arguments to each point and let the reader make up their own mind, hopefully after plenty of additional discussion. 另附：HTTP/2 Prioritization、HTTP/2 and the HOL in the Waterfall
Serverless SSR: A Case Study
One of the most fascinating use-cases for such functions is server-side rendering (SSR). In other words, when visitors or search engines go to your web app, they can receive everything they need in just one network hop. In most front-end circles, a User Interface is described as a function of the state of an application: UI = F(S) is a relatively common equation among UI engineers. With SSR, UI essentially becomes a cloud function of the app’s data.
Cache warming: Agility for a stateful service
In this blog, we discussed the architecture of our cache warming infrastructure. The flexible cache warming architecture allowed us to copy data from existing replicas to one more new replicas and warm up nodes that were terminated or replaced due to hardware issues. Our architecture also enabled us to control the pace of cache warmup due to the loose coupling between the cache Dumper and Populator and various configurable tune-up settings. We have been using cache warmer to scale & warm up the caches for a few months now and we plan to extend it to support other systems.
Managing Real-time Event Streams and SQL Analytics with Apache Kafka on Heroku, Amazon Redshift, and Metabase
In this post, we’ll show you how to build a system using Apache Kafka on Heroku to manage and visualize event streams from any type of data producer. We’ll also see how you can build consumers that can push those event streams from Heroku into Amazon Redshift for further analysis using Metabase, an open source product analytics tool.
How Airbnb is Moving 10x Faster at Scale with GraphQL and Apollo
Much more important than any one of these tricks is the broader point about moving exceptionally fast and automating as much of the process as possible, particularly around boilerplate, types, and file creation. Apollo CLI takes care of all the Apollo-specific domain, which free you up to wire those utilities up in a way that makes sense for your use case.
The Great Migration: From Monolith to Service-oriented
Jessica Tai provides an overview of trade-offs and motivation for the SOA migration. She discusses Airbnb’s architectural tenets around service building and dives deep into lessons learned and best practices developed when undertaking the massive SOA challenge.
AlphaFold: Using AI for scientific discovery
We’re excited to share DeepMind’s first significant milestone in demonstrating how artificial intelligence research can drive and accelerate new scientific discoveries. With a strongly interdisciplinary approach to our work, DeepMind has brought together experts from the fields of structural biology, physics, and machine learning to apply cutting-edge techniques to predict the 3D structure of a protein based solely on its genetic sequence.
Back to the Future with Relational NoSQL
The database world is undergoing a renaissance as the primitives of the legacy RDBMS (ACID transactions, relations, constraints, normalized modeling) are being rebuilt for a distributed world.These new systems are technically CP, not AP, but are extremely fault-tolerant.Most of these systems rely on Google’s Spanner or Percolator protocols, which use two-phase locking and require physically synchronized clocks to guarantee consistency.Some systems, like FaunaDB, take a pre-commit approach based on the Calvin protocol, which offers stronger guarantees without specialized hardware.In either case, systems developers no longer have to give up transactions to get scale and availability in the real world.
The two schools of thought in open source
Open source means a lot of different things to different people. Naturally, when talking about open source, it will bring out different connotations depending on who you’re talking to. But there is another dimension to open source that is not often acknowledged: monolithic style versus modular style of open sourcing reusable code. I’ll explain the many differences between these two, but this is not an article about code, it’s an article about people and how they approach programming in different ways.
Microsoft Edge: Making the web better through more open source collaboration
We’re announcing that we intend to adopt the Chromium open source project in the development of Microsoft Edge on the desktop to create better web compatibility for our customers and less fragmentation of the web for all web developers. 附：Microsoft is rebuilding its Edge browser on Chrome and bringing it to the Mac、Goodbye, EdgeHTML - By Firefox、The State of Web Browsers、Electron and the Decline of Native Apps、Browser Diversity Commentary, Regarding the Edge News、Microsoft’s Project Anaheim and the Future of the Microsoft Browser.
The Digital Enterprise – W3C Graph Data Workshop
The W3C workshop will bring together experts in relational databases, property graphs, RDF/Linked Data, big data, and artificial intelligence and machine learning with a view to forging a shared vision for future needs for graph data, and alignment on graph data query languages. We will discuss what’s needed for positioning RDF as an interchange format between different graph database solutions, making RDF easier to use by the vast majority of developers, and opportunities for blending symbolic and statistical approaches for tackling the challenges of real-world data that is incomplete, uncertain, inconsistent and includes errors.
IntelliCode augments your IntelliSense by recommending commonly used completion items for your current context at the top of your list. These contextual recommendations are generated by common practices learned from having IntelliCode train across thousands of real-world projects. This saves you time by putting what you’re most likely to use at the top of your list, so you don’t have to search though alphabetical suggestions. 另附：PM2 Explorer - Manage PM2 from within VSCode.
Puppeteer for Firefox
Use Puppeteer’s API with Firefox. BEWARE: This project is experimental.
react-reduct - v6.0.0
This is our first big release supporting the new Context API added in React 16.4! No more blocked updates! 另附：Rebuilding Redux with Hooks and Context.、Redux Docs Redesign Survey.
Babel - 7.2.0 Released: Private Instance Methods
Qt 5.12 LTS Released
Just in time for the end of the year, we have released Qt 5.12 LTS today. This is a long-term-supported (LTS) release that we will support for 3 years to come. We have had a strong focus on quality and fixed more than 2000 bugs since the last Qt LTS version, Qt 5.9.7 – make that over 5000 bugfixes since Qt 5.6.3. Of course, this is only the start, and we will work hard on continuously improving the quality of Qt 5.12 in upcoming patches.
Nginx on Wasmjit
As of a few days ago, Wasmjit is able to run Nginx 1.15.3 in user space. This means you can use Wasmjit to run the same nginx.wasm on all POSIX systems. So far it’s been tested on Linux, OpenBSD, and macOS. Wasmjit is still alpha-level software in development. Don’t use it in production unless you’re willing to deal with unpredictable circumstances.
Rust 2018 is here… but what is it?
Starting today, the Rust 2018 edition is in its first release. With this edition, we’ve focused on productivity… on making Rust developers as productive as they can be.
A Programmer’s Introduction to Mathematics
For the last four years I’ve been working on a book for programmers who want to learn mathematics. The website for the book is pimbook.org. If you’re a programmer who wants to learn math, this book is written specifically for you! Why? Because programming and math are naturally complementary, and programmers have a leg up in learning math. Many of the underlying modes of thought in mathematics are present in programming, or are otherwise easy to explain by analogies and contrasts to familiar concepts in software.
The State of UX for 2019
In this article, we’ll take a brief look at what happened with 2018 UX trends. We’ll also try to anticipate the emerging tendencies that have potential to become new big things in the coming year. 另附：Mobile app design in 2019
Best Design Practices for Single-Page Websites
Debates around single- and multi-page websites are ongoing. Because they’re faster to create and easier to maintain, single-page websites often have an advantage over multi-page ones. However, despite its relative simplicity, single-page website design requires creative thinking and thorough planning. Today, we’re going to shed light on effective design practices focused on strengthening the user experience of your single-page website.
An Intro to Designing for Accessibility
There are five categories of disabilities to keep in mind. Sight: low-vision, blind, cataracts, distracted vision. Hearing: ear infection, noisy environment, deaf. Speech: heavy accent, laryngitis, non-verbal. Touch: temporary injury, permanent disability. Cognitive Abilities: motor perception, short and long-term memory, sustained attention, cultural knowledge.
A blogging style guide
Here are 39 ways to make your blog more entertaining to read and more pleasurable to write.
Scaling engineering organizations
At Stripe, we think a lot about scale. As we’ve scaled our products to process billions of dollars a year for millions of businesses, we’ve also needed to scale our engineering team. There’s a temptation for fast-growing companies to build their engineering team as quickly as possible. However, there are risks with rapid growth that include creating silos, diminishing user impact per engineer over time, and limiting ability to change how you work quickly to respond to changing user needs. This guide talks through some of the things we’ve learned along the way.
– THE END –