text: ---
  layout: post
  title: 'FEX 技术周刊 - 2019/06/10'
  author: zhangzhao
  tag: weekly
  ---
  
  ## 业界会议
  
  **WWDC 2019**  
  https://developer.apple.com/wwdc19/  
  亮点不多，值得关注：
  - [SwiftUI](https://developer.apple.com/xcode/swiftui/)
  - [Sign In with Apple](https://developer.apple.com/sign-in-with-apple/)
  - [iPadOS 体验：走出 iOS，iPad 终于能取代 PC 了？](https://www.geekpark.net/news/242980)
  
  **VueConf 2019**  
  https://vue.w3ctech.com/  
  附：[State Of Vue](https://www.yuque.com/uqha7i/gtfeyu/gwn1z0)
  
  ## 深阅读
  
  **Rethinking Visual Programming with Go**  
  https://divan.dev/posts/visual_programming_go/  
  This is a blog version of the talk I gave at GopherCon Europe 2019 (Canary Islands Edition), where I shared my thoughts on why Visual Programming Languages have failed and revealed for the first time my experiment on visualizing Go code. I could dive in straight into the project, but I do believe to truly appreciate it, I have to explain the thought line behind it first. It starts with an almost existential frustration of working with code as a text.
  
  **The economics of package management**  
  https://github.com/ceejbot/economics-of-package-management/blob/master/essay.md  
  An essay version of C J Silverio’s [talk from JSConfEUwatch](https://www.youtube.com/watch?v=MO8hZlgK5zc). She was ousted as CTO of npm, Inc. last year but is back with a history of the JavaScript package ecosystem, a discussion of who really ‘owns’ it, and a suggestion for a new way forward oriented around [Entropic](https://github.com/entropic-dev/entropic), a new, agnostic, federated package registry.
  
  **Best practices for building a large scale react application**  
  https://buttercms.com/blog/best-practices-for-building-a-large-scale-react-application  
  This article describes the steps to building a large scale React application. While making a Single Page App with React, it is very easy for your code-base to become unorganized. This makes the app hard to debug and even harder to update or to extend the codebase. There are many good libraries in the React ecosystem that can be used to manage certain aspects of the app, this article covers some of them in depth. Other than that, it lists some good practices to follow from the beginning of the project if you have scalability in mind. With that being said let’s head to the first step - how to plan ahead of time.
  
  **前端困境与挑战：组织篇**  
  https://mp.weixin.qq.com/s?__biz=MjM5Mjg4NDMwMA==&mid=2652976688&idx=1&sn=c9f4c3146cd9417410668937a6d94497  
  在上一篇文章《前端困境：个人篇》中，我们讨论了关于个人在前端领域遇到的一些问题和挑战。在这一篇文章中，我们将关注于组织中的前端技术挑战。
  
  **[译]2020年你应该知道的8种前端JavaScript趋势和工具**  
  https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247491446&idx=1&sn=f839f2017b88b3628d8d8a6a5852bf59  
  前端开发人员和技术人员的数量逐年增加，而整个生态系统渴望实现标准化。新技术和工具的出现已经改变了游戏规则。可以肯定地说，总体趋势将是 UI 标准化、基于组件的模块化和组合，这将影响从样式到测试甚至状态管理的所有方面，并在总体上实现更好的模块化。
  
  **Self-Host Your Static Assets**  
  https://csswizardry.com/2019/05/self-host-your-static-assets/  
  One of the quickest wins—and one of the first things I recommend my clients do—to make websites faster can at first seem counter-intuitive: you should self-host all of your static assets, forgoing others’ CDNs/infrastructure. In this short and hopefully very straightforward post, I want to outline the disadvantages of hosting your static assets ‘off-site’, and the overwhelming benefits of hosting them on your own origin.
  
  **The Future of Web Animation**  
  https://frontendfoc.us/link/64814/web  
  In terms of animation on the web, we’re just getting started.
  
  **Types and Tests**  
  http://blog.cleancoder.com/uncle-bob/2019/06/08/TestsAndTypes.html  
  The problem Mark proposed in his blog is a simple function: rndselect(n,list). It returns a list of n elements randomly selected from the input list. He walked through his strategy for developing this in Haskell, using types, QuickCheck, and after-the-fact tests.
  
  **Making our Android Studio Apps Reactive with UI Components & Redux**  
  https://medium.com/netflix-techblog/making-our-android-studio-apps-reactive-with-ui-components-redux-5e37aac3b244  
  Our current player UI in the Netflix Android app is using our first iteration of this componentization architecture. We took the opportunity with building Prodicle to improve upon what we learned with the Player UI, and build the app from scratch using Redux, Components, and 100% Kotlin.
  
  **Introducing TensorNetwork, an Open Source Library for Efficient Tensor Calculations**  
  https://opensource.googleblog.com/2019/06/introducing-tensornetwork-open-source.html  
  TensorNetwork uses TensorFlow as a backend and is optimized for GPU processing, which can enable speedups of up to 100x when compared to work on a CPU. We introduce TensorNetwork in a series of papers, the first of which presents the new library and its API, and provides an overview of tensor networks for a non-physics audience. In our second paper we focus on a particular use case in physics, demonstrating the speedup that one gets using GPUs.
  
  **Efficient, reliable cluster management at scale with Tupperware**  
  https://code.fb.com/data-center-engineering/tupperware/  
  Since we first deployed Tupperware in 2011, our infrastructure has expanded from one data center to a fleet of 15 geo-distributed data center locations. Over the same time period, Tupperware has evolved significantly to keep pace with our growth. We are sharing several areas in which Tupperware advances the state of the art for cluster management, including seamless support for stateful services, a single control plane across data centers, and the ability to shift capacity among services in real time. We will also share some of the lessons we have learned as we have grown the system to its current state.
  
  **13 Tips for Writing a Technical Book**  
  https://performancejs.com/post/31b361c/13-Tips-for-Writing-a-Technical-Book  
  I spent the last year and a half writing my first technical book for O’Reilly (Programming TypeScript). I’d never written a technical book before. In fact, prior to the 300-page book, the longest thing I’d written was a 20-something-page paper in college. The rest of this post is a brief laundry list of tips for writing your own technical book.
  
  ## 新鲜货
  
  **Highlights from Git 2.22**  
  https://github.blog/2019-06-07-highlights-from-git-2-22/  
  The open source Git project just released Git 2.22 with features and bug fixes brought to you from over 74 contributors, 18 of them new. Here’s our look at some of the most exciting features and changes introduced since Git 2.21.
  
  **What's New in Chrome 75 for Developers**  
  https://developers.google.com/web/updates/2019/06/nic75  
  Pete Le Page highlights changes in the next stable version of Chrome, with the most exciting things being a way to create lower latency canvases and sharing files with the Web Share API.
  
  **Flutter culture and how to preserve it**  
  https://medium.com/microsoft-design/ux-writing-side-effects-may-vary-7196c5d393b4  
  A big part of what makes Flutter so delightful and productive is its community. We really want this to continue, and so we thought we’d share some of our observations about the current culture, and some ideas on how to preserve it.
  
  **Learnings in Web Development: Design Patterns, Elm, and Progressive Enhancement**  
  https://eng.uber.com/web-development-video-series-one/  
  Uber’s Destination:Web meetup series, ongoing since 2017, invites experts to discuss and demonstrate the latest techniques and technologies for building responsive, functional web applications. From web design to JavaScript to Node.js, Destination:Web features topics to keep every web engineer current.
  
  **It’s time for the compatibility opt-in preview of Ivy!**  
  https://blog.angular.io/its-time-for-the-compatibility-opt-in-preview-of-ivy-38f3542a282f  
  We’re looking for developers willing to give new things a try (with a few rough edges) and who want to share their experiences with us. If you are interested, you should follow the steps below and let us know what issues you run into.
  
  **Why We’re Relicensing CockroachDB**.  
  https://www.cockroachlabs.com/blog/oss-relicensing-cockroachdb/  
  Citing the ‘realities of building open source software’, the creators of CockroachDB have relicensed it from Apache to the ‘Business Source License’ which prevents anyone (e.g. Amazon/AWS) from offering CockroachDB as a service without buying a license (a problem that has befallen both Elasticsearch and MongoDB this year).
  
  **How the npm Security Team Foiled a Criminal Plot**  
  https://nodeweekly.com/link/64898/web  
  Several months ago, the event-stream package was compromised in an attempt to attack people’s cryptocurrency wallets and the potential loot proved too tempting to the latest set of crooks who have been thwarted by the npm, Inc. security team. 另附：[npm passes the 1 millionth package milestone! What can we learn?](https://snyk.io/blog/npm-passes-the-1-millionth-package-milestone-what-can-we-learn/)
  
  **History of Node.js on a Timeline**  
  https://blog.risingstack.com/history-of-node-js/  
  We’ve been publishing articles on Node.js for over 5 years now, so we thought it’d be interesting to look back at what exactly happened to Node.js so far, from the point where it was born until Today. In case we missed something significant, please let us know in the comments section! This is the history of Node.js on a timeline, from 2009 until now (June, 2019).
  
  **node-gitlab**  
  https://github.com/jdalrymple/node-gitlab  
  GitLab API NodeJS library with full support of all the Gitlab API services.
  
  **AVA 2.0**  
  https://github.com/avajs/ava/releases/tag/v2.0.0  
  AVA helps you get it done. AVA is a test runner for Node.js with a concise API, detailed error output, embrace of new language features and process isolation that let you write tests more effectively.
  
  **pixelmatch**  
  https://github.com/mapbox/pixelmatch  
  The smallest, simplest and fastest JavaScript pixel-level image comparison library, originally created to compare screenshots in tests. Features accurate anti-aliased pixels detection and perceptual color difference metrics.
  
  **Scene.js**  
  https://github.com/daybrush/scenejs  
  Scene.js is an JavaScript & CSS timeline-based animation library.
  
  **node-libcurl**  
  https://github.com/JCMais/node-libcurl  
  libcurl bindings for node.
  
  **ACTIX-WEB**  
  https://docs.rs/actix-web/1.0.0/actix_web/  
  Actix web is a simple, pragmatic and extremely fast web framework for Rust.
  
  **Open Source Game Clones**  
  https://osgameclones.com/  
  This site tries to gather open-source remakes of great old games in one place. If you think that something is missing from the list - please go to our GitHub repository and create an issue or even a pull request!
  
  **EspoTek Labrador**  
  https://github.com/EspoTek/Labrador  
  The EspoTek Labrador is an open-source board that converts your PC, Raspberry Pi or Android Smartphone and into a full-featured electronics lab bench, complete with oscilloscope, signal generator and more.
  
  ## 设计
  
  **UX Writing: Side Effects May Vary**  
  https://medium.com/microsoft-design/ux-writing-side-effects-may-vary-7196c5d393b4  
  Becoming a UX writer has been life-changing in many ways: I’ve had the pleasure of meeting a diverse set of smart, creative, and talented innovators, I’ve shaped products that impact literally billions of people, and I go to work each day happy to be there. But I didn’t realize taking the job would have unintended consequences. Read on to learn the wild ways that becoming a UX writer may impact your life. 另附：[14 Rules of UX Writing](https://blog.prototypr.io/14-rules-of-ux-writing-6097cc3064ca).
  
  **Apple’s WWDC19 Keynote for Mobile Designers**  
  https://uxplanet.org/apples-wwdc19-keynote-for-mobile-designers-a2e72c3d0c20  
  另附：[iPadOS and 8 changes it brings – UX Planet](https://uxplanet.org/ipados-and-8-changes-it-brings-9afe85bec454)
  
  **打败200万对手，斩获2019苹果设计大奖的APP有何独特之处？**  
  https://www.uisdc.com/apple-design-awards-9apps  
  Apple Design Awards 所优选出来的9个APP，每一个都代表着设计和产品发展的趋势，这些趋势在这个充分竞争的市场中，都有着足够的力道创造改变。无论是结合机器学习和镜头捕捉的 HomeCourt ，还是利用超声波检测器的 Butterfly iQ，它们都代表了技术活用的趋势；Asphalt 9 是体验层次丰富度的代表，而Thumper 则证明了高度垂直、一致的体验有多令人难忘；Ordia 和 ELOH 两款游戏让游戏本身重新回归愉悦和放松，而The Gardens Between 则告诉我们游戏这件事情，有更多的可能性。
  
  **“ 字要大！用大红！” 他花了5年终于解决这一设计难题！å**  
  https://www.sitepoint.com/content-as-ux-building-a-more-human-web/  
  “别跟坟前上吊一样”“字要大”“用大红色” 这些需求跟设计审美之间的矛盾，该怎么解决？得到APP现有的视觉风格是如何形成的？学生的在校设计作品跟实际工作相差多远？今天这篇文章告诉你，得到APP设计师李岩是如何解决的这些问题的。
  
  ## 产品及其它
  
  **Stanford engineers make editing video as easy as editing text**  
  https://news.stanford.edu/2019/06/05/edit-video-editing-text/  
  A new algorithm allows video editors to modify talking head videos as if they were editing text – copying, pasting, or adding and deleting words.
  
  **前百度总裁陆奇：我给有梦想的年轻人10点建议**  
  https://mp.weixin.qq.com/s?__biz=MzI0MzExNjkyMQ==&mid=2651134473&idx=1&sn=21f8394027ba949605df7b0fe7c82d0d  
  作为互联网最有影响力的大咖之一，这一次，记者与陆奇深度探讨了10个关于年轻人成长的热议话题。从选公司、选专业、到工作节奏、团队管理，甚至必读书单、如何面对焦虑等等，陆奇的回答非常真实、有力。相信会对你有所启发。
  
  **哥大校长2019毕业演讲：唯有深层思想才能实现生活价值**  
  https://mp.weixin.qq.com/s?__biz=MzA4ODY4MzAxOQ==&mid=2649986628&idx=1&sn=976beb63d84d8376196dbafe3d5c5a9a  
  大学系统的智慧之处之一，是让你们能够来到这里。这里既包含了优秀的学者，他们用其一生探索着宇宙中我们已经知晓、或许知晓、以及必须知晓的事物，他们每天在人类积累的知识前沿耕耘，被学术自由的原则所保护，被学者气质的氛围所引导，并在大学去中心化的管理架构中工作。在历史上，相较于资本或政策，伟大的研究型大学更能驱动人类的进步，为人类生活打下根基。无论是在个人还是社交生活中，思想都是最重要的——或者说思想才是全部，而大学本身即关乎思想。对“寻求真理”和“有意义的行为”的推与拉，是当今高等教育和未来生活所特有的。“服务社会和世界”的同时保持“独特的精神面貌”，这个双重目标是我们一直感受到的，它的向心力会随着时间的推移而增加。
  
  **在国家贫困县，一场悄无声息的教学革新正在进行**  
  https://mp.weixin.qq.com/s/cpGSzncAlkD86845WusbKQ  
  在这场全国乃至全球都罕见的教学创新中，先进的知识、资源、教研能力被输送给了上万名国家贫困县的学童和教师。
  
  -- THE END --
  