ChatGPT 4.0 升级指南, ChatGPT Plus(GPT 4.0) 有何优势?

1.ChatGPT 是什么? ChatGPT 是由 OpenAI 开发的一种基于人工智能的聊天机器人,它基于强大的语言处理模型 GPT(Generative Pre-trained Transformer)构建。它能够理解人类语言,可以为我们解决实际的问题。 ChatGPT 4.0 有何优势? ChatGPT(默认是GPT3.5) 自从发布以来,便受到了广泛的关注和火热追求。而作为 3.5 升级版的 GPT4.0(ChatGPT Plus),比 3.5 会更加稳定、更加牛叉!!,牛叉的地方在于以下几点: 1.模型规模: GPT-4.0 比 GPT-3.5 更大。GPT-4.0 拥有更多的参数和更深的神经网络,可以更好地处理复杂的语言模式。 2.训练数据:GPT-4.0 使用的数据比 GPT-3.5 更多。OpenAI公司从互联网上收集了更多的语料库来训练 GPT-4.0,从而提高了模型的准确性和生成效果。 3.训练时间:GPT-4.0的训练时间比GPT-3.5更长。为了训练更大的模型,OpenAI公司需要更长时间的训练和优化。 4.生成效果:GPT4 可以更准确地理解自然语言,生成的文本也更加自然流畅和符合逻辑。 5.图像分析能力:相比 GPT-3.5,GPT-4 可以接受图像作为输入,并生成标题、分类和分析。 不仅如此,GPT4 简直就是最强大的生产力工具,不仅可以回答你各种各样的问题,还能帮你写论文、写代码、写文案、写文章等。 作为一名程序员,我已经使用 ChatGPT Plus 快一年了,不管是工作中遇到的问题还是我业余时间写技术博客,我都会使用 GPT 4.0,作为过来人,GPT 3.5 和 GPT 4.0 我都使用过,给我最大的感受就是 GPT 4.0 的回答更有逻辑,对于问题的解答也更精确,极大的提高了工作效率。 不妨来看个例子,来看个 C++ 常见的面试题:C++中的多态是如何实现的? 首先来看下 GPT 3.5 的回答: 再来看下 GPT 4.0 的回答: 很明显,GPT 4.0 的回答更专业,更深入,更准确!! 不局限于编程,其他领域的问题,我们都可以询问 GPT 4.

Retinal Structure Detection in OCTA Image via Voting-Based Multitask Learning论文总结

论文:Retinal Structure Detection in OCTA Image via Voting-Based Multitask Learning - AMiner 代码:https://codeload.github.com/iMED-Lab/VAFF-Net/zip/refs/heads/master 目录 一、摘要 二、方法 A. 特征提取器和投票模块 B. RVJ 检测与分类任务头 一、摘要 研究背景:自动检测视网膜结构,如视网膜血管(RV)、中央凹血管区(FAZ)和视网膜血管连接(RVJ),对了解眼部疾病和临床决策具有重要意义。 主要工作:在本文中,提出了一种新的基于投票的自适应特征融合多任务网络(VAFF-Net),用于光学相干断层扫描血管造影(OCTA)中RV、FAZ和RVJ的联合分割、检测和分类。 提出了一种针对特定任务的 投票门模块 ,从两个层面对特定任务自适应地提取和融合不同的特征:来自单个编码器的不同空间位置的特征和来自多个编码器的特征。特别是,由于OCTA图像中微血管的复杂性,使得同时精确定位和分类视网膜血管连接为分叉/交叉是一项具有挑战性的任务,专门设计了一个结合热图回归和网格分类的 任务头 。利用来自不同视网膜层的三种不同的面血管造影,而不是遵循仅使用单一面造影的现有方法。 实验结果:对使用不同成像设备获取的三个octa数据集进行了广泛的实验,结果表明,所提出的方法总体上优于最先进的单一用途方法或现有的多任务学习解决方案。我们还证明了我们的多任务学习方法可以推广到其他成像模式,如彩色眼底摄影,并且可能被用作通用的多任务学习工具。我们还构建了三个用于多结构检测的数据集,其中部分数据集的源代码和评估基准已经对外开放。 二、方法 所提出的VAFF-Net的整体架构如图所示: VAFF-Net包括三个主要组件:特征提取模块、投票门模块(VGM)和任务头。 A. 特征提取器和投票模块 目的:使用包含深度信息的输入同时提取多个视网膜结构。VAFF-Net的输入是IVC、SVC和DVC三个面投影。通过特征提取器和三个任务头,可以同时获得RV、FAZ和RVJ的检测结果。特征提取模块由三个特征提取器组成,分别对应三个输入的面部血管图,即IVC、SVC和DVC。 特征提取器:作者采用ResNet-50作为特征提取器,其中将第一个7 × 7卷积层替换为具有相同填充的3 × 3卷积,以确保投票门模块的输出大小与输入图像的大小一致。在作者的实现中,除了第一个卷积层,三个提取器共享权重,以限制可学习参数的数量。由于不同的输入和第一层的独立性,这三个编码器能够提取不同的特征,尽管在后面使用了共享权重的策略。 投票模块:投票模块包含三个独立的特定于任务的投票门模块,每个模块对应一个任务,并自适应学习如何进行特征选择和融合。 1. 模块组成:VGM由多个3 × 3的卷积层组成,经过批处理归一化(batch normalization, BN)和ReLU激活,最后的卷积层使用sigmoid算子将特征映射成具有3个通道的概率形式,作为选择特征的门。(重点)2. 输入/输出:每个task∈{RV, FAZ, RVJ}的VGM以来自三个编码器的第一层输出的拼接作为输入,对应的输出是学习的投票门特征。3. 作用:投票门可以选择两个层次的特征:不同层面的图像,以及来自编码器的不同空间位置的特征。(前者考虑到从三幅图像中获得的特征对于每个任务的重要性是不同的。对于后者,我们可以利用以下空间特性:FAZ分割任务侧重于黄斑区域;RVJ检测任务依赖于相交血管的位置,而血管分割任务则需要更多地关注血管的边缘。) 在得到每个任务的投票门特征后,将三个编码器的多尺度融合特征 (i∈{1,2,3})分别与(task∈{RV, FAZ, RVJ})相乘,求和得到相应任务的综合特征映射。这些操作可以表述为: 其中 n 是特征通道的数量,表示投票门的第 i 个通道,◦ 表示元素相乘。然后将特定于任务的特征映射馈送到相应的任务头部,以获得特定于任务的最终结果。 Q:权重共享怎么实现的? A:调用相同的编码器层分别依次对IVC、SVC和DVC图像进行卷积。 Q:F1、F2、F3是怎么得到的? A:相当于使用了三个相同的编码器路径和解码器路径,最终的输出也是三个不同的特征图。 代码如下: resnet = models.

uni-table 固定表头

本方法是 , 具体表格内容多高自己设置; 至于可能造成的表头与内容宽度不一致, 则自己为每一列设置宽度; 内容全部挤在第一列的话, 则需注意插槽问题, 用一个大标签,将表头和内容一起包裹起来 <uni-table border stripe emptyText="暂无更多数据"> <view style=""> <uni-tr> <uni-th width="100" align="center">日期</uni-th> <uni-th width="100" align="center">姓名</uni-th> <uni-th width="100" align="left">地址</uni-th> <uni-th width="100" align="left">地址</uni-th> <uni-th width="100" align="left">地址</uni-th> </uni-tr> <uni-tbody style="height: 50vh;overflow: auto;"> <uni-tr> <uni-td width="100">2020-10-20</uni-td> <uni-td width="100">Jeson</uni-td> <uni-td width="100">北京市海淀区</uni-td> <uni-td width="100">北京市海淀区</uni-td> <uni-td width="100">北京市海淀区</uni-td> </uni-tr> </uni-tbody> </view> </uni-table> 至于将第一列固定的方法, 本想通过粘性布局的方式 固定, 但由于其父滚动元素设置了 overflow: auto, 导致粘性布局失效 .fixed { position: sticky; left: 0; z-index: 1; background-color: #fff; }

Python安全工具开发思路分享

前言 安全的起点是脚本小子,安全的路程是代码,安全终点是自动化。我最开始要去写代码的时候是因为想用一个工具,但是全网资源找不到,于是一狠心,自己去做一个这样的工具。最开始就是简单学习代码知识,个人建议最开始还是Python或者Go,Python在数据处理和Ai这里其实都很有优势,Go的优势是比Python快,同时线程高并发。 我的理解是工具的自动化其实就是代替人去做重复工作的事情,比如一个漏洞扫描器,常规的漏扫工具的原理就是通过已知的poc,代替人工去尝试,通过特定的请求和返回特征去判断是否存在。 简单来说就是输入,请求,响应,判断,处理。 01. 输入 第一步是输入,自动化的工具等待用户输入相关参数和信息,比如url、可选选项。这里拿Find-something的源码来做演示: Python常用的命令行脚本模块是argparse,这个是一个接受命令行参数的Python模块。 parse_args()函数定义了脚本可以接受的参数。例如-u用于目标URL,entrance()函数调用parse_args()来解析命令行参数并将它们存储在args变量中。 如果提供了-f参数,则脚本会读取文件并将其传递给 frame.check_frame(file).fileDeal() 或 deal.Deal(file).fileDeal() 具体取决于提供的其他参数‍ 如果提供了-m,则调用 frame.check_frame(file).fileDeal() 如果提供了-p,则调用 deal.Deal(file).fileDeal() 如果既没有提供-m也没有提供-p,则两个函数都会按顺序调用。 请求 02. 第二步是请求,这里主要讲一个方法的参数,常用的就是requests。 Requsets是一个Python的第三方库,一般用这个的理由是因为它可以定制化请求参数。 一般在工具中核心参数如下: 第一个参数,url,一般是目标加上poc的url,也就是请求路径。 第二个参数,header, 请求过程中的请求头这里有个小技巧: 在定义请求头的过程中可使用随机值,来随机X-Real-IP,这样能绕过一些防火墙的限制,提高准确率。 第三个参数,data,用来定义POST请求的body,post的内容。 第四个参数,verify,如果目标https请求中需要ssl认证,加入这个参数可以绕过认证。 第五个参数,time,主要控制一次请求的超时,如果请求在规定时间内没有响应则会报错。 03. 响应 请求完毕后会获得一个响应的对象,对应上述图中的respone。响应体分为respone.header响应体的头,通常包括一些响应信息。 repone.status_code也就是响应的返回值,通常200就是响应,301跳转。 还有就是响应的内容,repone.text,它通常是判断的依据。 判断 04. 判断,是一个自动化脚本准确性的依据,也就是特征值,在一个脚本中,通过是通过响应的所有内容来判断。 例如通过判断响应中是否有204来判断漏洞是否存在。 05. 处理 处理数据是很重要的部分。比如异常的处理,如果超时就会产生报错,报错后程序就会中断,导致后边的内容无法执行。另外还有结果保存的处理等场景。 小结 以上就是Python安全工具开发的一条思路分享。现在主流的开发模式都是来写框架,用yaml来写轮子,这样便于维护。 最后想给大家推荐一款工具cursor,我愿称它为编程界的魔法海螺!有一些东西我都可以交给它去做,亲测好用,能大大节省开发过程中的时间。 为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料! 因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取 [2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享] 因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取 [2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]

Linux Screen常用操作

1.创建screen终端 screen -S yourname -> 新建一个叫yourname的session 2.离开 screen 终端 在Screen终端下, 按Ctrl+a d键 3.列出当前所有的session screen -ls 4.重新连接离开的 screen 终端 # screen -ls //显示已创建的screen终端 There are screens on: 2433.pts-3.linux (2013年10月20日 16时48分59秒) (Detached) 2428.pts-3.linux (2013年10月20日 16时48分05秒) (Detached) 2284.pts-3.linux (2013年10月20日 16时14分55秒) (Detached) 2276.pts-3.linux (2013年10月20日 16时13分18秒) (Detached) 4 Sockets in /var/run/screen/S-root. # screen -r 2276 //连接 screen_id 为 2276 的 screen终端

[官方精简母盘WIM]_Windows10_22H2_19045.3930

[官方精简母盘WIM]_Windows10_22H2_19045.3930 【原汁原味】不过多阐述了哈,谁用谁知道😉 zh-cn_windows_10_business_editions_version_22h2_updated_jan_2024_x64_dvd_fef73a09 链接:https://pan.baidu.com/s/19Qj6cBHzaU8Rkn8WZ7-o2w?pwd=xpnn 提取码:xpnn

通过html2canvas和jsPDF将网页内容导出成pdf

jsPDF参考:https://github.com/parallax/jsPDF html2canvas参考:https://github.com/niklasvh/html2canvas 或者 https://html2canvas.hertzen.com 思路 使用html2canvas将选中DOM生成截图对象将截图对象借助jsPDF导出为PDF文件 代码 这是一个示例,内容都放在了单个页面进行静态引用 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>协议</title> <script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js"></script> </head> <style> body { /* font-family: Arial, sans-serif; */ text-align: center; margin-top: 50px; } .contentBox { text-align: left; margin: 0vh 8vw; } h1 { color: #333; } p { font-size: 20px; line-height: 1.5; } .canvasBox { border: #333 0.5px solid; height: 85vh; } </style> <body> <div id="xieyi" class="canvasBox"> <h1>协议</h1> <p>在此文本中,我们将声明有关事项的协议。</p> <p>请仔细阅读以下条款,并在同意后继续使用我们的服务。</p> <h2>条款一:服务使用</h2> <div class="

网络安全之漏洞扫描

漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。这些缺陷、错误或不合理之处可能被有意或无意地利用,从而对一个组织的资产或运行造成不利影响,如信息系统被攻击或控制,重要资料被窃取,用户数据被篡改,系统被作为入侵其他主机系统的跳板。 漏洞可能来自应用软件或操作系统设计时的缺陷或编码时产生的错误,也可能来自业务在交互处理过程中的设计缺陷或逻辑流程上的不合理之处。此外,配置不当、硬件设备的问题以及协议本身的弱点也可能导致漏洞的产生。 漏洞对于信息安全来说是一个重要的问题,因为它们可能被攻击者利用,从而破坏系统的完整性、机密性和可用性。攻击者可以通过利用漏洞来执行恶意代码、访问敏感数据、篡改系统行为或者完全控制一个系统。因此,及时发现和修复漏洞是保障信息安全的重要措施之一。 为了发现和修复漏洞,通常需要进行漏洞扫描、漏洞验证和漏洞修复等步骤。漏洞扫描是指使用自动化工具或手动方法检查系统中可能存在的漏洞;漏洞验证是指对扫描结果进行确认,以确定漏洞的真实性和可利用性;漏洞修复是指采取措施来消除漏洞,从而防止攻击者利用它们进行攻击。 下面我们来详细了解一下漏洞扫描能给网络从业者带来什么好处 漏洞扫描是一种自动化的网络安全检测技术,通过对网络系统进行全面的检查,发现其中存在的漏洞和弱点,以便及时修复和加固系统,提高网络安全性。所以进行漏洞扫描是必不可少的一步。 进行漏洞扫描的原理 信息收集:首先,漏洞扫描器会收集目标系统的相关信息,如IP地址、开放的端口、运行的服务、使用的操作系统和应用程序版本等。这些信息可以通过与目标系统进行交互或利用公开的可用信息来获取。 端口扫描:扫描器会尝试连接目标系统上的各个端口,确定哪些端口是开放的,并尝试确定在这些端口上运行的服务。开放的端口可能是潜在的入口点,攻击者可以利用这些端口进行进一步的攻击。 服务识别:对于开放的端口,扫描器会进一步尝试确定运行在该端口上的服务的具体类型和版本。这有助于确定系统中可能存在的已知漏洞,因为某些服务版本可能包含已知的安全漏洞。 漏洞检测:基于收集到的信息,扫描器会比对预定义的漏洞数据库或漏洞签名,以检测目标系统中是否存在已知的漏洞。这些漏洞数据库通常包含了大量已知漏洞的特征和检测方法。 漏洞验证:对于检测到的潜在漏洞,扫描器可能会进行进一步的验证,以确保漏洞的真实性和可利用性。验证过程可能包括发送特定的漏洞利用代码或攻击载荷,并观察目标系统的响应。 报告生成:最后,扫描器会生成一份详细的报告,列出目标系统中存在的漏洞、漏洞的严重性、修复建议等信息。管理员可以根据报告中的信息采取相应的措施来修复漏洞,提高系统的安全性。 进行漏洞扫描的作用 发现漏洞:漏洞扫描能够自动化地检测系统中存在的漏洞和弱点,包括操作系统、应用程序、数据库等方面的漏洞。 提供修复建议:扫描结果通常会包含漏洞的详细信息,如漏洞类型、危害等级、修复建议等,这有助于管理员快速了解漏洞情况并采取相应的修复措施。 定期检测:漏洞扫描可以定期进行,以确保系统的安全性得到持续监控和保障。定期检测可以发现新出现的漏洞并及时修复,避免漏洞被攻击者利用。 风险评估:通过对扫描结果的分析,可以对系统的安全风险进行评估,确定哪些漏洞需要优先修复,以及采取何种措施来降低风险。 进行漏洞扫描的好处 提高安全性:漏洞扫描能够发现系统中存在的漏洞和弱点,及时修复这些问题可以避免黑客利用这些漏洞进行攻击,从而提高系统的安全性。 降低成本:通过漏洞扫描,可以在系统被攻击之前发现并修复漏洞,避免因为安全事件导致的损失,从而降低企业的安全成本。 合规性要求:许多行业和组织需要遵守特定的安全合规性要求,如医疗保健、金融服务、个人数据保护等。漏洞扫描可以帮助满足这些合规性要求,提供有关系统安全性和漏洞修复的证据。 提升用户信心:对于企业而言,用户数据的保护是至关重要的。通过进行漏洞扫描并及时修复漏洞,可以向用户展示企业对数据安全的重视,提升用户的信心和忠诚度。

想让你的录音的音质变好?一定不要错过这个网页(附链接)

一.导语 大家会不会有要录视频需要让自己音质变好的,那么本期带来了一个网页,让你的音质咔咔往上涨。 二.正题 这个工具就是Adobe的Adobe Podcast AI,它是一个可以帮你提升音质的网站,能帮你把你的音频的音质变好,大家也可以使用文字下面的播放按钮来试听提升音质前和提升音质后的效果,只需要把你的音频拖到这个框框内,它就可以帮你提升音质,但是如果要使用的话,你必须先登录或注册一个账号,一般只要按照步骤就可以了(注册是点"sign in",注册点"sign up")。 链接:Adobe Podcast | AI audio recording and editing, all on the webNext generation audio from Adobe is here. Record, transcribe, edit, share. Crisp and clear, every time.https://podcast.adobe.com/enhance# 三.结尾 这里提供的网页是我个人觉得可以的网页,网上还有其他跟他一个用处的工具或网页,大家还是根据自己的需要选择适合自己的可以提升音质的工具。

Java实现音乐平台 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序+JAVA+Vue+SpringBoot+MySQL的音乐平台,包含了音乐档案模块、音乐收藏模块、音乐订单模块,支持PC后台和微信小程序用户端使用,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,基于微信小程序的音乐平台基于角色的访问控制,给音乐管理员、音乐用户角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。 1.2 项目录屏 二、功能模块 随着当今世界网络和计算机的飞速发展以及智能手机的普及,人们的生活从过去的必须使用计算机进行工作、娱乐、信息获取转变为通过使用更加便利的移动设备去代替。小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。在微信作为不可或缺的工具当下,微信小程序作为内置于微信内的功能平台,能够给绝大多数人带来对于他们自己而言更简易方便的使用感受及体验。 同时,在如今的时代背景下,音乐对于大多数人来说亦是不可或缺的元素。从商场、超市、餐厅等等舒缓的背景音乐包括现在可以说是如日中天的抖音也是结合了音乐与短视频,由此可见音乐的覆盖面,将音乐与微信小程序相结合,相信是一种有可能性的研究内容。 前台功能可含包用户登录注册、搜索、播放按钮、收藏列表等。后台功能用户管理、音乐上传、付费管理等。网站前台要求导航清晰、图文并茂、风格统一,后台要求功能完善、操作便捷。系统代码规范、运行稳定、安全性高,无明显BUG。 三、系统展示 四、核心代码 4.1 查询单首音乐 @RequestMapping(value = "/getOne", method = RequestMethod.GET) @ApiOperation(value = "查询单首音乐") public Result<Music> get(@RequestParam String id){ User currUser = securityUtil.getCurrUser(); Music music = iMusicService.getById(id); if(music == null) { return ResultUtil.error("音乐不存在"); } // 收藏 QueryWrapper<MusicCollect> mc = new QueryWrapper<>(); mc.eq("music_id",music.getId()); mc.eq("user_id",currUser.getId()); music.setCollectFlag(iMusicCollectService.count(mc)); // 下单 QueryWrapper<MusicOrder> mo = new QueryWrapper<>(); mo.

ONLYOFFICE是一站式协作免费开源办公神器

一、前言 众所周知,我们工作都离不开办公软件,一个好的办公软件可以大幅度提高工作效率,就目前市场而言,常见的办公软件有微软的 Microsoft Office 以及国产的 WPS Office,微软的 Microsoft Office是付费的,对于我们国人来说,都希望白嫖,国产的 WPS Office我也经常使用,但是非常吃电脑内存,打开非常的卡,体验不怎么丝滑,那有没有一款开源的办公软件,用户不仅可以创建、编辑和格式化各种文档类型。还能跨平台在Windows、Linux、macOS操作系统上无缝切换,灵活高效地进行开发工作,今天终于发现这款办公神奇,就是ONLYOFFICE 二、ONLYOFFICE简单介绍 ONLYOFFICE 文档是一款强大的在线编辑器,为您使用的平台提供文本文档、电子表格、演示文稿、表单和 PDF 编辑工具,支持多个平台,能在所有系统和设备上使用(windows, linux, macOS, Android, iOS),可以将ONLYOFFICE集成至自己的平台或者服务器上,还可以定制化开发,安全可靠,灵活高效地进行协同各种工作,让你工作效率倍速提升。 ONLYOFFICE官网:ONLYOFFICE - 企业在线办公应用软件 | ONLYOFFICE 三、ONLYOFFICE的核心竞争力 1、能支持完整所需的办公套件,并高度兼容微软 Office格式。 查看、编辑并协作处理文档、工作表、幻灯片创建可填写的 PDF 表单并在线填写它们阅读和编辑PDF、导出 PDF 或从 PDF 导入将文档转换为Markdown和HTML将您的课本转化为电子书使用 AI 助手生成文本 兼容多种常见格式的文档:DOCX、ODT、XLSX、ODS、CSV、PPTX、ODP等等,通过基于选项卡的用户界面,您可以在同一个窗口中处理多个文件。 2、让编辑、协作更加容易 2.1 编辑 从多种格式化工具中选择,插入和编辑复杂对象,通过插件强化用户体验。 我们还可以使用 AI 助手(chatGPT、智谱AI)等,比如我们写文章不知道大纲怎么写,用智谱AI立马可以解决你的问题 2.2在使协作过程更容易 分享您的文档,使用仅查看、编辑、审查、评论或填写表单的权限设置利用字符级和段落级的共同编辑模式比较文档,审查文档并跟踪修改留下评论和提及通过内置的聊天工具或Telegram进行交流通过 Jitsi 或 Rainbow 进行音视频通话 2.3 可在云服务中实时协作 将ONLYOFFICE桌面编辑软件连接到您选择的云平台中:可使用ONLYOFFICE、Nextcloud、ownCloud、Seafile、Liferay 或 kDrive以与您的团队 –协作处理文档:实时共同编辑、审阅、批注和聊天互动。 编辑容易 、协作方便,实时协作、功能丰富,大大的提高了我们的工作效率,让人爱不释手。 3、绝对的安全 在GitHub上找到开放的源代码遵守国际安全标准三级加密:静态加密、传输中加密、端到端加密安全访问和监测工具额外的文件权限 我们获取源代码非常简单 ONLYOFFICE-github地址:ONLYOFFICE · GitHub ONLYOFFICE能完全开源,对于二次开发带来了很大的便利,集成起来更加自主灵活,可以很好地降低集成成本,ONLYOFFICE现场托管解决方案、加密文档和数据、自定义访问设置、连接验证服务并管理访问权限,保护自己免受未经授权的访问、数据泄漏和内部操纵的侵扰,所以我们再也不担心数据安全问题了,大胆使用。 4、可以将ONLYOFFICE集成至自己的平台 ONLYOFFICE包括社区版、企业版和开发者版 三个版本 :

OpenCV+ moviepy + tkinter 视频车道线智能识别项目源码

项目完整源代码,使用 OpenCV 的Hough 直线检测算法,提取出道路车道线并绘制出来。通过tkinter 提供GUI界面展示效果。 1、导入相关模块 import matplotlib.pyplot as plt import numpy as np import cv2 import os import matplotlib.image as mpimg from moviepy.editor import VideoFileClip import math 2. 用掩码获取ROI区域 def interested_region(img, vertices): if len(img.shape) > 2: mask_color_ignore = (255,) * img.shape[2] else: mask_color_ignore = 255 cv2.fillPoly(np.zeros_like(img), vertices, mask_color_ignore) return cv2.bitwise_and(img, np.zeros_like(img)) 3、Hough变换空间, 转换像素到直线 def hough_lines(img, rho, theta, threshold, min_line_len, max_line_gap): lines = cv2.HoughLinesP(img, rho, theta, threshold, np.array([]), minLineLength=min_line_len, maxLineGap=max_line_gap) line_img = np.

Linux ssh 无法登录的情况记录

这篇主要记录一些工作中碰到过的,有一些记录意思的案例 情况一:库文件被改动 问题描述 发现测试环境(Rhel6.4)账号无法登陆,密码正确时无响应,错误时提示错误,控制台进入后发现有如下报错 ERROR: ld.so: object '/lib/libcwait.so' from /etc/ld.so.preload cannot be preloaded: ignore 初步分析 1、因为测试了用户的正确密码和错误密码的对比,通过输出考虑是系统内部问题,另外因为禁用root远程登录,所以需要看控制台 2、在控制台发现有报错,测试用户登录也无法通过认证,尝试解决问题 3、发现是由于/etc/ld.so.preload 指向了一个不存在的库文件导致的,这个只能进入单用户模式挂载系统进行操作了 4、登录单用户模式,挂载文件系统,将/etc/ld.so.preload置空恢复系统正常使用 重启操作系统,在进入系统的界面按'e',进入编辑模式第一个linux16行并在行尾添加内核参数 rd.break按ctrl+x进入单用户模式重新挂载系统目录 mount -o remount -o remount,rw /sysroot/指定根目录,此后可以进行修改root密码等操作 switch_root:/# chroot /sysroot/ sh-4.2# 5、恢复后登录系统,回溯系统的命令历史记录,发现有个脚本在近期动了这个文件,联系操作人员反馈这个操作的影响 Cloudwise-SmartAgent-Linux-1.4.0.0.sh ... local perloadFileLocation="/etc/ld.so.preload" ... 总结 1、改动库文件很难判断会对哪些部分有影响,建议做好记录,方便回溯和问题的解决 2、大致定位了问题但不清楚具体的原因以及解决办法,还是得考虑搜索一下,描述清楚问题还是容易找到解决方案和解析的 参考 https://www.cnblogs.com/snigoal/archive/2012/07/17/2596569.html 情况二:系统参数调整 问题描述 SSH无法登录,控制台可以正常登录,SSH登录情况如下,连接上之后,直接断开: Connection to xxx.xxx.xxx.xxx closed. 初步分析 1、控制台可以登录,ssh 远程登录能进入(因为已经提示了/etc/motd的内容)立即会退出,这个其实可以认为ssh配置应该是正常的,有其他问题 2、登录控制台操作,这会常见的有几种常见思路 一是看登录记录和历史记录,看是否有明显的变更 二是根据问题看日志排查,ssh 一般就是看 /var/log/messages 和 secure 三是依据自己的关于这个问题的思路排查一遍 3、因为考虑已经登录进入被退出了,所以考虑ssh配置和 /etc/security/access.conf 限制应该都是正常的 4、看看 sshd 服务状态(其实看messages应该更快),发现有报错,排查这个参数 systemctl status sshd pam_limits(login:session): Could not set limit for ‘nofile’: Operation not permitted 5、排查 nofile 相关参数配置是否有变更或者是否正常

android 设置未知来源等 AppOpsManager 权限的设置接口

开始客户让我们执行下面的CMD 代码 adb shell appops set com.android.chrome REQUEST_INSTALL_PACKAGES allow 后来 GTP 告诉我有 Setmode的方法,后面在设置里面找到了 OP_REQUEST_INSTALL_PACKAGES 这个,里面有个方法mAppOpsManager.setMode(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES, uid, mPackageName, newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_ERRORED); 刚好就是传入包名的 下面的代码加在 设置里面,然后通过广播去执行 A11 测试可用 private void setCanInstallApps(String mPackageName , boolean newState) { int uid = 0; try { uid = mPackageManager.getPackageInfo(mPackageName, 0).applicationInfo.uid; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } Log.d(TAG, "install apppppppppppppppp ->line313 uid ="+uid); mAppOpsManager.setMode(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES, uid, mPackageName, newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_ERRORED); }

Unity 报错No ‘git‘ executable was found. Please install Git on your system then restart

亲测可用。 An error occurred while resolving packages:Project has invalid dependencies: com.unity.xxx: No 'git' executable was found. Please install Git on your system then restart Unity and Unity Hub 在我们使用PackageManager时,Unity允许我们使用Git上的package(点击加号,选择add package from git URL,或者是直接在Asset/Packages/manifest.json中添加包名)。 但是这种操作需要我们事先装好git,并且配置好相应的环境变量,否则会报错。 解决方法: 1.下载,安装Git。 Git - Downloads 2.配置系统环境变量。在path后面继续加入路径的时候。win10直接新建C:\Program Files\Git\bin 如果是使用win7,需要使用英文分号分割;C:\Program Files\Git\bin(注意这个路径需要定位到git.exe) , 如下图 3.重新打开cmd,输入git测试成功。 4.重新打开unity和unity hub,如果仍然报错,去系统进程看看,是否没有把untiy或者unity hub彻底关掉。

在flutter中集成Excel导入和导出

flutter中集成Excel导入和导出功能 1、需要的依赖 在pubspec.yaml #excel导出 syncfusion_flutter_xlsio: ^24.1.45 open_file: ^3.0.1 #导入excel flutter_excel: ^1.0.1 #选择文件的依赖 file_picker: ^6.1.1 (1)依赖说明 在测试时,我们在使用导出发现只有syncfusion_flutter_xlsio没问题,其他的或多或少会出现问题 在测试时,我们开发导出Excel时,发现只有syncfusion_flutter_xlsio可以使用,其他的库会出现一些Duplicate class错误如下: * What went wrong: Execution failed for task ':app:checkDebugDuplicateClasses'. > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and jetified-kotlin-stdlib-jdk8-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30) Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and jetified-kotlin-stdlib-jdk7-1.7.22 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22) Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules jetified-kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and jetified-kotlin-stdlib-jdk7-1.7.22 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22) Duplicate class kotlin.

Ubuntu重装kubernetes集群

重新初始化Kubernetes(K8s)通常是在集群出现问题或需要重新配置时的一种解决方法。以下是重新初始化K8s的一般步骤: 警告:重新初始化K8s将导致数据丢失,请确保在执行此操作之前进行充分备份。 1.备份数据 在重新初始化之前,确保备份所有重要的数据,包括ETCD数据、配置文件等。这对于后续的恢复非常重要。 2.停止K8s组件 在重新初始化之前,需要停止所有K8s组件。可以使用以下命令停止各组件: sudo systemctl stop kubelet sudo systemctl stop docker sudo systemctl stop docker.socket 3.重启服务器 reboot 4.删除k8s文件 清除数据 rm $HOME/.kube -rf 删除ETCD数据和其他K8s相关的数据。通常,ETCD数据存储在/var/lib/etcd目录中。删除这个目录以清除ETCD数据。你也可能需要删除其他目录,比如/etc/kubernetes和/var/lib/kubelet,这取决于你的安装配置。 sudo rm -rf /var/lib/etcd sudo rm -rf /etc/kubernetes sudo rm -rf /var/lib/kubelet 5.重启docker服务 sudo systemctl start docker sudo systemctl start docker.socket 6.重装k8s 参考连接:Ubuntu18搭建Kubernate集群-CSDN博客 (上述链接包含docker安装,此处不需要重新安装docker)

vue3上传文件到服务器

第一种方式 <el-dialog v-model="dialogFile" title="导入服务商清单" width="40%" :close-on-click-modal="false"> <el-form> <el-form-item> <el-upload style="width: 100%" drag multiple class="upload-demo" action="#" :http-request="onChange" :show-file-list="false"> <el-icon class="el-icon--upload"><upload-filled /></el-icon> <div class="el-upload__text"> 将文件拖到此处 或 <em>点击上传</em> </div> <template #tip> <div class="el-upload__tip">文件仅支持Excel。单个附件大小不超过3M</div> </template> </el-upload> <div class="picList"> <el-tag v-for="(item, index) in uploadFileList" :key="index" @close="onDeleteAttachmentImage(index)" closable class="picItem" type="info" effect="plain" @click="viewAttachments(item.attachmentUrl)"> <el-icon> <Paperclip /> </el-icon> {{ item.attachmentName }} </el-tag> </div> </el-form-item> </el-form> </el-dialog> // 导入服务商清单 const onChange = (file) => { // 附件格式 const fileType = ["