本期概要
- 本期话题:各大查找引擎开端接入类 ChatGPT 功用
- 本周学习:Python 中的匿名函数与闭包
- 内容引荐:iOS 越狱检测、获取虚拟内存状况、运用 KeyChain 进行持久化等内容
- 摸一下鱼:Stable Diffusion 功用尝鲜;关于技能规划的思考;大厂复盘文档
本期话题
收拾修正:zhangferry
ChatGPT 的风又起来了
最近 ChatGPT 又火了一波,不只查找引擎纷纷引进类 ChatGPT 才能,就连各种跟 ChatGPT 沾边公司的公司股价都涨了一波。随着新用户的不断涌入,官网现已屡次中止用户登录了。
查找引擎盯上 ChatGPT 是自然而然的工作,早在 ChatGPT 开发之初就有它能否代替 Google 的评论,由于它大多数运用场景跟查找重叠很高。能否替换 Google 还有待验证,但 StackOverflow 遭到的影响现已十分显着,依据报导 StackOverflow 一个月内访问量骤降 3200w。这现已促进大部分产品不得不考虑 ChatGPT 的影响,以及怎么让自己的产品利用相似才能。
1、Google 宣布了 ChatGPT 的竞争对手 Bard,一个根据 LaMDA 模型练习的智能对话服务。该服务正在做最后的测验,未来几周会更大范围的对外开放。
2、微软的 「new Bing」 整合 ChatGPT 的才能现已能够尝试了,不过并没有全量铺开。访问:www.bing.com/new,登录账号,能够… new Bing。
OpenAI 对外开放的 ChatGPT 是根据 GPT 3.5 的,这个才能现已十分惊艳,Bing 则是运用练习量更大的 GPT-4 模型。依据练习模型评价,GPT 3.5 就现已超过了 Google 的 LaMDA,所以就答复准确性 new Bing 应该稳稳强于Bard 的。微软能否抢占一些查找引擎的比例就看这次发挥了。
3、百度也声称推出类 ChatGPT 服务,即将上线谈天机器人「文心一言」,3 月完结内测。未说明运用的技能,由于百度在人工智能方面布局还比较多,应该是运用自己的练习模型,详细效果怎么要等上线之后来看了。
本周学习
收拾修正:zhangferry
Python 中的匿名函数与闭包
Python 中正常的函数是这样的:
# 函数名是 add
def add(x, y):
return x + y
匿名函数是没有函数名的函数,但能够做一些函数做的工作,对应就指 Lambda 表达式。
func = lambda x, y: x + y
print(func(1, 2)) # 3
关于闭包能够先看一个核算平均数的比如:
def make_averager():
# 以下整体属于闭包
series = [] # 自在变量
def averager(new_value):
series.append(new_value)
total = sum(series)
return total / len(series)
return averager
avg = make_averager() # 可调用对象
print(avg(10)) # 10.0
print(avg(11)) # 10.5
print(avg(12)) # 11.0
make_averager()
创立了一个 avg
,它表明内部函数averager
。正常来说一个函数调用完之后就返回了,本地效果域数据也就释放了,为什么它还能够存储数据呢?数据是存在哪里了呢?
要害点就在于那个自在变量 series
。Python 里的函数有几个内部特点,avg.__code__
表明编译后的界说体:
# 局部变量
avg.__code__.co_varnames
('new_value', 'total')
# 自在变量
avg.__code__.co_freevars
('series',)
再看闭包的内容avg.__closure__
:
咱们传入的值都寄存到了闭包里。再说回闭包,闭包也是一种函数,它会保留界说函数时存在的自在变量的绑定,这样调用函数时,虽然界说效果域不行用了,可是仍能运用那些绑定。自在变量的生命周期是跟着闭包走的。
再稍微改下代码:
def make_averager():
count = 0
total = 0
def averager(new_value):
count+= 1
total+= new_value
return total / count
return averager
这个代码在 PyCharm 里会直接报编译错误,用命令行履行报 UnboundLocalError: local variable 'count' referenced before assignment
,提示变量未界说,但实践问题是这里变量类型有抵触。默认闭包内部函数外的变量为自在变量,但内部函数里包括赋值语句,这样count 和 total 就应该是局部变量了,两者抵触引发问题。
修正方法是引进 nolocal
字段,告知编译器它不是局部变量,而是自在变量,就能够正常赋值了。
def make_averager():
count = 0
total = 0
def averager(new_value):
nonlocal count, total
count+= 1
total+= new_value
return total / count
return averager
内容引荐
本期将引荐近期的一些优秀博文,包括 iOS 越狱检测、获取虚拟内存状况、运用 KeyChain 进行持久化 以及 SwiftGG 但新项目等方面的内容
收拾修正:东坡肘子
1、iOS 数据持久化 —— KeyChain — 来自:庄周晓梦
@东坡肘子: 为了安全的在本地存储敏感数据,不少开发者都会采用体系提供的 KeyChain 框架。在本文中,作者将为你展示怎么创立一个通用的一同适用于 iOS、 MacOS 的 keyChain 辅助类,以提高数据增删改查操作的便利性。
2、2023 年 iOS 越狱检测 — 来自:Marco Eidinger
@东坡肘子: 在这篇博文中,作者将展示现有的检测越狱的方法并共享代码示例。但更重要的是,通过评论越狱检测的动机、共享相关完成并提供信息,方便开发者评价越狱检测在 2023 年(或总体上)是否仍是一个好主意。
3、SwiftUI Layout — 来自:东吴贾诩
@东坡肘子: 本文作者对 SwiftUI 4 中提供的 Layout 协议做了比较翔实的说明。即便你现在仍运用老版本的 SwiftUI ,通过本文能够了解更多有关 SwiftUI 布局的内部逻辑。
4、好久不见,SwiftGG — 来自:SwiftGG
@东坡肘子: SwiftGG 是国内知名的苹果生态开发社区,尽管它的大众号处于歇业状况现已很久了,但 SwiftGG 翻译组在这几年并没有处于阻滞状况。在本文中,SwiftGG 对近两年的工作进行了总结,并介绍了接下来一些新的方案和计划。一同,也答复了一些网友提出的问题。
5、iOS APP虚拟内存用量初探 — 来自:呦呦君
@东坡肘子: 在作者当时的项目中有用于 APP 物理内存、体系物理内存等内存状况的获取 API,可是一向短少获取虚拟内存的 API。由于之前业务上出现过由于虚拟内存耗尽所导致的 Crash,因此本文将根据以上的布景对虚拟内存进行一些调研与讨论。
摸一下鱼
收拾修正:zhangferry
1、diffusionbee-stable:Stable Diffusion 是一个开源的人工智能模型,它能够依据文字描述生成一张图像。现在现已有不少图像类项目根据这个模型进行产品设计。假如你想本地跑这个模型的话,还需求租用 GPU,装备也比较麻烦。由于 PyTorch 对苹果的 ARM 芯片进行了完善的支持,现已完全能够用手头的 M1/M2 设备去运转 Stable Diffusion 了。Github 有一个开源项目 diffusionbee,把整个装备流程封装到了一个 Mac Applicaiton 上,咱们能够更快速的体会这项功用。项目依靠模型将近 8 个 G,下载体会需求准备好足够的磁盘空间。
2、技能三板斧:关于技能规划、办理、架构的思考:最近关于技能规划写了不少,参阅了团队内部其他人的技能规划文档,也查了一些技能规划相关的文章,对怎么做技能规划有这些总结。
第一步:问题剖析。假如是从零开端的项目,剖析的是痛点,假如是已有项目剖析的是现状。这里要结合数据方针,客户反馈,历史事件,并对未来有一定想象。
第二步:方针制定。方针选择要结合上一步的问题剖析,用于处理实践痛点。方针制定要详细清晰可量化,对每个方针进行拆解,确认完成路径。
第三步:以终为始。以终究成果溯源开端,清晰时间节点,设置可检验的 Milestone。项目成果从业务、渠道、效能视角等视角审视成果。
3、大厂项目复盘:UED 方向的各大厂项目复盘文档汇总。
关于咱们
iOS 摸鱼周报,首要共享开发过程中遇到的经验教训、优质的博客、高质量的学习材料、有用的开发工具等。周报仓库在这里:github.com/zhangferry/… ,假如你有好的的内容引荐能够通过 issue 的方法进行提交。别的也能够申请成为咱们的常驻修正,一同保护这份周报。另可重视大众号:iOS成长之路,后台点击进群交流,联络咱们,获取更多内容。
往期引荐
iOS 摸鱼周报 #82 | 去中心化交际软件 Damus
iOS 摸鱼周报 #81 | Apple 推出 Apple Business Connect
iOS 摸鱼周报 #80 | 开发加速器 SwiftUI 中办理数据模型
iOS 摸鱼周报 #79 | Freeform上线 & D2 本周开端