当前位置: 首页 > news >正文

晋城做网站公司/搜索引擎营销是什么

晋城做网站公司,搜索引擎营销是什么,如何做企业官网,建设银行亚洲官方网站作者:孙健波、曾庆国 点击查看:「开源人说」第五期《KubeVela:一场向应用交付标准的冲锋》 2023 年 2 月,**KubeVela [ 1] ** 经过全体 ToC 投票成功进入 CNCF Incubation,是云原生领域首个晋级孵化的面向应用的交付…

作者:孙健波、曾庆国

点击查看:「开源人说」第五期《KubeVela:一场向应用交付标准的冲锋》

2023 年 2 月,**KubeVela [ 1] ** 经过全体 ToC 投票成功进入 CNCF Incubation,是云原生领域首个晋级孵化的面向应用的交付和管理平台。KubeVela 背后的核心理念是 2019 年阿里云和微软联合发布的开放应用模型(OAM),演变至今,KubeVela 通过其可编程可扩展的架构、良好的用户体验,以及大量的生态核心能力,帮助了钉钉、招商银行、理想汽车、移动云、百度等数百家企业构建其云原生应用平台,大大降低了云原生技术的使用门槛。

KubeVela 本身也有别于“大厂开源”的惯性模式,它从第一天起就遵循“社区发起、开放治理、国际化运作”的原则,核心理念之一就是“始终以业界的最广泛和最真实场景作为项目演进的指南针”,所以发展路径中一直在倾听社区的声音,以最普遍、最共性的需求为最高优先级。因此,我们也有幸经历了一个项目从社区发起到用户群体壮大的全过程。从技术迭代、完善功能,到社区运营、开源治理,再到打磨产品、建立生态,我们克服了诸多困难,这或许是开源项目都会遇到的挑战。

今天,我们将做一个完整的回顾,梳理项目演进过程中的那些“坑”,希望对整个开源生态的发展有所帮助。

项目发起:明确目标和定位

一个开源项目的发起,其最核心的是明确项目的目标和定位。 OAM/KubeVela 诞生之初的 2018-2019 年,当时我们判断:随着云原生技术逐渐统一基础设施和工作负载层面的抽象,如何进一步简化和标准化应用交付与管理层面的操作和功能,会成为接下来一个非常自然的演化方向,也会成为市场的下一个焦点。这里面我们主要考虑了四个方面:

  • 受众

大多数开发者,也就是最终业务应用的开发者,他们日常关心的是应用开发和部署,而不是计算存储网络,这意味着应用层的大幅简化和标准化一定会成为强需求。

  • 定位和空间

Kubernetes 非常明确的要把它的抽象层次停留在基础设施层,这为应用层的进一步创新和工作提供了足够的空间和支撑。

  • 行业格局

在 Kubernetes 逐渐成为事实标准的背景下,大多数技术(比如 OpenShift)依然在做局限的封装,而原生的工具(如 helm、kustomize)又过于简单。这样既不满足云上用户碎片化、多样化的使用诉求,也无法打造用户友好的使用体验。

  • 技术储备

CRD Operator, Terraform 等 IaC 技术的逐步普及提供了一个快速交付可编程、模块化的应用管理抽象,而基于 Kubernetes,一个独立的应用管理和交付系统可以非常专注于该层本身,而无需关注基础设施层的问题。

基于以上趋势的判断,阿里开始在 2019 年逐步布局应用交付与管理领域,提出了一系列先导性探索和实践,包括 **Helm/Kustomzie 应用管理、多集群应用交付 [ 2] **等。最终确定将“让软件交付在当今流行的混合、多云环境中变得更加简单、高效、可靠”作为我们的核心目标和愿景,将“一个与基础设施无关的、用户友好但又灵活可扩展的应用交付抽象”作为我们的核心交付物,这个应用交付抽象就是今天的 OAM spec,而随后出现的 KubeVela 则是这一层抽象的具体实现。

在这里插入图片描述

图 1:KubeVela 是什么?

明确的目标和定位不仅支撑了 KubeVela 开源团队以及大量社区贡献者可以在相对松散的模式下长期协作,还帮助团队从大量杂乱的需求中解放出来,专注在最核心的问题域中。 比如 KubeVela 不会触及工作负载本身,用户可以选择集成 Kubernetes 原生的 Deployment,或者自己扩展 CRD Operator,又或者选择 OpenKruise 这样的工作负载管理工具。同时团队专注于项目的集成能力和扩展性,比如我们投入了足够的精力去做 Kubernetes API 的编排,任意的 Kubernetes 资源都可以在 KubeVela 体系中组合、拆分、查看状态、传递参数,这一特性使得 KubeVela 早期快速的打出了自己的市场定位,并且获得了像第四范式这样的早期用户。

早期演进:明确要坚守的核心技术原则

开源项目的早期通常是沿着最初设定的目标去补齐核心功能,在此之前我们可能需要回答一个问题:“为了让我们的开源项目与众不同,我们该遵循怎样的设计原则?

KubeVela 项目的第一个年头是核心技术功能初步形成的阶段,设计之初我们给项目定下的关键原则是:

  • Kubernetes 原生

OAM 应用模型不局限于 Kubernetes 生态,但是我们选择将 KubeVela 控制平面通过 Kubernetes 的插件(CRD)模式实现。一方面它充分利用了 Kubernetes 声明式 API 面向终态的设计理念,为用户带去易用性和确定性,方便用户安装和使用。

另一方面它也帮助我们利用 Kubernetes 的 API 生态,快速实现了诸如 Helm 交付、弹性扩缩容、服务网关、灰度发布等应用所需的核心能力,而 KubeVela 团队随后发布的 **Terraform Controller 项目 [ 3] **也证明了基于 Kubernetes 控制平面衔接云能力的可行性。

  • 可扩展

KubeVela 基于 OAM 模型提供用户友好的上层抽象,但这些抽象可以随时扩展以满足用户的各种需求。这给技术实现带来了很大的挑战,但这也是一个非常重要的创新,它避免了 KubeVela 项目成为一个只能解决“最小公分母”问题的“鸡肋”项目

  • 可编程

在众多的可扩展性设计中,KubeVela 最终选择了 Infra as Code(IaC) 的可编程扩展方式。因为这种扩展方式不仅简单易用,还可以方便的模块化和插件化。这个选择不仅提供了扩展 KubeVela 的最佳方案,还为后来的插件市场等生态能力打下了基础。

围绕着这些原则,项目选择基于 **CUE 配置语言 [ 4] **来作为动态编程能力的基石,KubeVela 1.0 及早期版本给出了一个非常灵活的 OAM 实现。但项目的演进也使得 KubeVela 及 OAM 模型与早期发布的版本形成了较为明显的差异,这里形成了一个不小的挑战,即“开源项目的兼容性如何保证”。

在这里插入图片描述

图 2:KubeVela 可编程可扩展的模块化设计?

持续迭代:保持开源项目的兼容性

KubeVela 基本上就是在 OAM 社区的众多用户呼声下诞生的,那些早期参与贡献的工程师们,他们其实也同时是公司里面积极推进 OAM 落地的平台构建者,他们不仅提供了大量的建议和代码贡献,还通过自身的实际场景帮助社区做验证。我们知道一个新技术的推广,很重要的一点是在解决原有问题的同时,尽可能降低采纳的成本,也就是不引入新的问题。 所以当 KubeVela 发布的第一个版本的时候,我们的早期采纳者他们更多的是在做一个自身 OAM 实践的升级,而不是使用一个全新的系统。同样地,在后续的项目迭代过程中,对兼容性的考量一直都放在首要的位置。

当 KubeVela 项目的第一阶段功能实现完成,并被开源社区逐步采用的过程中。根据大量的用户反馈和调研,我们发现,除了基础的工作负载和运维需求之外,用户还会有诸如多集群高可用、资源共享、资源回收等应用管理策略的需求,而看似非常碎片化和复杂的各类应用交付场景,其背后确实存在一个非常本质的模型,那就是“工作流”。我们很快就开始同时演进 OAM 模型本身,并且在 KubeVela 实现了一个非常轻量级的工作流引擎。而“工作流”这个特性本身就又与 Kubernetes 和 GitOps 生态天然互补,KubeVela 的工作流步骤可以任意扩展,而声明式 API 面向终态的语义也可以很好的描述工作流的状态机,这使得 KubeVela 的工作流几乎可以满足任何交付场景的需要,所以这个创新后来也成为了 KubeVela 被大量采用的“杀手锏”。

在这里插入图片描述

图 3:KubeVela 1.0 发布后始终保持功能以及模型层面的兼容性

当然这也会为技术方案的长期演进带来很多包袱和困难,所以我们在随后也加入了项目功能的废弃机制,仅对少量不合理、且几乎没有用户的功能做废弃,并且在正式废弃前提前两个版本做通知。核心能力形成的过程中,我们观察到用户增长并不满足预期。通过运营分析,我们发现无论是 Github 还是官网,初次访问流量是比较大的,但实际转化数据不太理想。此时我们意识到项目的使用体验可能不尽如人意,而社区用户的使用和反馈是驱动我们项目持续增长的重要输入。

用户转化:注重易用性和首次体验

KubeVela 的理念是业界领先的,所以我们一直在做大量布道,许多用户被我们吸引过来。然而许多用户反馈说,看了 KubeVela 项目官网,看不懂这个项目是做什么的。此时我们意识到,项目的易用性出了问题。我们把自己从项目维护者的身份中走出来,开始作为用户审视这个项目,对于首次接触项目的新用户,我们问自己三个问题:

  • 第一个问题:我能一下子看明白项目解决的是什么问题吗?

KubeVela 项目本身是有一定的理解门槛的,它建立在 OAM 应用模型之上,OAM 模型关注点分离的核心思路又把平台的用户分成了平台的构建者和最终用户,这给直接接触 KubeVela 的用户带来了不小的认知成本。在 1.0 到 1.5 这接近一年的时间中,我们每次发版都会根据用户的反馈持续重构我们官网的文档,以广大用户最能产生共鸣的关键词、场景进行类比,同时也一直在做减法,将项目的高级功能藏到相对较深的位置。

另一方面,我们在产品实现上也持续明确目标用户群体,将 KubeVela 控制器核心定位给平台工程师,而开发的 VelaUX 子项目初始定位是业务开发者开箱即用,同时也为平台工程师构造企业平台提供参考和基础框架。通过明确定位的产品培养用户心智,进而将越来越多关键信息传播给社区用户,再通过用户社群持续影响更广泛的生态。

  • 第二个问题:我能一下子联想到我的场景是否能够用它吗,或者它能满足我的需求吗?

用户的注意力是有限的,通过对官网的用户访问数据进行分析,我们发现新用户在网站的平均驻留时间不超过 3 分钟,如何在有限的时间里迅速抓住目标用户的兴趣,文档结构的设计非常重要。通过对社区用户的大量访谈,我们意识到大多数用户会带着需求关键词来寻觅项目,所以们不断调整官网侧边栏目录,把项目能够实现的核心功能以用户熟悉的关键词体现到导航目录中方便用户快速匹配。

除了项目文档,另一个关键点是提炼用户案例,行业头部用户案例具备很强的带动作用。有一段时间理想汽车率先采纳了 KubeVela,没多久就看到了小鹏汽车的采纳,甚至在不久前,自动驾驶领域的巨头 Aurora 也在 Slack 上联系我们,计划全公司采纳 KubeVela,而招商银行的案例也带动了一大批金融行业的用户采纳 KubeVela。当然这些案例的积累是一个小火慢炖的过程,很难一蹴而就。 这不仅需要项目的维护者对于社区用户有足够的耐心,也需要站在开源项目背后支撑项目发展的公司有足够的远见, 我们非常感谢阿里云、招商银行、Napptive等公司的维护者们持续而坚定的投入。

  • 第三个问题:我想试一下项目的实际运行效果,我能在几分钟只能快速体验完整的 Demo 吗?

这个问题其实涉及到了开源项目的一个关键特点,那就是开源项目必须能够用户自助,即用户要有能力自发的安装、使用、运维,以及在社群进行传播。如果一个开源项目是大多数用户自己玩不起来的,那注定难以成功。所以我们在每次发版时都会检查以下两项:

  1. 大多数用户能否顺畅进行安装?对于国际化运作的 KubeVela 项目来说,我们需要帮助用户客服网络障碍,不管是访问文档还是下载安装都需要在国内外流畅进行;为了降低安装复杂度,我们甚至专门发起了一个叫 **VelaD [ 5] **的项目,帮助用户从单机一键离线拉起包括 Kubernetes 在内的完整体验环境,大大降低了用户的上手门槛。除此之外,还有包括 ARM 架构镜像支持、版本升级一键完成等体验优化。

  2. 第一个用例是否足够简单又充分说明项目特性?KubeVela 早期的第一个用例要么过于简单看不出功能特点,要么过于复杂没有多个集群都跑不起来。经过持续打磨,现在的第一个用例围绕着核心概念,体现了工作负载抽象、交付策略、多集群、工作流等核心能力,但对用户环境又无额外要求。

在这里插入图片描述

图 4:VelaD 全离线一键安装包括 Kubernetes 集群在内的完整环境

逐步成熟:产品化运作和社区用户

随着项目的逐步成熟,社区会迎来一批又一批的用户,而开源项目成功的核心就是大量的用户采纳。KubeVela 很幸运,一直有阿里巴巴内部大量的场景可以帮助打磨孵化,而我们也非常注重社区用户的需求。除了每周定期举办国内外社区会议,还会组织跟不同企业的点对点交流会,甚至帮助他们制定完整的平台架构。而这个过程的积累也是相互的,KubeVela 维护团队从各行各业的头部企业中了解了行业的现状和差异化痛点,得以从更广阔的视野做功能的设计。

在社区用户的过程中,我们也总结了一些关键经验:

  1. 如何给到开源用户安全感? 对于基础设施类的开源项目,一旦采纳就会成为企业内部核心架构的一部分,相比于企业内部自建,采纳开源往往会缺乏一些安全感,开源项目本身如何给到企业安全感至关重要。首先是项目维护团队的多样化、长期稳定性以及高活跃,KubeVela 是 CNCF 托管的孵化项目,背后有阿里云、招商银行、Napptive 等多个公司在持续维护。同时要持续对代码质量保持较高的要求、注重安全问题和稳定性,KubeVela 有 40 多项持续集成测试条目,总体测试覆盖率超过 60%,核心场景的覆盖率在 90% 以上,基本上每个合并的代码都能保证兼容性,同时对代码贡献者本身的能力也有较高的要求。而团队对安全问题的上报和稳定性问题也始终保持高度敏感,一旦发现会第一时间发布修复版本。最后是提供确定性,有明确的里程碑、发版计划 ,并且坚定的执行。 KubeVela 发布至今每隔 2-3 个月发布一次大版本,每隔 1-2 周发布一个小版本,社区一直保持极高的活跃度,至今已经发布了超过 150 个版本,每个版本都有清晰的变更文档。

  2. 如何平衡社区用户的小众需求? 社区用户在落地过程中由于场景的差异,必然会产生相对小众的需求。对于这一点,我们的策略是 Blocker Issue 优先,即如果由于一些功能设定和实现直接阻碍了场景落地,那么这类问题要第一时间解决。对于功能新增类的需求,则交由社区一同评估等待更多的反馈,确认是一个相对普遍的需求再加入到版本计划中。例如 KubeVela 早期有一些用户希望对接他们企业内部的统一认证平台,这可能并不是标准的协议模式,通过社区 Issue 的来会讨论,有贡献者指出采用了 Dex 作为企业单点登录的统一方式,不同企业自行对接 Dex 即可。这使得项目能够群策群力,着眼于长远发展。

3. 如何获得海外用户? 基础设施领域的开源项目,要想获得真正意义上的成功,如何打开国际化市场是一个绕不开的话题。一方面,项目本身要始终着眼于领域的最前沿,保持技术的先进性,聆听国外用户的使用场景和习惯,对技术发展趋势做出敏锐的判断。另一方面,KubeVela 的核心团队均在国内,也克服了包括时差、语言、文化在内的诸多客观困难,一直坚持在北美相对合适的时间召开社区会议,持续在 KubeCon 等各类海外大会布道,文档、文章始终用中英文双语发布,同时积极活跃在 Slack、Issue 中答疑,满足国外用户希望点对点沟通交流的诉求。这不仅需要项目维护者有较强的综合实力,也需要对项目真正的热爱。 团队也在积极培养海外贡献者,随着 KubeVela 生态的不断繁荣,Napptive、Guidewire 等企业合作伙伴也在陆续加入社区,共同承担项目维护的职责。

在这里插入图片描述

图 5:OAM/KubeVela 风雨无阻的国外社区会议

生态建设与社区运营

最后我们要谈一谈社区生态,因为做好一个开源项目绝不仅仅是做一项前沿的技术,它更像是在目标领域打造一款好的产品。除了打磨产品功能,我们还需要通过对项目持续运营、对社区治理,得到更多开发者的认可,让他们参与进来贡献。要实现这样的目标,就需要让开发者对 KubeVela 形成共识、主动加入并参与协作。

KubeVela 诞生于 OAM 社区,也是第一个将“以应用为中心”的设计理念落地的项目。因此早期,我们首先要让大家理解 OAM 模型的思想,大家才会有意愿开始了解 KubeVela 是什么。我们做了大量的布道,并联合 CNCF 发布业界首个“云原生技术公开课”,介绍 OAM“以应用为中心”的理念如何解决云原生时代应用开发问题,得到了越来越多开发者的共鸣。发展到 2021 年 5 月,阿里云联合信通院发布业内首个以 OAM 为核心的“云计算开放架构”标准,将 OAM “模型”化虚为实,也对 KubeVela 发展起到关键作用。

为使社区保持持续的生命力,2021 年 7 月,KubeVela 正式加入 CNCF ,项目受众也扩大至全球。我们投入了很多精力做海外运营,比如联动 CNCF TAG App Delivery,以及 Argo、FluxCD、Prometheus、K3s 等生态伙伴举办社区会议、在主流的海外开发者社区建立团队账号,渐渐将影响力渗透到北美、日本、西班牙、英国等多个国家。为了让周边生态繁荣起来,以便能够让项目在更大的领域得到广泛的传播,为此我们专门建立了一个插件(Addon)体系,方便社区里的开发者可以将生态项目的集成,方便地制作成一个具备版本、统一仓库、可发现、可分发、一键安装的插件包。

在这里插入图片描述

图 6:KubeVela 的插件生态

KubeVela 的技术很先进,社区的贡献者众多,但水平也有差异,为了保证项目的质量,又不打击贡献者的积极性。对于每一个代码提交,我们都会及时响应、充分交流,给予贡献者足够的尊重和耐心。同时我们会积极的补充开发者文档,将开发者遇到的常见问题体系化整理。另一方面,我们也建立了完善的开发者晋级机制,从组织的 member,到 reviewer、approver 最后到 maintainer,都有明确的达成条件,让开发者像打怪升级一样有成就感。

如今 KubeVela 贡献者已经遍布全球,所在的企业和组织超过70个。我们倡导的理念是,开源贡献的形式不只是代码,一次分享、一次解答,都是对项目的贡献。我们也在建立并逐步完善社区晋升模型和协作机制,让大家更规范、高效地参与社区。KubeVela 社区依然非常年轻,还有很多事情在逐步完善,很开心有这么多朋友同行,让这个队伍越来越壮大。也期待更多朋友来到 KubeVela 社区感受开源的魅力。

相关链接

[1] KubeVela

https://kubevela.net/

[2] Helm/Kustomzie 应用管理、多集群应用交付

https://www.infoq.cn/article/sbwSX8ypxgID2-SB723K

[3] Terraform Controller 项目

https://github.com/kubevela/terraform-controller

[4] CUE 配置语言

https://cuelang.org/

[5] VelaD

https://github.com/kubevela/velad

相关文章:

开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾

作者:孙健波、曾庆国 点击查看:「开源人说」第五期《KubeVela:一场向应用交付标准的冲锋》 2023 年 2 月,**KubeVela [ 1] ** 经过全体 ToC 投票成功进入 CNCF Incubation,是云原生领域首个晋级孵化的面向应用的交付…...

MSDP实验配置

目录 配置MSDP 配置PIM SM协议 配置各PIM SM域内的静态RP 配置MSDP对等体 配置域内的MSDP对等体 AR8和AR9建立EBGP邻居 配置域间的MSDP对等体 进行实验验证 什么是MSDP MSDP(Multicast Source Discovery Protocol)组播源发现协议的简称 用来传递…...

惊!初中生也来卷了……

大家好,我是良许。 前两天在抖音直播的时候,突然来了一位不速之客…… 他自称是初中生,一开始我还有点不太相信,直到跟他连麦,听到他还略带一些稚嫩的声音,我才知道,他没有骗我…… 他说他想学…...

kafka相关配置介绍

kafka默认配置 每个kafka broker中配置文件server.properties默认必须配置的属性如下: broker.id0 num.network.threads2 num.io.threads8 socket.send.buffer.bytes1048576 socket.receive.buffer.bytes1048576 socket.request.max.bytes104857600 log.dirs/tmp/…...

【PyTorch】教程:torch.nn.Hardtanh

torch.nn.Hardtanh 原型 CLASS torch.nn.Hardtanh(min_val- 1.0, max_val1.0, inplaceFalse, min_valueNone, max_valueNone) 参数 min_val ([float]) – 线性区域的最小值,默认为 -1max_val ([float]) – 线性区域的最大值,默认为 1inplace ([bool]) …...

神垕古镇景区5A级十年都没有实现的三大主因

钧 瓷 内 参 第40期(总第371期) 2023年3月5日 神垕古镇景区5A级十年都没有实现的三大主因 这是2013年,禹州市市政府第一次提出创建5A级景区到今年三月份整整十年啊! 目前神垕古镇景区是4A级景区,5A级一直进行中&a…...

react函数组件常用的几个钩子函数useState、useEffect、useRef、useCallback

react框架react框架包括包括两大类:类组件函数组件。类组件构成:constructor自定义方法。调用方法通过this.方法名()。constructor(superstate)构造器里面必有super字段。render()方法里面写页面布局。函数组件构成:各种钩子函数return()方法…...

4N60-ASEMI高压MOS管4N60

编辑-Z 4N60在TO-220封装里的静态漏极源导通电阻(RDS(ON))为2.5Ω,是一款N沟道高压MOS管。4N60的最大脉冲正向电流ISM为16A,零栅极电压漏极电流(IDSS)为1uA,其工作时耐温度范围为-55~150摄氏度。4N60功耗(…...

现代神经网络(VGG),并用VGG16进行实战CIFAR10分类

专栏:神经网络复现目录 本章介绍的是现代神经网络的结构和复现,包括深度卷积神经网络(AlexNet),VGG,NiN,GoogleNet,残差网络(ResNet),稠密连接网络…...

Java代码弱点与修复之——Dereference null return value(间接引用空返回值)

弱点描述 Dereference null return value,间接引用空返回值。是Coverity Scan静态代码分析工具中的一个警告,表示代码中有对可能为空(null)的方法或函数返回值进行间接引用(Dereference)操作。 该类型的漏洞可能会导致 NullPointerException 异常,并且会导致程序崩溃或…...

【冲刺蓝桥杯的最后30天】day3

大家好😃,我是想要慢慢变得优秀的向阳🌞同学👨‍💻,断更了整整一年,又开始恢复CSDN更新,从今天开始更新备战蓝桥30天系列,一共30天,如果对你有帮助或者正在备…...

光伏发电嵌入式ARM工控机

随着智慧电力技术的不断发展和普及,越来越多的电力设备和系统需要采用先进的控制和监测技术来实现自动化管理和优化运行。其中,嵌入式 ARM 控制器技术在智慧电力领域中得到了广泛应用。同时,导轨安装也是该技术的重要应用场景之一。 导轨安装…...

推荐 7 个 Vue.js 插件,也许你的项目用的上(五)

当我们可以通过使用库轻松实现相同的结果时,为什么还要编写自定义功能?开发人员最好的朋友和救星就是这些第三方库。我相信一个好的项目会利用一些可用的最佳库。Vue.js 是创建用户界面的最佳 JavaScript 框架之一。这篇文章是关于 Vue.js 的优秀库系列的…...

1.1基于知识图谱的项目实战:优酷搜索泛查询意图优化

NLU的技术实现主要分为在线识别和离线数据挖掘两块。 1.在线识别 NLU的在线识别技术栈如下图所示,共由下述2个部分组成: 第一个部分是Slot Filling(成分分析),负责对query进行实体识别和槽位抽取;第二部分Inention Detection(意图识别),根据提取的槽位进行意图的判定(目…...

[java Spring JdbcTemplate配合mysql实现数据批量删除

之前的文章 java Spring JdbcTemplate配合mysql实现数据批量添加和文章java Spring JdbcTemplate配合mysql实现数据批量修改 先后讲解了 mysql数据库的批量添加和批量删除操作 会了这两个操作之后 批量删除就不要太简单 我们看到数据库 这里 我们用的是mysql工具 这里 我们有…...

uos 20 统信 fprintd 记录

uos 20 统信 fprintd 记录 sudo busctl deepin-authenticate.service /usr/lib/systemd/system/deepin-authenticate.service [Unit] DescriptionDeepin Authentication[Service] Typedbus BusNamecom.deepin.daemon.Authenticate ExecStart/usr/lib/deepin-authenticate/d…...

vue移动端h5,文本溢出显示省略号,且展示‘更多’按钮

问题: 元素宽度100%,宽度会随着浏览器缩放而变化。元素内文本超过4行时显示省略号,同时展示‘更多’按钮,点击更多按钮展示全部文本。如下图所示 超出四行显示省略号(…)的代码 .content{overflow:hidden;text-overflow: elli…...

php宝塔搭建部署实战兰空图床程序网站PHP源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Lsky Pro兰空图床程序网站PHP的源码。感兴趣的朋友可以自行下载学习。 技术架构 PHP8.0 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码,宝塔添加…...

软件测试面试:拿到一个产品(版本)如何开展测试?

产品提测后,如何开展测试? 我们都了解软件测试的执行流程,......提测-冒烟测试-详细测试-提交缺陷报告-回归测试,但软件测试并不总是线性过程,它甚至可能是螺旋结构,不断地试错,不断地迭代&…...

【Opencv项目实战】图像的像素值反转

文章目录一、项目思路二、算法详解2.1、获取图像信息2.2、新建模板2.3、图像通道顺序三、项目实战:彩图的像素值反转(方法一)四、项目实战:彩图的像素值反转(方法二)五、项目实战:彩图转换为灰图…...

Swagger生成接口在线文档

OpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程,目前版本是V3.0,并且已经发布并开源在github上。&#…...

104.第十九章 MySQL数据库 -- MySQL主从复制、 级联复制和双主复制(十四)

6.1.2 实现主从复制配置 参考官网 https://dev.mysql.com/doc/refman/8.0/en/replication-configuration.html https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html https://dev.mysql.com/doc/refman/5.5/en/replication-configuration.html https://m…...

第一次使用Python for Qt中的问题

在创建带有form的python for qt的时候,使用的库是pySide6,而不是pyqt。 因此,需要安装pyside6。 Running "/usr/bin/python3 -m pip install PySide6 --user" to install PySide6. ERROR: Could not find a version that satisfi…...

.Net Core WebApi 在Linux系统Deepin上部署Nginx并使用(一)

前言: Deepin最初是基于Ubuntu的发行版 2015年脱离Ubuntu开发,开始基于Ubuntu上游Debian操作系统 2019年脱离Debian,直接基于Linux开发,真正属于自己的上游Linux系统发行版 2022年8月,新版《Deepin V23》我下载开始了我…...

Java——打开轮盘锁

题目链接 leetcode在线oj题——打开轮盘锁 题目描述 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’&#xff0…...

JavaScript(2)

一、事件 HTML事件是发生在hTML元素上的“事情”。比如&#xff1a;按钮被点击、鼠标移动到元素上等… 事件绑定 方式一&#xff1a;通过HTML标签中的事件属性进行绑定 <input type"button" value"点我" onclick"on()"><script>fun…...

FFMPEG 安装教程windowslinux(CentOS版)

ps: 从笔记中迁移至blog 版本概述 Windows 基于win10 Linux 基于CentOS 7.6 一.Windows安装笔记 1.下载安装 https://ffmpeg.org/download.html 2 解压缩&#xff0c;拷贝到需要目录&#xff0c;重命名 3 追加环境变量 echo %PATH%setx /m PATH "%PATH%;F:\dev_tools\…...

【虹科案例】虹科任意波形发生器在量子计算中的应用

虹科AWG在量子计算中的应用精度在研究中始终很重要&#xff0c;很少有研究领域需要比量子研究更高的精度。奥地利因斯布鲁克大学的量子光学和量子信息研究所需要一个任意波形发生器&#xff08;AWG&#xff09;来为他们的研究生成各种各样的信号。01无线电频率第一个应用是在射…...

【强化学习】强化学习数学基础:随机近似理论与随机梯度下降

强化学习数学基础&#xff1a;随机近似理论与随机梯度下降Stochastic Approximation and Stochastic Gradient Descent举个例子Robbins-Monro algorithm算法描述举个例子收敛性分析将RM算法用于mean estimationStochastic gradient descent算法描述示例和应用收敛性分析收敛模式…...

ThreadLocal 学习常见问题

ThreadLocal 这个此类提供线程局部变量。这些变量不同于通常的对应变量&#xff0c;因为每个访问一个变量的线程(通过 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是希望将状态与线程(例如&#xff0c;用户 ID 或事务 ID)关联的类中的私有静态字段。使…...