升级到Xcode 15运行项目报错,报错信息如下:
SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target
低版本也会有这个错误,应该是依赖包少了点东西。
第一步:
下载libarclite 文件 第二步:
前往文件夹 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/
打开cmd,黑色的那个
open /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/
第三步:
将下载的arc 文件夹复制到lib文件夹下
即:直接将下载好的解压后粘贴进去即可。
参考文章:
Xcode 15 libarclite 缺失问题_sdk does not contain 'libarclite' at the path '/ap-CSDN博客
一、原理 SHA-256 是一种加密哈希函数,旨在将任意大小的数据映射到一个固定大小的哈希值,通常是 256 位(32 字节)。它属于 SHA-2(安全哈希算法 2)家族,旨在提供更高的安全性。
SHA-256 的设计原则包括以下关键步骤:
消息填充:输入消息的位数必须是 512 的倍数。因此,第一步是对输入消息进行填充。填充包括在消息末尾附加一个 '1',然后追加足够的零,使消息长度对 512 取模后余 448。追加消息长度:填充后,将原始的 64 位消息长度追加到消息的末尾。这确保了哈希值受到消息长度的影响,增强了安全性。哈希值的初始化:SHA-256 使用 8 个 32 位字作为初始哈希值。这些值是使用前 8 个素数的平方根的小数部分来设置的。消息分块:对填充后的消息分为 512 位的块,每个块包含 16 个 32 位字。消息调度:依次处理每个块,生成 64 个扩展的 32 位字。这些字大部分基于之前的字和哈希值,通过一系列逻辑函数和位运算计算得出。压缩函数:SHA-256 使用一种包含 64 轮的压缩函数,每一轮应用不同的逻辑函数和常数。每一轮都会修改哈希值的不同部分,引入新的数据。最终哈希值:处理完所有块后,最终的 8 个 32 位字被连接起来形成 256 位的哈希值。 二、C/C++实现 SHA-256.h #pragma once #ifndef SHA_256_H #define SHA_256_H #include <stdlib.h> #include <stdint.h> typedef struct hash_context { uint8_t buffer[64]; uint32_t state[8]; uint32_t total[2]; } hash_context; void hash_start(hash_context* ctx); void hash_update(hash_context* ctx, uint8_t* input, size_t ilen); void hash_finish(hash_context* ctx, uint8_t* output); static void sha256_transform(hash_context* ctx, const uint8_t data[]); #endif // SHA_256_H SHA-256.
1、百度文言一心
文言一心”是一个基于百度自研的ERNIE模型的聊天机器人。
“文心一言”是百度依托飞桨、文心大模型的技术研发的知识增强大语言模型,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。
登录地址:https://yiyan.baidu.com/
2、清华智谱清言
智谱AI是由清华大学计算机系技术成果转化而来的公司,致力于打造新一代认知智能通用模型。公司合作研发了双语千亿级超大规模预训练模型GLM-130B,并构建了高精度通用知识图谱
登录地址:https://chatglm.cn/
3、讯飞星火
科大讯飞推出的新一代认知智能大模型,拥有跨领域的知识和语言理解能力,能够基于自然对话方式理解与执行任务。在与人自然对话互动中,提供语言理解、知识问答、逻辑推理、
数学题解答、代码理解与编写等多种能力,成为职场、生活与学习等多场景
登录地址:https://xinghuo.xfyun.cn/
4、腾讯混元
腾讯混元,腾讯自主研发的通用大语言模型。腾讯混元大模型是由腾讯全链路自研的通用大语言模型,拥有超千亿参数规模,预训练语料超2万亿tokens,具有强大的中文理解与创作能
力、逻辑推理能力,以及可靠的任务执行能力
登录地址:https://hunyuan.tencent.com/
5、华为盘古大模型
盘古大模型,是华为旗下的盘古系列AI大模型,包括NLP大模型、CV大模型、科学计算大模型。
登录地址:https://pangu.huaweicloud.com/
6、阿里的通义大模型
阿里通义大模型是阿里云推出的一个超大规模的语言模型,功能包括多轮对话、文案创作、逻辑推理、多模态理解、多语言支持。能够跟人类进行多轮的交互,也融入了多模态的知识
理解,且有文案创作能力,能够续写小说,编写邮件等
登录地址:https://tongyi.aliyun.com/
7、百川大模型
百川大模型是百川智能推出的大模型产品。2023年8月31日凌晨,百川智能宣布其大模型通过《生成式人工智能服务管理暂行办法》备案,向公众开放。百川智能以帮助大众轻松、普惠
地获取世界知识和专业服务为使命,致力于通过语言AI的突破,构建中国最优秀的大模型底座。百川大模型,融合了意图理解、信息检索以及强化学习技术,结合有监督微调
登录地址:https://www.baichuan-ai.com/home
8、360智脑
360智脑基于大规模高质量的语料训练,拥有强大的自然语言处理能力,提供优质输出。 更快捷,更灵活 三步迅速完成开通,简单快速上手接入。支持根据业务场景选择API类型并定制,致
力为您提供最佳的AI
登录地址:https://chat.360.com/
9、天工AI搜索
「天工」由昆仑万维主导研发,是国内首个双千亿级大语言模型,也是一个对话式AI助手。「天工ai大模型」通过自然语言与用户进行问答式交互,天工 AI助手具有生成能力可满足文案
创作、知识问答、代码编程、逻辑推演、数理推算等多元化需求
登录地址:https://chat.tiangong.cn/
10、Ai Tools
是一个通过API接口集成了国外热门的 OpenAI 的 ChatGPT 和 Midjourney AI绘画,转换成适合国内用户使用习惯的ChatGPT 网站
登录地址:https://www.ealxc.com
图1 由ICLR 2024论文列表生成的词云
ICLR(International Conference on Learning Representations)自2013年起至今(2024年)已成功举办12届,被公认为人工智能领域的顶级会议之一。该会议由“深度学习三大巨头”中的 Yoshua Bengio 和 Yann LeCun 共同创立,发布人工智能、机器视觉、计算生物学、数据科学、多模态处理、游戏设计和机器人等领域的最新论文和成果。会议投稿始于2023年9月15日,摘要注册截止于9月24日,而完整论文的提交截止日期为9月29日。经历严格的评审后,大会组委会于2023年11月10日公布了论文的接收结果。此次会议投稿量高达7300多篇,创历史新高,其中有2250篇论文被接收,接收率为30.8%。
ICLR 2024将于2024年5月7日至11日在奥地利维也纳召开,届时将集结全球范围内的顶尖学者和研究人员,共同探讨人工智能领域的最新发展与挑战。图1为利用ICLR 2024已接收论文列表绘制出的词云,单词的字越大表明与该单词相关的研究领域越热门。由图1可以大致观察到近年来人工智能的热点研究领域。本文对ICLR 2024接收的论文做可视化分析,进而总结和归纳人工智能的研究热点,还展示了ICLR 2024热点研究领域的示例论文及论文的下载地址,方便读者深入思考并追踪人工智能研究热点。本文的作者为李杨。
ICLR会议特色——Open Review评审机制:根据规定,所有提交的论文都将公开作者的姓名等信息,并接受同行在线的评价及提问。ICLR采用公开的同行评审制度。评审可以匿名或实名进行,评审结束后,作者有权对论文进行调整和修改。
会议的相关链接:
ICLR 2024 会议官方网站: https://iclr.cc/Conferences/2024
ICLR 2024 全文下载地址: https://openreview.net/group?id=ICLR.cc/2024/Conference
1. 一图看懂ICLR(2017-2024)的发展趋势
图2 ICLR(2017-2024)的发展趋势
由图2可以观察到ICLR近年来的发展趋势。首先,近年来的投稿量出现了急剧增加。从2017年的490篇飙升至2024年的7300篇左右,不仅反映出学术界对于ICLR会议日益增加的关注,也体现了人工智能及其相关子领域的快速发展和研究范围的广泛性。尤其是ChatGPT问世以来,大模型技术的快速发展再一次掀起了人工智能的浪潮,这种急剧增长的趋势突显了全球研究者对于人工智能的广泛关注。
其次,论文接收量也出现了持续增长,该趋势与投稿量的增长趋势基本一致(如图2中的橙色和蓝色柱子所示)。这一现象揭示了会议规模的不断扩大和研究领域的不断拓展。然而,接收率却整体呈现下降趋势,从2017年的40.4%逐渐降至2024年的30.8%,表明了评审标准的提升和学术竞争的加剧。这一现象不仅反映了评审过程的严格性,也体现出论文被接收的难度不断增加,从而激励研究者提交更高质量的论文。
此外,接收率的波动也揭示了会议适应不断变化的研究环境和质量标准的灵活性。特别是在2021年和2022年接收率的小幅上升,反映了会议对于多样化和创新研究的鼓励,以及对新兴研究领域研究成果的重视。从2022年至2024年,虽然ICLR会议的投稿数量迅速增加,但是接收率基本维持在同一水平,表明了会议对于热门研究领域有了更高质量的要求,不仅需要投稿论文属于热门领域,还需要研究工作具有足够的创新性。
综合来看,ICLR的这一发展趋势不仅展示了其在人工智能领域的重要地位,也反映了该领域的日益成熟和多元化。投稿量的大幅增长和接收率的变化,共同描绘了一个日益竞争和高标准的学术环境,同时也反映了ICLR对创新和高质量研究成果的不断追求。
2. ICLR 2024热点追踪
图3 ICLR 2024论文列表中排名前十的热门研究方向
图3展示了ICLR 2024论文列表中排名前十的研究方向,凸显了当前研究热点。从这些研究方向中我们可以观察到:ICLR 2024的热门研究方向与扩散模型密切相关,充分反映了扩散模型在人工智能领域的重要地位。其次,以ChatGPT为代表的大语言模型(LLM)也在ICLR 2024会议上引起了广泛关注。此外,图神经网络作为当前热门领域,在多个深度学习顶级会议上都占据着重要地位。最后,其它研究方向主要集中在新兴的交叉领域,如医学、自动驾驶、新媒体等。具体而言,包括了3D视觉生成模型、三维重建技术、3D影像分析、文本到图像理解、表征学习、视频自动生成以及大模型量化等众多前沿技术。这些研究方向全面反映了当前人工智能领域的前沿进展,值得深入学习和思考。
接下来,对ICLR 2024排名前十的热门研究方向进行更为详细的讨论和分析(以下内容为个人理解,仅供参考):
(1) 扩散模型
基本概念:扩散模型是一类基于概率的生成模型,主要用于生成高质量的数据样本,如图像、音频或文本。这些模型通过模拟数据的退化和恢复过程来工作。首先,它们逐渐向原始数据添加噪声,直到数据完全变成噪声;然后,模型学习如何从这种噪声状态逐步恢复出原始数据。这个过程通常被描述为一个马尔可夫链,其中每一步都轻微地改变数据,直到达到最终状态。
研究热点:图像和音频生成;文本生成与处理;无监督学习。
示例论文:Generalization in Diffusion Models Arises from Geometry-adaptive Harmonic Representation
全文下载:https://openreview.net/pdf?id=ANvmVS2Yr0
(2) 大语言模型(LLM)
基本概念:大语言模型是一类基于深度学习的模型,目前已有的大语言模型通常由数十亿甚至数万亿个参数构成,需要在大规模数据集上训练。通过对大量文本数据进行学习,大语言模型能够捕捉丰富的语言规律和知识信息,从而在多种语言任务上表现出色,如文本生成、翻译、摘要、问答等。
研究热点:多模态学习;细粒度语言理解;知识整合与推理。
示例论文:Understanding In-Context Learning in Transformers and LLMs by Learning to Learn Discrete Functions
=========================================================================
个人主页点击直达:小白不是程序媛
C++系列专栏:C++干货铺
代码仓库:Gitee
=========================================================================
目录
C语言的输入输出
流是什么?
C++的IO流
C++标准IO流
C++文件IO流
文本文件读写
二进制文件的读写
stringstream的简单介绍
将数值类型数据格式化为字符串 字符串拼接
编辑序列化和反序列化结构数据
C语言的输入输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。
scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。 注意宽度输出和精度输出控制。C语言借助了相应的缓冲区来进行输入与输出。
如下图所示: 对输入输出缓冲区的理解:
1.可以屏蔽掉低级I/O的实现,低级I/O的实现依赖操作系统本身内核的实现,所以如果能够屏
蔽这部分的差异,可以很容易写出可移植的程序。
2.可以使用这部分的内容实现“行”读取的行为,对于计算机而言是没有“行”这个概念,有了这
部分,就可以定义“行”的概念,然后解析缓冲区的内容,返回一个“行”。
流是什么? “流”即是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且具有方向性的数据( 其单位可以是bit,byte,packet )的抽象描述。C++流是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程。这种输入输出的过程被形象的比喻为“流”。它的特性是:有序连续、具有方向性 。 C++的IO流 C++系统实现了一个庞大的类库,其中ios为基类,其他类都是直接或间接派生自ios类
C++标准IO流 C++标准库提供了4个全局流对象cin、cout、cerr、clog,使用cout进行标准输出,即数据从内
存流向控制台(显示器)。使用cin进行标准输入即数据通过键盘输入到程序中,同时C++标准库还
提供了cerr用来进行标准错误的输出,以及clog进行日志的输出,从上图可以看出,cout、
cerr、clog是ostream类的三个不同的对象,因此这三个对象现在基本没有区别,只是应用场景不
同。在使用时候必须要包含文件并引入std标准命名空间。
注意:
1. cin为缓冲流。键盘输入的数据保存在缓冲区中,当要提取时,是从缓冲区中拿。如果一次输入过多,会留在那儿慢慢用,如果输入错了,必须在回车之前修改,如果回车键按下就无法挽回了。只有把输入缓冲区中的数据取完后,才要求输入新的数据。2. 输入的数据类型必须与要提取的数据类型一致,否则出错。出错只是在流的状态字state中对应位置位(置1),程序继续。3. 空格和回车都可以作为数据之间的分格符,所以多个数据可以在一行输入,也可以分行输入。但如果是字符型和字符串,则空格(ASCII码为32)无法用cin输入,字符串中也不能有空格。回车符也无法读入。4. cin和cout可以直接输入和输出内置类型数据,原因:标准库已经将所有内置类型的输入和输出全部重载了。 对于自定义类型,如果要支持cin和cout的标准输入输出,需要对<<和>>进行重载。 6. 在线OJ中的输入和输出: 对于IO类型的算法,一般都需要循环输入
输出:严格按照题目的要求进行,多一个少一个空格都不行。
连续输入时,vs系列编译器下在输入ctrl+Z时结束
// 单个元素循环输入 while(cin>>a) { // ... } // 多个元素循环输入 while(c>>a>>b>>c) { // ... } // 整行接收 while(cin>>str) { // .
大家好,之前发了关于 PyCharm 与 VS Code 对比的文章,大家也是很有感慨。
鉴于 PyCharm 是收费的工具,不少同学在想方设法寻找破解之法。
而 VS Code 是免费开源的工具,并且是微软旗下产品,如果能够媲美 PyCharm 的话,也不失为一个良好的选择。
VS Code 是一个相当优秀的 IDE ,具备开源、跨平台、模块化、插件丰富、启动时间快、颜值高、可高度定制等等优秀的特质,最近几年流行度也是越来越高。
今天来跟大家分享下在 VS Code 下配置和使用 Python,作为对 PyCharm 的替代选择之一。
01 软件准备 既然是在 VS Code 中进行 Python 环境配置,在配置之前需要安装好 Python 和 VS Code。
Python 安装 关于 Python 的安装,可以从 Python 官网下载 Python 进行安装,也可以通过 Anaconda 来安装,Lemon 建议直接安装 Anaconda 。
Anaconda 是一个开源的 Python 发行版本,其包含了 conda、Python 等 100 多个科学包及其依赖项。
Anaconda 官方网站下载地址如下:
https://www.anaconda.com/products/individual
在 Lemon 编写此文时,Anaconda 对应的 Python 版本是 Python 3.
工作中需要用到CA数字证书,经过搜索相关资料,做以下共享,若有不足之处,还望读者海涵。在保护我们的在线交流和数据安全方面,CA数字认证发挥着关键的作。
(注意)仅是能否实现CA数字证书的test代码。实际生产最好不要使用。有其它非常简单的方式!
(一)做法以及流程: * 添加Bouncy Castle安全提供程序: 开始时,通过Security.addProvider(new BouncyCastleProvider())将Bouncy Castle作为Java的安全提供程序添加到代码中,
* 以便支持使用Bouncy Castle进行加密和签名操作。
* 生成根证书和私钥: 使用RSA算法生成一个2048位的密钥对,其中包括根证书的密钥对rootKeyPair。
* 然后,使用generateRootCertificate方法生成自签名的根证书rootCertificate,包含了根证书的基本信息和公钥。
* 生成的根证书会被保存到文件root-ca-cert.pem,私钥会被保存到文件root-ca-key.pem。
* 生成实体证书请求(CSR)和私钥: 类似地,使用RSA算法生成一个2048位的密钥对,其中包括实体的密钥对entityKeyPair。
* 然后,使用generateEntityCertificate方法生成实体的证书请求(CSR)entityCertificate,并将该请求提交到CA。
* 如果请求成功(HTTP响应码为200到299之间),则实体的证书会被保存到文件entity-cert.pem,私钥会被保存到文件entity-key.pem。
* 数字证书验证: 在verificationSignatureCertificate方法中,服务端验证客户端传来的数字证书的有效性。
* 首先,加载根证书,创建TrustAnchor表示可信任的根证书,然后将其添加到PKIXParameters中,用于配置和初始化PKI验证。
* 接着,使用CertPathValidator进行证书路径验证,并检查证书的有效期、主体和颁发者是否匹配。
* 数字证书签名和封装: 在getSignatureCertificatePKCS7方法中,服务端使用私钥对要签名的数据进行签名,
* 生成数字签名,然后将签名证书和签名结果打包为PKCS#7格式的数字证书。使用CMSSignedDataGenerator类生成PKCS#7格式的数字证书,并将其转换为字节数组返回。
* RSA公钥加密: 在RSAEncryptCertificate方法中,服务端使用客户端传来的RSA公钥对数字证书进行加密,
* 再将加密后的数字证书和使用AES密钥对数字证书进行加密后的结果封装为EncryptedDataAndAESKey对象返回。
* 发送CSR到CA: 在sendCSRToCA方法中,服务端使用HTTP POST请求将实体的证书请求(CSR)发送到CA。
* 首先构建请求参数和请求体,然后使用HttpsURLConnection建立安全的HTTPS连接,将请求体写入输出流,获取响应结果(响应码和响应体),并返回响应码。
* CA签署CSR后,将服务器数字证书发送回服务器。(可以使用定时器等接收CA发回的数字证书)
* 服务器接收到由CA签发的服务器数字证书后,将其与服务器的私钥一起保存在服务器上。私钥仍然必须保持机密。
* 在服务器上配置和使用数字证书:
* 服务器在其网络服务(如HTTPS服务器)中配置并使用服务器数字证书。客户端连接服务器时,可以使用服务器数字证书来验证服务器的身份,并启用安全通信。
1:需要导入的依赖包 import cn.ueclzsz.im.common.utils.Assert; import cn.ueclzsz.im.service.rsa.entity.EncryptedDataAndAESKey; import cn.ueclzsz.im.service.rsa.utlis.Common.CommonUtils; import org.bouncycastle.asn1.x500.X500Name; import org.bouncycastle.asn1.x500.X500NameBuilder; import org.
前言 MySQL Workbench是一个强大的数据库设计工具,它不仅支持可视化建模和管理MySQL数据库,还提供了便捷的数据导入导出功能。本篇博客将详细介绍如何使用MySQL Workbench的图形界面来导出数据库的表结构和/或数据,以及如何通过命令行工具mysqldump实现同样的目标。
使用MySQL Workbench图形界面导出 步骤一:连接到数据库服务器 启动MySQL Workbench并确保已经成功连接到你的MySQL数据库服务器。
步骤二:选择“数据导出”功能 在Workbench主窗口左侧的“Management”(管理)面板中找到并点击“Data Export”(数据导出)图标,通常这个图标可能表现为一个向下的箭头或者类似硬盘形状的图案。
步骤三:配置导出选项 在新打开的“Data Export”窗口中,选择你希望导出其结构和/或数据的数据库。你可以通过勾选相应的复选框来选定特定的表进行导出。
配置导出设置:
Schema Options:在这里可以指定是否包含表结构、触发器、存储过程等信息。Object Selection:如果你只想导出部分表,请在此处精确选择。Output:设定输出文件的位置、名称及格式,默认为SQL脚本形式。 导出内容选择:
如果仅需导出表结构,取消勾选“Dump Table Data”,保留“Dump Table Structure”被勾选。若要同时导出结构和数据,则必须保持“Dump Table Data”处于勾选状态。 进阶选项:高级选项按钮提供更多定制化导出的可能性,比如字符集、SQL模式、禁用外键检查等。
步骤四:执行导出操作 完成上述设置后,单击底部的“Start Export”(开始导出)按钮以启动导出进程。程序会根据你的设置生成一个包含表结构和/或数据的SQL脚本文件。
使用命令行工具mysqldump 对于喜欢命令行操作或需要自动化导出任务的用户,可以利用MySQL自带的mysqldump工具:
# 基础命令示例 mysqldump -u [username] -p[password] --host=[hostname] --databases [database_name] [--no-data] | gzip > dump.sql.gz 解释:
-u [username]:替换为实际数据库用户名。-p[password] 或 -p 后接密码(出于安全考虑,推荐使用环境变量或选项文件传递密码)。--host=[hostname]:填写数据库服务器地址。--databases [database_name]:列出要导出的数据库名。--no-data:如果仅需导出表结构而不含数据,则添加此选项。 该命令执行后将会生成一个压缩的SQL转储文件,解压后即可还原表结构和数据。
请务必确保你在执行这些操作时具有足够的权限,并根据实际情况调整命令中的参数。
总结起来,在MySQL Workbench中导出表结构和数据是一项基础且实用的功能,无论是通过直观的图形界面还是高效的命令行方式,都能轻松满足不同场景下的需求。
在本节中,我们将详细介绍如何使用Python操作WPS(Word Processing Service)。我们将使用python-wps-client库,它是一个用于与WPS服务器通信的Python客户端。
安装python-wps-client库: pip install python-wps-client 导入python-wps-client库: from wpsclient import WPSClient 创建一个WPSClient实例,指定WPS服务器的URL: wps = WPSClient('http://localhost:8090/wps') 获取WPS服务器上的所有过程: processes = wps.list_processes() print(processes) 这将返回一个包含所有可用过程的列表。
获取特定过程的详细信息: process_id = 'my_process' process_details = wps.describe_process(process_id) print(process_details) 这将返回指定过程的详细信息,包括输入、输出和其他元数据。
执行一个过程: process_id = 'my_process' inputs = { 'input1': 'value1', 'input2': 'value2', } outputs = { 'output1': 'output1.txt', } execution = wps.execute(process_id, inputs=inputs, outputs=outputs) print(execution) 这将执行指定的过程,并返回一个包含执行结果的字典。
获取执行结果: execution_id = execution['execution_id'] result = wps.get_result(execution_id) print(result) 这将返回执行结果的详细信息。
下载输出文件: output_id = 'output1' output_file = wps.
scan.startup.mode 是 Flink 中用于设置消费 Kafka topic 数据的起始 offset 的配置参数之一。scan.startup.mode 可以设置为以下几种模式:
earliest-offset:从最早的 offset 开始消费数据。latest-offset:从最新的 offset 开始消费数据。group-offsets:从消费者组的 offset 开始消费数据。timestamp:根据指定的时间戳开始消费数据。specific-offsets:根据指定的 offset 开始消费数据。 在 Flink 的配置文件(如 flink-conf.yaml)中,,可以通过设置以下参数来配置 scan.startup.mode:
# 设置启动模式为 earliest-offset flink.connector.kafka.scan.startup.mode: earliest-offset 或者在程序中使用 FlinkKafkaConsumer 的 setStartupMode() 方法来设置启动模式:
Properties props = new Properties(); props.setProperty("bootstrap.servers", "localhost:9092"); props.setProperty("group.id", "consumer-group"); FlinkKafkaConsumer<String> kafkaConsumer = new FlinkKafkaConsumer<>("topic-name", new SimpleStringSchema(), props); kafkaConsumer.setStartupMode(StartupMode.EARLIEST); // 使用 kafkaConsumer 进行后续操作 需要注意的是,scan.startup.mode 参数是用于 Flink 1.14 版本及以上。在更早的版本中,可以使用 flink.consumer.startup-mode 参数来设置消费 Kafka 数据的起始 offset 模式。
更多消息资讯,请访问昂焱数据。
App NamePackage NameFolder NameAdaptive Connectivity Servicecom.google.android.apps.sconeACSAndroid System Intelligencecom.google.android.asAndroidSystemIntelligenceGoogle Assistant Gocom.google.android.apps.assistantAssistantGoAssistant Shellcom.google.android.apps.googleassistantAssistantShellGoogle Play Bookscom.google.android.apps.booksBooksCalculatorcom.google.android.calculatorCalculatorGoogleGoogle Calendarcom.google.android.calendarCalendarGoogleCarrier Servicescom.google.android.imsCarrierServicesCarrier Settingscom.google.android.carrierCarrierSettingsChromecom.android.chromeChromeCross Device Servicescom.google.ambient.streamingCross-Device ServicesClockcom.google.android.deskclockDeskClockGoogleGoogle Drivecom.google.android.apps.docsDriveGoogle Duocom.google.android.apps.tachyonDuoGoogle Duo Gocom.google.android.apps.tachyonDuoGoGoogle Docscom.google.android.apps.docs.editors.docsEditorsDocsGoogle Sheetcom.google.android.apps.docs.editors.sheetsEditorsSheetsGoogle Slidescom.google.android.apps.docs.editors.slidesEditorsSlidesEntertainment Spacecom.google.android.apps.mediahome.launcherEntertainmentSpaceeSIM Managercom.google.android.euiccEuiccGoogleFiles by Googlecom.google.android.apps.nbu.filesFilesGoogleFiles by Google Chinacom.google.android.apps.nbu.filesFilesGoogleChinaGoogle Find My Devicecom.google.android.apps.admFindMyDeviceGoogle Fitcom.google.android.apps.fitnessFitFitbitcom.fitbit.FitbitMobileFitbitGallery Go by Google Photoscom.google.android.apps.photosgoGalleryGoGmailcom.google.android.gmGmail2Gmail Gocom.google.android.gm.liteGMailGoGoogle Play servicescom.google.android.gmsGmsCoreGoogle Play services Gocom.google.android.gmsGmsCoreGoVoice Action Servicescom.google.android.apps.actionsserviceGoogleActionsServiceGoogle Classroomcom.google.android.apps.classroomGoogleClassroomContactscom.google.android.contactsGoogleContactsPhonecom.google.android.dialerGoogleDialerPhone Gocom.google.android.dialerGoogleDialerGoGoogle Earthcom.google.earthGoogleEarthGoogle Homecom.google.android.apps.chromecast.appGoogleHomeGoogle Kids Spacecom.google.android.apps.kids.homeGoogleKidsSpaceGoogle Newscom.google.android.apps.magazinesGoogleNewsGoogle Onecom.google.android.apps.subscriptions.redGoogleOneGoogle Paycom.google.android.apps.walletnfcrelGooglePayGoogle Pay (Tez)com.google.android.apps.nbu.paisa.userGooglePayIndiaGoogle Play Protect Servicescom.google.android.odadGooglePlayProtectServicesGoogle Restorecom.google.android.apps.restoreGoogleRestoreGoogle Gocom.google.android.apps.searchliteGoogleSearchGoGoogle TTScom.google.android.ttsGoogleTTSGoogle Walletcom.google.android.apps.walletnfcrelGoogleWalletGPay3com.google.android.apps.nbu.paisa.userGPay3Google Wi-Fi Provisionercom.google.android.apps.carrier.carrierwifiGWPHangoutscom.google.android.talkHangoutsHealth Connectcom.
苹果mac电脑的轻薄与不卡是有目共睹的,像苹果手机一样都是苹果公司独立自主的系统!老旧的苹果笔记本不管是air还是pro或book,老系统用内置的更新升级只能升级到10.13系统,而很多软件app已经不支持10.13系统的安装,例如钉钉等推荐系统10.14,像腾讯视频app等需要的是10.15系统!怎么升级比较好?如果您不下载最新的app,单纯只是使用苹果mac做点基础的表格工作那10.13系统即可完美的在mac运行而且很流畅,如果需要下载新app就直接升级10.15系统,打开您的苹果电脑链接网络后下面是升级的方式:
友情说明:老苹果硬盘128g,在装了双系统的情况下因空间不足无法下载,那么您就要先格了win系统后腾出空间来再下面的操作升级系统,更新完了系统以后再装一次win系统或在mac系统下安装vm虚拟机实现win的使用。这里就不做说明了!下面是升级的地址,打开在浏览器打开那个地址后,选择那个10.15点击一下就自动下载安装了,时间比较久推荐插入电源线操作以免断电,以免断电,以免断电!希望能够帮到大家!
点我打开苹果官方在线自动更新地址!
【ClickHouse-Sql】ClickHouse 时间日期函数 1)常用时间函数2)获取未来时间的函数3)获取过去时间的函数4)计算连个时刻在不同时间单位下的差值 1)常用时间函数 now() // 2020-04-01 17:25:40 取当前时间 toYear() // 2020 取日期中的年份 toMonth() // 4 取日期中的月份 today() // 2020-04-01 今天的日期 yesterday() // 2020-03-31 昨天的额日期 toDayOfYear() // 92 取一年中的第几天 toDayOfWeek() // 3 取一周中的第几天 toHour() //17 取小时 toMinute() //25 取分钟 toSecond() //40 取秒 toStartOfYear() //2020-01-01 取一年中的第一天 toStartOfMonth() //2020-04-01 取当月的第一天 formatDateTime(now(),'%Y-%m-%d') // 2020*04-01 指定时间格式 toYYYYMM() //202004 toYYYYMMDD() //20200401 toYYYYMMDDhhmmss() //20200401172540 dateDiff() 用例:
SELECT toDateTime('2019-07-30 10:10:10') AS time, -- 将DateTime转换成Unix时间戳 toUnixTimestamp(time) as unixTimestamp, -- 保留 时-分-秒 toDate(time) as date_local, toTime(time) as date_time, -- 将DateTime中的日期转换为一个固定的日期,同时保留时间部分。 -- 获取年份,月份,季度,小时,分钟,秒钟 toYear(time) as get_year, toMonth(time) as get_month, -- 一年分为四个季度。1(一季度:1-3),2(二季度:4-6),3(三季度:7-9),4(四季度:10-12) toQuarter(time) as get_quarter, toHour(time) as get_hour, toMinute(time) as get_minute, toSecond(time) as get_second, -- 获取 DateTime中的当前日期是当前年份的第几天,当前月份的第几日,当前星期的周几 toDayOfYear(time) as "
动态规划5.0 动态规划 - - - 子序列问题(数组中不连续的一段)1. 最长递增子序列2. 摆动序列3. 最长递增子序列的个数4. 最长数对链5. 最长定差子序列6. 最长的斐波那契子序列的长度7. 最长等差数列8. 等差数列划分Ⅱ - 子序列 动态规划 - - - 子序列问题(数组中不连续的一段) 1. 最长递增子序列 题目链接 -> Leetcode -300.最长递增子序列
Leetcode -300.最长递增子序列
题目:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。
例如,[3, 6, 2, 7] 是数组[0, 3, 1, 6, 2, 2, 7] 的子序列。
示例 1:
输入:nums = [10, 9, 2, 5, 3, 7, 101, 18]
输出:4
解释:最长递增子序列是[2, 3, 7, 101],因此长度为 4 。
示例 2:
输入:nums = [0, 1, 0, 3, 2, 3]
Python是一种面向对象的解释型计算机程序设计语言,其使用,具有跨平台的特点,可以在Linux、macOS以及Windows系统中搭建环境并使用,其编写的代码在不同平台上运行时,几乎不需要做较大的改动,使用者无不受益于它的便捷性。
此外,Python的强大之处在于它的应用领域范围之广,遍及人工智能、科学计算、Web开发、系统运维、大数据及云计算、金融、游戏开发等。实现其强大功能的前提,就是Python具有数量庞大且功能相对完善的标准库和第三方库。通过对库的引用,能够实现对不同领域业务的开发。然而,正是由于库的数量庞大,对于管理这些库以及对库作及时的维护成为既重要但复杂度又高的事情。
工欲善其事,必先利其器,我们在本节给大家介绍Python的集成开发环境Anaconda的安装、配置及使用,大家在后续的Python及数据科学知识学习过程中会经常用到这套环境工具。
1.内容简介 本篇将对 Python集成开发环境 进行简要的介绍,通过阅读本篇内容您将了解到:
Anaconda 简要介绍;Anaconda的适用平台及安装条件;Anaconda的安装步骤;Anaconda工具库管理; 2.Anaconda介绍 (1)Anaconda简介 Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
(2)Anaconda特点 Anaconda具有如下特点:
开源安装过程简单高性能使用Python和R语言免费的社区支持其特点的实现主要基于Anaconda拥有的:conda包、环境管理器、1,000+开源库 如果日常工作或学习并不必要使用1,000多个库,那么可以考虑安装Miniconda(下载界面请戳),这里不过多介绍Miniconda的安装及使用。
(3)Anaconda应用场景与优势 如果想使用Python进行数据分析和机器学习,应用在人工智能、科学计算、Web开发、系统运维、大数据及云计算、金融等领域。下载安装Anaconda集成环境可以帮你把基础数据科学和机器学习工具库都配置好。
可以安装和使用的一系列工具库 拥有界面化的应用程序及包管理应用-Navigator 有学习社区资源 3.Anaconda的适用平台及安装条件 (1)适用平台 Anaconda可以在以下系统平台中安装和使用:
WindowsmacOSLinux(x86 / Power8) (2)安装条件 系统要求:32位或64位系统均可下载文件大小:约500MB所需空间大小:3GB空间大小(Miniconda仅需400MB空间即可) 4.Anaconda的安装步骤 (1)macOS系统安装Anaconda 1)前往官方下载页面下载。版本建议选择python3.x以上。
2)完成下载之后,双击下载文件。
3)“Destination Select”部分选择“Install for me only”并点击下一步。
4)“Installation Type”部分,可以点击“Change Install Location”来改变安装位置。若选择默认安装路径,则直接点击“Install”进行安装。
5)等待“Installation”部分结束,在“Summary”部分若看到“The installation was completed successfully.”则安装成功,直接点击“Close”关闭对话框。
6)在mac的Launchpad中可以找到名为“Anaconda-Navigator”的图标,点击打开。
7)若“Anaconda-Navigator”成功启动,则说明真正成功地安装了Anaconda;
8)完成安装。
(2)Windows系统安装Anaconda 1)前往官方下载页面下载。选择Python 3.X 版本下载。
2)完成下载之后,双击下载文件,启动安装程序。
3)选择“Next”。
4)阅读许可证协议条款,然后勾选“I Agree”并进行下一步。
5)除非是以管理员身份为所有用户安装,否则仅勾选“Just Me”并点击“Next”。
6)在“Choose Install Location”界面中选择安装Anaconda的目标路径,然后点击“Next”。
7)在“Advanced Installation Options”中勾选“Register Anaconda as my default Python 3.
查看系统python版本并作相应修改 一、查看系统中的 Python 版本 这里我的服务器系统是Ubuntu,以此为例子 ,命令如下:
使用 python3 命令:python3 --version 我原本python的版本是3.8使用 python3 命令加上 -V 选项:python3 -V 查看系统中所有已安装的 Python 版本:ls /usr/bin/python* 二、更新系统python版本 这里以python==3.10为例子
要更新 Ubuntu 系统中的 Python 版本,你可以按照以下步骤操作:
安装 Python 3.10:sudo apt update sudo apt install python3.10 安装 Python 3.10 的 pip:sudo apt install python3.10-venv python3.10-dev 设置 python3.10 为默认版本:sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 验证安装是否成功:python3 --version 更改完成之后,我的系统python版本就是3.10了 经过步骤将会在你的系统上安装 Python 3.10 并将其设置为默认的 Python 版本。
请注意,这可能会影响到依赖于 Python 版本的其他应用程序,所以请确保你的系统中的所有应用程序都能正常运行在新的 Python 版本下。
三、遇到的报错 执行$ sudo apt install python3.
控制台报错:(其他报错信息往下滑,下面的解决方法可以解决大部分的报错,不只是这一种) ERROR Error loading vue.config.js:
ERROR TypeError: defineConfig is not a function
TypeError: defineConfig is not a function
at Object.<anonymous> (D:\java\Develop\learn\vue-vue\vue\vue.config.js:3:18)
at Module._compile (node:internal/modules/cjs/loader:1376:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
at Module.load (node:internal/modules/cjs/loader:1207:32)
at Module._load (node:internal/modules/cjs/loader:1023:12)
at Module.require (node:internal/modules/cjs/loader:1235:19)
at require (node:internal/modules/helpers:176:18)
at Service.loadUserOptions (D:\java\Develop\learn\vue-vue\vue\node_modules\@vue\cli-service\lib\Service.js:283:22)
at Service.init (D:\java\Develop\learn\vue-vue\vue\node_modules\@vue\cli-service\lib\Service.js:72:30)
at Service.run (D:\java\Develop\learn\vue-vue\vue\node_modules\@vue\cli-service\lib\Service.js:204:10)
首先他报的是一个:defineConfig is not a function,检查你的vue.config.js文件,看是不是格式不正确才导致的报错。
不管下面的逻辑,前两行一定要定义正确
// vue.config.js const { defineConfig } = require('@vue/cli-service'); export default defineConfig({ // 这里放置你的配置选项 }); 如果确实是正确的,格式一模一样,那就看是不是node.js和npm的版本问题。
Flower
反悔贪心,按照时间对花朵进行排序,从0到n-1遍历花朵,如果当前堆中元素小于当前花朵的绽放时间t,直接放入堆中,否则花朵金币数放入堆中并弹出堆中金币数最小值,最后如果堆中元素个数大于k,一直弹出堆中最小金币数直到元素个数等于k
#include <iostream> #include <queue> #include <vector> #include <algorithm> using namespace std; const int N=1e5+5; int t[N], w[N]; int main() { int n, k; cin>>n>>k; for(int i=0;i<n;i++){ cin>>t[i]; } for(int i=0;i<n;i++){ cin>>w[i]; } vector<pair<int,int>> v; for(int i=0;i<n;i++){ v.push_back({t[i], w[i]}); } priority_queue<int, vector<int>, greater<int>> pq; sort(v.begin(), v.end(), [](const pair<int,int>& p1, const pair<int,int>&p2){ return p1.first < p2.first; }); int ans = 0; for(int i=0;i<n;i++){ if(v[i].first > int(pq.size())){ pq.push(v[i].second); ans+=v[i].second; }else{ ans+=v[i].
NLP和CV是人工智能的两个重要分支,它们在处理和分析信息方面有不同的侧重点和挑战。
NLP(自然语言处理)旨在让计算机理解和生成人类语言,主要处理的是文本信息。NLP的研究和应用主要集中在如何让计算机理解和生成人类语言,以及如何从文本中提取有用的信息。NLP的任务包括但不限于文本分类、情感分析、问答系统、机器翻译等。
CV(计算机视觉)则专注于让计算机能够理解和处理图像和视频。CV的主要任务包括图像识别、目标检测、图像分割、姿态估计等。
尽管NLP和CV有很大的区别,但两者也存在着交叉和融合的可能性。例如,在智能视觉识别系统中,计算机既需要理解图像的内容,也需要理解人类对图像的描述和解释;在智能语音识别系统中,计算机既需要理解语音的内容,也需要理解人类对语音的视觉解释。因此,在实际应用中,NLP和CV常常需要相互配合,共同完成更复杂的任务。
在未来几年内,NLP和CV之间的竞争可能会更加激烈。随着人工智能技术的不断发展和普及,越来越多的企业和组织开始意识到NLP和CV的重要性,并投入大量资源进行相关研究和应用开发。
一方面,NLP和CV作为人工智能的两个重要分支,都有各自的技术挑战和难点。例如,NLP需要解决语言本身的复杂性和动态性,而CV需要处理图像和视频数据的多样性和不确定性。因此,未来几年内,NLP和CV的研究和应用可能会更加深入和专业化。
另一方面,随着技术的不断进步和应用需求的不断增加,NLP和CV之间的交叉和融合也会逐渐增多。例如,在智能驾驶、智能安防等领域,NLP和CV技术的应用需要相互配合,才能实现更高级别的智能化。因此,未来几年内,企业和技术公司可能会更加注重NLP和CV技术的整合和创新。
总之,未来几年内,NLP和CV之间的竞争可能会更加激烈,但这种竞争将有助于推动人工智能技术的不断进步和应用领域的拓展。同时,企业和技术公司也需要更加注重技术整合和创新,以适应不断变化的市场需求和竞争环境。
上章内容请点击链接:Android分区挂载原理介绍(上)
三、分区挂载流程介绍 3.1 分区挂载顺序总览
挂载顺序
实际内容所在物理分区
挂载点名称
是否为logical分区
Avb校验
avb校验信息保存位置
挂载阶段
fstab生效位置
1
metadata
/metadata
否
否
N/A
init first stage
vendor_boot(ramdisk)
2
super
/system
是
是
vbmeta_system
init first stage
vendor_boot(ramdisk)
5
super
/system_ext
是
是
vbmeta_system
init first stage
vendor_boot(ramdisk)
6
super
/product
是
是
vbmeta_system
init first stage
vendor_boot(ramdisk)
7
super
/vendor
是
是
vbmeta_vendor
init first stage
vendor_boot(ramdisk)
8
super
/vendor_dlkm
是
是
vbmeta_vendor
init first stage