Github疑难杂症
啊啊啊啊啊啊`(>﹏<)′
因为github上不去,以及无法push的问题一直没有解决,导致好久没有写博客了,今天又折腾了一下午,改成ssh的方式终于能够push了,我的天呐!!!以及github.io需要特殊工具才能登上,用第二个博客修改dns的方式也成功解决了。
救了我一命的博客:
GitHub如何配置SSH Key_前端向朔-CSDN博客_github ssh
解决打不开 xxx.github.io的万能解决方法_云浪行川的博客-CSDN博客_github.io 打不开
赶紧写一个试试,顺便记录这一新的开始!
2021.8.27
可恶,今天github以及博客又上不去了,然后通过修改站长工具查IP,修改hosts走本地静态域名解析搞好了。
参考博客:https://blog.csdn.net/weixin_41180145/article/details/107389586
以及,把这篇文章的标题改成了“Gihub疑难杂症”,记录每次出现github无法访问的情况,原因,以及解决方案。
状况:github.io超时,github也一直登不上
原因分析:凭着多次 ...
vim配置与使用指南
Vim配置修改vimrc文件,位置在 /etc/vimrc 或 ~/.vimrc
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364" 开启语法高亮syntax enableif has("syntax")syntax onendifset nocompatible " Use vim defaultsset viminfo='20,\"50 " read/write a .viminfo file, don't store more than 50 lines of registersset history=50 " store 50 lines of command line historyset nobackup " 不进行备份" 缩进与对齐set ...
【算法系列三】哈希表
【注意】算法系列已经重新整理到github中,不在博客中继续更新了。
基础概念首先,哈希表 是根据关键码进行直接访问的数据结构,一个数组也可以是一个哈希表,索引下标为关键码,数组中的元素为值。
哈希表能够处理的问题:快速判断(O(1))一个元素是否出现在集合中【牺牲空间换取时间】。
哈希函数
如下图所示,哈希函数将学生姓名转化为数值,就成功将学生名字(string)映射成哈希表上的索引数字了。
为防止hashCode计算得到的值大于哈希表的大小,需要一个取模的运算,保证所有得到的索引都落在哈希表的范围中。
但是这样,又会产生新的问题,即会存在有多个不同学生的名字同时映射到哈希表中的同一个位置上。
哈希碰撞
上述问题,就被称为哈希碰撞。解决碰撞有很多种方式,这里说常见的两种:拉链法 和 线性探测法。
拉链法:哈希表中元素为链表,冲突元素的下标相同,放在同一个链表中。
))
拉链法要选择适当的哈希表大小,这样既不会因为数组空闲而浪费内存,也不会因为链表太长而在查找上浪费时间。
线性探测法:依靠哈希表中的空位解决碰撞问题,要保证 哈希表的大小 大于 数据量。
具体方法就是,如果这个索引位置 ...
磁盘测试工具fio的安装问题
fio简介fio可以测试顺序读写,随机读写,顺序混合读写,随机混合读写,并且可以调整io并发数,在测试后会生成测试报告。比dd命令更加专业,而且dd命令也只能支持顺序读写的测试。
fio同时也是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
安装fio的相关问题我选择了很多中版本的fio,但是在Ubuntu14.10中编译时很多版本编译失败了(报错为:recipe for target ‘crc/crc32c-arm64.o’ failed),最后使用fio-2.1.10版本终于编译成功了,不过其中也遇到了很多问题。
Ubuntu中apt-get install无法使用遇到这个问题需要软件包,执行 sudo apt-get update。
而如果update也失败的话,就需要换一个镜像源了,这里使用清华镜像。
https://mirrors.tuna.tsinghua ...
深入io到epoll与linux内核系统调用
主要来源:马士兵课程《深入io到epoll与linux内核的系统调用》
预备学习方法:学一个技术,找到问题,推理解决
计算机的组成有内存(主存),cpu,io设备等。程序运行在内存中,内存可以理解成一个线性地址空间,内存里放的是运行时的程序,程序有各种指令和数据。
内存可以分为两个部分:内核空间 和 用户空间
其中有一些概念:
保护模式:参考https://zhuanlan.zhihu.com/p/42309472
用户空间,内核空间:OS的进程空间可以分为用户空间和内核空间,它们有不同的执行权限。
用户态,内核态
切换:用户态到内核态切换的三种方式(系统调用-软中断,异常-如缺页中断,外设中断)。态的切换具有比较大的开销。
计算机刚启动时,首先会将内核程序加载进内存。内核是一种特殊的软件程序,能够控制计算机的硬件资源(比如:协调CPU资源,分配内存资源,提供稳定的环境供应用运行)。
保护模式中存在一个table(全局描述符表,GDT),来进行约束,描述哪部分是内核空间,哪部分是用户空间。GDT的地址会放到cpu的寄存器中。比如,tomcat中有条指令需要取的数据地址在内 ...
单链表反转的四种方法
单链表反转,就是将链表中所有节点的指向改变方向,具体可以有四种方式。
迭代法迭代法的思想很直接,每次改变一个节点的next指向,依次迭代到尾节点。
需要3个辅助节点:beg,mid,end
每次将mid指向beg,然后beg, mid, end整体向后移动一个单位,直到完成反转。
12345678910111213141516ListNode* reverseList(ListNode* head) { if(head==NULL || head->next==NULL){ return head; } ListNode *beg=NULL, *mid=head, *end=head->next; while(true){ mid->next = beg; if(end==NULL){ break; } beg = mid; mid = end; end = end ...
win10禁用自带键盘的方法
最近笔记本自带的键盘出了一些问题,个别按键即使用力按也没按不出来。于是就想使用外接键盘,但是外接键盘放在笔记本上又容易误触到笔记本键盘,所以就想能不能把笔记本自带键盘给禁用掉。
亲测win10上一个可行的方案:
禁用自带键盘
(1)以管理员身份运行cmd(2)输入: sc config i8042prt start= disabled(3)重启
启用自带键盘
(1)以管理员身份运行cmd(2)输入: sc config i8042prt start= auto(3)重启