FEX 技术周刊 - 2018/12/10
业界会议
Microsoft Connect(); 2018 Conference
https://www.microsoft.com/en-us/connectevent/
附:Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect(); 2018.
深阅读
Flutter 1.0: Google’s Portable UI Toolkit
https://developers.googleblog.com/2018/12/flutter-10-googles-portable-ui-toolkit.html
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?
https://blog.angular.io/angular-console-21d36c02ff76
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.
This year in JavaScript: 2018 in review and npm’s predictions for 2019
https://blog.npmjs.org/post/180868064080/this-year-in-javascript-2018-in-review-and-npms
npm has over 10 million users who download well over 30 billion packages every month. On an average Tuesday—npm’s busiest day—users download more than 1.3 billion packages of open source JavaScript. This gives us a lot of information about what JavaScript users are up to. On top of that data, in partnership with the Node.js Foundation and the JS Foundation we survey of over 16,000 developers to ask what they’re up to. From these two sources, we’ve uncovered some insights about the makeup of the npm community, as well as information about what the community considers to be best practices. This will help you make your technical choices in 2019. 另附:npm - 2018 JavaScript Ecosystem Survey、Reddit’s Year in Review: 2018、Top 10 Algorithmia Blog Posts of 2018
What’s on the NativeScript Roadmap for 2019?
https://www.nativescript.org/blog/whats-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.
技术十年:美团第一位前端工程师潘魏增
https://tech.meituan.com/renwuzhi_panweizeng.html
从饭否到美团,潘魏增用十年的技术生涯,诠释了“长期有耐心”这句话的含义。在他看来,长期有耐心,其实也是延迟满足感。对从事的行业来讲,我们要把眼光放得更长远一些,十年后才有回报的生意,往往都是大买卖。对个人来讲,不要把职位、职级这些虚的东西看得过重,关键看我们自己在其中承担什么角色,看我们自己的能力是否还有成长的空间。
Inside Fiber: in-depth overview of the new reconciliation algorithm in React
https://medium.com/react-in-depth/inside-fiber-in-depth-overview-of-the-new-reconciliation-algorithm-in-react-e1c04700ef6e
The how and why on everything from React elements to Fiber nodes.
Use React.lazy and Suspense to Code-Split Your App
https://hswolff.com/blog/react-lazy-and-suspense/
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?
https://overreacted.io/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)?.
Bridging the Gap Between CSS and JavaScript: CSS-in-JS
https://css-tricks.com/bridging-the-gap-between-css-and-javascript-css-in-js/
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
https://tympanus.net/codrops/2018/11/29/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
https://www.smashingmagazine.com/2018/12/role-of-creativity-ux-design/
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?!
https://calendar.perfplanet.com/2018/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
https://zeit.co/blog/serverless-ssr
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
https://medium.com/netflix-techblog/cache-warming-agility-for-a-stateful-service-2d3b1da82642
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
https://blog.heroku.com/event-streams-kafka-redshift-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
https://medium.com/airbnb-engineering/how-airbnb-is-moving-10x-faster-at-scale-with-graphql-and-apollo-aa4ec92d69e2
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
https://www.infoq.com/presentations/airbnb-soa-migration
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
https://deepmind.com/blog/alphafold/
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
https://www.infoq.com/articles/relational-nosql-fauna
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
https://alistapart.com/article/progressive-web-apps-excerpt
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
https://blogs.windows.com/windowsexperience/2018/12/06/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
https://www.w3.org/blog/2018/12/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 for TypeScript/JavaScript
https://blogs.msdn.microsoft.com/typescript/2018/12/05/intellicode-for-typescript-javascript/
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
https://github.com/GoogleChrome/puppeteer/tree/master/experimental/puppeteer-firefox
Use Puppeteer’s API with Firefox. BEWARE: This project is experimental.
react-reduct - v6.0.0
https://github.com/reduxjs/react-redux/releases/tag/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
https://babeljs.io/blog/2018/12/03/7.2.0
Qt 5.12 LTS Released
http://blog.qt.io/blog/2018/12/06/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.
jsPDF
https://github.com/MrRio/jsPDF
A library to generate PDFs in client-side JavaScript.
Nginx on Wasmjit
https://www.wasmjit.org/blog/nginx-on-wasmjit.html
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?
https://hacks.mozilla.org/2018/12/rust-2018-is-here/
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
https://jeremykun.com/2018/12/01/a-programmers-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.
设计
百度网盘品牌升级背后的故事
http://mux.baidu.com/915
百度网盘是百度提供的个人云存储服务,自2013年上线至今,通过强大的技术能力以及承担高额的带宽成本,为7亿用户提供文件存储、备份、分享、共享等服务,成为行业领先位置。这5年里,我们从满足基础存储需求的一款工具,到现在越来越意识到高品质和情感化的体验对于用户的重要性。因此,团队希望通过本次的品牌升级,能够从视觉识别、产品体验、线上线下推广等多维度来传递品牌核心价值,同时遵从极简克制的百度“高级感”设计理念,形成一套完整统一的设计语言,真正的做到像slogan所传递的:“让美好永远陪伴”。
The State of UX for 2019
https://millermedia7.storychief.io/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
https://uxplanet.org/best-design-practices-for-single-page-websites-f93cef95d1e1
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
https://www.sitepen.com/blog/2018/12/04/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
https://robertheaton.com/2018/12/06/a-blogging-style-guide/
Here are 39 ways to make your blog more entertaining to read and more pleasurable to write.
Scaling engineering organizations
https://stripe.com/atlas/guides/scaling-eng
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.
从超级入口到超级接口,从超级APP到超级API
https://mp.weixin.qq.com/s?__biz=MzU5OTI0NTc3Mg==&mid=2247485851&idx=1&sn=b9de458460312a148dc9bb229b05102e
有一定实力的互联网公司来说,它们都在经历一个相似的业务重点转移过程——从超级入口到超级接口,从超级APP到超级API。其根本原因是舞台换了,主角也得换。在“互联网上半场”,即以手机为主流终端的移动互联网时期,绝对主角是超级APP,核心矛盾是对日活、月活、用户使用时长的争夺。而到了“下半场”,即各类智能终端百花齐放、交互方式融入生活多元场景的物联网时期,新主角很可能是“超级接口”。
GES 2018:科技渗透,教育焕新
https://mp.weixin.qq.com/s?__biz=MjM5NzY2OTE2MQ==&mid=2652220432&idx=1&sn=6bdefa97f330b9958cc0c98601bff55d
国家提出科教兴国战略已有23年,在收入水平提高和消费分级趋势影响下,今天的中国消费者对于下一代的教育投入正在不断走高。这不仅取决于商业资源分配结构变化之下家庭在提升生活品质方面的阔绰出手——下一代的教育消费当然是在为了更好的明天而花钱。另一方面,科技的不断进步为教育发展提供了更多可能,包括打破传统教育行业的时空限制,优化教育资源输送和配置等等。12月3日,GES 2018未来教育大会正式召开,「教育与科技」作为核心议题之一,被来自海内外学术、教育与科技行业近2000位嘉宾们的关注和探讨。另附:科技、开放、普惠,未来教育的关键词都在这了.
马云:风来了,猪都会飞;风过去了,摔死的都是猪
https://mp.weixin.qq.com/s?__biz=MzIxNTAzNzU0Ng==&mid=2654614765&idx=1&sn=4c278e6226c6f160fbbabfd15b991203
企业家就是要面对不确定性,把握机遇,把不确定性变成确定性。宏观跟你没有多大关系,我们担心的90%和宏观有关系,但是90%的宏观和你都没关系。把对手看得强大一点,永远不是坏事。好未必是好,坏未必是坏,关键是企业家自己的判断。只有担当更多的责任,才会受人尊重,做事情的时候,才有根有据。越是形势不好,我们越是要有战略定力,不要去投机。
– THE END –