关于Eureka注册中心启动报错的原因

启动项目最后一句直接爆错 DiscoveryClient_EUREKA-SERVER/localhost:eureka-server:7600 - registration status: 404 启动类上看是不是@EnableDiscoveryClient这个注解,如果是就换成@EnableEurekaClient,两个服务都要换成这个,再试一下就好了。@EnableDiscoveryClient可以发现任何一种注册中心,而@EnableEurekaClient只能发现eureka的注册中心。还有一个是204的错误,这个我刚刚也试出来了,server1和server2的注解不一样导致的。恳请各位大佬指点。

kindeditor 文章编辑 文章发布都是html代码,KindEditor 3.5 发布,开源的HTML在线编辑器...

2)右键菜单(contextmenu):支持左侧小图标、分割线,外观更美观。 3)菜单(menu):标题、字体、文字大小、颜色可以反映当前状态。 4)表情:增加分页和预览,通过allowPreviewEmoticons属性可关闭预览表情功能。 5)弹出框(dialog):弹出框支持阴影效果,通过shadowMode可关闭阴影效果。 6)国际化:3.5版本开始所有中文都提取到一个js里,制作其它语言版本只需要翻译src/lang/zh_CN.js即可。 7)新接口:引入KE.html, KE.text, KE.selectedHtml, KE.insertHtml, KE.appendHtml, KE.isEmpty等函数。 其它改善和bugfix: -------- * 改善: 编辑器底部显示向下拖动指示图标。 * 改善: 点击编辑器外的页面其它部位时关闭菜单。 * 改善: 移除编辑器时将编辑器内容设置到原来的textarea。 * 改善: 从外部粘贴内容时自动将font转换成span标签。 * 改善: ASP.NET程序改成ashx,使用时不需要编译。 * BUG: 改善了文章内容比较多时速度比较慢的问题。 * BUG: 修改了在IE上选中图片或表格后无法用backspace键删除的问题。 * BUG: 修改了在Firefox上全屏后浏览器一直处于加载状态的问题。 * BUG: 修改了在非IE上DOMContentLoaded事件不起作用的问题。 * BUG: 修改了删除编辑器时没有销毁事件的问题。 * BUG: 修改了设置成无颜色时其它样式也被删除的问题。 * BUG: 修改了拖动时拖到浏览器外面放开鼠标后会粘住的问题。 * BUG: 修改了在Firefox上pre标签自动生成br标签的问题。 * BUG: 修改了在IE6上用KE.cmd.wrap方法设置class属性后没有效果的问题。 * BUG: 修改了在P标签内没选中内容时无法插入超级链接的问题。 * BUG: 修改了使用快捷键加粗体、斜体、下划线时没有同步的问题。 演示: -------- 下载: --------

vue-cli 卸载不掉

1.用了npm uni vue-cli -g和cnpm uni vue-cli -g两种办法都卸载不掉 2.输入npm config ls -l,在信息里面找到userconfig,把该文件删掉 3.输入where vue,把这两个文件删掉 4.输入vue -V,会显示 ‘vue’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 已经删掉了

python的Q&A(3):实现斐波那契数列

实现斐波那契数列 思路: 首先要知道,斐波那契数列的意思。 在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*) #!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author:九九的金金子 """ 实现斐波那契数列 递推法 递推法就是从0和1开始,前两项相加逐个求出第3、第4个数,直到求出第n个数的值。 """ def fib(n): if n == 0: # F(0)=0 return 0 if n == 1: # F(1)=1 return 1 if n >= 2: return fib(n - 1) + fib(n - 2) # F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*) else: print("n必须为自然数") for i in range(11): # i作为n值 print(fib(i), end="

计算机考试用到的英语词汇,计算机专业英语 考试词汇

计算机专业英语考试复习词汇 第1章Introduction to the Digital Computer 数字计算机:digital computer 数据处理系统:data processing system 程序设计:programming 程序语句:statement 真空管:vacuum-tube 晶体管:transistor 电子线路:electronic circuitry 集成电路:IC integrated circuit 大规模集成电路:LSI large scale integration 或者large scale integrated circuit 开关:switch 计算:computation 变量:variable 算法:algorithm 信息技术:information technology 程序设计语言:programming language 数据库:database 操作系统:operating system 软件工程:software engineering 编译程序:compiler 编辑程序:editor 加法器:adder 计数器:counter 计算机网络:computer network 人机接口:human-computer interface 增加:insert 删除:delete 更新:update 检索:retrieval 软件:software 硬件:hardware 外部设备:peripheral 输入设备:input unit 输出设备:output unit 存储器:memory unit 中央处理器:CPU central processing unit 键盘:keyboard 视频显示终端:video display terminal 主存储器:main memory 辅助存储器:auxiliary memory 内部存储器:internal memory 外部存储器:external memory

《嵌入式C语言》-第二章 C语言数据的操作

目录 5 C语言字符集 5.1 C语言字符集是ASCII字符集的子集 5.2 C语言的字符集构成C语言的基本元素:标识符、运算符 5.3 数据类型的分类 6常量与变量 6.1 常量 6.2 变量 7 C语言运算符 7.1算术运算符 7.2赋值运算符 8表达式和语句 8.1 C表达式 8.2 C语句 C语言的代码是由英文字符构成的,所有的字符皆来自键盘的输入,所以我们需要了解C语言的字符集的特点和使用规则。 5 C语言字符集 字符是可以区分的最小符号,是构成程序的基础。包括: 英文字母:a~z , A~Z;0~9;特殊字符:_ 空格 ! # % 等 由字符可构成进一步的语法成分,如标识符、关键字和特殊运算符等。 5.1 C语言字符集是ASCII字符集的子集 ASCII (美国信息交换标准代码) 表 5.2 C语言的字符集构成C语言的基本元素:标识符、运算符 标识符在程序中用来标识各种程序成分,命名程序中的一些实体:关键字、变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。 标识符的表现形式是字母,数字,下划线,开头必须是英文字母或下划线 示例: #include <stdio.h> unsigned char _uc; int i; void main(void) { _uc = 1; i = 100; } 5.3 数据类型的分类 嵌入式C语言编程的目的:操作单片机芯片的内部资源,以满足由这个单片机构成的产品的使用需求。这就要求我们编程的代码里的各种变量、运算、组织逻辑与单片机内部的资源建立起对应的关系,所以程序运行的内存空间应尽可能的节省,运算的步骤尽可能的少等等。 数据类型分类就是为了更好的利用内存,标准化操作和编码方式,表明占据存储空间的多少及构造特点,就是杀鸡就不需要用牛刀。 通过基本数据类型我们就已经可以编程去完成一定的项目任务。 示例://通过单片机点亮一个灯

python的Q&A(2):字符串反转输出

字符串反转输出。 思路: 1.将字符串转成列表:list(str) 2.将列表进行反转:list.reverse() 3.将列表转成字符串:“”.join(list) #!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author:九九的金金子 """字符串反转输出""" str = input("请输入字符串:") # 字符串编程列表 arr_str = list(str) # 列表反转 arr_str.reverse() # 列表变成字符串 new_str = "".join(arr_str) print(new_str) 运行结果:请输入字符串:qwertyu uytrewq

计算机一级考试选择题知识点,计算机一级选择题必背知识点有哪些?快来了解一下...

计算机一级选择题必背知识点有哪些?快来了解一下 2019-11-0516:26:20 来源: 作者:songzini 计算机一级考试中选择题一共有20道,所占分值比例为20%,比重比较大,同时也是得分的关键点,因此备考时要好好复习选择题的相关知识考点,争取拿到更多的分数。 计算机一级选择题必背知识点如下所示: 1. 计算机的发展史:1946年在美国宾夕法尼亚大学制造了第一台计算机ENIAC。计算机至今为止已发展了四代,采用的元器件分别为:电子管、晶体管、小规模集成电路、大规模及超大规模集成电路。 2. 计算机的特点:速度快、精度高、容量大、有逻辑判断能力。 3. 计算机的应用:计算机辅助设计CAD,计算机辅助制造CAM、计算机辅助教学CAI,计算机集成制造系统CIMS。 4. 计算机的语言发展:机器语言、汇编语言、高级语言。由高级语言到机器能够识别的语言有两种方法:编译(形成目标程序)及解释(不形成目标程序)。 5. 病毒:是一种具有破坏性的程序,特点是:潜伏性、隐藏性、传染性及破坏性。 6. 病毒的主要传播途径:软盘、U盘及网络等,为计算机一级选择题。 7. 病毒往往先于杀毒软件的出现,即先有病毒,后有杀毒软件。 8. 微型计算机的组成:硬件系统及软件系统。硬件设备包括:运算器、控制器、存储器、输入设备及输出设备。运算器与控制器组成了计算机中最核心的部件:CPU(中央处理器)。软件系统包括:系统软件及应用软件。 9. 存储器分为内存储器(内存)及外存储器(硬盘、软盘等)。内存储器存取速度快、容量小、价格高,外存储器速度慢、容量大、价格低。 10. 既可做输入设备又可做输出设备的是:光盘驱动器及软盘驱动器。 11. 内存储器分为只读存储器(ROM)及随机读写存储器(RAM)。 12. ASCII码(占一个字节)的规律:从小到大:0~9,A~Z,a~z。 13. 位:计算机中最小的信息单位。 14. 字节(Byte):计算机中最小的存储单位。 15. 字节换算(B):1B=8bits 1KB=1024B 1MB=1024KB 1GB=1024MB。 16. 进制转换:十进制——二进制:除2逆取余; 二进制——十进制:按权展开法, 二进制——十六进制:以四换一或以一换四。 17. 二进制的逻辑运算:逻辑与,逻辑或,逻辑非运算。 18. 国标码(GB2312):汉字共6763个,其中一级汉字3755个,按拼音字母排列;二级汉字3008个,按部首排列。 19. 区位码(94*94)最重要的特征是:无重码。 20. 机内码:汉字在计算机内部的存储,每个汉字占用两个字节,每个字节的最高位为1。 熟记知识点的同时,也不要忘记多去上学吧计算机一级考试题库上,多做做题目,熟悉各知识点的出题方式,了解考试题型,这样才能更有效掌握知识点,帮助考试得分。 免下载,即可体验强大搜题神器 温馨提示:因考试政策、内容不断变化与调整,上学吧提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准。

计算机一级考试选择题知识点,计算机一级选择题必背知识点 考试题型有哪些...

计算机一级考试有三个科目,分别是一级MS Office、一级WPS Office、一级Photoshop。因此考试题型也分为三个科目。那么计算机一级选择题必背的知识点有哪些呢。 计算机一级选择题必背知识点有哪些 1. 计算机的发展史:1946年在美国宾夕法尼亚大学制造了第一台计算机ENIAC。计算机至今为止已发展了四代,采用的元器件分别为:电子管、晶体管、小规模集成电路、大规模及超大规模集成电路。 2. 计算机的特点:速度快、精度高、容量大、有逻辑判断能力。 3. 计算机的应用:计算机辅助设计CAD,计算机辅助制造CAM、计算机辅助教学CAI,计算机集成制造系统CIMS。 4. 计算机的语言发展:机器语言、汇编语言、高级语言。由高级语言到机器能够识别的语言有两种方法:编译(形成目标程序)及解释(不形成目标程序)。 5. 病毒:是一种具有破坏性的程序,特点是:潜伏性、隐藏性、传染性及破坏性。 6. 病毒的主要传播途径:软盘、U盘及网络等,为计算机一级选择题。 7. 病毒往往先于杀毒软件的出现,即先有病毒,后有杀毒软件。 8. 微型计算机的组成:硬件系统及软件系统。硬件设备包括:运算器、控制器、存储器、输入设备及输出设备。运算器与控制器组成了计算机中最核心的部件:CPU(中央处理器)。软件系统包括:系统软件及应用软件。 9. 存储器分为内存储器(内存)及外存储器(硬盘、软盘等)。内存储器存取速度快、容量小、价格高,外存储器速度慢、容量大、价格低。 10. 既可做输入设备又可做输出设备的是:光盘驱动器及软盘驱动器。 11. 内存储器分为只读存储器(ROM)及随机读写存储器(RAM)。 12. ASCII码(占一个字节)的规律:从小到大:0~9,A~Z,a~z。 13. 位:计算机中最小的信息单位。 14. 字节(Byte):计算机中最小的存储单位。 15. 字节换算(B):1B=8bits 1KB=1024B 1MB=1024KB 1GB=1024MB。 16. 进制转换:十进制——二进制:除2逆取余; 二进制——十进制:按权展开法, 二进制——十六进制:以四换一或以一换四。 17. 二进制的逻辑运算:逻辑与,逻辑或,逻辑非运算。 18. 国标码(GB2312):汉字共6763个,其中一级汉字3755个,按拼音字母排列;二级汉字3008个,按部首排列。 19. 区位码(94*94)最重要的特征是:无重码。 20. 机内码:汉字在计算机内部的存储,每个汉字占用两个字节,每个字节的最高位为1。 计算机一级考试题型有哪些 首先是计算机一级 MS Office的题型,主要分为选择题与操作题: 一、计算机考试一级选择题,分20道小题(20分) 二、Windows操作(10分) 三、Word操作(25分) 四、Excel操作(20分) 五、PPT演示文稿操作(15分) 六、IE浏览器的简单使用/收发电子邮件(10分) 然后是计算机考试一级WPS office的题型: 一、选择题(计算机基础知识和网络的基本知识)。(20 分) 二、Windows 操作系统的使用。(10 分) 三、WPS 文字的操作。(25 分)

creo2分割体积块

单击 “模具体积块” > “体积块分割”。 选择“参考零件切除”体积块 *分割参考零件之前,必须将其从工件中切除。在“体积块分割”选项卡上,单击参考零件切除,然后从工件或夹模器中切除参考零件。 选择体积块和分型面。可以选择一个或多个分型面、面组或体积块。 • 确保分型面与工件或夹模器相交,并且不会自身相交。 • 可以重命名分割后所创建的体积块。 单击 “确定”(OK)。

使用TensorFlow 构建更深层次的神经网络

1使用TensorFlow 构建更深层次的神经网络 from IPython.display import Image %matplotlib inline 1.1Tensorflow的核心特征 Tensorflow的核心为计算图。版本1中的静态计算图具有一些优点,如后台图形优化和支持更加广泛的硬件设备。然而,静态计算图需要单独的 图形声明和图形计算步骤,这使得用户在交互式开发和使用NN的时候比较麻烦。 Tensorflow2支持了动态计算图。动态计算图允许图形声明和图形计算步骤的交叉。如此对于Python和Numpy用户,这显得更加自然。 但是,在Tensorflow2中依然支持版本1,不过需要通过tf.compat子模块实现调用。 1.1.1TensorFlow2中的计算图 Tensorflow的计算操作基于有向无环图DAG(directed acyclic graph)。 1.1.2通过实例了解计算图 Tensorflow利用计算图来推导从输入到输出的张量之间的关系。 对于标量(scalar) a , b , c a,b,c a,b,c,理解为是秩为0的张量。需要计算如下表达式: z = 2 × ( a − b ) + c z=2\times(a-b)+c z=2×(a−b)+c 上述计算过程的几何表示如下: # 上述计算的几何表示 Image(filename='images/01.png', width=500) 如上所示,计算图就是一个简单的节点网络。每个节点类似于一个操作,该操作将一个函数应用于其输入张量或当前张量,并返回0个或者多个张量 作为输出。Tensorflow构建这个计算图,并使用其计算相应的梯度。 1.1.3使用TensorFlow v1.x 创建计算图 在早期的Tensorflow版本中,计算图需要显式地声明。版本1中主要步骤包括: 1.实例化一个新的、空计算图; 2.向计算图中添加节点(即张量和操作); 3.执行计算图: - 开始一个新的session会话; - 初始化计算图中的变量值; - 在当前会话中执行计算图; 下面为使用Tensorflow1实现的计算图,其中 a , b , c a,b,c a,b,c都为标量,即单个的数值。Tensorflow1中通过调用*tf.Graph()*进行计算图的显式声明。 import tensorflow as tf import numpy as np import pandas as pd import matplotlib.

西门子博图指令(定时器操作四)

定时器功能指令介绍四 综述加载脉冲定时器持续时间介绍程序程序演示 加载接通延时定时器持续时间介绍程序程序演示 加载关断延时定时器持续时间介绍程序程序演示 加载时间累加器持续时间介绍程序程序演示 源程序 综述 主要介绍加载定时器持续时间功能块,仿真模拟的PLC为1200系列。1 通过修改加载定时器参数,可以加载脉冲定时器、接通延时定时器、关断延时定时器、时间累加器。 接口参数声明数据类型说明持续时间InputS1200 TIME S1500 TIME、LTIMEIEC 定时器运行的持续时间IEC定时器InOutS1200 IEC_TIMER、TP_TIME, TON_TIME、TOF_TIME, TONR_TIME S1500 IEC_TIMER、IEC_LTIMER、TP_TIME, TP_LTIME, TON_TIME, TON_LTIME、TOF_TIME、TOF_LTIME, TONR_TIME, TONR_LTIME设置了持续时间的 IEC 定时器。 加载脉冲定时器持续时间 修改脉冲定时器的预设值。 介绍 当PT功能块接通后,TP功能块的时间预设值以PT功能块设定值为准。如果PT功能块断开,TP功能块的时间预设值以自身PT接口存储的时间为准。 以上述图片为例,当PT功能块接通后,脉冲定时器PT的时间预设值为5s,当PT功能块断开后,脉冲定时器TP的时间预设值为10S。 程序 程序演示 加载接通延时定时器持续时间 介绍 当PT功能块接通后,TON功能块的时间预设值以PT功能块设定值为准。如果PT功能块断开,TON功能块的时间预设值以自身PT接口存储的时间为准。 以上述图片为例,当PT功能块接通后,关断延时定时器PT的时间预设值为5s,当PT功能块断开后,关断延时定时器TP的时间预设值为10S。 程序 程序演示 加载关断延时定时器持续时间 介绍 当PT功能块接通后,TOF功能块的时间预设值以PT功能块设定值为准。如果PT功能块断开,TOF功能块的时间预设值以自身PT接口存储的时间为准。 以上述图片为例,当PT功能块接通后,接通延时定时器PT的时间预设值为5s,当PT功能块断开后,接通延时定时器TP的时间预设值为10S。 程序 程序演示 加载时间累加器持续时间 介绍 当PT功能块接通后,TONR功能块的时间预设值以PT功能块设定值为准。如果PT功能块断开,TONR功能块的时间预设值以自身PT接口存储的时间为准。 以上述图片为例,当PT功能块接通后,时间累加器PT的时间预设值为5s,当PT功能块断开后,接通延时定时器TP的时间预设值为10S。 程序 程序演示 源程序 订货号:6ES7 214-1AG40-0XB0 ↩︎

dubbo-admin可视化界面详细步骤安装

dubbo-admin 是dubbo的管理界面平台,且是一个前后端分离的项目,前端使用vue,后端使用springboot。 进入GitHub中下载zip包:https://github.com/apache/dubbo-admin 将dubbo-admin-develop.zip压缩包解压,并进入该目录。 修改zk的ip跟端口,修改位置为:G:\dubbo-admin-develop\dubbo-admin-server\src\main\resources\application.properties 由于dubbo需要使用注册中心,dubbo-admin里面使用的是zookeeper,因此需要先安装zk,并启动服务器。 具体安装请看:https://blog.csdn.net/xueyijin/article/details/117710340 安装好zookeeper的时候,又因为zk在使用3.6版本之后,会默认占用8080端口,而我们知道后端服务器大部分都是使用8080端口,因此我们需要修改zk配置,放过8080端口。 具体请看:https://blog.csdn.net/xueyijin/article/details/117876822 在dubbo-admin-develop目录打开cmd,并输入 mvn clean package,重新打包一下,会下载很多jar包,需要慢慢等待。 成功之后进入:G:\dubbo-admin-develop\dubbo-admin-distribution\target目录下,里面会有的dubbo-admin-0.3.0-SNAPSHOT.jar包,这个jar包是springboot工程,直接使用命令行,java -jar dubbo-admin-0.3.0-SNAPSHOT.jar ,启动了后端。 然后进入到dubbo-admin-ui 即前端目录下,在该目录下启动cmd,执行 npm run dev 启动vue。 有些error不用理,直接输入下面http://localhost:8082 网站运行结果如下(账号密码默认都是root):

【Web】Windows下的Web服务器

说明 默认Windows下的Web服务器是关闭的,可以通过控制面板打开: 开启之后localhost进入页面: 对应的Web源代码路径是C:\inetpub\wwwroot。 默认开启的网页是iisstart.htm。 也可以替换成lighttpd和AngularJS-PhoneCat中介绍的PhoneCat。 只是需要把index.html改名成iisstart.htm,之后打开localhost就是如下的界面: 这样就可以直接在Windows下调试PhoneCat代码了。

windows下使用Git命令行clone一个项目

1.复制clone下来的HTTPS 2.在本地希望保留该项目的路径下使用git clone命令 git clone HTTPS 3.进入项目使用git remote -v 查看clone下来的是哪个仓库的项目 git remote -v,用于查看是自己的还是别人的项目,以免当有权限的时候合并出问题 4.本地对代码进行改进之后,使用git add * 修改代码之后可以使用git add * 添加上修改的文件(可以上传到github) 然后使用git commit -m "本次修改的注解" 5.提交先pull下来最新的代码 git pull origin 分支(一般是master) 一般一个项目是多人协作开发,每次提交自己的代码之前先进行pull操作是一个好习惯,因为有可能自己修改的文件和别人修改的文件重叠在一起,那么如果直接push上去的话,就会出现冲突,git那边不知道使用谁的代码,因而自己手动的pull下来检查代码是否有冲突,再push上去是一个不错的选择 6.push代码 git push origin 分支(一般是master) 注意:当pull代码的时候发现错误:Your local changes to the following files would be overwritten by merge,说的是pull的文件和本地的文件冲突了,解决方法是:本地进行git stash 进行修改暂存,然后再pull下来即可。

SpringBoot中使用常量类来判断对象某属性的值是否包含在指定集合中

场景 在业务场景中需要判断某对象类的属性值是否是指定的集中。 为了使用方便,可以指定的几种放在一个公共模块下的常量类。 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 首先在common路径下constant下新建Constants常量类 /** * 通用常量信息 * */ public class Constants { /** * 通用成功标识 */ public static final String SUCCESS = "0"; /** * 通用失败标识 */ public static final String FAIL = "1"; /** * 正常的考勤状态 */ public static final List<String> KQZT_ZC = new ArrayList<String>() { { this.add("正常上班"); this.add("加班"); this.add("补班"); } }; } 然后在需要用到的地方 if(kqsjTian.getKqzt()!=null && Constants.KQZT_ZC.contains(kqsjTian.getKqzt())) { kqrs++; } 调用Constans的实体判断是否包含着对象的属性值。

数据仓库分层 (ODS、DWD、DWS)

数据仓库分层 1.数据仓库DW1.1简介1.2主要特点1.3与数据库的对比 2.数据分层2.1数据运营层(ODS)2.2数据仓库层(DW)2.3数据服务层/应用层(ADS) 3.附录数据库设计三范式 作者:AmyZYX 出处:http://www.cnblogs.com/amyzhu/ 1.数据仓库DW 1.1简介 Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它是一整套包括了etl、调度、建模在内的完整的理论体系。数据仓库的方案建设的目的,是为前端查询和分析作为基础,主要应用于OLAP(on-line Analytical Processing),支持复杂的分析操作,侧重决策支持,听且提供直观易懂的查询结果。比较流行的有:AWS Redshift,Greenplum,Hive等。 1.2主要特点 面向主题: 操作型数据库组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。 主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通过与多个操作型信息系统相关。 集成 需要对源数据进行加工与融合,统一与综合 在加工的过程中必须消除源数据的不一致性,以保证数据仓库内的信息时关于整个企业的一致的全局信息。(关联关系) 不可修改 DW中的数据并不是最新的,而是来源于其他数据源 数据仓库主要是为决策分析提供数据,涉及的操作主要是数据的查询 与时间相关 处于决策的需要数据仓库中的数据都需要标明时间属性 1.3与数据库的对比 DW: 专门为数据分析设计的,涉及读取大量数据以了解数据之间的关系和趋势 数据库: 用于捕获和存储数据 特性数据仓库事务数据库适合的工作负载 分析、报告、大数据事务处理数据源从多个来源收集和标准化的数据从单个来源(例如事务系统)捕获的数据数据捕获批量写入操作通过按照预定的批处理计划执行针对连续写入操作进行了优化,因为新数据能够最大程度地提高事务吞吐量数据标准化非标准化schema,例如星型Schema或雪花型schema高度标准化的静态schema数据存储使用列式存储进行了优化,可实现轻松访问和高速查询性能针对在单行型物理块中执行高吞吐量写入操作进行了优化数据访问为最小化I/O并最大化数据吞吐量进行了优化大量小型读取操作 2.数据分层 数据分层,每个企业根据自己的业务需求可以分成不同的层次,但是最基础的分层思想,理论上数据分为三个层:数据运营层、数据仓库层、数据服务层。基于这个基础分层之上,再提交信息的层次,来满足不同的业务需求。 2.1数据运营层(ODS) ODS:Operation Data Store 数据准备区,也称为贴源层。数据仓库源头系统的数据表通常会原封不动的存储一份,这称为ODS层,是后续数据仓库加工数据的来源。 ODS层数据的来源方式: 业务库 经常会使用sqoop来抽取,例如每天定时抽取一次。 实时方面,可以考虑用canal监听mysql的binlog,实时接入即可。 埋点日志 日志一般以文件的形式保存,可以选择用flume定时同步 可以用spark streaming或者Flink来实时接入 kafka也OK 消息队列:即来自ActiveMQ、Kafka的数据等。 2.2数据仓库层(DW) DW数据分层,由下到上为DWD,DWB,DWS。 DWD:data warehouse details 细节数据层,是业务层与数据仓库的隔离层。主要对ODS数据层做一些数据清洗和规范化的操作。 数据清洗:去除空值、脏数据、超过极限范围的 DWB:data warehouse base 数据基础层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。 DWS:data warehouse service 数据服务层,基于DWB上的基础数据,整合汇总成分析某一个主题域的服务数据层,一般是宽表。用于提供后续的业务查询,OLAP分析,数据分发等。 用户行为,轻度聚合 主要对ODS/DWD层数据做一些轻度的汇总。 2.3数据服务层/应用层(ADS) ADS:applicationData Service应用数据服务,该层主要是提供数据产品和数据分析使用的数据,一般会存储在ES、mysql等系统中供线上系统使用。

互联网行业中适合女孩子做的岗位汇总

在互联网高速发展的时代,有哪些岗位是适合女孩子从事的呢?今天,咱们就针对这一问题来进行下分析–从业数、薪资和发展前景,欢迎围观,千万别杠,杠就是你对! 一、UI设计类 首先,先和大家介绍一下,什么是UI设计? UI设计(User Interface Design),即界面设计,是指对软件的人机交互、操作逻辑、界面美观的整体设计。它可以分为实体UI和虚拟UI两类,互联网中所提及的UI设计即是虚拟UI。 好的UI设计不仅可以让软件变得更有个性、有品位,还可以让软件的操作变得更为舒适和简单。 很多女孩子想进入互联网行业,但又不想当码农,敲代码,那么,UI设计就是女孩子们最适合的选择! 二、WEB开发 WEB前端开发是所有互联网企业研发团队中必要环节,而女孩子在审美方面相对来说比男生好很多,页面设计的漂亮,注释也调理清晰。 而且前端开发入门也相对容易一些,逻辑层面也比后端语言略简单一些。在工作中相对出错率也会少一些,没有那么大的压力。 三、软件开发 在软件开发语言中,Java经久不衰,且核心框架都是Java开发的,业务层的开发,Java能占到90%以上。而且现在,互联网越来越发达,人们对各种功能的需求也与日俱增。所以,对软件开发人员的要求也越来越多,正如此,市场潜力巨大,属当下的朝阳行业。 综上,想要从事互联网行业的女孩子们,只要你愿意扎根互联网行业,愿意努力学习,一定是可以的!我们一起,让努力感动生命!

实训最后一天啦,总结(补上细碎的遗漏了的小知识)

今天是实训的最后一天啦,其实没什么好分享的,先分享一下实训期间的感想心得吧。 其实这个实训说长也长,说短也短,10天的时间,让我觉得自己不是在上课,而是在上班。就像普通的上班族一样,每天除了划划水,当一条咸鱼,就是期待着下班时间到(bushi)。 其实这次实训还是让我学到了很多知识的,除了每天有限的时间划个小小的浪花,其他很大很大一部分时间都是很充实的在做项目。这次的课程是专门讲HTML的,从静态网页到CSS再到JavaScript,把我在正式上课时没有听的课全都补了回来。所以这次实训对我来说,收获还是挺大的。 接下来我想分享一下一些细碎的、被我遗漏了的小知识。 CSS中的透明的属性 opacity: 1; 取值范围是0~1,0为全透明,1为不透明。 A align-content规定弹性容器内的行之间的对齐方式,当项目不使用所有可用空间时。align-items规定弹性容器内项目的对齐方式。align-self规定弹性容器内所选项目的对齐方式。all重置所有属性(除了 unicode-bidi 和 direction)。animation所有 animation-* 属性的简写属性。animation-delay规定开始动画的延迟。animation-direction规定动画是向前播放、向后播放还是交替播放。animation-duration规定动画完成一个周期应花费的时间。animation-fill-mode规定元素在不播放动画时(在开始之前、结束之后、或同时)的样式。animation-iteration-count规定动画的播放次数。animation-name规定 @keyframes 动画的名称。animation-play-state规定动画是播放还是暂停。animation-timing-function规定动画的速度曲线。 B backface-visibility定义当面对用户时元素的背面是否应可见。background所有 background-* 属性的简写属性。background-attachment设置背景图像是与页面的其余部分一起滚动还是固定的。background-blend-mode规定每个背景图层(颜色/图像)的混合模式。background-clip定义背景(颜色或图像)应在元素内延伸的距离。background-color规定元素的背景色。background-image规定元素的一幅或多幅背景图像。background-origin规定背景图像的初始位置。background-position规定背景图像的位置。background-repeat设置是否以及如何重复背景图像。background-size规定背景图像的尺寸。borderborder-width、border-style 以及 border-color 的简写属性。border-bottomborder-bottom-width、border-bottom-style 以及 border-bottom-color 的简写属性。border-bottom-color设置下边框的颜色。border-bottom-left-radius定义左下角的边框圆角。border-bottom-right-radius定义右下角的边框圆角。border-bottom-style设置下边框的样式。border-bottom-width设置下边框的宽度。border-collapse设置表格边框是折叠为单一边框还是分开的。border-color设置四条边框的颜色。border-imageborder-image-* 属性的简写属性。border-image-outset规定边框图像区域超出边框的量。border-image-repeat规定边框图像应重复、圆角、还是拉伸。border-image-slice规定如何裁切边框图像。border-image-source规定用作边框的图像的路径。border-image-width规定边框图像的宽度。border-left所有 border-left-* 属性的简写属性。border-left-color设置左边框的颜色。border-left-style设置左边框的样式。border-left-width设置左边框的宽度。border-radius四个 border-*-radius 属性的简写属性。border-right所有 border-right-* 属性的简写属性。border-right-color设置右边框的颜色。border-right-style设置右边框的样式。border-right-width设置右边框的宽度。border-spacing设置相邻单元格边框之间的距离。border-style设置四条边框的样式。border-topborder-top-width、border-top-style 以及 border-top-color 的简写属性。border-top-color设置上边框的颜色。border-top-left-radius定义左上角的边框圆角。border-top-right-radius定义右上角的边框圆角。border-top-style设置上边框的样式。border-top-width设置上边框的宽度。border-width设置四条边框的宽度。bottom设置元素相对于其父元素底部的位置。box-decoration-break设置元素在分页符处的背景和边框的行为,或对于行内元素在换行符处的行为。box-shadow将一个或多个阴影附加到元素。box-sizing定义元素的宽度和高度的计算方式:它们是否应包含内边距和边框。break-after规定指定元素之后是否应出现 page-、column- 或 region-break。break-before规定指定元素之前是否应出现 page-、column- 或 region-break。break-inside规定指定元素内部是否应出现 page-、column- 或 region-break。 C caption-side规定表格标题的放置方式。caret-color规定光标在 input、textarea 或任何可编辑元素中的颜色。@charset规定样式表中使用的字符编码。clear规定不允许在元素的哪一侧浮动元素clip剪裁绝对定位的元素。clip-path将元素裁剪为基本形状或 SVG 源。color设置文本的颜色。column-count规定元素应分为的列数。column-fill指定如何填充列(是否 balanced)。column-gap规定列间隙。column-rule所有 column-rule-* 属性的简写属性。column-rule-color规定列之间规则的颜色。column-rule-style规定列之间的规则样式。column-rule-width规定列之间的规则宽度。column-span规定元素应该跨越多少列。column-width规定列宽度。columnscolumn-width 和 column-count 的简写属性。content与 :before 和 :after 伪元素一起使用,来插入生成的内容。counter-increment增加或减少一个或多个 CSS 计数器的值。counter-reset创建或重置一个或多个 CSS 计数器。cursor规定当指向元素时要显示的鼠标光标。 D direction规定文本方向/书写方向。display规定如何显示某个 HTML 元素。 E empty-cells规定是否在表格中的空白单元格上显示边框和背景。 F filter定义元素显示之前的效果(例如,模糊或颜色偏移)。flexflex-grow、flex-shrink 以及 flex-basis 的简写属性。flex-basis规定弹性项目的初始长度。flex-direction规定弹性项目的方向。flex-flowflex-direction 和 flex-wrap 的简写属性。flex-grow规定项目相对于其余项目的增量。flex-shrink规定项目相对于其余项目的减量。flex-wrap规定弹性项目是否应该换行。float规定是否应该对盒(box)进行浮动。fontfont-style、font-variant、font-weight、font-size/line-height 以及 font-family 的简写属性。@font-face允许网站下载和使用 "

【网络共享解决】Internet连接共享访问被启用时,出现了一个错误 无法启用Internet连接共享。为LAN连接配置的IP地址需要使用自动IP寻址。

【网络共享解决】Internet连接共享访问被启用时,出现了一个错误 无法启用Internet连接共享。为LAN连接配置的IP地址需要使用自动IP寻址。 报错截图 解决办法 原因:共享的网络IP地址192.168.137.1被其他网络连接占用。 解决办法:将其他网络IP地址修改一下IP地址即可。

FPGA时钟设计方案

时钟设计方案 在复杂的FPGA设计中,设计时钟方案是一项具有挑战性的任务。设计者需要很好地掌握目标器件所能提供的时钟资源及它们的限制,需要了解不同设计技术之间的权衡,并且需要很好地掌握一系列设计实践知识。不正确的设计或次优的时钟方案可能会导致在最好情况下较差的设计性能,或者在最坏情况下的随机和难以查找的错误。 FPGA时钟资源指目标FPGA中大量与时钟有关的不同资源,如时钟类型(局部的和全局的)、频率限制和不同时钟管理器的抖动特性,以及能用于单个时钟域的时钟最大数量。 本文介绍了时钟设计方案中的每个部分,并推荐了一些设计方法。 使用专用的时钟资源 内部产生的时钟是组合逻辑或寄存器的输出,如图1所示。 组合逻辑产生的时钟可能有毛刺,会被错误地当成有效时钟边沿,在设计中会导致功能错误。因此,不要使用组合逻辑的输出作为时钟。 内部产生的时钟使用通用布线资源。因此,与专用时钟布线相比延迟较长。其后果是时钟偏移增加,满足时序的过程更加困难。如果大量的逻辑使用了该内部时钟,这个问题尤为突出。公众号:OpenFPGA 作为一般规则,尽量避免使用内部产生的时钟,尽可能使用专用时钟资源。 使用时钟的单边沿 除了一些特殊电路[如双倍数据速率(DDR)的数据捕获]之外,寄存数据通常总是使用时钟的上升沿或下降沿。使用两个边沿带来的问题是由于时钟占空比可能并不总是50%,这会对电路的正常工作产生影响。 使用差分时钟 建议在频率高的情况下使用差分时钟。通常认为频率高于100MHz以上属于高频。差分时钟相比单端时钟的主要优势是共模噪声抑制,因此抗噪声性能更好。具有PECL、LVPECL和LVDS信号电平的差分时钟是高速逻辑下时钟的首选。 Xilinx FPGA提供了一些用于差分时钟的专用原语:IBUFDS、IBUFGDS、IBUFGDS_DIFF、OBUFDS、0BUFTDS等(见图2)。 使用门控时钟 时钟门控是设计中通过使用控制信号,禁止或允许时钟输入到寄存器和其他同步元件上的一种方法。它能有效降低功耗,因此被广泛应用于ASIC设计中。然而,在FPGA设计中应尽量避免使用门控时钟。 使用时钟信号作为控制、复位或数据输入 不建议将时钟信号作为通用逻辑的控制、复位或数据输入。下面是这类电路的例子。 module clock_schemes(input clk1,clk2,clk3,clk4,clk5,input data_in, output reg data_out1,data_out2,data_out3,data_out4,data_out5,data_out6); wire data_from_clock, reset_from_clock, control_from_clock; / / 时钟被用做数据输入 assign data_from_clock = clk1; always @(posedge clkl) data out1 <= ~data out1; always @(posedge clk2) data out2 <= ~data out2 & data_from_clock; / / 时钟被用做复位输入 assign reset_from_clock = clk3; always @(posedge clk3) data out3 <= ~data out2; always @(posedge clk4, posedge reset_from_clock) if (reset_from_clock) data_out4 <= 0; else data out4 <= data in; / / 时钟被用做控制 assign control_from_clock = clk5; always @(posedge clk5) data out5 <= ~data out5; always @(*) data_out6 = control_from_clock ?

作为计算机专业学生,最应该学习的课程前五位是什么?

不知不觉自己的程序员生涯已经有 6 年。 变秃了,也变强了。 如果让我回到大学生涯,我一定会认认真真的学习下面的课程,起码我的头发可以少掉一半! 1、计算机组成原理 2、计算机操作系统 3、计算机编译原理 4、数据结构与算法 5、计算机网络 一、计算机组成原理 计算机组成原理这门课很好地向我们阐述了计算机是如何工作的,妹子咨询你电脑问题的时候,答案就藏在这门课程里面(大雾)。 推荐书籍:《深入理解计算机系统》 这本书是从程序员的角度来看待整个计算机系统的,所以是非常适合程序员的。但是这本书不仅仅包含了计算机硬件的相关知识,同时还包含了包括操作系统、计算机网络等相关知识。 二、计算机操作系统 无论你学习什么编程语言,和都避免不了和操作系统打交道,比如你学习 Java,用到多线程技术,实际上操作系统才是负责管理进程和线程的;比如你学习到内存分配的知识,c++里可以直接分配一段内存,此时实际上是调用操作系统提供的API进行内存分配。 如果不懂操作系统,你在未来学习编程语言的高级特效,涉及到线程进程调度,内存分配,或者是学习Linux相关的知识时,都会一头雾水,所以,只有学会了操作系统,我么才能够更好地学习其他语言和技术。 基于此,计算机操作系统的知识点频繁出现在笔试环节。 毕业的程序员或者非科班的程序员可以看看下面的两篇文章,就当再复习学习一遍。 三、计算机编译原理 首先正式一个问题:编译原理并非随随便便就能入门的! 换言之,需要准备一些基础知识在学习。 编译原理的学习和实践通常基于对计算机编译过程、计算机基本工作原理、甚至一定的数学知识有一定积累,这些知识分别分布并应用在了编译原理的不同阶段。没有这些基本知识的积累,很快就会在某个阶段由于功底不够而无法再继续后面的学习。 所以,先认认真真的积累上述的一和二在入门学习吧。 四、数据结构与算法 相信无论是已经毕业的同学还是正在学校学习的同学,都或多或少地被数据结构与算法这门课给折磨过。数据结构与算法这门课开篇就讲了一个非常重要的概念:程序 = 数据结构 + 算法,对于初学者可能还不能完全地理解这句话,不过对于已经工作两三年的同学相信对这句话是深信不疑的。 对于数据结构与算法的学习,我个人认为应该分层三个步骤:首先先大致了解什么是算法,可以通过一些科普读物来入门,这个过程我称之为入门阶段;接着可以尝试实现一些比较容易的数据结构和算法,这样可以更加深对数据结构和算法的了解,这个过程我称之为实践阶段;最后去了解数据结构与算法背后的相关数学原理等,这个过程我称之为原理阶段。 五、计算机网络 计算机网络的相关知识在工作时使用的频率还是挺多的,毕竟,所谓的CURD工程师总是在处理 API 相关的业务。 关于计算机基础的内容,我整理了 4 本手册,全网累积下载100w次,几乎程序员人手一套,包含数据结构与算法、操作系统、计算机组成原理、计算机网络等硬核基础知识,图文+实战案例,平时开发+搞定面试,帮你快速建立对计算机科学的大局观,夯实计算机基本功,瞬间起飞~ 下载地址:图解操作系统、网络、计算机组成 PDF 下载! 作者简介 作者:大家好,我是程序员吴师兄,在 GitHub 上开源了一个项目 LeetCodeAnimation,目前有 60k star,通过动画的形式讲解算法,已经帮助成千上万的程序员入门算法了,欢迎关注公众号「五分钟学算法」,和我们一起学习算法。 转载说明:未获得授权,禁止转载

管理员界面html,12套超酷的后台管理员界面网站模板

这些超棒的网站模板可以直接应用到其它开源CMS (例如,wordpress,magento等等),同时您可以很方便的自定义。 虽然管理员界面使用的数量相对用户界面并不多,但是专业的管理员界面网站模板要求更好的使用性和用户体验,并不是简单的设计。今天这套分享的模板相信能够带给大家超棒的体验! 这套网站模板使用Twitter Bootstrap开发。拥有9个不同的皮肤主题并且包含了常用的输入组件,例如,表单,图表,按钮,表格,文件管理,图片画廊等等。 如果你希望fork,那么这有一个GitHub链接供你使用。 一个基于jQuery的管理界面网站模板,使用header的顶端导航,拥有表格,表单,消息等等组件,并且拥有一个超棒的登录页面 一个基于TwitterBootstrap的响应式管理员界面网站模板,拥有导航,表格,表单,注册/登录,错误页面等等 一个单页面的管理员网站模板,使用头部和边栏方式导航,拥有错误/信息/警告提示。可以作为开发新模板的基础。 一个非常漂亮的管理员界面网站模板,包含了基本的表格,表单,导航,列表,消息,注册页面等 一个单页面的管理员网站模板,拥有图表,表格,信息,表单和字体排版设计 一个非常简单简洁的网站模板,拥有非常漂亮的导航和边栏 ,特色是datagrid和表单实例 基于960 grid 框架,使用jQuery和jQuery UI开发。拥有dashboard,表格,表单,字体排版,图表,图片画廊和提示的演示页面 为一个项目设计的一个免费的管理员网站模板。简单,单页面导航,使用表格展示数据。同时,拥有一个HTML5/CSS3的版本。 使用HTML5标签,包含了各种元素。 简单的管理员网站模板,拥有导航,网格,表格,按钮,弹出提示层和表单 提供了多列的dashboard。拥有一个数据grid和一个范例表单

html标签怎么制作足迹地图,用百度地图API做个人足迹地图教程

上次折腾了个人百度足迹地图,积累了点经验,现分享给大家,如有兴趣都可以学着做一个。二话不说,先放出代码,点击下载。 压缩包含三个文件以及一个文件夹,其中“x1.php”是主题模板,模板是放在主题文件夹下供新建页面选用,里边对应地址路径请自行修改,后面我会解释。另外两个是html页面文件,其中“x3.html”这个是地图核心页面,附带大量的JavaScript,凭借这些实现功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。而“x2.html”是作为强制刷新跳转页面,用途后面会讲到。 “x3.html”页面可以直接本地打开进行调试,首先您需先申请密钥(ak),然后将这串密码放在第6行代码对应位置方可使用。其他需要修改的地方旁边的注释都有说明。最核心的区域就是添加数组,“var infos =”这行后边的内容,每一项用英文逗号“,”隔开了,依次顺序是:文章标题、坐标、地址、文章链接、图片链接。 模板只会在地图上生成两个标点,照着复制粘贴可以得出N多个标点。每个数组区域的格式是严格规定好的,其中坐标是必填项(没有坐标则无法生成标点),其他如果嫌麻烦的话,可以留空。留空就是不写,但不能删除,否则数组顺序会错乱,导致地图标点无法生成。 关于坐标,由于我们使用的是百度地图API,因此可以使用百度地图的坐标拾取服务,在对应地图上拾取坐标,点击这里直达百度地图坐标拾取系统。 对于有GPS信息的照片(很多手机拍出的照片都会带有位置信息)可以通过附带的“照片GPS信息导出”批量将对应照片的GPS信息导入表格,然后通过“GPS度分秒转换.xlsx”这个表格,批量转换成百度地图坐标格式。在这我要提醒一点,导出来出来的设备硬件GPS坐标信息直接放在百度地图上使用的话会有几百米至一公里不等的偏移,这种偏移的原因不明(你懂的),因此这些原始坐标,需要通过百度地图的坐标转换服务,进行转换,转换之后的坐标才可以用在百度地图上。 至此,有了主题模板,也有了地图核心页面,再加上坐标获取的方式,基本就差不多了。如果不用“x2.html”这个文件,咱也能做出个人足迹地图,可是有缓存的情况下,修改编辑“x3.html”这个页面后,客户端可能无法刷出最新结果。我的解决办法是通过“x2.html”这个辅助在地址栏生成随机数来请求最新页面,这样无论何时修改,访客都能刷出最新的标记结果。所以,整个重定向链路是“x1.php”请求“x2.html”再请求“x3.html”。 讲解就到此,照着做相信都不难了,繁琐之处在于手工添加地图标点,鄙人的代码本领还没法做到通过数据库以及表单窗口等进行简化,若哪位是代码大神,能将这接口啥的做成插件,将标点数据存入单独一张数据库表中,那大伙就可以跪拜了,嘿嘿!

Python IndentationError: expected an indented block

Python 缩进错误 Python IndentationError: expected an indented block 这是编写一个比大小方法时遇到的低级错误 这个错误的原因是if语句块缩进问题 原代码 def MAX(a,b): if(a > b): return a else: return b; 错误提示 IndentationError: expected an indented block # 缩进错误 : 应该为缩进块 这个很多相同错误都是一样的比如方法块的缩进错误、类的缩进错误等等,都是只需要按照Python语法标准缩进即可,还有就是不需要缩进的地方错误缩进。 按TAB缩进,比如在冒号之后的语法都是需要缩进的在Python3语法中。 def MAX(a,b): if(a > b): return a else: return b # return a if a > b else b 示例代码 PyCharm。 def MAX(a,b): if(a > b): return a else: return b # return a if a > b else b if __name__ == "

手机加载电脑html,手机访问电脑本地html文件

如果用webstrom打开一个单独的页面,在浏览器中现实的地址是: http://localhost:63342/meipro-work/pages/active/findreset.html?_ijt=jhp5kumvugie2h6r0ublp089kf 如果这恰好是你正在开发的用于移动端的页面,想要在手机上访问以便于测试验证效果,怎么访问到呢? 在webstorm的setting中是有相关可设置的,只是我试了不好用 下面有几种办法: 如果你已经安装了全局的node.js,可以使用前两种方法。 1、http-server 手机地址输入电脑的ip加端口号8080即可访问本地编写的html页面(确保手机跟电脑在同一个局域网下) npm install -g http-server 在站点目录下开启命令行输入http-server,运行结果如下: Paste_Image.png 在浏览器中输入http://10.69.57.60:8080会访问meipro-work根目录下的页面,如果是子文件夹下的,修改相应路径就行了 2、browser-sync 文档说明 npm install -g browser-sync 安装成功后我们就可以在想要测试的文件目录下,在DOS窗口或者git bash输入: browser-sync start --server --files "css/.css, .html",即可开启服务 Paste_Image.png 3、nginx conf文件夹中名为nginx的配置文件,需要修改的地方有如下: server { listen 80; server_name localhost; location ~ ^([/\w-]+\.[/\w-]*)+$ { root E:/mei/rootfile; index index.html; } } 需要注意的是1,2是在根文件夹中运行命令,3是root的值就是本文件夹的路径 4、如果想访问vue项目在npm run build之后生成的文件 可以使用如下server.js放到vue项目的根目录下 var express = require('express'); var app = express(); app.use('/static',express.static(__dirname + '/start/static')); app.get('/', function(req, res){ res.sendFile(__dirname+'/start/index.html'); });

js获取页面元素,标签的值

用JavaScript获取页面元素常见的三种方法: 第一种:var x = document.getElementById() //根据ID获取 语法为“document.+方法名”获得其页面元素,可后加属性为其操作。 如document.getElementById("id名")是根据页面id获取元素,在一个页面中元素id必须是惟一 一个,否则用这种方法将取不到其元素。 id就相当于我们个人的身份证号一样,在一个世界上,每个人都是唯一的身份证号。如果页面中没有此id,会找不到你要找的元素,就会报null的错误。 例如:var x=document.getElementById("id").value; 第二种:var x = document.getElementsByName() //根据元素名 name 获取 用getElementsByName()用这种方法是跟据页面的元素名来获取页面元素,在一个页面中,元素id是唯一的,但是页面的元素名字name可以是重复的,name就比如我们人名一样,在这个世界中,会有重名的存在。 假设一个两个名叫汤姆的人在一起,其他人过来找汤姆,就会直接找到两个,在页面中也是一样,中这种方法,我们会得到一个数组。 如果我们找到某个具体的页面元素,可以在此方法后面添加一个下标"[整数]",下标是从0开始的,此整数也就是在页面中你要获取的此元素的位置减一。 例如:var x = document.getElementsByName("ABCD").value; //此时的x就是页面中所有name="ABCD"所形成的一个数组 var x = document.getElementsByName("ABCD")[0].value; //此时的x就是页面中第一个name=''ABCD"的值 第三种:var x = document.getElementsByTagName() // 根据标签获取 用 getElementsByTagName()这种方法是根据HTML的标签来获取的。因为页面元素使用的标签可以重复,所以用这种方法的的值也是一个数组。 如果我们用这种方法想获取某个具体的元素的值,可以直接用下标的形式表示,下标的开始也是从0开始的,当然也可以先的到数组,在从数组中获取。 例如:var x = document.getElementsByTagName("p")[2].value; //此时的x是页面中第三个段落标签的值 var x = document.getElementsByTagName("p").value; //此时的x是一个数组,是有页面中所有<p></p>所组成的一个数组

轻量级的MVVM-MVVM Light

使用 NuGet 查找和安装 MVVM Light 要在 NuGet 中查找 MVVM Light,请按照下列步骤操作: 在 Visual Studio 中打开您的项目。右键单击 "引用",然后从上下文菜单中选择“管理Nuget程序包”。 在“Manage Nuget Packages”对话框中,选择右侧的“Online”。在搜索字段中,输入“mvvmlight”。选择 MVVM Light 包并按下 Install 按钮(顶部选项;其他选项将在下面进一步解释)。 完成这些步骤后,您的项目已进行以下更改: 添加了“packages”文件夹,其中包含以下库。请注意,此文件夹已添加到项目结构的根目录中,并且不会出现在解决方案资源管理器中。 <?xml version="1.0" encoding="utf-8"?> <packages> <package id="CommonServiceLocator" version="2.0.2" targetFramework="net472" /> <package id="MvvmLight" version="5.4.1.1" targetFramework="net472" /> <package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net472" /> </packages> 添加了一个带有两个附加类的 ViewModel 文件夹: ViewModelLocator.csMainViewModel.cs App.xaml 文件已通过添加 ViewModelLocator 作为全局资源进行了修改。 <Application x:Class="MVVMDemo.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d1p1="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:MVVMDemo" d1p1:Ignorable="d" StartupUri="MainWindow.xaml"> <Application.Resources> <ResourceDictionary> <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" xmlns:vm="clr-namespace:MVVMDemo.ViewModel" /> </ResourceDictionary> </Application.

k8s创建alpine容器时出现Back-off restarting failed container问题

1、问题:k8s创建alpine容器时出现Back-off restarting failed container,容器一直进行重启。 2.原因:对于像ubuntu这样的系统级docker ,用k8s集群启动管理后,会自动关闭,解决方法就是 让其一直在运行,所以在yaml文件中增加command命令即可。 3.解决:在yaml中添加如下参数: command: [ "/bin/bash", "-c", "--" ] args: [ "while true; do sleep 30; done;" ] ubuntu.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: ubuntu-deploy spec: replicas: 1 template: metadata: labels: name: ubuntu spec: containers: - name: ubuntu-tz command: ["/bin/bash","-c","--"] args: ["while true; do sleep 30; done;"] securityContext: privileged: true image: ubuntu:16.04 重新进行部署就可以了~~~

解决Uncaught (in promise) TypeError: Failed to execute ‘Cache‘ on addAll

问题产生 今天在使用service worker加上 cache storage时,创建一个存储对象cache之后始终 addAll()方法没有在Application 中的cache storage看到被缓存的文件 排查 其实不知道是什么问题,我这里一直获取不到也没显示这个,等我刷新多次的时候等一等,才看到这个,所以你没看到这个404的话 可以等一下 我的地址 改成这个就对了 我的目录结构是

jQuery-each方法

jQuery-each方法 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术: Adobe Dreamweaver CC 2019 作者:何振森 撰写时间:2021/5/6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 在原生js中有一个方法叫forEach方法,而在jQuery中也有一个类似的方法那就是eash方法,那么它们之间有什么不同?有一个细微的不同,接下来看一下代码吧 这是原生js的: 但是,原生的forEach方法只能遍历数组,而不能遍历伪数组 为什么不能遍历伪数组?看一下下面的代码 什么是伪数组? 有0到length-1的属性,并且有length属性 我上面的代码是不是到满足伪数组的条件?那么让我们看一下运行结果吧 报错了显示找不到这个方法 来源这里显示这个方法是错误的,那就证明了forEach方法是不能遍历伪数组的 接下来,来看一下jQuery写的代码吧! 需要注意的是:each方法传回来的参数跟js的不同each第一个传回来的是遍历到的元素,而forEach第一个传回来的是索引 接下来我们来看看一下each方法能不能遍历伪数组吧 经过实测each是可以遍历伪数组的,注意:each方法遍历伪数组的时候,索引是在前面的 建议大家以后都使用each方法吧!毕竟比较方便而且还能遍历伪数组

C# 教程

C# 教程 C#环境设置使用.NET CLI下载并安装创建一个新的应用运行应用 在 Visual Studio 中创建一个简单的 C# 控制台应用程序创建项目 C # 类和成员类和对象类型参数基类接口枚举 近日开始了C#的学习,粗略来看与Java语法差不多,但是又有很多不同,在这里记录一下学习的内容,本人根据官网教程学习,如有错误请帮忙指出,谢谢。 C#环境设置 在学习之前第一步是设置开发环境,官网提供了以下备选方案之一: 使用.NET CLI 使用所选的文本或代码编辑器,参阅.NET教程Hello World 10分钟入门,或直接看以下记录。 下载并安装 下载.NET SDK(64位) 下载.NET SDK(32位) 下载完成之后直接安装,检车所有安装正确,安装完成之后,打开一个新的命令提示符并运行以下命令: > dotnet 如果安装成功会提示以下内容: Usage: dotnet [options] Usage: dotnet [path-to-application] Options: -h|--help Display help. --info Display .NET information. --list-sdks Display the installed SDKs. --list-runtimes Display the installed runtimes. path-to-application: The path to an application .dll file to execute. 创建一个新的应用 使用如下命令创建应用 dotnet new console -o myApp 这些命令什么意思?

leetcode.494. 目标和---DFS+DP(背包问题)

494. 目标和 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。 返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。 示例 1: 输入:nums = [1,1,1,1,1], target = 3 输出:5 解释:一共有 5 种方法让最终目标和为 3 。 -1 + 1 + 1 + 1 + 1 = 3 +1 - 1 + 1 + 1 + 1 = 3 +1 + 1 - 1 + 1 + 1 = 3 +1 + 1 + 1 - 1 + 1 = 3 +1 + 1 + 1 + 1 - 1 = 3 示例 2: 输入:nums = [1], target = 1 输出:1 提示: 1 <= nums.

操作系统基础概念大扫盲 - 操作系统系列(一)(持续更新,争取完整)

操作系统基础概念大扫盲 - 操作系统系列(一)(持续更新,争取完整) 文章目录 操作系统基础概念大扫盲 - 操作系统系列(一)(持续更新,争取完整)前言1 - 什么是操作系统?2 - 一个重要概念 — 抽象(自顶向下看操作系统)3 - 操作系统是硬件资源的管理者(自底向上看操作系统)4 - 操作系统的历史5 - 操作系统基本概念(一)进程(二)线程(三)并行和并发(四)系统调用(五)[BIOS](https://baike.baidu.com/item/bios/91424)(六)[BootLoader](https://en.wikipedia.org/wiki/Bootloader)(七)[中断向量表](https://baike.baidu.com/item/%E4%B8%AD%E6%96%AD%E5%90%91%E9%87%8F%E8%A1%A8)(八)实模式和保护模式(九)[原语](https://baike.baidu.com/item/%E5%8E%9F%E8%AF%AD) 参考资料最后的最后 前言 本文旨在扫盲一些概念,对每个概念可能不会深入讲解,博主希望这篇文章不仅是操作系统各种概念的集合体,也是博主自己理解一些东西之后的交流桥梁,算是跟大家一起扫盲,我把自己理解的东西还有一些各路大佬写的比较好的博客都写到了引用框里面了,感谢所有的这些博文作者,好多都是我学习过程中令我茅塞顿开的超级优秀的文章,如果我有说的不对的地方希望大家能在评论区帮我指正,谢谢呐,原创不易,有用的话还望留下赞或者评论。 1 - 什么是操作系统? ​ 操作系统(Operation System, OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织和调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境,它是计算机系统中最基本的系统软件。 2 - 一个重要概念 — 抽象(自顶向下看操作系统) 抽象是管理复杂性的一个关键。 一个好的抽象可以把一个几乎不可能管理的任务划分为两个部分: 抽象体的定义和实现 调用抽象体解决问题 其实仔细思考,操作系统内核其实就是底层硬件的抽象,抽象出来后提供一些API接口供用户使用,使得电脑就像一个黑匣子,程序员只需会调用系统的API接口就可以开发运行在操作系统上的软件,再思考,其实面向对象编程思想的提出,也是抽象的一种体现,把复杂的问题抽象出来并解决是每个程序员毕生的工作。 3 - 操作系统是硬件资源的管理者(自底向上看操作系统) ​ 现代的计算机包含CPU、存储器、磁盘、鼠标等等硬件资源,从此角度来看,操作系统的任务其实是在相互竞争的程序之间有序地控制这些硬件的资源分配。 ​ 资源管理其实包含以下两个方面: 时间上复用资源:一种资源在时间上复用时,不同程序/用户轮流使用。例子:CPU的时间片轮询算法。空间上复用资源:一份资源,每个程序/用户都得到资源的一部分。例子:磁盘空间资源的管理。 4 - 操作系统的历史 ​ 1 - 百度百科 ​ 2 - 维基百科 5 - 操作系统基本概念 (一)进程 ​ 在所有操作系统中,一个重要的概念是进程(process)。 ​ 进程本质上是正在执行的一个程序,与每个进程相关的是进程的地址空间(addressspace),这是从某个最小值的存储位置(通常是零)到某个最大值存储位置的列表。 ​ 在这个地址空间中,进程可以进行读写。该地址空间中存放有可执行程序、程序的数据以及程序的堆栈。

什么是URL、绝对URL和相对URL

1. URL理解 下面是一些URL的示例: https://developer.mozilla.org https://developer.mozilla.org/en-US/docs/Learn/ https://developer.mozilla.org/en-US/search?q=URL 您可以将上面的这些网址输进您的浏览器地址栏来告诉浏览器加载相关联的页面(或资源)。 一个URL由不同的部分组成,其中一些是必须的,而另一些是可选的。让我们以下面这个URL为例看看其中最重要的部分: http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocumentProtocol http 是协议。它表明了浏览器必须使用何种协议。它通常都是HTTP协议或是HTTP协议的安全版,即HTTPS。Web需要它们二者之一,但浏览器也知道如何处理其他协议,比如mailto:(打开邮件客户端)或者 ftp:(处理文件传输),所以当你看到这些协议时,不必惊讶。 www.example.com 是域名。 它表明正在请求哪个Web服务器。或者,可以直接使用IP address, 但是因为它不太方便,所以它不经常在网络上使用。. :80 是端口。 它表示用于访问Web服务器上的资源的技术“门”。如果Web服务器使用HTTP协议的标准端口(HTTP为80,HTTPS为443)来授予其资源的访问权限,则通常会被忽略。否则是强制性的。 /path/to/myfile.html 是网络服务器上资源的路径。在Web的早期阶段,像这样的路径表示Web服务器上的物理文件位置。如今,它主要是由没有任何物理现实的Web服务器处理的抽象。 ?key1=value1&key2=value2 是提供给网络服务器的额外参数。 这些参数是用 & 符号分隔的键/值对列表。在返回资源之前,Web服务器可以使用这些参数来执行额外的操作。每个Web服务器都有自己关于参数的规则,唯一可靠的方式来知道特定Web服务器是否处理参数是通过询问Web服务器所有者。 #SomewhereInTheDocument 是资源本身的另一部分的锚点. 锚点表示资源中的一种“书签”,给浏览器显示位于该“加书签”位置的内容的方向。例如,在HTML文档上,浏览器将滚动到定义锚点的位置;在视频或音频文档上,浏览器将尝试转到锚代表的时间。值得注意的是,#后面的部分(也称为片段标识符)从来没有发送到请求的服务器。 你可能想到一个URL类似普通信件的地址:协议代表你要使用的邮政服务,域名是城市或者城镇,端口则像邮政编码;路径代表着你的信件所有递送的大楼;参数则提供额外的信息,如大楼所在单元;最后,锚点表示信件的收件人。 如何使用URL? 可以直接在浏览器的地址栏里输入任何URL,来获得后台的资源。但是这仅仅是冰山一角。 2. 绝对URL和相对URL 我们上面看到的是一个绝对的URL,但也有一个叫做相对URL的东西。我们来看看这个区别意味着什么呢? URL的必需部分在很大程度上取决于使用URL的上下文。在浏览器的地址栏中,网址没有任何上下文,因此您必须提供一个完整的(或绝对的)URL,就像我们上面看到的一样。您不需要包括协议(浏览器默认使用HTTP)或端口(仅当目标Web服务器使用某些异常端口时才需要),但URL的所有其他部分都是必需的。 当文档中使用URL时,例如HTML页面中的内容有所不同。因为浏览器已经有文档自己的URL,它可以使用这些信息来填写该文档中可用的任何URL的缺失部分。我们可以通过仅查看URL的路径部分来区分绝对URL和相对URL。如果URL的路径部分以“/”字符开头,则浏览器将从服务器的顶部根目录获取该资源,而不引用当前文档给出的上下文。 我们来看一些例子来使这个更清楚。 2.1 绝对URL示例 完整网址(与之前使用的网址相同) https://developer.mozilla.org/en-US/docs/Learn 隐去协议 //developer.mozilla.org/en-US/docs/Learn 在这种情况下,浏览器将使用与用于加载该URL的文档相同的协议来调用该URL。 隐去域名 /en-US/docs/Learn 这是HTML文档中绝对URL最常见的用例。浏览器将使用与用于加载托管该URL的文档相同的协议和相同的域名。注意:不可能省略该域名而不省略协议。 2.2 相对URL示例 为了更好地了解以下示例,我们假设从位于以下URL的文档中调用URL: https://developer.mozilla.org/en-US/docs/Learn 子资源 Skills/Infrastructure/Understanding_URLs 因为该URL不以/开头,浏览器将尝试在包含当前资源的子目录中查找文档。所以在这个例子中,我们真的想要达到这个URL https://developer.mozilla.org/en-US/docs/Learn/Skills/Infrastructure/Understanding_URLs 回到目录树中 ../CSS/display 在这种情况下,我们使用从UNIX文件系统世界继承的…/写入约定来告诉我们要从一个目录上升的浏览器。在这里,我们要达到以下URL:https://developer.mozilla.org/en-US/docs/Learn/../CSS/display,可以将其简化为:https://developer.mozilla.org/en-US/docs/CSS/display

河南省历年高考人数(2004-2021)

河南省历年高考人数(2004-2021) 年份人数(万人)200459.55200572200678200787.88200898.8200995.9201095.24201185.5201280.5201375.8201472.4201577.2201682201786.3201898.32019108.42020115.82021125

node搜索html元素,react怎么查找DOM元素?

react查找DOM元素的方法 还是拿一个经典的react实例来说 可能都知道react中没有vue那样的数据双向绑定的效果 但我们可以通过其他的方式来实现class App extends React.Component { constructor(){ super(); this.state={value:''} } render(){ return ( {this.state.value} ) } change(e){ var div=document.getElementById('d1')//第一种方式: 通过原生的dom 操作获取对象 this.setState({value:div.value}) this.setState({value:this.refs.d2.value})//第二种方式: 通过 react 自己封装的refs 获取 this.setState({value:e.target.value}) // 第三种方式 通过 事件对象 获取 } } ReactDOM.render(,document.getElementById('root')) 总结上面的三种情况就是 1、原生dom操作 ById ByClassName querySelector 等等 2、react 自带的 refs 方式 这个官方推荐使用 但不建议使用在事件源上面 refs多用于React组件内子组件的引用。使用ref获取DOM节点有两种情况: (1)子组件为原生DOM组件:获取到的就是这个DOM节点。如下例,this.input就获取到了当前节点。{this.myInput = ref}} /> 通过this.myInput,我就可以对进行一系列操作,比如让输入框聚焦:this.myInput.focus(); 注:refs也支持字符串格式: 通过this.refs.myInput获取到节点。 (2)子组件为React组件,比如:获得的就是的实例,因此就可以调用的实例方法。 示例:componentDidMount(){ const myComp = this.refs.myComp; // 获取到的是的实例myComp const dom = ReactDOM.

vue + d3.js(v6) 绘制【柱状图/条形图】(含动画和交互)

安装d3前提下,以下代码实现柱状图 <template> <div class="d3Chart"></div> </template> <script> import * as d3 from 'd3'; export default { mounted() { // 数据——x轴的标签——城市 let labelList = ["成都", "武汉", "上海", "北京", "深圳"] // 数据——对应y轴的值——城市人口(万) let dataList = [100, 105, 200, 250, 230] // 画布的参数 let mapWidth = 300; let mapHeight = 300; let mapPadding = 30 // 定义画布—— 宽 300 高 300 外边距 10px let map = d3.select(".d3Chart").append("svg").attr("width", mapWidth).attr("height", mapHeight).style("margin", "10px") // d3.select("div").remove() //定义x轴比例尺(序数段比例尺)

详解矩阵算法在电商sku组件中的应用一

本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 前言 在电商里,什么是 sku? 简单的来说,比如一件裙子,颜色有红色、白色,码数有 XL、XXL,我们选择红色、XL,那这个规格的组合就是一个 sku。 而 spu 则是指这件裙子,要区分开来。 以前刚开始接触到这种 sku 选择器,还以为只是简简单单的几个 tab 组合后传给后端,但是等到实际开发才知道这种 sku 选择器,是后端告诉你有什么规格,比如颜色有几种,码数有几种,然后再告诉你有几种组合方式: this.product.skuAttrSortedList = [ { "attrName": "颜色", "attrNameId": "1", "attrValues": [ "红", "白" ] }, { "attrName": "码数", "attrNameId": "2", "attrValues": [ "XL", "XXL" ] } ]; this.product.skuList = [ { "showPrice": "6.00", "favType": 1, "skuId": "1234", "originalSalePrice": "12.01", "salePrice": "11.01", "discount": "-40%", "saleCurrency": "USD", "skuMinVolume": 1, "skuIncreaseVolume": 1, "maxBuyVolume": 99, "skuStatus": 1, "

Spring Boot整合Nacos时遇到 Failed to rename context [logback] as [nacos] 的解决办法

问题概述 在进行项目开发过程中,通过Spring Boot整合Alibaba Nacos的服务注册与发现和配置中心时,遇到个梗,启动时打印出一串错误日志信息 “ Failed to rename context [logback] as [nacos] java.lang.IllegalStateException: Context has been already given a name ” ,但是不会影响项目的正常运行和使用, 如下图: 具体错误信息如下: 2021-04-21 18:03:57.947 INFO [main]s.d.s.web.PropertySourcedRequestMappingHandlerMapping.initHandlerMethods:69 -Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)] 2021-04-21 18:03:57.982 INFO [main]o.s.scheduling.concurrent.ThreadPoolTaskExecutor.initialize:181 -Initializing ExecutorService 'applicationTaskExecutor' 2021-04-21 18:03:58.250 INFO [main]o.s.scheduling.concurrent.ThreadPoolTaskScheduler.initialize:181 -Initializing ExecutorService 'Nacso-Watch-Task-Scheduler' 18:03:58,258 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@748aa7dc - URL [jar:file:/D:/LOCAL_INSTALLER/apache-maven-3.6.3/.m2/repository/com/alibaba/nacos/nacos-client/1.1.4/nacos-client-1.1.4.jar!/nacos-logback.xml] is not of type file 18:03:58,259 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set 18:03:58,259 |-INFO in ch.

Matlab中randint()、rand()与randi()函数

1. randint()使用方法(randint在后期版本中会被randi代替) f = randint(n,m) :产生一个元素为0或1的n×m的随机矩阵 f = randint(n,m,[a b]):产生一个n×m,元素是区间[a,b]的随机矩阵 f = randint(n,m,b): 如果b为正数,产生一个n×m,元素是[0,b-1]的随机矩阵 如果b为负数,产生一个n×m,元素是[b+1,0]的随机矩阵 在新版本生成元素为0或1的n×m随机矩阵: f = round(rand(n,m)) %round 四舍五入 2. rand()使用方法 (元素均在(0,1)内) X = rand 返回一个在区间 (0,1) 内均匀分布的随机数 X = rand(n) 返回一个 n×n 的随机数矩阵 X = rand(n,m) 返回一个 n×m的随机数矩阵 3. randi()使用方法 X = randi(imax) 返回一个介于 1 和 imax 之间的伪随机整数标量 X = randi(imax,n) 返回 n×n 矩阵,其中包含从区间 [1,imax] 的均匀离散分布中得到的伪随机整数 X = randi(imax,n,m) 返回n×m 数组,元素为介于1和imax的随机整数 X = randi([imin,imax],___) 使用以上任何语法返回一个数组,其中包含从区间 [imin,imax] 的均匀离散分布中得到的整数

动力锂电池-二阶RC模型等效电路-RLS参数辨识-Simulink

1.锂电池二阶RC等效电路模型 二阶RC等效电路模型在Thevenin模型的基础上又串联了一个阻容并联回路,用两个阻容并联回路分别模拟浓差极化和电化学极化,在描述了铿离子电池的非线性特性的同时,更加准确地描述了钦酸铿电芯充放电过程中的极化效应。 二阶RC等效电路模型可由如下电路方程描述: 进行拉普拉斯变换,整理可得二阶RC等效电路的频域表达式为: 使用双线性变换进行离散化: 2.递推最小二乘辨识算法 锂电池端电压-端电流 开路电压-容量曲线 RLS辨识结果 辨识效果测试 局部放大 

idea入门玩家必备快捷键

idea入门玩家必备快捷键 初级快捷键,用idea开发必须会 alt+enter :错误提示,一招灵,代码飘红先点它 ctrl+o :复写方法,实现父类中的方法 ctrl+alt+t :surround with,给代码块包围if,while,try catch等 ctrl+p :光标定位到方法后面的小括号里,点击次快捷键,可以查看此方法的传入参数类型 ctrl+y :删除一行代码 ctrl+d :复制一行代码 shift+enter :向下插入一行代码 ctrl+alt+enter :向上插入一行代码 ctrl+g :定位到某一行代码 ctrl+shift+↑ 或者 ↓ :光标选择一行代码后面,然后点击这两个快捷键,可以上下移动代码位置 ctrl+alt+v :自动补全返回值 shift+ctrl+enter :自动补全代码末尾分号 ctrl+alt+l :格式化代码 ctrl+alt+o :优化导入的包,可以对当前文件和整个包目录使用 ctrl+alt+f :提升变量作用域,局部变量提升为属性,经常会用到,很酷的快捷键 高级快捷键,看源码必备 ctrl+alt+← 或者 → :返回上次查看代码位置,下次查看代码位置,看源码必备 双击shift :搜索所有 或者ctrl+n 也行 ctrl+f12 :查看类中所有方法,直接敲方法名,还可以搜索 ctrl+h :查看类或者接口的继承实现关系 Ctrl+Alt+b :在接口调用的方法后面,点击,可以列出实现这个方法的具体实现类 ctrl+shift+h :查看某个方法的父子类or接口与实现类的重写关系 ctrl+shift+i :将光标放在放在方法名上,这个快捷键可以展示出有哪些类实现了此方法,还可以列出代码,必备快捷键 alt+f7 :光标需要放在方法名上,可以搜索出哪些类调用了此方法,高级快捷键,必备 crtl+q :光标需要放在doc文档注释上,然后可以将doc弹出框来展示

随机梯度下降算法学习笔记

梯度下降的常用领域: 线性回归: 例如:利用线性回归预测不同人口数量的城市下开饭馆的利润趋势。 损失函数 梯度 Z轴越大,损失越大,也就是我们要从山顶下到山脚。 可以将梯度理解为下山的方向(损失函数的偏导),当红点到山脚时,得到算法的最优结果。 梯度下降算法思路: while 循环: 梯度=gradient(θ0,θ1) (θ0,θ1)=(θ0,θ1)- 梯度*学习率 // 用减法表示下坡。 学习率可以理解为下山时步伐的大小,在编程时需要不断调试学习率的大小,太大或者太小都不好。 太大容易反复横跳;太小步伐太小,计算次数太多。 最后附上代码: import numpy as np import pandas as pd from matplotlib import pyplot as plt path = 'C:\\Users\\Administrator\\Desktop\\data.txt' data = pd.read_csv(path, header=None) plt.scatter(data[:][0], data[:][1], marker='+') data = np.array(data) m = data.shape[0] theta = np.array([0, 0]) data = np.hstack([np.ones([m, 1]), data]) y = data[:, 2] data = data[:, :2] def cost_function(data, theta, y): cost = np.

手把手教你如何配置fiddler、并开启手机代理抓包、最详细

配置fiddler 在正常开发中,应用总是要和服务器交互,其中不免要分析服务器返回的数据,以及测试接口,我们要借助抓跑工具类帮助。所谓抓包工具,其实就是一个代理,正常我们访问服务器是直接访问,使用代理后,就是通过代理去访问,而代理会把请求信息和服务器的响应信息抓取下来。 下面介绍使用fiddler在电脑中的配置以Android成功使用代理连上电脑为目的。 首先,需要在电脑上下载并安装fiddler 找到tool工具栏 点击Https一栏,按照下图里的勾上,目的是为了允许抓包https协议,以及忽略不安全的网址 点击Https右边的Actions,点击第一个trust root certificate,目的是添加信任证书 点击Https右边的Actions,点击第二个export root certificate to desktop,目的是添加信任证书到桌面,为了安装证书 安装证书,傻瓜式安装,一直确认即可 点击connections,查看电脑上fiddler使用的端口,并允许远程连接(即允许连接电脑) 配置手机 注意:手机和电脑一定要处于同一个wifi下,手机不可以用流量 点开所连接wifi的详情,里面有高级选项,找到代理,将无改为手动 在手机的代理里设置对应的电脑IP和端口号,电脑Ip可以通过电脑的WiFi里详情看见,而端口号就是上文里的fiddler使用的端口号(上面的最后一步) 手机浏览器输入:https//电脑Ip:端口号 访问,如果无法访问,则关闭电脑的fiddler并重新打开fiddler即可 成功访问后,会出现下面这个页面,点击下载证书 最后一步,手机安装证书,找到wifi的高级设置,点击它,并找到安装证书,点击它,找到刚刚下载的证书安装即可 安装完成后,点击任意需要用到网络的网站啊,软件啊什么的,电脑上的fiddler都能抓包即以成功 注意:如果出现了一些问题,就重启电脑fiddler,能解决绝大部分问题,博主这里很顺利

matlab函数之randn()

randn - 正态分布的随机数 语法: X = randn 返回一个从标准正态分布中得到的随机标量。 【示例】: X = randn(n) 返回由正态分布的随机数组成的 n×n 矩阵。 【示例】: 随机数落在-3 ~ 3的概率是99.6% X = randn(sz1,…,szN) 返回由随机数组成的 sz1×…×szN 数组,其中 sz1,…,szN 指示每个维度的大小。例如:randn(3,4) 返回一个 3×4 的矩阵。 【示例】: X = randn(sz) 返回由随机数组成的数组,其中大小矢量 sz 定义 size(X)。例如:randn([3 4]) 返回一个 3×4 的矩阵。 【示例】: X = randn(___,typename) 返回由 typename 数据类型的随机数组成的数组。typename 输入可以是 ‘single’ 或 ‘double’。您可以使用上述语法中的任何输入参数。 【示例】{ X = randn(___,‘like’,p) 返回由 p 等随机数组成的数组;也就是与 p 同一对象类型。您可以指定 typename 或 ‘like’,但不能同时指定两者 【未实验】 拓展应用 生成同样的随机数 利用rng ( 控制随机数生成函数)先获取当前生成随机数种子 ,后续利用该种子重新获取随机数据即得

kubeadm-config说明

https://www.cnblogs.com/breezey/p/11770780.html 配置kubeadm-config.yaml 通过如下指令创建默认的kubeadm-config.yaml文件: kubeadm config print init-defaults > kubeadm-config.yaml #生成KubeletConfiguration示例文件 kubeadm config print init-defaults --component-configs KubeletConfiguration #生成KubeProxyConfiguration示例文件 kubeadm config print init-defaults --component-configs KubeProxyConfiguration 安装master节点: kubeadm init --config kubeadm-config.yaml 生成用于添加节点的kubeadm-config.yaml文件 kubeadm config print join-defaults > kubeadm-config.yaml 修改三个地方: apiServerEndpoint:连接apiserver的地址,即master的api地址,这里可以改为192.168.0.1:6443,如果master集群部署的话,这里需要改为集群vip地址token及tlsBootstrapToken:连接master使用的token,这里需要与master上的InitConfiguration中的token配置一致name:node节点的名称,如果使用主机名,需要确保master节点可以解析该主机名。否则的话可直接使用ip地址 添加节点: kubeadm join --config kubeadm-config.yaml 附 cat kubeadm-config.yaml apiVersion: kubeadm.k8s.io/v1beta2 bootstrapTokens: - groups: - system:bootstrappers:kubeadm:default-node-token token: abcdef.0123456789abcdef ttl: 24h0m0s usages: - signing - authentication kind: InitConfiguration localAPIEndpoint: advertiseAddress: 192.168.200.3 # 本机IP bindPort: 6443 nodeRegistration: criSocket: /var/run/dockershim.

实训中学到的HTML基础知识(4)

实训已经过去一周了,这是实训的第五天,正式上课的第四天,前面三天已经学习了HTML中的基本主体标签知识和CSS样式表,今天学习了CSS样式表里的transform属性和animation动画属性,以及新的知识:JS(JavaScript)。 一、transform属性 transform的值主要有以下几种:旋转rotate、移动translate、缩放scale、扭曲skew和矩阵变形matrix。 transform:none表示不进行变换 transform:rotate|scale|skew|translate|matrix;的书写方式。 1、旋转rotate rotate() :通过指定的角度参数对原元素指定一个2D rotation(2D 旋转),需先有transform-origin属性的定义。transform-origin定义的是旋转的基点,其中angle是指旋转角度,如果设置的值为正数表示顺时针旋转,如果设置的值为负数,则表示逆时针旋转。如:transform:rotate(30deg): 2、移动translate 移动translate我们分为三种情况:translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动);translateX(x)仅水平方向移动(X轴移动);translateY(Y)仅垂直方向移动(Y轴移动),具体使用方法如下: (1)、translate([, ]) :通过矢量[tx, ty]指定一个2D translation,tx 是第一个过渡值参数,ty 是第二个过渡值参数选项。如果未被提供,则ty以 0 作为其值。也就是translate(x,y),它表示对象进行平移,按照设定的x,y参数值,当值为负数时,反方向移动物体,其基点默认为元素 中心点,也可以根据transform-origin进行改变基点。如transform:translate(100px,20px): (2)、translateX() : 通过给定一个X方向上的数目指定一个translation。只向x轴进行移动元素,同样其基点是元素中心点,也可以根据transform-origin改变基点位置。如:transform:translateX(100px): (3)、translateY() :通过给定Y方向的数目指定一个translation。只向Y轴进行移动,基点在元素心点,可以通过transform-origin改变基点位置。如:transform:translateY(20px): 3、缩放scale 缩放scale和移动translate是极其相似,他也具有三种情况:scale(x,y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放);scaleX(x)元素仅水平方向缩放(X轴缩放);scaleY(y)元素仅垂直方向缩放(Y轴缩放),但它们具有相同的缩放中心点和基数,其中心点就是元素的中心位置,缩放基数为1,如果其值大于1元素就放大,反之其值小于1,元素缩小。下面我们具体来看看这三种情况具体使用方法: (1)、scale([, ]):提供执行[sx,sy]缩放矢量的两个参数指定一个2D scale(2D缩放)。如果第二个参数未提供,则取与第一个参数一样的值。scale(X,Y)是用于对元素进行缩放,可以通过transform-origin对元素的基点进行设置,同样基点在元素中心位置;基中X表示水平方向缩放的倍数,Y表示垂直方向的缩放倍数,而Y是一个可选参数,如果没有设置Y值,则表示X,Y两个方向的缩放倍数是一样的。并以X为准。如:transform:scale(2,1.5): (2)、scaleX() : 使用 [sx,1] 缩放矢量执行缩放操作,sx为所需参数。scaleX表示元素只在X轴(水平方向)缩放元素,他的默认值是(1,1),其基点一样是在元素的中心位置,我们同样是通过transform-origin来改变元素的基点。如:transform:scaleX(2): (3)、scaleY() : 使用 [1,sy] 缩放矢量执行缩放操作,sy为所需参数。scaleY表示元素只在Y轴(垂直方向)缩放元素,其基点同样是在元素中心位置,可以通过transform-origin来改变元素的基点。如transform:scaleY(2): 4、扭曲skew 扭曲skew和translate、scale一样同样具有三种情况:skew(x,y)使元素在水平和垂直方向同时扭曲(X轴和Y轴同时按一定的角度值进行扭曲变形);skewX(x)仅使元素在水平方向扭曲变形(X轴扭曲变形);skewY(y)仅使元素在垂直方向扭曲变形(Y轴扭曲变形),具体使用如下: (1)、skew( [, ]) :X轴Y轴上的skew transformation(斜切变换)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则值为0,也就是Y轴方向上无斜切。skew是用来对元素进行扭曲变行,第一个参数是水平方向扭曲角度,第二个参数是垂直方向扭曲角度。其中第二个参数是可选参数,如果没有设置第二个参数,那么Y轴为0deg。同样是以元素中心为基点,我们也可以通过transform-origin来改变元素的基点位置。如:transform:skew(30deg,10deg): (2)、skewX() : 按给定的角度沿X轴指定一个skew transformation(斜切变换)。skewX是使元素以其中心为基点,并在水平方向(X轴)进行扭曲变行,同样可以通过transform-origin来改变元素的基点。如:transform:skewX(30deg) (3)、skewY() : 按给定的角度沿Y轴指定一个skew transformation(斜切变换)。skewY是用来设置元素以其中心为基点并按给定的角度在垂直方向(Y轴)扭曲变形。同样我们可以通过transform-origin来改变元素的基点。如:transform:skewY(10deg) 5、矩阵matrix matrix(, , , , , ) : 以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a b c d e f]变换矩阵。就是基于水平方向(X轴)和垂直方向(Y轴)重新定位元素,此属性值使用涉及到数学中的矩阵,我在这里只是简单的说一下CSS3中的transform有这么一个属性值,如果有感兴趣的朋友可以去了解更深层次的martix使用方法,这里就不多说了。

解决el-dialog弹框出现页面抖动问题

main.js(一般正常引入后只需要添加ElementUI.Dialog.props.lockScroll.default = false;就可以) import ElementUI from 'element-ui'; // 防止dialog导致页面滚动条消失抖动 ElementUI.Dialog.props.lockScroll.default = false; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); 如果上面的代码不起作用,那就在App.vue样式中添加 以下代码 /* 解决页面dialog出现时,页面滚动条出现消失导致的Message消息提示抖动问题 */ body { overflow-y: auto !important; padding-right: 0 !important; }

数据库中的Schema是什么?

参考: http://database.guide/what-is-a-database-schema/https://blog.csdn.net/h254931252/article/details/52774276?spm=1001.2014.3001.5501 在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文叫模式)是数据库的组织和结构,schemas 和_schemata_都可以作为复数形式。模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、**外键(**foreign key)等。数据库模式可以用一个可视化的图来表示,它显示了数据库对象及其相互之间的关系 以上是模式图的一个简单例子,显示了三个表及其数据类型、表之间的关系以及主键和外键,以下是数据库模式的一个更复杂的例子。 在这种情况下,模式图分为四个部分: (1)Customer Data(客户数据):与客户有关的数据,如姓名,地址等 (2)Business(业务):业务所需的数据,例如员工,商店位置,付款细节等 (3)Inventory(库存):所有产品的细节。在这里,产品是电影,所以它包含电影标题,类别,演员等数据。 (4)Views(视图):关于用于评估的数据的特别观点,所以通过这些模式图,我们可以进一步创建一个数据库,实际上,MySQL Workbench允许我们直接从图中生成一个Create Table脚本,然后我们就可以直接用这个脚本去创建一个数据库,还可以直接将一个数据库转换为一个关系图表。 Schema和DataBase是否等同? 涉及到数据库的模式有很多疑惑,问题经常出现在模式和数据库之间是否有区别,如果有,区别在哪里。 取决于数据库供应商 对schema(模式)产生疑惑的一部分原因是数据库系统倾向于以自己的方式处理模式 (1)MySQL的文档中指出,在物理上,模式与数据库是同义的,所以,模式和数据库是一回事。 (2)但是,Oracle的文档却指出,某些对象可以存储在数据库中,但不能存储在schema中。 因此,模式和数据库不是一回事。 (3)而根据这篇SQL Server技术文章SQLServer technical article,schema是数据库SQL Server内部的一个独立的实体。 所以,他们也不是一回事。 因此,取决于您使用的RDBMS,模式和数据库可能不一样。 SQL标准对schema如何定义? ISO/IEC 9075-1 SQL标准中将schema定义为描述符的持久命名集合(a persistent, named collection of descriptors),如果你之前对schema的定义疑惑不解,希望看了我的这篇文章会好一些,起码不会更差。 广义上 造成疑惑的另一个原因可能是由于schema这一术语具有如此广泛的含义,因为它在不同的环境下有不同的含义,schema一词源于希腊语skhēma,意思是形态(form),轮廓(figure),形状(shape)或方案(plan)。Schema在心理学中被用来描述组织信息类别及其之间关系的有组织的思维或行为模式。我们在设计一个数据库之前,还需要看看数据中的信息种类和它们之间的关系, 在我们开始使用DBMS中的物理模式之前,我们需要创建一个概念模式。在软件开发中讨论模式时,可以讨论概念模式、物理模式、内部模式、外部模式、逻辑模式等,每一个都有其特定的含义。 DBMS的schema定义 以下是三个领先的关系数据库系统的schema定义: MySQL Conceptually, a schema is a set of interrelated database objects, such as tables, table columns, data types of the columns, indexes, foreign keys, and so on.