开源早读课周刊(第 9 期):腾讯的开源稳步推进

这里记录每周值得分享的开源内容,周五发布。

本杂志开源(GitHub: hapiman/weekly),欢迎提交 issue,投稿或推荐你的项目。

封面图:室内大规模无线充电系统。

刊首语

说一说无线充电。

无线充电是未来的趋势,从现今的手机厂商的旗舰机型都支持无线充电可以看出来。

但是,如今的解决方案似乎和我们想象的完全不一样,所谓的无线充电却依然要放到某个设备边缘才能够实现,只不过去掉“插拔”的字眼。

无线充电本应当是无时无刻,身处其中,皆可充电。

那么当前的技术是否能够实现这种诉求呢,如果不能,那么技术的瓶颈又是什么呢?

8 月 30 号,日本东京大学在《自然·电子学》期刊发表了一项研究。

研究人员首次实现了在一个房间里无死角、全覆盖的无线充电效果,充电功率可以达到 50W 左右。房间里的手机、台灯、风扇等,都可以通过远距离无线充电来正常工作,就好像 Wi-Fi 覆盖后就可以无线上网一样。

远距离无线充电技术,有两个比较热门的技术流派。

  • “探照灯”派

其基本原理和我们手机接收信号的实现原理一样,通过在手机里面安装一种类似天线的装置来把电磁波的能量接受下来。

采用这种技术的无线充电器,本质上是一个电池波探照灯,通过随时追踪你手机的位置,来把电磁波束精确的投射到上面,同时还要注意避免照射到有人的区域。因为这种电磁波的能量很高,对于人体健康可能会有风险。

  • “不倒翁”派

其基本原理是在一个比较大的空间内,产生特定频率振动的磁场,然后让被充电的设备和这个频率产生共振来获得电能。

举个例子,就好像桌子上放着一个不倒翁,只要用合适的频率摇动桌面,这个不倒翁就会逐渐剧烈晃动起来,获得你的手传递过去的能量。

这次东京大学的论文就是属于这个“不倒翁”流派。

这种方式有三个优点。

第一、可以实现大范围覆盖,不需要像“探照灯”模式一样,需要随时知道手机的位置。

第二、充电效率比较高,在东京大学这项研究中能够实现 50%以上充电效率。

第三、磁场比电磁波安全。

令人抓狂的是,这种方式也有两个明显的缺点。

第一、需要对房间做比较明显的改造,使用铝板把房间彻底给包裹起来,成本高昂。

第二、对于充电设备的摆放有要求,只有与磁场正交的情况下才能高效充电。

因此目前两种方式都具备硬伤,要想实现真正的无线充电,还需要在电磁学方面有原理性突破才行,期待那一天的早点到来。

论文地址

关于开源实在是有太多的问题了。

开源如何赚钱,开源的运作模式,开源的历史,开源项目如何估值,开源项目如何协作,各个国家开源情况,各个公司的开源,知名项目的开源情况,怎么做好开源,开源对于社会影响等等。

本周刊就聚焦解决这些问题,希望在开源世界贡献力量。

在前期,主要是推荐每周找到的一些精彩的文章,我会尽量少做评论,避免因为自己认知的不到位,误导大家。

OK,下面是本周的开源分享,Enjoy。

开源杂谈

1、关于腾讯的开源:代码传递思想,技术创造回响

说到腾讯的开源,和阿里一样,必须要提到 2019 年。

在 2019 年,腾讯统一了思想,自上而下开始重视了开源在腾讯技术战略中地位,明确了开源对于腾讯的重要意义,最明显的标志就是马化腾公开为开源站台,强调开源的对于腾讯公司,对于行业技术发展的重要性。

“腾讯希望在科研领域投入更多力量,把‘科技向善’纳入公司新的使命与愿景。我们将通过内外部开放源代码等方式,积极参与‘全球科技共同体’的共建。”。

在这之前,腾讯已经在 GitHub 上放出了 82 个项目,覆盖微信、腾讯云、腾讯游戏、腾讯 AI、腾讯安全等相关领域。

在这之后,腾讯的开源进入到了快车道,多个业务线上开源项目接连不断的推出,包括云原生、大数据、AI、微服务治理等,同时踊跃的加入顶级开源基金会,积极赞助,成为级别最高的会员。

至今,“自上而下”与“自下而上”相结合,成了腾讯开源的新思路,在内部协同共建的基础上,推送更底层、更重磅的技术对外开放。

在这儿回顾一下整个腾讯的开源流程。

2010 年,腾讯战略思路发生重大改变,由相对封闭走向了开放合作,提出了 “拥抱开放“的战略,从内部代码的复用开始,内外部开源逐渐结合,形成腾讯自己的代码文化以及开源策略。

2011 年,腾讯在内部提倡以公共组件的形式共享和复用代码。

2012 年,腾讯尝试发布了第一个对外开源项目。

2013 年,腾讯鼓励和推进内、外部开源落地执行。

2014 年,开源变得流程化:制定和发布了腾讯的开源策略和具体流程,并发布第一批的 6 个官方开源项目。

2015 年,腾讯成立腾讯开源联盟(TOSA)后,腾讯开源就进入了快节奏的时代,仅一年时间就开源了 20 个高质量的项目。

2016 年,腾讯开始以 Github 为主要阵地经营开源项目,让更多人能够更快了解到腾讯的开源项目;

2018 年,腾讯调整组织架构,随着腾讯技术委员会和腾讯对外开源管理办公室成立,腾讯加强了与行业顶级开源基金会的合作,逐步形成了有腾讯特色的“自下而上”和“自上而下”相结合的开源路线,提出了开源协同的概念。

2019 年,腾讯在公司层面成立了技术委员会,“开源协同”成为腾讯技术发展的核心战略。通过开源协同,腾讯将各个事业群最底层和共性的技术能力进行梳理和拉通,同时也形成了对于优质项目的甄选机制,不仅在公司层面推广复用,同时对外贡献整个开源社区。

2020 年,腾讯捐赠给 Linux 基金会的开源项目 TARS 成立单独的 TARS 基金会,这是首个起源于中国开源项目的国际开源基金会,是 Linux 基金会下唯一聚焦微服务技术生态的子基金会。

经过十余年的实践和探索,腾讯已经形成了代码开源协同作基础产品社区商业促进步打通内外开源‘双循环’”的开源战略模式。

(1)官方网站,官网上的项目没有更新,似乎腾讯内部对于开源的步调未能达成一致,如果有内部知情人士可以给我讲讲。

(2)腾讯开源项目,希望了解更多的朋友可以看看腾讯开源十年历程

2、开源治理:企业采用开源的激进与保守

很多企业调查都说开源软件占据了他们技术栈,超过 75%的份额,那么这些企业是如何评估、采购、维护的了呢?和过去几十年的专有软件的模式有什么区别?是真的节省了成本,还是增加了开销?管理的难度到底如何?其实答案本身不重要的,重要的是开源,让企业当一件事情的去处理,再也不能无视其存在了。

3、得开发者得天下 ———— 开发者是如何征服世界的

现代的世界是由开发者所塑造,这个论断是否言过其实?取决于你对世界的感受,以及有多大的同理心去感受这个世界!请尝试将自己设身处地的想象为一名普通人在现代世界的生存状态,来体验一下开发者所打造的世界:功利、工程、科学、人性、美学。

4、腾讯云虚拟化资深研发专家李万鹏的 9 年开源之路分享

回望这 9 年在内核世界攀登的过程,李万鹏给自己总结了 12 字真经——“热爱技术、学会欣赏、追求卓越”。

5、Envoy 代理开源五周年,创始人 Matt Klein 亲述开源心路历程及经验教训

他在 Twitter 因为自己的程序 bug 造成重大事故而离职,后加入 Lyft,在开源 Envoy 之前几乎没有贡献和管理开源项目的经验,这篇文章分享了他个人及 Envoy 开源的心路历程,在投身开源 Envoy 还是为雇主 Lyft 效命,该如何抉择?看完本文,相信对于开源项目的维护者、创业者及投资人都会大有收获。

开源项目

笔者比较熟悉 Go 语言技术栈,对于其他的开发语言不甚了解,因此推荐的项目大多与 Go 语言相关,如果你发现比较优秀的项目或者愿意分享自己的项目,欢迎 issue。

1、ent,一个简单而又功能强大的 Go 语言的实体框架,易于构建和维护应用程序与大数据模型。

具备

  • 图就是代码 - 将任何数据库表建模为 Go 对象。
  • 轻松地遍历任何图形 - 可以轻松地运行查询、聚合和遍历任何图形结构。
  • 静态类型和显式 API - 使用代码生成静态类型和显式 API,查询数据更加便捷。
  • 多存储驱动程序 - 支持 MySQL, PostgreSQL, SQLite 和 Gremlin。
  • 可扩展 - 简单地扩展和使用 Go 模板自定义。

2、go-micro,分布式微服务开发框架。

go-micro框架提供了微服务开发最基本的核心功能,包括 RPC 通信和事件驱动通信等,各组件都是可插拔、可替换,便于私人订制。

3、go-zero是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。

使用 go-zero 的好处:

  • 轻松获得支撑千万日活服务的稳定性
  • 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
  • 微服务治理中间件可无缝集成到其它现有框架使用
  • 极简的 API 描述,一键生成各端代码
  • 自动校验客户端请求参数合法性
  • 大量微服务治理和并发工具包

4、httpstat,类似颜色的curl -v,看下图就懂。

5、ants是一个高性能的 goroutine 池,实现了对大规模 goroutine 的调度管理、goroutine 复用,允许使用者在开发并发程序的时候限制 goroutine 数量,复用资源,达到更高效执行任务的效果。

  • 自动调度海量的 goroutines,复用 goroutines
  • 定期清理过期的 goroutines,进一步节省资源
  • 提供了大量有用的接口:任务提交、获取运行中的 goroutine 数量、动态调整 Pool 大小、释放 Pool、重启 Pool
  • 优雅处理 panic,防止程序崩溃
  • 资源复用,极大节省内存使用量;在大规模批量并发任务场景下比原生 goroutine 并发具有更高的性能
  • 非阻塞机制

ants的工作流程图:

开源书籍

1、《计算机简史(第三版)》

这是本周读完的唯一的一本书。

能够从人文的角度来陈述计算机发展史不多,《计算机简史》是其中值得阅读的一本。

该书简明完整、信息全面、引人入胜,描述了影响人类生活的信息革命。

了解历史,才能知道自己的位置,在历史的回顾中,我们才能够立足现在,看到未来科技发展的方向。

订阅

(完)

评论