FEX 技术周刊 - 2019/05/06
F8 - 2019
- Building the New facebook.com with React, GraphQL and Relay
- React Native at F8 and Open Source Podcast
- Open source at F8 2019
- F8 2019 keynote and session videos: Day 1, Day 2
附：It’s a Wrap – Highlights from the DockerCon 2019 Keynote Sessions.
Local-first software - You own your data, in spite of the cloud
In this article we propose “local-first software”: a set of principles for software that enables both collaboration and ownership for users. Local-first ideals include the ability to work offline and collaborate across multiple devices, while also improving the security, privacy, long-term preservation, and user control of data.
How to use React Context effectively
Don’t reach for context to solve every state sharing problem. Context does NOT have to be global to the whole app. You can have multiple logically separated contexts in your app. 另附：How to useReducer in React?.
7 Tools for Developing Web Components in 2019
In this post, I’ll review 5 unranked tools you should know and consider if you’re thinking one putting web components to use in 2019. 另附：Making Web Components for Different Contexts.
爬取2000篇 Matrix 文章，这是一份可视化踹门教程
我们处在一个高度信息化的时代， 时刻都会在互联网上留下大量的访问痕迹——数据，小到日常的消费账单，大到一笔一笔的银行流水。这些留下来的海量数据无疑是对现实世界的简化和抽象表达，但对于大部分人来说，它们只是 Excel 里面的行行列列，不仅可读性差，而且晦涩难懂。如何提高数据的可读性，很大程度上取决于你看数据的方式，解读数据的方式。比如，我们可以将抽象的数据再抽象，经过二次抽象的数据变成了图表，反而可读性更高，更利于人们理解。提到数据可视化，Python、R、D3 甚至是 Excel，能够产生美妙图表的工具数不胜数，但它们大多都有一些技术门槛，要求你至少有一些编程基础，这对于非科班出身的人来说，并不友好。所以，我希望能减少对技术的依赖，去寻找一些优秀工具，同样能获得不错的可视化效果。
Node.js Best Practices
You are, in fact, reading dozens of the best Node.js articles - this repository is a summary and curation of the top-ranked content on Node.js best practices, as well as content written here by collaborators.
Node.js v12 - New Features You Shouldn’t Miss
Node.js v12 is out on schedule! It is going into LTS in October and will be maintained until 2022. Here is a list of changes we consider essential to highlight.
Understand how to approach designing queues in Node
A new scenario you might not have faced before: you have a long running task (like saving to a bunch of different databases, or processing video) that takes a while to process and it’s currently causing your REST API response times to be way too slow for the end user. After some research, you’ve realized adding a queue to your architecture would solve your problem. The only problem is, working out how a queue actually works is confusing. In this post we’ll be going over the architecture for how a queue works (using the reliable queue pattern) so you can achieve exactly these things.
The Many Benefits of Using a Monorepo
We’re extremely happy with our monorepo and plan to move even more projects to it. Along with simplifying the workflows, it brings our various platform teams closer together and encourages them to “dig deeper” and fix issues across all platforms instead of delegating things to other teams.
GitLab’s journey from Azure to GCP
Gitlab Staff Engineer Andrew Newdigate shares how we completed our migration to Google Cloud Platform, and how we overcame
Dropbox is building features to help users stay focused on what matters. Searching through your content can be tedious, so we built content suggestions to make it easier to find the files you need, when you need them.challenges along the way.
Real-time Data Processing for Monitoring and Reporting
A practical use case of spark structured streaming.
Using machine learning to predict what file you need next
Dropbox is building features to help users stay focused on what matters. Searching through your content can be tedious, so we built content suggestions to make it easier to find the files you need, when you need them. We’ve built this feature using modern machine learning (ML) techniques, but the process to get here started with a simple question: how do people find their files? What kinds of behavior patterns are most common?
6 Technical Challenges Developing a Distributed SQL Database
We crossed the three year mark of developing YugaByte DB in February of this year. It has been a thrilling journey thus far, but not without its fair share of technical challenges. There were times when we had to go back to the drawing board and even sift through academic research to find a better solution than what we had at hand. In this post we’ll outline some of the hardest architectural issues we have had to address in our journey of building an open source, cloud native, high-performance distributed SQL database. Look for subsequent posts that will dive-deep into each respective issue. OK, let’s get started exploring these issues from easiest to most challenging.
I/O Is Faster Than the CPU – Let’s Partition Resources and Eliminate (Most) OS Abstractions
I/O is getting faster in servers that have fast programmable NICs and non-volatile main memory operating close to the speed of DRAM, but single-threaded CPU speeds have stagnated. Applications cannot take advantage of modern hardware capabilities when using interfaces built around abstractions that assume I/O to be slow. We therefore propose a structure for an OS called parakernel, which eliminates most OS abstractions and provides interfaces for applications to leverage the full potential of the underlying hardware. The parakernel facilitates application-level parallelism by securely partitioning the resources and multiplexing only those resources that are not partitioned.
A World Run with Code
This is an edited transcript of a recent talk I gave at a blockchain conference, where I said I’d talk about “What will the world be like when computational intelligence and computational contracts are ubiquitous?”
Python at Netflix
As many of us prepare to go to PyCon, we wanted to share a sampling of how Python is used at Netflix. We use Python through the full content lifecycle, from deciding which content to fund all the way to operating the CDN that serves the final video to 148 million members. We use and contribute to many open-source Python packages, some of which are mentioned below. If any of this interests you, check out the jobs site or find us at PyCon. We have donated a few Netflix Originals posters to the PyLadies Auction and look forward to seeing you all there.
Remote Development with VS Code
We’re excited to announce the preview of three new extensions for Visual Studio Code that enable seamless development in Containers, remotely on physical or virtual machines, and with the Windows Subsystem for Linux (WSL). You can get started right away by installing the Remote Development Extension Pack.
Easy Automatic npm Publishes
One common question from people using npm to publish, especially on CI systems, is how best to automate the process, especially when dealing with multiple branches. For a while now, I’ve been using a pattern that takes almost all of the human interaction out of it, since I tend to mess stuff up when I type it with my fingers. This works well for automatic publishes from CI or when publishing manually from a terminal.
now dev – Serverless, on localhost
Now was born out of the idea that deploying a website could be much simpler. You only have to run a single command: now – that is all. We are excited to announce one command to run it all on localhost: now dev.
ws: a Node.js WebSocket library v7.0
Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js.
Owning it: browser compatibility data and open source governance
What does it mean to “own” an open-source project? With the browser-compat-data project (“BCD”), the MDN (Mozilla Developer Network) community and I recently had the opportunity to find out.
Editor.js: A Block-Styled Editor with JSON Output
Editor.js is a Block-Styled editor. Blocks are structural units, of which the Entry is composed. For example, Paragraph, Heading, Image, Video, List are Blocks. Each Block is represented by Plugin. We have many ready-to-use Plugins and a simple API for creating new ones.
Babylon.js 4.0 Is Here!
We cannot be more excited to share that Babylon.js 4.0 has officially been released. This version of Babylon.js is a major step forward in one of the world’s leading WebGL-based, graphics engines. Babylon.js 4.0 represents an incredible amount of hard work by a very passionate community of developers from around the world, and it is our honor to share it with all of you.
A collection of UI Frameworks and their platform implementations.
Material-UI: Google Material Design-Inspired Components v4.0.0 beta
React components for faster and easier web development. Build your own design system, or start with Material Design.
Simple and complete React DOM testing utilities that encourage good testing practices.
SOUL - The Future of Audio Coding
The SOUL project is creating a new language and infrastructure for writing and deploying audio code. It aims to unlock improvements in latency, performance, portability and ease-of-development that aren’t possible with the current mainstream techniques that are being used.
Apache Software Foundation joins GitHub open source community
We’re excited to welcome the Apache Software Foundation (ASF) to GitHub. Apache is the world’s largest open source foundation, with over 200 million lines of code managed by an all-volunteer community of 730 members and 7,000 committers. Over their 20 year history, one billion lines of code have been committed across three million code commits. 另附：Create your own course on GitHub Learning Lab.
Why Software Projects need Heroes (Lessons Learned from 1100+ Projects)
A “hero” project is one where 80% or more of the contributions are made by the 20% of the developers. In the literature, such projects are deprecated since they might cause bottlenecks in development and communication. However, there is little empirical evidence on this matter. Further, recent studies show that such hero projects are very prevalent. Accordingly, this paper explores the effect of having heroes in project, from a code quality perspective. We identify the heroes developer communities in 1100+ open source GitHub projects. Based on the analysis, we find that (a) hero projects are majorly all projects; and (b) the commits from “hero developers” (who contribute most to the code) result in far fewer bugs than other developers. That is, contrary to the literature, heroes are standard and very useful part of modern open source projects.
Android App Reverse Engineering 101
Welcome to AndroidTM App Reverse Engineering 101! This workshop’s goal is to give you the foundations to begin reverse engineering Android applications. While this workshop won’t teach you the details of Android app development, Android malware analysis, Android vulnerability hunting, etc., I hope to give you all the necessary foundations through this workshop such that you can apply your new Android reversing skills to doing those things.
GNU Guix 1.0.0 released
Guix is an advanced distribution of the GNU operating system developed by the GNU Project—which respects the freedom of computer users. Guix supports transactional upgrades and roll-backs, unprivileged package management, and more. When used as a standalone distribution, Guix supports declarative system configuration for transparent and reproducible operating systems. It provides Guile Scheme APIs, including high-level embedded domain-specific languages (EDSLs) to define packages and whole-system configurations.
1MB is a free and easy static website host.
Introduction - The Embedded Rust Book
Embedded Rust is for everyone who wants to do embedded programming while taking advantage of the higher-level concepts and safety guarantees the Rust language provides. 另附：Risp (in (Rust) (Lisp)).
Mobile UX Design Principles and Best Practices
Good design is good design, right? True, but there are specialized considerations that come into play depending on the medium for that design. Design principles for something like an app made to run on a desktop computer are usually slightly different from the most effective mobile UX design conventions.
Ultimate Guide to UX Animation
Animations are frequently used as a tool to demonstrate or explain concepts. Done right, they can really add to the user experience. Not only can they increase understanding, but they can also better hold the user’s attention.
Designing For The Future With Voice Prototypes
Human-machine communication is rapidly expanding to encompass both written and spoken interaction, and it’s essential to be ready to design for both visual and voice. Since prototyping for voice is new for many designers, it may be unclear as to where to start and what process to follow.
(Th)Inking with data — tapping into the potential of the digital pen
The digital experience doesn’t match the sensory aspect—the tactile, visual, and auditory feedback—of the analog experience. Affordability and reliability are also among the many reasons why people might choose pen and paper over the digital option. Instead of seeking to emulate the analog experience, our aspiration is to uncover the unique capabilities of the digital pen. Our research aims to give the digital pen superpowers for marking documents in ways that go beyond what is possible with physical pen and paper.
Golden - The intelligent, open knowledge base
Explore the world’s first self-constructing knowledge database built by artificial and human intelligence.
Microsoft, Slack, Zoom, and the SaaS Opportunity
It is difficult to discuss enterprise software without at least mentioning Microsoft, and there is no better time than now: last week the company (briefly) became the third U.S. company, after Apple and Amazon, to achieve a market capitalization of over $1 trillion, and is currently the most valuable publicly-listed company in the world.
吴军 - 人类也许高估了20年后发生的事
– THE END –