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

Swift 周报 第三十五期

在这里插入图片描述
在这里插入图片描述

文章目录

    • 前言
    • 新闻和社区
      • 五天市值蒸发 2000 亿美元,苹果公司怎么了?
      • 在你的 App 中帮助顾客解决账单问题
      • 需要声明原因的 API 列表现已推出
    • 提案
      • 通过的提案
      • 正在审查的提案
    • Swift论坛
    • 推荐博文
    • 话题讨论
    • 关于我们

前言

本期是 Swift 编辑组整理周报的第三十五期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。

欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。

是站在生命之巅,嘲笑死神的无能?还是跪在生活边缘,寻求生存的可能?Swift社区始于渺小,行至辽阔!

周报精选

新闻和社区:五天市值蒸发 2000 亿美元,苹果公司怎么了?

提案:具有编码验证的 String Initializers

Swift 论坛:Swift 分布式追踪

推荐博文:iOS ReplayKit 与 屏幕录制

话题讨论:

苹果公司正在考虑在今年秋季推出新款 iPhone Pro 时提高其高端手机的价格,那么如果到时候新款 iPhone Pro 在国内的价格超过了一万元,你还会买吗?

新闻和社区

五天市值蒸发 2000 亿美元,苹果公司怎么了?

不久前的 6 月份,苹果公司刚成为首家市值超过 3 万亿美元的企业,但其最新一季的财报却引发了投资者对其手机与其他设备需求不振的担忧。

8 月 4 日,苹果公司公布了三季度财报。财报显示,苹果第三财季营收 817.97 亿美元,不及上一财年同期的 829.59 亿美元,较上一财季的 948.36 亿美元大幅下滑。在看到新一季财报数据后,投资者惊讶地发现,这家巨无霸上市公司的营业收入已经连续 3 个财季下滑,且苹果在第四季展望中预测当季表现也不大会有差别。

公司股价接连下跌

苹果公司三季报发布日恰在其新产品 iPhone15 系列新机上市前,但市场预期苹果手机这一新机型受追捧程度不如以往。在悲观情绪影响下,苹果公司股价在 8 月 4 日财报公布日重挫 4.8% ,创下今年以来最大单日跌幅,市值一天之内蒸发逾 1600 亿美元。而后,苹果股价并未能止住跌势,截至本周一(8 月 7 日),苹果的股价已经遭遇“五连跌”,股价暴跌近 10% ,总市值蒸发超过 2000 亿美元,约合人民币 1.44万 亿元。

美国银行的分析师在一份业绩报告中表示,苹果正面临美国智能手机市场疲软的大环境。此外,估值过高可能也是苹果此次下跌的又一重要原因。对于苹果销售额的“三连降”,第一手机界研究院院长孙燕飙表示,消费电子市场持续低迷削弱了对智能手机的需求,叠加创新力不足难以拉动新机销量,苹果手机的销售收入连续下滑。如果苹果在第四财季的销售额继续同比下降,这将是该公司 20 年来销售额同比下降持续时间最长的一次。(来源:金融时报)

在你的 App 中帮助顾客解决账单问题

正如我们在 4 月份宣布的那样,很快,你的顾客就能直接在你的 App 中解决付款问题,以便更轻松地继续订阅你的内容、服务和高级功能。

自 2023 年 8 月 14 日起,如果自动续期订阅因账单问题而无法续订,你的 App 中会显示一个系统提供的表单,提示顾客更新其 Apple ID 的付款方式。你可以在沙盒中先测试一下此表单,还可以使用 StoreKit 中的 messages (英文) 和 display (英文) 来推迟或禁止显示此表单。这项功能在 iOS 16.4 和 iPadOS 16.4 或更高版本中提供,无需采取任何操作即可采用。

需要声明原因的 API 列表现已推出

Apple 致力于保护我们平台上的用户隐私。我们知道,有一小部分 API 可能会被滥用来通过信息指纹收集用户设备的相关数据,这是我们的 Developer Program 许可协议禁止的一种做法。为了防止滥用这些 API,我们在 WWDC23 (英文) 上宣布了开发者需要在 App 的隐私清单中声明使用这些 API 的原因。这将有助于确保 App 仅将这些 API 用于预期用途。在这个流程中,你需要选择一个或多个能够准确反映你的 App 如何使用相应 API 的批准原因,并且你的 App 只能出于你选择的原因使用相应 API。

从 2023 年秋季开始,如果你上传到 App Store Connect 的新 App 或 App 更新使用了需要声明原因的 API (包括来自第三方 SDK 的内容),而你没有在 App 的隐私清单中提供批准的原因,那么你会收到通知。从 2024 年春季开始,若要将新 App 或 App 更新上传到 App Store Connect,你需要在 App 的隐私清单中注明批准的原因,以准确反映你的 App 如何使用相应 API。

如果目前批准原因的涵盖范围内并未包含某个需要声明原因的 API 的用例,且你确信这个用例可让你的 App 用户直接受益,请告诉我们。

提案

通过的提案

SE-0403 软件包管理器混合语言目标支持 提案通过审查。该提案已在 三十四期周报 正在审查的提案模块做了详细介绍。

正在审查的提案

SE-0405 具有编码验证的 String Initializers 提案正在审查。

我们建议添加新的 String 可失败 Initializers,用于验证编码输入,并在输入包含任何无效元素时返回 nil

Swift论坛

  1. 讨论Swift 字符串比较不将连字等同于其组件

内容大概

我刚刚发现 Swift 字符串将 “office” 和 “office” 视为不相等,这让我感到惊讶,因为它将 “caña” 和 “caña” 视为相等(即,都是组合和分解形式)。对于一般用户来说,这些情况是等价的 - 它们只是以不同的方式表示相同的字形(至少在某些字体中是如此)。

我进行了一些调查,似乎这是因为 Swift 承诺在 Unicode 术语中使用 “规范” 比较,而不是 “兼容” 比较。文档提到了这一点,但没有解释其含义。

我进一步查找并发现了有关 Unicode 中连字的一些争议和历史,这可能会为此提供一些启示(例如,目前 Unicode 关于连字的观点似乎是不应该用于字距调整,例如 “ffi”,但它仍然包含一些"不恰当" 的连字 - 再次,如 “ffi” - 这些连字是在这种心态转变之前添加的)。

NSString 也类似,除非你在使用 compare(_:options:) 时选择了 caseInsensitive 选项,这时它会将连字视为其分解形式。这很奇怪,因为这与字符大小写无关。

我猜这篇文章主要是向其他人提供信息和警告。但我很好奇为什么 Swift 选择执行 “规范” 比较,而不是 “兼容” 比较?此外,似乎在 Swift 标准库中没有办法执行 “兼容” 比较 - 必须导入 Foundation 才能获取字符串重叠部分,以便访问前面提到的 NSString 方法。

回答

兼容性分解是 Unicode 在需要与早期编码兼容(作为超集)的情况下所迫不得已的妥协。如果这些字符直接提议给 Unicode,它们将永远不会被编码。通常情况下,即使您在使用它们,也可能是在做错误的事情,因为它们所编码的内容(例如连字)不是文本的属性,而是显示格式的属性。

在 Unicode 的观点中,它们本身就不应该出现在原始字符串中。然而,将它们折叠到规范形式会丢失有关格式的信息,因此不能安全地应用于实际使用了它们的传统文本。(以“ff”为例,不是每一对“f”都要在显示中连接;那些跨越复合词两半的“f”应该保持分开。不能通过简单查看上下文来恢复这种区别,需要手动进行或通过字典查询来完成。)这与类似“ñ”的规范分解根本不同,后者在规范化过程中不会丢失信息。

如果想知道两个字符串是否在兼容性方面是等价的,则可以使用 Foundation 的 decomposedStringWithCompatibilityMapping 方法。

  1. 提议Swift 分布式追踪

动机

虽然 Logging 和 Metrics 可以用于仪器化应用程序的特定部分,但 Distributed Tracing 提供了对整个分布式系统的整体视图。与这两者一起,分布式跟踪将完成“可观察性的三大支柱”。

与 Logging 和 Metrics 一样,如果在库和框架中直接使用一个共同的 API 来实现分布式跟踪,社区将从中受益最多。最终用户应该能够自由选择合适的后端实现,而无需更改他们正在使用的库或框架。

建议的解决方案

Swift 分布式跟踪围绕着创建跨度(span),这些跨度共同形成一种树状结构。跟踪可以由在单个服务中记录的跨度组成,也可以跨多个服务传播。Swift 分布式跟踪使用基于任务本地的 Swift Service Context 来实现透明的传播,无需手动传递上下文。

我们提出的解决方案是一个针对三个“角色”的库:

  • 终端用户
  • 库和框架作者
  • 跟踪器后端实现

用户端

最终用户是从分布式跟踪中受益的人。他们选择适合自己需求的跟踪后端,使用具有内置的 Swift 分布式跟踪支持的库,并在自己的代码中进行手动仪器化。

库和框架作者

诸如 HTTP 服务器/客户端、数据库库等库/框架最了解如何仪器化其库的内部。他们使用 Swift 分布式跟踪 API 实现通用的跟踪支持,而无需考虑特定的跟踪后端。

例子:

  • Hummingbird
  • Soto

跟踪后端实现

最后一个难题是跟踪器后端实现。它们为导出跟踪 span 提供特定于供应商的支持。

例子

Swift OTel 公开了一个导出到 OpenTelemetry Collector 的跟踪器。这已经允许该跟踪库的采用者导出到与 OpenTelemetry 兼容的流行后端,例如 Zipkin、Jaeger、Honeycomb 等。

到期理由

我们提议这个软件包处于“孵化”成熟度级别。 我们相信这个包是服务器生态系统的重要构建块,就像许多服务器和客户端库采用 swift-log 和 swift-metrics 一样。

该项目已经成熟超过3年,有多个活跃的维护人员,并且在生产环境中满足了采用要求。

  1. 讨论AttributedString 索引获取导致 nil 值的内部解包

问题描述

我有一个富文本字符串,其中一个子字符串正在被替换,但是会引发 fatalError:

var string = AttributedString("café")
let replaceIndex = string.index(beforeCharacter: string.endIndex)
let range = replaceIndex..<string.endIndex
string.replaceSubrange(range, with: AttributedString("e"))
let next = string.index(afterCharacter: replaceIndex)
//                ^---- Unexpectedly found nil while unwrapping an Optional value
assert(next == string.endIndex)

这令人惊讶,因为我认为在更改之前,索引会保持稳定。更奇怪的是,改变如何创建范围不会导致失败。以下代码可以正常工作:

var string = AttributedString("café")
let range = range(of: "é")!
string.replaceSubrange(range, with: AttributedString("e"))
let next = string.index(afterCharacter: replaceIndex)
assert(next == string.endIndex)

使用 ASCII 字符而不是重音符号 ‘é’ 不会导致两种范围技术中的任何一种失败。我仔细分析了开源实现,试图揭示出现 nil 可选值的源头,但我看不到任何问题,我认为这与当前发布的代码不同。

对于我哪里的逻辑出了问题,有什么建议吗?

我使用的是 macOS 13.4.1 和 Xcode 15b5。

回答

明确一点,RangeReplaceableCollection 的变异操作可能会使现有索引失效,因为这些索引可能包含对于变异集合不再有效的信息(例如,在字符串的情况下,计算的字节偏移不再有效)。从 RangeReplaceableCollection.replaceSubrange(_:with:) 文档中可以看出:

调用此方法可能会使任何现有索引在与此集合一起使用时失效。

并且,这个方法几乎是 RangeReplaceableCollection 上所有其他操作的基础,所以人们应该假设(除非为特定类型另有说明)任何可能改变索引相关信息的变异操作都会使现有索引失效。

  1. 提议导入语句的访问级别

这是一个关于在 Swift 中更好地控制依赖和导入的提案。通过这个特性,可以将导入标记为公共的(当前的常规导入方式),对于模块的实现细节,可以标记为内部,对于源文件的实现细节,可以标记为私有或文件私有。

另外,更新后的包访问级别允许将依赖标记为仅对同一包中的模块可见。这会像源文件中的常规访问级别一样进行强制执行。将作为内部导入的声明只能从内部声明或更低的访问级别中引用,而在公共或包声明中使用则会报错。

下面是一个典型的用例,其中依赖项是我们不希望在模块 API 中暴露给客户端的实现细节,以及预期的诊断信息:

internal import DatabaseAdapterinternal func internalFunc() -> DatabaseAdapter.Entry { ... } // Okpublic func publicFunc(entry: DatabaseAdapter.Entry) { ... }
// error: function cannot be declared public because its parameter uses an internal typepublic func useInBody() {DatabaseAdapter.foo() // Ok
}@inlinable
public func useInInlinableBody() {DatabaseAdapter.foo()// error: global function 'foo()' is internal and cannot be referenced from an '@inlinable' function
}

该提案还定义了一组条件,其中可以从客户端隐藏依赖项。这提供了一种强大的方法来完全隐藏实现细节,并可以加快客户端的构建时间。

这个提案旨在提供一个正式且更清晰的替代方案,来取代 @_implementationOnly。与此相反,此版本提供了熟悉的诊断信息,更多级别的控制,以及与非弹性模块和 @testable 客户端更好的兼容性。

根据社区对建议的 Swift 6 行为的反应,我们可以将其纳入该提案。

  1. 讨论序列化文件访问的 Actor

问题描述

我想知道使用 Actor 是否是保护资源免受并发访问的好选择,例如一个文件目录。在过去,我曾使用 dispatch queues 实现这种情况。使用 Actor 作为阻塞文件访问 API 的通道点的优缺点是什么?

回答

仅仅是在文件系统中进行典型的CRUD操作

在这里,Actor并不能帮助你。即使在 Actor 可重入性的考虑之外,从 Actor 外部调用的 Actor 方法的执行顺序也无法保证。

CRUD 操作已经是线程安全的(如果它们不是,那将是一个相当令人失望的文件系统)。由于 Actor 不以执行方法的调用顺序“串行化”任何内容,因此不需要 Actor。

可能需要的是一个 FIFO 队列,这就是(串行的)DispatchQueue 解决方案为此提供的好处。

现在,如果谈论的是将一系列操作有效地“原子化”(例如,在枚举目录时不允许同时对其进行变异),那么需要保护的是一些可变状态,Actor 可以保护它。在我看来,这是比 CRUD 更高层次的抽象。在这方面,我认为 @tera 的问题在这里比想象的更相关。

  1. 讨论L-shaped 枚举

问题描述

用于缺乏更好的术语,我有很多“L-shaped”枚举,它们具有一些不同的有效载荷类型和一些共同的有效载荷类型。

以下是一个示例:

extension ServerDelegate
{enum Request:Sendable{case get    (Get, EventLoopPromise<ServerResponse>)case post   (Post, EventLoopPromise<ServerResponse>)case delete (Delete, EventLoopPromise<ServerResponse>)}
}
extension ServerDelegate.Request
{enum Get { ... }enum Post { ... }enum Delete { ... }
}

这种布局存在问题:

很难访问共同的字段(EventLoopPromise<ServerResponse>),除非在枚举上进行 switch 操作。

很难在实际的变体有效载荷上进行 switch,因为您必须使用 _ 忽略共同字段。

这里有一个明显的重构方法,即将变体有效载荷提升到另一个嵌套类型:

extension ServerDelegate
{struct Request:Sendable{let operation:Operationlet promise:EventLoopPromise<ServerResponse>}
}
extension ServerDelegate.Request
{enum Operation:Sendable{case get    (Get)case post   (Post)case delete (Delete)}
}
extension ServerDelegate.Request.Operation
{enum Get { ... }enum Post { ... }enum Delete { ... }
}

但这感觉像是过多的嵌套和(过多?)的类型结构,与我尝试建模的复杂性成正比。而且 ServerDelegate.Request.Operation.GetServerDelegate.Request.Operation.Post 等枚举本身可能还有更多的嵌套结构。

我们有哪些替代方案呢?”

回答

命名空间中的点是嵌套的结果,这与这里的类型结构并不是真正的基本关系。提供便利的 API 来处理一些 .init 繁琐的情况似乎也是合理的,例如:

extension Request {static func get(url: URL, params: [String: String], mintPromise: () -> EventLoopPromise) -> Self { ... }
}

推荐博文

iOS ReplayKit 与 屏幕录制

摘要: 这篇文章主要介绍了使用 Apple 的 ReplayKit 框架来实现屏幕录制功能,包括应用内录制和系统级录制。 ReplayKit 从 iOS 9中第一次提供,已经发展并增强了许多特性。文章对创建和接入 ReplayKit Extension ,系统级录制流程,以及在 LOOK 直播中的实践例子等进行了详细介绍。然而,屏幕录制开发面临着一些挑战,如内存限制、开发和调试困难、内存控制等。文章强调在开发过程中要小心应对这些问题,保持内存使用远离 50MB 的限制阈值,以及充分利用日志来解决问题,使能够优雅地完成屏幕录制功能。

TheRouter-iOS 轻量化路由中间件

摘要: TheRouter 是一款由货拉拉打造的轻量级路由中间件,旨在支持 Android 和 iOS 平台。该中间件在 iOS 端吸取了其他语言的特性,增加了注解功能,强化了路由在 iOS 端的使用体验。 TheRouter 摒弃了传统 iOS 的 target-action 或 protocol 理念,对齐了更广泛的后台或 Android 应用。主要功能包括依赖注入、硬编码消除、动态化能力和页面导航跳转能力。文章详细解释了 TheRouter 的实现原理,如注解式依赖注入,路径硬编码处理等,并提供了详细的使用介绍和示例。

iOS App Store 上架被拒 case

摘要: 这篇文章主要记录了 App Store 上架过程中遇到的一些被拒绝的案例,以及对应的原因分析和解决策略。案例涵盖了从功能完整性、信息需要、隐私确认,到软件需求和上传被拒等不同阶段的问题。文章还详细阐述了各种问题的产生原因,如 APP 功能不全、集成未使用的库、隐私信息填写不全等,并提出相应的解决方案。通过这些案例的分享,开发者可以理解和学习如何避免类似的错误,更顺利地完成 App Store 的上架过程。

话题讨论

报道称曾红极一时的少儿编程培训,如今现爆雷隐患。你认为儿童是否有必要提早接触编程课?

  1. 有必要:编程课可以激发儿童创造力,培养解决问题的能力。
  2. 没必要:缺乏基础和成熟度,编程需要数学和逻辑思维能力,导致理解困难和挫败感。
  3. 因人而异:有些儿童适合提早接触,有天赋和热情,发挥潜力,其他儿童可以在稍后阶段考虑。

欢迎在文末留言参与讨论。

关于我们

Swift社区是由 Swift 爱好者共同维护的公益组织,我们在国内以微信公众号的运营为主,我们会分享以 Swift实战SwiftUlSwift基础为核心的技术内容,也整理收集优秀的学习资料。

特别感谢 Swift社区 编辑部的每一位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量。

相关文章:

Swift 周报 第三十五期

文章目录 前言新闻和社区五天市值蒸发 2000 亿美元&#xff0c;苹果公司怎么了&#xff1f;在你的 App 中帮助顾客解决账单问题需要声明原因的 API 列表现已推出 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第三十五…...

uni-app + SpringBoot +stomp 支持websocket 打包app

文章目录 一、概述&#xff1a;二、配置&#xff1a;1. 后端配置2. uni-app(app端)3. 使用 一、概述&#xff1a; websocket 协议是在http 协议的基础上的升级&#xff0c;通过一次http 请求建立长连接&#xff0c;转而变为TCP 的全双工通信&#xff1b;而http 协议是一问一答…...

LeetCode--HOT100题(35)

目录 题目描述&#xff1a;23. 合并 K 个升序链表&#xff08;困难&#xff09;题目接口解题思路1代码解题思路2代码 PS: 题目描述&#xff1a;23. 合并 K 个升序链表&#xff08;困难&#xff09; 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合…...

idea插件grep console最佳实践

首发博客地址 https://blog.zysicyj.top/ 参考博客&#xff1a;https://blog.csdn.net/ayunnuo/article/details/123997304 效果 配置 具体颜色 日志级别前景色背景色Error#FF0000#370000Warn#FFC033#1A0037Info#00FFF3无Debug#808080无 本文由 mdnice 多平台发布...

Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程)

Android 12 源码分析 —— 应用层 二&#xff08;SystemUI大体组织和启动过程&#xff09; 在前一篇文章中&#xff0c;我们介绍了SystemUI怎么使用IDE进行编辑和调试。这是分析SystemUI的最基础&#xff0c;希望读者能尽量掌握。 本篇文章&#xff0c;将会介绍SystemUI的大概…...

【C#】通用类型转换

【C#】通用类型转换 自动类型转换&#xff08;隐式类型转换&#xff09;强制类型转换&#xff08;显式类型转换&#xff09;通过函数进行转换&#xff08;通过方法进行类型转换&#xff09;使用 as 操作符转换通用类型转换方法实现 数据类型转换就是将数据&#xff08;变量、数…...

传统DNS、负载均衡服务发现框架与专业服务发现框架(Eurek、nacos)分析

1、DNS 服务器 DNS 服务器可以在一定程度上用作服务发现的机制&#xff0c;以下是其冲动服务发现的一些利弊 优势 广泛性&#xff1a; DNS是互联网的标准协议之一&#xff0c;已经广泛地被支持和使用。因此&#xff0c;使用DNS作为服务发现的机制可以借助现有的网络基础设施…...

js中数组常用操作函数

js数组经常会用到&#xff0c;当涉及到 JavaScript 数组的函数&#xff0c;有许多常用的函数可用于对数组进行操作和转换。以下是一些常见的数组函数的讲解 splice() splice() 函数用于修改数组&#xff0c;可以删除、插入或替换数组中的元素。 var fruits [apple, banana,…...

Windows、Mac、Linux端口占用解决

Windows、Mac、Linux端口占用解决 简介 在使用计算机网络时&#xff0c;经常会遇到端口被占用的问题。当一个应用程序尝试使用已经被其他程序占用的端口时&#xff0c;会导致端口冲突&#xff0c;使应用程序无法正常运行。本文将介绍在Windows、Mac和Linux操作系统上解决端口…...

企业文件透明加密软件——「天锐绿盾」数据防泄密管理软件系统

PC访问地址&#xff1a; 首页 一、文档透明加密软件 文档透明加密功能&#xff1a;在不影响单位内部员工对电脑任何正常操作的前提下&#xff0c;文档在复制、新建、修改时被系统强制自动加密。文档只能在单位内部电脑上正常使用&#xff0c;在外部电脑上使用是乱码或无法打…...

Postman接口自动化测试实例

一.实例背景 在实际业务中&#xff0c;经常会出现让用户输入用户密码进行验证的场景。而为了安全&#xff0c;一般都会先请求后台服务器获取一个随机数做为盐值&#xff0c;然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服务器&#xff0c;后台服务器接到…...

软件团队降本增效-构建人员评价体系

在软件团队中&#xff0c;最大成本往往来自于人力。这是因为软件开发是一项高度技术密集和智力密集的工作&#xff0c;需要研发人员具备较高的专业知识和技能。研发人员的工作状态和主动性对产出和质量具有极大的影响。如果研发人员缺乏积极性和投入度&#xff0c;可能会导致项…...

Python实现SSA智能麻雀搜索算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…...

web JS高德地图标点、点聚合、自定义图标、自定义窗体信息、换肤等功能实现和高复用性组件封装教程

文章目录 前言一、点聚合是什么&#xff1f;二、开发前准备三、API示例1.引入高德地图2.创建地图实例3.添加标点4.删除标点5.删除所有标点&#xff08;覆盖物&#xff09;6.聚合点7.自定义聚合点样式8.清除聚合9.打开窗体信息 四、实战开发需求要求效果图如下&#xff1a;封装思…...

AlpacaFarm: A Simulation Framework for Methods that Learn from Human Feedback

本文是LLM系列文章&#xff0c;针对《》的翻译。 AlpacaFarm:从人类反馈中学习方法的模拟框架 摘要1 引言2 背景与问题描述3 构造AlpacaFarm4 验证AlpacaFarm模拟器5 AlpacaFarm的基准参考方法6 相关工作7 不足和未来方向 摘要 像ChatGPT这样的大型语言模型由于能够很好地遵循…...

【Linux】Linux工具篇(yum、vim、gcc/g++、gdb、Makefile、git)

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f9;Linux &#x1f6f8;C &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff…...

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 5- 完成 Spring 容器对象的自动装配 -@Autowried

&#x1f600;前言 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 5- 完成 Spring 容器对象的自动装配 -Autowried &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&…...

linux的http服务

Web通信基本概念 基于B/S&#xff08;Browser/Server&#xff09;架构的网页服务 服务端提供网页 浏览器下载并显示网页 Hyper Text Markup Lanuage,超文本标记语言 Hyper Text Transfer Protocol&#xff0c;超文本传输协议 虚拟机A&#xff1a;构建基本的Web服务 [root…...

Restful架构简单了解

Restful Rest全称representational status transfer 表述性状态转移。 原则 资源与URI URI既可以看成是资源的地址&#xff0c;也可以看成是资源的名称。如果某些信息没有使用URI来表示&#xff0c;那它就不能算是一个资源&#xff0c; 只能算是资源的一些信息而已。URI的设计…...

conda常用命令

使用conda可以在电脑上创建很多套相互隔离的Python环境&#xff0c;命令如下&#xff1a; 创建环境 创建一个名为deeplearning的环境&#xff0c;python版本为3.7 conda create --name deeplearning python3.7查看版本 conda --version切换环境 切换到deeplearning环境 c…...

Linux:shell脚本:基础使用(6)《正则表达式-awk工具》

简介 awk是行处理器: 相比较屏幕处理的优点&#xff0c;在处理庞大文件时不会出现内存溢出或是处理缓慢的问题&#xff0c;通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理&#xff0c;然后输出 1&#xff09;awk命令会逐行读取文件的内容进行处理 2&#xff09;a…...

国际阿里云腾讯云:阿里云服务器怎么打包

近年来&#xff0c;跟着云计算的发展&#xff0c;越来越多的人开始运用云服务器来保管自己的运用和网站。其间&#xff0c;阿里云服务器是国内最大的云计算服务供给商之一&#xff0c;能够供给高效安稳的服务器服务。可是&#xff0c;阿里云服务器的打包办法相较于其他云服务器…...

FPGA中锁存器(latch)、触发器(flip-flop)以及寄存器(register)详解

文章目录 1 定义1.1 锁存器&#xff08;latch&#xff09;1.2 触发器&#xff08;flip-flop&#xff09;1.3 寄存器&#xff08;register&#xff09; 2 比较2.1 锁存器&#xff08;Latch&#xff09;危害即产生原因2.2 寄存器和锁存器的区别2.3 锁存器和触发器的区别 3 结构3.…...

【正点原子STM32连载】第十八章 通用定时器PWM输出实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第十…...

分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测

分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测 目录 分类预测 | MATLAB实现BWO-TCN-Attention数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.BWO-TCN-Attention数据分类预测程序&#xff1b; 2.无Attention适用于MATLAB 2022b版及以上版本&#xf…...

6.链路追踪-Zipkin

链路追踪&#xff08;Distributed Tracing&#xff09;是一种用于监视分布式应用程序的技术&#xff0c;通过收集和展示分布式系统中不同组件之间的调用和交互情况&#xff0c;帮助开发人员和运维团队理解系统中的请求流程、性能瓶颈和异常情况。 1.Zipkin Zipkin 是一个开源的…...

基于ACF,AMDF算法的语音编码matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .......................................................................... plotFlag …...

python 基础篇 day 1 初识变量和数据类型

文章目录 变量变量作用——用于存储和表示数据。变量命名规则命名法大驼峰小驼峰下划体n j i a x 通常作为临时变量使用 建议 变量种类全局变量&#xff08;Global Variables&#xff09;局部变量&#xff08;Local Variables&#xff09;静态变量&#xff08;Static Variables…...

Window下部署使用Stable Diffusion AI开源项目绘图

Window下部署使用Stable Diffusion AI开源项目绘图 前言前提条件相关介绍Stable Diffusion AI绘图下载项目环境要求环境下载运行项目打开网址&#xff0c;即可体验文字生成图像&#xff08;txt2img&#xff09;庐山瀑布 参考 本文里面的风景图&#xff0c;均由Stable Diffusion…...

【MySQL】好好学习一下InnoDB中的页

文章目录 一. 前言二. 从宏观层面看页三. 页的基本内容3.1 页的数据结构3.2 用户空间内的数据行结构3.3 页目录 四. 问题集4.1 索引 和 数据页 有什么区别4.2 页的大小是什么决定的4.3 页的大小对哪些情况有影响4.4 一般情况下说的链表有哪几个4.5 如果页的空间满了怎么办4.6 如…...

建一个公司网站多少钱/引流推广营销

一、如何进行GCS评分格拉斯哥昏迷评分(Glasgow coma scale,GCS) 格拉斯哥昏迷计分法&#xff0c;从睁眼&#xff0c;语言和运动三个方面分别订出具体评分标准&#xff0c;以三者的积分表示意识障碍程度。最高分为15分,表示意识清楚&#xff1b;8分以下为昏迷&#xff0c;最低分…...

小象编程官网登录入口/seo排名优化厂家

第一个页面有Id值&#xff0c;第二个页面需要使用&#xff0c;可以使用session的方式&#xff1a; RequestMapping(value"/member/save") public String SaveMember(ModelAttribute("thisProjectUser") ProjectUser projectUser,HttpServletRequest reques…...

wordpress采集生成用户插件/关键词搜索优化外包

php中检测mysql扩展是否可用的例子&#xff0c;比如检测mysql_connect、mysqli_connect等。代码&#xff1a;复制代码 代码示例:/*** 检测可用的mysql扩展* by www.jbxue.com*/function mysqlinstalled (){if (function_exists ("mysql_connect")){return true;} els…...

seo文章关键词怎么优化/上海seo优化公司 kinglink

Django4.0 -----借鉴&#xff1a;cls超&#xff1a;点击这里 语法 语法 {{ 变量 }} {% 逻辑 %} 变量的使用和说明 在Django的模板语言中按此语法使用&#xff1a;{{ 变量名 }}。  当模版引擎遇到一个变量&#xff0c;它将计算这个变量&#xff0c;然后用结果替换掉它本身。 …...

做英文的小说网站/seo顾问培训

1.磁盘分区格式说明linux分区不同于windows&#xff0c;linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个&#xff0c;SCSI&#xff0c;SATA&#xff0c;USB硬盘为sdx(x为a—z))&#xff0c;硬盘主分区最多为4个&#xff0c;不用说大家也知道…..所以主分区从s…...

vs2017网站开发组件/安徽seo

1. 问题描述&#xff1a; 让我们一起来玩扫雷游戏&#xff01; 给定一个代表游戏板的二维字符矩阵。 M 代表一个未挖出的地雷&#xff0c;E 代表一个未挖出的空方块&#xff0c;B 代表没有相邻&#xff08;上&#xff0c;下&#xff0c;左&#xff0c;右&#xff0c;和所有4个…...