Shadow

利用USB摄像头,免费快速搭建浏览器远程监控

安稳与你 提交于 2020-07-27 10:08:57
用OpenCV实现桌面的摄像头程序很简单,把这部分代码集成到一个简单的HTTP server上就可以实现浏览器远程监控。 OpenCV安装 我这里使用了 opencv4nodejs : npm i opencv4nodejs 安装的时间会有点长,需要先下载OpenCV源码再编译。如果发现编译不通过,请阅读错误信息,再检查系统是否安装了需要的工具。 简单的Node.js桌面摄像头应用 创建一个desktop.js文件: const cv = require('opencv4nodejs'); const vCap = new cv.VideoCapture(0); const delay = 10; while (true) { let frame = vCap.read(); if (frame.empty) { vCap.reset(); frame = vCap.read(); } cv.imshow('OpenCV Node.js', frame); const key = cv.waitKey(delay); // Press ESC to quit if (key == 27) {break;} } 运行程序: node desktop.js 通过浏览器访问摄像头 原理 启动一个简单的web服务,并不断获取摄像头数据

vscode不写一行配置,用cmake傻瓜式搭建C++编译调试环境

空扰寡人 提交于 2020-07-27 09:04:03
网上看了一些用vscode+cmake搭建C++编译调试环境的帖子,基本差不多,都要写一个配置文件。其实根本不用这么麻烦。安装的工具是一样的,但是操作可以更加简单。 VSCode + CMake超简单用法 首先安装好平台上的C++编译器,这里不多说。 然后安装vscode中的C++,cmake,cmake tools插件。 准备工作完成之后,按F1,选择cmake:Quick Start就可以创建一个cmake工程。 接下来点击左侧栏的CMake工具按钮。 右键可执行文件,选择Debug。 进入调试界面。 就这么简单,工程目录下不用手动编写任何配置文件。 来源: oschina 链接: https://my.oschina.net/yushulx/blog/4274425

第一次入博客如何简单的设置博客园皮肤

有些话、适合烂在心里 提交于 2020-07-27 09:02:08
(1) 进到设置里面 (2) 把下面代码复制到 <定制CSS代码> 1 /* simplememory */ 2 #google_ad_c1, #google_ad_c2 { display : none ;} 3 .syntaxhighlighter a, .syntaxhighlighter div, .syntaxhighlighter code, .syntaxhighlighter table, .syntaxhighlighter table td, .syntaxhighlighter table tr, .syntaxhighlighter table tbody, .syntaxhighlighter table thead, .syntaxhighlighter table caption, .syntaxhighlighter textarea { 4 font-size : 14px!important ; 5 } 6 #home { 7 opacity : 0.80 ; 8 margin : 0 auto ; 9 width : 85% ; 10 min-width : 950px ; 11 background-color : #fff ; 12 padding : 30px ; 13 margin-top : 30px ; 14 margin

【每日答疑】下图是仪放采集肌电信号的电路。在测试的时候,如果直接从信号发生器输出1MV 250HZ的

▼魔方 西西 提交于 2020-07-27 05:56:07
下图是仪放采集肌电信号的电路。在测试的时候,如果直接从信号发生器输出1MV 250HZ的信号出来,后面经放大后的数值正常放大,但是由于标准的要求,信号发生器的输出信号(1V 250HZ)需要经过非平衡电路衰减(1000倍)后再进入仪放,这样放大后的数据就偏大了,而且不稳定,经分析,是工频信号耦合进去了,从仪放前端能去掉工频信号吗?怎么来提高仪放的CMRR呢?![( https://s4.51cto.com/images/blog/202007/05/023e80b288fdb2c78b06d017cd55e310.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk =) 标准里面的要求: A.首先针对于工频信号我们一般都是采用陷波滤波器的方式就是我们经常所说的带阻滤波器的一种,一般都是带宽比较窄主要是是消除工频的60Hz B.针对于如何提高仪表放大器的CMRR,首先我们需要知道CMRR的定义,共模抑制比=Adif/Acm=差模增益/共模增益 C.针对于普通运放其共模增益一般为1,大家可以以反向比例运算放大器为例! D.针对于仪表运放,关b理想情况下纪客老白,其共模增益为0

docker 启动 elasticsearch镜像,挂载目录后报错问题

点点圈 提交于 2020-07-27 02:56:45
从docker hub下载了一个es的镜像,版本为6.4.2,详细信息如下: 比较重要的就是这两条,第一个是工作目录,挂载目录也需要和这里对应;第二个是启动命令,这里是指定了一个预先写好的启动脚本。所以我启动了一个空容器去查看了下容器内的情况: 容器内部目录结构如上图,data是用来存放数据,logs用来存放日志。 接着查看下启动脚本 /usr/local/bin/docker-entrypoint.sh 前半部分我也是看的一知半解,不过真正和挂载目录相关的是最后这部分,这里处理了挂载目录后的操作,大致意思是: 如果是root用户(docker启动容器,默认是以root用户身份),并且 TAKE_FILE_OWNERSHIP 变量存在,则将/usr/share/elasticsearch/{data,logs},这两个目录都改变为1000用户所属(这里也可以看到最终存储数据的路径为data,所以挂载时应该挂载到data下)。 id为1000的用户: 正是elasticsearch用户,所以如果不挂载任何目录直接启动容器即可,如果挂载,那么就添加一个变量,任意赋值,es可以正常启动。 docker run -itd -v /root/es-data/:/usr/share/elasticsearch/data -e TAKE_FILE_OWNERSHIP=111 -p 9200

重学数据结构之链表篇

核能气质少年 提交于 2020-07-27 02:28:11
本文是重学数据结构系列文章的第二篇,本文和大家一起探讨链表的相关知识。 重学数据结构之数组篇 @[toc] 链表是怎么样的数据结构 链表,不需要连续的内存空间,通过“指针(引用)”将一组零散的内存块串联起来的数据结构。 内存块在链表中也叫“结点”,每个结点除了存储数据,还需要记录链上的下一个或者上一个结点的地址。 链表的特点 1.插入、删除数据效率高O(1)级别(只需更改指针指向即可),随机访问效率低O(n)级别(需要从链头至链尾进行遍历)。 2.和数组相比,内存空间消耗更大,因为每个存储数据的节点都需要额外的空间存储后继指针。 常见的链表结构 单链表 1.只有一个方向,每个结点只存储下一个结点的地址,记录下一个结点的指针成为后继指针(next) 2.有两个特殊结点,头结点和尾结点。头结点用来记录链表的基地址;尾结点指向一个空地址NULL,表示链表的最后一个结点 3.链表的插入和删除操作,因为不考虑内存空间的连续性,只需要关注相邻结点的指针变化,所以时间复杂度为O(1) 4.链表的随机访问操作,因为内存空间的不连续性,需要指针一个结点一个结点的依次访问,直到找到对应的结点,所以时间复杂度为O(n) 双向链表 1.有两个方向,每个结点既有指向后面结点的后继指针next,也有指向前面结点的前驱指针prev, 因为需要同时存储前后两个指针,因此双向链表占用更多的内存存储空间 2

分布式事务TCC机制

假装没事ソ 提交于 2020-07-27 01:15:49
前言 分布式事务是几乎所有分布式微服务系统中,最棘手也是最重要的一个点了。在讲解分布式事务前,先了解下数据库事务的特性;数据库事务的几个特性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是ACID。 CAP定理 CAP定理是由加州大学伯克利分校Eric Brewer教授提出来的,他指出WEB服务无法同时满足一下3个属性: 一致性(Consistency) : 客户端知道一系列的操作都会同时发生(生效) 可用性(Availability) : 每个操作都必须以可预期的响应结束 分区容错性(Partition tolerance) : 即使出现单个组件无法可用,操作依然可以完成 具体地讲在分布式系统中,在任何数据库设计中,一个Web应用至多只能同时支持上面的两个属性。显然,任何横向扩展策略都要依赖于数据分区。因此,设计人员必须在一致性与可用性之间做出选择。 BASE理论 在分布式系统中,我们往往追求的是可用性,它的重要程序比一致性要高,那么如何实现高可用性呢? 前人已经给我们提出来了另外一个理论,就是BASE理论,它是用来对CAP定理进行进一步扩充的。BASE理论指的是: Basically Available(基本可用) Soft state(软状态) Eventually

跟着兄弟连系统学习Linux-【day12】

随声附和 提交于 2020-07-26 23:37:07
day12-20200611 p42.用户管理命令passwd 【passwd 用户名】给用户添加密码 【passwd】给当前用户修改密码,普通用户不可以修改比较简单的密码 【passwd -S 用户名】查看密码得有效状态,和shadow中看到的一样的 【passwd -l 用户名】锁定用户,其实就是shadow文件里面密码变成了【!!】 【passwd -u 用户名】解锁用户 【echo '123' | passwd --stdin 用户名】使用字符串作为用户的密码,【|】管道符的意思是将第一个作为第二个参数。这种写法是用来写脚本的时候可以使用,平时可以直接用上面的命令。 p43.用户管理命令usermod和chage useradd选项同样适用于usermod 【usermod 用户名】修改用户信息 -u 指定uid -d 指定家目录,不推荐使用 -c 用户说明,如果比较复杂,需要加上空格 -g 组名,不建议修改初始组 -G 附加组,逗号分隔 -s shell -L 锁定用户 -U 解锁用户 【chage 用户名】查询用户密码信息 -l 列出详细信息 -d 修改密码最后一次修改时间 【chage -d 0 用户名】第一次登录强制修改密码,这个设置还是比较有用的。 -m 天数,两次密码更改的间隔时间 不需要记录选项,最好直接修改shadow文件就好了 p44

阿里巴巴Java 程序员常用的 10 款开源工具!用好了,事半功倍!

余生颓废 提交于 2020-07-26 23:31:43
本文主要介绍阿里巴巴Java程序员常用的一些基本和高级工具。如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机。 Java世界中存在许多工具,从Eclipse,NetBeans和IntelliJ IDEA等著名的IDE开始到Java开发人员应该知道的JVM分析和监视工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。 尽管如此,在本文中,我将重点介绍适用于各种Java开发人员的通用工具,例如核心Java 开发人员和Web开发人员。 1.JIRA Atlassian的JIRA是当前敏捷开发领域最重要的工具之一。它用于错误跟踪,问题跟踪和项目管理。如果你遵循敏捷开发方法,例如Sprint和Scrum,那么你必须了解JIRA。它允许您创建Spring循环并跟踪软件开发的进度。 JIRA 是目前比较流行的基于Java架构的管理系统,由于Atlassian公 司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。 2.Git Git是Java程序员的另一个必备工具,它是一个免费的开源分布式版本控制系统,旨在快速高效地处理从很小到非常大的项目版本管理。Git易于学习,占用空间小,具有超强的性能。 最初 Git 的开发是为了辅助 Linux

Liunx系统配置及服务器管理-用户管理命令

泪湿孤枕 提交于 2020-07-26 10:28:21
1.创建用户xiaolan命令:useradd xiaolan 2.给用户创建密码(密码为暗文,不显示):passwd+用户名 3.查看用户基本信息文件:cat /etc/passwd 4.用户密码信息文件can /ext/shadow (1)登录名称,必须是有效用户名 (2)已加密密码,分为三个部分用$分隔,第一部分表示用哪种哈希算法;第二部分是用于加密哈希的salt;第三部分是已加密的哈希 哈希算法:1表示MD5;6表示SHA-512;5表示SHA-256 注意:在密码前一个感叹号(!)代表该用户被锁定,可以在机器上转到改用户,但无法远程 注意:密码是两个感叹号(!),表示没有设置密码 (3)最近一次更改密码的日期,以距离1970/1/1的天数表示 (4)密码更改后多少天内不能再次更改。0表示可以随时更改 (5)密码过期时间,必须在期限内修改密码 (6)警告期,警告用户再过多少天密码将过期。0表示不提供警告 (7)宽限期,密码过期多少天仍然可以使用 (8)帐号过期时间,以距离1970/1/1的天数表示。0或空字符表示永不过期 (9)预留字段 5.创建一个用户,指定一个目录 6.创建用户,指定uid useradd xiaolan2 -u 2000 7.修改登录shell 让账户无法使用usermod -s /sbin/nologin xiaolan 此时