开源不易、安全慎行,中国软件如何走向文明?丨 RTE 技术环境月报 202205
各位开发者小伙伴:
这里是 2022 年第 5 期的 RTE《技术环境月报》——致力于成为对大家“有用”的 Highlight 看板——每月初通过 RTC 开发者社区(https://rtcdeveloper.agora.io/)和声网微信服务号(AgoraIO)发布, 恳请大伙儿多转发、多反馈。由于文中内容包含较多信源超链接、建议大家前往 RTC 开发者社区或使用我们的邮件订阅服务,喜欢用邮件的小伙伴请点击阅读原文进行订阅。
对于任何反馈**(包括但不限于内容上、形式上)我们不胜感激、并有小惊喜回馈,例如你希望从“技术环境月报”中看到哪些内容;自己推荐的信源、话题、会议**等;或者列举几个你喜欢看、平时常看的内容渠道;内容排版或呈现形式上有哪些可以改进的地方等。我们欢迎更多的小伙伴参与“月刊”内容的共创,感兴趣的朋友请通过开发者论坛或微信服务号联系,记得报暗号“共创”。
感谢 Tina 对本期内容的贡献。
月刊中的点评仅代表个人,如有不同观点,欢迎大家各种留言跟帖讨论。希望此后的日子里,《技术环境月报》能与各位如期相见、偶尔启发。以下为月报正文:
00 本月好文推荐: 《中国软件,从繁荣走向文明**》
这篇文章点出了中国软件行业的一些现状:比如中国企业管理者对软件价值链的无知和短视、过于结果导向;中国软件开发者的工程能力下降,即使是基于二次开发也难保开发效率和质量,缺乏工匠精神。同时,本文还有一个独到之处,就是提出企业和个人也需要关注“个体责任”和“家庭责任”。中国的传统教育通常是要求“超过别人家的孩子“,要比别人过得好,反而都极其忽视个人和家庭感受,最终是“为别人眼中的自己而活”。
这篇对中国软件的评价,跟前段时间的《是什么造成了中国软件产业的悲剧》有异曲同工之感,都从企业和开发者角度指出了一些问题,如中国软件行业缺乏核心竞争力,销售导向,“魔改”开源软件等等。作者认为中国“没有真正意义上的软件巨头型企业,大量基础软件被外国垄断”。虽然现状不是一朝一夕能改变的,但是庆幸有人能开始指出问题所在。
站在“脱钩”的大背景下,我们应该有筚路蓝缕的眼光和魄力,从基础软件的问题和现状中发现机遇,发挥自身的优势、在下一个浪潮中实现自我的价值。
01 【音视频】从编解码器到架构再到场景,创新无处不在
在过去的一年里,H.264、VP9、HEVC、AV1、VVC、LCEVC 和 EVC 等视频编解码器的一些重要变化及其现状的汇总和介绍。
FFmpeg 近日合并了对 JPEG-XL 图像格式的支持。 JPEG-XL 是一个免版税的位图文件格式,支持有损和无损压缩──使用了 rANS(range Asymmetric Numeral System) 技术。但微软最近获得的 rANS 数据压缩相关专利引发了人们的担忧。
WebRTC 架构格局正在发生变化,在基于 WebRTC 的应用开发中,架构选择需要权衡多种因素如需要的功能、拥有的预算、开发人员技术水平等;大多数情况下, CPaaS 或开源媒体服务器选项仍然是最好的选项。但在少数情况下选择自建系统或者使用 Unbundled WebRTC 也是一个不错的选择。
谷歌宣布将在 GSuite 中集成 Google Meet 功能,不知道搜索巨人是受了微软的启发还是突然顿悟了。国内方面,金山办公和飞书也都集成了相关功能。
播客录制平台 Riverside 最近获得了 3500 万美元的 B 轮融资,该轮融资由 Oren Zeev 领投,目前该平台的总资金达到 4700 万美元。Riverside 目前有大约 90 名员工,现有客户包括纽约时报、福克斯体育、漫威、iHeartMedia 和微软。
俄罗斯用 Youtube 替代 Rutube,其实俄罗斯多年前就已推出 YouTube 和 Facebook 的本国替代平台 RuTube 和 VKontakte ,去年又推出俄版 Instagram 平台 Fiesta。其中 VKontakte 已经成功攀升至俄月度用户第二多的社交平台,3 月用户月活超过 1 亿。
02 【大前端】RTC 和元宇宙,你更看好哪个?
在经过一段时间的预热之后,Epic Games 正式发布了“虚幻引擎 5”,新引擎的技术包括“全动态全局光照解决方案”Lumen、“虚拟化多边形几何体系统”Nanite,同时在性能和 UI 层面进行了大量升级,可实现更加逼真的视觉效果。Moor Insights & Strategy 首席分析师 Anshel Sag 表示:“我认为虚幻引擎 5 是向元宇宙和 AR/VR 迈进的一大步。”
选择 Rust进行 WebRTC 跨平台开发的原因:要在所有平台上提供一致的核心业务逻辑,对每个平台提供近乎原生的 API,同时最大限度地减少跨平台之间的差异。
《知识图谱可视化技术在美团的实践与探索》以美团大脑为例,介绍了知识图谱可视化技术在美团多个业务场景中的应用,效果非常酷炫。
近期 Video.js(一个专门为 HTML5 构建的网络视频播放器)项目宣布增加了对 WebRTC 的支持。Video.js 项目始于 2010 年中期,目前已经诞生了数百个皮肤和插件。
03 【网络】eBPF 和网络加速
安全监控是企业上云非常重视的一环、并越来越受到云服务商和企业的关注,Kindling 是一款基于 eBPF 技术的云原生可观测性项目,这两篇博客介绍了 Kindling 的探针架构和 HTTP 协议解析的原理。
我们看到,越来越多的企业开始在基础设施中采用 eBPF 技术来代替 iptables 等,但 eBPF 在解决很多技术难题的同时,也被更多非法的组织和机构恶意利用,美团技术团队本月也分享了一篇《Linux 中基于 eBPF 的恶意利用与检测机制》。
知名 SSL 证书漏洞检查服务 SSLPing 因长期积累的技术债、运维困难及系统环境的问题、以及入不敷出的窘境导致无法维持运营,最终被迫宣布关闭。
谷歌近期推出了 Media CDN 服务──构建在谷歌现有的 Cloud CDN (用于 Web 和 API 加速)产品之上,并整合了沉浸式媒体体验的能力。除此之外,Media CDN 支持 QUIC (HTTP/3)、TLS 1.3 和 BBR 的开箱即用、针对 Last-mile 进行了优化。
04 【开发】编程语言的进化
本月许式伟写了 2 篇文章总结了 Go+ 的设计理念和发布两年来踩过的坑:《Go、Go+ 与 Rust 自动类型推导的对比》《那些我们踩过的坑》。非常值得一读。
在谷歌这样的代码规模下,如何优化 C++ 编译器中的std::sort ?这项工作已经进行了一年多,虽然底层排序算法已经发展得很成熟,但是持续的优化也是非常必要的,可以很好的改善效率,文章中有一个例子能说明:与 libcxx 排序相比,libstdcxx 做了很多“非必要”的工作,但这些优化工作在实践中很重要,让运行速度快了 4.5 倍。
新开发语言。最近 Hare 语言在国内外激起不少讨论,这个新开发的语言由软件工程师 Drew DeVault 和其他约 30 位项目贡献者共同完成,目的是“探索 C 语言能不能做得更好”。C 语言发展到现在,在操作系统、编译器等领域得到了广泛应用,故 Hare 取代 C 的可能性几乎是零,因此作者在介绍 Hare 时也使用了一个非常有意思的词:“to play with(玩)”。
合理利用软件开发中的二八原则,可有效降低开发成本:软件中 80% 的错误来自 20% 的功能;给定应用程序中 80% 的复杂性来自 20% 的代码库;对于 80% 的用户来说,应用程序中只有 20% 的给定功能集是重要的;80% 的用户可能不关心应用程序中 80% 的功能(他们只关心 20%);工程团队将 80% 的时间花在 20% 的应用程序上......因此可以采取一些针对性手段,比如在沟通上,如果让客户来决定额外成本是否值得,可以用更少的钱来更快地开发软件;在管理上,让客户帮助工程师了解“80%”功能,那么工程师将成为软件开发过程中价值和成本的更好管家;另外,优秀的经理也需要了解工程师会在何时陷入“自我陷阱”,避免工程师“过度爱上自己的代码”,从而导致额外的成本和时间延迟。
索尼为 exFAT 的 Linux 驱动提供了 73% 以上的性能改进。另有开箱测试表明 Valve 新发售的 Steam Deck 在存储速度的表现上也令人惊艳。
05 【安全、开源 &其他】开源不易、安全慎行
因无意中把一个 Repo 设为私有,知名开源项目 HTTPie 十余年来积累的 54 万 Star 一夜归零。问题出在 GitHub 推出的“个人主页”功能上,激活此功能需要新建一个与自己 ID 同名的仓库,这个新仓库的 README.md 的内容便会显示在个人首页,但要想自定义 GitHub 组织的主页,需要新建的仓库名称是 name/.github,而不是 name/name。HTTPie 在官方博客中表示 GitHub 给出的提醒也存在一定的误导或者说混淆,从而酿成了这个悲剧;并且当他们向 GitHub 官方提出恢复请求时遭到了拒绝。
Fedora 项目领导人 Matthew Miller 接受采访谈论了 Linux 的流行和开源的重要性。他认为 Linux 和自由开源软件运动并不是理所当然的,其中最值得警惕的一件事是 Chrome 操作系统的流行,Chrome 的上游项目 Chromium 是开源的,但它本身并不是作为一个开源社区项目运行的。他希望真正的开源项目如 Firefox 能重获新生。
国内知名安全专家余弦(@evilcos)及其慢雾团队发布的《区块链黑暗森林自救手册》堪称史上最硬核全面的 Crypto 安全手册。
Check Point 的安全研究员发现了一个允许攻击者控制数百万 Android 设备的高危漏洞,该漏洞存在于 ALAC(Apple Lossless Audio Codec)编解码器中,利用该漏洞可强制解码器执行恶意代码。ALAC 是苹果在 2004 年推出的音频格式,苹果多年来一直维护自己的私有版本,而高通和联发科则使用了一个自 2011 年以来就没再更新过的开源版本。高通和联发科去年就释出了补丁,如果您手中安卓设备的最新补丁是在 2021 年 12 月之后,则该漏洞已修复。
美最高法院判处抓取领英数据合法。这个官司的意义可以媲美“甲骨文诉谷歌 Java 侵权案”。在大数据时代,一些互联网平台积累了大量用户数据,并以此建立自身资源优势:在和其他互联网企业与平台的竞争中,用户数据越多利用得越好,就越容易吸引更多用户,从而处于更有利的地位。这种滚雪球式的效应使得互联网企业往往将用户公共数据视为自己的核心资产,禁止外界爬取。在本案中,法官判定爬取领英公共数据不属于“未经授权访问受保护计算机”行为,并且还禁止领英用技术手段干扰数据爬取工作。一旦“未经授权”概念不适用于公共网站,那么包括 Ticketmaster、Amazon 等在线零售商,乃至 Twitter 等社交网络平台——都将暴露在批量部署的侵入性爬虫程序的面前。(另外需要注意的是中美法律不同,爬取中文网站法律风险更大。)
Kubernetes 1.24 版本发布,该版本有一个重要变化,就是为了提高供应链安全,K8s 将在生产中采用 Sigstore 来签署工件和验证签名,能够为二进制文件、源代码包和容器镜像等自动进行数字签名和检查软件工件,使软件具有更安全的监管链,可以追溯到源头。
06 近期值得关注的会议
07【开源项目推荐】
Framework 笔记本电脑主板项目 - 是一个可 DIY 的笔记本电脑项目。
Textualize – 针对终端(命令行窗口)的面向 Web 的 TUI(Text User Interface)开源框架。
BinAbsInspector - 是腾讯科恩实验室最近开源的二进制文件自动化静态漏洞检测工具。目前国际上较为成功的商业化分析工具有 Coverity、 CodeSonar、 VeraCode等,在开源社区中也涌现出一批知名的二进制分析工具如 angr、BAP、cwe_、checker等。
评论