首页 文章 精选 留言 我的

精选列表

搜索[移除软件包],共10002篇文章
优秀的个人博客,低调大师

RedHat移除MongoDB

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 由于MongoDB新的服务器端公共许可证(SSPL),Red Hat将不会在Red Hat Enterprise Linux或Fedora中使用MongoDB。 MongoDB这款开源文档NoSQL数据库摊上了问题。虽然大受欢迎,但这边厢AWS、IBM Cloud、Scalegrid和ObjectRocket等云计算公司将MongoDB作为一项服务来提供,因此赚得钵满盆满;那边厢,MongoDB公司却迟迟未能将其变现,在市场上获得同样大的成功。MongoDB的答案是什么?让这款软件改而采用新的服务器端公共许可证(SSPL)。开源巨头Red Hat的反应又是什么?从Red Hat Enterprise Linux(RHEL)8中删除MongoDB。 Red Hat的技术和社区外联项目经理Tom Callaway在宣布从Fedora Linux中删除MongoDB的声明中解释道:“Fedora认为SSPL是为了对特定类别的用户带有严重歧视而有意设计的。”Debian Linux已经从其发行版中删除了MongoDB。 具体来说反对意见是,如果你提供采用SSPL许可证的服务,SSPL要求你必须开源将该软件作为服务来提供所使用的所有程序。微软***执行官Steve Ballmer曾发出过有名的警告,称Linux的GPL“是一种从知识产权角度来看依附在它所接触的一切事物上的毒瘤,”他说错了。但是SSPL明确试图这么做。 MongoDB的***技术官兼联合创始人Eliot Horowitz在开源倡议组织(OSI)围绕SSPL展开讨论时解释了这么做的道理:我们认为,在当今世界,连接已被程序作为服务来提供以及通过网络连接程序作为程序结合的主要形式所取代。目前不清楚现有的反版权(copyleft)许可证是否明确适用于这种形式的程序组合,我们打算让SSPL成为开发人员消除这种不确定性的一种选择。 它没有奏效。Callaway继续说道:此外,很显然,许可证作者的意图是让采用许可证的软件的商业用户产生恐惧、不确定和怀疑(FUD)这种情绪。将SSPL视为“免费”或“开源”导致这个影子投射到了FOSS生态系统的所有其他许可证上,即使这些许可证中没有一个带来这种风险。 此前,OSI拒绝宣布SSPL是开源许可证。拟议中的SSPLv2也在OSI停滞不前。 MongoDB改变许可证背后的商业出发点是,迫使云计算公司使用MongoDB的商业云产品之一。这也没有奏效。 AWS刚推出了DocumentDB,这款数据库“旨在与你现有的MongoDB应用程序和工具兼容”,AWS宣传官Jeff Barr写道。“它与2017年11月推出的MongoDB版本3.6兼容(那时还没有采用SSPL),并且通过模拟MongoDB客户端预计来自MongoDB服务器的响应来实现MongoDB 3.6 API。” MongoDB对此并不满意。MongoDB的***执行官Dev Ittycheria说:“模仿是最真诚的奉承,因此亚马逊试图利用MongoDB的受欢迎程度和发展势头坐享其成也就不足为奇了。但是开发人员聪明得很,辨别得了真正的创新和拙劣的模仿。” 真是这样吗?MongoDB试图通过SSPL获取收入的做法似乎适得其反。现在唱反调的不光是云计算公司,连Linux供应商都没有给MongoDB好脸色看。 正如EnterpriseDB的***系统工程师Devrim Gündüz所说:“我确实很明白MongoDB决定改用SSPL的原因。看到超级云服务提供商从流行开源项目赚到的钱比开发和维护这些项目的贡献者多得多,确实让人郁闷。”但是开源项目创建者之一Bruce Perens说,没有人阻止“你使用任何许可证。只是别称之为开源。”

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

LeetCode 203:移除链表元素

删除链表中等于给定值 val 的所有节点。 Remove all elements from a linked list of integers that have value val. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 解题思路: 两种方法,一种是迭代法,从第一个节点开始,遇到值相同的节点就将其删除。链表的删除操作是直接将删除节点的前一个节点指向删除节点的后一个节点即可。 第二种方法是递归,用递归从后向前遇到相同节点直接指向该节点的下一个节点的地址即可 迭代法: 由于链表删除操作的特殊性,如果要删除某个节点,必须要知道该删除节点的前一个节点地址才可完成删除操作。所以如果是从第一个节点开始判断,就要考虑到第一个节点是否为空节点、第一个节点是否就是该删除的的节点,删除头节点和非头节点的操作不一样,应单独实现删除操作。 如果原链表是这种形式:1->1->1->2 val=1 删除头节点后第二个节点置为头节点,但是第二个节点作为新的头节点依然需要删除,所以对头节点的操作应该是一个迭代过程。 另外一种方法就是新建一个虚拟节点,该虚拟节点下一个节点指向原链表头节点。这就无需考虑头节点是否为空、是否为待删除节点。如原链表为:1->1->1->2 val=1 ,新建一个虚拟节点 -1 作为头节点:-1->1->1->1->2 val=1 ,这时只需正常迭代删除即可,唯一要注意是返回节点不能是 head ,因为原链表的头节点如果是待删除节点,此时 head 节点已被删除并作为单独隔离出来的节点,并非链表内的一个节点。 Java: class Solution { public ListNode removeElements(ListNode head, int val) { ListNode newHead=new ListNode(-1);//新建虚拟节点 newHead.next=head;//虚拟节点作为原链表的头节点 ListNode cur = newHead;//遍历节点的指针 while (cur.next != null) { if (cur.next.val == val) { cur.next = cur.next.next;//删除操作 } else { cur = cur.next; } } return newHead.next;//返回的头节点应当是虚拟节点的下一个节点 } } Python3: class Solution: def removeElements(self, head: ListNode, val: int) -> ListNode: newHead = ListNode(-1) newHead.next = head cur = newHead while cur.next: if cur.next.val == val: cur.next = cur.next.next else: cur = cur.next return newHead.next 递归法: 递归方法解该题很简单,基线条件是遇到空节点(最后一个节点),递归时只需将传递参数节点的下一个节点作为新的参数传给递归函数即可: 如原链表为: 1->2->6->3->4->5->6, val = 6递归到空节点时最后一个递归函数返回null: 1->2->6->3->4->5->6->null回到上一层递归函数内此时 head.next 得到返回节点 null判断head为 6 删除,返回 head.next :1->2->6->3->4->5->null回到上一层递归函数此时 head.next 得到上一层返回节点依然为null判断head为 5 不删除,返回 head 为5:1->2->6->3->4->5->null回到上一层递归函数此时 head.next 得到上一层返回节点 5判断head为 4 不删除,返回 head 为4:1->2->6->3->4->5->null回到上一层递归函数此时 head.next 得到上一层返回节点 4.............. 直到回到第一个递归函数为止返回头节点结束。 Java: class Solution { public ListNode removeElements(ListNode head, int val) { if (head == null) return null;//基线条件 head.next = removeElements(head.next, val); if (head.val == val) { return head.next; } else { return head; } } } Python3: class Solution: def removeElements(self, head: ListNode, val: int) -> ListNode: if not head: return None head.next = self.removeElements(head.next, val) if head.val == val: return head.next else: return head 欢迎关注公众号一起学习:爱写Bug

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

Firefox 90 正式发布,移除 FTP 支持

Firefox 89 在上个月正式发布了,在该版本中对设计进行了重大更新。Firefox 90 相比 89 虽然没有那么大的变化,但仍然有一些值得关注的新功能和改进。 在这个新版本中,Firefox 引入了一个新的 about:third-party 页面,以帮助用户识别由第三方模块和应用程序引起的兼容性问题。 Windows 版还引入了一个新的选项,开启后 Firefox 浏览器可以在没有运行的情况下,也能使用后台服务静默安装更新。其目的是通过更新提醒尽量减少干扰,可以通过 「设置 > 常规 > Firefox 更新」查看和配置该选项。 用户可以通过 「设置 > 隐私」添加和管理 HTTPS-only 模式下不使用该模式的网站 —— 此前用户只能通过地址栏中的锁定图标将网站排除在 HTTPS-only 模式之外。 支持 Fetch Metadata Request Headers,它允许 Web 应用程序保护自己及其用户免受各种跨源威胁。 SmartBlock 功能也已更新到 V2 版本,现在可以在隐私浏览模式下阻止第三方 Facebook 脚本。 Print to PDF 功能也得到了改进,可以从生成的页面中产生有效的超链接。 右键单击并选择 "在新标签页中打开图像",默认将在背景标签页中打开图像和媒体。 FTP 支持已被删除 而大多数无法访问硬件加速 WebRender 的用户现在将默认切换到使用软件 WebRender。 更多详情可查看:https://www.mozilla.org/en-US/firefox/90.0/releasenotes/

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册