ring

VMware/KVM/Docker原来是这么回事儿

谁说我不能喝 提交于 2020-08-18 03:30:23
云计算时代,计算资源如同小马哥当年所言,已经成为了互联网上的水和电。 虚拟主机、web服务器、数据库、对象存储等等各种服务我们都可以通过各种各样的云平台来完成。 而在云计算欣欣向荣的背后,有一个重要的功臣,那就是虚拟化技术。可以毫不客气的说,没有了虚拟化技术,云计算无从谈起。 说起虚拟化你会想到什么?从我们常用的虚拟机三件套VMware、VirtualPC、VirutalBox到如今大火的KVM和容器技术Docker? 这些技术是什么关系,背后的技术原理是怎样的,又有什么样的区别,各自应用的场景又是什么样的? 看完这篇文章,相信大家都能回答上面问题。 历史背景 什么是虚拟化技术? 维基百科中的解释是这样的: 虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。 对于一台计算机,我们可以简单的划分为三层:从下到上依次是物理硬件层,操作系统层、应用程序层 1974年,两位计算机科学家Gerald Popek 和 Robert Goldberg发表了一篇重要的论文《虚拟化第三代体系结构的正式要求》,在这篇论文中提出了虚拟化的三个基本条件: 等价性:程序在本地计算机执行和在虚拟机中执行应该表现出一样的结果(不包括执行时间的差异) 安全性:虚拟机彼此隔离,与宿主计算机隔离 性能

三个小白是如何在三个月内搭一个基于kaldi的嵌入式在线语音识别系统的

五迷三道 提交于 2020-08-16 08:23:52
前面的博客里说过最近几个月我从传统语音(语音通信)切到了智能语音(语音识别)。刚开始是学语音识别领域的基础知识,学了后把自己学到的写了PPT给组内同学做了presentation( 语音识别传统方法(GMM+HMM+NGRAM)概述 )。一段时间后老板就布置了具体任务:在我们公司自己的ARM芯片上基于kaldi搭建一个在线语音识别系统,三个人花三个月左右的时间完成。由于我们都是语音识别领域的小白,要求可以低些,就用传统的GMM-HMM来实现。说实话接到这个任务我们心里是有点没底的,不知道能不能按时完成,毕竟我们对语音识别不熟,对kaldi不熟。既然任务下达了,硬着头皮也要上,并尽最大努力完成。我本能的先在网上用百度/google搜了搜,看有没有一些经验可供参考,好让我们少走弯路。遗憾的是没搜到有价值的东西。没办法,我们只能根据自己以前的经验摸索着前进。最终我们按计划花了不到三个月的时间完成了嵌入式平台上在线语音识别系统的搭建。虽然只是demo,但是为后面真正做商用的产品打下了良好的基础,累积了不少的经验。今天我就把我们怎么做的分享出来,给也想做类似产品的朋友做个参考。 既然作为一个项目来做,就要有计划,分几个阶段完成这个项目。我在学习语音识别基础知识时对kaldi有一个简单的了解(在做语音识别前就已知kaldi的大名,没办法这几年人工智能(AI)太热了

ant design vue 环形图中间显示文字内容

China☆狼群 提交于 2020-08-16 03:32:02
在使用ant design vue 的ve-ring组件时要实现在中间显示文字的效果 效果图: 实现原理,显示环形图标题,并将标题位置设置到图形中间 实现方法: 1. 首先引入组件标题 import "echarts/lib/component/title"; 网上各种资料查很多都未提到这一步,重要的放前面!!!! 2. 设置title属性 const title = { show: true,//显示策略,默认值true,可选为:true(显示) | false(隐藏) text: '54',//主标题文本,'\n'指定换行 link: '',//主标题文本超链接,默认值true target: null,//指定窗口打开主标题超链接,支持'self' | 'blank',不指定等同为'blank'(新窗口) subtext: '2020-07-20',//副标题文本,'\n'指定换行 sublink: '',//副标题文本超链接 subtarget: null,//指定窗口打开副标题超链接,支持'self' | 'blank',不指定等同为'blank'(新窗口) x: 'center',//水平安放位置,默认为'left',可选为:'center' | 'left' | 'right' | {number}(x坐标,单位px) y: '30%',//垂直安放位置,默认为top

懂了!VMware/KVM/Docker原来是这么回事儿

你。 提交于 2020-08-16 01:29:35
云计算时代,计算资源如同小马哥当年所言,已经成为了互联网上的水和电。 虚拟主机、web服务器、数据库、对象存储等等各种服务我们都可以通过各种各样的云平台来完成。 而在云计算欣欣向荣的背后,有一个重要的功臣,那就是 虚拟化技术 。可以毫不客气的说,没有了虚拟化技术,云计算无从谈起。 说起虚拟化你会想到什么?从我们常用的虚拟机三件套VMware、VirtualPC、VirutalBox到如今大火的KVM和容器技术Docker? 这些技术是什么关系,背后的技术原理是怎样的,又有什么样的区别,各自应用的场景又是什么样的? 看完这篇文章,相信大家都能回答上面问题。 历史背景 什么是虚拟化技术? 维基百科中的解释是这样的: 虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。 对于一台计算机,我们可以简单的划分为三层:从下到上依次是物理硬件层,操作系统层、应用程序层 1974年,两位计算机科学家Gerald Popek 和 Robert Goldberg发表了一篇重要的论文 《虚拟化第三代体系结构的正式要求》 ,在这篇论文中提出了虚拟化的三个基本条件: 等价性 :程序在本地计算机执行和在虚拟机中执行应该表现出一样的结果(不包括执行时间的差异) 安全性 :虚拟机彼此隔离

华为S12700集群CSS和S6700堆叠iStack

流过昼夜 提交于 2020-08-14 11:41:32
华为S12700集群 为SwitchA和SwitchB分别安装集群卡并连接集群线缆 配置集群连接方式、集群ID和集群优先级 使能集群功能 SWA sys sys SwitchA set css mode css-card set css id 1 set css priority 100 SWB sys sys SwitchB set css mode css-card set css id 2 set css priority 10 SWA css enable SWB css enable 查看集群后的状态 display css status CSS Enable switch On Chassis Id CSS Enable CSS Status CSS Mode Priority Master Force 1 On Master CSS card 100 Off 2 On Standby CSS card 10 Off 华为S6700堆叠: 配置逻辑堆叠端口并加入物理成员端口 配置堆叠ID和堆叠优先级 配置SwitchB的堆叠ID为1 SWA sys sys SwitchA int stack-port 0/1 port int g 0/0/27 enable int stack-port 0/2 port int g 0/0/28 enable SWB sys sys

浅谈常见数据结构和算法的应用系列(一)

痴心易碎 提交于 2020-08-14 07:01:55
近来有小伙伴问我:刷leetcode真的有用吗,觉得收益很小,越刷越迷茫了… 诚然每个人刷题的目的不一样,233酱还不是为了能水几篇文章… 当然不止。我觉得刷题是一件有意思的事,就像小猫小狗咬自己尾巴,玩弄的不亦乐乎。比喻可能不太恰当,是有种沉迷小游戏的感觉。 可是在艰难打野的过程中,我们不要忘了,最重要的是: 了解每种技能包的特点,适合解决的问题和场景。在特定实战场景下能够使用特定的技能包,自创技能包。这才是武功的至高境界。 装X结束,浅谈开始。。 数据结构是指:一种数据组织、管理和存储的格式,它可以帮助我们实现对数据高效的访问和修改。 数据结构 = 数据元素 + 元素之间的结构。 如果说数据结构是造大楼的骨架,算法就是具体的造楼流程。流程不同,效率资源不同。我会两者结合简单探讨下他们的特点和应用。 常见的数据结构可分为: 线性结构、树形结构 和 图状结构 。 常见的算法有: 递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法 等。 本文从 线性数据结构、递归 和 排序算法 谈起。 线性结构 线性结构:是指数据排成像一条线一样的结构。每个元素结点最多对应一个前驱结点和一个后继结点。如数组, 链表,栈 ,队列等。 数组 数组是是由相同类型的元素(element)的集合所组成的数据结构,分配一块连续的内存来存储。利用 元素的下标位置

Halcon找圆系列(3)找金属表面的圆孔

隐身守侯 提交于 2020-08-10 21:05:19
我在Halcon学习网发了一个帖子: 请教工件的金属表面圆孔的识别与定位 http://www.ihalcon.com/read-15016-1.html 解决方案有了,源码如下: dev_update_off () dev_close_window () *读图像 read_image (Image, 'D:/pic/202006042055044969.jpg') *彩色转灰度图 count_channels (Image, Channels) if (Channels == 3) rgb1_to_gray (Image, Image) *真彩色转灰度图 elseif (Channels == 4) decompose4 (Image, ImageR, ImageG, ImageB, ImageA) compose3 (ImageR, ImageG, ImageB, MultiChannelImage) rgb1_to_gray (MultiChannelImage, Image) endif *获取图像宽高 get_image_size (Image, Width, Height) dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) set_display_font (WindowHandle, 16,

Linux高新能服务器编程笔记 -- Chapter1 TCP/IP协议栈

随声附和 提交于 2020-08-10 03:53:44
查看服务端口号 sudo cat /etc/services kali@kali:/etc$ sudo cat services # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, officially ports have two entries # even if the protocol doesn't support UDP operations. # # Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml . # # New ports will be added on request if they have been officially assigned # by IANA and used in the real-world or are needed by a debian package. # If you need a huge list of

你真的懂 synchronized 吗?

对着背影说爱祢 提交于 2020-08-10 02:08:33
synchronized 的三种使用方式 加在非 static 方法上 (锁的是 this 对象) 加在 static 方法 上 (锁的是 Class 对象) 代码块 (锁的是 括号 中的对象) 在实现同步的时候, 大多数开发人员直接使用 synchronized 关键字, 那你真的了解 synchronized 底层原理吗? 字节码层级 synchronized被编译成 class 文件, 翻译成字节码指令有两个重要的指令 : monitorenter monitorexit , 可以发现有两个 monitorexit , 一个是正常退出, 另一个是异常退出, 所以 synchronized 不会造成死锁 使用 idea 插件, 可以查看字节码指令 JVM层级 我们知道 synchronized 锁的是对象, 那么如何判断对象是否 “锁住” 呢? synchronized 使用的锁是存在对象的 对象头 之中 JVM 规范有这样一句话 : JVM 基于进入和退出 monitor 实现代码同步, 任何对象都有一个 monitor 与之关联, 当 monitor 被持有后, 它将处于锁定状态 操作系统层级 在 JDK1.6 之前, synchronized 是重量级锁, Java 进程是工作在用户态空间上的, 如果需要实现同步, 就必须使用内核的互斥锁, 那就需要 OS

SwiftUI:仿iWatch运动

梦想的初衷 提交于 2020-08-09 20:40:41
目的 创建自定义形状 为自定义形状添加渐变颜色 动画自定义形状 开始 启动一个新的Xcode项目: 开启Xcode 创建一个新的Xcode项目 选择单视图应用程序,然后单击下一步 为您的应用命名( RingGraph ),并确保用户界面是 Swift UI 最后,单击“完成” 将 ContentView 文件名和结构重命名为 RingGraph ,并确保在中将其引用重命名 SceneDelegate func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. // This delegate does not imply the connecting