首页 文章 精选 留言 我的

精选列表

搜索[权限提升],共10000篇文章
优秀的个人博客,低调大师

OpenSearch 2.0 发布,ElasticSearch 替代品性能大幅提升

OpenSearch 2.0 现已正式发布!此版本融合了来自整个 OpenSearch 社区的用户反馈和贡献,以提供大量新功能和性能增强。我们非常感谢社区为构建分布式搜索和分析工具集而做出的协作努力,这些工具集具有开发人员可以依赖的功能,可用性和开源灵活性,以创建他们最具创新性的解决方案。 下面介绍了一些可以使用 OpenSearch 2.0 的新功能和增强功能。您可以在此处找到完整的发行说明。 Lucene 9.1 在2.0版本中,OpenSearch已升级到Lucene 9.1(Lucene 9.1文档)。迁移到最新版本的Lucene为这个版本提供了许多令人兴奋的进步,并将在未来的版本中继续提供更多的价值。对于 2.0,此升级启用了以下增强功能: Lucene 9.1 提供的性能优化包括将多维点的索引速度提高了 10–15%。 Java Jigsaw模块支持意味着在 9.1 版本中,Lucene 具有模块描述符和依赖项信息。这与OpenSearch的持续发展相一致,使工具集更加模块化和可扩展。 文档级警报 文档级警报(请参阅 GitHub 问题)允许用户创建可按文档生成警报的监视器。这些监视器通常用于安全检测,其使用的方法与 OpenSearch 中提供的其他类型的警报监视器类似:查询级别和存储桶级别。虽然这些警报使用数据的汇总视图,但文档级警报可以对索引中的每个文档发出警报,突出显示哪些特定文档或记录正在触发监视器中的警报,并避免基于时间戳的监视间隙或数据重叠。 通知 新的通知插件(参见GitHub问题)为OpenSearch添加了一个统一的通知系统。用户不再需要独立配置和管理每个插件的通知通道;在2.0版本中,通知插件提供了一个集中的位置来设置和管理相关OpenSearch插件的通知。例如,除了管理警报插件的通知外,此插件还可以在索引状态管理(ISM) 插件中完成计划操作时生成通知。 ML 共享资源升级 随版本 1.3 引入的ML Commons 插件(请参阅 GitHub 存储库在 2.0 版中获得了两个新算法,可将 OpenSearch 的机器学习 (ML) 功能扩展到其他工作负载,减少构建 ML 功能所需的工作量,并集中计算、资源管理和 ML 流程的安全性。用于线性回归和定位的新算法与 kmeans 和随机切割森林的现有算法相结合,为构建和训练 ML 模型提供了全面的基础。线性回归的添加旨在简化用于预测分析的ML模型的开发;通过本地化,用户可以在开发 ML 方法方面抢占先机,这些方法可以揭示异常或检测到的任何事件的关键因素,从而促进根本原因分析和其他用例的分析和可视化。 替换非包容性术语 此版本将整个 OpenSearch 中的非包容性术语(如主、黑名单)替换为包容性术语(如集群管理器、白名单)。(请参阅 GitHub 中的问题)。 RPM 包管理器 版本 2.0 遵循版本 1.3.2,以包括RPM 包管理器分发版的可用性(请参阅 GitHub 问题)。这简化了基于红帽 Linux 的操作系统的 OpenSearch 发行版的安装。您可以在此处查看兼容的 Linux 版本。 重大更改和持续支持 OpenSearch遵循语义版本控制或SemVer,因此重大更改仅包含在主要版本版本中,例如此版本。对于2.0版本,不兼容更改的列表包括上面提到的Lucene升级和包容性术语等更新,以及由于添加通知插件而在目标API中的重大更改以及其他更改。有关 2.0 版中重大更改的完整列表,请参阅文档。 请注意,我们将继续支持 OpenSearch 1.x 发行版。有关弃用支持的详细信息,请参阅常见问题解答的第 3.28 节。 为项目做贡献 您的想法和贡献对 OpenSearch 项目产生了真正的影响!从Lucene升级到新插件再到ML进步,此版本包括来自OpenSearch社区的许多有价值的贡献。我们向所有为OpenSearch 2.0做出贡献的人致以最深切的感谢。 如果您有兴趣了解更多信息,有具体问题,或者只是想提供反馈,请访问OpenSearch.org,在 GitHub 上为OpenSearch或OpenSearch Dashboards打开问题,或在论坛中发帖。还有定期的社区会议,包括每次会议的更新和问答时间。 对于几乎任何类型的贡献,打开问题是第一步。如果您渴望加入,请查看带有“需要帮助”标签的问题。 立即开始 你可以在这里下载OpenSearch 2.0!请务必在开始时查看发行说明和更新的文档。

优秀的个人博客,低调大师

从 “香农熵” 到 “告警降噪” ,如何提升告警精度?

作者:董善东 & 白玙 对于大部分人来说,信息是一个非常抽象的概念。人们常常说信息很多或信息较少,但却很难说清楚信息到底有多少。比如一份帮助文档或一篇文章到底有多少信息量。直到 1948 年,C.E.Shannon(香农)提出了“信息熵”的概念,才解决了对信息的量化度量问题。信息熵这个词是香农从热力学中借鉴而来来的。热力学中的热熵是表示分子状态混乱程度的物理量。而香农用信息熵的概念来描述信源的不确定度。 香农的信息熵本质上是对我们司空见惯的 “不确定现象” 的数学化度量。譬如说,如果天气预报说 “今天下午下雨的可能性是 60%” ,我们就会不约而同想到出门带伞;如果预报说 “有 60% 的可能性下雨” ,我们就会犹豫是否带伞,因为雨伞无用时确是累赘之物。显然,第一则天气预报中,下雨这件事的不确定性程度较小,而第二则关于下雨的不确定度就大多了。 作为数学中颇为抽象的概念,我们可以把信息熵理解成某种特定信息的出现概率。而信息熵和热力学熵是紧密相关的。根据 Charles H. Bennett 对 Maxwell's Demon 的重新解释,对信息的销毁是一个不可逆过程,所以销毁信息是符合热力学第二定律的。而产生信息,则是为系统引入负(热力学)熵的过程。当一种信息出现概率更高时,表明被传播得更广泛,或者说被引用的程度更高。我们可以认为从信息传播角度来看,信息熵可以表示信息的价值,这样子我们就有一个衡量信息价值高低的标准。 再具体到我们日常运维工作场景中,各类的告警事件作为最典型的一种信息,在面对每天海量高警事件我们该如何评估告警的信息价值成为了一个重要问题。 各大监控平台/工具一般有两种方式去识别指标异常并触发告警事件。第一种是常见的通过设定阈值/动态阈值的方式。第二种就是设定默认规则,触发系统预设规则事件,例如:机器重启等。与此同时,运维团队往往不会依赖单一的监控工具,经常需要在各种不同层次工具中都设定对应的监控告警。 在这样的背景下,监控源多元化与监控工具类别多样化,往往导致相同故障原因在不同监控工具、不同监控规则下,触发出大量重复、冗余的告警事件。甚至在发生大范围故障时形成告警风暴。运维人员很难从这些海量告警中快速有效的识别到底哪些告警事件是重要且准确的信息,这也往往导致有效告警被淹没。因此,对于运维团队和告警产品来说,存在以下几个痛点: 多处监控告警源以及频繁误报导致大量重复、冗余、低效事件,重要事件淹没在其中,无法有效识别; 大范围故障导致的告警风暴; 测试事件等脏数据混在事件中。 什么是 ARMS 智能降噪 ARMS 智能降噪功能依托于 NLP 算法和信息熵理论建立模型,从大量历史告警事件中去挖掘这些事件的模式规律。当实时事件触发后,实时为每一条事件打上信息熵值与噪音识别的标签,帮助用户快速识别事件重要性。 智能降噪的实现原理介绍 事件中心中大量的历史事件沉积,很难人工实现从这些大量历史事件中抽象出事件模式与价值。应用实时监控服务 ARMS ITSM 产品智能降噪功对不同告警源收归到统一平台进行告警事件处理,将这些历史事件进行模式识别,挖掘内在关联,建立基于信息熵的机器学习模型辅助用户进行事件重要性的识别,模型核心步骤包括: step 1:基于自然语言处理和领域词汇库, 完成事件内容的词向量化,实现事件最小粒度的度量; step 2:基于信息论中信息熵的概念, 结合 tfidf 模型,构建词向量的信息熵值和重要性度量模型; step 3:利用 sigmod,完成事件的非线性和归一化 “信息熵” 度量; step 4:结合历史事件的处理记录和反馈, 构建模型迭代训练与验证。 利用自然语言处理算法,基于信息论中的信息量和信息熵概念来表征事件重要性,帮助用户利用大量历史事件训练迭代出识别事件重要性的模型。当新实时事件触发时,快速识别事件重要性。同时,结合信息熵阈值设定,来完成噪音事件过滤与屏蔽。并根据时间演进以及事件类型与内容变化,模型通过自适应定期实现迭代式更新(更新频率为每周一次),无需用户进行任何操作,即可保证模型准确性。 智能降噪业务价值 业务价值一:智能化识别重复、低效事件,挖掘新奇事件 (1)大量重复、相似事件的识别 对于大量重复、相似事件,该类事件持续大量出现在事件告警中,模型对于这类事件的信息熵值会持续给予降低的信息熵,即:这类事件的信息熵值会越来越低,直到最后接近为 0。这是因为模型期待对于重要的事件,用户可以更多关注响应, 而如果事件一直重复、大量触发,往往说明这类事件用户根本不关心,从业务逻辑上也辅证了模型机理。 (2)挖掘新奇事件 对于在历史事件中不曾出现、比较少出现的事件,模型则会重点关注,认定该类事件为新奇事件,给予当前事件较大的信息熵值,以期待用户更多的关注该类事件。因此,ARMS 智能降噪模型还具备帮助用户识别重要事件的功能。 业务价值二:定制化需求支持设定 对于一些用户测试事件或特定字段事件,我们常常希望对这类事件进行定制化处理,例如:测试事件只触发查看整个流程,但不需要去点击做任何处理。再比如,有些事件中包含了特别重要字段信息,对于这类事件需要优先处理。 业务价值三: 模型具备高成长性 对于历史事件数量较少的用户(事件数量<1000), 一般不推荐打开该功能,这是因为历史事件数量过少的情况下,模型很难充分训练,识别其内在模式和规律。但是在开启后, 模型每周会在本周新发生的事件基础上,进行模型迭代训练。在用户无需关心的前提下,模型一方面自适应追踪事件模式变化,另外一方面对于原有事件数量不充足的模型, 也在持续进行充分迭代。 最佳实践 使用流程说明 step 0:入口 step 1:开启 当觉得事件量过多, 重复事件,低效/无效事件过多时, 可以选择开启智能降噪。 step 2:使用 开启后, 则会拉取历史 1 个月的事件数据(如果一个月内事件数量过多, 目前会拉取一部分进行训练)进行智能模型训练。点击智能降噪,进入详情页。 step 3:参数设定 深入了解该功能后, 用户可以开始考虑设定一些关键来进行事件的优先处理和屏蔽。优先词和屏蔽词的详情可以参考名词解释。 名词解释 噪音事件阈值: 开启智能降噪后, 我们会对每一条新事件计算信息熵值。噪音事件阈值设定则是划分噪音/非噪音事件的分界线。 噪音事件: 事件信息熵低于设定信息熵阈值的事件,统称为噪音事件。 非噪音事件: 事件信息熵大于或等于设定信息熵阈值的事件,统称为非噪音事件。 优先词: 在关键词设定中,用户可以设定一些自己想要优先看到的词汇, 如:重要, critical 等。当发生事件的事件名称和事件内容包含设定的优先词时, 当前事件的优先级相对应提高, 避免被识别成噪音事件。 屏蔽词: 在关键词设定中,用户可以设定一些自己认为不重要的词汇, 如:测试, test 等。当发生事件的事件名称和事件内容包含设定的屏蔽词时, 当前事件会被直接认定为信息熵为 0(如果信息熵阈值设定 >0,则被认定为噪音事件)。 常见词 Top50: 根据历史事件的统计学习, 模型会保存一份事件词汇的词频表。常见词则是词频表按照出现频率大小排序, 选择 Top50 进行展示。 常见问题 什么时候开启该功能 对于历史事件数量 > 1000 的用户,ARMS 智能降噪将进行自动开启操作。 对于历史事件数量仍较少的用户,用户可自行打开,但是模型效果需要一段时间时间迭代调优。 需不需要修改模型参数 建议在初期使用,不作修改,采取默认即可。 在了解功能后,可以尝试设定优先词和屏蔽词, 以及信息熵阈值,实现更定制化的需求。 点击​​此处​​,前往阿里云可观测专题页查看更多信息! 近期热门 #阿里云可观测系列公开课# 直播间不见不散!

优秀的个人博客,低调大师

解读畅捷通微服务治理能力提升之路

互联网发展到今天已经成了一种基础资源,越来越多的企业将业务搬到线上,线上的竞争也越来越激烈。互联网企业为了生存,就要快速迭代,以便满足用户的不同需求。 “服务化”是实现“快”的一个非常重要的手段。把大量通用功能下沉为服务,并对服务不断进行拆分,再根据不同的业务形态,快速组装出前端应用,通过服务组装和聚合的方式实现更快的开发速度,前端也能变得更轻。把服务拆得越细,服务的粒度越小,可组装性就越好。只有这样,我们才能在业务有需求的时候,利用大量的“小服务”快速构建出一个前端业务应用,支持业务的快速试错。 微服务应运而生。随着微服务架构开始变得火热以后,越来越多的系统被拆解成了多个微服务,那么下一个难题就是,如何管理这些微服务。设想一下,如果你的系统由100个微服务构成,要对这100个微服务进行管理,这绝对是一个不小的挑战。有没有更简单高效的

优秀的个人博客,低调大师

OSS 数据湖实践 —— 使用EMR JindoFs Cache提升性能

通过使用cache缓存机制,减少数据分析处理过程中直读OSS的次数,不仅能够提高性能,更能减少与OSS的交互流量,减少数据分析成本与时间开销。 前提条件 已注册阿里云账号,详情请参见注册云账号。 已开通E-MapReduce服务和OSS服务。 已完成云账号的授权,详情请参见角色授权。 已创建Haoop集群,且带有Hive组件,且配置OSS数据源。 步骤一:设置JindoFs Cache 打开smartdata服务中client配置,把jfs.cache.data-cache.enable为1, 表示打开JindoFs的cache功能打开 步骤二:进行作业测试 数据分析作业具体可看其他OSS数据湖实践文档功能OSS Spark 实践文档OSS Flink 实践文档OSS Hive 实践文档

优秀的个人博客,低调大师

10个10倍提升编程技能的有用技巧

云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 软件开发是一项回报颇丰、价值极高的工作技能。无论你生活在世界何处,软件开发都很容易进行远程工作,而且只要你足够优秀,你就有资格获得一份年薪从 10 万到 20 多万美元不等的高薪工作。 https://medium.com/javascript-scene/what-to-pay-javascript-developers-in-2020-2292eb346f3b 一些有顶级收入的 JavaScript 开发人员年收入甚至接近 50 万美元。但要想有资格获取如此丰厚的薪水,你必须在自己所从事的事业上做到无可挑剔的绝对优秀。 即使你已经是一个专业的软件开发人员,你仍然需要知道如何学习编程。一旦选择了软件开发这一职业,就注定选择了一条终身学习的道路。作为一名软件编程导师,我有机会一窥数百名软件开发人员的学习过程。最让我震惊的是,有些人的学习速度居然比其他人快那么多。一些只有很少或者没有编程背景的人,学习新概念的速度可以达到其他有 10 年以上编程经验的人的 10 倍以上。今天我要分享的秘密是,你也可以达到这样的惊人学习速度。 这里我会逐一揭示一些学习的秘密,希望能助你一臂之力以骑上火箭的速度去掌握软件开发这门手艺。 编 程 学习编程的最好方法就是去动手编程。进入一个开发环境(例如:web 开发环境 CodeSandbox 和 JavaScript 编译环境 Babel),并编写一些代码。如果你正在阅读一本书或一篇博客文章,并且遇到了一个代码示例,请在代码编辑器(例如:Visual Studio Code 和 Quokka)中把这些代码输入进去,并尝试让它们工作。一旦你让代码开始工作,就开始进一步摆弄这些代码吧。比如,可以改变其中一部分代码,也可以试着想想其他方法来应用这些代码,或者用同样的技术来做其他事情。所以请尽情地去享受摆弄代码的乐趣吧。 例如: 星球大战游戏编程https://studio.code.org/s/starwars/stage/1/puzzle/1 Flexbox 塔防游戏http://www.flexboxdefense.com/ Codepiphttps://codepip.com/ Screepshttps://screeps.com/ 照本宣科给你带来的智慧是非常有限的。最好的学习方式是 学以致用。 动 力 要想做好一件事,最好的方法就是动手去做。你需要有学习的动力和决心。获得动力的一个方法是给自己留够时间和耐心去掌握一些知识。你并不需要立即成为专家。这就像学习一种乐器。你不能指望自己一坐到钢琴前就立刻变成下一个德彪西,但你可以在第一次坐下来弹钢琴就掌握 C 大调音阶。 同样地,你也不可能坐下来,立即用程序写出下一个 Instagram、抖音(TikTok)或要塞英雄(Fortnite)。当你开始掌握每一个小知识点时,你会意识到自己可以做到这部分了。这样持续下去你会做得很棒的。你可以开始看到你的目标开始逐步实现,然后你会更有动力去追求那个目标。请坚持下去。 专 注 我看到过很多开发人员试图一次就掌握所有的东西,但是往往却迅速地就得到了一事无成的结果。他们的进步慢得像是在冰川中艰难痛苦的爬行,而不像为了夺冠的奋力短跑冲刺。 如果你想快速学习某样东西,你就不能把你的注意力分散到所有方面,而是将注意力聚焦在最必要的地方。一开始请只选择一种编程语言(例如 从 JavaScript 开始),一个框架(例如 从 React 开始),一本书,一门课程,一个主题,等等。无论你选择什么,专注于一件事,直到你完全掌握了它,然后再转移到其他事情上。 我一直告诉人们,在你开始学习另一门编程语言之前,至少要花一年的时间完全专注于一门编程语言。而几十年前,为了保持在业内的竞争力,一个典型的软件开发人员的确需要在他们的职业生涯中学习多种编程语言。 虽然学习一门以上的编程语言确实可以教会你用多种方式看待事物,甚至让你加深对自己主要编程语言的理解,但如今,一门单一的编程语言(JavaScript)就足以帮助你度过职业生涯中的大部分岁月。 来自招聘经理的建议:你所擅长的技能就是你最有价值的技能。如果你一生都致力于成为一个通才,不断地在不同的编程语言之间跳来转去,事实上你就人为地限制了自己技能精通和收入增加的可能性。 阅 读 对软件开发人员最有用的许多知识都来源于书籍。YouTube 上有很多优秀的视频和课程,但书籍仍然是软件开发文化和知识的标准载体。我向你特别推荐以下价值极高的书籍: JavaScript 编程精编(Eloquent JavaScript) 编写软件(免责声明:这是本文作者自己的著作。该书的印刷版本在 亚马逊上有发售。)https://leanpub.com/composingsoftware 代码大全:第二版(Code Complete: 2nd Edition) 代码整洁之道(Clean Code: A Handbook for Agile Software Craftsmanship) 测试驱动开发(Test Driven Development By Example) 重构第二版(Refactoring: Improving the Design of Existing Code 2nd Edition) 复 习 如果你想把一个新概念从一个听起来很耳熟的想法变成自己的长期记忆,对一个主题进行复习将会让你受益匪浅。大多数学习者所犯的错误是,他们很快就读完了一本书或一篇博客文章,但往往第二天就迅速地忘记了他们曾经读过的内容。如果你读了一些有趣的东西而且想把它们记住,请务必在第二天复习这些东西。针对这些知识进行自我考察。然后隔一天再次进行自我考察。再过一天,再考察。如此连续 4 天重复这样做,你把这次所学变成长期记忆的机会就能大大增加: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5126970/ 综合运用多种媒介 有些人通过阅读来学习的效果最好,而有些人通过看视频来学习的效果最好,但是如果你把这些不同的学习媒介混在一起用——看视频,然后阅读,然后去根据一些交互式代码课程进行一番练习,你就能从多个角度和多个例子来加深这些概念。通过综合运用多种学习媒介,你自然而然地就完成了对知识的复习,并且在复习的过程中还能进行一些有用的练习。 构建项目 对一个概念的单纯学习并不意味着你就掌握了如何在实际的应用程序中应用该概念。一旦你对着练习题编写了几周的代码,这时你就该脱离书本构建一些自己的东西了。关于做什么需要给你出出主意吗?别去写一个大家早就耳熟能详的 todo 应用程序记录待办事项,建议可以尝试着去实现一个“记录拒绝”的应用程序(The Rejection APP): https://github.com/learn-javascript-courses/rejection/ 重视原则胜过框架和编程语言 框架和 API 都是变化很快的事物。但软件设计的基本原则却是经久不衰的。所以应该去学习那些跨越编程语言栅栏的编程原则。举一些例子: “一个需求上的小变化应该只会引发代码实现上的一个小变化。”(引自 《软件开发实用手册(A Practical Handbook for Software Development)》) 只做一件事情 (DOT)——从 Doug McIlroy 的“一次只做一件事情,把这件事情做好(DOTADIW)”中简化而来——一个函数应该只执行一个任务。因此,一个函数不应该既获取数据又处理数据,并绘制到屏幕。这个函数应该只获取数据,或者只处理数据,或者只绘制到屏幕。(所以,是时候把你的 React 组件拆分成更小的部分了!) “对接口编程,而不是对实现编程。” ——四人帮(Richard Helm、Ralph Johnson 和 John Vlissides),《设计模式》 “优先选择对象组合而不是类继承。”——四人帮,《设计模式》 要避免共享可变状态。 “过早发生的优化是万恶之源。”~Donald Knuth “你并不需要它(YAGNI)”——请不要为实际上还不需要的东西去编写代码。 共享、记录和指导 “Hoenikker 博士曾经说过,任何一个科学家,如果不能向一个八岁的孩子解释清楚他在做什么,他 / 她就是个江湖骗子。~Kurt Vonnegut——《猫的摇篮》 学习如何编码只是软件开发工作的一部分而已。当你与其他开发人员协作时,你的代码会被其他人审阅,他们有时会对你的选择提出质疑。当你试图说明自己的意图时,你可能会发现自己并没有透彻地理解一些内容来捍卫自己的立场。所以,请练习在项目中向你的同事和其他合作者解释、记录和传授这些概念。 练习,练习,再练习! 任何通过后天努力学会一项技能的人都知道,实践出真知。但要想让技能得到进一步磨砺,你就不能只是对你已经熟知的概念进行练习。你还需要挑战自己,超越你所熟悉的领域。如果你不断地在自己目前能力的边缘进行努力练习,你将会变得出类拔萃。 《巅峰:关于专业知识的新科学秘密》(Peak: Secrets from the New Science of Expertise) 这本书里深入研究了刻意练习这一活动,并为之提供了丰富的见解,你可以将这些知识应用到日常生活中,从而更好地进行练习。我强烈推荐你去阅读这本书,这样你就可以让自己的练习时间和副业项目变得更有成效。 在作者的个人网站上有很多关于 JavaScript 软件开发的课程。可以通过这些课程去学习专业开发人员所需要的概念,从而让自己职业生涯更上一层楼。 https://ericelliottjs.com/premium-content 作者介绍 Eric Elliott 是 《编写软件》(Composting Software) 和 《JavaScript 应用程序设计》(Programming JavaScript Applications) 两本书的作者。他是 EricElliottJS.com 和 DevAnywhere 的联合创始人。他教授开发人员基本的软件开发技能。他为加密货币项目打造开发团队和提供专业建议,并为 Adobe Systems、Zumba Fitness、《华尔街日报》、ESPN、BBC,以及包括 Usher、Frank Ocean、Metallica 等在内的顶级唱片艺术家提供软件方面的支持。 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/zhibo 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK 原文发布时间:2020-05-17本文作者:Eric Elliott本文来自:“InfoQ 微信公众号”,了解相关信息可以关注“InfoQ”

优秀的个人博客,低调大师

谷歌开源 Pigweed,用于提升嵌入式开发效率

谷歌于 1 月下旬曾向 USPTO(美国专利及商标局)递交了名为 “Pigweed” 的新商标申请。根据申请内容来看,Pigweed 商标涵盖“计算机操作软件”。当时,人们猜测这是一款新的操作系统商标,但并未有任何相关信息提供。 昨日,谷歌毫无征兆地公布并开源了 Pigweed。与之前的猜想不同,这是一个嵌入式库(或模块)的集合。使用 Pigweed 模块可​​以在 32 位微控制器( 即嵌入单电路芯片中的小型计算机)上实现更快、更可靠的开发。 Pigweed 提供的模块可满足嵌入式开发人员的广泛需求。从整个生命周期来看,Pigweed 从设置,到开发,再到代码提交,都能够有效提高嵌入式开发的效率。谷歌以上述开发过程为轴,围绕这几个方面分别介绍了 Pigweed 的一些模块。 嵌入式空间中的经典挑战是减少从运行 git clone 到在设备上执行二进制文件的时间。对于生产嵌入式项目,往往通常需要一整套工具。而Pigweed 能够通过虚拟环境提供简化设置的工具,具体来说,Pigweed 的 pw_env_setup 模块中的引导脚本可设置当前的 shell 以访问一组标准化工具——包括 Python 3.8、clang 格式以及 ARM 编译器。所有这些都是在虚拟环境中完成的,因此无需修改系统的默认环境。 在典型的嵌入式开发中,即使添加很小的更改也需要一些额外的手动步骤。而Pigweed 的 pw_watch 模块直接解决了这种效率低下的问题,它提供了一个监视者(watcher),该监视者可以在保存文件时自动调用构建,还可以运行受代码更改影响的特定测试。这大大缩短了更改的编辑——编译——刷新——测试(edit-compile-flash-test)周期。 这些测试都是自动完成的,用户无需离开自己的代码编辑器。此外,还可以使用 pw_target_runner 模块在多个设备上并行运行测试,从而节省更多时间。 团队开发代码需要强调一致性,然而,设置 lint、配置代码格式以及添加自动的提交前检查等通常会使这项工作无限期延迟。这时,Pigweed 的 pw_presubmit 模块可派上用场。它会基于用户可能已经使用的工具提供现成的 Lint 集成套件,并预先配置好,可以立即供微控制器开发人员使用。 至于该项目为什么取名为“Pigweed”,谷歌给出了解释:“Pigweed,又称amaranth ,是一种营养丰富的谷物和绿叶沙拉菜,也是一种快速生长的杂草。”Pigweed 项目团队希望名字有趣,又能反映项目本身的成长,就像快速生长的杂草Pigweed 一样。 目前,Pigweed 已提供了不少模块,后续将会有更多模块被添加进来。需要注意的是,它仍处于早期开发阶段,目前不适合用于生产。

优秀的个人博客,低调大师

Kube-OVN v0.9.1 稳定性提升

该版本主要修复0.9.0 版本中反馈的问题,代码会维护两个分支,release分支主要是 bugfix,发布周期会稍微频繁一些,master上会有bugfix和新的功能,想试验新功能可以用 master分支。 问题修复 1. 当子网所有 IP 都被分配,再次分配 IP 会导致 panic 2. kube-ovn-cniserver 挂载 /var/run/netns 目录,避免 kind 集群出现的目录问题 3. 正确处理 svc 中 targetPort 为字符串的情况 4. start-ovs.sh 脚本中的错误 5. 删除节点时回收 ip/route 等资源 6. nbctl 增加超时控制,避免无限阻塞的情况 7. 当子网中还有 IP 使用时,阻塞子网删除操作

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册