FEX 技术周刊 - 2017/04/17
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
业界会议
QCon 北京 2017
http://2017.qconbeijing.com/schedule
业界盛会,可找感兴趣的去看。附 PPT 合集
报名 - 百度技术沙龙:Web生态技术 - 4.22
http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650995797&idx=2&sn=13b671e0c5a144a26c9a16d9ad8b0904
4月22日,我们邀请了数位百度资深研发工程师,从Web生态角度出发,通过四个主题,分享百度在Web速度优化、Web体验增强、Web数据可视化、Web安全方面的技术沉淀和积累。同时,我们邀请了W3C的标准技术专家为大家分享W3C关于Web性能标准规范的工作进展和考虑。
深阅读
Real-world JavaScript performance
https://blog.chromium.org/2017/04/real-world-javascript-performance.html
Over the course of the past year, the V8 team has developed a new method for measuring performance against snapshots of real web pages. Using insights from real-world measurements, the V8 team improved the speed of the average page load in Chrome by 10-20% over the course of the past year. 另附:V8 - Retiring Octane、Chrome - Scroll anchoring for web developers.
PhantomJS - Stepping down as maintainer
https://groups.google.com/forum/#!topic/phantomjs/9aI5d-LDuNE
Headless Chrome is coming. I think people will switch to it, eventually. Chrome is faster and more stable than PhantomJS. And it doesn’t eat memory like crazy. I don’t see any future in developing PhantomJS. Developing PhantomJS 2 and 2.5 as a single developer is a bloody hell.
TypeScript at Slack
https://slack.engineering/typescript-at-slack-a81307fa288d#1
At Slack, we strive to be good open-source citizens. To that end, we strive to make the move to TypeScript easier for other developers: Whenever we find gaps, we try to close them. 另:TypeScript 2.3 已经 发布 RC 版了.
How we built Twitter Lite
https://blog.twitter.com/2017/how-we-built-twitter-lite
Twitter web 版本技术栈的介绍,主要使用 node+react+redux. 另附:[Twitter Lite and High Performance React Progressive Web Apps at Scale])(https://medium.com/@paularmstrong/twitter-lite-and-high-performance-react-progressive-web-apps-at-scale-d28a00e780a3)
Creating a Modern OCR Pipeline Using Computer Vision and Deep Learning
https://blogs.dropbox.com/tech/2017/04/creating-a-modern-ocr-pipeline-using-computer-vision-and-deep-learning/
In this post we will take you behind the scenes on how we built a state-of-the-art Optical Character Recognition (OCR) pipeline for our mobile document scanner. We used computer vision and deep learning advances such as bi-directional Long Short Term Memory (LSTMs), Connectionist Temporal Classification (CTC), convolutional neural nets (CNNs), and more. In addition, we will also dive deep into what it took to actually make our OCR pipeline production-ready at Dropbox scale.
The Ultimate Guide to Becoming a CTO
https://brainhub.eu/guide-to-becoming-a-cto
Becoming a CTO is really hard. There is nothing more valuable than a real experience, but in addition to the experience, you can find a ton of useful resources over the internet to help you get started. Therefore we’ve put together an amazing list of (recommended by other CTOs) resources (blog posts, books, presentations, videos etc.). The reason why we’re doing this is to help you to become a better CTO/Technical Leader in your startup or company.
The Post JavaScript Apocalypse - Douglas Crockford
https://www.youtube.com/watch?v=NPB34lDZj3E
This is about JavaScript, clutter, purity, and thoughts on what should be in the language that comes after, assuming that we all live that long.
So what’s this GraphQL thing I keep hearing about?
https://medium.freecodecamp.com/so-whats-this-graphql-thing-i-keep-hearing-about-baf4d36c20cf
GraphQL is a syntax that describes how to ask for data, and is generally used to load data from a server to a client. GraphQL has three main characteristics: It lets the client specify exactly what data it needs; It makes it easier to aggregate data from multiple sources; It uses a type system to describe data. So how did GraphQL get started? What does it look like in practice? And how do you start using it? Read on to find out!
ECharts GL 1.0 alpha 发布
http://echarts.baidu.com/blog/2017/04/12/echarts-gl-alpha.html
距离 ECharts-X 最近一个版本已经过去了两年多时间,期间我们不断被开发者在各种渠道询问 ECharts-X 为什么还不升级新版本,是不是不再维护了等等,对于这些问题我们只能回答我们还没准备好。尽管这两年时间 ECharts X 没什么动静,但是其它的工作,像 ECharts 3 的架构大改动和后续版本的迭代升级,以及其它 WebGL 产品的开发,都是对新版本架构和技术上的积累。现在我们终于可以说我们准备得差不多了,ECharts-X 的下一代,ECharts-GL 发布 1.0 alpha。
使用 FIS3 构建 Vue 前端工程. webpack 用户也请看过来
http://isay.me/2017/04/vue-projects-development-with-fis3.html
使用 FIS 进行更细致的打包,不过其实 FIS 支持自动分析依赖的
上帝说:要有一门面向未来的语言,于是有了 erlang
http://mp.weixin.qq.com/s?__biz=MzA3NDM0ODQwMw==&mid=2649827691&idx=1&sn=8d6854f91bb9d16470ef6eed9d3ad8ec
这篇文章对 erlang 的介绍挺有意思的,尤其是 erlang 的设计哲学,很多都可以当做系统设计原则来用。
如何处理好前后端分离的 API 问题
http://mp.weixin.qq.com/s?__biz=MjM5Mjg4NDMwMA==&mid=2652974908&idx=1&sn=cc0fd32fba8602c6cf26d42e0ee3ff3f
API 的维护是一件烦人的事,所以最好能一次设计好 API。可是这是不可能的,API 在其的生命周期里,应该是要不断地演进的。它与精益创业的思想是相似的,当一个 API 不合适现有场景时,应该对这个 API 进行更新,以满足需求。也因此,API 本身是面向变化的,问题是这种变化是双向的、单向的、联动的?还是静默的?API 设计是一个非常大的话题,这里我们只讨论:演进、设计及维护
文本数据可视化 - 从 Wordle 谈起
http://geekplux.com/2017/04/12/text-data-visualization-wordle.html
大到宣传海报,小到个人名片,Wordle 如今随处可见。它可以轻松的展示出一段文字的关键词,让我们对这段话的内容一目了然。\本文就从最简单的 Wordle 说起,说说文本内容可视化,以窥数据可视化一隅。
浏览器缓存机制剖析
http://louiszhai.github.io/2017/04/07/http-cache/
缓存一直是前端优化的主战场, 利用好缓存就成功了一半. 本篇从http请求和响应的头域入手, 让你对浏览器缓存有个整体的概念. 最终你会发现强缓存, 协商缓存 和 启发式缓存是如此的简单
The Psychology of Speed
https://www.sitepoint.com/the-psychology-of-speed/
Why do people leave a website? There could be many reasons, such difficulty finding what they are looking for. But there’s a good chance users leave a site because it feels too slow to load. In this section, I want to draw some attention to psychology, and how it plays a big role in our perception of speed and performance.
How We Track Pageviews Is All Wrong
https://philipwalton.com/articles/how-we-track-pageviews-is-all-wrong/
The reality is the web has changed a lot in the last 10-15 years, and more and more websites don’t fit this traditional model. Our analytics tools haven’t kept up. Analytics tools should measure user engagement, and they shouldn’t be coupled to site implementation. When the user experience improves, we should be able to prove it via our analytics reports. This is the most straightforward way to make the business case for progress.
A Comprehensive Guide To HTTP/2 Server Push
https://www.smashingmagazine.com/2017/04/guide-http2-server-push/
In this article, you’ll learn all about server push, from how it works to the problems it solves. You’ll also learn how to use it, how to tell if it’s working, and its impact on performance. Let’s begin!
How we made our DNS stack 3x faster
https://blog.cloudflare.com/how-we-made-our-dns-stack-3x-faster/
Cloudflare is now well into its 6th year and providing authoritative DNS has been a core part of infrastructure from the start. Last year we decided to replace two core elements of our DNS infrastructure: the part of our DNS server that answers authoritative queries and the data pipeline which takes changes made by our customers to DNS records and distributes them to our edge machines across the globe. The rough architecture of the system can be seen above.
Debugging Tips and Tricks
https://css-tricks.com/debugging-tips-tricks/
I have a few tips and tricks I rely on pretty heavily and found that I give the same advice again and again during workshops, so here’s a compilation of some of them, as well as some from the community. We’ll start with some core tenets and then drill down to more specific examples.
Mastering the Node.js CLI & Command Line Options
https://blog.risingstack.com/mastering-the-node-js-cli-command-line-options/
Node.js comes with a lot of CLI options to expose built-in debugging & to modify how V8, the JavaScript engine works. In this post, we have collected the most important CLI commands to help you become more productive.
V8 plan for Node.js LTS Carbon (A potential path to TurboFan + Ignition)
https://github.com/nodejs/CTC/issues/99
V8 5.9 will be the first version with TurboFan + Ignition (TF+I) turned on by default. As parts of the Node.js codebase have been tuned to CrankShaft, there will be a non trivial amount of churn to adapt to the new pipeline. This also creates a security risk as CrankShaft and FullCodeGen are no longer maintained by the V8 team or tested by the Chrome security team.
新鲜货
Anbox - Android in a Box
https://mm.gravedo.de/blog/posts/2017-04-10-introducing-anbox/
Anbox puts the Android operating system into a container, abstracts hardware access and integrates core system services into a GNU/Linux system. Every Android application will behave integrated into your operating system like any other native application.
What’s new in Microsoft Edge in the Windows 10 Creators Update
https://blogs.windows.com/msedgedev/2017/04/11/introducing-edgehtml-15/
This release updates the Windows web platform to EdgeHTML 15, the fourth release of EdgeHTML and a major step forward both in terms of the browser user experience, web platform capabilities, and fundamentals like performance, efficiency, and accessibility. In this post, we’ll share a quick overview of what’s new in each area, for both users and web developers.
deck.gl
http://uber.github.io/deck.gl/#/documentation/overview/introduction
三维数据可视化库,偏向地图类的应用
Ionic 3.0 has Arrived!
http://blog.ionic.io/ionic-3-0-has-arrived/
We are so excited to announce the release of Ionic 3.0! This version jump may worry some of you, but don’t let it! The required changes to go from 2.x.x to 3.0.x are minimal.
Prettier 1.0
http://jlongster.com/prettier-1.0
Prettier is a JavaScript formatter that works by compiling your code to an AST, and then pretty-printing the AST. Like browsers wrap text, prettier will also wrap code according to a given line length. The result is good-looking code that is completely consistent no matter who wrote it.
react-ionize
https://github.com/mhink/react-ionize
react-ionize is a library which lets you build the “non-browser” parts of an Electron app using React components to manage your application’s state.
React Boilrplate
http://www.boilrplate.com/language/react
了解下流行的 React 脚手架,create-react-app 无疑是排第一的,这个网站还收录了其它的一些 Boilrplate
web-dsp
https://github.com/shamadee/web-dsp
WebDSP is a collection of highly performant algorithms, which are designed to be building blocks for web applications that aim to operate on media data. The methods are written in C++ and compiled to WASM, and exposed as simple vanilla Javascript functions developers can run on the client side.
Barba.js
https://github.com/luruke/barba.js
Barba.js is a small (4kb minified and gzipped), flexible and dependency free library that helps you creating fluid and smooth transitions between your website’s pages. It helps reducing the delay between your pages, minimizing browser HTTP requests and enhancing your user’s web experience.
AcrossTabs
https://github.com/wingify/across-tabs
Easy communication between cross-origin browser tabs
chrome-remote-interface
https://github.com/cyrus-and/chrome-remote-interface
Chrome Debugging Protocol interface that helps to instrument Chrome (or any other suitable implementation) by providing a simple abstraction of commands and notifications using a straightforward JavaScript API.
Color Tool - Material Design
https://material.io/color/
Create, share, and apply color palettes to your UI, as well as measure the accessibility level of any color combination.
Musical User Interfaces
http://arthurcarabott.com/mui/
This is an ongoing set of projects focused on better interfaces for music software. The goal is to re-think many of the ways in which audio software is designed. These are a set of prototypes for how we might interact with music software more fluently, to better realise our ideas, and encourage creativity. The primary concern is not about the quality of DSP, or the way things sound, but how we use and interact with our tools.
腾讯开源基于微服务的平台Tars
http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650995811&idx=1&sn=f3feeaf543547e8f6ae565801a9fcfdc
Tars主要是支持多语言的高性能RPC开发框架和配套一体化的服务治理平台,可以帮助企业或者用户以微服务的方式快速构建稳定可靠的分布式应用。Github https://github.com/Tencent/Tars
方程式又一波大规模 0day 攻击泄漏
https://zhuanlan.zhihu.com/p/26375989
Shadow Brokers再次泄露出一份震惊世界的机密文档,其中包含了多个精美的 Windows 远程漏洞利用工具,可以覆盖大量的 Windows 服务器,一夜之间所有Windows服务器几乎全线暴露在危险之中,任何人都可以直接下载并远程攻击利用,考虑到国内不少高校、政府、国企甚至还有一些互联网公司还在使用 Windows 服务器,这次事件影响力堪称网络大地震。不过,微软宣布已修复来自NSA的Windows漏洞。
Nginx reaches 33.3% web server market share while Apache falls below 50%
https://w3techs.com/blog/entry/nginx_reaches_33_3_percent_web_server_market_share_while_apache_falls_below_50_percent
Half of the web still runs on Apache’s web server, but one third already uses Nginx, and the gap is closing fast. We have a closer look at the detailed statistics and trends.
Textbook manifesto
http://greenteapress.com/wp/textbook-manifesto/
My textbook manifesto is so simple it sounds stupid. Here it is: Students should read and understand textbooks. That’s it. It’s hard to imagine that anyone would disagree, but here’s the part I find infuriating: the vast majority of textbook authors, publishers, professors, and students behave as if they do not expect students to read or understand textbooks.
Qt binding for Go (Golang)
https://github.com/therecipe/qt
Qt is a cross-platform application framework that is used for developing application software that can be run on various software and hardware platforms with little or no change in the underlying codebase, while still being a native application with native capabilities and speed. Qt binding for Go (Golang) with support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS. 在跨平台 GUI 程序开发领域 qt 是除了 web 外的另一大分支。
BetterTLS
http://techblog.netflix.com/2017/04/bettertls-name-constraints-test-suite.html
BetterTLS is a test suite for HTTPS clients implementing verification of the Name Constraints certificate extension.
planck.js
https://github.com/shakiba/planck.js
重写的 Box2D
Robert Taylor, Innovator Who Shaped Modern Computing, Dies at 85
https://www.nytimes.com/2017/04/14/technology/robert-taylor-innovator-who-shaped-modern-computing-dies-at-85.html
向大师致敬,译文:互联网之父罗伯特-泰勒离世。跟其他许多创造发明一样,互联网的诞生是许多人共同努力的结果。不过,发明这项改变世界的技术的最大功劳也许应当归属罗伯特·W·泰勒(Robert W. Taylor)。
产品及其它
AutoDraw - Fast Drawing for Everyone
https://www.blog.google/topics/machine-learning/fast-drawing-everyone/
Drawing on your phone or computer can be slow and difficult—so we created AutoDraw, a new web-based tool that pairs machine learning with drawings created by talented artists to help you draw. 这是背后的论文:Teaching Machines to Draw.
How to Study: A Brief Guide
http://www.cse.buffalo.edu/~rapaport/howtostudy.html
I am going to give you some suggestions on how to study efficiently. They worked for me when I was in high school, college, and graduate school. Not only that, but they worked equally well for me in humanities courses (like philosophy and literature) and in science courses (like math and computer science).
[译]硅谷看微信:来自微信的7堂课
http://mp.weixin.qq.com/s/Aqarg2HtZOYu2VKgQWUmnQ
今年4月12日,Y Combinator的合伙人之一Anu Hariharan就微信发表了一篇博文。从她的角度,谈自己对微信的理解和认识。并且,从中总结了七堂课给美国的创业者。
在阿里讲了5小时运营后,我想试着重新解读“运营”
http://mp.weixin.qq.com/s?__biz=MjM5NDUyOTAwOA==&mid=2652915417&idx=2&sn=b7358b4c98f7cb3f20ce8970a315c82b
在整个互联网业内,当谈及到“运营”时,我们的理解仍然是模糊、混乱和高度不清晰的。且,这个状况,不仅对于运营从业者们无益,甚至某种程度上,对于行业的发展都已经带来了一些阻碍。我们或许需要一个对于“运营”的全新解释。它应该打破此前“内容运营、用户运营、活动运营”这一类的僵硬框架,应该足够简洁清晰,也应该能够让诸多运营从业者对于自己在做的事情不再充满疑惑。
傅盛:认知升级三部曲
所谓成长就是认知升级、、管理本质就是认知管理、战略就是格局+破局