开源浪潮下程序员的职业规划和成长

无论从年初开源社发布的《2020 中国开源年度报告》还是整体的大环境,不难看到中国的开源正在崛起,越来越多的来自中国的开源项目和开发者们正在走入大家的视野。在开源浪潮的大趋势下,程序员又该如何规划自己的职业以及个人成长呢?不如听听正在全职做开源的工程师张晋涛怎么说。

本文根据张晋涛在又拍云 Open Talk 技术沙龙北京站主题演讲《开源浪潮下程序员的职业规划和成长》整理而成.

张晋涛,支流科技云原生技术专家,Apache APISIX committer, Kubernetes ingress-nginx reviewer,containerd/Docker/Helm/Kubernetes/KIND 等众多开源项目 contributor,对 Docker 和 Kubernetes 等容器化技术有大量实践和深入源码的研究,著有 《Kubernetes 上手实践》和 《Docker 核心知识必知必会》等专栏。

大家好,今天我分享的主题是《开源浪潮下程序员的职业规划和成长》。今天在这里聊两个项目,一个是 Apache APISIX,APISIX 是 Apache 基金会旗下的顶级开源项目。第二个项目是 ingress-nginx,它是 Kubernetes 整个生态圈里头,除去 Kubernetes 自身以外使用频率最高的软件之一了。搞过 Kubernetes 的同学应该基本上都用过这个项目。

今天我分享的内容主要从四个方面来聊:

  • 开源的文化

  • 如何参与开源

  • 关于我的故事

  • 职业规划相关的内容

了解开源文化

自由软件运动

提到开源文化,首先需要了解自由软件运动。

图右是被称为自由软件之父的斯托曼,他在 1983 年提出了 GNU 计划。1984 年,斯托曼提出了 Copyleft 的概念,Copyleft 跟我们平时用到的版权 Copyright 是相对应的,它放弃了 Copyright 类似对版权的严格限制。

1985 年,斯托曼成立了自由软件基金会,目的是为了能够让自由软件更好地发展。在当时,很多软件都是专有软件或者商用软件,任何人使用这些软件都是需要付费的。斯托曼认为随着计算机的发展,如果商用软件、付费软件掌握在极少数公司的情况下,那么我们将会逐步失去自由。因为很多商业软件或者专用软件都是由商业公司,或者是极少数的人掌握着,如果你依赖这些软件,都必须依赖于其他人,你的命脉就掌握在了他们手中,就不可能获得自由。

1989 年,出现了第一个 GNU 的通用协议,叫做 GPL。

接下来,我们来看下在自由软件运动之后发生了什么事情。想必大家都接触过 Linux 操作系统。Linux 操作系统的创始人是林纳斯·托瓦兹,他在 1991 年首次发布了 Linux 操作系统,并且选择了将它的源代码直接发布到网络上,供其他人去使用和分享。

在这个时候,斯托曼找到了林纳斯。GNU 自由软件基金会的主要目标是希望能够创建出所有人都可以使用的基础软件,包括操作系统。直到 1991 年 Linux 操作系统发布的时候,GNU 自由软件基金会已经完成了所有基础类的自由软件开发,但是它没完成最核心的操作系统的开发。所以,斯托曼找上了林纳斯。结果我们都知道,Linux 操作系统的完整名字是 GNU/Linux。

开源协作与文化

聊完自由软件运动、Linux 操作系统,来看下我们现在所接触到的开源协作和开源文化。

开放

在开源协作中,基本的理念就是开放。但很多人可能对此有误解,认为开放源代码就等于开放,其实不然。源代码的开放和真正的开放并不一样。举个简单的例子:MongoDB。

MongoDB 是一个文档类型的数据库。近几年,MongoDB 修改了一次协议 SSPL,称之为服务端公共许可证,协议更改之后有什么变化呢?它的协议规定任何一个云厂商,如果在云服务上使用了 MongoDB,就必须把在 MongoDB 之上所做的更改,包括管控端的源代码都开源出来。

大家想一下这个事情可能吗?

其实不可能,任何一个云厂商,它对所有基础软件,或者所有开源软件的变更,都是它的核心,是它的命脉。所以说,MongoDB 这一次修改其实是带有针对性的,它针对的是这些云厂商。在开源软件的基本协定之下,这其实属于不开放的协议。

再有就是前段时间,Elasticsearch 也宣布其使用 SSPL,这导致 AWS 基于之前 Apache 协议的代码直接 fork 了一个版本,并称之为 OpenSearch 。这也是对这种不开放的行为的一种应对方式。

协同

开源文化当中提到另外一点,就是协作。Linux 操作系统为什么能够获得成功?因为 1991 年的时候林纳斯发布了第一个 Linux 的版本,把源代码直接公开到了互联网上,其他人可以直接下载源代码,并且对这些源代码进行修改。

在 1991 年,林纳斯发布完 Linux 第一个可供下载和使用的版本时,其实自由软件基金会旗下还有其他人也在写给 GNU 使用的内核,只是没有 Linux 的完成度高。

为什么它没有发展起来呢?因为它是由固定的几个人在做这个事情,且仅有那么几个人,只有它真正对外公开发布了一个版本,外界才会了解到。这里就不得不提到一种思想,那就是大教堂与集市。这是一个什么概念呢?

可以这样理解,传统的软件开发过程像大家在修建一个大教堂一样,只有极少数的精英工匠参与其中。而开源软件提倡的开放和协同,主要指将软件当成一个大集市,每个人都是自由的,大家都可以互相协作,每个人贡献自己的一份力量。有专门一本书,来阐述这些理念,就叫做《大教堂与集市》,感兴趣可以看看。

开源软件

聊完开源理念,我们最后来说说开源软件。

开源软件的前提是开放源代码,这是必不可少的。另外,其实每个开源软件都是有开源许可证的,刚才我们聊 MongoDB 的时候也提到了,它的许可证是不被认可的。开源软件核心价值观就是不歧视、中立、开放。

目前国内开源生态整体向好,有很多进入开源软件基金会的项目,无论是进入 Apache 软件基金会,还是 CNCF,亦或 Linux 的基金会。其中有很多的项目例如 ApacheAPISIX 就是 Apache 基金会旗下的顶级开源项目,通过 Apache-2.0 License 进行分发,这是一种非常开放且友好的协议。

如何参与开源

很多人对于参与开源有一些误解。有些人认为,我在使用一个开源软件,并且在它的 GitHub 上面提交了 issue,提交了 pull request 之类的,认为就是在参与开源项目了。还有一些人认为,我写了一个软件或者程序,我把它放在 GitHub 上面,代码是公开的,认为自己在做开源了。其实不然(尽管我们也认可为开源项目所做的贡献)。

做开源的前提是基于你对开源文化的认同。

开源文化的最主要是平等、中立、开放、一致、文档优先。一致是什么意思呢?意味着你的软件在这个环境和在另外一个环境当中产生的结果是一样的。

那么如何选择一个开源项目呢?

从我个人角度来讲,首先一定是兴趣使然的。 我不会选择一个自己并不太感兴趣的项目去参与。因为这样子是不可持续的。也有很多人问过我,参与开源你能收获什么?为什么你愿意花费那么多的时间和精力在这个事情上面?在参与开源项目的前期,或者很长的一段时间,其实没有任何收获,尤其是物质上的收获一点都没有。所以这也是我为什么提了一定是要自己感兴趣的。

其次,持续投入非常重要。 在一个开源项目中,如果你只是想起来了参与一下,而不是持续地投入,也不会有较高的价值产生。

**最后,应该选择一个比较活跃的社区。**如果项目的社区已经非常的不活跃,你参与到这个项目当中就很难。比如你提交 issue,提交 pull request,很少有人会给你对应的回复。

这里我选取了三个项目做对比,ApacheAPISIX、Kong 和 tyk。目前可以看到活跃度最高的是 Apache APISIX,每天都有很多的开发者会参与到 Apache APISIX 的社区中,帮助别人解答问题,或者为 Apache APISIX 提交 PR 等,大家彼此都会在这么活跃的社区中成长和收获。

开源协作的中立也是一种很重要的价值观。 无论你是提交代码,或者回复别人的 issue,这些我认为是其次的。最重要的是应该基于平等、尊重、中立的心态去参与到项目当中。

我现在主要参与的是 Apache APISIX 当中的一个子项目 APISIX ingress,还有一个是 Kubernetes ingress-nginx。这两个项目都是 Kubernetes controller 的项目,做的事情是类似的,但是参与开源项目过程中,我始终保持着中立的态度,而不会因为我在支流科技就大力发展 APISIX ingress 项目,限制 ingress-nginx 项目的发展,这是不存在的。所以心态很重要,只有保持中立的心态才能持续地参与到开源项目当中。

聊聊我的故事

我的职业路径

接下来聊一下我发展的过程和职业规划上的选择。

我的第一份工作 title 是 Web 开发工程师,主要是在做后端开发,也会兼顾一部分的前端开发工作,以及运维及 DBA 的任务。第二份工作是在做运维开发,会涉及一部分的运维工作,主业也还是在做开发。再后来就是做容器化的开发,现在我是支流科技的技术专家,做的事情主要是做开源基础软件。这些年前端、后端、运维、数据库、中间件,基础软件,容器化技术基本都有涉及到,这是我的职业整体路线。

很多人问过我这样的问题,特别是在跟 HR 沟通的时候。他们会问我,你为什么从 Web 开发做了运维开发,这是第一个时间点。第二个时间点,为什么从运维开发,到做基础软件以及全职做开源的事情。

我做 Web 开发,大概是七八年前,那个时候像服务器通常是 32G 或者 64G 的内存。但是现在,我的笔记本已经是 32G 的内存了,可以想象当时硬件资源是比较紧张的。在实际做后端开发中,当业务量上来的时候,我们会去做很多性能优化相关的工作。

那个时候,我们会花很多的时间去做优化,现在遇到性能的问题可能很简单,加一台机器扩容一下就搞定了。但在那个时候大家的第一想法就是做性能优化,怎么样可以充分地压榨资源,这是我们当时做的事情。在这个过程当中,偏底层的事情我做得更多些。

在 2014 年,我开始接触 Docker。2013 年Docker 首次开源,我在国内算是比较早一批接触到 Docker 的。我很喜欢这些底层的技术,包括容器化的技术。在职业选择的时候,我就从 Web 开发转向了运维开发。做运维开发的时候,前期是做运维平台化的开发,运维平台化、运维自动化、包括 GitOps 和ChatOps 等等。

随着 Kubernetes 在容器化编排技术争夺战中成为了王者。很多公司开始做容器化改造,我们也选择了 Kubernetes 做自己的容器平台。这个时候,由于我在容器化技术这方面,积淀相对比较多一些,自然也就承担了相关的工作内容。

再后来工作的选择,因为我想要更多的自由,也想更倾向于自己的兴趣,而在公司做项目的话,确实不够自由,所以我现在的工作是全职做开源,我可以在任何一个我喜欢工作的时间,或者想要工作的时间去工作。

有一些人评价我说,我是把我的兴趣做成了我的工作。 其实是的,即使没有这份工作,我也会持续地去做开源。工作时间做开源,闲暇的时间也在做开源,这个本身来讲也没有什么界限。这是我目前的现状,自由、全职做开源的工程师。

职业规划

接下来,我们来看一下职业规划。大家可能对于我到底是什么样的情况并不关心,更应该想知道在开源的场景里如何做职业规划。

我现在一方面是做开源相关的工作,再有一方面,也在做自媒体。我认为做职业规划最重要的一点是基于自己的兴趣。 一天一共就 24 小时,除去睡觉的时间,剩下的几个小时如果做的是自己不感兴趣的工作,一直处于不开心的状态,那真是太惨了。所以一定要选择自己喜欢的、感兴趣的工作,这是第一点。

第二点就是核心竞争力。 既然是程序员,无论是前端、后端、运维,还是其他开发,自身的技术实力才是核心竞争力。现在有个词很流行,那就是“内卷”,为什么内卷会让人产生焦虑感呢?焦虑到底是怎么来的?

我是这么理解的,焦虑就是别人在学,我不学,我可能会很焦虑;别人会,我不会,我也会焦虑;别人知道,我不知道,那更焦虑;还有就是别人在聊这些,我听的一脸懵逼,这些都是焦虑的产生原因。

那如何应对这个问题呢?那就是提升你的核心竞争力。首先选一个自己最感兴趣的方向,提升自己的技术深度,这样才能持续地提升自己的核心竞争力。技术深度就跟海面上的冰山差不多,海面上你可以看到的只有那么一小点,但在海面之下还有很多很多。

技术的深度是无限的,当你把技术深度提升到一定程度之后,你会发现好像我不知道的东西越来越多,这是一个技术人常常会有的感觉。如果你很长时间没有这种感觉了,认为好像所有的东西我都知道,所有面临的问题我都能解决。这个情况我认为,你可能需要去参与一些开源项目,或者出去跟别人交流一下,或者换一份工作,开阔一下自己的眼界。当你的技术深度到了一定程度,例如能 cover 住面临的绝大多数问题时,我建议你在这个时候尽量提升一下自己的技术广度。

第三点我要说的是价值。 价值这个概念非常宽泛,在做工作中最直观体现价值的,那就是薪资。当然,薪资只是一方面,另一方面在于你能够收获到什么。

我们回到刚才第一点,也就是工作开不开心的事情。如果说你的工作薪资是令人满意的,同时你又能收获一些开心,那就赚到了。因为公司本来给你提供的,是一种雇佣关系,他给到你的本质上来讲只有你的薪资。而你做这份工作的同时,收获了一些乐趣,其实也就是赚到了。收获开心,这是我要提到价值当中的第一点。

此外,在工作的过程当中,你肯定不是一个人在独自战斗,你也会收获到一些伙伴,这是第二点。

第三点,在这份工作当中,你还实现自己价值的提升。这些价值可以理解为心理学当中或者社会学当中提到的认可,当你获得别人或者社会的一些认可。 这也是价值的一部分。

程序员的副业

最后我们来聊聊程序员的副业,这个事情也许大家会比较感兴趣一些。在谈到副业的时候,你要先评估一下自己能做什么,量力而行在任何情况下都是比较正确的。承认自己在某些方面不擅长,或者某些方面不太懂这个事情其实没有什么的,如果强行做不擅长的事情,可能得到的结果并不太好。

我来聊一下我自己个人做的一些东西。我之前写了一个专栏,叫 《Kubernetes 上手实践》。后来又写了一个专栏,叫做 《Docker 核心知识必会》。我自己在这方面相对来说积累比较多一点,这里就不多说了,说多了就变成广告了(笑),不过你可以关注下我的公众号:MoeLove ,我会跟你分享一些有价值的技术和内容。

很多人可能会问我能做什么?我认为其实还是有很多的事情可以做,具体肯定看个人的选择。做副业能为自己带来最直观的,大家可能认为是金钱收益。但实际上如果你把耗费的时间精力折算一下,可能会发现这个事情收益很少。陪陪家人、跟爱人约个会,出去玩一趟,可能能收获的更多。现在整体来说就是两种选择,一是用时间换钱,另一种是用钱换时间。很多事情如果年轻的时候错过了还是会很遗憾的。所以还是要建议大家根据自己的情况衡量一下。

以上是今天的全部分享内容,来简单总结下:第一部分聊了平等、中立、自由的开源文化;接着谈了如何参与开源,心态一定要摆正,同时要基于自己个人的兴趣;最后聊到一些个人成长,还是建议大家应根据自己的实际情况,合理地规划一下自己的的职业生涯,谢谢大家。

相关推荐

3 分钟了解 NVIDIA 新出的 H200

英伟达在 2023 年全球超算大会上发布了备受瞩目的新一代 AI 芯片——H200 Tensor Core GPU。相较于上一代产品 H100,H200 在性能上实现了近一倍的提升,内存容量翻倍,带宽也显著增加……

github_36774378的博客 2380

深入了解浮点运算——CPU 和 GPU 算力是如何计算的

算力最基本的计量单位是 FLOPS,英文 Floating-point Operations Per Second,即每秒执行的浮点运算次数。浮点运算其实就是带小数的加减乘除运算。

github_36774378的博客 5104

加速计算,为何会成为 AI 时代的计算力“新宠”

加速计算是指使用专用硬件来执行某些类型的计算,其效率要比仅使用通用中央处理器(CPU)高。利用图形处理单元(GPU)、专用集成电路(ASIC)(包括张量处理单元(TPU))和现场可编程逻辑门阵列(FPGA)等设备的强大功能,以更高的速度执行计算,从而加速计算过程,一般我们也将这些设备称之为加速器。这些加速器尤其适用于可被分解为较小并行任务的项目,如高性能计算 (HPC)、深度学习、机器学习、人工智能和大数据分析。通过将指定类型的工作分派到这些专用加速计算硬件上,大大提高了系统的性能和效率。

github_36774378的博客 1072

NVIDIA RTX4090,你能用它做什么?

如果女生选择给男生送礼,我相信一块 RTX4090 就足以让他高兴得死去活来。RTX4090 到底是何方神圣?它凭什么赢得所有男生的“芳心”?

github_36774378的博客 2353

3 分钟看完 NVIDIA GPU 架构及演进

近期随着 AI 市场的爆发式增长,作为 AI 背后技术的核心之一 GPU(图形处理器)的价格也水涨船高。GPU 在人工智能中发挥着巨大的重要,特别是在计算和数据处理方面。目前生产 GPU 主流厂商其实并不多,主要就是 NVIDIA、AMD、Intel、高通等厂家。本文将主要聊聊 NVIDIA GPU 的核心架构及架构演进。

github_36774378的博客 1983

聊聊 GPU 产品选型那些事

随着人工智能的飞速崛起,随之而来的是算力需求的指数级增加,CPU 已经不足以满足深度学习、大模型计算等场景的海量数据处理需求。GPU 作为一种强大的计算工具,无论是高性能计算、图形渲染还是机器学习领域,在各个领域展现出了巨大的潜力和应用前景。说起 GPU,绕不过的当然是 NVIDIA 这个公司了,现在市面上火热的 A100/A800、H100 等 GPU 全是他家的产品。但当你有业务需求或者个人需求,想要采购 GPU 的时候,你会发现各个型号的 GPU 令你眼花缭乱。

github_36774378的博客 985

巅峰对决:英伟达 V100、A100/800、H100/800 GPU 对比

近期,不论是国外的 ChatGPT,还是国内诸多的大模型,让 AIGC 的市场一片爆火。而在 AIGC 的种种智能表现背后,均来自于堪称天文数字的算力支持。以 ChatGPT 为例,据微软高管透露,为 ChatGPT 提供算力支持的 AI 超级计算机,是微软在 2019 年投资 10 亿美元建造一台大型顶尖超级计算机,配备了数万个 NVIDIA A100 GPU,还配备了 60 多个数据中心总共部署了几十万个 NVIDIA GPU 辅助。

github_36774378的博客 1万+

InfiniBand 的前世今生

今年,以 ChatGPT 为代表的 AI 大模型强势崛起,而 ChatGPT 所使用的网络,正是 InfiniBand,这也让 InfiniBand 大火了起来。那么,到底什么是 InfiniBand 呢?下面,我们就来带你深入了解 InfiniBand。

github_36774378的博客 865

揭秘神秘的字符串匹配工具——正则表达式

每个正则表达式都有一个有限自动机(也称为状态机),它接受表达式指定的语言,并使用 Thompson 构造算法将正则表达式转化为一个与之等价的非确定有限状态自动机(NFA)。同时,对于每个有限自动机来说,还有一个描述该自动机所接受语言的正则表达式。该表达式可以通过克莱恩算法或高斯消元法生成。正则表达式的一个著名应用是文本编辑器中的搜索和替换功能,计算机先驱 Ken Thompson( UNIX 操作系统的开发者之一)首先在 20 世纪 60 年代的面向行编辑器 QED 中实现了该功能。

github_36774378的博客 382

深入了解 GPU 互联技术——NVLINK

随着人工智能和图形处理需求的不断增长,多 GPU 并行计算已成为一种趋势。对于多 GPU 系统而言,一个关键的挑战是如何实现 GPU 之间的高速数据传输和协同工作。然而,传统的 PCIe 总线由于带宽限制和延迟问题,已无法满足 GPU 之间通信的需求。为了解决这个问题,NVIDIA 于 2018 年推出了 NVLINK,以提高 GPU 之间的通信效率。

github_36774378的博客 3874

各快 100 倍?4G、5G、6G 相差这么多吗

二狗子今天晚上有点 emo,为什么呢?原来是二狗子心心念很久的一个手游上线了,二狗子兴冲冲地下载了 40 多分钟,终于下载完了游戏。结果打开游戏一看,发现游戏内部的更新写着预计 30 分钟完成更新。这就把二狗子搞得 emo 了。二狗子突然发现自己的室友已经在这款游戏的新手村大杀四方了。“你怎么这么快?”二狗子问。“我用手机流量下载的,5G,当然快。”室友都没看二狗子一眼,沉浸在自己的游戏世界里。5G 真的有这么快吗?好学的二狗子就让游戏保持着后台更新,在网上冲浪学习下知识充实自己。

github_36774378的博客 468

为什么大家都在用 WebP?

WebP 是谷歌在 2010 年提出的一种新型的图片格式,放到现在来讲,已经不算是“新”技术了,毕竟已经有了更新的 JPEG XL 和 AVIF。但是在日常工作中,大家时常会碰到保存下来的图片的后缀是 .webp。那么 WebP 到底有什么魔力,让越来越多的网站“抛弃”常用的 PNG、JPG 而青睐它呢?

github_36774378的博客 958

从驾考科目二到自动驾驶,聊聊 GPU 为什么对自动驾驶很重要

这些数据包含前车和本车的距离,左右两边的道路指示标志,周围汽车的距离,前方道路指示标志,红绿灯信号,马路边行人,非机动车等信息等,大量的图像和视频信息被转换成电脑能处理的二进制信息,这就需要 CPU 和 GPU 的共同加持才能完成安全稳定的自动驾驶工作。

github_36774378的博客 361

聊透 GPU 通信技术——GPU Direct、NVLink、RDMA

AI 技术对算力的需求是非常庞大的,虽然 GPU 的计算能力在持续提升,但是对于 AI 来说,单卡的计算能力就算再强,也是有极限的,这就需要多 GPU 组合。而 GPU 多卡的组合,主要分为单个服务器多张 GPU 卡和多个服务器,每个服务器多张卡这两种情况,无论是单机多卡还是多机多卡,GPU 之间需要有超强的通信支持。

github_36774378的博客 2569

这个 AI 机器人会怼人,它是怎么做到的?

人工智能可以定义为计算机科学的一个分支,其目标是创造与人类智力相当的技术。但智力到底是什么?如何利用技术来复制智力?这个疑问并不存在单一的理解,目前已经有了许多理论和方法来回答这些问题。人工智能的实现方式主要有两种:一种是基于规则的人工智能,通过预先编写的规则和逻辑来实现特定的任务;另一种是基于机器学习的人工智能,通过让计算机从数据中学习和优化算法,来实现特定的任务。

github_36774378的博客 717

如何评估计算机的算力:从 CPU 到 GPU 的演变

这就是 CPU 和 GPU 在计算能力上的区别,这是由它们的架构决定的,CPU 可以执行任何程序,而 GPU转为多任务而生,并发能力强。当然,上面的两张图并不是说 GPU 比 CPU 厉害,事实上,CPU 和 GPU 各自具有不同的特点和优势,选择哪种设备取决于具体的应用场景和需求。其中,CPU(中央处理器)和 GPU(图形处理器)是计算机中最为核心的两个组件,它们的算力和性能对于计算机的整体性能具有决定性的影响。CPU 是计算机的核心组件之一,它的主要功能是执行指令、控制计算机的运行和处理数据等任务。

github_36774378的博客 2390

浅谈 Linux 下 vim 的使用

底线模式的进入方法为:在命令模式下按":“键,Vim 窗口的左下方会出现一个”:"符号,这时就可以输入相关的指令进行操作了。在此模式下可以使用上、下、左、右键或者k、j、h、l键进行光标的移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。当编辑完成,就可以按 Esc 退出插入模式,进入到命令模式。p : 黏贴,此命令是在命令模式下,按照上面的命令复制后,然后光标移动到想要复制的位置,然后按 p 黏贴。直接到某行:在底线模式下直接输入数字就可以到想到的行,如果输入的数字比文档的行数多就会到最后一行。

github_36774378的博客 1311

如何高效实现 MySQL 与 elasticsearch 的数据同步

MySQL 自身简单、高效、可靠,是又拍云内部使用最广泛的数据库。但是当数据量达到一定程度的时候,对整个 MySQL 的操作会变得非常迟缓。而公司内部 robin/logs 表的数据量已经达到 800w,后续又有全文检索的需求。这个需求直接在 MySQL 上实施是难以做到的。

github_36774378的博客 724

国密证书 VS 传统 SSL 证书,到底区别在哪?

国密算法,即国家商用密码算法。是我国自主研发创新的一套数据加密处理系列算法。从 SM1-SM4 分别实现了对称、非对称、摘要等算法功能。尤其适用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能。

github_36774378的博客 1310

又拍云邵海杨 - 25年Linux老兵,聊聊运维的“术”与“道”

邵海杨,从1998年开始使用Linux至今快25年了,资深Linux系统运维/架构师,DevOps八荣八耻倡导者,喜欢交流分享,活跃于社区,一直积极投身于开源活动的组织和传播。

github_36774378的博客 745

从 AI 绘画到 ChatGPT,聊聊生成式 AI

无论是 AI 绘画,还是现在风靡全球的 ChatGPT,它们都属于 AI 的一个分支——生成式AI(Generative AI)。相较于传统的 AI 模型,生成式 AI 是一种特定类型的 AI,它专注于创建新内容。

github_36774378的博客 5755

从 B 站出发,用 Chrome devTools performance 分析页面如何渲染

页面是如何渲染的?从 Chrome 的性能工具开始,具体看看一个页面是如何进行渲染的,以及进行页面优化时需要关注哪些指标。

github_36774378的博客 1136

【白话科普】聊聊网络架构变革的关键——SDN

SDN 即软件定义网络,它描述了一种网络架构,可以使用软件对单个硬件组件进行集中、智能的管理和控制,使用 OpenFlow 等开放协议允许访问网络设备,如交换机、路由器或防火墙等。

github_36774378的博客 1838

二狗子翻车了,只因上了这个网站……

通过 fetch API 或 XMLHttpRequest 等方式发起的 HTTP 请求,必须要遵守同源策略 ,那什么是同源策略呢?为什么这个策略会导致我们的信息在浏览器上被盗用。

github_36774378的博客 659

一文读懂 Kubernetes 存储设计

在 Docker 的设计中,容器内的文件是临时存放的,通过在 docker run 启动容器时,使用 --volume/-v 参数来指定挂载卷,将容器内部的路径挂载到主机,来保证即便容器被删除,保存到主机路径中的数据也仍然存在。

github_36774378的博客 545

从实战出发,聊聊缓存数据库一致性

在云服务中,缓存是极其重要的一点。所谓缓存,其实是一个高速数据存储层。本文主要介绍更新数据库成功后,更新缓存和删除缓存这两个操作的区别和改进方案。

github_36774378的博客 584

当谈论 React hook,我们究竟说的是什么?

React hook是什么,所谓 React hook,就是增强函数组件能力特性的钩子,把不同的特性「钩」进纯函数。React hook 的由来,其实也可以看作是前端技术不断演进的结果。

github_36774378的博客 589

视频网站节约 30% 成本的秘密在这里

今年,爱奇艺宣布2022年第一季度首次实现季度盈利,长视频行业发展十几年来,一直深陷亏损旋涡。爱奇艺的首次实现季度盈利,也意味着降本增效将成为视频平台的发展方向。

github_36774378的博客 965

【白话科普】从“熊猫烧香”聊聊计算机病毒

到底什么是计算机病毒呢?它是什么途径传播的,又会带来哪些危害,我们又该如何在日常使用电脑中防止感染病毒呢?

github_36774378的博客 1642

【实操日记】使用 PyQt5 设计下载远程服务器日志文件程序

PyQt5 是一套 Python 绑定 Digia Qt5 应用的框架,是最强大的 GUI 库之一,使用 PyQt5 我们能够很容易的开发桌面应用,我们如何用 PyQt5 设计一个下载服务器指定日期日志文件的程序。

github_36774378的博客 1117
上一篇: 非VIP用户下载限速,原来是这么实现的
下一篇: 灵魂画手:漫画图解 SSH
又拍云 UPYUN
又拍云 UPYUN 又拍云官方账号 又拍云官方账号
博客等级 码龄10年 153粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值