自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 记录一点捞程序员简历的感想

谈一谈程序员的职业连续性我是如何筛选简历的职业连贯性非常重要请注意简附件历中的那些细节我是如何筛选简历的说明:我本人在公司只是一名普通的研发工程师,本职工作做得不错,不担大任,无权决策。       出于好奇心和内推奖励的驱动,昨天晚上,我在Boss直聘上注册了boss账号,随即发布了公司目前正在招聘的部分岗位,包括软...

2020-04-06 22:35:35 1265

原创 牛顿迭代公式

问题背景给定任意一个数x,求其平方根z,平方误差小于0.001。这个问题直观的去想,我们一般会采取设定一个初始值,然后通过迭代逐渐逼近平方根,但是初始值怎样去迭代才能更快”逼近“成为关键问题,牛顿迭代公式从数学角度给这类问题提供了理论支撑。牛顿迭代公式对于牛顿公式的理论,我们引用百度百科的说明代码实现理解了牛顿迭代公式,其实结论就是,这个也是迭代“逼近”的算法。对于我们...

2020-03-12 19:55:05 8732

原创 Linux | 内核 | Memory OverCommit

Memory OverCommit介绍首先,区分一下内存的申请和分配两个概念,申请内存只是内核给应用程序承诺的内存空间,并没有实际分配内存,实际内存页分配发生在内存使用的瞬间,而不是申请的瞬间。比如,调用malloc函数仅仅是向内核申请了固定大小的空间,而只有应用程序实际使用该内存块时,比如调用memset函数做初始化,内核才会真正分配物理内存给应用程序。很多应用程序(比如数据库)习惯于一...

2019-07-16 12:31:41 1124

原创 数据库系统笔记 | 故障恢复

声明:本文配图和样本数据均来自《数据库系统概念》官网,再次对原作者表示感谢。1 概述1.1 数据库是如何访问数据的?数据库系统常驻于非易失性存储器(主要是磁盘),在任何时间都只有部分内容在主存中。数据库分成称为块(block)的定长存储单位。块是磁盘数据传送的单位,可能包含多个数据项。事务由磁盘向主存输入信息,然后再将信息输出回磁盘。输入和输出操作都以块为单位。位于磁盘上的块为物理块,...

2019-06-02 21:35:09 1450

原创 Linux | 内核 | 内核模块(LKM)基础

LKM(Linux kernel module)作为Linux内核的插件,其安装和卸载都很方便(热插拔),可以满足一些需要特殊内核操作而不想重新编译整个内核的场景,在存储和安全厂商的产品中,LKM使用非常广泛。Demo1下面以一个非常简单的内核模块来了解LKM的使用编写.c文件/* hello-5.c */#include <linux/module.h>...

2019-04-21 18:29:41 3921

转载 GRUB2配置

原文:https://blog.csdn.net/duanlove/article/details/8066570介绍GRUB 2 通过运行/etc/grub.d/folder目录下的脚本来 建立配置文件 (grub.cfg) ,并且/etc/default/grub这个文件也可以配置。update-grub命令(手动运行,或更新内核的时候会被执行)可以自动更新grub.cfg ...

2019-03-01 14:52:45 3003 2

原创 关于Perl使用system执行外部命令的返回值

问题及处理最近做一个升级相关的任务,需要在Perl脚本中调用Python脚本,由于Perl脚本中的老代码都是使用的system()函数来调用Python脚本,我就直接仿写了,在Python中用sys.exit(n)退出。当Python返回5时,结果Perl拿到的却是1280,Perl函数调用如下:sub deploy_cert { my $appMode = getAppMod...

2019-01-25 21:14:55 3652

原创 数据库系统笔记 | 索引

声明:本文配图和样本数据均来自《数据库系统概念》官网,再次对原作者表示感谢。概述数据库的记录按照一定的组织顺序保存在文件中,插入、删除和更新操作都一般都需要先做查询,在文件中找到"合适的位置",再做插入、删除和更新。因此,对数据库文件最频繁的操作便是查询,当数据库的记录很多的时候,从文件中查询想要的记录便会很慢,瓶颈就在于磁盘I/O的速度太慢。磁盘中的文件是由大量的块组成的,文件系统的...

2019-01-20 23:02:36 5257

原创 Linux | 文件系统 | Ext2fs

有关于Linux文件系统的发展历史可以参考http://e2fsprogs.sourceforge.net/ext2intro.html虚拟文件系统VFSLinux支持多种不同类型的文件系统:网络文件系统NFS,磁盘文件系统Extfs,特殊文件系统proc、tmpfs等。为了更方便的在系统中集成多个不同的文件系统,Linux实现了一层叫做Virtual File System的layer...

2019-01-07 18:18:57 2241

原创 对称加密和非对称加密

如果网络中的两台计算机进行通信,通信安全是非常重要的问题,主要包含两个方面:保证对方是想要通信的计算机,而不是“冒充者”。 保证通信过程中的数据不会被”第三者“窃听得到。为了解决这两个问题,衍生出了很多网络通信安全相关的技术。对于第一个问题比较常用的手段就是通过第三方权威机构签发的数字证书来验证对方的身份,对于第二个问题最常用的手段就是对通信过程中的数据进行加密传输。对数据加密传输...

2018-12-22 21:24:42 442

原创 Golang | Channel基础

go在语言层面支持并发编程,也就是goroutine,可以看做一种轻量级的线程。程序启动时,其主函数即在一个单独的goruntine中运行,叫做main goruntine,在程序中通过关键字go跟上函数(支持匿名函数)就可以启动一个新的goroutine,可以叫做sub goruntine。在基于多线程设计的并发编程模型中,线程间的通信往往通过共享数据来实现,而保证共享数据的一致性非常关键。...

2018-12-22 15:24:39 16842

原创 数据库系统笔记 | 关系设计三大范式

第一范式(1NF)定义:数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。如果实体中的某个属性有多个值时,必须拆分为不同的属性。说明:E-R模型允许实体集和联系集具有某些程度的子结构,比如多值属性(一个教师有多个电话号码)、组合属性(包含多个子属性,比如地址包含城市和街道等)。我们在将E-R模型转换成表时,对于这些子结构的一般处理规则是:多值属性用多个元组来...

2018-12-15 17:56:00 302

原创 Docker学习笔记(八)Storage driver

Storage driverDocker使用storage driver(存储驱动程序)来管理image和container的数据,不管是image的只读layer还是container的可写layer都基于这些storage driver的特点来设计实现。目前支持的storage driver有aufs、OverlayFS和Brtfs等。在满足版本约束的条件下,我们可以修改配置来使docke...

2018-12-14 15:17:03 1253

原创 AVL平衡树插入删除结点过程平衡操作图示

AVL插入结点通过这张图来描述AVL平衡树在插入新结点过程中,通过旋转操作来达到自平衡的四种场景:LL单旋转:新结点插入在A的左孩子(L)的左子树(L),这种场景在插入新结点后,同一路径上的A和B的平衡因子符号相同(2,1),只需要一次右旋操作即可重新达到平衡。 LR双旋转:新结点插入在A的左孩子(L)的右子树(R),这种场景在插入新结点后,同一路径上的A和B的平衡因子符号不同(2,-1...

2018-12-09 12:11:56 1152

原创 RAID学习笔记

RAID基础技术RAID(Redundant Array of Independent Disks),独立磁盘冗余阵列,从名字可以看出这项技术的主要目标在于通过数据冗余来解决硬盘的单点故障问题,随着多年的技术演进,主要由Stripping(条带化)、Mirroring(镜像)和Parity(数据校验)这3种技术的一种或者多种来组成不同的RAID方案(RAID Level),满足在数据冗余、数据...

2018-12-01 17:54:23 831

原创 Linux | LVM | 对比三种逻辑卷(Logic Volume)

概述为了满足在性能和冗余等方面的需求,LVM支持了下面三种Logic Volume:Linear Logic Volume --线性逻辑卷 Striped Logic Volume --条带化逻辑卷 Mirror Logic Volume --镜像逻辑卷Linear Logic Volume我们用lvcreate命令默认创建出来的就是线性逻辑卷,线性逻辑卷使用的PE可以来...

2018-11-28 17:37:10 3217

原创 Linux | LVM | 基础概念

基础LVM,Logical Volume Management,是Linux的一项存储设备管理技术,它将物理磁盘或者分区标识成物理卷(Physics Volume),然后统一放到一个存储资源池或者卷组(Volume Group)中,然后从资源池中划分出一个个逻辑卷(Logic Volume)提供给应用使用,由于逻辑卷的使用非常灵活,可以将多个小的disk合并成一个大的逻辑卷给操作系统使用,可...

2018-11-26 14:31:57 657

原创 数据库系统笔记 | 函数、存储过程、游标

Table of Contents函数自定义函数基本语法控制语句存储过程基本用法自定义函数和存储过程的区别游标函数函数的意义就在于完成特定的功能,写一份函数,可以在多个语句中多次使用,简化编程工作。数据库系统中的函数大致也可以分为内置函数和自定义函数(UDF),内置函数比如count,sum等等,自定义函数比较灵活。本文demo所用的数据库版本...

2018-11-25 12:13:29 1062

原创 Docker学习笔记(七)Stacks

     Stack其实就是相互关联的一组service,一般地,应用的所有service就放在一个stack里,通过.yml文件就可以一键完成应用部署,当然更复杂的应用可能会service拆分到多个stack中。在前面的笔记中。我们部署了单个service的stack,这节的demo在这个stack里部署更多的service。Note本文demo参考docker官方文档,有条件的朋友建议...

2018-10-17 19:59:48 618

原创 Docker学习笔记(六)Swarms

       Swarm就是一组docker宿主机组成的cluster,它有个管理节点叫作swarm manager,这个swarm里的docker命令都在这个swarm manager上执行,其他的节点都叫作worker。一个docker宿主机通过运行docker swarm init命令将自己设定为swarm manager,而其他的宿主机通过运行docker swarm join命令并指定s...

2018-10-15 21:05:22 373

原创 Golang | Array和Slice

目录ReferenceArraySliceslice的创建Slice常用操作resliceappend函数copy函数range遍历Referencehttps://blog.golang.org/go-slices-usage-and-internalsArray数组是值类型,赋值和传参会复制整个数组,而不是指针。 数组⻓长度必须是常量...

2018-10-04 18:09:11 1054 2

原创 Perl正则表达式

目录匹配操作符demo模式匹配修饰符正则表达式变量替换操作符demo替换操作修饰符转化操作符demo转化操作修饰符更多表达式规则             正则表达式描述了字符串匹配、转化和子串替换等行为的规则,脚本语言一般都对正则表达式提供很好的支持,使用非常方便。          Perl的正则表达式主要包括下面3种形式:匹配:m//...

2018-08-26 19:12:06 550

原创 Perl文件目录操作

目录 文件操作open函数close函数读写文件文件重命名demo删除文件 目录操作functiondemo文件操作Perl文件操作比较好理解,将文件open后得到一个handle,通过这个handle对文件进行操作,和Linux相关系统接口非常类似,这个handle可以理解为Linux接口里的文件描述符。支持3种标准HANDLE:STDIN...

2018-08-22 23:10:36 1230

原创 Perl格式化输出

格式化输出是Perl一大特点,毕竟擅长于文本数据处理。format模板Perl支持用format关键字来定义格式化输出的模板,然后使用write按指定模板输出数据。基本语法如下:format FORMATNAME =fieldlinevalue1, value2, value3fieldlinevalue1, value2, value3.=podFORMATNAME...

2018-08-19 00:26:56 1908

原创 Perl引用

 目录创建引用解引用Demo匿名对象引用的引用          引用在C++这门语言用的非常多,很多场景下可以替代指针的作用。Perl也支持引用,属于一种标量类型,可以指向标量、数组、哈希和子程序等,可以看做就是指向其他对象的指针,我们可以通过引用来访问和修改它所指向的对象。创建引用       Perl引用也用$来做声明,等号右边的对象前面加上\就可以。...

2018-08-18 20:00:08 1051

原创 Perl函数

        Perl函数也叫子程序,用sub关键字定义,没有显示的参数列表,用‘@_’可以获取实参列表,用return返回value。具体用法在后面的demo中体现。关于变量作用域         Perl中的变量默认是全局的,如果需要限制变量的作用域,比如定义子程序的私有变量,就用关键字my做声明。         local关键字可以为全局变量做临时声明,对其修改访问都只针对临...

2018-08-14 21:11:01 2434

原创 Perl控制语句

条件语句        Perl的if语句和C++的if语句几乎一样,但是Perl支持一种比较特殊的unless条件语句,和if语句的逻辑处理正好相反,if是如果条件满足就执行body,unless是条件buma不满足就执行body。unless语句后面也可以跟可选的else语句,也可以后跟elsif再加一个else语句。        此外,Perl也支持C++风格的三目运算符:Exp1...

2018-08-12 23:29:02 923

原创 Perl数据类型

目录 标量特殊字符数组qw//运算符数组序列号数组大小数组操作函数数组切割数组合并从列表选择元素哈希变量检测元素是否存在获取哈希大小添加/删除元素变量上下文在Perl中,主要有3种基本的数据类型:标量、数组、哈希。标量标量以$开始,具体的变量类型可以是整数、浮点数、字符和字符串等。$name = "hunk"; ...

2018-08-12 15:38:12 1363

原创 初识Perl

目录初识Perl良好的Perl开发习惯使用内建警告信息使用帮助文档Perl编程风格       公司项目代码里有大量的Perl和Python代码,对于我这个一直搞C++的人,得赶紧弥补一下这方面语言基础了。虽然说编程语言有很多共通点,但是不同语言还是有一些独特的语法,编程风格和编程习惯也不太一样,系统学习一遍是必须的。Python略有基础,那就先从Perl开始吧。初识P...

2018-08-12 14:27:10 367

原创 Hunk的北漂生活

8月1号,从成都来到北京,和往常出远门一样,走的很匆忙,前一天晚上凌晨12点还在搬东西,甚至在成都租的房子都没来得及把钥匙交还给房东。我以为我这个菜鸟不会有人揪着不放,应该可以痛痛快快的走,结果不如我所料,办理离职证明遇到了一些麻烦,拖了几天时间,走之前也没拿到。 7月底折腾了几天,好像有办不完的事,扔不完的东西,不少还是毕业时不舍得,从太原寄回成都保存到现在,这...

2018-08-06 21:34:53 4154 2

原创 Docker学习笔记(五)Docker的数据管理

Docker容器管理数据主要有数据卷和数据容器两种方式1 数据卷数据卷是一个可供容器使用的特殊目录,它绕过文件系统,具有以下特点:(1)数据卷可以在容器之间共享和重用(2)对数据卷的修改实时生效(3)对数据卷的更新,不会影响到image(4)卷会一直存在,直到没有容器使用(挂载)1.1 在容器内创建数据卷通过run命令从image创建并运行一个container实例

2016-11-08 22:56:55 854

原创 Docker学习笔记(四)Service

       最简单的情况下,我们的应用运行在一个container中,能够提供的服务和性能非常有限。在实际项目中,应用大多是一般由大量的service组成,比如鉴权、告警等等。当然,每个service也可以有多个instance,来达到高性能和高可用性的目的。       在docker中部署应用时,每个service有自己的image,并且一个service可以启动多个container,...

2016-11-08 00:09:29 796

原创 Docker学习笔记(三)Image & Container

Images &amp; layersDocker image是由一组上下有序的只读layer构建出来的,当用Dockerfile构建image时,Dockerfile中每个命令就代表着一个layer。每一个layer都只包含了相比于下一层的layer不同的内容,最后所有的layer堆叠起来就是一个新的image。以下面这个Dockerfile为例,它以Ubuntu15.04的image为...

2016-11-06 22:35:10 1189

原创 C++动态库和静态库的特点及编译使用

1 库的概念?库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库。2 动态库与静态库的概念?先回顾一下编译过程:2.1 静态库在链接阶段,链接器会将汇编生成的目标文件.o与引用到的静态库中的目标模块一起链接打包到可执行文件中,对应的链接方式称为静态链接。试想一下,静态库与汇编生成的目标文件(.o文件)一起链接为可执行文件,那么静态库必定跟.o文...

2016-11-05 23:32:06 4864 1

原创 Docker学习笔记(二)CentOS6.5部署Docker

一、升级内核“Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at minimum, which CentOS 7 runs.”根据Docker官网文档,Docker要求Linux内核至少必须是3.10,且只支持64位系统。

2016-08-28 21:18:27 1582

原创 Docker学习笔记(一)Introdution

1 什么是Docker?Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或者数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。Docker引擎的基础是Linux自带的容器(Linux Co...

2016-08-28 10:06:10 21411

空空如也

空空如也

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

TA关注的人

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