FEX 技术周刊 - 2019/10/21
Soli - You are the only interface you need
Soli is a miniature radar that understands human motions at various scales: from the tap of your finger to the movements of your body. Soli aims to understand the nuances of human movements so that we can use our natural body language and gestures as a form of input. We created an interaction framework that groups human movements according to levels of proximity and engagement between the user and Soli: aware, engaged and active. The framework is based on regular human nonverbal communication models.
Bazel Reaches 1.0 Milestone!
We’re excited to announce the first General Availability release of Bazel, an open source build system designed to support a wide variety of programming languages and platforms. Bazel was born of Google’s own needs for highly scalable builds. When we open sourced Bazel back in 2015, we hoped that Bazel could fulfill similar needs in the software development industry. A growing list of Bazel users attests to the widespread demand for scalable, reproducible, and multi-lingual builds. Bazel helps Google be more open too: several large Google open source projects, such as Angular and TensorFlow, use Bazel. Users have reported 3x test time reductions and 10x faster build speeds after switching to Bazel.
Where We Go From Here: Thoughts on the Immediate Future of the Web
In my +15 years working on and with the web, the one major lesson I’ve learned is the future keeps arriving, sooner than you think, and often the future is already here. The web, the internet, and the technologies and communities powering them are evolving ever more rapidly, and what we consider future possibilities today often becomes practical realities the very next day. The future keeps arriving. Keep this in mind as you read on.
The Strengths and Benefits of Micro Frontends
Micro-frontend architecture is a design approach in which a front-end app is decomposed into individual, semi-independent “microapps” working loosely together. The micro-frontend concept is vaguely inspired by, and named after, microservices. The benefits of the micro-frontend pattern include:
- Micro-frontend architectures may be simpler, and thus easier to reason about and manage.
- Independent development teams can collaborate on a front-end app more easily.
- They can provide a means for migrating from an “old” app by having a “new” app running side by side with it.
[译]webpack 5 之持久化缓存指南
继 webpack v5-beta0 发布后，官方又发布了持久化缓存指南。首先，要注意的是默认情况下不会启用持久化缓存。你可以自行选择启用。为何如此？webpack 旨在注重构建安全而非性能。我们没有打算默认启用这一功能，主要原因在于此功能虽然有 95% 几率提升性能，但仍有 5% 的几率中断你的应用程序/工作流/构建。这可能听起来很糟，但相信我它并非如此。只不过需要开发人员进行额外的操作来配置它。
Simplifying web deploys
Over the past six months, Pinterest has moved to a CI/CD model for our API and web layers, which has truly improved agility by reducing time between merge and production. Prior to the update, we had been deploying our web code in the same way for years, and it began showing its age. That mechanism is internally called A/B deploys and externally it’s referred as Blue-Green deploys. In this post we describe how and why we replaced it with rolling deploys.
Designing accessible color systems
With the existing tools we found, it was hard to create a color system that allowed us to pick great colors while ensuring accessibility. We decided to create a new tool that uses perceptual color models to give real-time feedback about accessibility. This enabled us to quickly create a color scheme that met our needs, and gave us something we could iterate on in the future.
High-performance Node.js concurrency with native “events” package
Qt vs. HTML – The Full-Stack Comparison
The truth is, both HTML5 and Qt are terrific options and neither of them is strictly better than the other in every context. If you are instead looking to increase your awareness of which technology fits which situation better, when it makes sense to combine the two, and how to make sure you plan for an open, scalable architecture, please give it a read!
Memories of web development past
I just found an old CD with a projects folder of work I did in 1998 – 1999 as a web developer and I am in awe about a few things.
Images done right: Web graphics, good to the last byte
Start taking graphics on the web seriously and boost your applications’ performance by learning the essentials about image formats, both modern and old-school. Dig into SVGs and adopt the latest and greatest tools to optimize your graphical content: both vector and raster. Study the theory behind digital images and how humans perceive them—to improve the experience for your users.
10 years of Node with Gabriel Schulhof from Intel
In this post we speak with Gabriel Schulhof, a software engineer at Intel Corporation to hear his views on the importance of the community and its continuity and in finding the future collaborators to progress node.js to other computing environments.
The perfect architecture flow for your next Node.js project
Laying out a project’s structure in a practical way is one of the hardest points of the development process and, indeed, a delicate one. By looking at the previous articles I have written here on LogRocket, we can define a path about discussing Node.js technologies, how to choose what front-end framework to use, and now we can try to dig deeper on how to structure our web apps once we have decided on the tech stack to use.
How Netflix microservices tackle dataset pub-sub
At Netflix we use an in-house dataset pub/sub system called Gutenberg. Gutenberg allows for propagating versioned datasets — consumers subscribe to data and are updated to the latest versions when they are published. Each version of the dataset is immutable and represents a complete view of the data — there is no dependency on previous versions of data. Gutenberg allows browsing older versions of data for use cases such as debugging, rapid mitigation of data related incidents, and re-training of machine-learning models. This post is a high level overview of the design and architecture of Gutenberg.
How Dropbox Security builds tools for threat detection and incident response
The Dropbox Detection and Response Team (DART) detects and mitigates information security threats to our employees, infrastructure, and customer data. DART ingests security-relevant logs for building detection, threat hunting and responding to potential incidents. Our log volume is huge, averaging tens of terabytes a day.
Making the Tokio scheduler 10x faster
We’ve been hard at work on the next major revision of Tokio, Rust’s asynchronous runtime. Today, a complete rewrite of the scheduler has been submitted as a pull request. The result is huge performance and latency improvements. Some benchmarks saw a 10x speed up! It is always unclear how much these kinds of improvements impact “full stack” use cases, so we’ve also tested how these scheduler improvements impacted use cases like Hyper and Tonic (spoiler: it’s really good).
Act locally, connect globally with IoT and edge computing
In this post, I want to talk about edge computing, the power to have compute resources and decision-making capabilities in disparate locations, often with intermittent or no connectivity to the cloud. In other words, process the data closer to where it’s created.
How AWS built a production service using serverless technologies
We are excited to announce that we have published a new open source project designed to help customers learn from Amazon’s approach to building serverless applications. The project captures key architectural components, code structure, deployment techniques, testing approaches, and operational practices of the AWS Serverless Application Repository, a production-grade AWS service written mainly in Java and built using serverless technologies. We wanted to give customers an opportunity to learn more about serverless development through an open and well-documented code base that has years of Amazon best practices built in.
Fighting fraud using partially blind signatures
We shared research we’re doing to explore a new approach to reporting events with greater anonymity — while still combatting fraud — by using cryptographic techniques like blind signatures. We believe that if browser makers and application developers work together to define a new set of APIs that leverage these techniques, combatting fraud will require less information to be collected from the people who use these browsers and apps. In this post, we’ll talk about the challenges of private fraud-resistant reporting and suggest a possible industry-wide solution using anonymized logging and blind signatures.
Video Architecture Search
To our knowledge, this is the very first work on neural architecture search for video understanding. The video architectures we generate with our new evolutionary algorithms outperform the best known hand-designed CNN architectures on public datasets, by a significant margin. We also show that learning computationally efficient video models, TinyVideoNets, is possible with architecture evolution. This research opens new directions and demonstrates the promise of machine-evolved CNNs for video understanding.
Functional RL with Keras and Tensorflow Eager
In this blog post, we explore a functional paradigm for implementing reinforcement learning (RL) algorithms. The paradigm will be that developers write the numerics of their algorithm as independent, pure functions, and then use a library to compile them into policies that can be trained at scale. We share how these ideas were implemented in RLlib’s policy builder API, eliminating thousands of lines of “glue” code and bringing support for Keras and TensorFlow 2.0.
FPGA design for Software Engineers
Over the last few years I’ve gotten more interested in electronics and FPGA design. I’ve also noticed that a lot of other software folks seem interested in doing the same, but often don’t know where to start. So, I think I have some interesting advice for software engineers that feel like dipping their toes into the hardware world from the point of view of a software engineer. In this post I’ll go over FPGAs in general, the basics of the Verilog language, simulating a design and deploying it to an inexpensive TinyFPGA-BX board.
Hack for Good
The Angular and NativeScript teams teamed up last month to organise the first ng-ns Hack For Good — an online hackathon with prizes, where all participants were asked to build mobile apps with NativeScript Angular for NGOs and good causes.
Ionic React represents the most significant change in Ionic Framework’s history and opens up Ionic Framework to a whole new audience. Given that, we’d like to tell a bit of the story about how we got here, why we built it, and who it’s for.
IPFS Camp Keynotes and Interviews
If you’ve been following the many IPFS Camp updates here in the blog, you’ve likely already explored the videos from our lightning talks, deep dives, poster projects, core and elective courses, and most recently the SciFi Fair. Today, we’re excited to share the Keynotes that brought us together on our first and last days of IPFS Camp, and the Community Interviews that highlight some of the amazing work being done by IPFS Camp attendees in the wider ecosystem.
Firefox’s New WebSocket Inspector
We are especially excited about our new WebSocket inspection feature, because you told us in feedback how important it would be for your daily work. The WebSocket inspector will be released in Firefox 71, but is ready for you to use in Firefox Developer Edition now. 另附：Developing cross-browser extensions with Mozilla web-ext 3.2.0 .
An online WebAssembly Terminal to run WASI modules directly on your browser
What’s New In Python 3.8
Python 3.8 was released on October 14th, 2019. This article explains the new features in Python 3.8, compared to 3.7. For full details, see the changelog. 另附：Django 3.0 beta 1 released
A kickass library to manage your poppers.
Toucaan—A Tropical CSS Framework for The Web
Toucaan is full of fun facts, interesting patterns and great documentation to style the apps of the new world. It is easy and logical, and tries to get out of the way as soon as it can.
Hexo 4.0 — Node powered blog framework
A fast, simple & powerful blog framework, powered by Node.js.
Image resizing, cropping and compression on the fly with the impressive MozJPEG compression algorithm. One Docker container to build your own Cloudinary-like service. Flyimg can be deployed to GCP as a serverless container in one click with Cloud Run Button.
Convict expands on the standard pattern of configuring node.js applications in a way that is more robust and accessible to collaborators, who may have less interest in digging through imperative code in order to inspect or modify settings. By introducing a configuration schema, convict gives project collaborators more context on each setting and enables validation and early failures for when configuration goes wrong.
Instant terminal sharing from anywhere. Unblock your remote team.
Free for developers
Developers and Open Source authors now have a massive amount of services offering free tiers, but it can be hard to find them all in order to make informed decisions. This is a list of software (SaaS, PaaS, IaaS, etc.) and other offerings that have free tiers for developers.
Serenity - Graphical Unix-like operating system for x86 computers
I always wondered what it would be like to write my own operating system, but I never took it seriously. Until now. Serenity is a love letter to ’90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems. Roughly speaking, the goal is a marriage between the aesthetic of late-1990s productivity software and the power-user accessibility of late-2000s
*nix. This is a system by me, for me, based on the things I like.
2,500 More MS-DOS Games Playable at the Archive
Another few thousand DOS Games are playable at the Internet Archive! Since our initial announcement in 2015, we’ve added occasional new games here and there to the collection, but this will be our biggest update yet, ranging from tiny recent independent productions to long-forgotten big-name releases from decades ago.
BrachioGraph - the cheapest, simplest possible pen-plotter
BrachioGraph - arm-writer - is an easy-to-build pen-plotter, driven by a library of simple Python applications.
Music Theory for Musicians and Normal People
This page includes links to each of the individual Music Theory pages I’ve created in PDF form. This is a work in progress; I am writing new ones regularly and fixing errors and omissions on existing ones as I find them.
Harmony by Design
Striving for balance between nature and technology. “All of these different technologies or touchpoints are about the human’s need,” said Jonah. “Whether it is the humans in their space, the humans in virtual space, or the humans actually being fed.” These interactions present opportunities for people to experience technology, for better or worse. As designers, we must anticipate imbalance, explore the unknowns, and build harmonious solutions.
Future of Artificial Intelligence in Design
“Artificial intelligence”–as though AI was going to work as some kind of magic-tech. A more useful way to think about AI — at least for the short-term — is “Augmented Intelligence.”
How Frontend Developers Can Empower Designer’s Work
As a frontend developer, I want to apologize to the designers out there for all the misunderstandings that have happened in the past. I think it’s time for us developers to improve our awareness of the designers’ role and show them that we can — and should — look beyond our own screens.
我们在产品设计的过程中会经历非常多的决策阶段，大到一个功能流程的闭环设计，小到思考一个元素的最合理布局，在这些场景中，我们首选的解决方案当然是更适合当前功能特性和使用场景的方案，如果没有合适的方案或者在几种方案面前犹豫不决时，一般都会选择遵守设计规则和接近设计规则的那个方案。这些所谓的规则也是交互设计的基础理论和方法论，我们能否在工作中信手拈来并且灵活运用它呢？同时也为了将来能够掌握「舌战群猿」这门高级技能，我们还是要从打牢基础开始。今天就让我们回到起点，聊一聊交互设计的 7 大定律。
Google and Ambient Computing
The most surprising revelation from yesterday’s Made by Google 19 keynote came in Google Senior Vice President of Devices and Services Rick Osterloh’s opening remarks: If you look across all of Google’s products, from Search to Maps, Gmail to Photos, our mission is to bring a more helpful Google for you. Creating tools that help you increase your knowledge, success, health, and happiness. Now when we apply that mission to hardware and services, it means creating products like…Pixel phones, wearables, laptops, and Nest devices for the home. Each one is thoughtfully and responsibly designed to help you day to day without intruding on your life.
Asynchronous Communication: The Real Reason Remote Workers Are More Productive
While I think remote work is the future, I believe that asynchronous communication is an even more important factor in team productivity, whether your team is remote or not. We know that we are challenging the status quo and that calm, asynchronous communication isn’t the current norm. It’s going to take a paradigm shift to change things. We’re betting that in the future, the most successful companies and teams will be the ones who make this shift. It will be the teams that don’t require their employees to be always-on, prioritize asynchronous communication to create space for deep work, and allow employees to disconnect and recharge fully.
简单的“邀请有礼”玩法，被新闻简报公司Morning Brew玩到极致。2017年，它只有10万订阅用户，在短短18个月内，其用户数增长至150万，其中30%来自用户推荐。Morning Brew成功的秘诀是，它设计了一个推荐体系，将已有老用户变成行走的广告牌，激励他们向别人推荐这个产品，从而带来大量新用户。本期全媒派（ID: quanmeipai）带来Morning Brew的产品负责人Tyler Denk的复盘文章，深入拆解用户增长的思路与方法。