首页 文章 精选 留言 我的

精选列表

搜索[运维监控平台],共10000篇文章
优秀的个人博客,低调大师

🔥同样是跨平台支持多种编程语言的 SDK 版本管理器,vmr 和 vfox 有什么区别?该如何选择?🔥

vfox 是 2023 年底出现的一款用 go 编写的 SDK 版本管理器,由hellogithub引流之后而被大家了解。目前正致力于模仿基于 shell 脚本的版本管理器 asdf-vm 。 https://github.com/version-fox/vfox vmr 是 **2024 年 3 月**发布的一款用 go 编写的 SDK 版本管理工具,无需插件,开箱即用,同样支持多种语言,覆盖面广。 https://github.com/gvcgo/version-manager 下面比较一下二者的差异和优势。 1 、架构方面: vfox 应该是从 neovim 、g(一款国内程序员写的 go 语言版本管理器)、nvm 、asdf-vm 获取的灵感。它引入 lua 运行时,将版本爬虫部分塞进 lua 脚本中,作为插件系统,一种语言对应一个插件。想要管理某种语言的 SDK ,就需要手动安装对应的插件。这种方式对 vfox 本身而言,带来了一定复杂度。主要在于爬虫程序往往不能够统一,往往插件和主程序需要一起修改,比较麻烦,也不够稳定。好处是,更多的用户可以通过编写 lua 插件的方式参与项目的维护。 vmr 放弃了插件模式。而是剥离了版本爬虫部分,将版本爬虫单独部署在服务器,定时获取版本信息,预处理成统一格式,并同步到版本仓库。vmr 主程序只需获取版本仓库中的 SDK 版本信息,即可方便地展示给用户。这样做可以充分保证 vmr 主程序的稳定性,即使遇到 SDK 列表页面改版或者不稳定之类的情况,也能不受影响。同时,爬虫部分也可以集中精力做更为擅长的事情,因此 vmr 可以轻松地获取到 vfox 目前难以抓到的只在 github release 发布的 SDK 或者工具。当然,vmr 的这种设计有一个缺点,就是最新版本可能有延迟。但是,鉴于一般情况下,SDK 更新的频率并不是很高,每天 2 次的同步频率已经可以满足绝大多数需求。 所以,在架构方面,如果你追求稳定,快速,可以选择 vmr 。如果你追求将来更多样化的插件支持,可以选择 vfox 。 2 、UI 方面 vfox 目前是简单的 TUI ,基于 pterm 。 vmr 的 TUI 基于bubbletea ,在列表展示,下载进度条方面更美观。支持类似vim的按键操作来遍历展示列表。还能根据选择的列表项目,自动生成下一步的命令并放入系统剪贴板,用户只需粘贴即可。大大减少了用户输入。同时,用户也可以自行编辑粘贴后的命令,这样也保证了灵活性。 3 、下载速度方面 vfox 目前没提到多线程下载。 vmr 支持开启多线程下载,如果源网站支持多线程下载的话。另外,vmr 还能设置反向代理(vmr 免费提供),用于加速 github 项目的 release 内容的下载。 4 、支持广度方面 vfox 目前仅仅支持编程语言相关的 SDK ,也有少量其他工具,例如 etcd 等。vfox 有个优势的地方,就是它支持需要编译的 SDK ,但是编译需要特定的系统环境前提。 vmr 目前支持几乎所有 vfox 支持的 SDK ,但少数需要编译的除外。另外,vmr 还支持很多流行的其他 SDK 或工具,例如 bun(一个很火的 js/ts 运行时), protoc ,kubectl, neovim, vscode, lazygit, git-for-windows, vlang, v-analyzer, typst, typst-lsp, odin, upx, asciinema 等等。可以真正做到从零构建开发环境。这些 SDK 或工具很多目前只能从 github release 中获取,目前的 vfox 还无法做到。 5 、版本管理器功能方面 vfox 支持 global, session, project 三种范围模式。 vmr 也支持。实现上略有差异。 6、使用便捷程度方面 vfox可以通过brew之类的系统命令安装,但是插件需要查找并手动输入命令安装。自身的子命令比较多,操作相对繁琐。 vmr可以在主页文档中复制相关命令进行一键安装。此后无需安装任何插件。此外,vmr的子命令较少,用户仅需记住大概6个子命令即可完成所有工作。vmr还可以通过vmr list命令一键查看它支持的SDK列表。

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

澳大利亚警局8600万美金造AI平台抓偷车贼,然而一个程序员57行代码就搞定了

维多利亚警察局是澳大利亚维多利亚州的主要执法机构。在过去一年里,州内共有1.6万多辆车被盗,涉案费用约1.7亿美元,对此维多利亚警方十分头疼,开始尝试技术手段去抓偷车贼。 为防止被盗汽车被进一步欺诈性销售,维州公路局先是启用了一项网络服务,以检查车辆注册状况,接着又打算投资研发一套汽车牌照扫描仪——基于计算机视觉识别系统、可扫描过往车辆、自动识别被盗汽车的固定三脚架摄像机。 然而整套装置价格高昂,约8600万美元。有业内评论员分析,要想将这个成本共计8600万美元的系统配置在220辆车上,相当于每辆车支出390909美元。 警方的举措引起了网友Tait Brown的注意。Tait是一名开发者和设计师,他觉得维州警局的做法太浪费钱,于是突发奇想,准备用开源技术动手做一个车牌扫描仪模型,如果车辆被盗或未被注册,它就会自动通知车主。 图:现有的车牌识别系统 搭一个车牌扫描仪,分三步 在开始之前,Tait简单列出了车牌扫描仪产品的三个关键点。 它必须在本地完成图像处理 将直播视频流传给中央处理器,似乎是解决问题最差的方法了。因为这除了会产生昂贵的数据流量费,还会加剧网络延迟问题。 尽管,集中式的机器学习算法很有效,因为系统会随着深度学习的过程而变得更精确,但Tait更想知道,如果在本地设备实现这一功能是否就已经“足够好”。 它必须能够处理低质量的图像 由于Tait手头没有Raspberry Pi(树莓派,微型电脑)摄像头或USB网络摄像头,所以他就用现成的Dashcam镜头替代——一个随时可用的样本数据来源,Dashcam镜头还有一个好处,它的视频成像效果,与车载摄像头所拍摄的视频质量差不多。 它必须使用开源技术来搭建 如果依赖于一个专有软件打造设备,意味着后续每一次请求都将付费。相比之下,开源技术省钱是毋庸置疑的。 整个解决方案很简单 产品设计好了以后,就可以操作了。Tait的解决方案是,从Dashcam视频中获取图像,然后通过一个本地安装在车牌扫描仪设备上的开源车牌识别系统抓取图像,来查询汽车的注册检查服务,并显示结果。 传输到安装在执法车辆的设备数据包括:汽车出厂型号(只有汽车被盗时才会核实)、注册状态以及车辆被盗时的通知报告。 听起来是不是很简单。例如,图像处理都可以交由openalpr库处理。这涉及到识别车牌上的字符: PS:公共访问维州公路局的API接口是不可用的,因此Tait从官方网络下载数据,来进行车牌识别测试。 以下是他测试的过程: 但结果出乎意料的准确 测试结果让Tait感到惊喜。他此前还担心用开源系统识别车牌的效果会不理想,并且图像识别算法很可能并未针对澳大利亚车牌进行优化。 然而最终的解决方案却能够在宽广的视野中识别车牌。 图:反光和摄像头失真也不影响车牌识别 不过难以避免的,解决方案有时候也会出错。 图:读数不正确,误将M识别为H 但是,解决方案最终还是会纠正错误,给出正确反馈。 图:几帧后,M已被正确识别,而且有着更高的置信度评分 如以上两张图所示,图像处理的置信度评分从原来的87%上升到了91%以上。 这让Tait确信,通过提高采样率可以提高准确率,然后按最高置信度进行排序。或者,也可以调整阈值,设置成仅在置信度大于90%的情况下才接受汽车牌照号的验证。 这些都是很直接的代码优先解决方案(code-first),并且不排除使用本地数据集,来训练车牌识别软件。 关于8600万美元的问题 做完了以上试验之后,Tait完全想不明白为什么要花费8600万美元,也没觉得,经过本地化训练的开源工具比BlueNet系统(第三方技术服务)的准确性低。 Tait预计,这笔预算其中一部分还包括:对几个遗留数据库和软件应用程序的更新,以支持每秒对每辆车进行高频率、低延迟的车牌查询。 另一方面,如果每辆车的识别成本在39.1万美元左右,确实挺贵,尤其是如果BlueNet系统的识别结果并非特别准确,而且没有大规模的IT项目停产或升级相关系统的情况下,根本花不了那么多钱。 试想一下,未来这种车牌识别系统可以有很多应用场景。譬如,系统自动扫描绑匪之后,自动报警并告知家属绑匪当前的位置和方向,那该有多酷。 如今特斯拉汽车已经配置了摄像头和传感器,能够接收OTA更新,这就相当于目击者。当然,Uber和Lyft司机也可以配备这些设备,来增加安全性。 简而言之,使用开源技术和现有组件,似乎有可能提供一个回报率更高、更省钱的解决方案,投资远远低于8600万美元哦! 原文出处:科技行者 转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

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

用户登录
用户注册