2019 Google 开发者大会上,什么最吸引你?
谢 @知科技 邀~~
虽然大会还没开,但是看了 议程 还是很详细的。看到了一些熟悉的面孔,比如金安娜,也算是开发者大会的老朋友了。还有谷歌艺术与文化项目的两位,之前在讲巴黎的项目时有过一些印象。
还有一个熟悉的名字,如果没记错的话,她应该是之前英特尔在中国的教育负责人,做过未来教育项目,查了一下果然如此,值得一提的是英特尔教育项目的时候,是切切实实培训了百万计的老师,K12教育信息化有着这些人的努力。她进入谷歌负责AI教育,感觉AI教育可能也要开始走进K12,这个路线就很期待了。
另外,今年的演讲嘉宾中多了不少应用方的人,比如滴滴、蚂蚁金服、爱奇艺、阅文集团、途家等,那位来讲闲鱼架构的估计就是讲 flutter 的。
对了,最后也想讲讲今年另外的一个点——女性开发者召集令,「本次谷歌开发者大会, Women Will 将把两个精彩绝伦的全球项目带到现场:#IamRemarkable 职业发展课程和 女性开发者专题讨论会」。在这个女性需要肩负职场+家庭多重重担,需要最多线程处理问题能力的时代,觉得这样的关怀可能不算是公关上的活动,而是真的在帮助女性探索、平衡、挖掘。
TensorFlow, Android 10, Kotlin, Chrome, PWA, ARCore, Flutter, Wear OS,太多吸引我的啦!
嗯,还有 VS Code!以及疑似“田”牌 logo。甚至还出现了 Azure!
今天官宣了 Flutter 1.9 正式发布,大家还学的动吗? 哈哈哈~
Day 1
世博中心正门~
主会场门口~
Android 10!
Java 被黑出翔?
Kotlin 大法好!
Lazy Loading.
Flutter,一次编写,处处运行。
LV 的 Wear OS 手表,要卖多少钱?
AR 实景导航,太有用啦!
@刘看山 你瘦了。
VS Code 闪亮登场!哈哈哈~
等一下!我对颜色有点分不清了!这四个颜色的方块组成个“田”,莫不是。。。
毕竟 VS Code/Edge 都用 Chromium 了, Angular 都用 TypeScript 了~ 哈哈
Day 2
TFLite Micro —— TensorFlow on MCU~ 把 TensorFlow 运行在只有 几十 KB RAM 的 MCU 设备上,这个太棒啦。
腾讯视频网页的后端用的是 Node.js,感人~
VS Code 又出现啦!
咦? Azure 出现啦! 其实是在讲用 GCP 的 Anthos 进行混合云管理。(不过讲师好像以前也是是微软的 233333)
我的 Surface Book 贴纸又更新一波啦!
啊 这么多人看 那我打个广告 上海的小伙伴们可以微信搜索GDG 关注上海谷歌开发者社区 我们会在上面发布我们最新的活动咨询等内容!
爱你们!
喏
真心觉得这个app很赞啊
最吸引我的当然是
谷歌 Arts & Culture 中国版 观妙中国 ~
感谢 @知科技 小鱼在现场为您报道
(第一次这么多赞,好开心(?????)~
该会议相关的资讯和官方资料我会及时更新在回答中,欢迎点赞收藏
同之前的 WAIC 世界人工智能大会不同,GDD 谷歌开发者大会的议程安排显然更加合理,充分考虑到每一类观众的需求。而且整个会场在上海世博中心,也很方便移步参加不同的会议。
作为一名人工智能领域的基层科研工作者,从这次大会也能学到很多知识,见识到很多前沿内容。
这边不仅有 TensorFlow 的工程师现场指导机器学习,也有 Android 开发者一起讨论应用的知识,还有丰富的周边礼物和晚上欢畅的 party~
没有抵达现场的朋友可以看看其他朋友的 Vlog 和 讲座视频回放:
官方盘点 : 精彩实用又好玩!盘点 2019 Google 开发者大会
一起用2分钟轻松回顾GDD: 谷歌开发者大会 Day1 纪念
高三学生翘课也要看 GDD : 高中生带你游览谷歌开发者大会
9小时大会首日直播视频回放:2019谷歌开发者大会上海直播完整版 / 油管入口
资料:
提倡无障碍开发与促进开发者群体多元化 Google 携手开发者,让更多人享受科技的便利
Grow with Google : 嗨,开发者,请查收你的成长计划
从日程表上可以看到,TensorFlow 是绝对的主角,第二天大部分专场为tf设计。
此外,Flutter 也是非常重量级的产品,将解决跨平台显示的问题。
没到现场的朋友不用担心,直播入口如下
【直播入口公布】 / Google Developer Days China 2019
大会日程表 Google Developer Days China 2019
如果问到 2019 Google 开发者大会上,什么最吸引我?
我的回答是当然是
谷歌 Arts & Culture
中国版 观妙中国
(目前安卓端都可以安装了,小米vivo应用宝市场就有,谷歌开发者大会 观妙中国https://www.zhihu.com/video/1154732513468620800
只有3.1M大小,还要啥自行车,赶紧安装吧)
目前已有37个国内馆藏,
不仅可以欣赏到超高分辨率的艺术作品,
还可以利用谷歌街景功能,畅游博物馆,
足不出户,身临其境
draw to art
通过草图快速搜索对应的艺术作品
色彩聚类
通过制定的色彩方案,找到同类型的艺术作品。
特别适合室内装修和陈设,可以找到合适自己家的艺术品。
智绘甲骨
将传统与现代元素结合,寓教于乐,宣传和弘扬中国传统文化。
http://qr12.cn/FpCn8I (二维码自动识别)
结语
现代科技复兴古代语音的尝试
科技和文化艺术融合的思考
创新科技造福社会的呼唤
11号,是云看展的一天……
离开 free lunch 的一天,想它
用 TF 做分布式训练,多个设备上并行训练,提高效率和硬件利用率
TensorFlow model optimization
必须是Flutter
每年GDD都来,说一下今年和去年的对比
去年开场是猜画小歌
今年开场是观妙中国
去年我是工作人员,今年我是嘉宾
位置不一样,看到的角度也不一样
去年我们提前入场检查设备,调试仪器,为大会圆满召开的一部分而努力。
去年我们有许多礼品,光从我手上分发的至少有3箱
去年的活动让我们认识到了,羊毛党无处不在,为了争夺一两个不起眼的纪念品,甚至可以说无不所用其极
听说去年结束后,谷歌内部有些争议的声音
所以今年,我站在观众的角度,来重新说一说我看到的大会
今年我是嘉宾,谷歌的开场演讲依然精彩,金安娜小姐姐延续传统尽力用中文演讲。
没有了去年开场猜画小歌的互动,但几乎每一个外国speaker都会用中文说一句早上好,气氛依然活泼
二楼分布比去年分散,因为今年人多的原因(通过内部数据志愿者数量增加所以对应参会人数增加,事实也是如此)各个分区分散的很开,增加了好几个谷歌内容的新分区,拿掉了几个合作伙伴展区比如网易和京东
参会才半天,所言也只有这么多。更多的,等明天结束后再说吧!
那必须是flutter!准备用了!
这次开发者大会在上海的世博中心举办的,为期两天:9.10-9.11号。
虽然名字叫做“开发者大会”,但是参会者并不限于软件开发者。我作为一名产品经理也拿到了一张门票,这里感谢一下 @知科技 的邀请。
这种大会在举办前,通常都会放出公共申请通道,只要你想近距离感受谷歌和互联网前沿技术,都有机会申请到参会门票。我目测当天的参会人数可能有接近一万人之多。
分享一下我参会当天的经历。
会场入口很气派,很专业。
(这种照片发到朋友圈都会获得好多赞)
地点是在上海世博中心,这里经常举办科技企业的活动,上个月我刚在这里参加过阿里云的活动。
大会的议程很很紧凑,而且内容非常丰富,包括纯技术分享、科技未来的应用、与人文和艺术的结合、甚至职业发展等,基本上各个层级和领域的参会者都能找到自己感兴趣的东西。
我本身在互联网行业,但不涉及很深的技术背景,所以上午听了一场看起来简单一些的“机器学习简介”报告会。
虽然是简介性质的分享报告会,但是质量很高,完全可以当做一节机器学习的入门课程去听。因为很难得的是,授课老师是谷歌顶尖的工程师。
报告会穿插了很多机器学习的基础逻辑,分享人讲得深入浅出,所以即便不是程序员,也能了解到机器学习基本的原理,以及它到底想解决什么问题。
(这里有一些数学名词术语,可能会唤起某些同学不太美好的回忆哈哈)
之后还听了一场“当科技遇见艺术与文化”的专题。
谷歌把很多中外传统的艺术作品搬到线上进行数据化,这样一来就能更方便的对这些作品进行深入的技术性分析和解构了。
比如我们的甲骨文、国内外的艺术作品等:
会场中除了讲座,还有很多体验活动,比如下面这个活动:自己手写一个甲骨文字后,文字能自动识别形象,然后在屏幕中以动画形象展示。
手写甲骨文能活动,并与环境融合https://www.zhihu.com/video/1154762120792104960以及可以跟随人体动作而改变形态的容器,我猜应该是应用了图像识别和机器学习技术。
https://www.zhihu.com/video/1154762454230708224还有吸引眼球的,一堆装上了谷歌应用的奢侈品牌手表。
下午的报告会和实际业务关联性大一些。因为我本身做的方向偏营销和增长,所以参加了几场和广告有关的报告。
谷歌的广告系统,已经大范围应用上了机器学习技术,其实这些技术我们也并不陌生,换到我们熟悉的语境,就是某宝的商品智能推荐,和某音的视频推荐。
简单解释一下,就是我们过去在互联网上曾经发生过的行为或数据,比如点击、浏览、地理位置、手机型号等,都被作为“食材”喂给了机器学习平台,平台通过算法“预测”出我们对哪种产品感兴趣,然后推送给我们,从而提升我们的点击率。
值得一提的是,这种机器学习技术,看似很复杂,但普通开发者也能使用。因为谷歌已经把它做成了公共的技术平台TensorFlow,也就是说,即便我们普通的小开发者或者小团队做了一个产品,只要接入这个平台,就可以使用谷歌的机器学习技术来为自己的产品服务。
大会最后还有一场Google play的活动,属于晚宴+晚会的组合,会场特别大,而且有各种互动游戏和餐食,感觉是把在谷歌工作的体验搬到了现场,真心羡慕在谷歌工作的工程师们。
不过话说回来,谷歌的offer是真的难拿,属于鄙视链顶端的存在。哪怕我在交大,周围也只有最顶尖的几个学计算机的同学才有机会去到谷歌工作。
晚宴现场的各种小食和游戏机:
最后放一张打碟的小姐姐。现场音乐很劲爆,就像大型的GEEK蹦迪厅,只不过同学们对食物的兴趣好像比对小姐姐的兴趣大一些:
用一句话总结今天的体验就是,
科技真的可以很酷。
文末有惊喜!首先感谢 @知科技 ,虽然有两年不写代码了,但是对技术的兴趣还是有的,仅从技术上来说,Google是值得开发人员尊敬的。在大会现场,不知道是不是因为我带着个相机的原因,10分钟内有8个人找我拍照了,就是在这个地方,多数人的要求是把LOGO拍全了,人小点没事儿,也可以看出来Google在众多开发者心目中的地位。
根据手头的素材剪辑了一个短视频,希望大家能有一个直观的概念。
Google开发者大会https://www.zhihu.com/video/1155472631456288768Google开发者大会的主体流程如下,当然里面有很多的分会场,这两天的开发者大会给我的感觉就是TensorFlow是最重要的,第二天一整天都在说TF。
关于内容很多人说过了,我说一些其它的见闻吧。
Google Party(10日晚上)
https://www.zhihu.com/video/1154823854768726016谷歌的智能家居现在做了一个改变,比如控制一个灯泡的亮灭,当音箱把消息发到谷歌云上以后,如果是这些控制命令就不需要再传给厂家的云,直接通过音箱控制。
(未完待续)
GDD 第二天内容更新
本文首发自公众号:HyperAI超神经
如果要说在昨天的 GDD 大会上,谷歌对最近的动态和新品,都做了详尽的展示,那么今天的主题,可以称得上是「TensorFlow 专场」了。
超神经汇总了今日重点~
TensorFlow:最受欢迎的机器学习框架
在 TensorFlow 专场上,其亚太区产品经理梁信屏首先出场,展开了《机器学习的现在和未来》的分享,并陈述了 TensorFlow 的发展概况。
当前机器学习发展的关键有三点:数据集、算力和模型。而 Tensorflow 则是机器学习潮流顺应下,最成功的一个机器学习平台。
从 2015 年发布以来,TensorFlow 一直在完善和更新,截至目前,有超过 4100 万的下载量,超过 5 万次提交量,9900 次代码改动请求,以及 1800 多位贡献者。
因为它的强大功能,使用 TensorFlow 的实际案例也越来越多,多家企业和机构在用它进行研发。此外,TensorFlow 中文网站也已开通,中文社区和技术资源都在日渐扩增。
介绍完这些情况,随机开启了 TensorFlow 的全面展示,其团队的工程师们,对 TensorFlow 的进展做了详细介绍。
划重点:TensorFlow 2.0
备受瞩目的 2.0 版本终于在 2019 年面世。今年 6 月份, TensorFlow 2.0 Beta 版本发布,在今天的 GDD 上,工程师宣称 TensorFlow 2.0 RC 现已可用。
相比于 1.0 版本,新版围绕易用性、高性能、可扩展,三个方面进行了升级。
其中最吸引人的地方在于,使用 Keras 作为高阶 API ,优化默认 Eager Execution,移除重复的功能,提供了统一 API。
TensorFlow 2.0 使用 Keras 和 Eager Execution,能够轻松构建模型,在任意平台上实现生产环境的稳健模型部署。
介绍完 2.0 的具体情况后,谷歌工程师梁艳慧也详细介绍了从版本 1.0 升级到 2.0 的方法。
在谷歌内部,已经开始了内部的版本迁移,官方网站也提供了详细的代码迁移指南与工具。如果用户十分需要或者依赖于某个 1.0 版本的 API,可以根据指南轻松地将其迁移至 2.0 版本。
那么 TensorFlow 2.0 具体在哪些方面值得关注呢?谷歌的工程师们从以下几个角度做出了详细的介绍。
① TF.Text:训练 NLP 模型
作为机器学习中一个重要的方向,自然语言处理有着很大的市场需求。TF 官方推出和升级了TF.Text,为 TensorFlow 2.0 提供了强大的文本处理功能,且兼容动态图模式。
TF.Text 是一个 TensorFlow 2.0 库,可以使用 PIP 命令轻松安装。能够在基于文本的模型中定期执行预处理过程,并提供 TensorFlow 核心组件中并未提供的、关于语言建模的更多功能和操作。
其中最常见的功能就是文本的词条化(Tokenization)。词条化是将字符串分解为 token 的过程。这些 token 可能是单词、数字和标点符号,或是几种元素的组合。
TF.Text 的 Tokenizer 一种用于识别文本的新型张量, Ragged Tensors。并提供了三个新的 Tokenizer。其中最基本的是空白 Tokenizer,可以在 ICU 定义的空白字符(例如空格,制表符,换行符)上拆分 UTF-8 字符串。
TF.Text 库还包括归一化、n-gram 和标记序列约束等功能。使用 TF.Text 有许多好处,例如用户不需要关注训练和预测的一致性,并且不需要自己管理预处理脚本。
② TensorFlow Lite:在端上部署机器学习
两位谷歌资深软件工程师王铁震与刘仁杰,介绍了 TensorFlow Lite 的功能更新以及技术细节。
TensorFlow Lite 是用于手机以及嵌入式设备上,部署机器学习应用的框架。之所以选择在端上部署,主要的考虑体现在以下三点:
第一:几乎没有延迟,可以提供稳定、及时的用户体验;
第二:不需要连接网络,可以在没有网络或者是网络很差的环境中使用;
第三:隐私保护,不会把数据传到云端,所有的处理能够在端上进行。
鉴于这些优势,目前基于 TensorFlow Lite 在端上部署机器学习的应用,已有有了很大的市场,而且在 2.0 中,部署模型的能力也得到了强化。
比如,闲鱼 APP 在租房场景,用 TensorFlow Lite 自动对图片打标签,提高了租房效率;科沃斯机器人将 TensorFlow Lite 部署在扫地机器人中,实现自动避障等等。TensorFlow Lite 在谷歌产品中也被广泛应用,如 Google 相册、输入法、云助理等。
根据统计,有超过 20 亿的移动设备,已经安装了基于 TensorFlow Lite 的应用。
不过,在端上部署机器学习仍然有着不少的挑战,比如相对云端来说,端上算力少、内存少,而且端上部署需要考虑耗电量的问题。TensorFlow Lite 也针对这些挑战做出了优化改善,以期将机器学习更容易地在端上进行部署。
TensorFlow Lite 最终实施端口,不仅能够部署在安卓和 iOS,还适用于在嵌入式系统(如树莓派)、硬件加速器(如 Edge TPU)、微控制器(MCU)中。
目前它在图像分类、对象检测、姿态估计、语音识别、手势识别上已经得到了应用,而 BERT 、风格迁移、语音唤醒等功能也将后续发布。
如何在 TensorFlow Lite 中部署自己的模型?刘仁杰介绍道,这只需要按照三个步骤:
训练 TF 模型、转换到 TF Lite 格式、部署模型到端侧设备,根据 TF 2.0 的集成库,只需不多的代码调用就可实现。
③ TensorFlow.js:可制作微信小程序的平台
TensorFlow.js 是为 JavaScript 定制的深度学习平台。可以运行已有模型、对已有模型进行再训练、以及训练新的模型。
为了增加它的实用性,TensorFlow.js 支持多平台:浏览器、无线端(如微信小程序)、服务器、台式机。
除了可在多个平台运行机器学习模型,还可以对模型训练,此外具有 GPU 加速功能,并自动支持 WebGL。
在现场演示中,他们展示了一款基于 TensorFlow.js 的虚拟试装程序Modiface 。通过这个框架,打造出了最小最快的虚拟试妆的小程序。据悉,后续还将实现发型转换、年龄转化模拟、肤质检测等功能。
此外,谷歌工程师介绍到,TensorFlow.js 适用的网站、无线端上,拥有大量的机器学习的应用场景,比如增强现实 AR、基于手势和肢体的交互、语音识别、无障碍网站、语义分析、智能会话、网页优化。
目前,TensorFlow.js 已经支持图像分类、物体识别、姿态识别、语音命令识别、文本分类等功能,比如推出的微信小程序插件,使用一个 API 就可以实现丰富的功能。
期待谷歌以及 TensorFlow 带来更多惊喜
除了上述提到的 TensorFlow 的一些功能,还对 Tf.distribute、TensorFlow 优化工具包、以及 TensorFlow 的一些企业应用案例做了介绍。
最后,梁信屏再次登台,分享了 TensorFlow 的社区情况。
在 TensorFlow 的核心建设上,超过2135 位贡献者。有109 位机器学习领域的谷歌开发者专家;全球范围内多达 46 个TensorFlow 用户群组。他还详细介绍了加入 TensorFlow 社区的途径。
随着 TensorFlow 专场的结束,谷歌开发者大会也结束了所有日程,圆满落幕。对所有的技术开发人员来说,这场盛会所带来的干货,应该比观看苹果发布会要直观的多。
以上就是 2019 GDD 第二天的全部内容了,期待 TensorFlow 能有更多突破,也希望谷歌能够在 AI 赛道上,更加给力。明年 GDD,我们再约!
原创公众号:HyperAIB超神经
关键词:谷歌开发者大会 Flutter 1.9 Android 10
备受关注的谷歌开发者大会(GDD),今天在上海世博中心隆重拉开大幕。偌大的主会场座无虚席,近五千名开发者齐聚上海,亲历了这场盛会的开启,HyperAI超神经也来到了会场一线,简单为大家汇总一下今日内容。
这是谷歌第四年在中国举办开发者大会,正如谷歌在今年 I/O 大会上所说的那样,它正在转变为「向更多人提供帮助」的公司。
近年来,谷歌陆续打造了一系列的生态,开发了更多的平台和应用,帮助开发者更好地成长。而今天的 GDD 大会,就是这样一个展示和推广的平台。
在上午的 Keynote 环节,10 位嘉宾先后登台,介绍了谷歌近期的一些成果,以及在技术上的更新动态,让我们一睹为快。
新任谷歌大中华区总裁登场
在 KeyNote 主题演讲环节中,谷歌大中华区总裁陈俊廷(Stanley Chen)首先登场。
这是陈俊廷在今年 6 月担任该职位后(此前为石博盟担任),首次在公开大会中亮相。
他公布了谷歌的数据技术分享计划,已经让 80 多个国家及地区,超过 4300 万人从中受益。
陈俊廷还回顾了谷歌的近期的一些动作之后,宣布正式推出 Grow with Google 成长计划,向广大开发者们提供免费的课程学习计划。
这位担任谷歌大中华区总裁不久的陈俊廷,自 2011 年加入 Google 中国台湾,任台湾地区总经理一职。负责销售业务,职责涵盖大型企业客户、经销与线上业务。
在加入 Google 前,陈俊廷曾任职于苹果,担任中国台湾分公司业务协理和亚洲区校园业务主管。
陈俊廷已经工作了二十多年,看起来还是活力有精神,实际已经近 50 岁的他还曾在英特尔、爱立信等公司工作过。
通过提供网上的共享平台,提供免费的课程,将谷歌的技术带给更多需要的人,帮助用户使用和体验谷歌的产品。
随后,谷歌的研发团队的主要负责人,带来了近期的一些重大更新。
KeyNote:Tensorflow 2.0
作为近年来最受欢迎的机器学习框架,TensorFlow 自然不会缺席。美女工程师金安娜,以一口流利的中文,介绍了 TensorFlow 的整体情况。
她的分享聚焦在 TensorFlow 的一些应用案例,以及帮助开发者,企业用户,研究机构所解决的现实问题。
TensorFlow 已经建立了一个强大的用户群体。在全球有 4100 多万的下载量,而围绕 TensorFlow 构建的技术社区也在蓬勃发展。
仅仅是在中国,从一线到三线城市,就组建了至少 15 个大的 TensorFlow 活跃社区。
几周前刚刚发布了 2.0 更新版本,从实用性到易用性都做了更新,方便用户更好地开发训练和部署。比起之前的版本,也变得更直观,强大和灵活。
KeyNote:Andriod 10
前不久刚刚发布的 Android 10 ,也在大会上再次亮相。谷歌安卓首席推广工程师 Chet Haase,围绕创新和安全两个层面对 Android 10 做了说明。
在创新层面上,Android 10 原生支持 5G,在 5G 时代即将来临的当下,势必将搭上这趟快车。另外,引人注目的深色模式等新功能也一一被介绍。
而似乎是技术时代的发展必要,Android 10 也从用户控制,权限设置层面,对用户的隐私和安全,进行了强化。
此外,还重点介绍了 Android 10 相关的开发工具,提高开发效率,减少代码量,比如 Kotlin 优先的策略。
KeyNote:Flutter 1.9
Flutter 是谷歌的一款 UI 工具包,通过它的使用,开发者仅需一套代码,就可以为移动、网页和桌面构建美观的应用。
这个工具包具有四个特点:美观、快速、高效、开源。因为这些特点,它开发者群体中发展的势头很猛,在中国也被多家企业所使用。
介绍完基本情况后,最新的稳定版 Flutter 1.9 也被推出。这是 Flutter 迄今为止最大的一次版本更新,有 100 余位贡献者,提交共计超过 1,500 份 pull request。
Flutter 1.9 引入的新特性与更新涵盖范围广泛,包括 macOS Catalina 和 iOS 13 支持、工具支持优化、多项 Dart 语言新特性以及全新的 Material widget。
工具全家桶:ARCore & Wear OS
除了几项大的更新外,谷歌也在其他几个项目上,做出了推广介绍和更新说明。
AR Core 并没有被遗忘,根据谷歌的统计,AR Core 的认证设备数量还在持续增多,Google Play 上有数千个使用到该技术的应用。
而在国内的大厂中,对 ARCore 的使用和探索也让人惊喜。比如:
滴滴打车基于 AR Core 打造导航功能,运动跟踪和环境理解,复杂场景中进行地图导航;美图则使用增强脸部 API 打造相机功能,帮助用户拍摄更好玩有趣的图片;京东开发了一款教育软件,利用增强图像 API ,通过字母生成 3D 动态模型,帮助小朋友更具象进行学习等。
除此之外,Android Studio ,FireBase ,WearOS 也在用户交互上,智能化使用,功能上做出了更新。
比如 Wear OS 增加了用户和智能穿戴设备的交互,实现了更智能化,更大可视化,更友好的界面控制。此外,结合当下的热点,也加强了在健康方面上的细节体现。
惊喜全场:Google Arts & Culture
除了技术上的动态,谷歌还首次重点介绍了 Google Arts & Culture(谷歌艺术与文化项目),并开设了「谷歌艺术与文化」专题分享。
谷歌正在实现艺术世界的数字化过程。据悉,谷歌目前已经和 80 多个国家 2000 多个机构合作,正在构建艺术品的数字化呈现,涉及时尚,音乐,绘画,民俗等等。
比如构建其数字虚拟博物馆,通过增强技术,3D 构建,AI 算法的加持,用户通过在线访问,即可观摩更精细更全面的艺术品,随时随地访问各地的奇珍异宝。
这种方式,不仅让科技和艺术文化得到了有机的融合,还让艺术作品被更多人所知。
比如会上介绍的一个有趣的项目,通过计算机视觉等技术,实现历史肖像画和个人自拍照间的匹配。这一应用一经推出,就受到了大众的广泛关注,并在不知不觉中,宣传了数万张不被人所知的画作。
最后还介绍了一款专为中国用户打造的应用程序——观妙中国,通过机器学习等技术,建立了虚拟的数字博物馆,用户仅仅通过手机上,就能游遍 30 多家博物馆。
明天更多精彩,敬请期待
在主会场的 Keynote 之后,大会进入了各个分会场的主题演讲。谷歌为数千名参与者,准备了十多个主题近 60 场分享,还有多场的产品展示和互动环节。
对于今日的主题演讲环节,谷歌虽然没有发布惊天动地的项目,大多是在以往推出的项目上做了些点缀,进行了深化和完善。
但是今天依然有一些新的项目让人眼前一亮,比如谷歌艺术与文化项目,展现了前沿科技与传统文化碰撞时所产生的火花。
明天, GDD 还将带来备受关注的 TensorFlow 系列相关内容,我们也将持续跟进,第一时间将最精彩的内容与分享带给大家。
明天超神经还会在现场继续发来本届 GDD 的最新更新,记得收藏明天看补充哦~
感谢 @知科技 协助报名,还提供了很详细的现场活动说明。
说到谷歌,中国用户往往能想起的就是安卓了(当然还有很多人并不知道手机用的是安卓系统,也不知道安卓和谷歌的关系)当听到 Google 在中国每年都有开发者日时,当知道谷歌在上海和北京都有规模不小的研发团队时,我想大家最想问的就是,他们是干嘛的?
哈哈,是的,我也很好奇.在看了日程表,以及听了Keynote后,我把Google Developer Days定位成是谷歌中国一年一度的工作汇报.活动才刚刚开始,或许回答:什么最吸引我.还有些为时过早.
但一上午的内容的确让作为艺术专业的我来说,有了很深的感触.那就是谷歌对于文化艺术的思考,已经远超过了我的想象。
通过深度学习技术,可以用自拍匹配几个最像自己的艺术作品;让手绘的甲骨文,形成生动的互动场景。
还可以用抽象、具象两张绘画,匹配出集张过度的艺术品。某种意义上,可以让使用者知道具象-抽象的变化过程。
在艺术有趣化上,互动化上。Google的艺术与文化部门,做了很多思考。比数字图书馆更科技一些的是,谷歌做了AR美术馆,可以让某位艺术家分布全球的作品,汇总成一个虚拟展厅,让全世界各地的用户可以在虚拟展厅里看遍一位艺术家一生的作品。
这当然无法替代,到美术馆现场看真品。但对于绝大多数艺术爱好者,可以轻松的通过网络看到高清的艺术品,比全世界跑美术馆、收集可能存世很少的印刷品,要来的容易的多。
“让人们先觉得艺术有趣,然后再去了解艺术背后的故事”这是论坛上我印象最深的一句话。让远在殿堂之上的艺术作品,和当代人产生联系,实际是还原了艺术与人的关系。要知道,绝大多数古典艺术,诞生之时就是客户的约稿,是和人有联系的。
谷歌的尝试,将古典艺术与现代的人拉近了距离。也透露出了谷歌对于艺术的思考,非常让人倾佩。更重要的是,这一切都是非盈利的。这也是我感触很深的,谷歌开发者大会上,很少有商业概念。没有流量、没有变现,有的是如何连接现实世界。
---- update 9月11日 web专场的体验 ----
大会吸引我的地方实在太多了,先写一下10号我的一些感受和见闻,11号的明天更新。
这次来上海参加GDD已经是第二次了,去年18年的GDD我就跑过来了体验了一次,也在世博中心举行。
一早的动车到了上海站,地铁里遇到了好多背着去年GDD发的书包的程序员宅男。
从中华艺术馆下车步行400多米就到了,这次参会没有让在外门合影,简单的照了一下门口的logo,还是去年的味道和感觉。
看右下的大哥发型,就知道这是一场不一般的聚会。。。
排队进站之后上午是集中在主会场进行的开幕仪式和一系列介绍类型的Topic演讲,不得不说这一届最吸引我,最喜欢的是过场时的BGM,真的非常带感,我都在座椅上都快跟着抖起来了。
开幕式前的几个视频小短片我也很喜欢,比如介绍ARCore的一些实际应用场景的广告:
ARCore的一些场景介绍https://www.zhihu.com/video/1154843285645307904之后又介绍了一些TensorFlow的使用场景,重点推荐了智绘甲骨还有观妙中国这两个使用场景,去了的人都知道,很有意思的Google文化和艺术跟科技以及深度学习框架的各种可能性和结合点。
其他商业方面的案例比如:
- 有道作业宝,机器学习检查作业,整页判题。
- 美团外卖,机器学习推荐菜品,机器学习配送系统。
- 出门问问,智能硬件音箱,解决方言问题,粤语交互,TensorFlow语音建模云识别。
到了9点半正式开始,第一个主题是陈俊廷的大会致辞:
其中重点说了Google成长计划 ,包含了开发者 企业 学生和老师三个方面,利用Google的技术帮助中国的各种人群做技术赋能。比如提供微信小程序的接口,做国内的免费IT课程面向教育机构和老师们,还请来了百年职校的17届学生,帮助他们了解IT技能和程序开发。
第二个分享是我们大家都熟悉的金安娜,一位说着津味和东北口音的美女工程师(逃。
主要分享的是关于TensorFlow最近升级的一些情况,比如TensorFlow的2.0的特点。
TensorFlow面向的人群定位,以及主要功能。
如何在中国的商业产品中被企业采用和落地。被点名的有网易的严选商品推荐,还有一个微信里学习手语的小程序。
然后是TensorFlow的下载量已经达到4100w下载量,社区维护工作做的也非常好,经常组织一些线下交流,在11号还做现场的TensorFlow Roadshow。
后边的分享是chet haase的Android 10 特性介绍。
第一页就秀了一把所有特性列表,然后开始重点介绍一些亮点功能,比如Android 10 原生支持5G。
整个系统支持省电的夜间模式,深色主题。
然后介绍了Android开发者都熟悉的Kotlin语言,有超过50%的Android开发者在使用,语言增长速度排github第一。
比如说模板代码极其简短,左边Kotlin,右边原生Java:
还有Kotlin的一些其他优势,比如工具改进,更多的demo,可控性注释,udacity课程,对程的更多支持等,还有开发语言上的一些优化,比如Java10 对语言特性的脱糖,OpenJDK源码库的脱糖,改进的C++17支持,和NDK文档。
然后是Android Jetpack的介绍。
还有Androidstudio方面的一些更新。
说完了Android方面的一些事情之后,进入我比较关注的主题了,web环节是由paul kinlan带来的chrome v8的新特性和开发者工具相关的一些介绍。
比如这张图,后边好几个分享都反复提到的chrome新特性API,提供给开发者们更多的可能,只不过很多还在实验室阶段。
重点说了,lazyload属性,PWA的install桌面化,还有WebAuthN认证功能,SMS Retriever功能,Contact Picker几个重要更新支持,这些在去年都是没有说过的,或者还未实现的。
进行了增强的API还有分享功能和分享target功能,还有对应Web也支持了省电的夜间模式。
当然Lighthouse也已经都内置到了chrome开发者工具中,方便开发者对页面性能进行检测和打分。
去年没提过的还有一个web.dev的内置,它可以帮助开发者分析自己的web app,帮助开发人员学习并将 Web 的现代功能应用到其站点和应用中。
之后是shailesh nalawadi 谈 Firebase相关的一些问题,比如Firebase和深度学习结合进行物体识别训练模型的产出。
还有Firebase和Google Analytics的结合,帮助你优化你的网站和用户访问行为,帮助你做更好的推荐等等。
接下来是我比较关注的Flutter相关的一个介绍,来自Flutter产品经理 樊舟颖的一个分享。
首先介绍了什么是Flutter,解决了什么问题,比如跨端,免费开源,易扩展,让你的应用开发成本降低等等好处和特性后,总结了Flutter这一年来的进步和增长趋势。
然后和去年一样当场宣布的了Flutter1.9的上线,并且介绍了一些这个版本的新特性。
比如把网页版的编译合并到了Flutter的主干上,让大家更方便的编译web端的视图程序。还给大家演示了一段如何把Dart的语言demo编译成web端的JavaScript demo,然后还通过对比webview内置web端展示效果和Flutter的端内编译效果对比,来给大家看到了对比后的性能反馈结果,Flutter的还原度和流畅性是非常高的。
接下来是Wear OS的一些特性介绍,比较吸引我的是加入了卡片的设计,让表盘的灵活度和使用率,空间展示都扩大了许多。
还有就是对特定的使用习惯加入了很多场景Card,比如通勤,运动,天气等。
之后是ARCore的一个介绍,和一开始我发的视频差不多,举例了很多国内的应用实际场景。
最吸引我的一个场景就是滴滴的AR提示找路的场景,简直太适合我了,在商场里不分东西南北的人也可以通过ARCore提供的能力来对车辆停靠点的一个指引提示,说是计划很快会推出到生产环境了,我非常期待。
接下来是负责Google 文化和艺术的一个分享。
比如在观妙中国APP里在线进行艺术品画作的各种细节观赏能力的展示让我非常感叹,技术的进步确实可以带来无限可能。
通过人脸识别算法提供肖像画和用户照片的匹配,帮助人们认识和了解更多的大师肖像画。
最后,也是上午开幕式的最后一个分享,是北京Google研发中心的负责人,主要讲了一些Google对开发者社区的一些组织贡献和Google的技术产品在中国的一些普及情况等等。
上面这部分是开幕的一个我个人的总结,都是比较吸引我的点。然后是后边的分会场讲座,我的专长是web领域,所以上午听了2个场次的web分享。
第一个是《渐进式web应用,从移动设备到桌面设备》
从标题我们就知道,这是要说PWA了。
首先这次ppt分享的非常接地气,因为都是中文哒,开篇就介绍了网页和应用也就是PWA的区别对比,介绍了网页能做的和PWA能做的各个方面能力。
然后是总结了桌面应用的一个优势,主要是体验上的好处。
然后引入了PWA的一些必要和突出功能,比如应用的manifest文件配置,如何修改状态栏样式,UI等,还有sw的重要性,操作系统功能的打通,和一些未来的api。
后边详细介绍了Workbox,它是一个帮助更好的处理Service Worker的一个辅助库。
如何处理PWA安装逻辑的代码展示。
使用了PWA和非PWA的实际对比结果:
同样的这张图出现过好多次,就是未来的一个chrome新特性API:
以及这些API的开发计划和进度:
第二个关于web的分享是《实现适用于web的新功能》,这个分享继续了PWA的这个分享,开始详细介绍,一个新的API的研发周期和流程步骤,并且对这些API的具体能力进行了讲解。
比如剪切复制功能的升级,支持了async的调用方式,方便你去处理剪切板的数据:
还有Badging的API,也就是小红点提示。
选择通讯录的能力,必须用户行为才能触发,保证用户隐私和安全。
定期同步数据的能力,每次打开应用获取最新的后台同步好的推送数据。
识别二维码的能力。
处理本地系统文件的能力,保存修改另存都可以轻松实现了,帮助开发云IDE做了基础。
上午的分享基本就这么多,中午吃饭的时候基本人都是爆炸状态,在饭厅还碰到8年前在阿里UED的前端开发同事,感谢Google开发者大会让老朋友多年又相见。
中午饭还不错,香蕉挺好吃的(毕竟都是程序猿,我知道为什么发香蕉,我有这个觉悟。。。
下午时间比较轻松了,web场的分享只有一个比较感兴趣,就是TWA,没错,我一开始也是懵逼的,PWA,AMP我都是知道的,但是TWA是个啥东东?
1:45去听了这个《如何在应用中使用TWA》:
这个小姐姐有点紧张,不过后边放开了,不说演讲者了,我们进入正题:
TWA就是一种代替Webview和CCT的一种嵌入Android应用的方法,Trusted Web activity,他的特点是什么呢?首先必须全屏展示网页内容,不允许其他的native组件绘制其上,保证可用性使用签名加密方式验证web网站的所有权和app所有者是一个人,否则则用CCT方式也就是chrome custom tab方式打开,它跟随chrome版本升级,和chrome的数据共享,保持版本一致性等。
和webview还有CCT的对比:
使用方法很简单,几步导入即可,然后介绍了一下app和TWA的交互方式,就是互相调用的机制,类似一套路由匹配系统。
然后TWA是向前兼容的,目前android的设备支持率达到了95%,android4.4以上的版本都可以使用。
要构建一个符合沉浸式的TWA应用要符合以下几点,比如首先要是一个完整的PWA应用:
整体总结下来就是TWA始终和chrome保持一致,展示的内容也能始终使用chrome中的最新功能,TWA就是android应用中的chrome,代替简陋的webview,提供更好的用户体验。
基本上web的内容,10号就这么多,剩下的时间我又去客串了一下Flutter的分会场,嗯。。爆满了。
《腾讯,字节跳动和Grab等公司有些共同之处?他们都使用Flutter构建应用》
这个主题开始的部分和开幕式有一部分介绍是重合的比如,Flutter的1.9版本特性等,这里就不展开说了,主要说一下在腾讯,头条和Grab的实践和收益,当然除了这几家公司之外还有很多公司也在使用Flutter构建跨端的应用。
在腾讯的英语君中,他们采用了Flutter的一个特性,利用Flare来进行动画的直接转义,大大降低了动画的调试成本和难度以及工作时间。
借助于闲鱼贡献的很多Flutter和开源的力量,他们也使用了更多的一些Flutter能力。
效果也很简单直接,Android和iOS平台的Dart代码占比90%,大大减少了迭代需求的跨端兼容时间,节约人力成本45%。
然后是头条在海量产品中的尝试,内部工程师的高认可度带来了开发效率的提升:
比如从实现原理机制上,Flutter就比其他跨端平台实现框架少了桥的消耗,支持C++代码直接调用,所以性能上是优秀的。
选择Flutter的理由也很简单,性能体验超越其他同类框架,平台一致性带来的研发效率提升也是非常可观的收益。
当然Flutter也有一些缺点,需要社区和业界的一起改变和尝试。
而Grab则是在RN和Flutter同时使用的情况下,经过实践,最终选择了Flutter为跨端技术提供支持,目前已经上线的有GrabFood和GrabPay。
提升效率从实际的产出上说明了一切:
看的我也想去写写Dart了,最后的一部分还介绍了Flutter在社区举办的Flutter Create大赛,第一名也来到了现场。
基本上10号我的几场演讲就都听完,说完了。
要说除了这些分享之外,还有什么吸引我的,当然就是GAC部分,展区的体验馆啦。
印象最深刻的有2个demo,一个是ARCroe帮你做产品演示,比如咖啡机的使用:
扫码启动后,通过AR技术演示整个咖啡机的制作流程,非常方便还节约了真实的咖啡原料,非常有趣。
还有一个好玩的就是通过摄像头捕捉人的动作,让古瓷器进行对应的响应,有点体感游戏的意思。
玩完一圈体验区之后,就是让人激动人心的对换礼品环节了。
只要参与了Google现场的问卷调查表,然后拿着调查表问卷验证码就可以领取一个Google开发者大会的纪念书包!
----- 9月11日更新 -------
更新一下11号的日程,我现在正坐在D702上往北京走,今天的分享整体来说,更偏专业一些,我听了4.个分享。
上午两个:
《如何快速构建Flutter混合应用》
《Local Home SDK》
下午两个:
《从非智能手机到桌面浏览器,如何快速打造流畅的web应用》
《与Web一同成长:中国案例研究》
先说第一个,《如何快速构建Flutter混合应用》
分享来自阿里巴巴团队,作者来自闲鱼,整个分享一直在说或者主题目的就是解决Flutter在和native应用混合开发时如何解决工程化和集成的问题。
闲鱼本身是就是一个基于原生和Flutter混合应用的一个实践案例,除了刚才说的集成问题,细化来说就Flutter和原生应用组合时如果采用多Flutter实例的话,性能消耗,换场切换时内存消耗过多等问题都无法绕过,闲鱼采用的是单Flutter view复用解决的,还有就是单view中如何做自己的router的问题,Flutter 实例和同原生路由集成通讯等问题。
为了解决上面这些通用问题,闲鱼开源了他们优化和集成后的Flutter Boost。
关于工程化的问题,无论是在Flutter中包含原生还是原生包含Flutter,都需要解决隔离和通讯的问题。 一开始闲鱼采用的是gitsubmodule和ci集成编译的方法解决的,我是用过git submodule的方式开发过隔离项目的,集成起来确实非常麻烦,为了解决这个问题,Flutter boost最后采用了软连的方式来实现了集成编译,无论是本地源码还是远程或者构建后的应用都能做到方便的集成编译。
然后作者在线演示了一个Android的混合Flutter如何安装和编写Flutter Boost的例子,成功在模拟器里用很少的代码实现了原生混合项目的集成。
https://github.com/alibaba-flutter/fbi (二维码自动识别)
总结一下就是这一页,Flutter Boot做到了把Flutter项目转换成Flutter Module的实现,通过软连实现源码的隔离集成和依赖,实现了混合路由功能,做到了开箱即用,也可以说是Flutter混合项目的脚手架工具。
第二个分享,《Local Home SDK》是关于物联网的主题,我们先看一下分享者下面这张Slide。
如果你家有一个Google Home音箱,而家里又集成了其他智能设备,比如一个智能灯泡,那么你一开始接入这个智能设备的流程可能是通过服务商的一个APP,然后利用服务商的私有云服务上传和下发指令来实现控制流程。而Google Local SDK的流程则是在Google的智能印象中引入了一个本地SDK的概念,通过Google Assistant的来进行发现和控制局域网的其他设备,比如你说开灯,之前可能是需要通过转发到开发商的云服务上,通过Local SDK,流程则变成了先发command到Assistant,然后Assistant如果发现本地的这个设备使用集成了Local SDK,那么这个指令则通过本地Local SDK本地直接控制设备了,目的是什么呢?
通过Google Local SDK可以降低命令延迟到300ms以下,因为无需再和代理商的云服务进行实时控制的交互了,并且提升可用性到3个9,因为本身Local SDK也是支持向前兼容的。
而开发者要如何集成Google Local SDK呢?
这张图是Google Home的一个实现,底层是TCP,UDP,BLE等协议的实现,中间Local Home Platform是对底层协议的一个浇水封装,提供给Local Home SDK,而Local Home SDK则是对用户使用的API,基于JS的,再上一层则是开发商自己的JS Local应用。
前端同学看到这里是不是惊呆了,有意思的还在后边。
上面这张图是整个实现流程的拆解,控制设备和发现设备是如何运转的呢。
首先,你需要在Actions on Google上配置你的智能设备Scan Config,用于扫描和发现本地局域网中开发商自己的设备。然后Google Assistant感知到了你的Scan配置,会对Google Home下发这份配置,然后开发商还需要在开发商的私有云服务商开发一个SYNC response的接口配置,用于本地的Google Home音响里的JS应用在第三步Identify识别设备时,匹配一个识别ID。来保证这个设备真的是你能控制的设备,必须完全一致。
然后开发商则需要通过编写TypeScript代码来控制自己的设备了,Google Local SDK的演示代码如下:
constructor中定义的就是如何通过Local SDK来获取DeviceManager,然后通过定义2个对外的事件,onIndetify和onExecute来实现设备的识别和控制。
那么我们如何调试这个JS呢,TS编译成JS通过TSC可以很方便的做Bundle,而调试就更方便了,可以直接使用chrome inspect功能就可以了。
前端同学非常熟悉的界面出现了:
只要你在Google 的托管服务上指明了你的本地调试地址,你的调试地址和你的Google Home还有你的调试mac,都在一个局域网,那么你就直接可以在inspect页面看到对应的网页,对里面的js进行debug了。
最后到目前为止,Local SDK最后的发布还没有对外开放发布功能,需要在Q4的某个时间点才会公开发布功能的使用。
整体来说这场分享最大的收获是我了解到了物联网设备的一个整体流程还有Local SDK在其中起到的一个优化作用和实现思路,还有就是JS真的是哪哪都有它的身影啊,最后TS大法真香。
上午的分享基本就到这里了,下午的第一场web分享是《从非智能手机到桌面浏览器,如何快速打造流畅的web应用》。
这个主题非常有意思,讲的是如何在多端多设备之间让你的web应用尽可能的快和可用。
先看这张图:
我们能发现Google的首页在pc和老式手机设备上都展示的还不错,因为比较整体搜索页面非常简单。
然后我们再看这个应用:
oooops,直接样式和功能就挂掉了。这个网站是Google那边做的一个在线对图片做压缩裁切的服务,对于网站的可用性来说,左边这种老式智能机,全球还是一直在销售的,占有率还非常的高。那么我们如何来做这种适配工作呢(表扬了一下twitter,这方面做的非常好)。
然后作者展示了一个他们做的project,是一个类似扫雷的游戏,然后给我们带来了这个web游戏应用是如何来做多设备的适配和性能优化的。
首先,定制目标:
1, 所有设备都以相同的方式运行,既一套代码。
2, 实现所有输入设备的控制,比如鼠标,键盘,触摸,还有screen readers等。
3, 性能初始首次payload小于25kb,TTI(首次交互时间)慢3G 5s,60PFS的动画效果。
Ok,任务看起来还是很艰巨的,Google的开发团队是如何实现的?
首先他们的架构分了4块,1,纯游戏逻辑。2,UI控制。3,一个统一的render。4,utils。这4部分都是使用JavaScript来实现的。那么它们是如何组织到一起工作的呢?首先为了不阻塞主线程,使用web worker在子线程中做纯的游戏逻辑控制,然后通过封装好的post message(Comlink已开源)来进行通讯控制,让主线程来进行UI的绘制。
Comlink的开源地址。
那么下一步呢?
没错,UI控制部分,他们选择了精简版的react,就是preact来实现的组件化。
然后再通过puppetter来进行的预渲染,结果出来就是一完整可运行的html结构了。
除了预渲染和腾出主线程的优化方式之外,绘制的过程也充满了坎坷。
一开始选择了Table来做扫雷的实现,但是发现在chrome上的一个bug,table一个格子颜色变化了,整个table都会跟着变化颜色,解决方案也有就是对table分层,但是分层后由于button太多,有多少button就要有多少层,这个方案不合适。
那么换成canvas就没什么问题了。
动画采用什么实现呢?
ok,requestAnimationFrame,这个大家都很熟悉了,随分辨率刷帧的api,那么背景图能不能优化呢?答案是可以的。
每次绘制背景都是1/5的面积然后再用放大功能放大就好了,因为背景本身就很模糊的一个效果感觉。
点击button后的效果需要每次绘制,那么我们把他们存在本地db吧。
避免了重复计算量,降低主线程阻塞,让动画更流畅。
Canvas上的事件怎么做呢?
UI和控制分层,在canvas上盖一个table就好啦。
保证可用性怎么实现呢?有了,我们用focus和button的tabIndex来做焦点控制,对于前端来说非常好理解了。
低端的android机上经常跑不起来,崩溃,怎么办呢?本质原因还是cpu太烂导致的,所以在做动画效果时需要对矩阵shader效果动画做向下兼容。
首先判断是否支持webgl,通过ShaderBox来进行探测。
而motionPreference这里的意思是某些系统中用户可以设置优先减少运动,避免创建运动的样式。而这个设置可以通过prefers-reduced-motion这个媒体查询标识获取。如果用户设置了这个偏好,那么就可以减少用户的动画cpu消耗。
交互形式上为了代码体积的优化,放弃了模拟滚动,全部滚动都采用原生滚动,同时放弃了tap的判断。
非触摸屏机器显示焦点环。
给用户提供快捷键指南。
提供fixed定位的关闭按钮而不是在滚动容器里提供关闭。
比如这张图就是反例。
最后提供离线能力和缓存,以及首屏分包的功能。
打包他们采用的是rollup.js,并且提供了一个解决web worker里无法import的问题的rollup插件。
当然最后作者也说,如果你有更好的办法可以让这个stuff更小,可以给他们提pr。
当然为了保证代码体积,他们也在CI里集成了体积报告。
最后项目的地址在这里:
11号,我听的最后一个web的例子,我本来没有抱太大的希望,但是听完之后收获还确实不小(还是web优化技巧),那就是最后我听的这一场《与Web一同成长:中国案例研究》。这一场其实分了2个小的主题。
第一个是,如何优化基于Nodejs的SSR页面效能,分享来自腾讯视频的前端开发工程师。
这个分享整体比较干,但是其实我个人感觉是老酒装新瓶了。首先分析了SSR服务的一个后端响应时间的瓶颈问题在哪里。
这两页ppt非常清楚的说明了,使用chunk技术的优点,以及服务端相应时间的瓶颈在于外部的IO阻塞。
那么如何解决呢,下边给出了实际的例子:
腾讯首页通过分块chunk的一个改造后的状性能情况,指标以及lighthose和线上数据。
效果很美好,但是问题也随之而来了。
因为拆分chunk,需要对页面模块来进行区分,比如手工拆分模块和数据依赖管理等,增加了开发和维护成本。
解决办法很屌,腾讯的工程师基础还是好,会编译原理就是可以为所欲为啊。
提供自动化的chunk服务在预编译阶段就通过AST解析nodejs的render模板,自动找到依赖关系和数据,做异步化的管理。
实现流程是这个样子的:
1, 解析模板,查找第一层的模块节点。
2, 分析这个模板下面和数据有关系的标记,通过AST解析出依赖关系。
3, 根据依赖关系,在生成新的code,新code用promise all包裹每一层的和数据标记有关系的promise结果。
4, 在输出chunk块的时候,迭代模板表达式,然后判断当前这个模板是否为异步模板,是否有数据依赖,如果有的话就把之前的chunkCache写到chunk里,然后当前这一次的异步模板,添加之前生成的数据链,在reslove的时候把结果合并到chunkCache中,如果不是异步模板则直接把静态结果加到chunkCache里。
通过这种渲染方式,就实现了页面的分段自动chunk输出,而不需要人工维护异步模板和拆分模块实现chunk功能了。
第二个分享还是腾讯的,做的是出海的一个项目webnovel,分享主题叫《使用web新功能优化用户交互》
说是web新功能,其实就是AMP+PWA的一个实践。
AMP很熟悉的东西了,我这里用大白话解释一下,就是Google提供的一套全球静态服务CDN加托管加AMP交互套件,通过Google的加速和优化后的AMP套件实现统一标准的可提高性能的搜索结果页面。
嗯,服务用AMP技术后,pageload时间降低了87%,这个很关键,国外的网络很烂,Google的CDN很强。
然后又提到了一个AMP的新功能,去年没有的,叫SXG,Signed HTTP Exchanges。
这个东西是解决,AMP页面的url是google域名而不是真实产品域名的一个体验问题的。(因为托管了)
然后又提到一个技术就是在AMP里提前安装主站的servicewoker来进行资源和接口预加载的功能,提升跳转后的性能。
添加到桌面功能很重要,从数据上看各项用户粘性指标都很高。
最后使用WorkBox.js来管理自己的service woker逻辑,利用各种WorkBox的Cache规则等等提高页面离线的访问体验。
基本上我11号的分享听的就是这么多,因为火车是晚上7点的,所以4点多就撤了,基本上这一天都是在web场坐着。
整体今天给我的感觉就是技术细节变多了,干货变多了,很赞。
最后感谢Google开发者大会带给我们这么多新的思想碰撞,可能这就是开发者大会最迷人的一点吧。
再见,上海GDD,明年再会。
重新把开发者大会定义回去
能够亲临现场听到来自google的大佬对tensorflow的架构讲解
强推智绘甲骨啊,技术有意思,还能学习甲骨文知识哈,设计的也很有意思嘛(此条5毛)
TensorFlow太棒了。tensorflow lite、tensorflow lite micro将在IoT时代大放异彩,构筑无处不有的边缘计算网络,将人工智能的应用发挥到极致...
还有很多技术、框架、开发工具都很有趣,还是开源的,简直就是方便开发者,造福人类。
大会全程无废话,每个主题的每段分享都是讲技术、关注开发者成长...紧密围绕开发者群体,开发者大会被404公司重新定义了回来!
某公司还是多学习吧,靠ppt和diss同行是不行的,开发者大会要认真,开源也要认真!ppt畅想的边界可以无穷大,本身没有意义,踏实点好,频繁地diss同行是品行问题。
感谢 @知科技,能够有幸参加谷歌开发者大会。
整个大会的活动表:
除了主会场,还有分会场,可以现场看到各种直播与演讲。
作为一个非IT深度垂直领域的人,谷歌"妙观中国"成为能够最能吸引我的地方。并且能够有幸听到产品项目的介绍与当科技遇上艺术与文化的演讲分享。
我们可以将这些文化艺术作品尽情的放大去观察每一个细节。这些内容的展示都让科技与文化得以融合,但是对于没有到现场的朋友来说,听我描述可能并不能够那么直观。但是可以去体验一个更加直观的产品:妙观中国。在应用市场都有下载安装。
通过这个APP,我们将会看到,所有的藏品被科技搬上了线上,并且可以放大看到每一个精细的细节。我们有这非常丰富的文化遗产的瑰宝,当然谷歌的艺术与文化致力于这种新的技术与文化的结合时,我们将会看到科技如何将这些瑰宝精细的展现在我们面前。你在手机上就可以逛30多家博物馆。而且不同的信息与内容也被相应的分门别类,我们可以根据自己的兴趣与需求进行查找,等等。
大家有兴趣的,完全可以下载去看看。
同样,还有很多的技术让我感到有趣,ARCore让我肉眼无法分辨镜头里的一切真假,这令人感到惊奇。
在上图中,实际场景上只有一个实物模特,但是当你尝试使用手机拍摄的时候,却可以看到以假乱真的新模特模型:
实际上,在现场用肉眼观察这些光影的变化,确实非常难以分辨它们的真假。计算机会实时检测环境光影变化进行渲染。所以在屏幕上看起来足够以假乱真,即便你用心分辨也会感到非常困难。
在现场,我还看到了一个5分钟的卡片课程,并且体验一下。在5分钟学会一个数字技能。这倒是让本是互联网与教育行业相关的我有了一些灵感与启发,是不是在大量的视频教程流行的时候,会不会再次回到5分钟的图文与演示,是最快的学习方式?在能够使用图文更高效的时候使用图文,其他演示在必要的时候则使用GIF或者视频文件,如果进行合理的合理的规范与管理,是不是这些学习方式会变得更加有效与流行。
当然谷歌带来给大家的绝非仅仅这些,我也看到了谷歌与品牌合作的穿戴设备,顺便拍了几与大家分享。
下午的女性职场赋能的课程因为排队很长,所以去听了美图的分享。能够感到相信数字技能能为所有人带来机会。
在谷歌一直致力于推广数字技能, 它越来越会在各种领域大显身手的。
“Grow with Google成长计划”
Google提供了一系列免费线上课程、学习工具和线下培训,帮助更多人解锁数字时代必备技能,致胜未来,体现了一家大型科技公司的社会责任感。
里面让我印象很深的是Google和百年职校(中国第一所全免费公益职业学校,用职业教育推动扶贫,为贫困的、非优势群体年轻人提供优质教育资源)的合作,Google现场还邀请了百年职校的学生,并在提及这个合作的时候把镜头给到了这些学生。
谷歌高级软件工程师金安娜(Anna Goldie)全程中文演讲
金安娜分享了 Google 是如何运用人工智能致力于解决棘手问题,全程中文,感受到了Google对中国市场的诚意。
“挖掘事业发展潜力-开拓自己的道路”
这个分会场邀请了四位在技术领域摸爬滚打了一二十年的成功人士,她们分享了自己在职场上获得成功的一些经验,干货满满,十分受用。
观妙中国
一款线上博物馆APP,谷歌艺术与文化团队携手中国超过30家博物馆及艺术文化机构,用科技和创意让身在不同角落的每一位艺术和文化的爱好者都可以随时随地在线上欣赏珍贵的艺术品和历史文物,体会每一件珍品背后引人入胜的故事。
这款APP提供三个功能:放大欣赏超高清图片——细观中国艺术瑰宝;虚拟实境游览——足不出户,探索中国最顶尖的博物馆和最热门的艺术地标;在线展览——随时随地欣赏由专家打造的精彩展览。
我喜欢逛博物馆,对这个超感兴趣,可惜暂时只发布了Android版,无福享受。
智绘甲骨
话不多说,直接上视频,里面的形象都是甲骨文,这个创意太有意思了,传统文化与现代科技的完美结合。
https://www.zhihu.com/video/1155260614170435584作为国内的知名的 IT 技术社群,我们其实一直以来,都希望对于我们的产品做一些改进和调整,帮助我们的产品更好的对外提供服务,比如说,就内容方面而言:
TensorFlow
LC 一直希望在自己的产品中加入机器学习的功能,让我们能够为读者提供智能推荐的功能,TensorFlow 也是我们一直在关注的内容,了解更多的能力与实践,希望在我们的产品中加入这些内容。
在本次大会上,诸多基于 TensorFlow 的产品让我眼前一亮,原来 TF 可以做出这么多的东西。无论是观秒中国、 Draw to Art、色彩聚类还是智绘甲骨,其背后对于 TensorFlow 的应用,是我们之前都从未想象过的。过去只能想到去做智能推荐,但这一次的参会,给我更多新的灵感,更多的可能。
包括我们过去一直在做一些小的、新的产品,比如 Linux 小程序、运维密码小程序等,这次大会看到的 TensorFlow.js 也是让我们颇受鼓舞,接下来,我们可以在小程序端做一些新的尝试,为广大的 Linux 爱好者提供更多不一样的能力。关于这部分的内容,你可以在 tensorflow/tfjs 查看到。
除了这次的参会体验,可以感受到的是,TensorFlow 是本次大会的重点项目,明星项目,在议程的第二天,安排了一个全天的 Tensorflow 专场,来做 TensorFlow 相关的推广。
Flutter
其次,我比较关注的是 Flutter 方面,
因为我们 Linux 中国虽然有数百人的志愿者团队,但是真正有开发能力的却并不多,而且大家都是志愿者,没有足够的时间和精力来开发我们的产品。而 Flutter 这种一处编写,多处运行的产品,是最适合我们的情况的,我们也一直在关注着 Flutter 。
这次大会上正式发布了 Flutter 1.9 版本,新的版本将 Web 的支持合并到了主库,也有更多新的 Widget 的接入,Dart 语言的新特性支持,工具的优化等等,对于后续我们的开发来说,是一大利好消息。
现场的大厂的分享,也给了我们这些 Flutter 拥簇一大信心,连国内的大厂都在用了,你怕什么?
关于这些新的 Feature ,如果你没有在现场参会,或者观看直播,可以在 Flutter 的官方博客文章中查询到:https://developers.googleblog.com/2019/09/flutter-news-from-gdd-china-flutter1.9.html?m=1
Firebase
最后,我比较关注的是 Firebase,Firebase 作为一个面向中小开发团队的云计算产品,正适合我们这样的组织。
Firebase 提供的业务很适合我们这样的小团队,不过这次的会议听的内容不够多,还是不太过瘾。
Grow With Google
这一次的一个惊喜是 Grow With Google 项目,Grow With Google 对于广大的草根开发者来说,是一大利好,来自 Google 的教育项目,能够帮助更多的开发者变得更好,能够更好的完成自己的想法。
现场图片
最后,来一波现场图片