[英] 开源在Uber:数据可视化项目kepler.gl首席架构师Shan He采访

2019-07-14 admin

Like many engineers working in data visualization, Shan He’s path was far from traditional. After studying architecture for seven years, she realized that her interests in design were too diverse to be contained by the physical world. So she went back to the drawing board and pursued a master’s degree in design computation, acquiring the skills necessary to bridge the divide between atoms and bits. In the process, she fell in love with the interconnected worlds of open source software and data visualization.

In 2014, Shan joined Uber as the first member of our Data Visualization team, a new group dedicated to leveraging location data to create maps, diagrams, and other actionable visualizations of the physical world. Over the past four years, Shan created hundreds of maps illuminating everything from a single day of activity on the Uber platform in New York City to tracking app usage during the 2017 Solar Eclipse.

Now a senior data visualization engineer, Shan is the primary architect behind kepler.gl , an open source geospatial framework released today.

We sat down with Shan to learn about her journey to data visualization, the importance of open sourcing these tools, and how kepler.gl will empower members of the open source community to leverage location data to make better, more useful maps.

<figcaption id=“caption-attachment-3292”>Uber’s Visualization Suite beautifully renders a single day of Uber app activities in New York City.</figcaption>

When did you first get interested in computer science?

My background is actually in architecture. In architecture school, there’s this practice called parametric design where you can build 3D building models based on algorithms and parameters. Rhino, a 3D modeling program, includes plugins to generate shapes using parametric design. With just a couple of lines of code, I was able to create complex structures and geometries. This experience got me interested in coding and computer science because I learned that you can actually use code to assist in the design process. This type of 3D modeling opened the door to a completely new domain for me.

How did you transition from computer science to data visualization?

<figcaption id=“caption-attachment-3291”>Uber Visualization’s Shan He was the lead architect on kepler.gl.</figcaption>

Starting with architecture and then transitioning to computer science, I realized that I wanted to do something with design that combined my love for both these areas. I didn’t want to put design away just because I was also interested in computer science. So when I started taking classes in computer science, I tried to look for opportunities where I could apply both of my passions. Data visualization became a natural fit. I became a researcher in data visualization at the  MIT Senseable City Lab. After graduating from MIT, I got my first data visualization job at Uber in 2014, and the rest is history.

Given your untraditional path to data visualization, was it difficult to feel accepted by this community?

The data visualization community combines design and software engineering, so at least for me, the community was very welcoming, in part because everyone comes from a different background. You can come from computer science, user interface design, electrical engineering, or even architecture, and people will respect you. But when it comes to establishing yourself outside the data visualization community, the resistance is still noticeable. The typical reaction is that designers think of me as a software engineer and software engineers think of me as a designer. I remember once that I was trying to work with a software engineer who expected me to not be as strong of a coder as he was just because I know how to design. And when I meet with designers about data visualization inputs, they usually think that we’re not as good at design as they are because they primarily think of us as people who write code. It can be tricky to maintain this balance and usually takes some time before people get a sense for your skillset.

What advice would you give architects or designers like yourself who are interested in getting into coding?

When I realized that I wanted to do more software engineering, I asked myself: “What can I do that combines creativity with coding?”  That’s a question I got asked a lot, too, from students of design and architecture. I wouldn’t say that data visualization is for everyone because I know some designers just have no interest in writing code. They’re fantastic designers and they can do many things that I could never imagine doing, but they have no interest in actually going into the digits, zeroes, and ones, but if you find yourself actually interested in math, excited about seeing designs generated by couple lines of code, I think data visualization is a perfect path.

When it comes to learning coding, instead of reading textbooks about different languages, I have to encourage people to just really get their hands dirty and work on a project. It could be as simple as writing HTML and CSS for your own website. Instead of going directly to the 14-chapter JavaScript manual, you should just start building something.

When you first came to Uber, what projects were you working on?

I was Uber’s first data visualization hire. At the time, people gave me projects based on what they thought data visualization was. I was hired into the Data Science team, and they used data visualization to help them plot charts and make them look nice. My very first project was writing a template for R so that data scientists could use my templates to plot nicer-looking charts. Essentially, it is an R package that helps you make your charts sharper and more on-brand, Uber style. We still use it!

What’s the coolest visualization you’ve ever made?

My career in data visualization is tied closely with Uber. There’s one visualization that I made when I first joined that everyone loves: a day’s worth of Uber trips in London (above). The visualization basically depicts one full day of Uber trips via an animation presented as moving lines along the street. You can see the line fade in and out as it moves, imagining each of the lines as one car driving on the road. When there are a hundred thousand cars driving around the city, the visualization makes it look like they are flying down from the sky. It looks like lightning is flowing through every single street in London.

Are there a lot of other companies doing data visualization? Or is Uber one of the few companies really prioritizing and open sourcing it? Almost every big tech firm has a visualization branch, but I think Uber was one of the first to have a strong visualization team in terms of working across different domains (both physical and virtual) and open sourcing our tools.

How did you first get involved with open source at Uber?

I first got involved with open source by contributing to deck.gl , Uber’s WebGL-powered framework for visual exploratory analysis. deck.gl is a major open source effort that the Data Visualization team has been working on for a while. Most recently, I built kepler.gl with deck.gl as a main dependency.

With data visualization, you need to know what you want to find before you start using visualizations to look for answers inside the data. You can have many different questions when you’re looking at data. We build data visualization tools to help people get insights faster. Instead of spending two to three weeks building everything from scratch, these tools help you quickly explore the data and validate your hypothesis without having to write a lot of code. At Uber, we think it’s important to give back to the data visualization community, to improve this experience for everyone in the ecosystem.

<figcaption id=“caption-attachment-3280”>An arc map depicting the first and last Uber trips during a single day in London, made with kepler.gl.</figcaption>

Why did your team first decide to open source kepler.gl?

When I built the in-house version of kepler.gl, it was well-liked by everyone: engineers, data scientists, and designers. People find it super easy-to-use. It doesn’t require coding, works in the browser, requires no installation, is highly exploratory, and makes beautiful maps. We realized there are really not much software out there like kepler.gl. That’s why we decided to open source it. As a software engineer, when you create something truly awesome, you naturally want to get it out to the world so everybody else can use it. Once you open source it, other people can also contribute back to it. You are not the sole author any more. You have a small community of people who are interested in using the tool and contributing back to the project. In my opinion, that’s how you make a library better and better.

What exactly does kepler.gl do?

kepler.gl is a tool to visualize large-scale geospatial data in the browser. You can create maps with any type of geospatial data by exploring and interacting within the app. It’s high performance and super easy-to-use, given that all you need to do is drop in a CSV or a JSON file. It is built for fast exploration of geospatial data and the creation of beautiful and insightful maps with just a few clicks of a button. kepler.gl can render over 1 million of points on the map, and allows you to filter, aggregate, color, and size them based on the type of data you have.

What is most challenging about open sourcing something?

Emotionally, it’s the fact that everyone is going to see your code. You can’t hide it anymore. You can show how the tool makes pretty things, but the nightmare of any software engineer is being critiqued on your code.

A lot people say, “Oh, this visualization is beautiful,” but when you dive into the code, it might actually be built with hangers and duct tape. You don’t want people to think less of your visualizations because of the code you write to build them. Luckily we have experts in every data visualization-related domain on Uber’s Visualization team, such as web programmers, computer graphics engineers, information designers, and UX designers. When I was building kepler.gl, I was able to consult them whenever a tough engineering problem came along. It really made me feel supported and gave me a lot of confidence.

<figcaption id=“caption-attachment-3284”>kepler.gl is a data agnostic, high-performance web-based application for large-scale geospatial visualizations.</figcaption>

And what is the most rewarding about the process?

The most rewarding part about open sourcing something is seeing the number of downloads and knowing that people actually find it useful, which was certainly the case for deck.gl. Seeing people building apps modeled off of deck.gl was one of the most rewarding experiences for me. I want people to use the library I wrote to create something meaningful.

How would you describe Uber’s open source culture?

At any company, when something gets open sourced there’s always a question about what business value it brings. To open source internal software, you have to really argue strongly to the value it can bring, as you have to put your internal work on that project aside to work on open sourcing it.

At Uber, I feel like everyone is excited about open source. When I first announced that I want to open source kepler.gl , the response from the team at Uber Engineering was phenomenal. My engineering manager helped me put together a road map; my product manager offered to help us market it; designers helped me design the demo app and the marketing website; engineers from my team contributed to it despite being assigned other projects; and the Tech Brand team helped us write blog articles and host visualization-related events.  Open sourcing kepler.gl was a group effort and everyone had a fun time doing it.

Uber’s Visualization team has open sourced the following projects: deck.gl, kepler.gl, luma.gl, react-vis, and react-map-gl. If you want to learn about all of Uber’s open source projects, check out our Github page, and, if you are interested in joining our team, visit the Uber Careers page.

If working on open source projects like kepler.gl appeals to you, consider applying for a role on our Visualization team!

[转载]原文链接:https://eng.uber.com/shan-he/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-69725.html

文章标题:[英] 开源在Uber:数据可视化项目kepler.gl首席架构师Shan He采访

相关文章
在 Microsoft Azure 中使用 MEAN 堆栈基于开放数据协议
网络开发人员通常构建伟大的应用程序在客户端使用JavaScript和ASP(c#或Visual Basic . NET)在服务器端。 但是如果你能使用一个共同的语言来构建应用程序的所有层堆栈,从浏览器和服务器端业务处理服务层,甚至在数据库查...
2015-11-12
layui表格checkbox选择全选样式及功能的实
在之前的版本,默认复选框是要有值得,默认为“勾选”两个字,在表格里用来做选择不适合,很难改,还好layui升级后,可以支持不写name值,来适应表格中的选择操作。 1、layui版本号为 v1.0.9 rls版本(当前最新版本) &lt;s...
2018-03-08
前端工程师应该具备的三种思维
如果你是一个天才等级的工程师(马上可以离开),可以独立完成一个很多事情,你可以是一个怪咖,因为我相信没有一个人不会不佩服你。但现实归现实,多数人都不是天才,而我们在职场上也不是单打独斗,我们需要团队合作,需要协调和配合,需要考虑除了代码以外...
2016-01-13
数据类型和结构
ECMAScript标准定义了七种数据类型 1)布尔值(true 和 false) 2)null,一个特殊的关键字表示空,要注意,javascrip是区分大小写的,所以Null和null是不一样的 3)undefined 表示未定义 4)N...
2015-11-12
在 mpvue 使用 echarts 小程序组件
具体操作 下载 echarts-for-weixin 。 把其 ec-canvas 目录移动到 mpvue 项目的 static 目录下。 对 ec-canvas/ec-canvas.js 进行小调整,考虑提 pr 到 ec-c...
2018-03-11
Ant design pro 开发笔记 - 表单和数据绑定
antd支持表单双向绑定,开发过程中无需通过onChange()回调函数去获取组件的值,通过 getFieldDecorator() 可以自动完成数据绑定的功能。 { getFieldDecorator(&#x27;email&#x...
2018-05-25
五款超实用的开源SVG工具
本文我们将分享5款超实用的开源的SVG工具:   1. SharpVectorGraphics (SVG)   SVG是基于Microsoft .Net开源项目设计而来,是建立在.Net framework上使用SVG的一款应用,支持生成、...
2016-01-13
bootstrap table 数据表格行内修改的实现代码
js中设置列的属性 editable : { type : &#x27;text&#x27;,&#x2F;&#x2F;数据显示在文本框内 emptytext : &quot;--&quot;,&#x2F;&#x2F;数据为空时显示 vali...
2017-03-14
数据格式之战:JSON vs XML
在比较JSON和XML之前,我们先来上一堂关于数据格式的简要历史(更准确的说,是关于XML的始祖): 早在1970年,IBM开发了一种叫Generalized Markup Language的标记语言,简称GML,它主要是为脚本语言定义的一...
2016-01-13
利用n 升级工具升级Node.js版本及在mac环境下的坑
一、利用n 升级Node.js 最近在用NPM安装一个nodejs工具时发现,我的nodejs的版本有些旧了。这不是大问题,只要升级就可以了,当然,重新从nodejs.org最新版本是一种方法,但我想应该有更简单的方法,那就是使用 n 这个...
2017-03-17
回到顶部