FEX 技术周刊 - 2017/09/04
深阅读
Fast Properties in V8
https://v8project.blogspot.jp/2017/08/fast-properties.html
In this blog post we would like to explain how V8 handles JavaScript properties internally. From a JavaScript point of view there are only a few distinctions necessary for properties. JavaScript objects mostly behave like dictionaries, with string keys and arbitrary objects as values. The specification does however treat integer-indexed properties and other properties differently during iteration. Other than that, the different properties behave mostly the same, independent of whether they are integer indexed or not. This post explains the difference in handling integer-indexed and named properties.
FCR: Open source command runner for network devices
https://code.facebook.com/posts/117615485632126/fcr-open-source-command-runner-for-network-devices-/
FCR https://github.com/facebookincubator/FCR is a service that defines a Thrift interface for running commands on network devices. The service is independently scalable and allows people to focus on the business logic. FCR is part of our state-of-the-art Robotron system. We built Robotron’s active monitoring features on top of FCR.
Concurrent JavaScript: It can work!
https://webkit.org/blog/7846/concurrent-javascript-it-can-work/
This post considers a wild thought experiment: what would it take to extend concurrency to the entire JavaScript heap? In this world, any object can be shared with other threads. This would be no small change. Existing JavaScript VM optimizations exploit the fact that there is only one thread of execution, so concurrency is sure to introduce some performance problems. This post is concerned with whether this is even technically feasible, and if it is, what the cost might be.
How to Run a Front-End Infrastructure Team
http://tech.adroll.com/blog/frontend/2017/08/29/how-to-run-a-front-end-infrastructure-team.html
Over the past years, AdRoll has grown from a humble startup built around a single feature to a global marketing platform with a diverse suite of products. Along with the growth of the company, we have put a lot of work into building a solid infrastructure for user interface development. In this post, we talk about the human aspects of front-end projects that are shared between multiple engineering teams.
Yes, That Web Project Should Be a PWA
https://alistapart.com/article/yes-that-web-project-should-be-a-pwa
Progressive Web Apps may seem overly technical or beyond the needs of your project, but they’re really not. They’re just a shorthand for quality web experiences—experiences that can absolutely make a difference in our users’ lives. If you hadn’t considered building a PWA before, I hope this article has changed your mind. And if you’re already neck-deep in Service Workers, perhaps it’s given you some ideas for new ways to approach the projects you’re working on.
How can I use CSS-in-JS securely?
https://reactarmory.com/answers/how-can-i-use-css-in-js-securely
CSS-in-JS allows me to interpolate JavaScript variables into my CSS. This gives me a lot of power, but is it safe? What kind of exploits could a malicious user pull off using just CSS injection? And how can I defend against these?
Measuring performance gains — AngularJS to React (with Redux or Mobx)
https://medium.com/@guptagaruda/measuring-performance-gains-angularjs-to-react-with-redux-or-mobx-fb221517455
In this post, I will go over the performance and memory profiles of a various UI scenarios implemented using AngularJS, React/Redux and React/Mobx. We will compare and contrast the performance of these frameworks on measures like script execution time, frames per sec and usedJSHeapSize for each scenario.
The art of over-engineering your side projects
https://elsyms.com/the-art-of-over-engineering-your-side-projects/
Many software engineers who develop software as a hobby often have side projects. The sad thing is, those software engineers often have the tendency to over-engineer their side projects, put all of their effort into mundane and, let’s be honest, pointless tasks and burn out before they’ve even finished their MVP.
微信开发者工具全新改版上线
https://mp.weixin.qq.com/s?__biz=MjM5NTE4Njc4NQ==&mid=2657613740&idx=1&sn=83725b9fa8ee117b949f005826737956
对于开发者来说,前端、后台、运维可以一步到位就再好不过了。微信开发者工具全新改版上线,新增测试系统、腾讯云工具、小程序分阶段发布、小程序性能监控、WXS脚本语言等功能,全套功能让开发、发布小程序更高效。
扒一扒 Linux 文件系统的黑历史
https://zhuanlan.zhihu.com/p/28828826
如果你订阅了 Linux Kernel 的 maillist,你一定发现最近 Linus 又爆粗口了,而这次的对象是 ext4 文件系统。今天,我们就带大家回顾一下 Linux 文件系统的黑历史,希望能够警醒大家,不要过分相信和依赖文件系统。同时,在使用文件系统构建应用时,也需要采用正确的“姿势”。
数据模拟神器 easy-mock 正式开源
https://juejin.im/post/59a8f15ef265da246c4a3822
由大搜车无线团队出品的 easy-mock 在线数据模拟服务上线至今已经有几个月时间了,近期网站刚更新了焕然一新的 2.0 版本,与此同时,我们还带来一个更重磅的消息: github 开源 https://github.com/easy-mock/easy-mock 。以此,你可以将功能完整的 easy-mock 服务部署到内网,并且与内网的开发流程(例如 swagger)集成到一起,内网集成与使用方式见本文最后的集成建议。
SparkUI:FreeWheel的React开发实践
https://mp.weixin.qq.com/s?__biz=MzIwNjQwMzUwMQ==&mid=2247485403&idx=1&sn=c0e12775f6a3828441bb528c0e5b1cc9
SparkUI 是由 FreeWheel 根据自身业务特点开发的一套完整且灵活的前端开发解决方案。该方案基于 React,由 Modula 应用状态管理框架、一系列可重用的前端组件、以及构建 SPA 所需的各类支持库组成。该方案重视可重用性、灵活性、可测试性以及开发效率,解决了前端社区常见的一些针对商业前端应用开发的痛点,如复杂状态、Side Effect,组件拆分等,更在工程实践、文档化、本身代码质量等方面达到较高标准,为前后端分离架构下的商业前端应用开发提供了坚实的基础。
Android热补丁原理简单分析与问题思考
http://blog.csdn.net/w7849516230/article/details/77737374
几个主流方案的对比
基于Kubernetes的PaaS平台设计和思考
https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA
PaaS 平台的意义在于:流程化、标准化、自动化、平台化。
Life After Flash: Multimedia for the Open Web
https://hacks.mozilla.org/2017/08/life-after-flash-multimedia-for-the-open-web/
Flash delivered video, animation, interactive sites and, yes, ads to billions of users for more than a decade, but now it’s going away. Adobe will drop support for Flash by 2020. Firefox no longer supports Flash out of the box, and neither does Chrome. So what’s next? There are tons of open standards that can do what Flash does, and more.
Writing Scalable React Apps with the Component Folder Pattern
https://medium.com/styled-components/component-folder-pattern-ee42df37ec68
Discover how to organize your React components using the component folder pattern. It will help un-clutter your projects, and your life. It’s soon to be your new best friend.
async_hooks in node.js, illustrated
https://medium.com/the-node-js-collection/async-hooks-in-node-js-illustrated-b7ce1344111f
async_hooks API essentially makes it easier for you to track your resources (bye dtrace?). You start off by initializing it with an object of callbacks: init, before, after and destroy.
Building the Tumblr Neue Post Format
https://engineering.tumblr.com/post/164826109535/building-the-tumblr-neue-post-format
We’ve chosen to write a brand new JSON-based specification for post content. We’re calling it the Tumblr Neue Post Format, or simply NPF. The NPF specification breaks apart post content into discreet content blocks, each defined by a type field. All of our existing post content easily fits into this kind of specification, affording backwards-compatibility with the billions of posts on Tumblr.
Engineering Uber’s Self-Driving Car Visualization Platform for the Web
https://eng.uber.com/atg-dataviz/
In this article, we describe how our Data Visualization team built this platform and explore the challenges of combining complex and diverse datasets into a reusable and performant web component.
Open Sourcing Kafka Cruise Control - Automating Kafka’s Operation at Scale
https://engineering.linkedin.com/blog/2017/08/open-sourcing-kafka-cruise-control
We are pleased to announce that we have open sourced Cruise Control and it is now available on Github. In this post, we’ll describe Cruise Control’s uses both generally and at LinkedIn, its architecture, and some unique challenges we faced when creating it. For further details about Kafka terminology used throughout this post, this reference can be a helpful guide.
3 Questions about Serverless Technology
https://thenewstack.io/3-questions-serverless-technology/
- FaaS Platform or Event-Driven Architecture? 2. Serverless Standards? 3. Function Reliability.
A Comparison of Linux Container Images
http://crunchtools.com/comparison-linux-container-images/
This article will compare and contrast the strategies taken by different Linux distributions which are commonly used in container images.
IPv6 Performance – Revisited
https://blog.apnic.net/2016/08/22/ipv6-performance-revisited/
At a finer level of detail, there are discernible differences between geographic regions. IPv6 appears to be faster on average in Europe, Africa and Oceania, while IPv4 is faster in Asia, and the Americas. At a further level of detail these differences between IPv4 and IPv6 extend to individual access networks where some networks appear to handle IPv6 packets in an entirely different manner to IPv4 packets.
Transformer: A Novel Neural Network Architecture for Language Understanding
https://research.googleblog.com/2017/08/transformer-novel-neural-network.html
In our paper, we show that the Transformer outperforms both recurrent and convolutional models on academic English to German and English to French translation benchmarks. On top of higher translation quality, the Transformer requires less computation to train and is a much better fit for modern machine learning hardware, speeding up training by up to an order of magnitude.
Low-Level Graphics on Linux
http://betteros.org/tut/graphics1.php
This tutorial attempts to explain a few of the possible methods that exist on Linux to access the graphics hardware from a low level. I am not talking about using Xlib instead of GTK+ or QT5, nor am I talking about using DirectFB, I want to go even lower than that; I’m talking about drawing graphics to the screen without needing any external dependencies; I’m talking about communicating directly with the Linux kernel.
Google ARCore – Latest Trend in Augmented Reality Platform for Android Users
https://excellentwebworld.com/google-arcore-augmented-reality-platform-for-android-users/
Google has finally released its augmented reality toolkit as a great competitor to Apple’s ARKit. ARCore will allow the developers to create augmented reality applications. This will provide the Android developers to join the rush of developing AR apps.
Skeuomorphism, Flat Design, and the Rise of Type Design
https://www.toptal.com/designers/ui/type-design
We started with skeuomorphic design then went to flat design, and now I think we should challenge ourselves to design interfaces like the ones we’ve admired in sci-fi with just type and little to nothing else. This new style can be called type design. We need a better solution for making designs that are faster to iterate but still look beautiful. Our flat designs are not so flat anymore—they take forever to work on, maintain, and change. I’m not saying we should ditch intricate designs entirely; I’m just saying we need a second option.
新鲜货
r2
https://github.com/mikeal/r2
Early in Node.js I wrote an HTTP client library called request. It evolved along with Node.js and eventually became very widely depended upon. A lot has changed since 2010 and I’ve decided to re-think what a simple HTTP client library should look like. This new library, r2, is a completely new approach from request. Rather than being built on top of the Node.js Core HTTP library and shimmed for the Browser, r2 is built on top of the browser’s Fetch API and shimmed for Node.js. APIs are meant to be used with async await, which means they are based on promises.
Release Radar - September 2017
https://github.com/blog/2425-release-radar-september-2017
Welcome to the first edition of the Release Radar, where we share the projects popping up on our radar—from world-changing technologies to weekend side projects. Most importantly, they’re all projects shipped by you. Hopefully, we’ll find little something for everybody: a new app for your tool belt, a fresh experiment for your free time, or a game to play with on your next coffee break. This month we’re sharing projects to make your data sizzle 🔥 and add animations to your native apps with ease. Enjoy!
API rate limiting rolling out
http://blog.npmjs.org/post/164799520460/api-rate-limiting-rolling-out
We’re therefore rolling out more explicit rate-limiting for all registry apis. Your tools should be ready to handle responses with http status code 429, which means that you have exceeded the allowed limit. We will be allowing logged-in users to make requests at a higher rate than anonymous users.
Announcing TypeScript 2.5
https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/
The Extract Function and Extract Method refactorings. New quick fixes. JSDoc type assertion support in JavaScript files. Optional catch clauses. Deduplicated and redirected packages.
merge the TSC and CTC back into a single entity
https://github.com/nodejs/TSC/pull/317
Merge the CTC and TSC back into a single body. Effectively dissolves the CTC and merges it’s existing membership into to the TSC.
Go Even Faster from Sketch to HTML
https://medium.com/sketch-app-sources/go-even-faster-from-sketch-to-html-67be84f0363b
On our mission to empower designers, we are continuously pushing the envelope on what designers can achieve without writing code. On this update, we introduce a few updates for Launchpad, and better compatibility with Sketch 46.
Introducing KSQL: Open Source Streaming SQL for Apache Kafka
https://www.confluent.io/blog/ksql-open-source-streaming-sql-for-apache-kafka/
I’m really excited to announce KSQL, a streaming SQL engine for Apache KafkaTM. KSQL lowers the entry bar to the world of stream processing, providing a simple and completely interactive SQL interface for processing data in Kafka. You no longer need to write code in a programming language such as Java or Python! KSQL is open-source (Apache 2.0 licensed), distributed, scalable, reliable, and real-time. It supports a wide range of powerful stream processing operations including aggregations, joins, windowing, sessionization, and much more.
ONI
https://github.com/extr0py/oni
IDE powered by Neovim + React + Electron
AdonisJs
https://github.com/adonisjs
AdonisJs is a beautiful framework for node js built on solid OO foundations. 附:What’s New In AdonisJs 4.0.
Moon - A minimal, blazing fast UI library
https://github.com/kbrsh/moon
Moon is a simple front end JavaScript library heavily inspired by Vue. The library is fast, flexible, and easy to learn. Check out the Medium Article for more information on why I made this.
Backpack
https://github.com/jaredpalmer/backpack
Backpack is minimalistic build system for Node.js. Inspired by Facebook’s create-react-app, Zeit’s Next.js, and Remy’s Nodemon, Backpack lets you create modern Node.js apps and services with zero configuration. Backpack handles all the file-watching, live-reloading, transpiling, and bundling, so you don’t have to.
Push v1.0 - Javascript Notification Framework
https://github.com/Nickersoft/push.js
Push is the fastest way to get up and running with Javascript desktop notifications. A fairly new addition to the official specification, the Notification API allows modern browsers such as Chrome, Safari, Firefox, and IE 9+ to push notifications to a user’s desktop. Push acts as a cross-browser solution to this API, falling back to use older implementations if the user’s browser does not support the new API.
Vivify
https://github.com/Martz90/vivify
Vivify is free CSS animation library.
react-dates
https://github.com/airbnb/react-dates
An easily internationalizable, mobile-friendly datepicker library for the web.
react-markings
https://github.com/Thinkmill/react-markings
Markdown in components, components in markdown.
React + D3
http://numberpicture.com/library
Number Picture is a collection of low-level React components for declaratively composing animated, interactive SVG visualizations. React handles the DOM structure and D3 handles the animations + math.
faas-netes
https://github.com/alexellis/faas-netes
This is a plugin to enable Kubernetes as an OpenFaaS backend. The existing CLI and UI are fully compatible. OpenFaaS is an event-driven serverless framework for containers. Any container for Windows or Linux can be leveraged as a serverless function. OpenFaaS is quick and easy to deploy (less than 60 secs) and lets you avoid writing boiler-plate code.
The Marketing Behind MongoDB
https://www.nemil.com/mongo/3.html
The early growth of MongoDB is a story that should be taught to every software developer. It’s an example of the periodic technical hype cycles that can lead to bad engineering decisions.
Python Data Science Handbook
https://jakevdp.github.io/PythonDataScienceHandbook/
This website contains the full text of the Python Data Science Handbook by Jake VanderPlas; the content is available on GitHub in the form of Jupyter notebooks.
Goby - A new language helps you develop microservices
https://github.com/goby-lang/goby
Goby is an object-oriented interpreter language deeply inspired by Ruby as well as its core implementation by 100% pure Go. Moreover, it has standard libraries to provide several features such as the Plugin system. Note that we do not intend to reproduce whole of the honorable works of Ruby syntax/implementation/libraries. One of our goal is to provide web developers a sort of small and handy environment that mainly focusing on creating API servers or microservices.
GopherJS - A compiler from Go to JavaScript
https://github.com/gopherjs/gopherjs
GopherJS compiles Go code (golang.org) to pure JavaScript code. Its main purpose is to give you the opportunity to write front-end code in Go which will still run in all browsers.
Great Theoretical Ideas in Computer Science
http://www.cs.cmu.edu/~aada/courses/15251s17/www/
卡耐基梅隆大学的一门计算机课程,感兴趣的同学可学习。
产品及其它
一元画背后你该知道的事情
http://www.geekpark.net/topics/221546
当这些自闭症、智力障碍者在网络中售卖自己的画作,并试图和我们建立连接时,你会不会感到震撼,想为他们做点什么?你会不会好奇他们的生活究竟怎样?这场「小朋友画廊」蔓延朋友圈的背后,我们究竟和他们产生了怎样的联系?不到 24 小时募捐 1500 万元的背后,人们究竟得到了什么?太多太多值得思考的问题,也许每个人都想要知道答案。另附:腾讯 99 公益日-连接更多人的公益还有怎样的玩法、复盘:“一元购画”与“公益参与感”之间只需一条朋友圈动态
为什么说腾讯“被误会”了好多年
https://mp.weixin.qq.com/s?__biz=MzIxNTAzNzU0Ng==&mid=2654588131&idx=1&sn=dd9d35f8d6134b88f428b752615b510c
企业就是根据某一信念,共同完成一件事情的一群人所组成的组织,也叫团队。企业文化在组织行为学里,指的是一群人所共同信仰的价值观,并且这些价值观总会在某些时刻发挥作用。它的价值并不体现在日常工作中,而是体现在关键事情发生时企业所采取的应对措施上。企业文化最大的特点就是能够形成一种“场”,这种“场”逼迫所有进入其内部的人进行改变,并逐渐变得相似统一起来。腾讯能够在众多具有相同能力的其他互联网公司中脱颖而出,就是因为它的企业文化永远保持开放性,对于外界创新保持敏感并不羞于向他人学习。
– THE END –