- 博客(31)
- 收藏
- 关注
原创 容器 | 三天肝了两本书,先整一份 1.5w 字 + 20 张图的高级 Docker 入门来学习一下
1. 前言大家好,我是多选参数的程序锅,一个正在捣鼓操作系统、学数据结构和算法以及 Java 的失业人员。这是我肝了 3 天,参考了两本书和一些博客之后,整理的一份关于 Docker 的高级入门。为啥说是高级入门呢?因为它比入门要深,但是比深入又要浅。很早之前,我就接触过 Docker,但是没怎么用,也似懂非懂。偶尔看看一些推文,发现我还是不太懂 Docker 到底是个啥?镜像又是什么玩意?可能看的推文都不怎么较为深入的去讲镜像和容器是啥,都只是停留在镜像和容器整体上。对于我来说,不了解一下镜像和容器
2020-10-11 15:23:09 1254 1
原创 frp 开机自启动,解决了网络依赖问题。
这边开机自启动使用 systemctl。一开始的时候,按照网上的配置了之后,发现会报错 unreachable network,这是因为系统开机时并未准备好网络(也有可能依赖于其他东西)。所以下面我贴一下可行的方法,主要是在文件中加了 restart 选项。sudo vim /etc/systemd/system/frpc.service# 也可以在下面这个目录中添加vim /lib/systemd/system/frpc.service按如下修改[Unit]Description=frpc
2020-09-06 19:58:03 1513
原创 Java | Java 面向对象知识小抄
0. 前言下面是本篇的内容提纲:1. 类Java 中类的声明形式如下所示,变量的声明和方法的定义意味着只能声明变量、初始化、方法定义等,而不能在方法外进行赋值等操作。class 类名 { 变量的声明; 方法的定义;}Java 中的类名推荐使用大驼峰命名法,也就是首字母大写,然后每个单词都大写,比如 ChinaMade。1.1. 变量的声明1.1.1. 实例成员变量这种是实例成员变量的声明,声明的变量在类内都可以使用。可以声明的类型包括:整型、浮点型、字符型、逻辑类型
2020-06-01 21:12:56 455
原创 Java | Java 基础知识整理
0. 前言本篇算是 Java 的基础知识小抄吧,之所以说小抄是因为觉得涵盖不是很全很全,但是基本上都有,当然后头还会继续完善,只是不会再用笔记录了!按照现在的习惯,先附上一张思维导图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zh3taRF4-1591016612146)(https://img.dawnguo.cn/Java/Java%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.png)]1. 安装与环境配置Path 的设置
2020-06-01 21:04:50 279
原创 C 标准简述-K&R、ANSI、C90、C99
K&R CC 语言最初由 Dennis Rithie 于 1969 年到 1973 年在 AT&T 贝尔实验室开发出来的,主要用于重新实现 Unix 操作系统。此时 C 语言叫做 K&R C(K 是 Kernighan 的首字母,R 是 Rithie 的首字母)。K&R C 语言和后来标准化的 C 语言有很大的差异,比如如果函数的返回值为 int,则 int 可省,并且编译器不会有任何警告int my_function(){ }也可以写成my_functio
2020-05-14 15:16:39 1542
原创 Latex相关知识及其安装
1. 前言1.1. 排版引擎TeX - pdfTeX - XeTeX - LuaTeX都是排版引擎,按照先进程度递增,对于排版引擎就可以理解为一个程序,这个程序可以将一个用规定排版语法编写的文本文档转换输出成一个排版文件。下面就对各种Tex进行简单讲解:TeXTeX是Latex、PdfTex和XeLaTeX等的基础。Tex可以让一个普通的文本文档变成排版相当好看的文档。一个简单的TeX...
2019-12-28 20:08:25 614
原创 Thrift系列 | Thrift框架源码分析
1. Thrift框架理解对于Thrift框架的理解,我们使用官方提供的框架图来讲解一下client/server对于client来说,该层是比较简单的client的业务逻辑代码,而对于server来说,有提供的几种模式的server。Thrift的Protocol层对于RPC来说需要能正确的传输调用的信息已经返回的结果,那么protocol层则主要负责序列化和反序列化,该层主...
2019-10-02 15:54:36 744
原创 Thrift系列 | Thrift发送过程源码分析
这边梳理一下整个RPC通信以及数据包的过程(从看源代码角度出发的),首先是客户端调用ping这个函数,Test test;test.num1 = 1000;test.num2 = 1000;test.str = "000000";test.bs = "111111";client.ping(test);那么调用这个函数其实是分为两步的,一部是send_ping,另一部分是recv_...
2019-10-02 15:53:27 538
原创 Thrift系列 | RPC概念&&Thrift基础
1. RPC概念RPC(Remote Procedure Call),远程过程调用,是一个分布式系统间通信的技术。最核心要解决的问题是,如何调用执行另一个地址空间上的函数、方法,就感觉如同在本地调用一样。这个是什么意思的呢?假设有两台主机host A和host B,host B中有一个函数,比如add()函数,那么host A调用host B的add()的过程,就叫做RPC。那么针对RPC通...
2019-10-02 15:52:14 408 1
原创 微信公众号 | 适合程序员的公众号排版
正如微信公众号的口号所言「再小的个体,都有自己的品牌」,于是越来越多的人开始拥有自己的公众号,这几乎成为了不少人写作的标配。然而在写公众号推文的时候,不管是谁出于什么目的,最头疼还是公众号的排版问题。针对大部分程序员来说,推送的文章几乎都是技术博客一类,他们希望把更多的时间花在写作上,而不是排版上。我也抱着这个目的,在网上寻找了一下快速排版的方法,然后找到了一个方法:Markdown+ Md2Al...
2019-10-02 15:38:50 1541 1
原创 Hexo系列 | Hexo+next主题搭建炫酷的个人博客网站
在 Hexo 中有两份主要的配置文件,其名称都是 _config.yml。 其中,一份位于站点根目录下,主要包含 Hexo 本身的配置;另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。为了描述方便,在以下说明中,将前者称为 网站配置文件, 后者称为 主题配置文件。目录主要包括以下高级使用:更换主题更改头像设置Menu侧边栏社交信息设置摘要自动生成主页文章...
2019-10-02 15:36:24 3176
原创 Hexo系列 | Hexo的基本使用
1. 前言Hexo是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。即把用户的markdown文件,按照指定的主题解析成静态网页。2. 安装hexo安装使用hexo之前需要先安装Node.js和Git,当已经安装了Node.js和npm(npm是node.js的包管理工具),可以通过以下命令安装hexo$...
2019-10-02 15:34:56 877
原创 最爱Markdown | Markdown基本语法整理汇总
Markdown是一种纯文本格式的轻量级标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。这是一种14年前由作家和程序员John Gruber创建的文本编辑语言,Markdown的核心是Web发布所需的HTML代码的简写。当前许多网站都广泛使用Markdown来撰写帮助文档或者发布消息再或者发布博客,比如:Github、CSDN博客、简书、Hexo等。那么下面来简单介绍一下Mark...
2019-10-02 15:32:44 669
原创 机器学习系列 | 决策树从理论到Python实现,看完就会决策树
本片文章的整体框架如下所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7iwTwKui-1570000427925)(https://img.dawnguo.cn/MachineLearning/BasicAlgorithm/6_decision_tree.png)]1. 决策树是什么?决策树是一种基本的分类和回归的方法,是基于树结构来进行决策。这种决策方...
2019-10-02 15:14:30 493
原创 机器学习系列 | 朴素贝叶斯-文本界的扛把子
1.知识铺垫在真正的讲解朴素贝叶斯模型之前,想先讲一些在该模型中会涉及到的一些概率论知识。1.1 等可能概型等可能概型是指试验中的样本空间只包含有限个元素并且试验中每个基本事件发生的可能性相同,公式如下P(A)=事件A中包含的基本事件数S中包含的基本事件数P(A)=\frac{事件A中包含的基本事件数}{S中包含的基本事件数}P(A)=S中包含的基本事件数事件A中包含的基本事件数其...
2019-10-02 15:13:33 453
原创 机器学习系列 | 逻辑回归详细讲解
1. 逻辑回归的模型函数前面我们讲了线性回归模型,将线性模型用于回归问题中。这篇我们讲一下线性模型用于分类任务。在二分类问题中,对于线性回归所产生的预测值z=θTxz = \theta^Txz=θTx我们需将这个预测值zzz转化为0/1值,最理想的是“单位阶跃函数”,即若预测值zzz大于零就判为1,若预测值zzz小于零则判为反例,预测值为临界值则可以任意判别。但是由于单位阶跃函数不连续,...
2019-10-02 15:12:14 781
原创 机器学习系列 | 线性回归模型(简单线性回归、局部线性回归、非线性关系)
1.什么是线性回归?线性回归是试图在一堆数据中训练得到自变量x和因变量y中一组线性关系,如y=wx+by=wx+by=wx+b。例如把人脚底板长度作为自变量,身高作为因变量,那么在这两种数据之间就可以做一个简单线性回归,可以得到脚底板长度和身高的关系式。维基百科:线性回归在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。周志...
2019-10-02 15:10:55 899
原创 机器学习系列 | 梯度下降算法详解
1. 梯度下降法的作用梯度下降法用来求函数的极小值,且是一种迭代算法,由于计算机效率高,在机器学习中经常使用。梯度下降法常求凸函数(如机器学习中各种代价函数)的极小值,因为凸函数只有一个极小值,使用梯度下降法求得的极小值就是最小值。与其对应的有梯度上升法,用来求函数的极大值,两种方法原理一样,只是计算的过程中正负号不同而已。凸函数的数学定义:某个向量空间的凸子集(区间)上的实值函数,如果在其...
2019-10-02 15:08:46 2049
原创 机器学习系列 | Numpy的基础使用
numpy的主要对象是多维数组,数组中元素是同一种的(通常是数字)。numpy中的数组对象叫做ndarray,通常称为数组。numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。在numpy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。如3D空间中一个点的坐标[1,2,3]是一个秩为1的数组,因为它只有...
2019-10-02 15:07:03 310
原创 机器学习系列 | Matplotlib的入门使用
1. pyplot模块matplotlib.pyplot官网链接1.1. matplotlib.pyplot.plotmatplotlib.pyplot.plot 官方文档1.1.1. color的值charactercolor'b'blue'g'green'r'red'c'cyan'm'magenta'y'yellow...
2019-10-02 15:05:01 247
原创 MQTT系列 | MQTT 5.0协议新特性
目前支持和使用最广泛的版本是MQTT 3.1.1版本。2017 年 8 月,OASIS MQTT Technical Committee 正式发布了用于 Public Review 的 MQTT 5.0 的草案。2018 年,MQTT 5.0 已正式发布,但是目前支持 MQTT 5.0 的 Broker 和 Client 库还比较有限。作为 MQTT 3.1.1 的后续版本,为什么版本号直接变...
2019-08-28 19:21:56 2522
原创 MQTT系列 | Retained消息和LWT和Keep Alive
1. Retained消息Retained 消息是指在 PUBLISH 数据包中 Retain 标识设为 1 的消息,Broker 收到这样的 PUBLISH 包以后,将保存这个消息,当有一个新的订阅者订阅相应主题的时候,Broker 会马上将这个消息发送给订阅者。有以下这些特点:一个Topic只能有一条Retained消息,发布新的Retained 消息将覆盖老的 Retained 消息(...
2019-08-28 19:20:30 1542
原创 MQTT系列 | MQTT的QoS介绍
1. MQTT中的QoS等级MQTT设计了一套保证消息稳定传输的机制,包括消息应答、存储和重传。在这套机制下,提供了三种不同层次QoS(Quality of Service):QoS0,At most once,至多一次;QoS1,At least once,至少一次;QoS2,Exactly once,确保只有一次。QoS 是消息的发送方(Sender)和接受方(Receiver)...
2019-08-28 19:18:25 3185
原创 MQTT系列 | MQTT消息的发布和订阅
1. MQTT的发布MQTT发布中最重要的是PUBLISH数据包,PUBLISH数据包是用于sender和receiver之间传输消息数据的。当Publisher要向某个Topic发布一条消息的时候,Publisher会向Broker发送一个PUBLISH数据包;当Broker要将一条消息转发给订阅了某条主题的Subscriber时,Broker也会向该Subscriber发送一个PUBLISH...
2019-08-23 13:09:11 6756
原创 MQTT系列 | MQTT的连接和断开
1. MQTT的连接过程Client建立到Broker的连接过程如下图所示:Client发送CONNECT数据包给BrokerBroker在收到CONNECT数据包之后,给Client返回一个CONNACK数据包1.1. CONNECT数据包连接的建立由Client发起,Client端首先向Broker发送一个CONNECT数据包,CONNECT数据包包含以下内容(这里略过固定头的...
2019-08-23 13:06:11 19814 4
原创 MQTT系列 | MQTT基础概念
MQTT 的全称为 Message Queue Telemetry Transport(消息队列遥测传输协议),是在 1999 年,由 IBM 的 Andy Stanford-Clark 和 Arcom 的 Arlen Nipper 为了一个通过卫星网络连接输油管道的项目开发的。为了满足低电量消耗和低网络带宽的需求,MQTT 协议在设计之初就包含了以下一些特点:实现简单提供数据传输的 QoS...
2019-08-23 13:03:34 4790
原创 Nginx使用 | Nginx 搭建多服务站点
0. 前言知识多服务站点是什么意思?简单来说就是一台机子上可以搭建多个web网站,比如有两个域名blog.dawnguo.cn和www.dawnguo.cn,那么这两个域名访问的网站内容是不同的,但是网站的资源都是放在同一台机子上的。即一个IP地址对应多个域名支持多站点访问,你想在一个IP地址下面放多少个站点都行。那么怎么配置呢?主要是通过Virtual Host来实现。1.实验环境本实验所...
2019-08-18 22:45:55 279
原创 Nginx使用 | Nginx配置SSL证书
0. 实验准备阿里云学生机域名/网站已经备案为什么要备案的呢?做一个遵纪守法的好公民,并且阿里云备案真的很快,我11天就备案好了,备案完成阿里云还给我免费续费11天(相当于阿里云补偿你的)。我的机子刚开始也是没有备案的(主要是嫌麻烦),那时候配置了SSL之后可以使用https访问,用http访问的话阿里云会直接给你拦截。然后我就这么得过且过的用着https,结果有一天我使用https...
2019-08-18 22:43:16 468
原创 人生苦短 | Python列表和元组的进阶-列表和元组的性能以及存储方式等
1. 列表和元组总结列表和元组都是一个可以放置任意数据类型的有序集合,他们有以下共同点列表和元组中的元素可以任意,并且都可以嵌套。列表和元组都支持索引,且都支持负数索引,-1表示最后一个元素,-2表示倒数第二个元素列表和元组都支持切片操作都支持in关键词都可以使用.index()、.count()、sorted()和enumerate()等方法两者之间的相互转换,list()和tu...
2019-08-18 22:36:25 406
原创 人生苦短 | Python列表和元组归纳整理
1. 列表1.1. 列表是什么?列表是由一系列按特定顺序排列的元素组成,所以是有序的集合。**列表中的元素可以是不同类型的,列表中也可以嵌套列表。**在Python中,用方括号[]来表示列表,并用逗号来分隔其中的元素。如下所示:digits = [1, 2, 3, 4, 5] names = ["Dawn", "Jack"]alls = [1, 2, 3, "Dawn", "Jack"...
2019-08-18 22:33:33 256
原创 Vim神器 | vim+ctags+cscope+Taglist+Nerdtree打造成sourceinsight
听说vi很强大?是的,最近笔者需要在Linux下编写一些C代码和查看一些C源码,但是默认的vi并不支持函数之间的跳转、查看函数的定义等等,所以笔者就将vi打造成了一个ide(可以勉强称得上吧)。首先我们来看一下搭建完成之后的样子:[外链图片转存失败(img-3mOLMI8K-1566136798119)(https://img.dawnguo.cn/Linux/vim_to_si_2.jpg)]...
2019-08-18 22:01:27 1336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人