FEX 技术周刊 - 2019/10/14
Top-level await enables developers to use the await keyword outside of async functions. It acts like a big async function causing other modules who import them to wait before they start evaluating their body.
The State of Machine Learning Frameworks in 2019
In 2019, the war for ML frameworks has two remaining main contenders: PyTorch and TensorFlow. My analysis suggests that researchers are abandoning TensorFlow and flocking to PyTorch in droves. Meanwhile in industry, Tensorflow is currently the platform of choice, but that may not be true for long.
Tools I recommend for building Geospatial Web Applications
Being a freelance WebGIS developer, it is very frequent for me to decide what tools I’ll need for my next project. Now after a few years of experience, this decision has become a bit easier because of prior knowledge and I thought I should share it with all those who want to build a Geospatial Webapp.
Vue 3.0 公开代码之后……
源码公开后不久，社区内就有源码解析的文章出现，甚至还有培训课程打出了《从0实现 Vue 3.0 响应式源码》的噱头。尽管有一些“学不动了”的自嘲，社区里对 Vue 3.0 源码开放事件，总体上是一个非常正面的态度。在这种背景下，我注意到了两段争论，一个来自国外社区，一个来自国内；它们围绕不同的主题，却恰好拥有相同的内核。颇有意思，我认为值得分享给大家。
AntV 发布 G6 3.1 —— 潜心
自 G6 诞生以来，由 G6 承接的业务可以分为两大类，一类是图分析，另一类是图编辑。两者虽然有一定的程度上的相似，但各自的侧重点不同，前者更注重图数据的分析体验。后者更注重交互的编辑体验。之前我们使用 G6 来同时支持这两种不同类型的业务，从实际效果来看，并不能达到我们的期望。从 G6 3.1 版本开始，我们更侧重于图分析领域。
Umi UI 二期来了
Umi UI 一期做好了一个架子，但只是包含一些基础功能，而要做提效，则需要一些实打实的功能。一个月后的 Umi UI 二期带来了一些进阶功能，比如资产（区块+模板）、Mini 气泡、编译态同步、build 和 dev 文件分析等。
The Full-stack Software Design & Architecture Map
Software Design and Architecture is pretty much it’s own field of study within the realm of computing, like DevOps or UX Design. Here’s a map describing the breadth of software design and architecture, from clean code to microkernels.
99% of the Git commands you’ll need at work, demonstrated in a single script
this script creates repos in a sandbox directory and uses them for demos. add an exit command anywhere to stop the script and examine repo state. rerun the script freely. it cleans up the sandbox before each run. the sandbox dir is ignored so created files are not added to any uber repo.
The Evolution of Web Content Management
The next step is simplifying the process of developing JAMStack sites that are tied to content sources (a headless CMS, an API, or any of a number of data sources). Some part of this already started with tools like NetlifyCMS - which has a one click deploy of a CMS-backed JAMStack site - and has continued with services like Stackbit - which allows you to deploy a site by choosing a static site generator and a headless CMS and deploy it in minutes with just a few clicks.
Making Instagram.com faster: Part 3 — cache first
In recent years instagram.com has seen a lot of changes — we’ve launched stories, filters, creation tools, notifications, and direct messaging as well as a myriad of other features and enhancements. However, as the product grew, a side effect was that our web performance began to slow. Over the last year we made a conscious effort to improve this. This ongoing effort has thus far resulted in almost 50% cumulative improvement to our feed page load time. This series of blog posts will outline some of the work we’ve done that led to these improvements. In part 1 we talked about prefetching data and in part 2 we talked about improving performance by pushing data directly to the client rather than waiting for the client to request the data.
Adding Static Code Analysis to Stack Overflow
we’re applying static analysis to some of the code behind public Stack Overflow, Stack Overflow for Teams, and Stack Overflow Enterprise in order to pre-emptively find and eliminate certain kinds of vulnerabilities. How we accomplished this is an interesting story and also illustrative of advancements in .NET’s open source community.
Scribe: Transporting petabytes per hour via a distributed, buffered queueing system
Our hardware infrastructure comprises millions of machines, all of which generate logs that we need to process, store, and serve. The total size of these logs is several petabytes every hour. The outputs are generally processed somewhere other than where they were generated: They can be relevant to a variety of downstream processing pipelines and may each need to be accessed at different times. The task of collecting, aggregating, and delivering this volume of logs (with low latency and high throughput) requires a systematic approach. Our solution is Scribe, a distributed queueing system that encapsulates all the complexity behind moving service logs from point A to point B.
How LinkedIn customizes Apache Kafka for 7 trillion messages per day
We maintain over 100 Kafka clusters with more than 4,000 brokers, which serve more than 100,000 topics and 7 million partitions. The total number of messages handled by LinkedIn’s Kafka deployments recently surpassed 7 trillion per day.
Why Salesforce Moved from Python to Go
Here at Salesforce, we had just this situation arise in the past few years. We ported most of our Einstein Analytics backend from a Python-C hybrid to Go. Go is a language that Google designed for large-scale, modern software engineering. The story goes that Google engineers had the idea to create a language designed for their large-scale applications and started designing Go while they were waiting for their massive C++ projects to compile. This post will discuss our experience in moving enterprise-level software from a C-Python hybrid over to an (almost) completely Go application.
另附：Uber Go Style Guide.
Understanding Scheduling Behavior with SchedViz
Linux kernel scheduling behavior can be a key factor in application responsiveness and system utilization. Today, we’re announcing SchedViz, a new tool for visualizing Linux kernel scheduling behavior. We’ve used it inside Google to discover many opportunities for better scheduling choices and to root-cause many latency issues.
PyPy’s new JSON parser
In the last year or two I have worked on and off on making PyPy’s JSON faster, particularly when parsing large JSON files. In this post I am going to document those techniques and measure their performance impact.
Improving the Getting Started experience with AWS Lambda
To help you start right with serverless, AWS has added a Create application experience to the Lambda console. This enables you to create serverless applications from ready-to-use sample applications, which follow these best practices:
- Use infrastructure as code (IaC) for defining application resources
- Provide a continuous integration and continuous deployment (CI/CD) pipeline for deployment
- Exemplify best practices in serverless application structure and methods
另附：Fission: Serverless Functions for Kubernetes.
Stop Calling it Bad Code
By not using generic and negative terms like “bad”, conversations about code become constructive. Instead of starting with an emotional statement - this code is bad! - you’re now starting with observations and suggestions. Using this approach, people who you give feedback to will not feel threatened and act reflexively defensive, pushing back on your comments. That is what would happen if you started with vague and judging terms, like “bad code”.
Eight Habits of Expert Software Designers: An Illustrated Guide
The best designers employ specific habits, learned practices, and observed principles when they work. Here are a few of them.
WebXR Augmented Reality Module - Level 1
Hardware that enables Virtual Reality (VR) and Augmented Reality (AR) applications are now broadly available to consumers, offering an immersive computing platform with both new opportunities and challenges. The ability to interact directly with immersive hardware is critical to ensuring that the web is well equipped to operate as a first-class citizen in this environment. The WebXR Augmented Reality module expands the functionality available to developers when their code is running on AR hardware.
OpenJS Foundation welcomes AMP project to help improve user experience on the web
另附：OpenJS Foundation welcomes first Incubating project: Node Version Manager. (nvm).
Docker Enterprise: The First DISA STIG’ed Container Platform!
Docker Enterprise was built to be secure by default. When you build a secure by default platform, you need to consider security validation and governmental use. Docker Enterprise has become the first container platform to complete the Security Technical Implementation Guides (STIG) certification process. Thanks to Defense Information Systems Agency (DISA) for its support and sponsorship. Being the first container platform to complete the STIG process through DISA means a great deal to the entire Docker team.
Aliyun Serverless VSCode Extension
Aliyun Serverless VSCode Extension 是阿里云 Serverless 产品 函数计算 Function Compute 的 VSCode 插件，该插件结合了函数计算 Fun 工具以及函数计算 SDK ，是一款 VSCode 图形化开发调试函数计算以及操作函数计算资源的工具。通过该插件，您可以：
- 获得模版文件的语法提示: 自动补全、Schema 校验、悬浮提示
另附：Visual Studio Remotes: Simplifying developer environments.
The JS13kGames Winners
Introducing Create Next App
Create Next App sets up a modern React application powered by Next.js in one command.
HTTP server mocking and expectations library for Node.js. Nock can be used to test modules that perform HTTP requests in isolation. For instance, if a module performs HTTP requests to a CouchDB server or makes HTTP requests to the Amazon API, you can test that module in isolation.
Moveable is Draggable, Resizable, Scalable, Rotatable, Warpable, Pinchable, Groupable, Snappable
React Hook Form
Performant, flexible and extensible forms with easy to use for validation.
A lightweight tooltip for React.
Streamlit - The fastest way to build custom ML tools
Streamlit is the first app framework specifically for Machine Learning and Data Science teams. So you can stop spending time on frontend development and get back to what you do best.
Open Source Alternative for Zapier/tray.io. What can be done with n8n?
- Automate daily tasks Get rid of boring daily task. For example, compose every day an email from data which gets aggregated from different tools like Google Sheets or Pipedrive.
- Sync Data Synchronise data between different apps/databases. For example sync data between Postgres and multiple Google Sheets. React to events
- Execute a task every time something happens. For example, get a Slack message every time a new deal get created in Pipedrive and additionally add it to a Google Sheets.
Winter is coming and Collapse OS aims to soften the blow. It is a z80 kernel and a collection of programs, tools and documentation that allows you to assemble an OS that can:
- Run on minimal and improvised machines.
- Interface through improvised means (serial, keyboard, display).
- Edit text files.
- Compile assembler source files for a wide range of MCUs and CPUs.
- Read and write from a wide range of storage devices.
- Replicate itself. Additionally, the goal of this project is to be as self-contained as possible. With a copy of this project, a capable and creative person should be able to manage to build and install Collapse OS without external resources (i.e. internet) on a machine of her design, built from scavenged parts with low-tech tools.
Bel is a spec for a new dialect of Lisp, written in itself. This should sound familiar to people who know about Lisp’s origins, because it’s the way Lisp began. It consists of two text files meant to be read in parallel: a guide to the Bel language, and the Bel source.
Design Challenge — Rethinking Medium UI/UX design
I have been a user on Medium for years. I enjoy reading tons of inspiring articles and sharing my thoughts about design, art, and life with people. I have two identities on Medium, reader, and writer. As a product designer, I have seen the positive features of Medium.
The Future of UX Is Our Humanity
The UX field has changed as new and emerging technologies dominate product development. However, the true value a UX professional brings to the design process doesn’t come from tech knowledge, but from human-centered skills, and in order for UX to continue to evolve, development of these “soft” skills is crucial.
Facebook Design: Images and Sketch Files of Popular Devices
Facebook supports a diverse audience around the world and an equally diverse set of devices. To emphasize that in our design mocks, we redrew a range of devices to show the global diversity of the people using our products. Each device comes with a bitmap of the device (with and without shadows) and the original Sketch file for that device. We’ve incorporated many of these devices into Origami and worked with the Framer Team to add them to Framer as well.
Material Design 设计奖揭晓，Google 选出了 4 款最佳应用
Ruff：主题表达奖. Reflectly：创新交互奖. Scripts：用户体验奖. Trip.com：最佳通用性
Writing is Thinking: Learning to Write with Confidence
If you told me 5 years ago that I would one day lead a 20-person Publications team or have a personal blog that’s read by hundreds of thousands, I would’ve laughed in surprise. Yet somehow, I’ve found myself in that reality. Here we are. People often ask how I approach writing, so I decided to share this piece to sway the self-conscious writer inside each one of us. I hope it encourages others to develop a practice that enables them to write with confidence, by simply sharing how I’ve designed my own.
对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2019-10-14·首都机场 vs 大兴机场、大国重器东风快递、衡量一个国家
– THE END –