Server: Docker Engine - Community
Engine:
Version: 25.0.3
API version: 1.44 (minimum version 1.24)
Go version: go1.21.6
Git commit: f417435
Built: Tue Feb 6 21:16:08 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.28
GitCommit: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
[root@192 bin]# docker-compose version
Docker Compose version v2.24.6
### 2,构建dockerfile,启动容器 docker-compose在/usr/local/bin里,我们就在/usr/local下构建一个docker-compose目录,里面再构建各级不同容器的目录,用于构建dockerfile和挂载目录[3]。 [root@192 bin]# cd /usr/local
[root@192 local]# ls
bin docker-mount etc games include lib lib64 libexec mongodb mycat mysql sbin share src
大学生可访问【文心一言指令词宝典】 申请免费试读权限~ 作者:哈哥撩编程(视频号、抖音、公众号同名) 新星计划·全栈领域优秀创作者博客专家·全国博客之星第四名超级个体·COC上海社区主理人特约讲师·谷歌亚马逊演讲嘉宾科技博主·极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场效能必修课🏅 Python全栈白宝书🏅 ChatGPT实践指南白宝书🏅 产品思维训练白宝书🏅 全域运营实战白宝书🏅 大前端全栈架构白宝书 文章目录 🌟 职场效率篇✨ 写周报✨ 写日报✨ 写工作计划✨ 写工作总结✨ 写 PPT 框架✨ 写通知✨ 写邮件 - 1✨ 写邮件 - 2✨ 写发言稿✨ 写合同✨ 写招标书✨ 写操作手册✨ 写说明书✨ 写行政制度✨ 写回复 🌟 职场效率篇 文心一言(英文名:ERNIE Bot)作为百度旗下的全新一代知识增强大语言模型,文心大模型家族的新成员,它不仅能够与人对话互动、回答问题、协助创作,更能够高效便捷地帮助人们获取信息、知识和灵感。文心一言从数万亿数据和数千亿知识中融合学习,得到预训练大模型,在此基础上采用有监督精调、人类反馈强化学习、提示等技术,具备知识增强、检索增强和对话增强的技术优势。
只需一句话,文心一言就能为你找到答案。这种便捷性让我们的生活更加高效,改变了以往需要大量时间和精力来获取信息的局面。那么如何正确使用文心一言的关键指令,就成了重中之重,话不多少、我们开整,今天要给大家介绍的指令词宝典之一就是如何利用文心一言提升职场效率。
✨ 写周报 现在你是一位「高级产品经理」 ,你需要帮我写一份,下面是我本周的工作内容。
1、[优化了APP的对话界面设计]
2、[上线了APP帮助中心的AB试验]
注意你写的周报中需要包含:
【本周工作进展】:本周做了哪些事,产生了哪些结果
【下周工作安排】:基于本周的结果下周要推进哪些事情
【 思 考 总 结 】:简要说说本周的收获和反思
✨ 写日报 请你根据我的工作产出为我生成一份日报。要求润色我的工作成果,并为我制定明日工作计划,结果需要以列表的形式呈现。
我的主要工作产出是:【拜访了3名高潜客户,同1位客户签订了10万元的意向合同】。
✨ 写工作计划 请为一名 [资深软件测试工程师] 编写一个 [第三季度] 工作计划,要求实现 [完成测试用例管理后台及至少三个通用的重要业务自动测试脚本] 的目标。
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文 weak 此特质表明该属性定义了一种“非拥有关系” (nonowning relationship)。为这种属性设置新值时,设置方法既不保留新值,也不释放旧值。此特质同assign类似, 然而在属性所指的对象遭到摧毁时,属性值也会清空(nil out)。 而 assign 的“设置方法”只会执行针对“纯量类型” (scalar type,例如 CGFloat 或 NSlnteger 等)的简单赋值操作。
assign 可以用非 OC 对象,而 weak 必须用于 OC 对象
3. 怎么用 copy 关键字? 用途:
NSString、NSArray、NSDictionary 等等经常使用copy关键字,是因为他们有对应的可变类型:NSMutableString、NSMutableArray、NSMutableDictionary;
block 也经常使用 copy 关键字,具体原因见官方文档:Objects Use Properties to Keep Track of Blocks:
block 使用 copy 是从 MRC 遗留下来的“传统”,在 MRC 中,方法内部的 block 是在栈区的,使用 copy 可以把它放到堆区.在 ARC 中写不写都行:对于 block 使用 copy 还是 strong 效果是一样的,但写上 copy 也无伤大雅,还能时刻提醒我们:编译器自动对 block 进行了 copy 操作。如果不写 copy ,该类的调用者有可能会忘记或者根本不知道“编译器会自动对 block 进行了 copy 操作”,他们有可能会在调用之前自行拷贝属性值。这种操作多余而低效。你也许会感觉我这种做法有些怪异,不需要写依然写。如果你这样想,其实是你“日用而不知”,你平时开发中是经常在用我说的这种做法的,比如下面的属性不写copy也行,但是你会选择写还是不写呢?
PL/SQL 格式化工具 以 Oracle SQL Developer 为例,使用一键格式化的步骤如下:
打开 Oracle SQL Developer。在“文件”菜单中,选择“打开文件”,然后选择你的 PL/SQL 文件。打开文件后,你可以通过右键菜单选择“格式化 SQL”或者使用工具栏上的“格式化”按钮来格式化代码。SQL Developer 会显示一个对话框,让你选择格式化选项。你可以选择缩进风格、空格和换行等。点击“确定”后,SQL Developer 会自动格式化你的 PL/SQL 代码。 如果你使用的是在线工具,如 PL/SQL Formatter,你只需要将你的 PL/SQL 代码复制到在线编辑器中,然后选择你喜欢的格式化选项,点击“格式化”按钮即可。以上是操作的描述
上图: 美化前 美化 美化后 格式化的好处 使用 PL/SQL 一键格式化工具有几个好处:
提高可读性:格式化后的代码更容易阅读和理解。促进团队协作:团队成员可以使用相同的格式化标准,减少交流成本。减少错误:一致的代码格式有助于减少语法错误。自动化流程:在持续集成和自动化部署中,格式化可以是流程的一部分,确保代码库的一致性。 结论 PL/SQL 一键格式化工具是提高代码质量和一致性的有力工具。无论是个人开发者还是团队,使用这些工具都可以大大提升工作效率和代码的可维护性。在选择格式化工具时,应考虑工具的兼容性、可用性和可定制性,以确保它能够满足你的特定需求。
本文用于记录操作
目录
前言
一、信息网站介绍
1、网站介绍
2、 地震历史信息
3、 历史信息接口分析
二、XxlCrawler组件
1、关于XxlCrawler
2、核心概念介绍
三、实际信息爬取
1、新建maven项目
2、新建model层对象
3、实际爬取
总结
前言 如今,只要谈起网络信息爬取也就是爬虫,相信绝大多数人的第一反应就是Python。确实Python在信息爬取方面资料很多,内容很丰富,同时案例也很丰富。爬虫技术是一门有一定门槛的技术。而在网络请求当中,不管是出于攻方或者是守方。有一句话是,你站在桥上看风景,看风景的人站在楼上看你。在获取信息和作为信息源头提供信息,如今都已经家常便饭,习以为常。你可以使用熟悉的语言和技术栈来实现爬虫,去爬取相应的知识,但是要用于正当目的。
在之前的博客当中,我们介绍了一些地震相关的博客,想把地震种类的地质灾害作为GIS的时空数据源来和人类活动轨迹和生活范围进行关联分析,为人类提供安全保障,为较少财产损失贡献自己的力量。为了对地震有更多的认识,我们需要将地震信息进行详细的搜集。通过长时序的地震信息搜集,为进一步的数据挖掘提供坚实的数据基础。由此,我们需要从中国地震台网挖掘。楼主采用熟悉的java技术栈,通过java语言去获取中国地震台网的信息。
本文将主要讲解使用Java语言结合XxlCrawler框架进行信息的抓取。首先讲解目标网站的相关信息,分析内容和需要抓取的链接地址,URL的构造,然后介绍XxlCrawler这个组件的相关使用情况,最后使用代码进行实际信息抓取的开发。方便大家对如何使用Java和XxlCrawler来实现信息爬取有一定的参考和指导。
一、信息网站介绍 本节对中国地震台网进行简要介绍。
1、网站介绍 CEIC.ac.cn是在中国地震台网中心资助科研项目的研究成果,它于2006年1月上线运行,之后陆续完善。根据中国 地震局监测预报司的要求(2008年第168号文件),网站从现在起用于地震信息及其相关数据产品的发布,根据要求,新 版网站于2009年5月起正式运行。中国地震台网中心于2004年10月18日成立,它是中国地震局直属事业单位,是我国防震减灾工作的重要业务枢纽、 核心技术平台和基础信息国际交流的重要窗口。中国地震台网中心承担着全国地震监测、地震中短期预测和地震速报;国 务院抗震救灾指挥部应急响应和指挥决策技术系统的建设和运行;全国各级地震台网的业务指导和管理;各类地震监测数 据的汇集、处理与服务。
2、 地震历史信息 在地震历史中可以查询到近10年的地震信息,可以在官方网站中打开历史查询tab页。默认不输入任何条件,查询近期的地震信息。界面如下所示:
这就是地震信息,我们如果想要得到这信息,也就是根据接口把相应的历史信息取到即可。下面来看一下系统是怎么获取到这些信息的。
3、 历史信息接口分析 在上面的网页中,来看一下具体的信息获取接口。在谷歌浏览器中打开检查选项。
可以很清楚的看到,点击查询按钮之后。它的网络接口是:
https://www.ceic.ac.cn/ajax/search?page=1&&start=&&end=&&jingdu1=&&jingdu2=&&weidu1=&&weidu2=&&height1=&&height2=&&zhenji1=&&zhenji2=&&callback=jQuery180015104370237141462_1713018372132&_=1713018820900 在这个接口中,有一个page的页数控制,通过这个参数来进行分页。因此我们只需要在请求中模拟页数的传递即可获取相应的数据。
将上述的地址复制到浏览器中,可以看到以下的返回响应数据。
数据的主要信息包含以下:
AUTO_FLAG: "M" CATA_ID: "CD20240413222636.00" CATA_TYPE: "" EPI_DEPTH: 9 EPI_LAT: "24.05" EPI_LON: "121.60" EQ_CATA_TYPE: "" EQ_TYPE: "M" IS_DEL: "" LOCATION_C: "台湾花莲县" LOCATION_S: "" LOC_STN: "0" M: "4.2" M_MB: "0" M_MB2: "
一、卡片社区分享 github:ZotCard插件AI-NNDL论文卡片模板 · Issue #67 · 018/zotcard (github.com)
二、卡片效果预览 ZotCard插件AI-NNDL论文卡片模板是关于人工智能神经网络与深度学习论文的笔记卡片,效果预览如下图:
三、卡片代码 经过了整理代码如下:
<h1><span style="color: #7CB342">${title}</span></h1> <strong><hr/></strong> <strong><span style="color: #1976D2">📅 出版年份:</span>${year}<br/> <span style="color: #1976D2">📖 出版期刊:</span>${publicationTitle}<br/> <span style="color: #1976D2">📈 影响因子:</span>${callNumber}<br/> <span style="color: #1976D2">🧑 文章作者:</span>${authors}</strong><strong><hr/></strong> <h2></span><span style="color: #F06292">🔎 摘要:</span></h2> <p></span>${abstractNote}</p> <strong><hr/></strong> <h2><span style="background-color: #E0E0E0"> 🌐 研究目的:</span></h2> <h2><span style="background-color: #E0E0E0">📰 研究背景:</span></h2> <h2><span style="background-color: #f8cb9b">🔬 研究方法:</span></h2> <strong><hr/></strong> <h2><span style="background-color: #fe7272">🔩 模型架构:</span></h2> <strong><hr/></strong> <h2><span style="background-color: #dad0f5">🧪 实验:</span></h2> <h3><span style="background-color: #dad0f5"> 📇 数据集:</span></h3> <h3><span style="background-color: #dad0f5"> 📏 评估指标:</span></h3> <h3><span style="background-color: #dad0f5"> 📉 优化器&超参数:</span></h3> <h3><span style="background-color: #dad0f5"> 💻 实验设备:</span></h3> <h3><span style="background-color: #dad0f5"> 📊 消融实验:</span></h3> <h3><span style="
AIGC专栏10——EasyAnimate 一个新的类SORA文生视频模型 📺轻松文生视频 学习前言源码下载地址技术原理储备(DIT/Lora/Motion Module)什么是Diffusion Transformer (DiT)LoraMotion Module EasyAnimate简介EasyAnimate原理界面展示快速启动云使用: AliyunDSW/Docker本地安装: 环境检查/下载/安装 如何使用生成运行python文件通过ui界面 模型训练训练视频生成模型i、基于webvid数据集ii、基于自建数据集 训练基础文生图模型i、基于diffusers格式ii、基于自建数据集 训练Lora模型i、基于diffusers格式ii、基于自建数据集 算法细节 学习前言 在过年期间,OpenAI放出了SORA文生视频的预览效果,一瞬间各大媒体争相报道,又引爆了一次科技圈,可惜的是,SORA依然没选择开源。
在这个契机下,本来我也对文生视频的工作非常感兴趣,所以也研究了一些与SORA相关的技术,虽然我们没有像OpenAI那么大的算力,但做一些基础研究还是足够的。
最近我参与了一个EasyAnimate的项目,可以根据文本生成视频,并且借鉴了Animatediff的IDEA,将MotionModule网格化后引入到DIT中,借助DIT的强大生成能力,生成视频效果也还不错,并且由于基于一个可插入结构,EasyAnimate有良好的拓展性,近期也开源了出来。
源码下载地址 https://github.com/aigc-apps/EasyAnimate
感谢大家的关注。
技术原理储备(DIT/Lora/Motion Module) 什么是Diffusion Transformer (DiT) DiT基于扩散模型,所以不免包含不断去噪的过程,如果是图生图的话,还有不断加噪的过程,此时离不开DDPM那张老图,如下:
DiT相比于DDPM,使用了更快的采样器,也使用了更大的分辨率,与Stable Diffusion一样使用了隐空间的扩散,但可能更偏研究性质一些,没有使用非常大的数据集进行预训练,只使用了imagenet进行预训练。
与Stable Diffusion不同的是,DiT的网络结构完全由Transformer组成,没有Unet中大量的上下采样,结构更为简单清晰。
在EasyAnimate中,我们将Motion Module网格化后引入到DIT中,借助DIT的强大生成能力,生成视频效果也还不错。
Lora 由《LoRA: Low-Rank Adaptation of Large Language Models》 提出的一种基于低秩矩阵的对大参数模型进行少量参数微调训练的方法,广泛引用在各种大模型的下游使用中。
由于我们是基于一个可插入的结构设计了EasyAnimate,所以EasyAnimate有良好的拓展性,我们可以对文生图模型训练Lora后应用到文生视频模型中。
Motion Module AnimateDiff是一个可以对文生图模型进行动画处理的实用框架,其内部设计的Motion Module无需进行特定模型调整,即可一次性为大多数现有的个性化文本转图像模型提供动画化能力。
EasyAnimate参考AnimateDiff使用Motion Module保证动画的连续性,同时作为一个可插入的结构,Motion Module有良好的拓展性
EasyAnimate简介 EasyAnimate是一个基于transformer结构的pipeline,可用于生成AI动画、训练Diffusion Transformer的基线模型与Lora模型,我们支持从已经训练好的EasyAnimate模型直接进行预测,生成不同分辨率,6秒左右、fps12的视频(40 ~ 80帧, 未来会支持更长的视频),也支持用户训练自己的基线模型与Lora模型,进行一定的风格变换。
这些是pipeline的生成结果,从生成结果来看,它的生成效果还是非常不错的,Resolution 的顺序是width、height、frames:
首先是使用原始的pixart checkpoint进行预测。
Base ModelsSamplerSeedResolution (h x w x f)PromptGenerationResultDownloadPixArtDPM++43512x512x80A soaring drone footage captures the majestic beauty of a coastal cliff, its red and yellow stratified rock faces rich in color and against the vibrant turquoise of the sea.
此篇文章来源于自己学习QT的QWebEngineView类总结的知识点,本人能力有限,若文章有其他错误,大家评论区评论,共同学习,共同进步。
一、QWebEngineView介绍 QWebEngineView是Qt框架中的一个组件,它是基于Chromium内核的Web浏览器引擎,用于在Qt应用程序中嵌入网页内容和实现各种Web应用功能。通过QWebEngineView,开发者可以在本地桌面应用程序中轻松地集成网页浏览功能,支持HTML5、CSS3、JavaScript等现代Web技术。
注意:QWebEngineView类仅支持QT的5.4版本以上,之前的版本都是使用QtWebKit,QtWebKit类在5.4版本以上已经被丢弃了,不能使用了。而对于QWebEngineView类,仅仅支持MSVC的编译器并不支持MinGW。
加载并显示网页内容。与网页中的JavaScript进行交互。监听和处理网页加载完成、加载失败等各种信号槽事件。实现网页导航控制(前进、后退、刷新)等功能。 在Qt Quick中,对应的功能类为QQuickWebEngineView,用于在QML场景中嵌入Web内容。
例如,创建并加载一个网页的基本用法如下:
#include <QWebEngineView> #include <QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWebEngineView view; view.load(QUrl(QStringLiteral("http://www.example.com"))); view.show(); return app.exec(); } 以上代码会创建一个QWebEngineView窗口,并加载example.com网站的内容。
二、成员函数 1、QWebEngineView::QWebEngineView(QWidget *parent = Q_NULLPTR) QWebEngineView::QWebEngineView(QWidget *parent = Q_NULLPTR) 是Qt WebEngine模块中用于创建一个QWebEngineView对象的构造函数。
参数 parent 指向一个QWidget指针,它是QWebEngineView的父窗口或父控件。如果不传入参数(使用默认值Q_NULLPTR),则QWebEngineView将成为一个顶级窗口。如果指定了父控件,那么QWebEngineView将作为该父控件的子控件存在,并遵循父控件的生命周期和布局规则。
简而言之,这段代码:
QWebEngineView *webView = new QWebEngineView(parentWidget); 将会创建一个新的QWebEngineView实例,并将其父控件设置为parentWidget。如果需要在窗口中显示一个能够浏览网页内容的视图,这就是创建该视图的基本步骤。随后可以调用webView->load(QUrl(url))来加载指定的网页URL。
2、void QWebEngineView::back() void QWebEngineView::back() 是Qt WebEngine模块中的一个成员函数,应用于QWebEngineView类。该函数的作用是让QWebEngineView中的网页浏览器历史回退一步,即显示上一个访问过的网页。
在实际应用中,如果你有一个QWebEngineView对象(比如命名为webView),并且用户已经在该浏览器控件中浏览了几个网页,调用 webView->back(); 就会让浏览器返回到前一个页面,就像在常规Web浏览器中点击“后退”按钮一样。
以下是一个使用QWebEngineView和back()函数的简单代码示例:
#include <QApplication> #include <QWebEngineView> #include <QUrl> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建一个QWebEngineView实例 QWebEngineView* webView = new QWebEngineView(); // 加载一个网页 webView->load(QUrl("
排序(1):深入了解数据结构第四弹——排序(1)——插入排序和希尔排序-CSDN博客
前言:
在前面我们已经讲过了几种排序方式,他们的效率有快有慢,今天我们来学习一种非常高效的排序方式——快速排序
目录
一、快速排序的思想
二、快速排序的递归实现
2.1 霍尔法
2.2 挖坑法
2.3 前后指针法
三、快排的非递归实现
四、完整代码示例
五、总结
一、快速排序的思想 快速排序是一种常用的排序算法,属于比较排序的一种。它的基本思想是先选取一个基准数据,经过一趟排序,让比它小的分为一部分,比它大的分为另一部分,然后再对这两部分继续这种操作,直到他们有序
快速排序的具体步骤如下:
选择一个基准元素(通常是待排序数组的第一个元素、最后一个元素或者中间元素)。将比基准元素小的元素放在基准元素的左边,比基准元素大的元素放在基准元素的右边,这一步称为分区操作。对基准元素左右两部分分别递归地进行快速排序。 比如这样一组数据{ 4,7,1,9,3,6,5,8,3,2,0 }
1、首先我们先选择一个基准元素(我们以最左边的元素为基准元素为例)
2、对剩下的元素进行排序,比基准元素小的排在左边,比基准元素大的排在右边
3、对小的部分和大的部分重复上面两部操作,最后我们就可以得到一个有序的数组
这一步就可以清楚的看到其实快排的这种思想很像二叉树,所以很容易通过类似二叉树递归的那种思想来解决
二、快速排序的递归实现
快排的实现其实是很有意思的,在上面我们已经讲了快排的思想,其实就是不断的重复分区操作的过程,所以我们就可以设计一个递归来实现这种,同时,由于每一步都要进行分区,所以我们可以封装一个分区排序函数(PartSort函数)在前,重复这个过程
void QuickSort(int* a, int begin,int end) { if (begin >= end) { return; } int keyi = PartSort3(a, begin, end); QuickSort(a, begin, keyi - 1); QuickSort(a, keyi + 1, end); } 其中参数a是数组指针,begin是传入数组的首元素位置,end是传入元素尾元素位置,过程图如下:
快排函数的主体就是上面那几步,接下来,我们重点讲解一下快排分区排序函数(PartSort函数)该如何实现,这一步也是非常有趣的,目前我们有三种方法来实现这个函数的功能:
1、霍尔排序
2、挖坑法
3、前后指针法
2.1 霍尔法 霍尔法是霍尔大佬(就是快排的发明者)自己刚开始用的排序方法,但是由于这种分部排序方法需要注意到的点太多,所以后来才又有了后面两种排序方法,现在我们先来学习一下霍尔大佬的这种方法
霍尔排序其实就是严格按照我们上面讲的快排的那种思想进行的,就是先选一个基准数,然后对后面数进行大致的判断,让比基准数小的位于基准数左侧,比基准数大的位于基准数右侧
霍尔实现这个过程的方法就是先选取最左边的元素作为基准元素,然后记录剩下元素左右位置,然后让左边向右移动,当遇到一个比基准元素大的数就停下来,右边向左移动,遇到一个小于基准元素的数停下来,然后让左右这两个数交换
一、环境准备 jdk下载
截止2022年1月,官方出的jdk1.8目前已更新到8u321的版本。
下载官网:https://www.oracle.com/java/technologies/downloads/#java8-windows
下载版本:jdk-8u321-windows-x64.exe
百度网盘:链接:https://pan.baidu.com/s/1F43G56vjd5JtZXxbkQJlIA 提取码:8888
进入上述网址后,选择Java 8,然后根据自己系统位数选择对应安装包即可,我电脑是64位,即选择
注:现在官方下载需要登录账号,我已登录账号,直接下载即可。(自行注册、登录Oracle账号,如果不想注册、登录账号,可选择百度网盘下载即可)
二、jdk安装 安装Java8包括jdk1.8和jre1.8,双击已下载好的安装包即可:
1、点击已下载好的安装包,进入Java8安装向导,点击下一步:
2、修改安装路径,自行修改
3、进入安装过程
4、安装jre1.8,修改jre的安装路径,建议放在jdk同级目录
5、jre安装过程
6、安装完成
7、安装完成后可在你的控制面板-->程序和功能 中看到以下两个程序
接下来即可配置环境变量了。
三、配置环境变量 1、配置Java 8的环境变量
步骤如下:
我的电脑右键属性(win11则在系统控制面板找到关于) --> 高级系统设置 --> 环境变量
1)新建JAVA_HOME变量,添加:
变量名:JAVA_HOME
变量值:D:\Program Files\Java\jdk1.8.0_321
2)配置PATH路径
找到系统变量中的PATH
配置bin目录
新建 --> 输入 %JAVA_HOME%\bin
输入完成,确定即可
2、验证是否安装成功
配置好环境变量,需要验证是否安装成功:
打开Windows的运行(可用win+R快捷键打开),输入cmd
验证Java版本:java -version
验证Java编译命令是否可用:javac
如出现上图,证明已经安装成功!
sig3是某个很火的短视频的核心加密参数,48位,主要介绍深度ollvm混淆的so层算法如何还原,除此之外,此app还有大量的花指令需要处理,这块看龙哥的就好了,非常清晰.
https://www.yuque.com/lilac-2hqvv/zfho3g/issny5?#%20%E3%80%8A%E8%8A%B1%E6%8C%87%E4%BB%A4%E5%A4%84%E7%90%86%EF%BC%88%E4%B8%80%EF%BC%89%E3%80%8B 前提准备: 一份去花过后的so,so和apk放123云盘了,在文章末尾.
熟悉crc32,WhiteBoxaes,sha256以及hmac算法,了解越多你能还原的可能性就越大,了解的程度不限于算法细节,特征值,以及算法的魔改方向.本章除了白盒AES不过多介绍,因为写过很多篇了,需要的翻我之前的文章,crc32和sha256以及hmac都会详细介绍.如果你只知道一个md5也没关系,看完你也能收货很多逆向技巧.
因为写文章的时候没办法完全还原我最初的思路,所以我尽可能按照第一次分析这个so的思路来写,所以如果某个地方你觉得很神奇作者tm是怎么想到的,不要奇怪,因为他踩了很多坑,但是坑有很多,没办法完全展现出来,我只能确保你跟着我的思路算法一定可以搞出来,毕竟花几天分析一个so和你一个小时看完这篇文章是截然不同的.
我创建了一个逆向技术交流群,有需要的加我w lyaoyao__i(两个_)
unidbg辅助算法分析 此so有初始化校验,需要先初始化目标函数,否则不会返回正确结果.初始化这块也不是文章的重点,所以这块不详细介绍,一切与算法还原关系不大的我都会淡化,重点介绍上面的几个算法以及unidbg辅助分析算法的技巧.
package com.ks; import com.github.unidbg.AndroidEmulator; import com.github.unidbg.Emulator; import com.github.unidbg.Module; import com.github.unidbg.file.FileResult; import com.github.unidbg.file.IOResolver; import com.github.unidbg.linux.android.AndroidEmulatorBuilder; import com.github.unidbg.linux.android.AndroidResolver; import com.github.unidbg.linux.android.dvm.*; import com.github.unidbg.linux.android.dvm.api.AssetManager; import com.github.unidbg.linux.android.dvm.array.ArrayObject; import com.github.unidbg.linux.android.dvm.wrapper.DvmBoolean; import com.github.unidbg.linux.android.dvm.wrapper.DvmInteger; import com.github.unidbg.memory.Memory; import com.github.unidbg.virtualmodule.android.AndroidModule; import com.github.unidbg.virtualmodule.android.JniGraphics; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; public class ks2 extends AbstractJni implements IOResolver{ @Override public FileResult resolve(Emulator emulator, String pathname, int oflags) { System.out.println("file open:"+pathname); return null; } private final AndroidEmulator emulator; private final VM vm; private final Module module; ks2(){ emulator = AndroidEmulatorBuilder.
数据可视化插件echarts【前端】 前言版权开源推荐数据可视化插件echarts一、如何使用1.1 下载1.2 找到js文件1.3 入门使用1.4 我的使用 二、前后端交互:入门demo2.1 前端htmljs 2.2 后端entitycontrollerservicemapper 三、前后端交互:动态数据3.1 前端js 3.2 后端service 四、前后端交互:动态数据4.1 前端js 4.2 后端ChineseName注解EldDataDataService 五、测试扩展性5.0 开发说明5.1 测试结果5.2 Eld多加一个属性5.3 加入测试数据 六、注解优化6.0 开发说明6.1 测试结果6.2 前端6.2 后端ChineseNameEldDataDataService 七、实际项目开发EldDataConstant测试数据 最后 前言 2024-4-12 16:08:09
以下内容源自《【前端】》
仅供学习交流使用
版权 禁止其他平台发布时删除以下此话
本文首次发布于CSDN平台
作者是CSDN@日星月云
博客主页是https://jsss-1.blog.csdn.net
禁止其他平台发布时删除以上此话
开源 日星月云 / echarts数据可视化
v1:二、入门demo
v2:三、动态数据
v3:四、动态数据
v4:六、注解优化
v5:七、项目开发
推荐 echarts入门教程(超级详细带案例)
数据可视化插件echarts 一、如何使用 1.1 下载 (1)从 npm 获取
npm install echarts --save
(2)从 CDN 获取
(3)从 GitHub 获取
概览 从 Xcode 15 开始,苹果推出了新的 #Preview 宏预览机制,它无论从语法还是灵活性上都远远超过之前的预览方式。#Preview 不但可以实时预览 SwiftUI 视图,而且对 UIKit 的界面预览也是信手拈来。
想学习新 #Preview 预览的一些超实用调试小妙招吗?那就“如意如意”随小伙伴们的心意吧!
在本篇博文中,您将学到如下内容: 概览1. Xcode 15.0 新预览机制简介2. #Preview 让状态初始化如此轻松!3. 为什么 #Preview 中不能直接嵌入可变状态?4 #Preview + @Observable 宏构造可变 @Binding 实参总结 相信学完本课后,大家对于 Xcode 15+ 预览的使用以及 SwiftUI 界面调试会更加的轻车熟路!
那还等什么呢?让我们马上开始吧!Let‘s preview!!!😉
本文对应的视频课在此,欢迎恣意观赏 😃
Xcode 15.0新 #Preview 预览让调试悠然自得
1. Xcode 15.0 新预览机制简介 从 Xcode 15 开始,苹果借助于 Swift 5.9 宏(Macro)的“东风”,也为我们带来了全新的 #Preview 预览机制。你猜的没错,它其实就是一个宏:
如上所示:我们将 #Preview 宏定义展开为了其原始代码的实现,大家可以清楚的看到 #Preview 宏背地里到底做了些神马。
在 Xcode 15 之前,小伙伴们需要使用遵循 PreviewProvider 协议的 Previews 结构来帮助我们预览指定的 SwiftUI 视图:
文章目录 1. 背景2. 代码实现和异常发现3. 解决异常3.1 从 URL入手3.2 从 WebSocket子协议的使用方式入手(真正原因) 4. 总结(仍然存在的问题) 前言:
本篇文章记录的是使用WebSocket进行双向通信时踩过的坑,希望能够帮助大家找到解决连接异常的正确方法。
1. 背景 本人在使用WebSocket实现“聊天室”的实时双向通信时(发消息、添加好友、处理好友请求等),一开始使用 cookie + session 的方式来管理用户的上下线情况,后来想引入 JWT,使用 token的方式来增强系统的可用性。这时我遇到了一个问题,大部分的接口都是使用 HTTP 协议的方式传输数据,因此我们可以将令牌放在 Header中用于身份校验;而 WebSocket进行双向通信时,前端无法直接在 header添加token。
经过网上查阅资料可知,有其他的方式可以在 HTTP升级为WebSocket时携带 token:(1)在 URL中追加 token(2)使用WebSocket的子协议传递 token。(通过抓包可以知道,token放在Header的 “Sec-WebSocket-Protocol” 中)
2. 代码实现和异常发现 考虑到 token直接暴露在 url 的安全性及优雅性等因素,我最终选择使用 WebSocket子协议来传递 token。以下是个人操作的过程及心路历程,若只想知道解决方法,可直接查看 3.2 从 WebSocket子协议的使用方式入手。
前端代码如下:
var token = localStorage.getItem("token"); let websocket = new WebSocket("ws://" + location.host + "/WebSocketMessage", [token]); 对于后端来说,可以使用自定义拦截器来验证并处理token(存储token信息,以便后续在WebSocketSession中处理消息时使用),具体方法是自定义类继承 HandshakeInterceptor ,并重写它的两个方法。
建立连接前处理token的代码如下:
@Component public class SaveTokenInterceptor implements HandshakeInterceptor { // 握手前的操作,该方法返回 true 代表同意建立 WebSocket连接,false代表拒绝建立连接 @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception { // HTTP协议 未正式升级为 WebSocket时,可以对 HTTP 报文中的信息进行一定的处理 // 1.
RDD的 transformations 和 actions
点击这里
RDD 运行过程:
创建 RDD 对象;SparkContext 负责计算 RDD 之间的依赖关系,构建 DAGDAGScheduler 负责把 DAG 图分解成多个 Stage ,每个 Stage 中包含了多个Task ,每个 Task 会被 TaskScheduler 分发给各个 WorkerNode 上的 Executor 去执行。 3.4.3 Scala Scala 是一门现代的多范式编程语言,运行于 Java 平台( JVM Java 虚拟机),并兼容现有的 Java 程序
Scala 的特性:
Scala 具备强大的并发性,支持函数式编程,可以更好地支持分布式系统Scala 语法简洁,能提供优雅的APIScala 兼容Java ,运行速度快,且能融合到 Hadoop 生态圈中Scala 是 Spark 的主要编程语言,但 Spark还支持 Java 、 Python 、R 作为编程语言Scala 的优势是提供了 REPL Read Eval Print Loop,交互式解释器 ),提高程序开发效率 4. SparkSQL Spark SQL在Hive兼容层面仅依赖HiveQL解析、Hive元数据,也就是说,从HQL被解析成抽象语法树(AST)起,就全部由Spark SQL接管了。Spark SQL执行计划生成和优化都由Catalyst(函数式关系查询优化框架)负责
人事管理系统目录
基于SpringBoot+vue的人事管理系统设计与实现
一、前言
二、系统设计
三、系统功能设计 四、数据库设计
五、核心代码 六、论文参考
七、最新计算机毕设选题推荐
八、源码获取:
博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Java领域优质创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️
主要项目:小程序、SpringBoot、SSM、Vue、Html、Jsp、Nodejs等设计与开发。
🍅文末获取源码联系🍅
基于SpringBoot+vue的人事管理系统设计与实现 一、前言 人事管理系统,采用的主流的SprinBoot+vue进行人事管理系统程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。人事管理系统的开发让用户查看员工信息变得容易,让管理员高效管理员工信息。过人事管理系统将会使人事管理各个方面的工作效率带来实质性的提升。
关键字:人事管理系统;B/S模式;java技术;软件架构;
二、系统设计 系统功能结构如图
三、系统功能设计 管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图5-1所示。
图5-1管理员登录界面图
管理员登录系统后,可以对首页,个人中心,员工管理,部门管理,员工考勤管理,请假申请管理,加班申请管理,员工工资管理,招聘计划管理,员工培训管理,部门培训管理,员工详细管理等进行相应的操作管理,如图5-2所示。
图5-2管理员功能界面图
学生管理,在学生管理页面可以对索引,员工工号,员工姓名,部门,职位,性别,年龄,员工手机,照片,基本工资等内容进行详情,员工培训,发放工资,详细信息,修改和删除等操作,如图5-3所示。
图5-3学生管理界面图
部门管理,在部门管理页面可以对索引,部门,职位等内容进行详情,修改和删除等操作,如图5-4所示。
图5-4部门管理界面图
员工考勤管理,在员工考勤管理页面可以对索引,员工工号,员工姓名,职位,部门,打卡类型,打卡时间,备注等内容进行详情,修改和删除等操作,如图5-5所示。
图5-5员工考勤管理界面图
四、数据库设计 (1) 员工实体图如下所示:
(2) 员工实体性图如下所示:
数据库表的设计,如下表:
表4-1:token表
字段名称
类型
长度
字段说明
主键
默认值
id
bigint
主键
主键
userid
bigint
用户id
username
varchar
100
用户名
tablename
varchar
100
表名
role
varchar
100
角色
token
varchar
200
密码
addtime
timestamp
新增时间
1.1 Javaweb通用 [1]张学诚。Java WEB开发中的中文乱码问题解决方法[J].电脑知识与技术,2018,14(27):62-63.
[2]汪美。基于Javaweb内置对象session的仿真[J].科技风,2019(10):74.
[3]张雪敏.浅议MVC设计模式在JavaWeb中的作用[J].科技风,2018(22):58-59.
[4]薛茹。基于JavaWeb的图书购物网站的设计与实现研究[J].南方农机,2020,51(02):217.
[5]葛萌,张琳娜,陈伟。 Java多态性机制应用研究[J]. 攀枝花学院学报,2016,02:25-28.
[6]邓明杨,李忠雄.基于JAVA Web技术的网上书城的设计与实现[J].计算机产品与流通,2020(05):159-160.
[7]汪永松。JavaWeb开发技巧之项目模板[J].电脑编程技巧与维护,2020(02):3-8+16.
[8]柯采.基于J2EE和MVC模式的Web应用研究[J].软件,2020,41(03):165-167.
[9]陆丽.MVC设计模式在JavaWeb开发中的应用研究[J].信息通信,2020(04):104-106.
[10]李光明,房靖力。基于JavaWeb的推荐数据后台管理系统的设计与实现[J].电脑知识与技术,2020,16(03):66-68.
[11]俞昊,陈磊.基于JavaWeb的实验室用电管理系统[J].福建电脑,2018,34(10):140+95.
1.2 Java
[1] 丁玉青;孙逸飞;朱敏.基于JAVA的共享蓝牙耳机小程序设计[J].科技与创新,2023,(20):152-154.DOI:10.15913/j.cnki.kjycx.2023.20.047
[2] 尉译心.Java程序设计课程的教学设计与实践分析[J].电子技术,2023,52(09):364-365.
[3] 程小红.基于Java程序设计语言中一维数组的应用[J].数字技术与应用,2023,41(08):31-34.DOI:10.19695/j.cnki.cn12-1369.2023.08.10
[4] 郑海燕.基于Java Web的高校英语线上教学平台设计[J].自动化与仪器仪表,2023,(02):204-208.DOI:10.14016/j.cnki.1001-9227.2023.02.204
[5] 王梦晓;翟玉庆;朱林;弭娜.基于Web的Java融合课程教学平台的构建[J].信息与电脑(理论版),2022,34(15):176-178.
[6] 蒋卫祥;王雨萱;朱利华.高职Java Web应用开发课程模块化教学设计与实践[J].山西青年,2022,(09):61-63.
[7] 王文豪;仇冬;许仁良;陈晓兵.基于多平台融合的线上教学模式探索[J].曲靖师范学院学报,2021,40(03):73-77.
[1]王岩。基于Java的大数据集中碎片数据实时标记方法[J].电子设计工程,2020,28(09):46-49+53.
[2]樊迪。利用JAVA异常机制分析安卓应用程序崩溃的研究[J].计算机产品与流通,2020(05):155.
[3]张翔,席奇,潘斌辉。课程思政在《面向对象程序设计(Java)》专业课程中的应用分析[J].计算机产品与流通,2020(05):161+163.
[4]李响,冯维娜。校企合作共同开发《Java项目实战》课程的研究与实践[J].计算机产品与流通,2020(05):194.
[5]何东。基于Java语言的安卓软件开发研究[J].通讯世界,2020,27(04):62-63.
[6]郜慧敏。基于计算机软件开发的JAVA编程应用初探[J].通讯世界,2020,27(04):119-120.
[7]杨凌云。试谈计算机软件Java编程特点及其技术[J].电脑编程技巧与维护,2020(04):47-49.
[8]袁蕾。Java语言在计算机软件开发的应用[J].网络安全技术与应用,2020(04):79-80.
[9]李小智,刘伟,丁长松。面向多层次能力培养的Java程序设计课程教学实践[J].计算机时代,2020(04):81-84.
[10]章铁飞,傅均。平衡再平衡学习理论在Java编程教学中的应用[J].中国信息技术教育,2020(08):102-104.
[11]王薇,姚宇轩。基于Java web的在线Java编辑器[J].电子世界,2020(07):76-77.
[12]张峰,刘迪,仇丽青,赵卫东。面向软件开发实践能力的《Java程序设计》教学资源建设[J].软件工程,2020,23(04):60-62+47.
[13]吴吉哲,梁洪嶂。基于Java的气象站数据对比平台设计与实现[J].农业开发与装备,2020(03):83+86.
[14]李蔚妍,高葵,孙未,朱红梅。Java程序中图形界面案例的分析与研究[J].福建电脑,2020,36(03):31-34.
[15]邹青松。计算机软件Java编程特点及其技术运用[J].黑龙江科学,2020,11(06):62-63.
[16]谢静,蒋秀林。以能力培养为目标的Java程序设计课程教学研究[J].西昌学院学报(自然科学版),2020,34(01):111-114+119.
[17]尹维伟。探析计算机软件Java编程特点及技术[J].电脑编程技巧与维护,2020(03):38-39+52.
[1]王庆月,王灿,仝镇熙. 基于微信小程序的校园导览系统开发 [J]. 电脑编程技巧与维护, 2023, (11): 79-81+109. DOI:10.16184/j.cnki.comprg.2023.11.020
[2]张永军,李翔. 多维度Java EE课程教学改革探索 [J]. 中国信息技术教育, 2023, (22): 97-99.
文章目录 一、边缘检测算法概述二、常用边缘检测算法2.1、Sobel算法2.2、Prewitt算法2.3、Canny算法 三、总结 一、边缘检测算法概述 图像边缘检测是计算机视觉和图像处理中的重要任务,它用于检测图像中物体和区域之间的边缘和轮廓。在Python中,有多种方法可以进行图像边缘检测,本文将介绍一种常用的方法:Canny边缘检测算法。
二、常用边缘检测算法 2.1、Sobel算法 Sobel算法是一种基于卷积的边缘检测方法,通过计算图像的梯度来检测边缘。它使用两个卷积核,一个用于水平方向,另一个用于垂直方向。
对于水平方向的Sobel核:
对于垂直方向的Sobel核:
最终梯度图像:
代码案例
import cv2 import numpy as np import matplotlib.pyplot as plt # 读取图像 img = cv2.imread("lenna.jpg", cv2.IMREAD_GRAYSCALE) # Sobel滤波 sobel_x = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3) sobel_y = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3) # 计算梯度幅值 gradient_magnitude = np.sqrt(sobel_x**2 + sobel_y**2) # 绘制图像 plt.subplot(2, 2, 1), plt.imshow(img, cmap='gray'), plt.title('Original Image') plt.subplot(2, 2, 2), plt.imshow(sobel_x, cmap='gray'), plt.title('Sobel X') plt.subplot(2, 2, 3), plt.
1 svg-pan-zoom 概述 svg-pan-zoom 是一个轻量级、高性能且易于使用的 JavaScript 库,专为增强 SVG 图像的浏览体验而设计。它提供了平移和缩放功能,使用户能够无缝探索大型或复杂的 SVG 图形。这个库允许用户对SVG图像进行交互操作,包括缩放、平移和旋转等,从而提供了更加灵活和交互式的 SVG 浏览体验。
在 svg-pan-zoom 中,可以通过配置选项来定制SVG的平移和缩放行为。例如,可以设置是否启用平移和缩放功能,控制缩放操作的敏感度,限制用户可以缩放到的最小和最大级别,以及调整SVG图像在视口中的显示方式等。此外,svg-pan-zoom 还提供了回调函数和事件处理机制,允许开发者在特定的 SVG 操作之前或之后执行自定义代码,以及处理自定义的 SVG 事件。
通过使用 svg-pan-zoom,开发者可以轻松地在他们的应用中实现交互式的 SVG 地图、图表或其他可视化元素,从而提升用户体验和应用的交互性。无论是在 Web 应用、移动应用还是桌面应用中,svg-pan-zoom 都能为 SVG 图像提供出色的浏览和交互功能。
2 svg-pan-zoom 的基本使用 2.1 引入 svg-pan-zoom (1)通过 npm 安装 svg-pan-zoom
进入到指定的开发目录下,初始化 npm 项目(如果你的目录还不是一个 npm 项目,你需要初始化它。这将会创建一个 package.json 文件,其中包含你的项目依赖和其他元数据)。
npm init -y (2)安装 svg-pan-zoom
使用 npm 安装 svg-pan-zoom 包。
npm install svg-pan-zoom --save (3)在项目中引入 svg-pan-zoom
可以使用 require 或 import 语句来引入 svg-pan-zoom。 // 使用 CommonJS 语法(Node.
文章目录 0 前言1 课题背景2 项目效果展示2.1 主界面展示2.2电影数据查询2.3可视化展示 3 数据爬取3.1 Requests3.2 bs43.3 MySQL数据库 4 可视化技术4.1 Flask4.2 ECharts补充:不做成web系统 5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是
🚩 基于大数据的电影数据爬取分析可视化系统
🥇学长这里给一个题目综合评分(每项满分5分)
难度系数:4分工作量:4分创新点:3分 🧿 选题指导, 项目分享:见文末
1 课题背景 随着互联网的快速发展,越来越多的人喜欢在微博、知乎、豆瓣等社交网站上发表自己对某些事物的想法、态度或意见。用户同时也会将自己购买的产品或体验到的服务,在这些社区式的网站上评价,这样通常会带动他人也前去购买或体验,形成口碑效应。
社交应用及网站上有源源不断的信息发布,这些信息中隐含着大量对我们及企业有收集价值的资源。就像用户评分和评价系统中,用户不但会对作品进行评比,还分享和传播了作品信息。如果能够获取这些数据并对其进行分析,可以让人们挑选到满意的书籍、选择出一部精彩的电影,也可以帮助企业改进产品的服务等。使用爬虫程序可以高效地对社交网站上的信息进行收集、组织和管理。豆瓣网作为社交网站的代表,提供了在图书、电影和音乐等方面独树一帜的评分、推荐及比价体系,在社交网络中产生了深远的影响。
2 项目效果展示 2.1 主界面展示 2.2电影数据查询 管理员可对电影数据进行查询,可根据“最低评分”,“最高评分”,“上映年份”,“电影类型”,“上映地区”,“影名关键字”等标签进行筛选、查询。
2.3可视化展示 电影类型矩形图:可以清楚的看到剧情,纪录片,喜剧类型的电影所占比重较大。 上映年份漏斗图:可以看到中国、美国上映地区较多。 上映年份分布、电影评分分布图。 时间轴图:可随年份动态变化效果。 地区类型分布饼状图 频数统计词云图:可根据主演、导演、编剧和电影排名生成相应的词云图 3 数据爬取 3.1 Requests requests是Python用于网络请求的第三库,也是爬虫获取网络数据的重要工具,使用的时候需要导入
本项目中相关代码:
import requests from bs4 import BeautifulSoup from lxml import html etree = html.etree import csv # 请求头 headers = { "