SEE Conf 2020 - 蚂蚁金服体验科技大会
玉伯的主题演讲:体验科技与好的产品。欢迎围观:https://www.zhihu.com/question/363807174 期待演讲视频和相关文章。


Good times create weak men
In Software Disenchantment we’ve seen how software has degraded in the past two decades. Recently Jonathan Blow gave a talk where he explained why it might be happening. In programming, we are developing abstractions at an alarming rate. When enough of those are stacked, it becomes impossible to figure out or control what’s going on down the stack. This is where my contribution begins: I believe I have found some pretty vivid examples of how the ladder of abstractions has started to fall and nobody can do anything about it now because we all are used to work only at the very tip of it.

Drawing In Code: Pencils, Pixels, Process
We must expect great innovations to transform the entire technique of the arts, thereby affecting artistic invention itself and perhaps even bringing about an amazing change in our very notion of art.

The 2010s in Software Development
As I am doing a lookback on 2010-2020, here are the major changes I’ve observed on software engineering. If this decade proves anything, it is that technology keeps changing and evolving. But, there is still some stability: Java and JIRA. Let’s see if they will survive the next decade as well, and where the trends of 2020 will end up that time.

A WebAssembly Powered Augmented Reality Sudoku Solver
The Christmas holidays are a great time for pursuing ‘pet’ projects and trying out new things. This past year I’ve been watching WebAssembly evolve and wanted to create a fun project that allowed me to put it to good use. Over the past couple of weeks I created an Augmented Reality Suduko solver: This project makes use of the WebAssembly build of OpenCV (a C++ computer vision library), Tensorflow (a machine learning library) and a solver written in Rust. It neatly demonstrates how WebAssembly allows you to write performance-critical web-based applications in a wide range of languages.

How To Use Correctly JavaScript Utility Libraries
The big JavaScript bundle is a common performance problem in Frontend development. Nobody likes slow, heavy applications and looking at the loading spinner. An impact on the bundle size has the utility libraries: collections of functions implementing common tasks (finding uniq items of an array, formatting dates, etc). Examples of utility libraries in JavaScript are Lodash, Ramda, Date-fns, Math.js. Let’s discuss when it makes sense to use utility libraries. And importantly, how to integrate libraries to minimally affect the bundle size.

Scaling React Server-Side Rendering
I had the opportunity to work on scaling a React rendering service, adapting a fixed hardware provision to deal with increasing load. Over the course of many months, incremental improvements were made to the system to enable it to cope with demand. I thought it might be useful to share the more interesting insights that I gained during this process.

The Power of Simplifying Large Components in React
Simplification is an enhancement

Why Android Developers should pay attention to Flutter in 2020
Native Android has been in the market for a really long period of time. Also it is very stable and gives a great performance across various sizes of Android devices. So, why should you look at some cross-platform solution, like Flutter? Though native Android provides a satisfying performance, but it comes at a cost of huge amount of boilerplate code, which restricts the innovation and creativity of a developer. Let’s discuss it in more details.

作为前端开发人员,这些年来你一直在开发单体应用,即使你已经知道这是一个不好的做法。您将代码划分为组件,使用 require 或 import 并将package.json中定义的npm包或已安装的子git仓库添加到项目中,但最终构建了一个整体。是时候改变它了。

如果你关注 Node.js 社区,那么你一定记得 Node.js v12 一个非常重磅的功能就是,内核的 HTTP Parser 默认使用 llhttp,取代了老旧的 http-parser,性能提升了 156%。 但知其然也要知其所以然,llhttp 是如何做到这一点的呢?

随着小程序开发的热度上升,小程序开发框架也层出不穷。但目前每个框架都会绑定一个专属 DSL,如类 React 或者类 Vue,在一个框架内,开发者无法根据团队技术栈自由选择 DSL,同时也无法共享框架本身的生态与工具。本次分享将为大家介绍 Taro 如何将各种语法的前端框架运行在小程序上,讨论一个框架支持多 DSL 的实现探索,使得开发者可以使用任意热门框架/语法/DSL 来编写小程序应用,同时复用相关生态。

Storybook Docs for new frameworks
Best practice docs for Vue, Angular, Web components, and Ember.

Uber Visualization Highlights: Displaying City Street Speed Clusters with SpeedsUp
Uber’s Data Visualization team builds software that enables us to better understand how cities move through dynamic visualizations. The Uber Engineering Blog periodically highlights visualizations that showcase how these technologies can turn aggregated data into actionable insights.

Dealing with links in Next.js
In this article, I’m going to explain two of my techniques for isolating routing in your application. I use Next as an example, but they can be applied to pretty much all routing libraries: Use a custom Link component, Have all paths in a single file.

The Power of Elm in JavaScript https://medium.com/javascript-in-plain-english/the-power-of-elm-in-javascript-816b127e4553
Since first learning of Elm, I’ve only heard good things. I’m convinced Elm could become the future of front-end development in the coming years(or maybe Reason?). Here are some blog posts in the Elm community that have particularly stuck out to me

What a Year of Learning and Teaching Accessibility Taught Me
Use HTML. Enhance with CSS. Leverage the power of JavaScript. And include your users in your design process as early as possible. And always look at your work through the lens of inclusion. This will take you far ahead. Then learn more, iterate, and improve. And don’t forget, we’re all just temporarily abled.

Format Your <input> Content While Typing with Cleave.js
Automatically transform your input content in your Angular application.

Making the LinkedIn experimentation engine 20x faster https://engineering.linkedin.com/blog/2020/making-the-linkedin-experimentation-engine-20x-faster
At LinkedIn, we like to say that experimentation is in our blood because no production release at the company happens without experimentation; by “experimentation,” we typically mean “A/B testing.” The company relies on employees to make decisions by analyzing data. Experimentation is a data-driven foundation of the decision-making process, which helps with measuring the precise impact of every change and release, and evaluating whether expectations meet reality.

Rock it: A Cradle Story — An Arduino-powered Baby Crib Rocker
When a software developer becomes a parent, he/she doesn’t stop being a geek.

Build an 8-bit computer from scratch
I built a programmable 8-bit computer from scratch on breadboards using only simple logic gates. I documented the whole project in a series of YouTube videos and on this web site. Watch this video for an introduction.


Popular articles of JavaScript 2019

Dive into Deep Learning
An interactive deep learning book with code, math, and discussions, based on the NumPy interface.

IncludeOS - Run your application with zero overhead
IncludeOS allows you to run your application in the cloud without an operating system. IncludeOS adds operating system functionality to your application allowing you to create performant, secure and resource efficient virtual machines. IncludeOS applications boot in tens of milliseconds and require only a few megabytes of disk and memory.

Godot Engine - Free and open source 2D and 3D game engine
Godot provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel. Godot is completely free and open-source under the very permissive MIT license. No strings attached, no royalties, nothing. Your game is yours, down to the last line of engine code. 另附:Godot Engine - A decade in retrospective and future.

Apache Pulsar
Apache Pulsar is an open-source distributed pub-sub messaging system originally created at Yahoo and now part of the Apache Software Foundation

A New Decade. Any Predictions?
2010: https://news.ycombinator.com/item?id=1025681

Rhasspy (pronounced RAH-SPEE) is an open source, fully offline voice assistant toolkit for many languages that works well with Home Assistant, Hass.io, and Node-RED.

BBC Sound Effects - Research & Education Space
These 16,000 BBC Sound Effects are made available by the BBC in WAV format to download for use under the terms of the RemArc Licence. The Sound Effects are BBC copyright, but they may be used for personal, educational or research purposes, as detailed in the license.


Why This UX Role Will Grow Fastest In 2020
The rise in hiring conversational designers seems to be happening at a much faster clip than when companies started hiring internal UXers 10 years ago

5 Things To Stop Doing In Mobile App Design
Have you ever looked at the design techniques and elements you use to build mobile apps and evaluated whether or not they’re still useful or relevant? If you haven’t done this in a while (or ever), stop what you’re doing and read this. We’re going to look at the 5 things mobile app designers should stop doing so they can create more streamlined and positive user experiences.

Top software and hardware recommended by designers in 2019
The end of the year is a good time for summaries, recommendations, and plans for the future. You’ve probably spent some time using a lot of different types of tools – both software and hardware. Some of them might have made your life miserable, others might have become good candidates to your usual toolset. Some you’re throwing out (or replacing) next year, and with the others, you just can’t wait to make more magic.


Enterprise UX – Challenges and Solutions
What if you get the opportunity to design a product which will willingly, wholeheartedly be used by thousands of users, no questions asked? That’s Enterprise UX (eUX) for you. And as with all good things, there’s a catch here as well. These willing, wholehearted users are actually employees who have no choice but to use that very product designed by you. Thus with eUX, the challenge is not so much as gathering an audience; it’s more about impressing them even when impressing them isn’t really what you’re asked to do.

Don’t Underestimate The Value of Even the Most Common UX Deliverables
A UX designer works in different environments — from agile environments and lean startups where teams contribute with little documentation to consulting engagements for third-parties, or large companies and government entities with strict documentation obligations.


who are you trying to impress with your deadlines?
Obsessing over customers is important, but there is another thing a lot of companies obsess over internally - deadlines. And deadlines are good. “It gets done when it gets done” might be a great (and even recommended) strategy for 2 people working on an app but when you are a 200+ employee company, you need some sense of where things are; a rough idea of when your users will actually get to use the new fart app in their cars. But I’d argue that hard - set in stone - deadlines are bad and if you have those in your company you should probably go ahead and remove the “customer obsession” bullet from your leadership principles. Because believe it or not, your users don’t care about a missed sprint. Hard deadlines are not user first, they are management first.

Just Build the Product
It’s the last day of the decade and I’m taking the opportunity to reflect on the most important lessons I’ve learned regarding work. I want to talk about the most important of them all. The one I would emphasise to anyone coming into a career even vaguely related to software today, if I could only choose one. Just build the product.



对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2020-01-03·火星地图、NBA Spelling Bee、实时网络威胁世界地图可视化、一带一路故事地图讲述中国文化

作者:Dafrok (https://github.com/dafrok) - Open source is justice.

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