FEX 技术周刊 - 2019/09/09
深阅读
Continuous Delivery for Machine Learning
https://martinfowler.com/articles/cd4ml.html
Automating the end-to-end lifecycle of Machine Learning applications. Machine Learning applications are becoming popular in our industry, however the process for developing, deploying, and continuously improving them is more complex compared to more traditional software, such as a web service or a mobile application. They are subject to change in three axis: the code itself, the model, and the data. Their behaviour is often complex and hard to predict, and they are harder to test, harder to explain, and harder to improve. Continuous Delivery for Machine Learning (CD4ML) is the discipline of bringing Continuous Delivery principles and practices to Machine Learning applications.
Google Engineering Practices Documentation
https://google.github.io/eng-practices/
Google has many generalized engineering practices that cover all languages and all projects. These documents represent our collective experience of various best practices that we have developed over time. It is possible that open source projects or other organizations would benefit from this knowledge, so we work to make it available publicly when possible.
AppSec POV on Dependency Management
https://blog.npmjs.org/post/187496869845/appsec-pov-on-dependency-management
It’s tempting to assume that all packages in the npm registry are safe to use––and, for the vast majority of them, that’s true. The npm security team and the JavaScript community at large exercises a high degree of vigilance over the hygiene of the massive shared code library that has made JavaScript the most popular and powerful software platform.
Hello! Umi UI
https://mp.weixin.qq.com/s/5Ezo9_1JZACmywJcPBbGDA
Umi UI 这个大坑,今年总算还是踩了。其实去年还是前年就想做了,但这件事听起来太前沿,和业务关系不大,而且有很大的不确定性,所以优先级始终不高。而今年要在提效上发力,需要有一些可能会带来巨大变化的事情,于是被提上日程。然后经过一个多月的开发,Umi UI 的第一个版本终于上了。
WXInlinePlayer - We Can Playsinline And AutoPlay In WeChat WebView!
https://player.qiaoz.net/index.html
随着直播和短视频的兴起,视频由于承担了更大的信息量,因此现在已经是非常主流的运营/产品信息输出方式。但由于国内各个浏览器厂商自身的利益关系所在,他们对HTML5的Video能力做了非常多的限制,其具体问题可以参考腾讯IMWeb团队编写的《复杂帧动画之移动端Video采坑实现》。为了解决这些问题,我们通过软解FLV的方式实现了WXInlinePlayer,同时我们也编写了WebAssembly版本的FLV Demuxer。
MVVM 框架的数据状态管理的发展与探索
https://github.com/farzer/blog/issues/1
在前端应用日渐复杂的环境下,前段页面状态管理可控制和可跟踪成为解决开发和调试的重要手段,显然我们有必要了解状态管理方案可以解决什么问题,解决问题的核心方式是什么。
MongoDB,再见还是再等等
https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651019223&idx=1&sn=14ac1930bc4820bcad8174ca6cfa3af7
MongoDB 是时下最受欢迎的数据库之一,许多企业和开发者都将其作为自己的解决方案。但在近日,macOS 平台的开源包管理系统 Homebrew 宣布 Homebrew-core 公式将移除 MongoDB 支持。在过去的一年时间内,包括红帽、英国卫报等在内的多家知名企业也都选择了移除 MongoDB。原因何在?
TypeScript vs ReasonML – A Comparison
https://blog.dubenko.dev/typescript-vs-reason/
Both TypeScript and ReasonML claim to offer statically typed language for web developers that compiles to JavaScript. But there are important differences. TypeScript’s best and the worst feature is that is a superset of the JavaScript. And while having that familiarity with JavaScript is nice, it means that every quirkiness that we love and hate about JavaScript is still there in TypeScript. The types are added on top of the JavaScript and that works, kind of.
Finished! Porting a 75,000 line native iOS app to Flutter
https://medium.com/flutter-community/finished-porting-a-75-000-line-native-ios-app-to-flutter-b5c0bff93715
No matter how seductive SwiftUI or Jetpack Compose appear to be, a good cross-platform mobile solution is what most companies want. At least, that’s my experience. And, after building a drop-in replacement for a largish native iOS app, my experience is that Flutter is it. 另附:SwiftUI: A new player in UI frameworks.
What Is Infrastructure as Code? How It Works, Best Practices, Tutorials
https://stackify.com/what-is-infrastructure-as-code-how-it-works-best-practices-tutorials/
Trends like cloud computing revolutionized—and improved—the way organizations design, develop, and maintain their IT infrastructure. One of the critical components of this trend is called “infrastructure as code,” and it’s what we’re going to talk about today.
Our journey to type checking 4 million lines of Python
http://blogs.dropbox.com/tech/2019/09/our-journey-to-type-checking-4-million-lines-of-python/
Dropbox is a big user of Python. It’s our most widely used language both for backend services and the desktop client app (we are also heavy users of Go, TypeScript, and Rust). At our scale—millions of lines of Python—the dynamic typing in Python made code needlessly hard to understand and started to seriously impact productivity. To mitigate this, we have been gradually migrating our code to static type checking using mypy, likely the most popular standalone type checker for Python. (Mypy is an open source project, and the core team is employed by Dropbox.)
Giving Lens New Reading Capabilities in Google Go
http://ai.googleblog.com/2019/09/giving-lens-new-reading-capabilities-in.html
In order for Lens to be able to help the greatest number of people, we needed to create a special version that can work on even the most basic smartphones. To make these reading features work, the Google Go version of Lens needs to be able to capture high quality images on a wide variety of devices, then identify the text, understand its structure, translate and overlay it in context, and finally, read it out loud.
The state of machine learning in financial services
https://blog.algorithmia.com/the-state-of-machine-learning-in-financial-services/
The financial services industry has often been at the forefront of using new technology to solve business problems. It’s no surprise that many firms in this sector are embracing machine learning, especially now that increased compute power, network connectivity, and cloud infrastructure are cheaper and more accessible. This post will detail five important machine learning use cases that are currently providing value within financial services organizations.
新鲜货
CUE - Configure Unify Execute
https://cuelang.org/
CUE is an open source language, with a rich set APIs and tooling, for defining, generating, and validating all kinds of data: configuration, APIs, database schemas, code, … you name it.
Android 10 - Just the way you want it
https://www.android.com/android-10/?
Live Caption, Smart Reply, Sound Amplifier, Gesture Navigation, Dark theme…
Refactoring made easy with IntelliCode!
https://devblogs.microsoft.com/visualstudio/refactoring-made-easy-with-intellicode/
Have you ever found yourself refactoring your code and making the same or similar changes in multiple locations? Maybe you thought about making a regular expression so you could search and replace, but the effort to do that was too great? Eventually you probably resigned yourself to the time-intensive, error prone task of going through the code manually.
Apple Just Shipped Web Components to Production and You Probably Missed It
https://dev.to/ionic/apple-just-shipped-web-components-to-production-and-you-probably-missed-it-57pf
Apple announced the release of the new beta Apple Music Web Client, giving Apple Music customers the ability to listen to their favorite music from the web instead of only through an installed native app. I was following the conversation on Hacker News, and many were excited to see Apple embracing the web and bringing parity to other music apps like Spotify that have had rich web experiences since the early days. That Apple still cares deeply about the web was encouraging and exciting for many to see. 另附:Firefox 69 — a tale of Resize Observer, microtasks, CSS, and DevTools.
The Most Popular Programming Languages of 2019
https://blog.newrelic.com/technology/most-popular-programming-languages-of-2019/
Programming languages are a fascinating topic: There are thousands of languages in existence today, and new ones emerge all the time. Every year, we analyze data from a number of sources to understand today’s programming language landscape: Which languages are engineers using most often today? Which ones would they prefer to use, given the choice? Which ones are employers most likely to request when hiring developers?
How to learn D3.js
https://wattenberger.com/blog/d3
So, you want to create amazing data visualizations on the web and you keep hearing about D3.js. But what is D3.js, and how can you learn it? Let’s start with the question: What is D3? While it might seem like D3.js is an all-encompassing framework, it’s really just a collection of small modules. Here are all of the modules: each is visualized as a circle - larger circles are modules with larger file sizes.
Bitmelo
https://bitmelo.com/
Bitmelo is a game editor and engine for making small pixel art games right here in your browser. This editor has everything you need to develop a game in one convenient location. You can code, draw tiles and tilemaps, design sound effects, view the documentation, and playtest your game, all without having to break focus by switching applications. Once complete you can then export your game as a single HTML file.
Cytoscape.js
https://js.cytoscape.org/
Graph theory (network) library for visualisation and analysis.
Reactive Search 3.0 — UI Components for building ✨ Search UIs
https://medium.appbase.io/reactive-search-3-0-ui-components-for-building-search-uis-51b926fc0d8b
Reactive Search offers a standardized array of common search UI components designed to use with Elasticsearch on the backend. There’s a lot to digest in this release, with things like GraphQL support and voice search making an appearance.
react-day-picker
https://github.com/gpbl/react-day-picker
Highly customizable, localizable, with ARIA support, no external dependencies, 9KB gzipped
Material-UI V4.4
https://github.com/mui-org/material-ui
React components for faster and easier web development. Build your own design system, or start with Material Design.
React Static V7
https://github.com/react-static/react-static
A progressive static-site generator for React. React-Static is a fast, lightweight, and powerful progressive static site generator based on React and its ecosystem. It resembles the simplicity and developer experience you’re used to in tools like Create React App and has been carefully designed for performance, flexibility, and user/developer experience.
TOAST UI Grid 4.5
https://ui.toast.com/tui-grid/
TOAST UI Grid is a powerful widget which allows you to visualize and edit data via its table representation.
Regex Crossword
https://regexcrossword.com/
Welcome to the fantastic world of nerdy regex fun! Start playing by selecting one of the puzzle challenges below. There are a wide range of difficulties from beginner to expert.
camaro
https://github.com/tuananh/camaro
camaro is an utility to transform XML to JSON, using Node.js binding to native XML parser pugixml, one of the fastest XML parser around.
leonsans
https://github.com/cmiscm/leonsans
Leon Sans is a geometric sans-serif typeface made with code in 2019 by Jongmin Kim. It allows to change font weight dynamically and to create custom animations, effects or shapes in the Canvas element of HTML5. He designed the font to celebrate his newborn baby Leon.
DeepFaceLab
https://github.com/iperov/DeepFaceLab
DeepFaceLab is a tool that utilizes machine learning to replace faces in videos.
Samsung Unveils Prototype of a Standards-Compliant ‘Key-Value SSD’
https://www.anandtech.com/show/14839/samsung-announces-standardscompliant-keyvalue-ssd-prototype
The Storage Networking Industry Association (SNIA) have been working on a specification for SSDs to be used as key value stores and Samsung is working on a compliant implementation. This is an interesting development and paves the way for new forms of high performance, persistent key-value stores.
Go 1.13 Release Notes
https://golang.org/doc/go1.13
Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before. As of Go 1.13, the go command by default downloads and authenticates modules using the Go module mirror and Go checksum database run by Google.
设计
QQ极简与夜间模式设计
https://isux.tencent.com/articles/simple-qq
QQ像用户的一个小小星球,可以随意的装点展示自己的个性,同时也能看到其他好友的小星球。然而人是动态成长和变化的,纷繁的世界是否就一直能适合用户的聊天心境呢?都说年轻人喜欢用QQ,他们精力旺盛乐于交友,在社交的同时有强烈的自我表达欲望,QQ里的个性装扮能够满足年轻人的自我展示需求。随着年轻人的成长和社会角色变化,开始需要和学习、工作中不同的人频繁打交道,涉及的使用场景更为多元化,对沟通逐渐有了效率与特殊场景体验的诉求。本文讲述的是QQ近期在极简设计与人性化体验设计上的探索与思考。
Why Adobe XD is better than Sketch
https://blog.prototypr.io/why-adobe-xd-is-better-than-sketch-67f943b22a7d
Although this article leans more towards Adobe XD, all opinions of UI/UX software generally comes down to personal preference, I mean, let’s be honest - they all pretty much do the same thing, right? Plus, most of them can communicate with each other these days too.
Moving From Sketch To Figma: A Case Study Of Migrating Design Systems
https://www.smashingmagazine.com/2019/09/migrating-design-systems-sketch-figma/
Switching tools isn’t a decision to be taken lightly. Here’s a nuts-and-bolts and behind-the-scenes look at how Help Scout migrated design systems from Sketch to Figma — why we made the switch, a step-by-step walkthrough of what it entailed, and what we got out of it — a story that applies to any team considering a large-scale tool migration.
Improve Engagement with These SaaS UX Design Best Practice
https://www.toptal.com/designers/ux/saas-ux-design
SaaS applications are among the most complex pieces of software written today. Implementing UX best practices for any SaaS platform is a useful exercise that can reap valuable rewards:
- Reduce customer churn
- Increase user speed (and therefore satisfaction) by streamlining the experience
- Eliminate user frustration with help and support systems
- Engage users with contextual dashboards and information
- Simplify Registration
What we’re doing to refine GitLab’s product experience
https://about.gitlab.com/2019/09/05/refining-gitlab-product-experience/
How we’re using Experience Baselines and Recommendations to improve GitLab’s UX.
产品及其它
What Is a Tech Company?
https://stratechery.com/2019/what-is-a-tech-company/
At first glance, WeWork and Peloton, which both released their S-1s in recent weeks, don’t have much in common: one company rents empty buildings and converts them into office space, and the other sells home fitness equipment and streaming classes. Both, though, have prompted the same question: is this a tech company? Of course, it is fair to ask, “What isn’t a tech company?” Surely that is the endpoint of software eating the world; I think, though, to classify a company as a tech company because it utilizes software is just as unhelpful today as it would have been decades ago.
走访了十几家美国企业服务公司,我们写下了这篇万字文章
https://mp.weixin.qq.com/s/NMAHVvELuHFViu92mF0stg
在旧金山还有一个比消费互联网更炽热的行业:企业服务。GGV纪源资本企业服务投资团队在符绩勋带领下拜访了旧金山的十几家企业服务创业公司,力求能加深对企业服务行业的理解,并写作此文,希望让中国创业者得到启发。我们预判,中国SaaS企业发展可能的趋势:
- 在中国,个人用户和企业用户对云,对订阅式付费和增值服务付费意愿都在不断加强。但这将是一个线性变化的过程,需要时间和耐心。
- 中国中型企业将是SaaS付费的主力军,它们对SaaS的易用性有很高要求(中国的大型企业更希望采取定制化的服务,而不是订阅式的服务;小型企业付费意愿仍然会很低)。3. 中国的大型To C企业会对To B市场产生深远影响(例如钉钉,企业微信),会在这些体系下诞生一些美国没有的产品。
RPA 18 年进化史
https://mp.weixin.qq.com/s/PFp0r1AaSa-AN58rkDV3WA
2012 年之前,RPA 概念还不存在。6 年之后,RPA赛道上就诞生了 70 亿美元估值的公司。这个赛道的增长之快令人瞠目。头部玩家 Blue Prism 已上市,另一家头部公司 Uipath 从 10 亿美元到 70 亿美元的成长速度则刷新了 toB 企业的增速。2017年之前,国内还少有人听说“RPA”这一名词。仅仅一年半之后,RPA就成了资本市场的小风口,迅速升温。对标70亿美元估值的UiPath,几乎所有 RPA 厂商都在讲 RPA + AI 的故事——背后是一个RPA 迈向能够更大范围替代(或辅助)人类员工的愿景。在与UiBot合并后,来也科技无疑是最接近这个资本故事的。
从AI技术起家,新增国内最大的RPA社区支持,手握3500万美元融资,来也科技要怎么做好“中国版UiPath ”?
对话bilibili陈睿:在中国太少企业把用户当一个平等的人
https://mp.weixin.qq.com/s/AI0g-_UuBAHpwPhrlZJUFw
中国的用户是最可爱的,因为中国有太少的企业把用户当成一个平等的人来看。你只要把他当成一个平等的人对待,他对你是很维护的。只要用户站在B 站这边,B站一定战无不胜。这是我的信仰。
对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2019-09-09·可视化的诗意表达、WTF Visualization、文学有机体