FEX 技术周刊 - 2017/08/29
业界会议
Ploymer Summit 8.22-8.23
https://summit.polymer-project.org/
附 Polymer 3.0 preview: npm and ES6 Modules.
FEDAY 前端开发者大会 - 8.26
https://segmentfault.com/e/1160000010336514
深阅读
Node.js Forked Again Over Complaints of Unresponsive Leadership
https://thenewstack.io/node-js-forked-complaints-repeated-harassment/
The codebase for popular Node.js JavaScript runtime has been forked again — the second time in less than three years — with a growing number of contributors charging that the Technical Steering Committee (TSC) leadership is ignoring repeated violations of the project’s code of conduct. The new project, called Ayo, has already been set up on GitHub, and will be managed under an open governance model.
External Library Management
https://engineering.linkedin.com/blog/2017/08/external-library-management–making-continuous-delivery-reliable
At LinkedIn, we tackle this challenge by importing external library dependencies into our own repository through the External Library Request (ELR) process. During this process we import and host each requested dependency, all of its metadata and all of its transitive dependencies. ELR process provides us with the ability to audit each dependency and remove reliance on external repositories.
Easing the pain of building in JavaScript
http://2ality.com/2017/08/less-building-in-web-dev.html
In principle, JavaScript is a very dynamic and interactive programming language. However, that has changed significantly in recent years. Now, modern web development requires extensive build and compilation steps. That is unfortunate for two reasons. First, it makes development less pleasant. Second, it makes web development harder to learn. This blog post covers ideas and tools for easing some of the pain of building.
Inside a super fast CSS engine: Quantum CSS
https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/
And the first major component from Servo—a new CSS engine called Quantum CSS (previously known as Stylo)—is now available for testing in our Nightly version. You can make sure that it’s turned on for you by going to about:config and setting layout.css.servo.enabled to true. This new engine brings together state-of-the-art innovations from four different browsers to create a new super CSS engine. 另附:[Edge - Making the web smoother with independent rendering(https://blogs.windows.com/msedgedev/2017/08/17/making-web-smoother-independent-rendering/).
How JavaScript works: inside the V8 engine + 5 tips on how to write optimized code
https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e
This post will be diving into the internal parts of Google’s V8 JavaScript engine. We’ll also provide a few quick tips on how to write better JavaScript code —best practices our development team at SessionStack follows when building the product.
设计 Timeline 时间轴来更精确地控制动画
https://www.h5jun.com/post/timeline-for-animations.html
Firefox 偷偷实现了一个 AnimationTimeline,用来为动画提供时间轴。根据文档,它是一个抽象类,被 DocumentTimeline 继承。由于是非标准的特性,MDN的文档里面也没有解释的很清楚,只是说它用来让多个动画共享时间轴,但是具体该怎么用,并没有详细的说明。今天在这篇文章里,我并不想解释 Firefox 实现的这个 Timeline 该怎么用,而是借着这个 Timeline 的概念进行一些扩展,实现了一个全新的 Timeline 库。让我们看看如果为动画或者其他依赖于时间的行为设计一个 Timeline,我们能做什么。
谷歌为什么把上十亿行代码都放在一个仓库里
http://www.igeekbar.com/igeekbar/post/346.htm
放在一个仓库并且只有 trunk
美团点评数据平台融
https://tech.meituan.com/dataplat_coalesce.html
本文将重点讲述数据平台融合项目的实践思路和经验,并深入地讨论Hadoop多机房架构的一种实现方案,以及大面积SQL任务重构的一种平滑化方法。最后介绍这种复杂的平台系统如何保证平稳平滑地融合。
H5与Native交互之JSBridge技术
http://tech.youzan.com/jsbridge/
如何自己实现一个
直播协议 HTTP-FLV 详解
https://segmentfault.com/a/1190000010791731
比 RTMP 更容易普及
从软件工程角度看大前端技术栈
https://mp.weixin.qq.com/s?__biz=MzIyNjE4NjI2Nw==&mid=2652559282&idx=1&sn=9b695d8f9fb5313a623e38e75c894b39
我们都知道,大学几乎是没有 Web 前端课的。以我所在的大学为例,唯一引导我们了解 JavaScript 的也只是「人机界面」和「Web 应用开发」选修课。再者,由于这些选修课的课时短、面向的主要群体是大部分大学生等原因,其最终所涉及的内容层次也很难赶上近年来 Web 前端领域的快速变化。自学,看起来是广大前端学习者的普遍成长道路。本文尝试结合软件工程专业背景并贯穿软件工程思想,开启一个常常“不为人所知”的大前端技术栈之旅。
iOS弹幕库OCBarrage-如何hold住每秒5000条巨量弹幕
http://www.jianshu.com/p/6593778a85e4
弹幕量稍微大一点, 或者弹幕稍微复杂一点, 就会出现卡顿,这与它的底层实现, 设计策略以及你的使用方法都有关系. 关键是动画单一,无法定制,满足不了动画的多样化需求!OCBarrage正是为解决这些问题而生的!OCBarrage底层使用Core Animation驱动, Core Graphics绘图, GPU渲染, 性能极高, 哪怕是同时渲染5000条弹幕也不会感觉到卡顿.
React 的许可协议到底发生了什么问题
https://zhuanlan.zhihu.com/p/28618630
不清楚原委的可以看看这个。
CORS跨域资源共享你该知道的事儿
https://mp.weixin.qq.com/s?__biz=MzU0OTExNzYwNg==&mid=2247483814&idx=1&sn=6fa914f7777fcc5a3a7961a37b84429b
科普这个古老的概念。
So you need a CSS utility library
https://css-tricks.com/need-css-utility-library/
Let’s define a CSS utility library as a stylesheet with many classes available to do small little one-off things. Like classes to adjust margin or padding. Classes to set colors. Classes to set specific layout properties. Classes for sizing. Utility libraries may approach these things in different ways, but seem to share that idea. Which, in essence, brings styling to the HTML level rather than the CSS level. The stylesheet becomes a dev dependency that you don’t really touch.
Web Frameworks: Using and Developing
https://www.sitepen.com/blog/2017/08/23/web-frameworks-using-and-developing/
In this post, we are going to explore how you might approach the workflow for a given framework, what sort of surrounding tooling is provided or recommended by the framework, how applications get built and deployed, and what sort of support there is for figuring things out when something inevitably goes wrong.
How To Create A Sketch Plugin With Front-End Technologies
https://www.smashingmagazine.com/2017/08/create-sketch-plugin-front-end-technologies/
The open nature of the Sketch plugin system means that anyone can identify a need, write a plugin and share it with the community. A major barrier is stopping those eager to take part: Designers and front-end developers must learn how to write a plugin. Unfortunately, Objective-C is difficult to learn! What if users could write plugins using technologies they are already familiar with? This tutorial covers the usage of WebView technology to create a plugin using HTML, CSS and JavaScript.
HTTP/2 Server Push with Node.js
https://blog.risingstack.com/node-js-http-2-push/
Node.js 8.4.0 just arrived with the experimental support of HTTP/2, which you can enable by using the –expose-http2 flag. In this blog post, we will introduce the most important aspects of HTTP/2 Server Push and create a small Node.js app that gains benefit from using it.
All the fundamental React.js concepts, jammed into this single Medium article
https://medium.freecodecamp.org/all-the-fundamental-react-js-concepts-jammed-into-this-single-medium-article-c83f9b53eac2
This article is not going to cover what React is or why you should learn it. Instead, this is a practical introduction to the fundamentals of React.js for those who are already familiar with JavaScript and know the basics of the DOM API.
Why I’m not a React Native Developer
https://arielelkin.github.io/articles/why-im-not-a-react-native-developer.html
Having spent several months using React Native, I have found that it is neither a platform I would develop in, nor a platform I would recommend the use of. This article proposes to provide a more thorough evaluation of the pros and cons of switching from Swift development to React Native, and will argue against the switch. 另:If you’re a startup, you should not use React (reflecting on the BSD + patents license)
Exploring and Visualizing an Open Global Dataset
https://research.googleblog.com/2017/08/exploring-and-visualizing-open-global.html
Over the last six months, we’ve seen such a dataset emerge from users of Quick, Draw!, Google’s latest approach to helping wide, international audiences understand how neural networks work. And now we are releasing an open dataset based on these drawings so that people around the world can contribute to, analyze, and inform product design with this data. The dataset currently includes 50 million drawings Quick Draw! players have generated.
Steering oceans of content to the world
https://code.facebook.com/posts/565767133547005/steering-oceans-of-content-to-the-world/
Facebook has built out a global network of points of presence (PoPs), each connected to tens or hundreds of networks. In order to support Facebook’s growing external demand and internal services, we embarked several years ago on building in-house hardware and software systems to scale our global network.
Open sourcing DoctorKafka: Kafka cluster healing and workload balancing
https://medium.com/@Pinterest_Engineering/open-sourcing-doctorkafka-kafka-cluster-healing-and-workload-balancing-e51ad25b6b17
To scale up the Kafka service operation, we built DoctorKafka, a service for Kafka cluster auto-healing and workload balancing. DoctorKafka can detect broker failures and automatically reassign the workload from failed brokers to healthy ones. It can also perform workload balancing based on the settings. Today we’re releasing DoctorKafka as an open source project on GitHub. In this post we’ll cover its architecture and how it can be useful to you.
Perspective on Architectural Fitness of Microservices
https://www.infoq.com/articles/Microservices-Architectural-Fitness
In this article we examine the potential architectural fitness of microservices in the context of Master Data Management (MDM), and the challenges a microservices-based architecture may face when solving problem domains that require compute-intensive tasks, such as the calculation of expected losses on a portfolio of unsecured consumer credit.
Ideal OS: Rebooting the Desktop Operating System Experience
https://joshondesign.com/2017/08/18/idealos_essay
By the end of this essay I hope to convince you of the following facts. First, that modern desktop operating systems are anything but. They are bloated, slow, and layered with legacy cruft that still functions only thanks to Moore’s Law. Second, that innovation in desktop operating systems stopped about 15 years ago and the major players are unlikely to heavily invest in them again. And finally, I hope to convince you that we can and should start over from scratch, learning the lessons of the past.
新鲜货
ECharts v3.7 发布
http://efe.baidu.com/blog/echarts-3-7-0/
ECharts v3.7 版本支持富文本标签和可滚动图例,带你做个标签党!不仅可以在标签中对整体定制背景、边框、旋转等属性,还可以对文本片段分别设置,甚至还能使用图片作为图标或背景。对于图例太多的情况,可滚动图例使图表显得更整洁美观。
Stencil: A Compiler for Web Components
https://stenciljs.com/docs/intro
Stencil is a compiler that generates Web Components (more specifically, Custom Elements). Stencil combines the best concepts of the most popular frameworks into a simple build-time tool.
Introducing Chrome Enterprise
https://www.blog.google/topics/connected-workspaces/introducing-chrome-enterprise/
Chrome Enterprise offers a host of features, including access to enterprise app storefronts, deep security controls, 24/7 support, as well as integration with cloud and on-premise management tools, VMware Workspace ONE and MicrosoftⓇ Active DirectoryⓇ.
Stencil: A Compiler for Web Components
https://github.com/ionic-team/stencil
Stencil combines the best concepts of the most popular frontend frameworks into a compile-time rather than run-time tool. Stencil takes TypeScript, JSX, a tiny virtual DOM layer, efficient one-way data binding, an asynchronous rendering pipeline (similar to React Fiber), and lazy-loading out of the box, and generates 100% standards-based Web Components that run in any browser supporting the Custom Elements v1 spec.
Rendertron
https://github.com/GoogleChrome/rendertron
Rendertron is a dockerized, headless Chrome rendering solution designed to render & serialise web pages on the fly. Rendertron is designed to enable your Progressive Web App (PWA) to serve the correct content to any bot that doesn’t render or execute Javascript.
pdf-bot
https://github.com/esbenp/pdf-bot
A Node queue API for generating PDFs using headless Chrome. Comes with a CLI, S3 storage and webhooks for notifying subscribers about generated PDFs.
Annoucing Bee-Queue v1.0
https://mixmax.com/blog/bee-queue-v1-node-redis-queue
A simple, fast, robust job queue for Node.js, backed by Redis.
wuzz - Interactive cli tool for HTTP inspection
https://github.com/asciimoo/wuzz/tree/master
Wuzz command line arguments are similar to cURL’s arguments, so it can be used to inspect/modify requests copied from the browser’s network inspector with the “copy as cURL” feature.
10 Languages That Compile to JavaScript
https://www.sitepoint.com/10-languages-compile-javascript/
If JavaScript is not your favorite language, you can still create web applications without having to suffer the shortcomings of the technology. 附: The Power of Elm in JavaScript
Flutter
https://github.com/flutter/flutter
A new mobile app SDK to help developers and designers build modern mobile apps for iOS and Android. Flutter is an alpha, open-source project. Flutter makes it easy and fast to build beautiful mobile apps.
redocx
https://github.com/nitin42/redocx
redocx is a library which lets you create word documents with React. It provides a set of components which renders your declarative views and components to word documents.
react-delegate
https://github.com/swipesapp/react-delegate
Fixing the relationship between parent and child in react to avoid callback hells and over-parenting. 😃
FermionJS
https://github.com/FermORG/FermionJS
Visual Prototyping Tool for React Applications
Cross Browser Testing Tool
https://crossbrowsertesting.com/
The Easiest Way To Get Started With Automated & Manual Testing On Real Browsers. Manual & exploratory testing on 1500+ real browsers and mobile devices.
Marko
http://markojs.com/
Marko is a friendly (and fast!) UI library that makes building web apps fun.
Storj
https://storj.io/
Storj is based on blockchain technology and peer-to-peer protocols to provide the most secure, private, and encrypted cloud storage. 附: Storj: Not a Dropbox Killer
Go 1.9 is released
https://blog.golang.org/go1.9
There are many changes to the language, standard library, runtime, and tooling. This post covers the most significant visible ones. 另附: Why Go is my favorite programming language.
产品及其它
How GitLab can help in research reproducibility
https://about.gitlab.com/2017/08/25/gitlab-and-reproducibility/
NYU reproducibility librarian Vicky Steeves shares why GitLab is her choice for ongoing collaborative research, and how it can help overcome challenges with sharing code in academia.
GitHub Classroom
https://classroom.github.com/
GitHub Classroom automates repository creation and access control, making it easy to distribute starter code and collect assignments on GitHub.
– THE END –