FEX 技术周刊 - 2019/02/18
Rendering on the Web
What’s next for SemVer
Over the last few months, several of us2 have been talking, and today, we have an announcement to make. We’ve formed a semver team, and we intend to start work on producing a new version of the spec. Who is “we”? The team roster will be in a GitHub team.
The security risks of changing package owners
We’ve had a few situations recently which illustrate that people are a layer beneath the code and the actions of maintainers have a direct impact on the security of the ecosystem. Specifically event-stream and koa-router.
None of my projects want to be SPAs
自从2017年不再担任北京GNU/Linux用户组的活动负责人以后，很多和自由软件推广相关的事情我也淡化了一些。不过为了让更多人投入到自由软件的推广和传播事业中来，我很愿意把之前推广和传播自由软件理念时候的一些心得体会总结下来，为有志于自由软件传播事业的同仁提供一些浅薄的经验。另附：和 PingCAP CTO 黄东旭聊开源数据库新蓝海、半数以上国产手游曾使用他开源的引擎：Cocos和王哲的故事.
我是 Max，Spectrum 的技术联合创始人。Spectrum 是一个面向大型在线社区的开源聊天应用程序，最近被 GitHub 收购。我们是一个三人团队，主要拥有前端和设计背景，我们在这个项目上工作了近两年时间。事后看来，以下是我做出的令自己感到遗憾的技术选型以及从中学到的经验教训。
Getting Out of (Technical) Debt
Technical debt may be a natural side effect of every development process, but it does not have to suffocate the team or degrade the user experience. By introducing thorough automated processes and conventions, taking the time to address existing debt, and appointing reliable leads, even teams with limited experience can settle their technical debt and produce healthy, successful applications.
Animation in React
Animating your React apps doesn’t have to be a hassle. With these helpful components and prebuilt animation keyframes, you’ll be adding animation to your apps in no time.
Developing fast & reliable iOS builds at Pinterest (Part one)
At Pinterest we’re focused on helping people discover inspiring ideas, from dinner recipes to try, home and style products to buy, to places to travel. Building the best products for mobile is a critical part of that, with 80% of all Pinners access Pinterest via mobile apps. On the iOS team specifically, we’re constantly working to improve that experience as efficiently and quickly as we can, and giving our team the best development and testing environment is a key step in that.
Anyone can create a virtual reality experience with this new WebVR starter kit from Mozilla and Glitch
Building a virtual reality experience may seem daunting, but it really isn’t. WebVR and frameworks like A-Frame make it really easy to get started. This is why we worked with Glitch to create a WebVR starter kit. It is a free, 5-part video course with interactive code examples that will teach you the fundamentals of WebVR using A-Frame. Our hope is that this starter kit will encourage anyone who has been on the fence about creating virtual reality experiences to dive in and get started.
New UI tools and a richer creative canvas come to ARCore
ARCore and Sceneform give developers simple yet powerful tools for creating augmented reality (AR) experiences. In our last update (version 1.6) we focused on making virtual objects appear more realistic within a scene. In version 1.7, we’re focusing on creative elements like AR selfies and animation as well as helping you improve the core user experience in your apps.
Distributed web not ready for Runet cutoff from the Internet
We’re still in the early days of the distributed web. The planned interruption of access to the global internet in Russia serves as an important reminder that our networks are incredibly interconnected, and that distributed networks need to do more to live up to their potential. 另附：Well-Known URI vs DNS-SD for routing distributed web service discovery around internet censorship.
don’t get clever with login forms
Let’s walk through some login patterns and why I think they’re not ideal. And then let’s look at some better ways of tackling login. TL;DR; create login forms that are simple, linkable, predictable, and play nicely with password managers.
Machine Learning and the Future of Mobile App Development
4 reasons why the next wave of mobile apps will be powered by machine learning.
Cloud Programming Simplified: A Berkeley View on Serverless Computing
Cloud Programming Simplified: A Berkeley View on Serverless Computing with some of the same authors commemorates the tenth anniversary of that landmark paper. Serverless Computing provides an interface that greatly simplifies cloud programming, and represents an evolution that closely parallels past advances in programmer productivity, such as the transition from assembly language to high-level programming languages.
PKI for busy people
Public-key infrastructure (PKI) is an umbrella term for everything that has to do with certificate and key management. This is a quick overview of the important stuff.
PostgreSQL vs. fsync
How is it possible that PostgreSQL used fsync incorrectly for 20 years, and what we’ll do about it.
On Being A Principal Engineer
T bought and read The Manager’s Path by the awesome Camille Fournier when it first came out. The title of the book and its stated goal might be laying out the path in engineering management up to senior leadership, but reading it made it clear to me that the book is also of great value to individual contributors to help explain what all these titles mean, what each layer of management is supposed to focus on, and how engineering concerns converge ultimately with business concerns and crystallize into a strategy for a technical organization. I also realized that while I am still an individual contributor, the principal engineer role carries enough cross-organization work, and enough people skills, that it is much closer to management than it may seem without engineers reporting directly to me. 另附：How to be mindful at work、7 Reliability Questions Engineering Managers Need to Ask Their Teams.
How we used delayed replication for disaster recovery with PostgreSQL
Replication is no backup. Or is it? Let’s take a look at delayed replication and how we used it to recover from accidental label deletion.
What Is Istio, and How Does It Work?
Developed by a collaboration between Google, IBM, and Lyft, Istio is an open-source service mesh that lets you connect, monitor, and secure microservices deployed on-premise, in the cloud, or with orchestration platforms like Kubernetes and Mesos. Announced less than two years ago, Istio is establishing a growing user base including giants like Ebay and AutoTrader UK.
Cloud Native Application Architecture
Cloud native is an approach for building applications as micro-services and running them on a containerised and dynamically orchestrated platforms that fully exploits the advantages of the cloud computing model. Cloud-native is about how applications are created and deployed, not where. Such technologies empower organisations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds.
Why Google Needed a Graph Serving System
The founder of Dgraph Labs, the graph database company, explains his earlier work at Google and how Google would improve their search systems using graph technology.
Introducing PlaNet: A Deep Planning Network for Reinforcement Learning
To spur progress on this research challenge and in collaboration with DeepMind, we present the Deep Planning Network (PlaNet) agent, which learns a world model from image inputs only and successfully leverages it for planning. PlaNet solves a variety of image-based control tasks, competing with advanced model-free agents in terms of final performance while being 5000% more data efficient on average. We are additionally releasing the source code for the research community to build upon.
Introducing Ludwig, a Code-Free Deep Learning Toolbox
Ludwig is unique in its ability to help make deep learning easier to understand for non-experts and enable faster model improvement iteration cycles for experienced machine learning developers and researchers alike. By using Ludwig, experts and researchers can simplify the prototyping process and streamline data processing so that they can focus on developing deep learning architectures rather than data wrangling.
Audio AI: isolating vocals from stereo music using Convolutional Neural Networks
Formally known as Audio Source Separation, the problem we are trying to solve here consists in recovering or reconstructing one or more source signals that, through some -linear or convolutive- process, have been mixed with other signals. The field has many practical applications including but not limited to speech denoising and enhancement, music remixing, spatial audio, remastering, etc. In the context of music production, it is sometimes referred to as unmixing or demixing. There’s a good amount of resources on the subject, going from ICA-based -blind- Source Separation, to semi-supervised Non-negative Matrix Factorization techniques, to more recent neural network-based approaches. For a nice walkthrough on the first two, you can check out these tutorial mini-series from CCRMA, which I found very useful back in the day.
Better Language Models and Their Implications
We’ve trained a large-scale unsupervised language model which generates coherent paragraphs of text, achieves state-of-the-art performance on many language modeling benchmarks, and performs rudimentary reading comprehension, machine translation, question answering, and summarization — all without task-specific training.
This is Microsoft’s AI pipeline, from research to reality
It’s not enough to have brilliant researchers and a bunch of popular products. You’ve got to have a system–or several systems–for melding raw technology into experiences that make a difference for businesses and consumers.
W3C Strategic Highlights
Meeting Industry Needs (Web of Things https://www.w3.org/blog/2019/02/w3c-strategic-highlights-meeting-industry-needs-web-of-things/ Strengthening the Core of the Web (HTML) https://www.w3.org/blog/2019/02/w3c-strategic-highlights-strengthening-the-core-of-the-web-html/
How GitHub Classroom and Travis CI improved students’ grades
With some pre-semester planning, Dr. Shane Wilson was able to decrease the time he spent grading by 80 percent and increase the passing rate of his course from 76 to 90 percent. How did he help students get better grades and learn critical skills, reduce grading time, and scale up to hundreds of students? He combined GitHub Classroom with Travis CI, a service that can automatically generate builds and run tests. 另附：GitHub - Introducing draft pull requests.
HHVM 4.0 is released! This release adds support for .hack files, non-experimental support for HSL regular expressions, and removes several PHP behaviors.
Introducing Node.js Working Group Series: From Security to Performance — Learn How Node.js Innovates
To keep the community and end users better informed of all that is being done — and to give thanks to our many active contributors — we are starting a new Working Group Series. This new blog will showcase the work, progress, participants and priorities within each working group on a regular basis. In each post, Working Group leaders will share updates on their main goals, accomplishments, next steps, and perhaps most importantly, how you can get involved.
Google Docs gets an API for task automation
Google today announced the general availability of a new API for Google Docs that will allow developers to automate many of the tasks that users typically do manually in the company’s online office suite. The API has been in developer preview since last April’s Google Cloud Next 2018 and is now available to all developers. 另附：Google .dev domain early access.
Funding ESLint’s Future
We’ve realized that in order for ESLint to continue to grow and evolve, we need to get more organized and set up a way to fund ESLint’s development going forward.
38% of bugs at Airbnb could have been prevented by TypeScript according to postmortem analysis
Every dynamic language has these people who resist the static typing that inevitably some people try to bring to the language. They say “well I’m super expert in this and I don’t need types, and if I have a team of super experts, we all won’t need types”. Well not every team is made up of super experts. Types let the experts insert checks to prevent common errors. I sleep better at night knowing that the compiler is there checking stuff for me. And I’m not even an expert.
We are proud today to introduce the production-ready Next.js 8, featuring: Serverless Next.js; Massive build-time memory usage reduction; Build-time environment configuration; Prefetch performance improvements.
@pika/pack connects pre-configured plugins (e.g. Babel and Rollup) to build and optimize your package for you. It’s a bit like a webpack or Parcel but specifically for building npm.
Announcing Linaria 1.0
Bootstrap v4.3 has landed with over 120 combined closed issues and merged pull requests. This release brings improvements to our utilities, some prep work for moving on to v5’s development, and the standard bug fixes and documentation updates.
NativeScript 5.2 Comes with Official Support for Vue.js
NativeScript 5.2 is here! Read on for a full list of features and improvements that are now part of NativeScript: Vue.js Official Support; Hot Module Replacement Improvements; Native Debugging Toolkit…
PrimeReact is a collection of rich UI components for React. All widgets are open source and free to use under MIT License. PrimeReact is developed by PrimeTek Informatics, a vendor with years of expertise in developing open source UI solutions. 另附：Data Visualization Libraries for React Developers in 2019.
One-Click Online IDE for GitHub and other code hosting platforms. In a blink of an eye from any GitHub project, pull request, or issue to a ready-configured, fully-featured online IDE and terminal.
Ballooning with Three.js
This was developed as a study into procedural terrains, buffer geometry optimisation and shadow mappers with Three.js and WebGL. I had some grand plans for the application, but they were never realised so it’s probably more useful to just release it as it is for others to take a look! There are plenty of issues with it and it’s pretty rough having been developed over 2 years ago now, but if it’s some use to anyone that’s great. Example at https://alexanderperrin.com.au/triangles/ballooning.
Leon is an open-source personal assistant who can live on your server. He does stuff when you ask for it. You can talk to him and he can talk to you. You can also text him and he can also text you. If you want to, Leon can communicate with you by being offline to protect your privacy.
Sloth is a Mac application that displays all open files and sockets in use by all running processes on your system. This makes it easy to inspect which apps are using which files and sockets.
Write down a command-line to see the help text that matches each argument. This site contains 29761 parsed manpages from swections 1 and 8 found in Ubuntu’s manpage repository. A lot of heuristics were used to extract the arguments of each program, and there are errors here and there, especially in manpages that have a non-standard layout. 另附：Problem solving with Unix commands.
1991 – a server-side web framework written in Forth
The year is 1991. The World Wide Web has just seen public release. 1991 looks to ease your interactions with the new web using cutting edge programming techniques in Forth (well, Gforth).
Edge TPU Devices
The Edge TPU is a small ASIC designed by Google that provides high performance ML inferencing for low-power devices. For example, it can execute state-of-the-art mobile vision models such as MobileNet V2 at 100+ fps, in a power efficient manner. With one of the following Edge TPU devices, you can build embedded systems with on-device AI features that are fast, secure, and power efficient.
Space Colony Art from the 1970s
In the 1970s the Princeton physicist Gerard O’Neill, with the help of NASA Ames Research Center and Stanford University, held a series of space colony summer studies which explored the possibilities of humans living in giant orbiting spaceships. Colonies housing about 10,000 people were designed and a number of artistic renderings of the concepts were made.
Why Webflow Is the Best Web Design Program Right Now
Webflow is a rare exception to this rule. Built with a “code-first” philosophy, Webflow is an all-in-one web design tool that allows users to design, build, and launch responsive websites visually. 另附：SketchCode - Generating HTML Code from a hand-drawn wireframe.
From Hate to ❤
How to turn push notifications from annoying distractions into customer sidekicks.
From Four Wheels to Two
How Lyft adds new options without missing a ride: a lesson in engineering principles for quickly and safely adding major features to a mobile codebase.