各位开发者小伙伴:

这里是 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 的本国替代平台 RuTubeVKontakte ,去年又推出俄版 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 近期值得关注的会议

会议名称 会议时间 会议地址 主办方
【免费】2022年中国云计算和大数据技术与应用大会 2022年5月12日 北京新世纪日航饭店 中国电子学会
【收费】第二届中国数据中心建设与运维峰会 2022年6月7-8日 线上会议 ICT-Event
【免费】2022云原生产业大会 2022年6月15日 北京国宾酒店 中国信通院
【免费】2022软件与系统稳定性大会 2022年6月16日 北京国宾酒店 中国信通院
【收费】QCon 2022 北京站 2022年6月22-24日 北京国际会议中心 InfoQ
【收费】LVS 2022 上海站 2022年6月24-25日 上海海神诺富特大酒店 LVS社区

07【开源项目推荐】

开源不易、安全慎行,中国软件如何走向文明?丨RTE 技术环境月报 202205的更多相关文章

  1. Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术

    Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术 Excel催化剂   2019.01.12 14:10* 字数 2948 阅读 41评论 0喜欢 0 编辑文章 在Excel催化剂的几大 ...

  2. OSC2019关于开源的见闻-开源让世界更美好 社会更文明

    一.开源生态报告-红薯-开源中国创始人 1.协作乏力-大厂同样 2.协议许可证使用不当 新许可证-木兰 3.开发者对法律认识完全不够 著作权意识不够 红线意识不够 相关法律法规的熟悉不够 维权及其弱势 ...

  3. Excel催化剂开源第46波-按行列排列多个图形技术要点

    此篇对应功能出自:第10波-快速排列工作表图形对象 - 简书 https://www.jianshu.com/p/eab71f2969a6 在Excel的对象模型中,列的宽度不是一般所期待的和行高一样 ...

  4. 开源项目kcws代码分析--基于深度学习的分词技术

    http://blog.csdn.net/pirage/article/details/53424544 分词原理 本小节内容参考待字闺中的两篇博文: 97.5%准确率的深度学习中文分词(字嵌入+Bi ...

  5. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap

    一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...

  6. 开源GIS简介

    原文 开源GIS C++开源GIS中间件类库: GDAL(栅格)/OGR(矢量)提供了类型丰富的读写支持 GEOS(Geometry Engine Open Source)是基于C++的空间拓扑分析实 ...

  7. 开源社交系统ThinkSNS+ V0.8.0 正式发布(一期功能版本)

    智士软件旗下开源sns社交系统ThinkSNS即将进入10周年,推出并行两代系统ThinkSNSV4和ThinkSNS+,以专业易用的技术源码输出,驱动互联网社交软件建设及创业,使用ThinkSNS改 ...

  8. 开源免费接口管理平台eoLinker AMS开源版 V3.2.0更新,增加批量导出导入接口功能!

    eoLinker是一个免费开源的针对开发人员需求而设计的接口管理工具,通过简单的操作来帮助开发者进行接口文档管理.接口自动化测试.团队协作.数据获取.安全防御监控等功能,降低企业的接口管理成本,提高项 ...

  9. 【开源】接口管理平台eoLinker AMS 开源版3.1.5同步线上版!免费增加大量功能!

    概要:eoLinker是一个免费开源的针对开发人员需求而设计的接口管理工具,通过简单的操作来帮助开发者进行接口文档管理.接口自动化测试.团队协作.数据获取.安全防御监控等功能,降低企业的接口管理成本, ...

  10. NFV产品如何才能走向规模商用

    作者简介:王晔,烽火通信科技股份有限公司ICT网络产品线NFV产品总监,高级工程师,研究方向为SDN\NFV\MEC\AI\光通信. 自2013年AT&T率先提出DOMAIN 2.0网络转型计 ...

随机推荐

  1. python中,元组,列表,字典,字符串的相互转换

    #author:RXS002 #1.字典 dict = {'name':'Zara','age':7,'class':'First'} #字典转换为字符串,返回:<type 'str'> ...

  2. 实验:STM32-ARDUINO-ESP01采用AT指令,通过MQTT连接上ONENET

    1.硬件准备 要求:STM32支持Arduino. 2.程序逻辑结构 3.主流程状态机 4.测试数据抓图 5. 关键程序代码 unsigned char g_ArrTemp[1024]; int AT ...

  3. 【2020NOI.AC省选模拟#7】C. 逃课

    题目链接 原题解: 我们需要找出两个距离不超过$k-1$的位置,使他们的和尽量大. 被修改过得位置比较少,所以我们可以先求出连个位置都没有被修改过的答案,然后只关心那些涉及到至少一个被修改过的位置的方 ...

  4. js判断变量数据类型typeof、instanceof、Object.prototype.toString.call()、 constructor

    JavaScript有4种方法判断变量的类型,分别是typeof.instanceof.Object.prototype.toString.call()(对象原型链判断方法). constructor ...

  5. Windows 10 ~ Jenkins 安装

    首先: jenkins是由java写的,所以在使用之前请安装好JDK(最好安装JDK1.8) 下载jenkins.war包并放到一个自己创建的目录D:\jenkins下:https://mirrors ...

  6. 微信小程序:流程/步骤流/时间轴自定义组件

    效果图: 1.首先在小程序components目录下新建一个名为step的文件夹,再建step组件名.结构如下. 直接上代码 step.wxml <view class="step&q ...

  7. UE5农场项目小功能(1)-砍树

    砍树功能效果的实现 ​ 在UE中想做一个砍树的功能,B站上没找到什么教程,最后在油管上找到个视频并跟着实现了,一共设计到三个蓝图和一个什么也没写的蓝图接口,下面介绍下步骤. 1.角色蓝图的部分 人物这 ...

  8. Windows下安装多个Redis实例

    1.在Redis 目录下复制redis.windows-service.conf文件,建议命名规则redis.windows-service-port.conf,我们以6380端口为例. 2.打开re ...

  9. 12.1linux学习第十二 天

    8.2 Iptables 在早期的Linux系统中,默认使用的是iptables防火墙管理服务来配置防火墙.尽管新型的firewalld防火墙管理服务已经被投入使用多年,但是大量的企业在生产环境中依然 ...

  10. JAVA 在开发中如何选择集合实现类

    先判断存储地类型(一组对象[单列]或者键值对[多列]) 一组对象:Collection接口 允许重复:list 增删多:LinkedList[底层维护了一个双向链表] 改查多;ArratList[底层 ...