深阅读

TSLint in 2019
https://medium.com/palantir/tslint-in-2019-1a144c2317a9
Palantir is the creator and primary maintainer of TSLint, the standard linter for the TypeScript programming language. As the TypeScript community is working toward a unified developer experience across the TypeScript and JavaScript languages, we are committed to support the convergence of TSLint and ESLint; in this blog post we explain the Why and How of our efforts.

Introducing AVS, an Open Standard for Autonomous Vehicle Visualization from Uber
https://eng.uber.com/avs-autonomous-vehicle-visualization/
We’re excited to open source the redesigned and expanded Autonomous Visualization System (AVS), a new way for the industry to understand and share its data. AVS is a new standard for describing and visualizing autonomous vehicle perception, motion, and planning data, offering a powerful web-based toolkit to build applications for exploring, interacting and, most critically, making important development decisions with that data.

Announcing the Ionic React Beta
https://blog.ionicframework.com/announcing-the-ionic-react-beta/
We’re excited to announce that Ionic React is now available in beta! Take a read below to understand more about this release and how to get started building with Ionic and React.

San 发布3.7.2
https://ecomfe.github.io/san/
San是一个灵活的Javascript MVVM 组件框架,它体积小巧,兼容性好,性能卓越,广泛应用与百度各产品线,百度智能小程序Swan框架也是基于San搭建。3.7.2版本发布主要优化了 服务端渲染 性能,后端渲染性能优于handlebars、mustache、etpl等老牌模板渲染框架。

支付宝首次披露其小程序技术架构
https://mp.weixin.qq.com/s/PX7b_qV6tYKnN3ecoz9Ehw
支付宝小程序从 2016 年开始立项算起,到现在也快 3 年的时间,在这 3 年的过程中,小程序的技术架构也是不断的升级和演进,在满足业务发展的同时对于小程序整体的高可用、性能优化、多端输出方面做了大量的工作。今天给大家分享下我们在支付宝小程序技术这块所做的一些工作。小程序技术架构主要分成四个方面来讲:系统架构,主要给大家说下小程序的架构,以及其中的一些关键技术;性能体验,讲下我们在性能体验这块做的几个 case;开发者工具,怎么更好的帮助开发者开发和管理小程序,和保障线上小程序的质量;多端 inside,将支付宝小程序的技术输出给集团和外部的商户,让他们具备运行小程序的能力。

研发团队资源成本优化实践
https://tech.meituan.com/2019/02/21/rd-team-resource-cost-optimization-practice.html
工程师主要面对的是技术挑战,更关注技术层面的目标。研发团队的管理者则会把实现项目成果和业务需求作为核心目标。实际项目中,研发团队所需资源(比如物理机器、内存、硬盘、网络带宽等)的成本,很容易被忽略,或者在很晚才考虑。从笔者十余年的工作经验来看,资源成本优化宜早不宜迟。很多管理者在业务发展的较前期阶段,可能并没有意识到资源成本膨胀所带来的压力。等到业务到了一定规模,拿到机器账单的时候,惊呼“机器怎么这么费钱”,再想立即降低成本,可能已经错过了最佳时机,因为技术本身是一个相对长期的改造过程。

使用document.scrollingElement控制窗体滚动高度
https://www.zhangxinxu.com/wordpress/2019/02/document-scrollingelement/ 要实现一个返回顶部效果,我们目前的做法是下面两个语句并行:document.documentElement.scrollTop = 0; document.body.scrollTop = 0; 就显得很啰嗦,正是由于这种现状,document.scrollingElement这个属性才应运而生,直接动态识别滚动容器。

We migrated to Next.js to serve our home page 7.5× faster
https://www.manifold.co/blog/we-migrated-to-next-js-to-serve-our-home-page-7-5-faster-559443219c84
We migrated our home page from a basic React boilerplate (React Boilerplate) to Next.js, a progressive web app framework for React. We made no other changes, and the switch was basically invisible. The load times were better than we expected—it was basically free performance: On a fast connection, fast CPU, our site load time went from 1.5 seconds to 0.2 seconds — 7.5× faster! On an average connection and device, our site load time went from 7.5 seconds down to 1.3 seconds.

JavaScript Loading Priorities in Chrome
https://addyosmani.com/blog/script-priorities/
How browsers schedule and execute scripts can impact the performance of web pages. While techniques like <script defer>, <link rel=preload> (and others) influence script loading, knowing how browsers interpret them can also be helpful. Thanks to Kouhei Ueno, we now have an up to date summary of script scheduling in Chrome. 另附:Resource Prioritization – Getting the Browser to Help YouPreloading Fonts and the Puzzle of Priorities.

How A Screen Reader User Accesses The Web: A Smashing Video
https://www.smashingmagazine.com/2019/02/accessibility-webinar/
In this Smashing TV webinar recording, join Léonie Watson (a blind screen reader user) as she explores the web, and find out about some unexpected properties of HTML elements that not only have a huge impact on accessibility, but also turn out to be pretty good for performance, too.

10 npm Security Best Practices
https://snyk.io/blog/ten-npm-security-best-practices/
In this cheat sheet edition, we’re going to focus on npm security and productivity tips for both open source maintainers and developers. So let’s get started with our list of 10 npm security best practices, starting with a classic mistake: people adding their passwords to the npm packages they publish!

Ten Ways to Secure your Applications
https://blog.heroku.com/ten-ways-to-secure-your-apps
Building self-defending applications and services is no longer aspirational–it’s required. Applying security patches, handling passwords correctly, sanitizing inputs, and properly encoding output is now table stakes. Our attackers keep getting better, and so must we. In this blog post, we’ll take a look at several commonly overlooked ways to secure your web apps. Many of the examples provided will be specific to Java, but any modern programming language will have equivalent tactics.

Avoid Nightmares — NSFW JS
https://shift.infinite.red/avoid-nightmares-nsfw-js-ab7b176978b1
You can use NSFW JS to identify indecent content without having files ever leave the client’s machine, even defensively if you can’t control the content being delivered.

An Introduction to jQuery
https://itnext.io/an-introduction-to-jquery-53d821e13153
Does jQuery have a place in 2019? It has of course, largely fallen out of favor in recent years. However, don’t let that discourage you from taking some time to learn about it. We’ll be taking a brief look at the state of jQuery in this article. And for those interested in learning a bit about it, we’ll run through the basics — including element manipulation, events and effects. And we’ll finish up with some useful examples showing jQuery in… 另附:CRUD Operations using vanilla javascript.

Multi vs Cross Platform in the age of Flutter
https://medium.com/snapp-mobile/multi-vs-cross-platform-in-the-age-of-flutter-6e76920028b6
Since the early days of mobile app development there has been a robust debate about whether to build apps using native platform technologies or cross-platform technologies. Flutter has created a new dimension to this debate as it shares characteristics of both multi and cross platform. The promise of Flutter and interest in the dev community means it is worthwhile enumerating this debate again within the context of Native vs Flutter.

Password Managers: Under the Hood of Secrets Management
https://www.securityevaluators.com/casestudies/password-manager-hacking/
Password managers allow the storage and retrieval of sensitive information from an encrypted database. Users rely on them to provide better security guarantees against trivial exfiltration than alternative ways of storing passwords, such as an unsecured flat text file. In this paper we propose security guarantees password managers should offer and examine the underlying workings of five popular password managers targeting the Windows 10 platform: 1Password 7 [1], 1Password 4 [1], Dashlane [2], KeePass [3], and LastPass [4].

A faster, more efficient cryptocurrency
http://news.mit.edu/2019/vault-faster-more-efficient-cryptocurrency-0124
MIT researchers have developed a new cryptocurrency that drastically reduces the data users need to join the network and verify transactions — by up to 99 percent compared to today’s popular cryptocurrencies. This means a much more scalable network.

Patterns of Streaming Applications
https://www.infoq.com/presentations/apache-flink-streaming-app
Monal Daxini presents a blueprint for streaming data architectures and a review of desirable features of a streaming engine. He also talks about streaming application patterns and anti-patterns, and use cases and concrete examples using Apache Flink.

You Do Not Need Blockchain: Eight Popular Use Cases And Why They Do Not Work
https://blog.smartdec.net/you-do-not-need-blockchain-eight-popular-use-cases-and-why-they-do-not-work-f2ecc6cc2129
People are resorting to blockchain for all kinds of reasons these days. Ever since I started doing smart contract security audits in mid-2017, I’ve seen it all. A special category of cases is ‘blockchain use’ that seems logical and beneficial, but actually contains a problem that then spreads from one startup to another. I am going to give some examples of such problems and ineffective solutions so that you (developer/customer/investor) know what to do when somebody offers you to use blockchain this way. 另附:Two Sides of a Coin: Blockchain, Ethics and Human Rights.

Dear OpenAI - Please Open Source Your Language Model
https://thegradient.pub/openai-please-open-source-your-language-model/
AI research has benefited substantially from an open source culture. While most other disciplines lock state-of-the-art research behind expensive paywalls, anyone with an internet connection can access the same cutting edge AI research as Stanford professors, and running experiments is as simple as cloning an open source repository and renting a GPU in the cloud for only a few cents an hour. Our dedication towards democratizing AI by publicly releasing learning material, new research, and most importantly, open sourcing our projects is why we have progressed so rapidly as a field. I commend OpenAI for their fantastic new research pushing the limits of language modeling and text generation. 另附:Open data governance and open governance: interplay or disconnect?.

Practical Go: Real world advice for writing maintainable Go programs
https://dave.cheney.net/practical-go/presentations/qcon-china.html
My goal over the next two sessions is to give you my advice for best practices writing Go code. This is a workshop style presentation, I’m going to dispense with the usual slide deck and we’ll work directly from the document which you can take away with you today. 另附:A visual guide to Go Memory Allocator from scratch (Golang)Awesome Go.

Programming Interview Questions Are Too Hard and Too Short
https://triplebyte.com/blog/interview-questions-are-too-hard-and-too-short
Programming interview questions can feel unnecessarily difficult. Sometimes they actually are. And this isn’t just because they make interviews excessively stressful. Our data shows that harder programming questions actually do a worse job of predicting final outcomes than easier ones. So, here’s our advice, if you actually want to make your interviews more accurate, you probably need to start asking easier programming questions. This doesn’t mean lowering the bar. It just means getting a better signal so you can hire the right people. 另附:Headcount goals, feature factories, and when to hire those mythical 10x people.

Seeking the Productive Life: Some Details of My Personal Infrastructure
https://blog.stephenwolfram.com/2019/02/seeking-the-productive-life-some-details-of-my-personal-infrastructure/
The Pursuit of Productivity. I’m a person who’s only satisfied if I feel I’m being productive. I like figuring things out. I like making things. And I want to do as much of that as I can. And part of being able to do that is to have the best personal infrastructure I can. Over the years I’ve been steadily accumulating and implementing “personal infrastructure hacks” for myself. Some of them are, yes, quite nerdy. But they certainly help me be productive. And maybe in time more and more of them will become mainstream, as a few already have.

新鲜货

Codecrumbs
https://github.com/Bogdan-Lyashenko/codecrumbs
Learn, design or document codebase by putting breadcrumbs in source code. Live updates, multi-language support, and easy sharing. Essentially you annotate your code in a certain way and it can produce visualizations of how your codebase works.

Code Shelter
https://www.codeshelter.co/
Code Shelter is a collective of volunteer software developers that aims to help with maintaining popular open source projects whose authors need a hand or don’t have the time to maintain them any more.

An Update About Redis Developments in 2019
http://antirez.com/news/126
The creator of Redis, the popular in-memory data structure server, addresses recent concerns about where Redis is heading. In related news, Redis Labs has raised $60M in a series E round.

Managing JavaScript in the Enterprise
https://blog.npmjs.org/post/182958759735/managing-javascript-in-the-enterprise
We are excited to announce the launch of a platform to help modernize Javascript development in the enterprise. Ripping the “beta” label off npm Enterprise is satisfying for a lot of reasons. We started npm to remove friction for JavaScript developers, and I believe we have accomplished a lot. The solution we are announcing today delivers added control, visibility, and security while continuing to delight developers with the npm tools and functionality they are used to.

Five years of the GitHub Bug Bounty program
https://github.blog/2019-02-19-five-years-of-the-github-bug-bounty-program/
GitHub launched our Security Bug Bounty program in 2014, allowing us to reward independent security researchers for their help in keeping GitHub users secure. We’re happy to share some of our highlights from the past year and introduce some big changes for the coming year: full legal protection for researchers, more GitHub properties eligible for rewards, and increased reward amounts.

GitLab 11.8 released with SAST for JavaScript, Pages for subgroups, and Error Tracking
https://about.gitlab.com/2019/02/22/gitlab-11-8-released/
GitLab Static Application Security Testing (SAST) scans source code and helps to detect potential security vulnerabilities early in the pipeline. In 11.8, we’ve added SAST support for JavaScript, building on top of our existing node.js support. Now any JavaScript file can be scanned, like static scripts and HTML. A vital practice in DevSecOps is to scan code changes with each commit, and with this change, we’re covering one of the most popular web languages, helping you to find JavaScript risks as early as possible.

Is React Translated Yet?
https://reactjs.org/blog/2019/02/23/is-react-translated-yet.html
If you would like to help out on a current translation, check out the Languages page and click on the “Contribute” link for your language. Can’t find your language? If you’d like to maintain your langauge’s translation fork, follow the instructions in the translation repo!

W3C Strategic Highlights: Strengthening the Core of the Web (Fonts & CSS)
https://www.w3.org/blog/2019/02/w3c-strategic-highlights-strengthening-the-core-of-the-web-fonts/
https://www.w3.org/blog/2019/02/w3c-strategic-highlights-strengthening-the-core-of-the-web-css/

Qt Roadmap for 2019
https://blog.qt.io/blog/2019/02/22/qt-roadmap-2019/
It’s around this time of the year I sit down to write a blog post about our plans and roadmap for the coming year. Typically, some of the items have already been cooking for a while, but some are still plans in the making. If you want to look into the previous roadmap blog posts, here are the ones I wrote for 2016, 2017 and 2018. There is always more to tell than what would reasonably fit in a blog post, but I’ll try to talk about the most interesting items.

React Spike: Rewrite the MDN page header
https://github.com/mdn/sprints/issues/967
选择主流技术栈居然引发了这么多讨论。

The Node.js Benchmarking Working Group: Measuring Performance for A Speedier Node.js
https://medium.com/the-node-js-collection/the-node-js-benchmarking-working-group-measuring-performance-for-a-speedier-node-js-76520995d2d1
The objective of the Benchmarking Working group is to track and evangelize performance gains made between Node.js releases and avoid performance regressions between releases. The approach followed is to: Define the important use cases; Define the key runtime attributes; Find/create benchmarks that provide good coverage for the use cases and attributes (current table).

simdjson : Parsing gigabytes of JSON per second
https://github.com/lemire/simdjson
JSON documents are everywhere on the Internet. Servers spend a lot of time parsing these documents. We want to accelerate the parsing of JSON per se using commonly available SIMD instructions as much as possible while doing full validation (including character encoding).

howler.js - Audio library for the modern web
https://howlerjs.com/ howler.js is an audio library for the modern web. It defaults to Web Audio API and falls back to HTML5 Audio. This makes working with audio in JavaScript easy and reliable across all platforms.

Worldview
https://cruise-automation.github.io/webviz/worldview/#/
Worldview is a lightweight, extensible 2D and 3D scene renderer built on React and regl. Performance, ease of use, and extensibility are top priorities.

Navi
https://frontarm.com/navi/en/
Declarative, asynchronous routing for React. Use functions, promises and async/await to map URLs to data and views. Use asynchronous data in your components, without touching component state. Pre-render for SEO — without ejecting from create-react-app! Navi is modern router for React that uses Suspense, Hooks and function composition to make real-world routing simple. 附:A with Hooks and Suspense.

Cleave.js
https://nosir.github.io/cleave.js/
Format your <input/> content when you are typing.

Split.js
https://split.js.org/
Split.js is a 2kb unopinionated utility for resizeable split views (also called panes or frames). It handles weird edge cases so you don’t have to. Split.js is CSS-driven, only using JS to recalculate CSS styles on drag. Split.js does not attach any window event listeners, instead relying on CSS for the layout when the window size changes. This keeps the JS overhead extremely low.

Bull
https://github.com/OptimalBits/bull
The fastest, most reliable, Redis-based queue for Node. Carefully written for rock solid stability and atomicity.

dbdiagram.io - Database Relationship Diagrams Design Tool
https://dbdiagram.io/home
Draw Entity-Relationship Diagram Easily. A free and simple tool to draw ER diagrams by just writing code. Designed specially for developers and data analysts.

Building a Landing Page Fast Using the Visual Composer Website Builder
https://davidwalsh.name/building-a-landing-page-fast-using-the-visual-composer-website-builder
What if it were possible to build a landing page from top to bottom, including a header and a footer, and do so without any need for writing code? And even if it was possible, could you reasonably expect to do so as easily and quickly as putting together a puzzle designed for children 8 to 12 years old? Not only are both of these actions possible, but you’re about to find out how you can do both by using a popular web design tool; the Visual Composer Website Builder.

Matrix
http://matrix.org/
An open network for secure, decentralized communication. Matrix is a set of openly standardised HTTP APIs specified at https://matrix.org/docs/spec for the real-time synchronisation and persistence of arbitrary JSON over a federation of servers. Matrix also describes the open federation of servers and services on the internet which speak these APIs.

Y Combinator Resources for Developers
https://ycombinator.dev/
YC has built many resources that may be helpful for developers over the years. This page collects them in one place. 另附:A List of Hacker News’s Undocumented Features and BehaviorsSummary: How to Start a Startup (YC).

Racket
https://racket-lang.org/
Racket is a general-purpose programming language as well as the world’s first ecosystem for language-oriented programming. 另附:Why language-oriented programming? Why Racket?.

Micro8
https://github.com/Micropoor/Micro8
渗透攻击超十年,由于年龄,身体原因,自己感觉快要退出一线渗透攻击了。遂打算把毕生所学用文字表写出来。因为文章涉及到敏感的攻击行为,所以好多需要打马赛克,或者是本地以demo的形式表现出来。当这个行业做久了,你也终有一天发现原来事物的本质是如此重要。比如内网渗透的本质是信息搜集。当年某大佬把这条经验传递给我,同样,今天变成老家伙的我,也希望把这条经验传递下去。

Nginx Quick Reference
https://github.com/trimstray/nginx-quick-reference
This is not an official handbook. Many of these rules refer to external resources. It is rather a quick collection of some rules used by me in production environments (not only). These notes describes how to improve Nginx performance, security and other important things; @ssllabs A+ 100%

A Heavily-Commented Linux Kernel Source Code
http://www.oldlinux.org/download/ECLK-5.0-WithCover.pdf
This book provides detailed and comprehensive comments and explanations on all source code of the early Linux kernel (V0.12), aiming to enable readers to gain a comprehensive and profound understanding of the working mechanism of Linux in a shortest possible time and to lay a solid foundation for further study of modern Linux systems. Although the version of the analysis is very low, the kernel has been able to compile and run, and it already includes the essence of the working principle of Linux. 另附:Linus Torvalds on Why ARM Won’t Win the Server Space.

设计

Systems Thinking, Unlocked
https://airbnb.design/systems-thinking-unlocked/
The system serves people, not the other way around. It’s the designers and engineers, the real customers of design systems, who need to be at the center of our work. With a storied background in this space, Yujin Han and I—Design Manager and Experience Design Lead, respectively—know the challenge of getting teams to contribute. So now we’re asking ourselves, “How might we set teams up for success by helping them incorporate our design language system (DLS) in their daily work?” Here’s how we’re evolving our model to be inclusive and empower teams to engage with the system.

Evolving the Microsoft Fluent Design System
https://medium.com/microsoft-design/evolving-the-microsoft-fluent-design-system-9b37fb890c82
Reflections on our design history, the progression, and the potential of how we collectively design for the future.

Including Animation In Your Design System
https://www.smashingmagazine.com/2019/02/animation-design-system/
It’s important to understand how animation can be used (or not used) in your design system. In this article, Val Head explains how you can help ensure that your brand is using animation consistently and effectively while also helping your team work faster.

If You’re Not Using UX Data, It’s Not UX Design
https://www.toptal.com/designers/user-research/ux-data
Intuition and experience are assets, but separated from UX data, they lead to a dangerous assumption: Designer knows best. Sadly, no small number of digital products are built on the shallow soil of this premise, so we’re drawing a line in the sand: UX design must flow from UX data. If design decisions aren’t based on research findings and real user insights, it’s not UX.

What UX Designers Can Learn from Video Games’ Obsession with UI
https://www.uxbooth.com/articles/what-ux-designers-can-learn-from-video-games-obsession-with-ui/
In video games, the user interface (UI) is everything. It helps foster an experience that looks and behaves in a convincing way and keeps players immersed in the game. Over the years, games have continued to innovate in their approach to UI, experimenting and iterating on how they present vital information to users without breaking their belief in the experience. Well before I started working in UX, I knew all about UI because I was used to reading about it in game reviews. And although most web and software designers would argue that their product is the furthest thing from a video game, there is still much to learn about UI design from video games.

产品及其它

Gartner预测2019年十大「数据和分析技术」趋势
https://mp.weixin.qq.com/s/HwiChfm9KWqq4aO4EQ-IeQ
处于数据和分析位置的领导人必须审视这些趋势对业务带来的潜在影响,并相应调整业务模式和运营,否则就有可能失去竞争优势。增强型数据分析,增强型数据管理,持续型智能,可解释的 AI,数据结构,NLP/对话式分析,商业 AI 和 ML,区块链和持久性内存服务器共同构成了 Gartner 2019 年十大「数据和分析技术趋势」。

微软中国 CTO:请把 AI 拉下神坛
https://www.geekpark.net/news/238088
「我们不能用制造问题时的同一思维水平来解决问题」,这句出自爱因斯坦的箴言,对于身处智能时代的人类社会而言,意义匪浅。引用此言的是微软(中国)首席技术官韦青。如何看待人工智能,又应怎样理解深度学习?如果依赖于电气化时代和信息化时代的固有思维方式,人们就无法深刻理解智能时代,人脑的思维方式与机器的计算方式之间异同点。人工智能解放人类手脑的同时,也在唾弃平庸无为之辈。一些人习惯把傲慢与偏见对准「人工智能」,另一群人则是对 AI 迷信到底。很明显,「人们还没有了解人工智能到底是怎么一回事」,韦青直言不讳道。

除了好工具,只有多阅读、多思考才能成为好的写作者:专访 Zine
https://sspai.com/post/52987
ine 自从 2012 年上线以来已经有 6 年的历史,比许多我们现在用的写作工具还要早的多。作为一款专业的写作工具,Zine 在编辑和排版、文字分发、云服务等功能方面的全面在众多写作工具中也可以说无出其右。 Zine 的创始人路意自己也是一位多年的写作者,经常在 Zine 以及社交网络中分享自己的经历和思考。对于写作工具和阅读社区,路意也有自己独特的观点和对于产品未来的规划。本期幕后,我们就请到了 Zine 的创始人路意,和他就 Zine 的设计理念、未来规划以及对于写作工具的思考等进行了讨论。

“数据主义者”们的毒鸡汤
https://mp.weixin.qq.com/s?__biz=MzA5MzE0NDMyNw==&mid=2651978277&idx=1&sn=87db254c70f51c9c82383d7ecd2f7e3a
当我们历数过去十年最激动人心的事件,数据的空前崛起一定要占有一席之地。一夜之间,似乎人人都称呼自己是“数据主义者”,企业纷纷向数字化尤其是其中的数据化快马加鞭地转型。大数据之浪潮风起云涌,AlphaGo的胜利更是在我们每个人的屁股上扎了一针浓浓的鸡血,我们欢呼雀跃,相信数据一定能够带给我们一个非常光明的未来。不过,在走向这个光明的未来之前,我们还得熬过“不那么光明”的现在。不光明,是因为那些自称“数据主义者”的存在,他们所行之事,恰恰与他们所“拥护”的相反。他们的鸡汤越浓,毒性就越大,他们越是激昂高呼,反而越是对数据未来的亵渎。如果他们都算是“数据主义者”,那我们就必须清醒地做一个坚定的“反数据主义者”。无他,只是为了保留一份原初的对数据的敬畏。

教育产业的未来是智能公司
https://mp.weixin.qq.com/s/CzOh61M6xjjqdsVNpV3A9w
教育产业变成智能产业,这新产业里面不光包括人工智能,对人的高素质的培养,本身就是智能啊!这是人类智能!因此人工智能与人类智能二者结合,我认为叫做智能公司智能产业,应当比人工智能更准确,它的内涵外延是更大的。

腾讯为何把产业互联网交给他
https://mp.weixin.qq.com/s/YtRuoELnsn8hdZ_27l3N6Q
腾讯决定把公司未来20年交到这个人手里。为什么是他?为什么是他汤道生?因为汤道生人如其名,坚硬如水。他兼具水的力量和水的柔软,不断向前,包覆一切崎岖和泥泞。这个腾讯人,自己就像水一样,成为了容器的一部分。阿里云当年的第一人王坚,是个心理学家,如今腾讯云的第一人汤道生,则梦想成为一个数学家。互联网真的是一张网,它把这样千奇百怪的人物都搜罗进来,以便每天都有好故事发生。这张看不见的网,才是真正的物种起源。既然这张网会继续生长,那么TO B or not TO B,已经不再是个问题。

– THE END –

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