Flutter之TabBar篇

总结了一下项目中用到的几种TabBar,针对不同的样式,有采用系统提供的,也有三方插件提供的,也有自定义的,效果如下(后续如果遇到新的样式,会不间断地记录更新,避免重复造轮子…) 用到的三方插件: buttons_tabbar: ^1.3.8 flutter_easyloading: ^3.0.5 1、先看第一种系统的 代码如下: class CustomTabBar extends StatelessWidget { final TabController tabController; final List<String> tabs; final TextStyle labelStyle; final Color labelColor; final Color unselectedLabelColor; final TextStyle unselectedLabelStyle; final Color indicatorColor; final double indicatorWeight; const CustomTabBar({ super.key, required this.tabController, required this.tabs, this.labelStyle = const TextStyle( fontSize: 16.0, fontWeight: FontWeight.w700, ), this.labelColor = Colors.blue, this.unselectedLabelColor = Colors.red, this.unselectedLabelStyle = const TextStyle( fontSize: 16.0, fontWeight: FontWeight.w400, ), this.indicatorColor = Colors.

labelme解决AI闪退问题

参考:https://www.cnblogs.com/polly333/p/17679762.html 1. 进入:https://github.com/wkentaro/labelme/releases 下载Source code(zip)v5.3.1 2. 解压出来到D:\labelme\labelme-5.3.1\labelme-5.3.1,更改的内容使用了参考https://www.cnblogs.com/polly333/p/17679762.html里面的3.下载AI模型和4.修改文件 3. 接下来打开cmd.exe 输入: cd D:\labelme\labelme-5.3.1\labelme-5.3.1\labelme 再输入: D:\labelme\labelme-5.3.1\labelme-5.3.1\labelme>labelme 如果报错,则输入D: 此时无法使用AI模型 注意:一定要关闭代理 再按照下面五个步骤进行配置 ①:D:\labelme\labelme-5.3.1\labelme-5.3.1\labelme>conda create -n labelme python=3.8.0 ②:D:\labelme\labelme-5.3.1\labelme-5.3.1\labelme>conda activate labelme ③:(labelme) D:\labelme\labelme-5.3.1\labelme-5.3.1\labelme>pip install opencv-python==4.2.0.34 ④:(labelme) D:\labelme\labelme-5.3.1\labelme-5.3.1\labelme>pip install -e . 如果pip install -e .报错就输入: (labelme) D:\labelme\labelme-5.3.1\labelme-5.3.1>pip install --upgrade twine (labelme) D:\labelme\labelme-5.3.1\labelme-5.3.1>pip install keyring requests-toolbelt ⑤:(labelme) D:\labelme\labelme-5.3.1\labelme-5.3.1>labelme 此时就可以使用AI模型进行标注了

Java中eq、ne、ge、gt、le、lt的含义

在Java中,这些缩写代表了比较运算符,用于比较两个值的大小关系。下面是它们的详细解释: eq:表示“等于”,在Java中使用“==”来表示两个值是否相等。如果两个值相等,则返回true;否则返回false。这个比较运算符用于比较引用类型的变量时,比较的是对象的引用是否相同。 int a = 5; int b = 5; boolean result = (a == b); // result为true,因为a和b的值相等 ne:表示“不等于”,在Java中使用“!=”来表示两个值是否不相等。如果两个值不相等,则返回true;否则返回false。 int a = 5; int b = 10; boolean result = (a != b); // result为true,因为a和b的值不相等 ge:表示“大于或等于”,在Java中使用“>=”来表示一个值是否大于或等于另一个值。如果第一个值大于或等于第二个值,则返回true;否则返回false。 int a = 10; int b = 5; boolean result = (a >= b); // result为true,因为a大于等于b gt:表示“大于”,在Java中使用“>”来表示一个值是否大于另一个值。如果第一个值大于第二个值,则返回true;否则返回false。 int a = 10; int b = 5; boolean result = (a > b); // result为true,因为a大于b le:表示“小于或等于”,在Java中使用“<=”来表示一个值是否小于或等于另一个值。如果第一个值小于或等于第二个值,则返回true;否则返回false。 int a = 5; int b = 10; boolean result = (a <= b); // result为true,因为a小于等于b lt:表示“小于”,在Java中使用“<”来表示一个值是否小于另一个值。如果第一个值小于第二个值,则返回true;否则返回false。 int a = 5; int b = 10; boolean result = (a < b); // result为true,因为a小于b 这些比较运算符在控制流语句、条件语句和循环语句中经常用到,用于确定程序的执行路径或决定是否进入循环等。

Go gin框架(详细版)

目录 0. 为什么会有Go 1. 环境搭建 2. 单-请求&&返回-样例 3. RESTful API 3.1 首先什么是RESTful API 3.2 Gin框架支持RESTful API的开发 4. 返回前端代码 go.main index.html 5. 添加静态文件 main.go 改动的地方 index.html 改动的地方 style.css 改动的地方 common.js 改动的地方 6. 获取请求中的参数 6.1 传统的传参 6.2 RESTful API 方式传参与接收 6.3 前端传递Json数据给后端 6.4 前端返回的是表单 在index.html添加表单 在main.go里面添加特定请求的放法 7. 关于重定向 7.1 重定向到网页 main.go 7.2 404 main.go 添加404.html,让重定向去跳转 7.3 路由组 main.go 8. 中间件(java里面的拦截器) 9. 总代码 main.go templates/index.html static/css style.css common.css 0. 为什么会有Go 1. 环境搭建 初始项目

【附源码】基于flask框架学生信息管理系统设计与实现 (python+mysql+论文)

本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序 系统程序文件列表 系统的选题背景和意义 选题背景: 随着信息技术的飞速发展,传统的学生信息管理方式已经无法满足现代教育系统对于高效、准确、便捷的要求。过去,学校主要通过纸质档案来记录和管理学生的个人信息、成绩、考勤等数据,这种方式不仅耗费大量的人力物力,而且容易出错,更新和维护也非常不便。因此,开发一个基于现代网络技术的学生信息管理系统变得尤为重要。该系统将利用HTML、CSS、JavaScript和Vue框架构建前端用户界面,提供良好的用户体验;Python和Flask作为后端开发语言和框架,负责处理业务逻辑和数据处理;MySQL 5.7作为数据库管理系统,用于存储和管理所有学生信息。通过这样的技术组合,可以构建一个结构清晰、操作简便、功能全面的学生信息管理系统,大大提高学校管理工作的效率和质量。 选题意义: 在数字化时代背景下,学生信息管理系统的设计与实现对于提升教育管理水平具有重要意义。首先,该系统能够实现学生信息的电子化、标准化和自动化管理,减少人工操作的错误率,提高数据处理的准确性。其次,通过学生信息管理系统,教师和管理人员可以快速查询和更新学生资料,提高工作效率。此外,系统还可以为学生提供在线查询自己信息的渠道,增强学生对个人学习情况的了解和管理。最后,随着教育信息化的深入发展,学生信息管理系统可以与其他教育管理系统进行数据交换和集成,形成更加完善的教育信息网络,为学校的决策支持和长远发展提供数据基础。因此,设计并实现一个功能齐全、操作便捷、安全可靠的学生信息管理系统,对于适应现代教育管理需求,推动教育信息化进程具有深远的意义。 综上所述,开发一个基于HTML、CSS、JavaScript、Vue、Python、Flask和MySQL的学生信息管理系统,不仅能够提高学生信息管理的效率和准确性,还能够为学生、教师和管理人员提供便利的服务,是符合现代教育发展趋势的必要之举。 以上选题背景和意义内容是根据本选题撰写,非本作品实际的选题背景、意义或功能。各位童鞋可参考用于写开题选题和意义内容切勿直接引用。本成品的实际功能和技术以下列内容为准。 系统部署环境: 开发环境方面,我们选择了PyCharm作为主要的集成开发环境(IDE)。PyCharm是一个强大的Python IDE,它提供了丰富的开发工具和插件支持,包括对Flask框架的友好支持。这有助于提高开发效率,优化代码结构,并确保代码质量。 前端部分,系统继续采用Vue.js框架。Vue.js是一个渐进式的JavaScript框架,它非常适合构建动态的用户界面。Vue.js的轻量级特性、简单的上手难度以及强大的响应式数据绑定机制,使得前端开发既灵活又高效。 后端框架方面,我们决定采用Flask框架。Flask是一个用Python编写的轻量级Web应用框架。它基于Werkzeug WSGI工具箱和Jinja2模板引擎,提供了一个易于理解和扩展的架构。Flask的简洁性和灵活性使其成为快速开发小型项目的理想选择,同时也能够扩展以支持更复杂的应用需求。 开发技术: 本系统采用Python语言,并基于Flask框架构建。Flask是一个轻量级的Web应用框架,它提供了一个简单而灵活的架构,允许开发者快速搭建和部署Web应用程序。Python版本为3.7.7,这是一个稳定且广泛支持的版本,确保了系统的兼容性和安全性。 数据库方面,选择了MySQL 5.7,这是一个成熟且功能丰富的关系型数据库管理系统,适用于处理大量数据和复杂的查询操作。特别强调的是,系统必须使用MySQL 5.7版本,以确保与特定功能和性能优化的兼容性。 在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。 开发流程: 1.在Windows系统上安装Python 3.7.7并配置环境变量,使用pip安装Flask等依赖库。 2.使用PyCharm作为IDE,创建基于flask框架的项目,并搭建后端应用。 3.利用Vue.js框架进行前端开发,构建用户界面。 4.使用Navicat 11连接本地MySQL 5.7数据库,创建和维护数据模型。 5.通过win10进行本地测试,确保前后端功能正常交互。 程序界面: 源码文末获取↓↓↓↓:

【Linux】通过 PID 获取服务信息 带你玩转 linux

简述 新接手一台服务器,如何获取服务信息?接下来带你通过 PID 简单获取命令行参数、环境变量、打开的文件、内存映射、进程状态等等。 实操 以下以 MySQL 为例: 获取 PID 可通过 netstat -lntp|grep mysqld 或 ps -ef|grep mysqld 获取 # 方法 1 [root@test04 ~]# netstat -lntp|grep [m]ysqld Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::3306 :::* LISTEN 21809/mysqld # 获取到 PID 21809 # 方法 2 [root@test04 ~]# ps -ef|grep [m]ysqld UID PID PPID C STIME TTY TIME CMD mysql 21809 1 0 10:16 ?

three.js零基础入门超全超细的教程整理(一)

事情是这样的: 有一天 我干完活 看技术文章 发现了three.js 诶!这玩应挺有意思 盘盘 于是第一天找教程 上官网 初上手 第二天 找案例 渲模型 试VR 第三天 捋文档 然后来活了 没时间捋了 下面是集百家精华教程的整理总结 涉及到教程方面有加源作者和地址 超详细的教程:http://www.webgl3d.cn/Three.js/ (作者:郭隆邦) 官网地址: https://threejs.org/ 下载又慢又卡可以从github上直接下载到本地启动 three.js官方资源地址:https://github.com/mrdoob/three.js/ (我这实在太卡了 后来找的别人分享的百度网盘 下载的three.js官方案例 也挺大的 里头有很多案例 模型 文档等) 目录结构 docs:里头是官方API文档editor:官方带的可视化编辑器(我还没试过这个)examples:官网案例src:three源码utils:辅助工具 cnpm install npm run dev启动项目后 index.html里右击 open with live server three.js运行需要启动本地的服务器。所以我们在VSCode上整个Live Server插件 Live Server插件可以自动监听 快速启动本地服务 不用手动刷新就能更新内容 官网的案例 docs文档: editor目录: editor 基于web的编辑器 可以在浏览器里创建 编辑 导出three.js场景和模型 **什么是three.js :**前端3D框架 ( 绘制3D的js轻量级框架 采用HTML5 Canvas提供硬件3D加速渲染) **应用场景:**VR模型、地图、家装,机房、厂房等 第一个demo 参照教程:https://juejin.cn/post/7263846857407103032?searchId=2024022810311654D9F40D801D3B5376B1 (作者:chonglingliu)

在python中使用openpyxl库读写Excel.xlsx文件详解(有参考列程)

Python中,读写.xlsx文件(即Excel 2007及以后版本的文件)常用的库有openpyxl和pandas。openpyxl提供了对Excel工作簿、工作表、单元格等的底层操作,而pandas则提供了更高级的数据处理和分析功能,同时支持读写Excel文件。 如果列程没有看懂,文章后半部分有详细教程 读取.xlsx文件 import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('example.xlsx') # 获取活动工作表(通常是第一个工作表) sheet = workbook.active # 读取单元格数据 cell_value = sheet['A1'].value print(cell_value) # 读取整行或整列数据 row_values = [cell.value for cell in sheet[1]] # 第一行数据 column_values = [sheet[f'A{i}'].value for i in range(1, sheet.max_row + 1)] # A列数据 # 遍历所有单元格数据 for row in sheet.iter_rows(values_only=True): print(row) 写入.xlsx文件 import openpyxl # 创建一个新的Excel工作簿 workbook = openpyxl.Workbook() # 获取活动工作表 sheet = workbook.active # 写入单元格数据 sheet['A1'] = 'Hello' sheet['B1'] = 'World' # 保存Excel文件 workbook.

【MySQL学习】MySQL的慢查询日志和错误日志

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶ 个人主页:xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 系列专栏:xiaoxie的MySql学习系列专栏——CSDN博客●'ᴗ'σσணღ 我的目标:"团团等我💪( ◡̀_◡́ ҂)" ( ⸝⸝⸝›ᴥ‹⸝⸝⸝ )欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​+关注(互三必回)! 一.MySQL的慢查询日志 1.慢查询日志的作用 性能诊断与优化: 慢查询日志记录了执行时间超过预设阈值的所有SQL查询,这些查询可能成为数据库性能瓶颈的关键因素。通过分析慢查询日志,数据库管理员可以精准地定位到哪些SQL语句执行效率低下,从而针对这些语句进行优化,如改写SQL查询、添加缺失的索引、重构表结构或调整查询策略等。 资源消耗监控: 长时间运行的查询不仅会影响用户体验,还会占用大量的CPU、内存、I/O资源,可能导致其他查询响应变慢甚至引发阻塞。慢查询日志可以帮助监控系统中消耗资源最多的查询,从而合理分配和管理数据库资源。 趋势分析: 在一段时间内持续观察慢查询日志,可以发现数据库负载的变化趋势,及时预防潜在的性能问题,并对数据库的工作负载模式有更深入的理解。 安全性与合规性: 在某些场景下,异常慢的查询可能是由于SQL注入攻击或其他安全事件导致,通过分析慢查询日志可以帮助发现并解决这类问题。 自动化工具辅助: 结合第三方工具如pt-query-digest(Percona Toolkit的一部分)、mysqldumpslow等,可以自动分析慢查询日志,生成统计报告和优化建议。 总结来说慢查询日志对于我们来说,特别是以后工作的时候,在生产环境下,数据量特别大,可能会达到千万条数据,甚至更多,数据库查询性能至关重要。当数据量达到千万乃至亿级别时,即使是微小的SQL语句效率差异也可能造成显著的性能影响。慢查询日志在这种情况下具有不可忽视的价值,这个时候通过分析慢查询日志,可以帮助我们优化MySQL的性能,保证数据库服务高效稳定运行,理解和熟练运用慢查询日志对于维护大规模数据库系统的性能和稳定性具有直接且重要的意义。 2.如何使用慢查询日志 1.启用慢查询日志 修改MySQL服务器的配置文件(通常为my.cnf或my.ini), 使用文本编辑器(如Notepad++、Sublime Text等)打开配置文件。在[mysqld]部分添加以下行以启用慢查询日志: slow_query_log = ON # 开启慢查询日志 long_query_time = N # 设置慢查询阈值,单位秒,N为执行时间超过多少秒的SQL将被记录 log_slow_queries = /path/to/slow_query.log # 指定慢查询日志的输出文件路径 # 或者在MySQL 5.5.3之后,使用以下配置代替: slow_query_log_file = /path/to/slow_query.log 2.配置选项 当配置慢查询日志时,除了基本的启用和设置阈值外,可以设置其他的慢查询日志相关参数,以便更详细地记录慢查询的信息。以下是一些常见的配置选项: 记录格式:可以选择不同的记录格式,如verbose模式。在verbose模式下,会记录更多细节信息,如查询的执行计划、锁定信息等。这可以帮助更全面地了解慢查询的执行过程。 记录临时表创建:决定是否记录慢查询中创建的临时表的信息。在某些情况下,临时表的创建可能会对性能产生影响,因此记录这些信息可以帮助分析慢查询的原因。

免费ai写作软件有哪些?分享10个给你 #媒体#学习#媒体

你是否因为写作困顿而感到沮丧?是不是希望能够找到一个能给你提供无限灵感和提高创作效率的利器?AI写作助手就是你的绝佳选择!现在我向大家推荐几款好用的AI写作助手,它们将让你的创作之旅更加流畅、富有创意。 1.飞鸟写作 这是一个微信公众号 面向专业写作领域的ai写作工具,写作助手包括,ai论文,ai开题报告、ai公文写作、ai商业计划书、文献综述、ai生成、ai文献推荐、AI论文摘要,帮助用户在线快速生成。 写作主打简单、易操作,200+写作模板,小白也能快速上手。只要输入简单的要求和描述,就能自动生成各种高质量文稿内容。 写作功能特色: 多场景写作模板,不限于某个领域, 12+ 种职位的 100+ 工作场景,10秒即可生成一篇专业文章。无论你需要修改简历、撰写公文,还是分享工作心得,我们都能让写作变得轻松无压力。 AI文档续写:策划活动方案卡壳,写小说灵感枯竭。只需上传你的文档,AI 就能帮你续写、修改、扩展和润色。笔灵AI写作轻松解决写作焦虑。 与AI对话:除了AI 改写、 AI续写,AI 一键生成文案,笔灵AI写作还支持 AI 聊天机器人、AI专家对话,全面满足你的 AI 使用需求。 飞鸟写作,飞鸟AI写作神器,免费伪原创写作生成器,AI写作文案,AI写作助手,AI一键写作文智能改写神器,AI写作,七燕写作神器 2.橙子去水印 这是一个小程序 视频去水印,图片去水印,视频剪辑,高效快捷. 3.今日热榜 今日热榜提供各站热点聚合:微信、今日头条、百度、知乎、V2EX、微博、贴吧、豆瓣、天涯、虎扑、Github、华尔街见闻等多个网站平台站点的热点排行榜服务,追踪全网热点、简单高效阅读 今日热榜是一个实用的热榜合集网站,它集合了包括科技、娱乐、新闻、社区等几十个网站的实时热榜,并且每天都会实时更新,提供用户当前热门的新闻、资讯、话题和讨论等内容。 今日热榜通过算法实时跟踪各大社交媒体平台、新闻网站和论坛等渠道的热门话题和讨论,将其整合在一起,用户可以点击网站上的任意热榜,跳转到对应的网站,方便用户浏览和了解当前的热门事件和热点话题。用户可以在今日热榜上查看各类热门榜单,如热搜榜、微博热议榜、知乎热榜等以及各类新闻和资讯内容。 今日热榜提供各站热点聚合:微信、今日头条、百度、知乎、V2EX、微博、贴吧、豆瓣、天涯、虎扑、Github、华尔街见闻等多个网站平台站点的热点排行榜服务,追踪全网热点、简单高效阅读。 4.猫耳FM - M站 猫耳FM(M站)是一家广播剧弹幕音图站,同时也是中国声优基地。 猫耳FM(M站) - 让广播剧流行起来,猫耳FM(M站)是一家弹幕音图站,同时也是中国声优基地,在这里可以听电台,音乐,翻唱,小说和广播剧,用二次元声音连接三次元。M站(猫耳FM)目前有电台、有声漫画,娱乐,音乐、配音/广播剧、声优库6个板块。 猫耳FM(M站)由站长“魔王SK”于2010年7月12日创建。猫耳FM(M站)建站的初衷是为用户提供一个音频和图片的分享网站。现拥有有别于大陆其他网站的弹幕系统。 猫耳FM(M站)功能版块: 剧好听 - 你追的小说和漫画在这里都有声音剧,关灯上床躺着慢慢听。纯爱、悬疑、灵异、少女、治愈应有尽有。 陪你入睡 - 睡前时光,听着小姐姐或者男神的温柔声音入睡; 深夜难眠,来一段催眠的雨声树林声降降火。 经典必听 - 有选择困难?不怕。猫耳为你筛选出不容错过的精品内容,七大分类精彩纷呈,总有一款适合你。 语音直播 - 汇集中日知名 CV、二次元、段子手、催眠等不同领域的大咖主播;开启语音连麦,和大咖互动,用声音交友;做主播,被搭讪被打赏,从此生活奔小康! 随时随地 - 排队堵车做家务时利用碎片时间听书充电,鬼畜段子娱乐版块填充你的休闲时间,情感电台深夜鬼话承包你的后半夜。 更多惊喜,等你发现。 5.TreeMind树图 | 思维导图 TreeMind树图是基于AI人工智能的在线思维导图工具。提供海量知识导图、素材资源,支持一键AI生成导图;分屏浏览,边看资料边做导图。 TreeMind树图是基于ai人工智能的在线思维导图软件工具。提供海量知识导图、素材资源,支持一键AI生成导图;分屏浏览,边看资料边做导图。 TreeMind树图让您只需上传文档,AI一键总结归纳为导图;输入想法,AI一键生成思维导图;海量导图模板与素材的应用、文件跨平台云同步、多人同时在线协作,助力学习、工作的效率提升。 TreeMind树图可以帮助你快速地组织思路、梳理知识、提高效率。不仅可以制作思维导图,还可以制作组织结构图、流程图、鱼骨图等多种图形,满足不同场景的需求。TreeMind树图支持在线编辑和多人协作,让你随时随地地创建和分享你的思维成果。 TreeMind树图新一代思维导图,便捷的在线思维导图制作软件,专业的思维导图工具,提供大量免费思维导图模板,轻松制作脑图、树形图、鱼骨图、组织架构图、时间轴、时间线等结构思维导图,助力高效梳理思维,激发灵感。 TreeMind树图功能优势: 1、AI智能生成导图只要输入需求即可输入你的需求, 树图TreeMind AI帮你完成一切:读书笔记,教学安排,工作计划,宣传文案,商业分析,活动策划,甚至帮你写代码也可以。

C++进阶:详细讲解容器set与map(pair、multiset、multimap)

C++进阶:详细讲解容器set与map(pair、multiset、multimap) 上次介绍了搜索二叉树:C++进阶:二叉搜索树介绍、模拟实现(递归迭代两版本)及其应用 为了介绍后面的AVLTree和红黑树,我们要进行一些铺垫,就是set与map的介绍啦 文章目录 1.关联式容器与序列式容器2.C++中的键值对——`pair`2.1pair定义2.2pair的对象创建与访问2.3make_pair() 函数和使用`{}` -简化创建过程 3. set容器3.1Constructs构造函数3.2Iterator 迭代器3.3 插入、删除、查找、count3.3.1 insert()插入3.3.2 erase() 删除3.3.3 find()查找3.3.4 count()函数 4.容器 multiset5.map 容器5.1map 模板参数说明5.2 对象的创建5.3 迭代器,insert,find ,`[]`重载5.3.1 迭代器5.3.2 insert() 函数5.3.3 find() 函数5.3.4 `[]` 6.容器 multimap 1.关联式容器与序列式容器 关联式容器和序列式容器是 C++ 中两种不同的容器类型 关联式容器: 关联式容器主要包括 std::set, std::map, std::multiset, std::multimap 等。这些容器是基于键值对(<key, value>结构)的概念,通过键==(key)来唯一标识元素==。关联式容器内部使用二叉搜索树(通常是红黑树)或类似的数据结构,以保持元素的有序性。插入、删除、查找等操作的平均时间复杂度是 O(log n)。 序列式容器: 序列式容器包括 std::vector, std::list, std::deque, std::array 等。这些容器是基于线性结构的,元素在容器中的位置是由插入的顺序决定的。插入、删除、查找等操作的平均时间复杂度因容器类型而异,但在最差情况下,可能达到 O(n)。 2.C++中的键值对——pair 在C++中,键值对是一种数据结构,通常用于表示关联关系 键值对由两部分组成:键(Key)和值(Value)。这种结构允许通过键来检索和关联对应的值,key代表键值,value表示与key对应的信息 2.1pair定义 std::pair 是C++标准库中提供的一个简单的键值对实现。它包含在 <utility> 头文件中。一个 std::pair 有两个公有成员:first 和 second,分别表示键和值==(first<= =>key ; second<= =>value)==

采用Flink CDC操作SQL Server数据库获取增量变更数据

采用Flink CDC操作SQL Server数据库获取增量变更数据 Flink CDC 1.12版本引入了对SQL Server的支持,包括SqlServerCatalog和SqlServerTable。在SqlServerCatalog中,你可以根据表名获取对应的字段和字段类型。 SQL Server 2008 开始支持变更数据捕获 (CDC) 功能。CDC 允许你捕获对表中数据更改的数据,这样你就可以查询更改的数据而不需要扫描整个表。 1、准备工作 软件版本 Flink 1.17.1 数据库版本 Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) 1.1、数据库准备 启动CDC -- 开启SQL Server数据库CDC。 在需要开启CDC的数据库执行此命令 EXEC sys.sp_cdc_enable_db -- 查询开启CDC的数据库 select name, is_cdc_enabled from sys.databases 1.2、开启SQL Server代理 打开 SQL Server配置管理器 => 选择SQL Server服务 => 选择SQL Server代理 右击开启 1.3、为需要跟踪更改的表启用 CDC。 -- 开启表级别的CDC --需要开启先SQL Server代理 然后执行 EXEC sys.sp_cdc_enable_table @source_schema = 'dbo', -- source_schema @source_name = 'AIR_STATION_HOUR_DATA', -- table_name @capture_instance = NULL, -- capture_instance @supports_net_changes = 1, -- supports_net_changes @role_name = NULL -- role_name -- 验证表是否开启cdc成功 EXEC sys.

Python | 超前滞后分析

Nino SST Indices (Nino 1+2, 3, 3.4, 4; ONI and TNI) 有几个指标用于监测热带太平洋,所有这些指标都是基于海表温度(SST)异常在一个给定的区域的平均值。通常,异常是相对于30年的周期来计算的。厄尔尼诺3.4指数(Niño 3.4 index)和海洋厄尔尼诺指数(Oceanic Niño Index (ONI))是定义厄尔尼诺和拉尼娜事件最常用的指数。其他index用于帮助描述每个事件的独特性质。 El Niño 1、2、3和4 的范围如下所示: Niño 1+2 (0-10S,90W-80W) : 厄尔尼诺1 + 2区域是Niño海表温度区域中最小和最东部的区域,与南美洲沿海地区相对应,在那里El Niño,首先被当地居民识别发现。这一指数往往是Niño海表温度指数中变化最大的。 Niño 3(5N-5S,150W-90W) : 这个区域曾经是监测和预测El Niño现象的主要焦点,但是研究人员后来了解到,ENSO 海洋-大气耦合相互作用的关键区域位于更西部(Trenberth,1997)。因此,Niño 3.4和 ONI 成为定义厄尔尼诺和拉尼娜事件的首选。 Niño 3.4(5N-5S,170W-120W) :Niño3.4异常可以被认为代表从日期线到南美海岸的横跨太平洋的赤道 SST 的平均值。Niño 3.4 index通常使用5个月的连续平均值,El Niño or La Niña是在Niño 3.4 SST 超过 +/-0.4 C 6个月或更长时间内确定的。 ONI (5N-5S,170W-120W) : ONI 使用与厄尔尼诺3.4指数相同的区域。ONI 采用的是连续3个月的平均值,要被归类为全面的厄尔尼诺或拉尼娜现象,异常必须至少连续5个月超过 + 0.5 C 或 -0.5 C。这是美国国家海洋和大气管理局使用的定义。 Niño 4(5N-5S,160E-150W) :

Mac OS系统中Beyond Compare 4破解方式

1、首先去官网(https://www.scootersoftware.com/download.php)下载Beyond Compare最新版进行安装; 2、在应用程序找到Beyond Compare,然后右键,点击显示包内容,进入/MacOS; 3、然后将主启动程序BCompare重命名为BCompare.real; 4、在/MacOS目录下新建脚本文件命名为BCompare,写入脚本内容; #!/bin/bash rm "/Users/$(whoami)/Library/Application Support/Beyond Compare/registry.dat" "`dirname "$0"`"/BCompare.real $@ 5、给新建的脚本文件BCompare,授权文件执行权限; chmod a+x /Applications/Beyond\ Compare.app/Contents/MacOS/BCompare Beyond Compare 4

Spring之AOP的详细讲解

目录 一.SpringAOP是什么? 1.1理论知识点 1.2简单的AOP例子 二.SpringAOP的核心概念 2.1切点(Pointcut) 2.2通知(Advice) 2.3切⾯(Aspect) 2.4通知类型 2.5切⾯优先级 @Order 2.6切点表达式 2.6.1 @execution表达式 2.6.2@annotation表达式 总结 一.SpringAOP是什么? 1.1理论知识点 在学习SpringAOP前,我们需要了解一下什么是AOP? AOP(Aspect Oriented Programming):⾯向切⾯编程,通过预编译和运行期间动态代理来实现程序功能的统一维护的一种技术。 它是⼀种思想,它是对某⼀类事情的集中处理。 ⽐如⽤户登录权限的效验,没学 AOP 之前,我们所有需要判断⽤户登录的⻚⾯(中 的⽅法),都要各⾃实现或调⽤⽤户验证的⽅法,然⽽有了 AOP 之后,我们只需要在某⼀处配置⼀下,所有需要判断⽤户登录⻚⾯(中的⽅法)就全部可以实现⽤户登录验证了,不再需要每个⽅法中都写相同的⽤户登录验证了。 AOP中的基本单元是 Aspect(切面) 1.2简单的AOP例子 理论永远没有代码直观! 引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 定义切面: @Aspect // 定义切面 @Component public class UserAspect { // 切点 @Pointcut("execution(* com.example.interview.Controller.UserController.*(..))") public void pointcut() { } // 前置通知通知 @Before("pointcut()") public void doBefore() { System.out.println("执行了前置通知"); } // 后置通知 @After("pointcut()") public void doAfter() { System.

对比chatgpt和文心一言的优缺点

ChatGPT和文心一言都是当前人工智能领域的热门产品,它们都具有各自独特的优点和缺点。以下是对这两款产品的对比: ChatGPT的优点: 强大的自然语言处理能力:ChatGPT经过大量的数据训练,能够模拟人类对话,表达思想和感情,提供更加自然流畅的回答。多语种支持:ChatGPT支持多种语言,可以满足不同国家和地区的语言需求。无需人力干预:ChatGPT是一种自动化的机器人,无需其他人力参与,能够在任何时间、任何地点与用户互动,并且响应速度非常快。 ChatGPT的缺点: 可能存在偏见:由于ChatGPT是通过对大量数据进行学习得到的,可能存在数据偏见的问题,这可能导致ChatGPT对某些群体或某些观点的回答存在偏见。缺乏人情味:ChatGPT是一种机器人,它不能像人类一样具有人情味。ChatGPT给出的回答可能是准确的,也有可能是错误的,但它通常不会关注用户的情感状态或基于共情来提供建议。涉及隐私问题:ChatGPT使用机器学习算法来分析、理解和回答用户的问题,这意味着每个用户的聊天记录都将被存储在数据库中,从而可能带来隐私泄露的风险。 文心一言的优点: 高效精准的自动摘要功能:可以帮助用户快速抽取文本中的核心信息,并生成简洁明了的摘要。自动创意推荐和扩展功能:可以根据输入的内容给出创意推荐和扩展,以拓展写作思路和内容。多语言支持功能:可以支持多国语言翻译,并提供精准的机器翻译结果。 文心一言的缺点: 对于一些复杂的语言处理任务,例如情感分析、文本分类等,文心一言的表现可能不如专业的模型。在处理一些专业领域的文本时,文心一言可能会出现理解困难的情况。 综上所述,ChatGPT和文心一言各有其优势和不足。ChatGPT在自然语言处理和多语种支持方面表现出色,但可能存在偏见和隐私问题;而文心一言在自动摘要和创意推荐等方面具有优势,但在处理复杂语言任务和专业领域文本时可能表现一般。因此,在选择使用哪款产品时,需要根据具体需求和场景进行权衡。

Kafka 实战 - Kafka Consumer 重置 Offset

在Kafka实战中,消费者(Consumer)有时需要重置其消费的偏移量(Offset),以重新处理特定范围或特定位置的消息。这可能是由于数据错误、应用程序升级、测试需求、或者需要重新消费某些历史数据等情况。以下是一些重置Kafka Consumer偏移量的实战方法: 方法一:使用命令行工具(kafka-consumer-groups.sh) 适用于快速手动干预或脚本自动化。 bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-group --reset-offsets --to-datetime YYYY-MM-DDTHH:mm:ss.sssZ --all-topics --execute --bootstrap-server: 指定Kafka集群的地址。--group: 消费者组的名称。--reset-offsets: 表示要执行偏移量重置操作。--to-datetime: 设置重置偏移量的目标时间点。所有在该时间点之前的消息都将被重新消费。--all-topics: 重置该消费者组订阅的所有Topic的偏移量。--execute: 直接执行重置操作,不进行交互式确认。 方法二:使用Java AdminClient API 适用于在应用程序代码中动态调整偏移量。 import org.apache.kafka.clients.admin.AdminClient; import org.apache.kafka.clients.admin.OffsetSpec; import org.apache.kafka.common.TopicPartition; import org.apache.kafka.common.serialization.StringDeserializer; import java.time.Instant; import java.util.*; import java.util.concurrent.ExecutionException; public class OffsetResetExample { public static void main(String[] args) throws ExecutionException, InterruptedException { Properties adminProps = new Properties(); adminProps.put("bootstrap.servers", "localhost:9092"); try (AdminClient adminClient = AdminClient.create(adminProps)) { String groupId = "my-group"; Instant targetTimestamp = Instant.

【AI】ubuntu 22.04 本地搭建Qwen-VL 支持图片识别的大语言模型 AI视觉 【3】Qwen-VL-Chat-Int4版本 + 4060ti 16G

接上篇 【AI】ubuntu 22.04 本地搭建Qwen-VL 支持图片识别的大语言模型 AI视觉-CSDN博客 【AI】ubuntu 22.04 本地搭建Qwen-VL 支持图片识别的大语言模型 AI视觉 【2】 4060ti 16G 也顶不住-CSDN博客 下载Qwen-VL-Chat-Int4版本模型 cd ~/Downloads/ai git lfs install git clone https://www.modelscope.cn/qwen/Qwen-VL-Chat-Int4.git 这个版本模型体积小不少 2060 6G 仍然不能启动web 尝试参考模型中的README.md编写使用量化的代码 test.py import os os.environ['CUDA_VISIBLE_DEVICES'] = '0' from modelscope import ( AutoModelForCausalLM, AutoTokenizer, GenerationConfig, ) from transformers import BitsAndBytesConfig import torch model_dir = "/home/yeqiang/Downloads/ai/Qwen-VL-Chat-Int4" torch.manual_seed(1234) quantization_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16, bnb_4bit_quant_type='nf4', bnb_4bit_use_double_quant=True, llm_int8_skip_modules=['lm_head', 'attn_pool.attn']) tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="

Kafka高可用之ISR机制:揭秘消息一致性背后的守护者

Apache Kafka作为分布式消息系统的翘楚,其高可用性与数据一致性在业界享有盛誉。这其中,一项核心机制——In-Sync Replica Set(ISR,同步副本集)起到了关键作用。本文将深入剖析Kafka的ISR机制,通过实例说明其工作原理与应用场景,揭示其在保障消息一致性与系统高可用性方面的关键价值。 一、ISR机制概述 定义:In-Sync Replica Set(ISR)是Kafka为每个Partition维护的一个副本集合,这些副本与Leader Replica保持数据同步,即已接收到并持久化了Leader发布的所有消息。 角色:ISR中的副本是Leader故障时能够立即接替其成为新Leader的候选者,确保Partition在Leader切换时能迅速恢复服务,同时保证数据的完整性和一致性。 二、ISR机制工作原理 数据同步:Leader Replica接收到Producer发送的消息后,将其写入本地日志,并通过Pull模式等待Follower Replica主动拉取。Follower Replica从Leader Replica拉取数据并写入本地日志后,将拉取偏移量(fetch offset)返回给Leader。 同步状态监测:Leader Replica持续监控每个Follower Replica的拉取偏移量,将其与自身的最新消息偏移量(log end offset)进行比较。若Follower Replica的拉取偏移量与Leader相差不超过一定阈值(由replica.lag.time.max.ms参数控制),则认为该Follower处于同步状态,将其纳入ISR。 ISR调整:当Follower Replica因网络延迟、 Broker故障等原因导致拉取偏移量落后过多,超出阈值时,Leader Replica会将其从ISR中移除。当Follower Replica恢复同步后,再次将其加入ISR。 三、ISR机制实例说明 场景一:Leader故障与切换 假设有一个包含三个副本(A为Leader,B、C为Follower)的Partition,ISR为{A, B, C}。当Leader A发生故障时: ZooKeeper检测到A失联,触发Leader选举。由于B、C均在ISR中,且与A保持同步,二者均有资格成为新Leader。ZooKeeper选择其中一个(如B)作为新Leader,同时更新Partition的Leader信息。生产者与消费者感知到Leader变更,开始与新Leader B交互。原Follower C继续从新Leader B拉取数据,保持同步,确保Partition服务不受影响。 场景二:网络波动与数据一致性 在生产环境中,网络波动可能导致Follower Replica暂时落后: Follower C因网络问题导致拉取延迟,其fetch offset落后于Leader A的log end offset,超过阈值。Leader A将C从ISR中移除,此时ISR变为{A, B}。当网络恢复后,C立即追赶数据,一旦其fetch offset与A的log end offset差距缩小到阈值内,C重新加入ISR。在整个过程中,由于ISR始终保持至少一个同步副本(A或B),即使C暂时落后,消息写入与消费仍能正常进行,保证了数据一致性。 四、ISR参数调优 replica.lag.time.max.ms:控制Follower Replica被认为是同步状态的最大延迟时间。增大该值可容忍更大网络延迟,减少ISR频繁变动,但可能延长故障检测时间;减小该值可更快检测到滞后副本,但可能导致ISR更不稳定。 min.insync.replicas:设置一个Topic至少需要多少个副本处于ISR中,才能认为消息写入成功。增大该值可提高数据可靠性,但可能影响写入性能;减小该值可提高写入速度,但降低数据冗余度。 五、总结 Kafka的ISR机制作为保障高可用性与数据一致性的核心机制,通过动态维护同步副本集合,确保在Leader故障时能快速选出新Leader,保持Partition服务不间断,同时在网络波动等异常情况下,通过调整ISR成员,兼顾数据一致性与系统的健壮性。理解并合理配置ISR相关参数,是充分发挥Kafka高可用特性的关键。希望本文对您深入理解Kafka的ISR机制及其在实际场景中的应用有所裨益,助您在构建高可靠消息系统时更加得心应手。

【CSDN活动】人工智能:前沿科技中的创业机遇与挑战

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 人工智能:前沿科技中的创业机遇与挑战一、AI技术的快速发展与应用拓展1. 技术革新推动AI广泛应用2. AI应用领域的不断拓展 二、未来AI技术的创业机会1. AI基础设施与平台服务2. 行业垂直解决方案3. AI伦理与安全领域4. AI+X跨界融合创新 三、AI创业面临的挑战 人工智能:前沿科技中的创业机遇与挑战 随着科技进步日新月异,人工智能(Artificial Intelligence, AI)已迅速成为全球创新的焦点。作为一种模拟、延伸和扩展人类智能的技术手段,AI正在深刻地改变我们的生活方式、工作模式以及商业模式。对于创业者而言,AI不仅代表着无尽的可能性,更孕育着无数富有挑战性的创业机遇。本文将探讨当前及未来AI技术可能带来的创业机会,同时揭示其中蕴含的挑战,以期为有志于在这一前沿领域探索的创业者提供启示。 一、AI技术的快速发展与应用拓展 1. 技术革新推动AI广泛应用 近年来,AI技术取得了前所未有的突破,主要体现在深度学习、自然语言处理、计算机视觉、强化学习等核心技术的进步。这些技术的革新使得AI系统在识别、理解、决策等方面的能力显著提升,进而广泛应用于医疗健康、金融、教育、制造业、物流、娱乐等多个行业。 深度学习:通过构建多层神经网络模型,深度学习能够从大量数据中自动提取复杂特征并进行高精度预测,如图像识别、语音识别、推荐系统等。 自然语言处理:基于深度学习和统计建模,自然语言处理技术实现了对文本的理解、生成、翻译等,如聊天机器人、文本摘要、智能客服等。 计算机视觉:利用深度学习算法解析和理解图像、视频等视觉信息,实现目标检测、人脸识别、行为分析等功能,广泛应用于安防、自动驾驶、医疗影像诊断等领域。 强化学习:通过与环境互动,智能体能自主学习最优策略,适用于游戏AI、机器人控制、能源管理等场景。 2. AI应用领域的不断拓展 随着技术成熟度的提高,AI的应用领域正不断拓宽,为创业者提供了丰富的市场空间: 智慧医疗:AI赋能疾病诊断、病理分析、药物研发、健康管理等环节,提升医疗服务效率与质量。 金融科技:AI应用于风险评估、投资决策、智能投顾、反欺诈等领域,推动金融行业的数字化转型。 智能制造:AI助力生产流程优化、设备预测性维护、产品质量监控,实现工业4.0的智能化升级。 智慧城市:AI集成于交通管理、公共安全、环保监测、能源管理等领域,提升城市运行效率与居民生活质量。 教育科技:AI个性化教学、智能辅导、知识图谱构建等应用,革新教育模式,实现教育资源公平分配。 新零售:AI驱动精准营销、智能供应链、无人零售等业态创新,重塑消费体验与零售业格局。 二、未来AI技术的创业机会 1. AI基础设施与平台服务 随着AI需求的增长,提供高效、易用的AI基础设施与平台服务将成为重要的创业方向: AI芯片:设计与制造面向深度学习、边缘计算等特定应用场景的专用芯片,如GPU、TPU、FPGA、ASIC等。 云计算与边缘计算平台:构建支持大规模AI模型训练、部署、调优的云服务平台,或提供低延迟、高隐私保护的边缘计算解决方案。 AI开发工具与框架:开发便捷易用的AI开发环境、可视化工具、自动化模型生成与调优平台,降低AI技术门槛。 AI数据服务:提供数据标注、清洗、增强、合规化等一站式数据服务,解决AI项目的数据瓶颈。 2. 行业垂直解决方案 针对各行业痛点,研发深度融合AI技术的行业垂直解决方案,满足企业数字化转型需求: 医疗AI解决方案:开发疾病筛查、辅助诊疗、患者管理、临床试验优化等医疗AI产品,提升医疗服务效能。 金融风控与智能投顾:构建基于AI的信用评估、反欺诈、智能投资顾问系统,助力金融机构提升风险管理与客户服务能力。 智能制造解决方案:利用AI实现生产流程优化、设备预测性维护、质量控制、能耗管理等,推动制造业智能化升级。 智慧农业:应用AI进行精准种植、病虫害预警、农产品溯源、农业资源管理,提升农业生产效率与可持续性。 3. AI伦理与安全领域 随着AI应用的深入,保障AI系统的伦理合规、数据安全、隐私保护等问题愈发重要,相关创业机会显现: AI伦理咨询与合规服务:为企业提供AI伦理规范解读、合规体系搭建、伦理风险评估等咨询服务。 AI安全防护与审计:开发AI模型安全检测工具、防御算法、数据隐私保护技术,防止AI系统遭受攻击或滥用。 AI监管技术与平台:构建面向政府、行业协会的AI监管技术平台,实现AI应用的透明度、可解释性、公平性监管。 4. AI+X跨界融合创新 结合新兴技术或传统行业,探索AI与其他领域的交叉融合,催生全新商业模式: AI+区块链:利用区块链技术确保AI模型训练数据的可信、可追溯,构建去中心化的AI市场。 AI+5G/6G:利用高速、低延迟的通信技术,推动AI在远程医疗、自动驾驶、沉浸式娱乐等领域的应用。 AI+XR(VR/AR/MR):将AI融入虚拟现实、增强现实、混合现实技术,创造沉浸式交互体验,开拓教育培训、娱乐、零售等应用场景。 AI+物联网(IoT):通过AI赋能物联网设备,实现大规模设备的智能化管理、预测性维护、节能优化等。 三、AI创业面临的挑战 尽管AI技术带来了众多创业机会,但创业者也需应对一系列挑战: