FEX 技术周刊 - 2017\/08\/21
The Lightweight Browser: Firefox Focus Does Less, Which Is So Much More
Explaining React’s license
A few weeks ago, the Apache Software Foundation (the ASF) made a decision to list the BSD + Patents license as a Category-X license. This move affects users of much of Facebook’s open source software, but especially the popular React project and the constellation of projects around it. As a result, many have asked us to consider relicensing React and all of our other open source projects. What has become clear through these discussions is that the ASF has very different considerations than Facebook does for how it maintains and distributes open source software.
APIs as infrastructure: future-proofing Stripe with versioning
When it comes to APIs, change isn’t popular. While software developers are used to iterating quickly and often, API developers lose that flexibility as soon as even one user starts consuming their interface.
Evolution of the Heroku CLI: 2008-2017
Over the past decade, millions of developers have interacted with the Heroku CLI. In those 10 years, the CLI has gone through many changes. We’ve changed languages several times; redesigned the plugin architecture; and improved test coverage and the test framework. What follows is the story of our team’s journey to build and maintain the Heroku CLI from the early days of Heroku to today.
Evolving API Pagination at Slack
In this post, we’ll go over the pros and cons of various pagination strategies and discuss how these influenced our latest pagination scheme.
Edge node architecture with npm Enterprise
Recently, there’s been some buzz around the next great architectural shift in systems. There is a rising interest in the evolution of decentralized edge computing as a core part of that shift. For over two years, npm has been using edge computing concepts to ensure that the developer experience for users of npm Enterprise, our private registry product, matches the experience of using the centralized, cloud-hosted version of the npm Registry. Here’s why we’re doing that, and how.
Kubernetes at GitHub
Over the last year, GitHub has gradually evolved the infrastructure that runs the Ruby on Rails application responsible for github.com and api.github.com. We reached a big milestone recently: all web and API requests are served by containers running in Kubernetes clusters deployed on our metal cloud. Moving a critical application to Kubernetes was a fun challenge, and we’re excited to share some of what we’ve learned with you today. 附：GitHub Goes All in on Kubernetes、Google and CodeFresh Collaborate to Make Kubernetes More Accessible.
WebAssembly: A New Hope
We believe, that a combination of server- and client-side technologies will offer the best experience for displaying PDF documents on the web and we’re working hard to make this as seamless as possible.
Understanding V8’s Bytecode
弹性安全网络 – 构建下一代安全的互联网
Palo 是百度开发的面向在线报表和分析的数据仓库系统，可以对标于商业的 MPP 数据仓库系统，比如 Greenplum、Vertica、Teradata 等。Palo 主要基于 C++ 和 Java 开发，集成了 Google Mesa 和 Cloudera Impala 的技术。另：十年磨一剑，阿里巴巴企业级数据管理平台 - iDB、阿里云新一代关系型数据库 PolarDB 剖析。
In this five part series, we will “recreate” React from the ground up, learning how it works along the way. Once we’ve finished, you should have a good grasp of how React works, and when and why it calls the various lifecycle methods of a component.
React Performance Anti-Pattern: Creating Functions in render()
There is a very common mistake that I see in React components from beginners and experts alike. Sometimes I even find myself typing it, even when I know it’s a mistake. That’s because it feels so right. But if you’re going to write the best React code you can, you need to train yourself to spot this problem and avoid it. The mistake I’m referring to is creating functions in the render() method of a component.
Ivestigating Performance of Object#toString in ES2015
In this article, we’ll discuss how Object.prototype.toString() performs in the V8 engine, why it’s important, how it changed with the introduction of ES2015 symbols, and how the baseline performance can be improved by up to 6x (based on findings from Mozilla engineers).
Async_Await Will Make Your Code Simpler
Web fonts: when you need them, when you don’t
I’m going to type lots of words soon, but the gist of it is this: if you’re making a site, and you’re just about to go searching for that perfect web font, please, at least consider using system fonts instead.
How to Create a QR Code Reader for Your Mobile Website
SVG can do THAT?!
Designing a Microservices Architecture for Failure
This article introduces the most common techniques and architecture patterns to build and operate a highly available microservices system based on RisingStack’s Node.js Consulting & Development experience.
Timing is Everything
I scratched a bit of a long term itch and implemented basic support for the Performance Timeline specification for Node.js core. Hopefully it will land soon. There are still definitely some rough edges and certainly quite a few issues still to work out, but here’s how things work currently. Everything described below is subject to change.
Performant Web Animations and Interactions: Achieving 60 FPS
Performance is a crucial part of our formula for a stellar user experience: just as a speedy search leads to happy users, so do performant web animations.
The average web page is 3MB. How much should we care?
The average page is now 3MB in size, and this seems like a good time to pause, check our assumptions, and ask ourselves: Is there any reason to care about page size as a performance metric? And if we don’t consider page size a meaningful metric, then what should we care about?
Google AMP is bad for E-commerce
Google and proponents of AMP would like you to think it is important because it is simply a faster way to deliver web pages. A lot of the thought behind AMP is that it will improve usability by delivering pages faster, which will keep users on your site longer. But is this actually a fact? AMP itself does not help with engaging users in a page. The content is what engages users.
Elixir in depth
The goal is to really understand Elixir to answer questions such as: What is it good at doing, In what way, Under what circumstances? What is it not good at doing, What are current pain points?, What are the tradeoffs?
Manas: A high performing customized search system
Pinterest Search handles billions of queries every month and returns nearly four billion Pins every day. Over the past year, monthly mobile text searches have increased 40 percent and visual searches are up nearly 60 percent. We recently made Search and Lens more front and center on our apps by launching them on home feed, because nearly 85 percent of searches now happen on mobile devices.
Designing The Perfect Feature Comparison Table
Feature comparison tables are helpful not only in their primary function, though. When designed properly, they can aid in decision-making way beyond placing product specifications side by side. They can also add meaning to an otherwise too technical product specification sheet, explaining why a certain feature is relevant to the customer or how a certain product is better than the others.
Don’t mistake common UI patterns for best practices
A colleague of mine recently published an article on a new model that he coins the human environment model—an approach to product design that asks us to “blur the line between the digital and material environment,” and in doing so, generate an emotional appeal from our users. I thought I’d take a stab at exploring this concept as it relates to one experience in particular: browse. Designers have notoriously poured their blood, sweat and tears into browse experiences, and to what end? These experiences often overstimulate and under deliver.
State of Modern Component Styling
In this world of intelligent auto-completion, why should we expect developers to remember and replicate matching class names across CSS and HTML? Modern frameworks are adapting to this shift and there are many different solutions to the problem of making styling and theming more intuitive. Here we will explore some of these solutions.
Integrating Animation into a Design System
Keeping animation choreography cohesive from the outset of a project can be challenging, especially for small companies. Without a dedicated motion specialist on the team, it can be difficult to prioritize guidelines and patterns early in the design process. What’s more likely to happen is that animations will be added as the product develops.
Making Visible Watermarks More Effective
It’s standard practice to use watermarks on the assumption that they prevent consumers from accessing the clean images, ensuring there will be no unauthorized or unlicensed use. However, in “On The Effectiveness Of Visible Watermarks” recently presented at the 2017 Computer Vision and Pattern Recognition Conference (CVPR 2017), we show that a computer algorithm can get past this protection and remove watermarks automatically, giving users unobstructed access to the clean images the watermarks are intended to protect.
Ant Design 的 Angular^4.0.0 实现，开发和服务于企业级后台产品。另：阿里前端推出新的 React 框架：Mirror
Puppeteer is a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome. Most things that you can do manually in the browser can be done using Puppeteer!
Oxygen is the new, easier way to design WordPress websites
The ultimate WYSIWYG visual editor plugin for WordPress. More flexible than typical page builders and as powerful as hand-coding, Oxygen is quickly becoming the tool of choice for WordPress web designers.
Boostnote: Open Source Note Taking App For Programmers
Boostnote is a new Open Source note taking application focused on programmers. It is available for Linux, Windows and MacOS. It is built on electron and is run offline.
Introducing embedded code snippets
To add a code snippet: select the lines you want to reference, open the inline toolbar, click Copy permalink, and paste it anywhere.
Announcing the New Release of Docker Enterprise Edition
Docker Enterprise Edition (EE) 17.06 embraces Windows, Linux and Linux-based mainframe applications, bringing the key benefits of CaaS to the enterprise application portfolio. Most enterprises manage a diverse set of applications that includes both traditional applications and microservices, built on Linux and Windows, and intended for x86 servers, mainframes, and public clouds.
Accessibility Testing with pa11y
pa11y, pronounced pally, is a set of free and open source tools that aims to make designing and developing accessibility easier. They have a number of different projects to help with this, for example a web dashboard interface, but I will be focusing on 2 of their projects: pa11y and pa11y-ci.
node-facenet is a TensorFlow backed FaceNet implementation for Node.js. FaceNet is a deep convolutional network designed by Google, trained to solve face verification, recognition and clustering problem with efficiently at scale.
Introspect is a command line tool to examine and visualize the quality of your project’s dependencies.
Bootstrap 4 Beta
Two years in the making, we finally have our first beta release of Bootstrap 4. In that time, we’ve broken all the things at least twenty-seven times over with nearly 5,000 commits, 650+ files changed, 67,000 lines added, and 82,000 lines deleted. We also shipped six major alpha releases, a trio of official Themes, and even a job board for good measure.
What’s new in Angular 5: easier progressive web apps
Supporting progressive web apps in Angular today requires a lot of expertise on the developers’ part; version 5 is intended to make usage easier.
Using the Paint Timing API
It’s a great time to be a web performance aficionado, and the arrival of the Paint Timing API in Chrome 60 is proof positive of that fact. The Paint Timing API is yet another addition to the burgeoning Performance API, but instead of capturing page and resource timings, this new and experimental API allows you to capture metrics on when a page begins painting.
Mathcha - Powerful Online Math Editor
A fast way to write and share mathematics formula. Fast Inputting, Diagram Drawing, Easy Sharing.
Minimal, non-dependent, non-fancy JS infotip. No CSS needed. Infotip? Seriously? Isn’t that just a euphemism for tooltip? It sure is.
System monitoring dashboard for terminal.
The open-source Trello-like kanban.
公众们将会在不久的将来，失去自主思考和判断的能力。最终他们会期望媒体为他们进行思考，并作出判断。」这就是闻名遐迩的「Tittytainment」战略，由 Titty（奶嘴）与 Entertainment（娱乐）合成，中文译为「奶头乐」（有点三俗的译法）。习惯了轻而易举能获得大量愉悦感，你就会慢慢对这种愉悦感脱敏。所以，请找到一件能够带给你长期收益和幸福感的事情，把它安排进每天的日程中。不需要追求物质收益，也不需要苛求成为领域专家，它的意义，是帮助你对抗慵常、平凡、索然无味的日常生活。让你保持头脑的清醒。