计算机教育缺失的一环_4
前言这是本人观看该课程所做的第三部分的笔记,包含第9、10课的内容,水平有限,不一定全面。课程链接:点击这里中文讲义:点击这里
第9讲 - 安全和密码学本节课主要是了解已经存在的东西。如果没有接受过正规的安全课程的培训,不要从事安全工作。如果不是密码学的专家,请不要试图创造或者修改加密算法。
熵熵是对随机性的一种度量,在确定密码强度时非常有用。如何量化这些不同密码的安全性呢?可以测算密码的随机性即算出其中有多少比特的随机性。熵的单位是比特。对于一个均匀分布的随机离散变量,熵等于log_2(所有可能的个数,即n)。比如扔一次硬币的熵是1比特,掷一次骰子的熵大约为2.58比特。需要多少熵值,取决于需要保护什么,比如收到网站加密保护的密码,大约四十个比特的熵可能就够了。如果担心离线攻击并且想要真正的安全,那么可能需要八十比特的熵。
哈希函数SHA-1是Git中使用的一种散列函数,它需要输入一些比特数据,且恰好会有160比特(转为40位16进制)的输出。总的来说,哈希函数是一种输出一个看似是随机数实际上具有确定性的值且难以逆推的函数。SHA-1函数演示如下:
实际用途
在Git ...
计算机教育缺失的一环_3
前言这是本人观看该课程所做的第三部分的笔记,包含第6、7、8课的内容,水平有限,不一定全面。课程链接:点击这里中文讲义:点击这里
第6讲 - 版本控制(Git)定义:版本控制系统是用于跟踪源代码或其他文件/文件夹的更改记录的工具。除了这些,还可以用于多人协作。版本控制系统通过一系列快照跟踪记录文件的更改,我们可以抓拍到文件夹的所有内容,然后可以为一系列的更改创造多个版本的快照,每个快照里都包含了最高层目录的所有内容。版本控制系统也维护了作者和提交时间戳等元数据。
为什么说版本控制很有用?你可以用它查看旧版本的代码;查看提交信息来找出某些内容为什么被更改了,什么时候被更改的,被谁更改的,是属于谁负责的;使用不同分支并行处理;保持各个功能独立的情况下修复bug;解决多人同时更改统一部分代码引发的冲突等等。
虽然版本控制系统有很多,但事实上的标准却是Git。尽管Git的接口有些丑陋,但是它的底层设计和思想却是非常优雅的。这节课将通过一种自底向上的方式介绍Git,即先从底层数据模型开始,然后再介绍一些git命令。
Git 的数据模型快照Git将历史记录建模为某个顶层目 ...
计算机教育缺失的一环_2
前言这是本人观看该课程所做的第二部分的笔记,因为怕篇幅过长,所以这次只包含第4、5课的内容,水平有限,不一定全面。课后习题这边只贴出了部分个人觉得容易有问题的题目以及个人的答案,一些不好写题解的也没有放上来。课程链接:点击这里中文讲义:点击这里
第4讲 - 数据整理数据整理的定义任何把一种格式的数据转换成另一种格式的数据的过程都可以被称为“数据整理”。比如在前几节课中,我们使用管道操作符把一个程序的输出传递给另一个程序,这就是做数据整理的一种方式。
数据整理的示例学习数据整理有两样东西是必不可少的:用来整理的数据以及相关的应用场景。这节课将采用一个服务器上的系统日志作为数据源。(PS:日志处理通常是一个比较典型的使用场景,因为我们经常需要在日志中查找某些信息,这种情况下通读日志是不现实的,因此就需要数据整理。)目的:获取日志中所有的用户断开连接时打印的日志中的用户名称。
查看所有登录服务器的用户且涉及ssh的信息,命令如下:
1ssh 服务器名 journalctl | grep ssh
ssh是一种通过命令行远程访问计算机的方式,journalctl用于查看系统日志 ...
计算机网络_二
前言:这是本人用于记录自己学习计网的学习笔记,可能计录的内容不够全面充分,如果能对你产生帮助,我很荣幸。学习的内容来自于B站的视频课程深入浅出计算机网络 微课视频。
二、物理层2.1 物理层概述物理层要实现的功能就是在各种传输媒体上传输比特0和1,为上层数据链路层提供透明传输比特流的服务。透明传输比特流的定义:
物理层接口特性各个特性具体如图:电气特性示例:功能特性示例:
练习题
2.2 物理层下面的传输媒体传输媒体的分类PS:如果一定要将传输媒体分入五层计算机网络体系结构中的话,其应当划为第0层,位于物理层之下。
导向型传输媒体
同轴电缆:
双绞线:
常见的双绞线分类:目前超五类双绞线即可满足日常生活的应用。
光纤:
光纤构造与传输原理:
多模光纤与单模光纤:多模光纤会因为光的色散导致脉冲展宽造成信号失真。单模光纤不会产生脉冲展宽但是制造成本以及对光源的要求比多模光纤要高。
光纤的具体信息:
光缆:实际应用中会将光纤做为结实的光缆。
优点与缺点:
非导向型传输媒体无线通信可使用的频段:要使用某一波段的无线电频谱进行通信,通常必须得到本国相关机 ...
计算机教育缺失的一环_1
前言这是本人观看该课程所做的第一部分的笔记,包含前三课的内容,水平有限,不一定全面。课后习题这边只贴出了部分个人觉得容易有问题的题目以及个人的答案。课程链接:点击这里中文讲义:点击这里
第1讲 - 课程概览与 shell课程目的如何充分利用你已经了解的工具,同时也介绍一些你之前不知道的工具并怎么将这些工具结合起来。
SHELL一般我们的计算机都是自带SHELL,通过打开终端就可看到。SHELL是我们与计算机交互的主要文本界面。
使用SHELL:SHELL提示符通常包含了用户名,机器名,当前所在路径,根据你所配置的一些东西,SHELL提示符也会有所不同,如下所示:在提示符号后,可以输入命令,命令最终会被 shell 解析。最简单的命令是执行一个程序,比如我们输入date命令,就会执行date这个程序,打印出当前的日期和时间:echo命令:打印参数,如输入echo hello会输出hello:有多个参数时用’’或者””包裹参数即可,如echo "Hello world"。
像date这种程序是计算机自带的,存储在文件系统之中。SHELL通过环境变量来搜索这些 ...
使用docker-compose配置canal+mysql+kafka
前言最近在写项目的时候有个服务模块用到了canal,发现在配置环境的时候还是有不少问题的,于是就有了这篇文章。(PS:由于本文是临时起意写的,在内容上会比较简洁,如果没有帮到你,我很抱歉QAQ)
MYSQL配置首先需要拉取mysql镜像,进入容器内部的etc文件下找到my.cnf文件,将文件复制到宿主机的指定目录下用于挂载。在my.cnf文件中添加如下内容:
1234[mysqld]log-bin=mysql-bin # 开启 binlogbinlog-format=ROW # 选择 ROW 模式server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
创建一个config.sql文件用于授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant,内容如下所示:
1234CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION ...
计算机网络_一
前言:这是本人用于记录自己学习计网的学习笔记,可能计录的内容不够全面充分,如果能对你产生帮助,我很荣幸。学习的内容来自于B站的视频课程深入浅出计算机网络 微课视频。
一、计算机网络体系结构1.1 计算机网络概述(1)、网络、互联网、因特网的区别与关系
若干节点和链路互连形成网络(节点:电脑,服务器、交换机等;链路:有线与无线。)
若干网络通过路由器互连形成互联网
因特网是当今世界上最大的互联网
有时并没有严格区分互联网(internet)与因特网(Internet)这两个名词,但是要注意,互联网可以使用任意通信协议,而因特网必须使用TCP/IP协议族作为通信规则。
(2)、因特网简介发展:
因特网服务提供者(ISP)ISP从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备,任何单位或个人都可以通过ISP接入到因特网。我国的ISP:中国电信、中国移动、中国联通
因特网已发展成为基于ISP的多层次结构的互连网络。(ISP层级:国际级–区域或国家级–本地级–……)
因特网的管理机构:
因特网的标准化工作:
因特网的组成:
(3)、电路交换 ...
利用GitHub-Page+Hexo去搭建自己的博客
一、准备工作
git客户端
Node.js环境(下文会讲安装)
GitHub账号
二、打开Pages服务建立一个新仓库,仓库名为你的gitHub用户名.github.io。注意new的时候需要将仓库设置为public,如果是第一次用git要在本地配置ssh,这部分网上教程很多,这里就不细讲了。进入仓库,具体配置如下:这里提一下,设置分支的时候最好有两个分支,一个分支用于存放编写的hexo框架项目,另一个分支就专门存放hexo generate生成的public目录下的所有静态文件,也就是用于我们博客部署的静态文件。不过不弄两个分支也没关系,只要有一个分支用来存放静态文件部署博客即可。
三、Node.js安装Node.js下载链接只需要进行更改安装路径以及选择add to path安装模式两个操作即可。打开cmd输入node --version以及npm -v查看是否安装成功。结果如下:
四、安装Hexo以及相关的配置打开cmd,执行npm install -g hexo命令安装hexo。
以下步骤都建议使用git bash执行
新建一个空文件夹,用于初始化hexo,因为hexo ...
postName
这是正文内容1234567package mainimport "fmt"func main(){ fmt.println("hello,world")}
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment