element

Spring Boot Admin 集成诊断利器 Arthas 实践

独自空忆成欢 提交于 2021-02-04 14:18:29
作者 | 阿提说说 来源| 阿里巴巴云原生公众号 前言 Arthas 是 Alibaba 开源的 Java 诊断工具,具有实时查看系统的运行状况;查看函数调用参数、返回值和异常;在线热更新代码;秒解决类冲突问题;定位类加载路径;生成热点;通过网页诊断线上应用。如今在各大厂都有广泛应用,也延伸出很多产品。 这里将介绍如何将 Arthas 集成进 Spring Boot 监控平台中。 SpringBoot Admin 为了方便,SpringBoot Admin 简称为 SBA(版本:1.5.x)。 1.5 版本的 SBA 如果要开发插件比较麻烦,需要下载 SBA 的源码包,再按照 Spring-boot-admin-server-ui-hystrix的形式 Copy 一份,由于 JS 使用的是 Angular,本人尝试了很久,虽然掌握了如何开发插件,奈何不会 Angular,遂放弃💀 版本:2.x 2.x 版本的 SBA 插件开发,官网有介绍如何开发,JS 使用 Vue,方便很多,由于我们项目还在使用 1.5,所以并没有使用该版本,请读者自行尝试。 不能使用 SBA 的插件进行集成,那还有什么办法呢?😅 SBA 集成 鄙人的办法是将 Arthas 的相关文件直接 Copy 到 Admin 服务中,这些文件都来自 Arthas-all 项目 Tunnel-server。 admin

vue3.0的使用

江枫思渺然 提交于 2021-02-04 02:26:17
一、vue-cli升级 1、安装 `npm install -g @vue/cli OR yarn global add @vue/cli` #升级 `yarn global upgrade --latest @vue/cli OR npm update -g @vue/cli 2、创建项目 vue create my-project OR vue ui` step1: default (babel, eslint) 默认套餐,提供 babel 和 eslint 支持。 Manually select features 自己去选择需要的功能,提供更多的特性选择。比如如果想要支持 TypeScript ,就应该选择这一项。 vue-cli 内置支持了8个功能特性,可以多选:使用方向键在特性选项之间切换,使用空格键选中当前特性,使用 a 键切换选择所有,使用 i 键翻转选项。 TypeScript 支持使用 TypeScript 书写源码。 Progressive Web App (PWA) Support PWA 支持。 Router 支持 vue-router 。 Vuex 支持 vuex 。 CSS Pre-processors 支持 CSS 预处理器。 Linter / Formatter 支持代码风格检查和格式化。 Unit Testing 支持单元测试。 E2E

用 JS 原生方法实现 jQuery 的 append, prepend, before, after

独自空忆成欢 提交于 2021-02-02 08:22:36
相当于 $(el).before('html' | element) el.insertAdjacentHTML('beforeBegin', 'html'); el.insertAdjacentElement('beforebegin', element) 相当于 $(el).prepend('html' | element) el.insertAdjacentHTML('afterBegin', 'html'); el.insertBefore(element, el.firstChild) 相当于 $(el).append('html' | element) el.insertAdjacentHTML('beforeEnd', 'html'); el.appendChild(element) 相当于 $(el).after('html' | element) el.insertAdjacentHTML('afterEnd', 'html'); el.insertAdjacentElement('afterend', element) 相当于 $(el).addClass(className) el.classList.add(className) 相当于 $(el).removeClass(className) el.classList.remove(className)

OpenCV-3.4.3图像通道处理

南楼画角 提交于 2021-02-02 05:42:29
图像通道处理 图像读取和处理都是按BGR通道顺序进行的 1 #include <iostream> 2 #include <opencv2/opencv.hpp> 3 #include " opencv2/highgui/highgui.hpp " 4 #include " opencv2/imgproc/imgproc.hpp " 5 6 int main( int argc, char ** argv) { 7 cv::Mat src = cv::imread( " /home/cv/Downloads/images/P1180141.JPG " , 1 ); 8 cv::resize(src, src, cv::Size(src.cols / 3 , src.rows / 3 ), cv::INTER_CUBIC); 9 cv::imshow( " original_after_resize " , src); 10 11 // blue channel 12 cv::Mat mytemp1(src.rows, src.cols, CV_8UC3, cv::Scalar( 255 , 0 , 0 )); 13 cv::imshow( " temp test " , mytemp1); 14 // green channel 15 cv::Mat mytemp2(src

opencv 单通道合并为多通道

霸气de小男生 提交于 2021-02-02 05:30:29
int main(){ cv::Mat m1 =(cv::Mat_< int >( 3 , 2 )<< 1 , 2 , 3 , 4 , 5 , 6 ); cv::Mat m2 =(cv::Mat_< int >( 3 , 2 )<< 2 , 4 , 6 , 8 , 10 , 12 ); cv::Mat m3 =(cv::Mat_< int >( 3 , 2 )<< 3 , 6 , 9 , 12 , 15 , 18 ); cv::Mat inm[] = {m1,m2,m3}; cv::Mat outm; cv::merge(inm, 3 ,outm); // 合并后行数和列数不变。each element of the output array will be a concatenation of the elements of // the input arrays, where elements of i-th input array are treated as mv[i].channels()-element vectors. std::cout<<outm<< std::endl; std::vector <cv::Mat> inm1; inm1.push_back(m1); inm1.push_back(m2); inm1.push_back(m3); cv::Mat

80行Python实现-HOG梯度特征提取(转载)

被刻印的时光 ゝ 提交于 2021-02-01 04:20:32
本文原文链接:https://blog.csdn.net/ppp8300885/article/details/71078555 本文用80行代码的Python实现了HOG算法,代码在Github Hog-feature,虽然OpenCV有实现好的Hog描述器算法,但是本文目的是完全理解HOG特征提取的具体方法和实现原理,以及检验相关参数对实验结果的影响,提升检测到的特征的性能以及优化代码的运行速度。 1. 方法简介 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的描述子。通过计算和统计局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。现如今如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。 主要思想:在一幅图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。其本质是梯度的统计信息,而梯度主要存在于边缘所在的地方。 实现过程:简单来说,首先需要将图像分成小的连通区域,称之为细胞单元。然后采集细胞单元中各像素点的梯度或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。 算法优点:与其他的特征描述方法相比,HOG有较多优点

Hacker News 简讯 2021-01-31

懵懂的女人 提交于 2021-01-31 00:58:25
最后更新时间: 2021-01-31 00:00 Offline Algorithms in Low-Frequency Trading - (acm.org) 低频交易中的离线算法 得分:121 | 评论:20 Dark Patterns at Scale: Findings from a Crawl of 11K Shopping Websites (2019) - (princeton.edu) 规模上的黑暗模式:对11K个购物网站的调查结果(2019) 得分:95 | 评论:18 Uniwidth Typefaces for Interface Design - (uxdesign.cc) 界面设计用单幅字体 得分:68 | 评论:10 Show HN: Collection of deep learning implementations with side-by-side notes - (labml.ai) Show HN:带并排注释的深度学习实施集合 得分:127 | 评论:12 New Xquartz release with native Apple Silicon support - (mail-archive.com) 新的Xquartz版本,支持原生Apple硅 得分:129 | 评论:14 Fast Commits for Ext4 - (lwn.net

使用递归生成el-menu子菜单报错“Maximum call stack size exceeded”处理

落花浮王杯 提交于 2021-01-29 22:55:48
element-ui使用el-menu垂直菜单导航栏折叠后hover鼠标经过时会报“Maximum call stack size exceeded”错误的解决方案 侧边导航栏收起时,鼠标经过会报错 “Maximum call stack size exceeded” ,让我感到十分的疑惑,看了网上很多资料,包括升级了element-ui版本和热更新冲突等都没得到解决。 这种情况只有在有二级菜单的情况下,鼠标移动会循环报错,而一级菜单经过时则不会,接下来让我来给大家避避坑吧! 困扰了我两天终于得到啦解决,不过这种方法收搜的时候有一点点卡顿,收缩动画跟文字不同步,要是有更好的办法可以提出来呀~ 尝试办法一:新建一个新分支,把element ui @2.13.0版本升级为@2.13.2,然后在<el-submenu>加:popper-append-to-body="true"; 尝试后发现还是会报错 。 尝试方法二: 在<el-submenu>最外层加个<div>包住整个子组件!结果成功啦! !让我们一起往下看吧~ 页面上结构:把<el-submenu>封装成了子组件,左边是父组件,右边是子组件。 此时还没结束,此时收缩后,报错是已经没有了,但是收缩的文字还在!需要继续用CSS处理一下。 处理方法就是在 子组件(抓重点!也就是放置<el-submenu>的页面,放在父组件是实现不了的)

总结:机器学习中的基本数学知识

℡╲_俬逩灬. 提交于 2021-01-29 17:46:20
注:本文的代码是使用Python 3写的。 机器学习中的基本数学知识 线性代数(linear algebra) 第一公式 矩阵的操作 换位(transpose) 矩阵乘法 矩阵的各种乘积 内积 外积 元素积(element-wise product/point-wise product/Hadamard product 加 低等数学 几何 范数(norm) 拉格朗日乘子法和KKT条件 微分(differential) 表示形式 法则 常见导数公式 统计学/概率论 信息论 香农熵(Shannon Entropy) 博弈论 不知道放到哪儿 机器学习 激活函数 损失函数 附录 希腊字母的含义和发音 数学符号的含义和发音 参照 线性代数(linear algebra) 第一公式 f(x)=xwT+b 这是在机器学习中,最常见的公式。我把这个称为机器学习的第一公式,实际上就是线性分类函数(linear classifier)。 训练分类器的目标就是求出 ( w , b ) (w,b) 。 其中: x x 是一个一行矩阵 [ [ x 1 , x 2 , . . . , x n ] ] [[x1,x2,...,xn]] 。 w w 是一个一行矩阵 [ [ w 1 , w 2 , . . . , w n ] ] [[w1,w2,...,wn]] 。 x x 和 w w 的维度相同。 b b

How to pick a random element in a 2 dimensional array

空扰寡人 提交于 2021-01-29 15:42:16
问题 Ok I want to pick a random point in the 2d array so it can be filled. Ive seen how to do this for a 1d array, and am wondering how this would be possible in a 2d array. All I have seen about this method is that the same position comes up again, which is a slight problem, but I don't know how to do it in the first place. The 2d array is essentially a grid, with the dimensions being the x and y coordinates. And the random element selecting a point within the boundaries (which is user selected