微信搜索『FEX』关注我们的公众号,及时获得最新资讯。

深阅读

Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation
https://arxiv.org/abs/1609.08144
http://mp.weixin.qq.com/s?__biz=MjM5MTEyNjQ3MA==&mid=2649690429&idx=1&sn=281dc030fa9bdf5d3b8fd1c5a83b06eb
Google 翻译的水平真的越来越高,一篇英文技术文章,Google 翻译后的结果已经基本可以看懂了。身为码农,请不要再找借口说英文不好看不懂英文文档了。

The State of JavaScript – Survey results
http://stateofjs.com/2016/introduction/
Over nine thousand developers took part in the first edition of the State Of JavaScript survey. They answered questions on topics ranging from front-end frameworks and state management, to build tools and testing libraries. You’ll find out which libraries developers most want to learn next, and which have the highest satisfaction ratings. And hopefully, this data will help you make sense of the ever-changing JavaScript ecosystem.

Angular 2 vs React: The Ultimate Dance Off
https://medium.com/javascript-scene/angular-2-vs-react-the-ultimate-dance-off-60e7dfbc379c#.bf5ulsw5p
Most people who follow me know that I personally favor React, but of course I like my decisions to be educated, not based on uninformed bias. Lately, I’ve been exploring Angular 2 in-depth. Here’s how it compares to React in my opinion.

Why I’m not a React Native Developer
https://arielelkin.github.io/articles/why-im-not-a-react-native-developer
Many people are currently assessing React Native as a platform to develop their next mobile app on. This is no trivial matter. 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. 回应文:Why I’m a React Native Developer: a Response to Ariel Elkin

Next Generation Server Compression With Brotli
https://www.smashingmagazine.com/2016/10/next-generation-server-compression-with-brotli/
A new kid on the block has been gaining support in modern browsers, and its name is Brotli. In this article, you’ll get hands-on with Brotli by writing a Node.js-powered HTTP server that implements this new algorithm, and we’ll compare its performance to gzip.

Node.js, TC-39, and Modules
https://hackernoon.com/node-js-tc-39-and-modules-a1118aecf95e#.lrkxqortz
A write-up of what’s going on with TC39 (the group working on specifying the latest versions of JavaScript) around ECMAScript Module support in Node.

[译]在 2016 年学 JavaScript 是一种什么样的体验
https://www.v2ex.com/t/310767
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
近期非常火的一篇文章,不可否认前端的入门门槛说的确是越来高了,乱象的背后是创造力,会逐步趋于成熟的。相关讨论: https://news.ycombinator.com/item?id=12628921 https://medium.com/@kitze/how-it-actually-feels-to-write-javascript-in-2016-46b5dda17bb5#.yf5n71xen

Security updates for all active release lines, September 2016
https://nodejs.org/en/blog/vulnerability/september-2016-security-releases/
Updates are now available for all active Node.js release lines. These include the recently published versions of OpenSSL 1.0.1 and 1.0.2 as well as fixes for some Node.js-specific security-related defects.

Node.js at Scale - npm Best Practices
https://blog.risingstack.com/nodejs-at-scale-npm-best-practices/
We are creating a collection of articles focusing on the needs of companies with bigger Node.js installations, and developers who already learned the basics of Node. In the first chapter of Node.js at Scale you are going to learn the best practices on using npm as well as tips and tricks that can save you a lot of time on a daily basis. 另附 npm 相关的:How I npmnpm-expansions 。risingstack 公布了自己的社区:Announcing RisingStack Community

iOS预审总被拒?腾讯教你提升iOS审核通过率!
http://mp.weixin.qq.com/s?__biz=MzA3NzM0NzkxMQ==&mid=2655358076&idx=1&sn=f5dfd77435b8542b5d3c78576209c0ea
经验总结+广告

Modern Functional Programming
http://degoes.net/articles/modern-fp-part-2
http://degoes.net/articles/modern-fp
Late last year, I wrote my thoughts on what the architecture of modern functional programs should look like. Since then, I’ve had a chance to read responses, look at equivalent architectures built upon Monad Transformers Library (MTL), and even talk about my recent experiments at LambdaConf 2016. The result is a sequel to my original post, which consists of a newly-minted, tricked-out recommendation for architecting modern functional programs, along with new ways of thinking about the structure of this architecture.

代码命名:僧敲月下门
http://mp.weixin.qq.com/s?__biz=MzA3NDM0ODQwMw==&mid=2649827483&idx=1&sn=228be8c6c3448a56f7ecd00e20e3ae1d
可不要小看源代码结构、类名、方法名、变量名,它们往往体现着你对系统和业务的理解,勾勒出了系统的骨架,也是工程师交流的渠道。一个程序员的代码反映其能力,而一个程序员给代码命名的水准则反映其修为和内涵。

[译]大型前端项目的架构
http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651223189&idx=1&sn=dcb163a56164bbc61dfc6784de20c766
当在开发你的大型应用架构时,很重要的一点是多想远一点,不知是一个月或一年后,可能是更远。我知道很难猜测未来的发展,但还是有一些空间可以想象。文中给出了了三个典型原则:打造大型应用的诀窍不是在打造一型应用,而是将你的应用拆解成许多小的组件,然后再把他们组成你的应用;因为刚开始就无法预知这个应用未来的发展趋势,所以就坦然接受在不知道任合条件的情況下开始你的设计,这个时候你就会花时间在考虑某些关键模块是否会在将来更变上;组件之间的耦合性很高,其可重用性便低,而且很难再设计变更后却不影响到其他组件的运行。

关于微信小程序你不知道的4个秘密
https://www.qcloud.com/act/event/yingyonghao.html
http://mp.weixin.qq.com/s?__biz=MjM5MDgwMzc4MA==&mid=2654860736&idx=1&sn=3d9e925e9c92a5e2c9306f4bfaea22de
腾讯云的动作慢快的,腾讯云的动作慢快的,腾讯各业务间的协同配合非常赞。另附:微信小程序,大多数人误解的8个问题微信小程序的盛宴,你真的准备好了

基于 UIWebView 的富文本编辑器实践
http://wereadteam.github.io/2016/09/21/RichEditor/
比起原生实现,用 WebView 是个比较快的方式

Understanding Reactive Programming and RxJS
https://auth0.com/blog/understanding-reactive-programming-and-rxjs/
Using Reactive programming and RxJS, you can simplify your programming logic and make your programs easier to understand. Let’s build a weather app to show this off! 另附来自 eleme 团队的 让我们一起来学习 RxJS

Chrome on Android: Do more on every phone and network
https://chrome.googleblog.com/2016/09/chrome-on-android-do-more-on-every.html
We want to make Chrome a better place for all our users to enjoy the mobile web. Chrome’s new features on Data Saver, downloads, and content discovery were designed to help you do more on the web, no matter what phone or network you may have. 另附 Cross-origin Service Workers: Experimenting with Foreign Fetch

Methods for Controlling Spacing in Web Typography
https://css-tricks.com/methods-controlling-spacing-web-typography/
Typography on the web is hard! Yes, we do have a ton of control over how type is displayed, rendered and positioned on the screen. But with great power comes great responsibility. At least you now have a few tools at your disposal to respond back to web designers who are stuck on the the precision of typographical design in the browser. 相关文章 Space in Design Systems

Master the DOM
https://medium.com/re-dom/master-the-dom-bc1a2a06089b#.k3zltj66s
作者认为 DOM is not that hard and especially not slow 并介绍了一个自己开发的轻量级类库 https://redom.js.org/

Node.js debugging with Chrome DevTools
https://blog.hospodarets.com/nodejs-debugging-in-chrome-devtools
Recently Paul Irish described how you can debug Node.js applications with Chrome DevTools. It means, today you can debug your browser JavaScript files and Node.js ones in the same DevTools window in parallel, which makes the perfect sense.

安卓自定义View进阶-事件分发机制原理
http://www.gcssloop.com/customview/dispatch-touchevent-theory
安卓上面的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件应该给谁呢?为了解决这一个问题,就有了事件分发机制。View的事件分发机制实际上就是一个非常经典的责任链模式,如果你了解责任链模式,那么事件分发对你来说并不是什么难题,如果你不了解责任链模式,刚好借此机会学习一下啦。

Reflections of an “Old” Programmer
http://www.bennorthrop.com/Essays/2016/reflections-of-an-old-programmer.php
一位 40 岁的程序员的思考,这几个观点挺不错的:knowledge decay, Half of what a programmer knows will be useless in 10 years; knowledge accumulation rate, the pace at which we add new things to our knowledge corpus; take the long view, making less money in the short term (at a better employer) will yield more money (and stability) over the course of a long career; invest most in knowledge that is durable, spent accumulating knowledge that has a longer half-life - algorithms, application security, performance optimization, and architecture.

TypeScript - The Myth of the Superset
http://blog.jonasbandi.net/2016/10/myth-of-superset.html
TypeScript claims to be a superset of JavaScript. Many TypeScript presentations start with a picture of concentrical circles illustrating that TypeScript is a superset of JavaScript. This fact is a major value proposition of TypeScript over other “Compile-to-JavaScript” languages. It is the base for a gradual migration of a legacy project to TypeScript and it is the base for a frictionless integration with the JavaScript ecosystem.

新鲜货

AntD 2.0.0 发布
https://ant.design/
Ant Design 是一个致力于提升『用户』和『设计者』使用体验的中台设计语言。它模糊了产品经理、交互设计师、视觉设计师、前端工程师、开发工程师等角色边界,将进行 UE 设计和 UI 设计人员统称为『设计者』,利用统一的规范进行设计赋能,全面提高中台产品体验和研发效率。AntD 是 Ant Design 的 React 实现,在国内已经广范使用,最近发布了 2.0 版本。

Figma 1.0 – Collaborative interface design tool
https://www.figma.com/
https://medium.com/@mengto/figma-vs-sketch-c01e5e74eddd#.iezzjtge8
The first interface design tool with real-time collaboration. Figma keeps everyone on the same page. Focus on the work instead of fighting your tools.Powerful for professionals. Intuitive for beginners. From illustrating icons to crafting responsive layouts, interface design has never been easier. No installation required. You can even import from Sketch.

cnpm/npminstall
https://github.com/cnpm/npminstall
让 npm install 可以加速到 10 多秒的关键类库,欢迎大家使用 cnpm,告别龟速。

Vue 2.0 发布
https://medium.com/the-vue-point/vue-2-0-is-here-ef1f26acf4b8#.6r9xjmu6x
http://jiongks.name/blog/vue-2-is-here/
Ever since the work on 2.0 started back in April, the core team has made significant contributions to API design, bug fixes, documentation and TypeScript typings (yes, vue core, vue-router and vuex 2.0 all have TypeScript typings shipped in the npm packages), and the community also provided extremely valuable feedback on API changes — a big thank you to everyone involved!

React - Our First 50,000 Stars
https://facebook.github.io/react/blog/2016/09/28/our-first-50000-stars.html
回顾 React 的过去。另外 React Weekly 正式发布 http://react.statuscode.com/ 感兴趣的同学可以关注这个 Weekly 及时掌握 React 社区的动向。

Marko: Templating Engine and UI Component Library from EBay
http://markojs.com/
Marko is a really fast and lightweight HTML-based templating engine that compiles templates to readable Node.js-compatible JavaScript modules, and it works on the server and in the browser. It supports streaming, async rendering and custom tags. Marko Widgets is a UI component building library that utilizes Marko templates as the view. It offers advanced features like DOM diffing/patching, batched updates, stateful widgets, declarative event binding and efficient event delegation.

Introducing .NET Standard
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
.NET Standard solves the code sharing problem for .NET developers across all platforms by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services.

DevDocs
http://devdocs.io/
DevDocs combines multiple API documentations in a fast, organized, and searchable interface. 非常不错的一个文档服务,有离线版可以下载。

Facebook, Amazon, Google, IBM and Microsoft come together to create the Partnership on AI
https://techcrunch.com/2016/09/28/facebook-amazon-google-ibm-and-microsoft-come-together-to-create-historic-partnership-on-ai/
In an act of self-governance, these five companies came together today to announce the launch of the new Partnership on AI. The group is tasked with conducting research and promoting best practices. Practically, this means that the group of tech companies will come together frequently to discuss advancements in artificial intelligence.

optimize-js
https://github.com/nolanlawson/optimize-js
Optimize a JavaScript file for faster initial execution and parsing, by wrapping all immediately-invoked functions or likely-to-be-invoked functions in parentheses.

g9.js
https://github.com/bijection/g9
g9 is a javascript library for creating automatically interactive graphics. With g9, interactive visualization is as easy as visualization that isn’t. Just write a function which draws shapes based on data, and g9 will automatically figure out how to manipulate that data when you drag the shapes around.

Lesser known Git commands
https://hackernoon.com/lesser-known-git-commands-151a1918a60#.lsxnpghnc
Git has a strong commitment to backwards compatibility: many powerful features are hidden behind options rather than exposed as default behaviour. Fortunately Git also supports aliases, so you can create your own commands that do all manner of Git magic. Here’s a selection of the more useful (or at least entertaining) aliases defined in my .gitconfig

Ceylon 1.3
https://www.infoq.com/news/2016/09/ceylon-13-android-support
支持开发安卓应用了,原来它之前还支持编译成 JavaScript 借助 Cordova 开发 APP,不过目前还是太小众

Google Web Fonts Typographic Project
https://femmebot.github.io/google-type/
https://github.com/femmebot/google-type
There are over 800 Google Fonts available for free. But, pairing typefaces isn’t easy and many of those fonts don’t work for typical websites. Part of the 25x52 initiative, this collaborative, ongoing project offers inspiration for using Google’s font library.

Leaflet 1.0
http://leafletjs.com/index.html
Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps. Weighing just about 37 KB of gzipped JS code, it has all the mapping features most developers ever need. Leaflet is designed with simplicity, performance and usability in mind. It works efficiently across all major desktop and mobile platforms out of the box, taking advantage of HTML5 and CSS3 on modern browsers while being accessible on older ones too.

JavaScript Asynchronous Iteration Proposal
https://ponyfoo.com/articles/javascript-asynchronous-iteration-proposal
The Asynchronous Iteration proposal is already in stage 2 and being heavily worked on.

Write Android & iOS apps in JS
https://getexponent.com/
Exponent lets web developers build truly native apps that work across both iOS and Android by writing them once in just JavaScript. It’s open source and free and uses React Native.

A Visualization of Web Platform Feature Availability
https://paulirish.github.io/web-feature-availability/
A simple graph based visualization of web platform feature support. Powered by data from caniuse.com and StatCounter, this page indicates the percentage of users who have a browser that natively supports various web platform features.

v86
https://github.com/copy/v86
JavaScript 写的 x86 虚拟机,目前已经很完善了,可以运行 Windows 98

GitHub Audio
https://github.audio/
This website tracks events happening across GitHub and converts them to music notes based on certain parameters. There are three types of sounds(bell, string pluck and string swell) based on four types of events(PushEvent, PullRequestEvent, IssuesEvent and IssueCommentEvent). Bells represent PushEvents, string plucks represent IssuesEvents and IssueCommentEvents whereas string swells represent PullRequestEvents.

Drakon: a visual language for specifications from the Russian space program
http://drakon-editor.sourceforge.net/
DRAKON is used for capturing requirements and building software that controls spacecraft. The rules of DRAKON are optimized to ensure easy understanding by human beings. DRAKON is gaining popularity in other areas beyond software, such as medical textbooks and law. Its purpose is to represent any knowledge that explains how to accomplish a goal.

Google Noto Fonts - Beautiful and free fonts for all languages
https://www.google.com/get/noto/
Google has been developing a font family called Noto, which aims to support all languages with a harmonious look and feel. Noto is Google’s answer to tofu. The name noto is to convey the idea that Google’s goal is to see “no more tofu”. Noto has multiple styles and weights, and is freely available to all.

Electrode - Universal React and Node.js
http://www.electrode.io/
https://medium.com/walmartlabs/introducing-electrode-an-open-source-release-from-walmartlabs-14b836135319
Electrode is a platform for building universal React/Node.js applications with standardized structure, best practices, and modern technologies baked in. Electrode focuses on performance, component reusability, and simple deployment to multiple cloud providers—so you can focus on what makes your app unique.

产品及其它

这是一个超级叼,但是在天朝不存在的 App
http://mp.weixin.qq.com/s?__biz=MjM5NzA1MTcyMA==&mid=2651161901&idx=1&sn=c7fc923e8ed8bc39ecc1b4e1fb00398d
围观一下 Google Allo 的使用体验。

A Tale of Two Software Engineers and Commitment
https://codegrown.io/engineers-and-commitment/
Engineer #1 (we’ll call her Alice): I’ll work on it as much as I can, but at 9pm I have to leave. I’ll continue first thing in the morning. Engineer #2 (we’ll call him Bob): I’m on it. I’m not leaving till it’s solved, even if it’ll take me all night to squash that bug. Both developers get to work on the bug. Eventually both solve the bug at 8PM and go home. Which engineer would you prefer on your team and why?

技术的执念
http://insights.thoughtworkers.org/obsession-og-technology/
技术人员有时候会有一种想要把所有技术都掌握的「执念」,这在局外人来看是一种荒诞不经的想法,但是置身其中,你很难看出这一点。在知识规模如此巨大的今天,一个人是无法掌握所有技术的,更不用说新的技术还在不断的涌现出来!这就要求我们有节制的来聚焦在某些技术上,而视其他技术如无物。实践中,首先要令自己相信:你无法掌握所有的知识,即使仅仅在软件开发领域。有了这个大前提之后,你只需要采取先建立广度,再建立深度的原则即可。

天天写「业务代码」,如何成为「技术大牛」
http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994277&idx=1&sn=f0d3c25d805503264a78ab5eeb29044d
成为技术大牛梦想虽然很美好,但是要付出很多,不管是Do more还是Do better还是Do exercise,都需要花费时间和精力,这个过程中可能很苦逼,也可能很枯燥。文章非常实在,值得认真阅读和实践。另附:从铁匠和园丁的故事说起,谈谈技术与业务的关系

- 百度数据可视化
- 百度智能建站