自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小爱玄策

只有流过血的手指,才能弹出世间的绝唱。

  • 博客(58)
  • 收藏
  • 关注

原创 c++单例模式的介绍与实现

单例模式是基本的设计模式之一,它属于创建型模式,提供一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。在程序设计上须保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。......

2022-07-06 20:37:03 541 1

原创 大数据生态体系产品(3) - HBase的架构与高性能存储

Google发表GFS、MapReduce、BigTable三篇论文,号称“三驾马车”,开启了大数据的时代。本文介绍BigTable对应的NoSQL系统HBase,对大规模海量数据的处理。

2022-05-26 18:09:31 471

原创 大数据生态体系产品(2) - Spark的架构与原理

Spark在2012年左右开始流行,那时内存的容量提升和成本降低已经比MapReduce出现的十年前强了一个数量级,Spark优先使用内存的条件已经成熟;其次,使用大数据进行机器学习的需求越来越强烈,不再是早先年那种数据分析的简单计算需求。而机器学习的算法大多需要很多轮迭代,Spark的stage划分相比Map和Reduce的简单划分,有更加友好的编程体验和更高效的执行效率。

2022-05-23 19:47:31 526

原创 大数据生态体系产品(1) - Hive的架构与执行过程

用 MapReduce 实现 SQL 数据分析,对 Hive 进行基础介绍。

2022-05-22 17:18:14 245

原创 Hadoop大数据原理(4) - 资源调度框架Yarn

主要介绍Yarn的诞生架构和工作流程。

2022-05-16 22:26:22 307

原创 Hadoop大数据原理(3) - 分布式计算框架MapReduce

Hadoop出现前就已经有了分布式计算,那个时候的分布式计算是专用的系统,只能专门处理某一类计算,比如进行大规模数据的排序。这样的系统无法复用到其他的大数据计算场景,每种应用都需要开发与维护专门的系统,通用性不够。直到Hadoop MapReduce的出现,使得大数据计算通用编程成为可能。我们只要遵循MapReduce编程模型,只需投入经历编写业务处理的逻辑代码,就可以运行在Hadoop分布式集群上,无需关心分布式计算是如何完成的。

2022-05-12 22:42:35 753

原创 Hadoop大数据原理(2) - 分布式文件系统HDFS

在计算机领域,提高算力和数据存储能力有2种思路,一种是升级计算机,也就是我们说的垂直伸缩,包括升级CPU、内存、磁盘等将1台计算机变得更强大,另外一种就是用分布式文件系统,称为水平伸缩,添加更多的计算机到系统中来提高算力。,互联网公司现在都水平伸缩的道路,这就是近十年引导技术潮流的分布式与大数据技术。实际上,将RADI的思想原理应用到分布式集群中,就形成了Hadoop分布式文件系统HDFS的架构思想。

2022-05-12 18:12:03 480

原创 Hadoop大数据原理(1) - 架构演进

两台计算机要想合作构成一个系统,必须重新进行架构设计。就是现在互联网企业广泛使用的:负载均衡、分布式缓存、分布式数据库、分布式服务等各种分布式系统。当这些分布式技术满足互联网的日常业务需求时,对离线数据和存量数据的处理就被提了出来,当时这些分布式技术并不能满足要求,于是大数据技术就出现了。大数据技术更为关注数据,所以相关的架构设计也围绕数据展开,如何存储、计算、传输大规模的数据是要考虑的核心要素。

2022-05-11 22:05:29 972 1

原创 大数据技术发展简史

学习大数据技术,应该去了解它发展的来龙去脉,为何会有新技术的出现,相比老的技术有什么样的进步。事物发展有自己的潮流和规律,当你身处潮流之中的时候,要紧紧抓住潮流的机会,想办法脱颖而出,即使没有成功,也会更加洞悉时代的脉搏,收获珍贵的知识和经验。

2022-05-04 22:06:18 3413

原创 大数据基础(5) - Raft协议

Raft一致性协议的主要目标有2个,1是可理解性,2是系统的可实现性。Raft对于每个技术细节都有清晰的界定和描述,这也便于更加明确的进行系统的实现。

2022-04-19 18:19:29 442

原创 大数据基础(4) - Paxos协议

Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。Google Chubby的作者Mike Burrows说过:“所有一致性协议本质上要么是Paxos,要么是其变体”。

2022-04-14 18:06:05 1025

原创 大数据基础(3) - 常见的一致性协议

主要介绍分布式系统中常见的一些一致性协议,了解这些协议对于理解分布式系统的设计思路有很大的帮助。

2022-04-06 10:12:19 1125 1

原创 大数据基础(2) - 复制数据与一致性

本节介绍数据复制带来的一致性问题和解决方案。先介绍集成理论模型:CAP、ACID、BASE,再介绍几种典型的副本数据更新策略。

2022-03-31 20:11:07 478

原创 RabbitMQ快速入门 - 基本概念介绍

介绍RabbitMQ的基本概念,包括:协议,Connection,Channel,Queue,Exchange等。

2022-03-30 18:21:53 284

原创 大数据基础理论(1) - 数据分片与路由

目前主流的大数据存储与计算系统通常采用的是横向扩展方式来支持系统的可扩展性,对于待存储处理的海量数据,需要通过数据分片来将数据进行切分到并分配到机器中,数据分片后,需要通过数据路由找到存储的对应位置。

2022-03-11 18:25:34 1104

原创 智能客服搭建(5) - FreeSWITCH + mod_unimrcp + ESL 开发对接

介绍FreeSWITCH对接unimrcp模块,通过Event Socket获取识别结果进行调度的技术研究。

2022-02-18 20:06:17 5309 2

原创 人脸识别实践(2) - 人脸识别系统展示

对人脸识别系统的注册、更新、删除、人脸识别、人脸库查询及工程化需要考虑的基本问题进行介绍。

2022-01-16 21:17:11 2743

原创 人脸识别实践(1) - 基本原理与设计思路

基于Dlib的人脸识别,基本原理介绍和平台设计思路。

2021-12-26 18:06:48 4280 1

原创 使用valgrind工具检查内存泄漏

讲解Linux下使用valgrind工具对c/c++程序进行内存泄漏检测的方法。

2021-12-24 16:47:12 1216 2

原创 智能客服搭建(4) - 语音流的分贝计算

介绍语音流分贝评估的概念与代码实践。

2021-12-22 19:39:39 2345

原创 Linux基本操作-文件拷贝cp/scp

写在前面  详细介绍在Linux操作系统下,同设备/跨设备的文件拷贝操作方法。1. 同设备文件拷贝cp1.1 常用命令示例## 文件拷贝$ cp resources/simbert.pb /data/simbert.pb## 文件夹拷贝$ cp -r resources/ /data/1.2 参数详解简易写法cp [可选参数] [源文件] [目标文件]参数说明-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;-d:如果源文件为软链接(对硬链接无效),

2021-12-19 21:47:16 193

原创 Linux下Jupyter开机启动设置

由于平时经常使用Jupyter,于是在Linux上设置了开机启动,网上找了些常用的方法,此贴记录了3种方法的操作过程。

2021-12-19 21:02:04 3448 3

原创 程序员的成长之路

1. 初识编程  清楚的记得2008年上大学,当时学的第一门编程语言是汇编语言,第一堂课上,老师就说这个学科的挂科率是最高的,大家做好心理准备,后来证明,这并不是下马威,因为真的有很多同学挂在了汇编上面。  由于觉得汇编的交互性不好,所以后来学习 visual c++ 课程的时候,异常喜欢,虽然也选修了java编程,但是只介绍了简单的语法,现在只记得那个老师年轻帅气了,哈哈哈哈。因为觉得 c++ 的指针、链表都蛮有意思的,就在课余时间对 c++ 侧重进行了学习和了解,当时 c++ 的书是学院编写的,后来

2021-11-21 19:18:18 1538

原创 CentOS下安装nvidia+cuda+cudnn

文章目录1. 安装NVIDIA驱动1.1 查询显卡驱动版本1.2 驱动下载1.3 屏蔽系统自带的nouveau1.4 重建initramfs image步骤1.5 驱动安装1.6 驱动验证2. 安装CUDA2.1 驱动下载2.2 驱动安装2.3 环境变量配置2.4 驱动验证2.5 CUDA测试3. 安装cuDNN1. 安装NVIDIA驱动1.1 查询显卡驱动版本  安装基本命令,进行显卡信息查询。yum install -y lshwlshw -numeric -C display  显卡结果

2021-10-06 23:31:00 982

原创 python sqlalchemy操作mysql密码包含@特殊字符报错的解决方案

文章目录遇到的问题解决方案知识扩展遇到的问题  使用python3.x的sqlalchemy操作数据库,在windows环境运行正常,部署到linux服务器上以后,出现无法运行的情况,而且问题必现。报错内容如下:python3 db_test.py mysql+pymysql://root:xxxx@163@127.0.0.1:3306/robot?charset=utf8查询失败 (pymysql.err.OperationalError) (2003, "Can't connect to

2021-09-21 22:28:38 14408 7

原创 一篇文章教会你dockerfile的编写和使用

文章目录1. 写在前面2. 概念3. 实际操作3.1 FROM指令3.2 RUN指令3.3 构建镜像4. 常用指令详解4.1 COPY4.2 CMD4.3 ENV4.4 ARG4.5 EXPOSE4.6 WORKDIR5. 其他指令介绍5.1 ENTRYPOINT5.2 ADD5.3 VOLUME5.4 USER5.5 HEALTHCHECK5.6 ONBUILD5.7 LABEL1. 写在前面  本文主要针对后端开发人员,主要介绍如何编写我们需要的 Dockerfile,同时结合平时的使用经验,对Do

2021-08-28 21:55:19 566 2

原创 一篇文章带你了解docker的基本概念和常用命令

文章目录1. 写在前面2. 整体概念2.1 基本介绍2.2 应用场景2.3 优点2.4 架构3. Docker使用流程3.1 基本流程3.2 重新部署流程4. 镜像操作4.1 镜像列表4.2 查找镜像4.3 拉取镜像4.4 构建镜像4.5 更新镜像4.6 删除镜像5. 容器操作5.1 查看容器列表5.2 启动容器5.3 停止容器5.4 启动已停止运行的容器5.5 重启容器5.6 进入容器5.7 导出和导入容器5.8 删除容器6. 其他常用命令6.1 获取容器的日志6.2 查看容器硬盘占用1. 写在前面 

2021-08-27 15:51:29 288

原创 git 基本命令和分支管理

文章目录1. 写在前面2. git 基本使用流程和命令2.1 git 基本使用流程2.2 git 基本命令账号查看/设置相关代码拉取查看仓库状态查看代码/文件和远端和区别将代码提交到暂存区将代码提交到本地版本仓库将代码推送到远端版本仓库2.3 git 其他命令git pullgit rmgit mv3. git 分支管理流程与命令3.1 分支管理流程3.2 分支相关命令拉取指定分支创建并切换到新分支切换指定分支提交代码到指定的分支合并分支1. 写在前面  本文主要介绍git基本命令和浅显的分支相关内容,

2021-08-18 19:58:57 209

原创 智能客服搭建(3) - MRCP Server 与 FreeSWITCH 对接

文章目录1. 写在前面2. MRCP Server 配置与测试2.1 MRCP Server 配置2.2 MRCP Server 测试3. FreeSwitch 配置3.1. 配置 mrcp profile3.2. 配置 mrcp conf3.3. 配置拨号任务4. 效果测试1. 写在前面  上一篇文章中,对MRCP Server的开发进行了介绍,下面讲解如何通过配置让FreeSWITCH能够与MRCP Server进行对接,获得电话呼叫的语音识别结果。2. MRCP Server 配置与测试2.1

2021-07-31 20:33:28 4646 4

原创 智能客服搭建(2) - MRCP Server ASR插件开发

文章目录1. 编码前准备1.1 新建plugin1.2 修改configure.ac1.3 新增源代码及目录2. 代码编写2.1 语音引擎类封装2.2 MRCP Server 框架代码编写2.2.1 引用头文件2.2.2 新增类的变量2.2.3 框架核心函数介绍mrcp_plugin_createshenghan_recog_engine_destroyshenghan_recog_engine_channel_createshenghan_recog_channel_destroyshenghan_rec

2021-07-31 20:28:38 3741 15

原创 linux下gdb调试coredump文件的方法

1. 写在前面  最近部分模块使用了c/c++进行开发,由于目前在测试环境出现偶发性的core dump的情况,在问题的跟进过程中用到了部分方法,本文着重介绍core文件生成配置于gdb对其调试的一些方法。2. core dump 介绍(1) 概念  当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为叫core dump。  我们一般认为core dump就是内存快照,实际上除了内存信息之外,还有些关键的程序运行状态也会同时dump下来,例如寄存器

2021-07-04 17:27:37 1624

原创 使用vs编译无dll依赖的c++程序

文章目录一、问题详情二、解决方案三、原理1. 基本概念(MT、MTd、MD、MDd)2. 静态库/动态库3. 注意事项一、问题详情  使用 visual studio 完成 C++ 的代码编写后,编译成可执行程序,会遇到编译后,在其他设备上报缺乏dll错误导致程序无法运行的情况,下面先介绍解决方法,再对其原理进行简单描述。二、解决方案  项目 -> 属性 -> 配置属性 -> C/C+±代码生成 -> 运行库 -> 多线程 (/MT)  截图如下:三、原理1.

2021-04-19 23:50:48 1956

原创 浅谈语音技术(ASR/TTS/质检/声纹)

文章目录1. 写在前面2. 语音合成 TTS(1) 基本概念(2) 效果评估方法(3) 音色与定制(4) 发音规则3. 语音识别 ASR(1) 基本概念(2) ASR效果影响因素口音噪音专业术语VAD(3) 效果评估方法(4) ASR效果提升方案声学模型(AM)语言模型(LM)4. 语音质检(1) 基本概念(2) 质检效果(3) 质检方法语音关键词检索语音分析情感识别5. 声纹识别(1) 基本概念(2) 优缺点优点缺点(3) 分类(4) 评估指标等错误率 EER响应时间1. 写在前面  由于工作和爱好原

2021-03-29 18:21:12 5750

原创 浅谈Go语言(7) - 接口与指针

文章目录1. 写在前面2. 接口类型的使用(1) 定义(2) 实现(3) 使用基本示例iface(4) 扩展知识接口变量值nil接口间的组合3. 指针(1) 基本概念(2) 定义与使用(3) 使用指针修改值(4) 指针类型转换1. 写在前面  本节主要介绍接口和指针的基本概念与实现,到这个章节 Go 语言的数据类型介绍就全部完成了,本文是在2021年的春节期间写的,对作者来说还挺有意义,希望在2021年里大家都有个好的的开始。2. 接口类型的使用(1) 定义  在Go语言中,谈到接口是指接口类型,

2021-02-21 21:06:27 1542

原创 浅谈Go语言(6) - 函数与结构体

文章目录1. 写在前面2. 函数的使用(1) 函数签名(2) 高阶函数函数作为参数传入函数作为结果返回闭包传入函数的参数值情况3. 结构体(1) 定义(2) 嵌入字段(3) 值方法和指针方法1. 写在前面  本章节我们介绍 Go 语言的模块化编程,包括几个重要的数据类型以及一些模块化编程的技巧。2. 函数的使用  在 Go 语言中,函数是一等的(first-class)公民,函数类型也是一等的数据类型。这意味着函数不但可以用于封装代码、分割功能、解耦逻辑,还可以化身为普通的值,在其他函数间传递、赋予

2021-02-07 17:28:00 796

原创 智能客服搭建(1) - MRCP Server 搭建

文章目录1. 主要目的2. 配置编译UniMRCP Server(1) 源码下载(2) 编译环境准备(3) 编译安装(4) 测试运行1. 主要目的  市面上大部分已建的呼叫中心,关于语音对接这部分,默认支持MRCP协议,为了实现和其他呼叫系统的快速对接,实现支持MRCP协议的语音引擎的开发是很重要的,为了将三方ASR/TTS的能力像插件一样集成到MRCP Server中,我们先研究MRCP Server的搭建。  在此感谢以下2篇文章的作者,为这次研究提供了非常好的思路和方法。  https://g

2021-01-22 11:58:42 3208

原创 浅谈Go语言(5) - 通道的使用与进阶

文章目录1. 写在前面2. 通道的基础知识(1) 通道的定义(2) 通道的使用(3) 通道的基本特性发送/接收的互斥性元素值的处理不可分割发送/接收过程中会阻塞(4) 通道须注意的问题通道的初始化通道的关闭通道goroutine示例通道遍历获取3. 通道的高级用法(1) 单向通道只能发送的通道只能接收的通道(2) for遍历注意事项(3) select语句基本使用使用须知1. 写在前面  作为 Go 语言最有特色的数据类型,通道channel完全可以与 协程goroutine并驾齐驱,共同代表 Go 语

2021-01-02 21:31:49 614

原创 Linux下Anaconda的安装与配置

文章目录1. Anaconda的安装(1) 安装包下载(2) 安装配置安装Anaconda配置Anaconda修改镜像源(建议)使用Anaconda管理python环境(非必须)2. Jupyter配置(1) 默认路径配置(2) 远端访问配置1. Anaconda的安装(1) 安装包下载直接进Anaconda官网下载安装包也可以直接进入安装包下载页面anaconda与python版本的对应关系如下(针对性列举):Anaconda版本Python版本Anaconda2-5.3.

2020-12-16 19:39:46 1175

原创 浅谈Go语言(4) - map解读

文章目录1. 写在前面2. map的哈希实现(1) 映射(2) map的哈希查找(3) map的键类型深入解析1深入解析2(4) 哈希的原理思考优先考虑哪些类型作为字典的键类型?在值为`nil`的字典上执行读/写操作会成功吗?关于线程安全3. map的基本操作(1) map的创建(2) map的增删改查(3) map的遍历4. 线程安全(goroutine)(1) 读的时候,调用读锁(2) 写的时候,写锁(3) 读取顺序1. 写在前面  现在基本上所有的编程语言都有自带的map,或者dict,主要提供一

2020-06-08 18:49:16 638

原创 浅谈Go语言(3) - 数组、切片与链表

文章目录1. 写在前面2. 数组与切片(1) 数组(2) 切片相关性代码浅析append切片的一般操作copy(3) 切片与数组的比较3. container包中的标准容器(1) List双向链表内置函数链表的开箱即用(2) Ring环形链表内置函数Ring和List的区别4. 少许思考1. 写在前面对于拿着锤子的人来讲,全世界都是钉子。-- by 查理·芒格  任何数据结构,自身特点和...

2020-04-18 15:51:58 890

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除