当前位置: 首页 > news >正文

Ubuntu 22.04安装部署

一、部署环境

表 1‑1

环境服务版本号
系统Ubuntu22.04 server lts
运行环境1JDK1.8
前端WEBNginx1.8
数据库postgresqlpostgresql13+postgis3.1+pgrouting3.1
消息队列rabbitmq3.X(3.0以上)
运行环境2erlang23.3.3.1

二、安装系统

2.1安装

1.安装方式,选第一条。

2.选择语言,建议英语,报错时比较好百度,中文版报错不容易搜索。

3.选择键盘标准,默认即可。

4.选择安装版本为标准server,键盘方向键控制光标,空格键选中。

5. 设置网卡,联网环境下稍稍等待一下,即可自动获取到IP地址。

6.配置代理,没特殊需求不用理,直接下一步。

7.设置镜像源,后面可以设置,这里直接下一步。

8.选择装系统的硬盘,多块硬盘时需要进行选择。

9.硬盘分区,默认即可。

10.设置名字、主机名、用户名,设置用户名密码。

11.升级Ubuntu pro,不升级,选择跳过。(默认选项即是跳过。Skip)

12.开启ssh服务,这个建议开启,否则还需进系统修改,比较麻烦。空格选中。

13.选中服务快照,这里不做选择,直接下一步。

14.系统自动执行安装,等待进度结束,点击重启即可。

15.点击重启,等待服务器自动重启。

16.输入先前自己设置的用户名与密码。密码为不可见状态,输入完直接Enter。

##若半天不进入到用户登录页,就手动重启一遍或多变。##

17.进入系统

2.2系统设置

进入系统后可使用ip a命令查看现有ip与网卡名称,在通过终端工具连接,我使用xshell 7进行连接。

2.2.1配置ip

#进入到/etc/netplan/

cd /etc/netplan/

#此目录下有一个为.yaml的文件,此文件为网卡配置文件,修改现有配置文件名称为.bak如:00-installer-config.yaml修改为00-installer-config.yaml.bak

sudo mv 00-installer-config.yaml 00-installer-config.yaml.bak

#用vi或vim编辑器打开、创建一个名为01-netcfg.yaml的文件。

##注意,所有命令都需要在前面加上sudo。

sudo vim 01-netcfg.yaml

#第一次使用sudo 命令需要输入密码。输入你登录的密码,密码为不可见。

#---------------------------------------------------------

network:

version: 2

renderer: networkd

ethernets:

ens33: #网卡名称

addresses: [10.0.0.22/24] #IP地址/子网掩码

gateway4: 10.0.0.2 #网关

nameservers:

addresses: #DNS不联网不用加,联网就百度,查公用DNS与企业内部自己的DNS

#---------------------------------------------------------

#ens33:为服务器的网卡名称。

#addresses: [10.0.0.22/24] 为此台服务器的ip/子网掩码。

#gateway4: 10.0.0.2 网关

#下面是DNS 不需要连外网可以不设

#保存退出--先按一下esc,然后输入“:wq”点击“Enter”。

#重启网卡或服务器生效

#重启网卡

sudo netplan apply

#重启服务器

sudo reboot

三、部署JDK

#上传nVisual-ubuntu_22.04_x86.tar.gz至服务器。

#使用cd命令进入到所上传的目录。

#进入到解压开的目录内

cd nVisual/jdk

#查看JDK名称

sudo dpkg -i *.deb

#验证JDK安装是否成功

java -version

#出现版本号为部署成功。有问题请自行百度。

四、部署Nginx

4.1部署

#在刚刚已经上传的包里 已有NGINX部署文件,进入到NGINX目录。

cd nginx/

#使用dpkg命令安装所有包。" * 代表所有文件"

sudo dpkg -i *

#启动NGINX

sudo systemctl start nginx.service

#重启NGINX

sudo systemctl restart nginx.service

#停止NGINX

sudo systemctl stop nginx.service

#查看服务状态

sudo systemctl status nginx.service

#加入到开机自启动

sudo systemctl enable nginx.service

4.2修改配置文件

#将标准配置文件替换现有Nginx配置文件。

#备份现有配置文件。

cd /etc/nginx

mv ngnx.conf nginc.conf.bak

#在微盘里获取Nginx配置文件,上传至/etc/nginx目录。

#获取地址:

https://drive.weixin.qq.com/s?k=AN0AjwcKAAwPPJlnYV

##修改NGINX启动用户,第一行的user修改为“登录Ubuntu的用户名”,否则会重启报错。

user [hostmane];

##修改Nginx访问地址。

server_name localhost;

五、部署postgresql13+postgis+pgrouting

5.1部署postgresql

5.1.1部署

#在之前上传的tar包内,以有postgresql13的安装包。

#进入到postgresql目录

cd nVisual/pgsql/postgresql

#安装所有deb包。

sudo dpkg -i *.deb

#等待安装结束。

#启动命令

sudo systemctl start postgresql.service

#重启命令

sudo systemctl restart postgresql.service

#加入到开机自启

sudo systemctl enable postgresql.service

#查看服务状态

sudo systemctl status postgresql.service

5.1.2设置优化

#进入数据库并设置密码

#切换至postgres用户

sudo su - postgres

#进入数据库

psql

#设置密码

alter user postgres with password 'NWEpassword';

#退出PostgreSQL数据库

"\q" 或 "ctrl+d" 或 "quit" 或 "exit"

5.1.3配置远程连接

#配置/etc/postgresql/13/main/pg_hba.conf

#pg_hba.conf修改项:

sudo vim /etc/postgresql/13/main/pg_hba.conf

# IPv4 local connections:

host all all 127.0.0.1/32 md5

host all all 0.0.0.0/0 trust

#配置 /etc/postgresql/13/main/postgresql.conf

sudo vim /etc/postgresql/13/main/postgresql.conf

#postgresql.conf修改项:

#listen_addresses = 'localhost'

#改为

listen_addresses = '*'

#重启生效

systemctl restart postgresql

PGAdmin 4 测试连接

连接成功

5.2部署postgis

#进入到以上传的文件目录

cd nVisual/pgsql/postgis

#安装postgis

sudo dpkg -i *.deb

#开启postgis插件

--------------------------------------

#进入到数据库

sudo -u postgres psql

#开启postgis插件

create extension postgis;

create extension postgis_topology;

create extension fuzzystrmatch;

create extension address_standardizer;

create extension address_standardizer_data_us;

create extension postgis_tiger_geocoder;

#查看postgis版本,成功打印出版本号为开启postgis插件成功。

SELECT PostGIS_full_version();

#退出查看模式(键入q就会自动退出。)

q

5.3部署pgrouting

#进入到以上传的文件目录。

cd nVisual/pgsql/pgrouting

#安装pgrouting。

sudo dpkg -i *.deb

#等待安装完成。

#开启pgrouting的插件。

CREATE EXTENSION pgrouting;

#查看pgrouting版本。

select pgr_version();

#打印出pgrouting版本号为开启插件成功。

5.4导入基础数据

5.4.1备份基础数据

使用PGadmin 4 备份一份基础数据库,基础数据库为nvisual_empty_template。

5.4.2同步基础数据

创建一个数据库

#恢复备份好的数据文件。

六、nVisual项目部署

6.1部署nVisual前端

#在/home/目录下创建 nvisual-frontend 文件夹

sudo mkdir /home/nvisual-frontend/

#给 home 目录以及home下的所有文件及目录授权给登录用户。

#命令为:词条命令为,给根下的 home目录,包括以下所有文件、文件夹的用户与用户组授权为nvisual用户与nvisual组。

shdo chown nvisual:nvisual -R /home

---------------------------------------

#上传dist包至nvisual-frontend下并解压。

tar xvf dist.tar.gz

---------------------------------------

## 如果dist目录有更新,可以找前端人员获取更新包,上传至服务器解压更新包后,使用“\cp -a”对原dist目录进行覆盖

---------------------------------------

#dist目录不为dist如“dist-2.0.71.2”请修改为“dist”

sudo mv dist-2.0.71.2 dist

##注意nvisual的前端标准部署目录路径为/home/nvisual-frontend/若修改了前端文件的路径,需要修改在微盘内获取的Nginx配置文件的相关路径。批量替换可使用 :%s###g,具体使用方法如下。

##使用vi或vim编辑文件时先不进入编辑模式,直接键入 :%s#要替换的内容#替换成的内容#g

-----------------------------------------------------------------------

##导入SSL证书

如果项目部署没有跳转https的需求,请注释掉nginx配置文件中的ssl部分,并忽略这一步。

01. 将SSL证书导入至客户服务器

将两个SSL证书导入客户服务器的/etc/nginx/ssl/目录下

02. 检查nginx语法并重启nginx

nginx -t

systemctl restart nginx

03. 如果客户服务器不需要配置https跳转,则不需要进行SSL证书的相关配置

6.2访问测试

使用电脑浏览器访问所部署的nVisual的服务器。出现以下页面为前端配置成功。

6.3部署nVisual后端

#在/home下,创建 nvisual-backend 目录

sudo mkdir /home/nvisual-backend

#上传后端jar包至/home/nvisual-backend/下

#进入/home/nvisual-backend/

#修改后端jar包配置文件

##**检查数据库地址与端口、数据库名称、数据库密码**

#启动命令

sudo java -Dfile.encoding=utf-8 -jar xxx.jar

#在程序加载后无报错,并出现(JVM***)表示启动成功,转至后台启动。

sudo nohup java -Dfile.encoding=utf-8 -jar xxx.jar &

#后端启动完成,查看下Java进程

ps -ef | grep java

6.4授权

访问服务地址:ip

管理员账号:admin_user

管理员密码:Admin

初次登录会提示Mac地址错误,并跳转到授权页面。

#授权页面,点击服务器地址,会自动弹出服务器所存在的ip,只需点击想要授权的ip即可,**有域名的用户,手动填写域名。

#点击生成用户识别码,并把生成码复制出来,发给实施或客服进行授权。

#授权生成后,会有两个文件,一个是TXT文件,里面是后端授权码,点击去输入授权码。并把授权码输入进文本框,点击注册。

#授权成功

#授权那成功后,重新打开一页浏览器页面,输入服务ip或域名进行访问nVisual。就可进入到系统。

#授权文件里的另一个“header.js”文件,为前端授权文件,复制到/home/nvisual-frontend/dist/libs/ht/core/about/目录下。

#刷新浏览器页面生效,拖拽一两个节点进行测试,拖拽出的节点或设备可编辑表示授权成功。如果不生效,请清楚浏览器缓存重试。

七、部署rabbitmq

7.1部署

#进入以上传的rabbitmq文件目录

cd nVisual/rabbitmq/

#安装所有.deb包。

sudo dpkg -i *.deb

#等待安装完成

#启动

sudo systemctl start rabbitmq-server

#重启

sudo systemctl restart rabbitmq-server

#状态

sudo systemctl status rabbitmq-server

#加入到开机自启

sudo systemctl enable rabbitmq-server

----------------------

7.2开启可视化图形管理界面

RabbitMQ是自带了图形化操作界面插件的,端口默认是15672,图形化界面默认是关闭的,可以通过命令开启。

#开启RabbitMQ图形化界面并查看端口

#启动图形化界面:

sudo rabbitmq-plugins enable rabbitmq_management

7.3访问 rabbitmq

#浏览器尝试访问

访问地址:服务器地址ip:15672

默认用户名:guest

默认密码: guest

##报错显示只能本地访问,简易使用下方“解决方法”

#修改配置文件

#所以需要手动创建以下配置文件。

vim /etc/rabbitmq/rabbitmq.conf

#文件内容为

loopback_users = none

#保存退出

#配置文件创建完成后重启RabbitMQ即可在本地进行登录。

sudo systemctl restart rabbitmq-server

#(RabbitMQ重启有点慢,多等几秒即可)

#重启结束成功后,再次访问图形化界面。

7.4创建admin用户

#使用命令创建新用户并设置权限。

#创建用户admin 密码admin

sudo rabbitmqctl add_user admin admin

#授予admin用户默认visual host "/" 下的所有资源的配置、写、读的权限

sudo rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

#授予admin用户管理员角色

sudo rabbitmqctl set_user_tags admin administrator

7.5创建交换机

#创建交换机

交换机名称(Name):

nvisual-exchange

类型(Type):

direct

7.6测试

7.6.1测试用户操作日志

点击 “管理->日志” 可查看到用户操作过的日志记录。

7.6.2测试用户登录日志

点击 “管理->日志->登录日志” 可查看到用户登录和退出的日志记录。

7.6.3测试报表

点击 “管理->报表"可查看初始的报表数据。(初始部署是没有数据的,可以拖拽一两个设备过节点。)

八、登录优化

8.1登录页优化

8.1.1注册入口优化

#服务器的/home/nvisual-frontend/dist/config/目录下为页面配置文件目录。

#使用修改diagram.js.sample为diagram.js。

mv diagram.js.sample diagram.js

#按照说明,把代码前后的注释删除掉。

8.1.2登录视图优化

#用vim打开access.js文件。

vim access.js

#根据注释设置边框,自定义名称,logo等

8.2主页优化

#无监“测模”块的项目,隐藏“监测”功能。

九、数据库备份

9.1创建备份脚本

#第一步 创建目录结构 /home/pgsql/pgsql_backup

sudo mkdir -p /home/pgsql/pgsql_backup

#第二步 设置变量 用vim或vi打开/etc/profile 在最后另起一行写入下列。保存退出。

PGPASSWORD='NWEpassword'

#刷新环境变量

source /etc/profile

#备份机制为,每天凌晨4点备份,保留时常为7天,时间可修改。

#在pgsql目录下创建备份名为pgsql_backup.sh的脚本文件,创建备份脚本,内容如下 :

#用vim编辑器打开

vi /home/pgsql/pgsql_backup.sh

--------------------------------------------------------------------------

# Backup Nvisual Database At 4am Everyday

# Delete The Backup File Made 7 Days Ago

DATE=`date "+%Y-%m-%d_%H:%M"`

PGPASSWORD='NWEpassword' pg_dump -U postgres -p 5432 nVisual > /home/pgsql/pgsql_backup/nvisual_$DATE.sql

rm -f `find /home/pgsql/pgsql_backup/ -name 'nvisual*.sql' -mtime +7`

--------------------------------------------------------------------------

#手动执行脚本已确认脚本是否生效

bash /home/pgsql/pgsql_backup.sh

说明:

  1. 正文宋体小四,1.5倍行距,两端对齐,首行缩进2字符,表格内字体宋体五号,全篇正文内容段落格式要统一。
  2. 一级标题宋体二号加粗,设置段前分页,二级标题宋体三号加粗,级标题宋体四号加粗,四级标题宋体小四加粗。
  3. 图片、表格及其题注应居中,首行无缩进。同一章节中的图表编号应连贯。
  4. 招标文件有特殊字体、段落格式等要求的,要严格按照招标文件要求编制。
  5. 标题名称根据招标文件大纲标题编制要求确定,商务标、技术标负责人提前沟通确定下标题编号、标题名称顺序。
  6. 招标文件有明确要求大纲标题内容和顺序的,要严格按照招标文件要求编制。
  7. 技术内容评分响应点建议不要写到太深的标题里,尽量写在一至四级标题中,便于在目录里显示。
  8. 文档内部交叉引用须使用软件“交叉引用”功能,合稿后须更新域。
  9. 商务标、技术标务必使用此模板创建文档编写(直接双击模板打开后另存文档即可)。设置标题的时候,首先把光标放在要设置成标题的文字处,然后在“开始”菜单栏的样式列表里选择合适的标题样式(1级标题、2级标题……)即可,务必不能更改已有的标题样式。

相关文章:

Ubuntu 22.04安装部署

一、部署环境 表 1‑1 环境服务版本号系统Ubuntu22.04 server lts运行环境1JDK1.8前端WEBNginx1.8数据库postgresqlpostgresql13postgis3.1pgrouting3.1消息队列rabbitmq3.X(3.0以上)运行环境2erlang23.3.3.1 二、安装系统 2.1安装 1.安装方式,选第一条。 2.选择…...

KINGBASE部署

环境:x86_64 系统:centos7.9 数据库–版本:KingbaseES_V008R006C008B0014_Lin64_install 授权文件–版本:V008R006-license-企业版-90天 一 前置要求 1.1. 硬件环境要求 KingbaseES支持通用X86_64、龙芯、飞腾、鲲鹏等国产C…...

探索 ONLYOFFICE:开源办公套件的魅力

文章目录 引言一、ONLYOFFICE 产品介绍与历史1.1 ONLUOFFICE 介绍1.2 ONLYOFFICE发展历史 二、ONLYOFFICE 的核心功能2.1 文档处理2.2 演示文稿 三、ONLYOFFICE 部署与安装四、ONLYOFFICE 产品优势和挑战五、ONLYOFFICE 案例分析六、ONLYOFFICE 的未来发展七、全文总结 引言 在…...

如何保护网站安全

1. 使用 Web 应用防火墙(WAF) 功能:WAF 可以实时检测和阻止 SQL 注入、跨站脚本(XSS)、文件包含等常见攻击。它通过分析 HTTP 流量来过滤恶意请求。 推荐:可以使用像 雷池社区版这样的 WAF,它提…...

抖音矩阵系统开发的技术框架解析,支持OEM

一、引言 随着短视频平台的兴起,抖音已成为全球范围内极具影响力的社交娱乐应用。对于企业和创作者而言,构建抖音矩阵系统可以实现多账号管理、内容分发与优化、数据分析等功能,从而提升品牌影响力和内容传播效果。本文将详细探讨抖音矩阵系统…...

python偏相关分析

偏相关分析含义 偏相关分析是一种用于测量两个变量之间关系的统计方法,它可以控制(排除)其他变量的影响。与简单的相关分析不同,偏相关分析可以帮助我们了解在控制某些干扰因素后,两个变量之间的“净”关系。比如&…...

低代码用户中心:简化开发,提升效率的新时代

随着数字化转型的加速,企业对于快速交付高质量应用的需求日益增长。在这个背景下,低代码开发平台应运而生,成为越来越多企业和开发者的首选工具。今天,我们将聚焦于低代码用户中心,探讨其如何帮助开发者简化流程、提升…...

ThingsBoard规则链节点:Math Function节点详解

引言 1. Math Function 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 数据预处理 3.2 阈值判断 3.3 复杂计算 3.4 动态阈值 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台&#xff0c…...

echarts地图,柱状图,折线图实战

1.地图 <template><div style"height: 100%;" class"cantainerBox"><div class"top"><div class"leftTop"><span class"firstSpan">推广进度</span><div>省份选择&#xff1a;&l…...

客服宝快捷回复软件:客服工作的得力助手

在从事客服工作的这段漫长时间里&#xff0c;响应率和满意度一直是我最为头疼的绩效指标。这两个指标就如同两座大山&#xff0c;压得我时常喘不过气来。 然而&#xff0c;幸运的是&#xff0c;最近我安装了客服宝这个快捷回复软件&#xff0c;这一举措如同为我打开了一扇新的…...

laravel: Breeze 和 Blade, 登录 注册等

composer require laravel/breeze --dev php artisan breeze:install php artisan migrate npm install npm run build php artisan route:clear http://laravel-dev.cn/ http://laravel-dev.cn/register http://laravel-dev.cn/login...

RocketMQ 消息消费失败的处理机制

在分布式消息系统中&#xff0c;处理消费失败的消息是非常关键的一环。 RocketMQ 提供了一套完整的消息消费失败处理机制&#xff0c;下面我将简要介绍一下其处理逻辑。 截图代码版本&#xff1a;4.9.8 步骤1 当消息消费失败时&#xff0c;RocketMQ会发送一个code为36的请求到…...

三、Java并发 Java 线程池 ( Thread Pool )

一、前言 本文我们将讲解 Java 中的线程池 ( Thread Pool )&#xff0c;从 Java 标准库中的线程池的不同实现开始&#xff0c;到 Google 开发的 Guava 库的前世今生 注&#xff1a;本章节涉及到很多前几个章节中阐述的知识点。我们希望你是按照顺序阅读下来的&#xff0c;不然…...

zabbix安装配置与使用

zabbix Zabbix的工作原理如下: 监控部分: Zabbix Agent安装在各个需要监控的主机上,它以主配置的时间间隔(默认60s)收集主机各项指标数据,如CPU占用率、内存使用情况等。 通讯部分: Agent会把收集的数据通过安全通道(默认10051端口)发送到Zabbix Server。Server会存储这些数…...

第3关:命题逻辑推理

任务描述 相关知识 实验用例 实验原理和方法 编程要求 测试说明 任务描述 本关任务&#xff1a;用命题逻辑推理的方法解决逻辑推理问题。加深对命题逻辑推理方法的理解。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.命题符号化&#xff0c;2.命题推理。 …...

第三份代码:VoxelNet的pytorch实现

VoxelNet是点云体素化处理的最开始的网络结构设计&#xff0c;通过完全弄明白整个VoxelNet的pytorch实现是非常有必要的。 参考的代码是这一份&#xff1a;GitHub - RPFey/voxelnet_pytorch: modification of voxelnet 参考文章&#xff1a;VoxelNet论文解读和代码解析_voxel…...

Backtrader-Broker05

本系列是使用Backtrader在量化领域的学习与实践&#xff0c;着重介绍Backtrader的使用。Backtrader 中几个核心组件&#xff1a; Cerebro&#xff1a;BackTrader的基石&#xff0c;所有的操作都是基于Cerebro的。Feed&#xff1a;将运行策略所需的基础数据加载到Cerebro中&…...

分布式和微服务系统区别

一、分布式是更广泛的概念&#xff0c;指将计算分布在多个物理节点上的系统。 适用于需要高可用性、高性能、可扩展性的系统。 应用场景&#xff1a;分布式数据库—数据高可用存储、分布式缓存—提升数据访问速度 分布式计算框架—大规模数据计算、分布式文件系统—海量数据的…...

ElementUI el-table 多选以及点击某一行的任意位置就勾选上

1. 需求 在el-table中&#xff0c;需要实现多选功能&#xff0c;并且点击某一行的任意位置就勾选上&#xff0c;而不是点击复选框才勾选上。 2. 实现思路 在el-table中添加ref属性&#xff0c;用于获取表格实例。在el-table-column中添加type"selection"属性&…...

博物馆3D数字化的优势有哪些?

博物馆的3D数字化进程正不断向前推进&#xff0c;这一创新技术在提升观展体验、促进文化传播以及加强文物保护方面&#xff0c;均展现出了显著的优势。 一、观展体验的革命性提升 1、动态与多角度展示&#xff1a; 3D云展览利用先进的数字化技术&#xff0c;使文物能够以动态…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

PLC入门【4】基本指令2(SET RST)

04 基本指令2 PLC编程第四课基本指令(2) 1、运用上接课所学的基本指令完成个简单的实例编程。 2、学习SET--置位指令 3、RST--复位指令 打开软件(FX-TRN-BEG-C)&#xff0c;从 文件 - 主画面&#xff0c;“B: 让我们学习基本的”- “B-3.控制优先程序”。 点击“梯形图编辑”…...

Electron简介(附电子书学习资料)

一、什么是Electron&#xff1f; Electron 是一个由 GitHub 开发的 开源框架&#xff0c;允许开发者使用 Web技术&#xff08;HTML、CSS、JavaScript&#xff09; 构建跨平台的桌面应用程序&#xff08;Windows、macOS、Linux&#xff09;。它将 Chromium浏览器内核 和 Node.j…...