FEX 技术周刊 - 2017/11/20
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
业界会议
百度世界大会 2017
http://baiduworld.baidu.com/2017/index.html
附:在「AI 的 黎明」前,李彦宏都放出了哪些大招?
深阅读
Introducing the New Firefox: Firefox Quantum
https://blog.mozilla.org/blog/2017/11/14/introducing-firefox-quantum/
It’s fast. Really fast. Firefox Quantum is over twice as fast as Firefox from 6 months ago, built on a completely overhauled core engine with brand new technology stolen from our advanced research group, and graced with a beautiful new look designed to get out of the way and let you do what you do best: surf a ton of pages, open a zillion tabs, all guilt free because Firefox Quantum uses less memory than the competition.
另附:How Firefox got fast again and where it’s going to get faster、WebAssembly support now shipping in all major browsers、Rust - Fearless Concurrency in Firefox Quantum、Firefox Quantum 57 for developers
Taming architecture complexity in V8 — the CodeStubAssembler
https://v8project.blogspot.ca/2017/11/csa.html
In this post we’d like to introduce the CodeStubAssembler (CSA), a component in V8 that has been a very useful tool in achieving some big performance wins over the last several V8 releases. The CSA also significantly improved the V8 team’s ability to quickly optimize JavaScript features at a low-level with a high degree of reliability, which improved the team’s development velocity.
The Cost Of JavaScript
https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e
As we build sites more heavily reliant on JavaScript, we sometimes pay for what we send down in ways that we can’t always easily see. In this post, I’ll cover why a little discipline can help if you’d like your site to load & be interactive quickly on mobile devices. tl;dr: less code = less parse/compile + less transfer + less to decompress
Speeding up Node.js startup using V8 snapshot
https://docs.google.com/document/d/1YEIBdH7ocJfm6PWISKw03szNAgnstA2B3e8PZr_-Gp4/
Let’s make Node.js start up 8x faster. I disabled commenting because of the notifications I get from people suggesting whitespace changes.
JavaScript. The Core: 2nd Edition
http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/
This is the second edition of the JavaScript. The Core overview lecture, devoted to ECMAScript programming language and core components of its runtime system. This article covers ES2017+ runtime system. We start our discussion with the concept of an object, which is fundamental to ECMAScript.
Protected routes and authentication with React Router v4
https://tylermcginnis.com/react-router-protected-routes-authentication/
In this post we’ll break down the “Redirects (Auth)” example on the React Router documentation to learn how to create authenticated routes (routes that only certain users can access based on their authentication status) using React Router.
Getting from Redux to a state machine
http://krasimirtsonev.com/blog/article/getting-from-redux-to-state-machine-with-stent
This article is about Stent - a Redux-liked library that creates and manages state machines. Stent implements some of the Redux’s core ideas and in fact looks a lot like it. At the end of this post we will see that both libraries have a lot in common. Stent is just using state machines under the hood and eliminates some of the boilerplate that comes with Redux’s workflow.
Debugging Memory Leaks and Memory Bloat in Node.js
https://tech.residebrokerage.com/debugging-node-js-memory-problems-d450787d9253
Memory issues can be daunting when you first encounter them — they were for our team. The goal of this article is to make them no more of a problem than your average bug.
The State of Node.js Security in 2017
https://nodesource.com/blog/the-state-of-node-js-security-in-2017
Only 31% of respondents are confident that their code doesn’t contain vulnerabilities. An impressive 84% of respondents feel that Node.js core is secure. Despite that, only 16% of respondents are confident that their third-party dependencies are vulnerability free…另附:Announcing the 2017 State of Open Source Security Report.
阿里双11神秘技术:PB级大规模文件分发系统“蜻蜓”
https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247486322&idx=1&sn=b1ee041f8273998ea09aa271aa583132
蜻蜓,通过解决大规模文件下载以及跨网络隔离等场景下各种难题,大幅提高数据预热、大规模容器镜像分发等业务能力。月均分发次数突破20亿次,分发数据量3.4PB。其中容器镜像分发比natvie方式提速可高达57倍,registry网络出口流量降低99.5%以上。
从0到1,苏宁API网关的演进之路
https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247487098&idx=1&sn=7d2739ce146c69f2e9e701028a040b18
苏宁已开放了平台业务、自营业务、自采业务、O2O 业务、政企业务、特卖业务、4PS 业务等几百个 API 接口,每天承载海量的 API 接口调用。通过阅读该文章你会了解到如下信息:一切皆基于标准;系统重构详解;高可用设计;监控之道;应对 O2O 购物节;
高并发和高可用的一点思考
http://kriszhang.com/high_performance/
高可用就是抵御不确定性,保证系统7*24小时健康服务。关于高可用,我们其实面对的问题就是对抗不确定性,这个不确定性来自四面八方。比如大地震,会导致整个机房中断,如何应对?比如负责核心系统的工程师离职了,如何应对?再比如下游接口挂了,如何应对?系统磁盘坏了,数据面临丢失风险,如何应对?
Banner Ads Considered Harmful (Here)
http://www.gwern.net/Ads
9 months of daily A/B-testing of Google AdSense banner ads on gwern.net indicates banner ads decrease total traffic substantially, possibly due to spillover effects in reader engagement and resharing.
Declining Complexity in CSS
http://meyerweb.com/eric/thoughts/2017/11/14/declining-complexity-in-css/
CSS has a great deal more capabilities than ever before, it’s true. In the sense of “how much there potentially is to know”, yes, CSS is more of a challenge.
Clean Code vs. Dirty Code: React Best Practices
http://americanexpress.io/clean-code-dirty-code/
This article will focus on clean code practices as they apply to modern React software development. I’ll also talk about some of the “sugar” that ES6/ES2015 brings to the table.
How Discord Resizes 150 Million Images Every Day with Go and C++
https://blog.discordapp.com/how-discord-resizes-150-million-images-every-day-with-go-and-c-c9e98731c65d
Despite being a voice and text chat app, Discord sees over a hundred million images passing through its tubes every day. While we wish it was as simple as sending them out across the tubes to your friends, delivering these images creates some pretty large technical problems. Linking directly to images would leak users’ IP addresses to image hosts, and large images use up lots of bandwidth. To circumvent these problems, Discord needs an intermediary service to fetch images on behalf of users and then resize them to reduce bandwidth usage.
Open/R: Open routing for modern networks
https://code.facebook.com/posts/291641674683314/open-r-open-routing-for-modern-networks/
We are open-sourcing Open/R, a routing platform that enables rapid innovation in network functions. Open/R was originally built for the Terragraph wireless backhaul network, but we quickly saw its potential use for Facebook’s backbone, where it provides more efficient and precise control of a global fiber network. Now, we are even starting to roll it out into our data center fabrics, running inside FBOSS and on our Open Compute Project networking hardware like Wedge 100. Open/R is a single platform that spans a wide variety of network domains and designs, and we are looking to apply it in even more use cases.
Introducing container-diff, a tool for quickly comparing container images
http://opensource.googleblog.com/2017/11/container-diff-for-comparing-container-images.html
The Google Container Tools team originally built container-diff, a new project to help uncover differences between container images, to aid our own development with containers. We think it can be useful for anyone building containerized software, so we’re excited to release it as open source to the development community.
Announcing TensorFlow Lite
https://developers.googleblog.com/2017/11/announcing-tensorflow-lite.html
TensorFlow has always run on many platforms, from racks of servers to tiny IoT devices, but as the adoption of machine learning models has grown exponentially over the last few years, so has the need to deploy them on mobile and embedded devices. TensorFlow Lite enables low-latency inference of on-device machine learning models.另附:On-Device Conversational Modeling with TensorFlow Lite.
Best tech for a web site 2018? (PHP, Rails, Django, Node, Go, etc.)
https://news.ycombinator.com/item?id=15685905
Back in the day, PHP was a great tool for getting a site up quickly. Then Ruby on Rails took off in 2006 and took the lead. It was the “batteries included” of web frameworks. You could build a CRUD app very quickly. Many other language frameworks followed and evolved. It is almost 2018. What do you think is the best tech for a web app these days?
Cloud Native Storage: A Primer
https://thenewstack.io/state-cloud-native-storage/
The cloud-native architecture originating in hyper-scale cloud applications revolves around microservices, i.e. small stateless and decoupled application fragments. Many similar microservice instances can be deployed (using Docker or Kubernetes) to address service elasticity and resiliency. Multiple tiers of microservices are part of a bigger and evolving application.另附:The InfoQ eMag: Cloud Native
Products Over Projects
https://martinfowler.com/articles/products-over-projects.html
Software projects are a popular way of funding and organizing software development. The organize work into temporary teams and are funded with specific benefits projected in a business case. Product-mode instead uses durable teams working on a persistent business issue. Product-mode allows teams to reorient quickly by using short-cycle iterations while maintaining the architectural integrity of their software to preserve their long-term effectiveness.
The cargo cult of versioning
http://akkartik.name/post/versioning
In particular, Semantic Versioning is misguided, an attempt to fix something that is broken beyond repair. The correct way to practice semantic versioning is without any version strings at all, just Rich Hickey’s directive: if you change behavior, rename. Or ok, keep a number around if you really need a security blanket.
Mobile Interface Myths You Should Throw Out The Window
https://www.smashingmagazine.com/2017/11/mobile-interface-myths/
Having white-labeled design and marketing work for ad agencies for a few years, I’ve heard the following statements boldly proclaimed as unquestionable truths more times than I can count. From my experience with ad teams and client meetings, these are the most frequent myths I think we need to put to bed, or at least remember to evaluate case by case. Let’s take some time to cover five mobile interface myths you’ve probably been sold on (and why that might be a bad thing).
新鲜货
Code together in real time with Teletype for Atom
https://blog.atom.io/2017/11/15/code-together-in-real-time-with-teletype-for-atom.html
Social coding shouldn’t have to be this hard! Today, we’re taking a first step toward making it just as easy to code together as it is to code alone with Teletype for Atom. At the dawn of computing, teletypes were used to create a real-time circuit between two machines so that anything typed on one machine appeared at the other end immediately. Following in these electro-mechanical footsteps, Teletype for Atom wires the keystrokes of remote collaborators directly into your programming environment, enabling conflict-free, low-latency collaborative editing for any file you can open in Atom. 另附:Introducing Visual Studio Live Share.
W3C STRATEGIC HIGHLIGHTS – NOVEMBER 2017
https://www.w3.org/blog/news/archives/6651
W3C released today its W3C Strategic Highlights – November 2017, a comprehensive survey of the essential work W3C conducts to achieve a Web for All, and select recent work in many areas where the Web can solve arising problems for real people.
NodeConfEU 2017 Videos
https://www.youtube.com/playlist?list=PL0CdgOSSGlBaxNkrUIHrhd1f3ch45f66_#nodeconfeu2017
可找感兴趣的话题去看
Introducing security alerts on GitHub
https://github.com/blog/2470-introducing-security-alerts-on-github
With your dependency graph enabled, we’ll now notify you when we detect a vulnerability in one of your dependencies and suggest known fixes from the GitHub community.
Minify
https://github.com/tdewolff/minify
Minify is a minifier package written in Go. It provides HTML5, CSS3, JS, JSON, SVG and XML minifiers and an interface to implement any other minifier. Minification is the process of removing bytes from a file (such as whitespace) without changing its output and therefore shrinking its size and speeding up transmission over the internet and possibly parsing. The implemented minifiers are high performance and streaming, which implies O(n).
React Bits
https://vasanthk.gitbooks.io/react-bits/
A compilation of React Patterns, techniques, tips and tricks.
Spectacle 4.0
http://formidable.com/blog/2017/spectacle-4-has-arrived/
A React.js based library for creating sleek presentations
Luxon
https://moment.github.io/luxon/
A powerful, modern, and friendly wrapper for Javascript dates and times.
remoteStorage.js
https://github.com/remotestorage/remotestorage.js/
remoteStorage.js is a JavaScript library for storing user data locally in the browser, as well as connecting to remoteStorage servers and syncing data across devices and applications. It is also capable of connecting and syncing data with a person’s Dropbox or Google Drive account (optional).
Serverless LibreOffice PDF Converter
https://vladholubiev.com/serverless-libreoffice/
This is a full featured LibreOffice compiled to run in AWS Lambda environment.
Elasticsearch 6.0.0 GA released
https://www.elastic.co/blog/elasticsearch-6-0-0-released
With 2236 pull requests by 333 commiters added since the release of Elasticsearch 5.0.0, we are proud to announce the release of Elasticsearch 6.0.0 GA, based on Lucene 7.0.1.
GVFS Updates: More Performance, More Availability
https://blogs.msdn.microsoft.com/devops/2017/11/15/updates-to-gvfs/
We’re thrilled to announce that other Git hosting providers have chosen to adopt GVFS as the industry standard for hosting Enterprise-scale Git repositories. Today at the Microsoft Connect() conference, GitHub‘s Sam Lambert joined us to announce that GitHub was adding GVFS support to their development platform. It’s a natural fit, since GitHub.com is the world’s largest Git hosting provider, and GVFS supports the world’s largest Git repositories.
Introduction to Computer OrganizationARM Assembly Language Using the Raspberry Pi
http://bob.cs.sonoma.edu/IntroCompOrg-RPi/sec-preface.html
This book introduces the concepts of how computer hardware works from a programmers point of view. A programmer
s job is to design a sequence of instructions that will cause the hardware to perform operations that solve a problem. This book looks at these instructions by exploring how C/C++ language constructs are implemented at the instruction set architecture level.
The Inter UI font family
https://rsms.me/inter/
Inter UI is a font for highly legible text on computer screens.
产品及其它
13 Startup Ideas
https://blog.ycombinator.com/13-startup-ideas/
AI for Communicating with Dogs; Design on Demand; Social Network for Children…
Dropbox Paper: Emojis and Exformation
https://blogs.dropbox.com/tech/2017/11/dropbox-paper-emojis-and-exformation/
Emojis can help fill in the gaps in human communication where voice and facial expressions are missing. There’s still no substitute for true face-to-face or even just phone time but if you’re gonna be communicating over email, chat or Dropbox Paper (ahem) you might as well give in and join the emoji revolution.
你真的理解“小步快跑、敏捷迭代”吗
https://mp.weixin.qq.com/s?__biz=MzA5MTMyNzAzMQ==&mid=2651542868&idx=1&sn=8e6d2fd4a77265ff4d78a65050f49960
“最小可行性产品”的核心要义不在于寻找“最小产品”,而在于“佐证假设”,因此“最小可行性产品”不是一个产品,它是一个求证的过程。“最小”是一个相对概念,不是绝对限定值。不能轻易地认为“最小可行性”产品中的“最小”就是最精简的功能、最简陋的流程、最易于上线的路径,这样就可以快速迭代、小步快跑了。不同的产品,定位与所需要解决的关键痛点不同,其涉及的“小”的概念和范畴也是不同的。探索“最小”的过程,需要你回答并且精准地提炼出你想要验证的产品的“功能特性”、“卖点”、“构成要素”、“关系链”,这个过程就是提出“假设”的过程,当你完成了假设之后,需要用“做减法”的方式提炼选出最核心的功能卖点,然后拿此卖点到市场上去验证,这个过程就是进行“佐证”的过程。
– THE END –