自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shu_8708的博客

个人技术博客

  • 博客(45)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于系统内存管理

内存管理1.问题很长时间我对与内存管理的理解都非常模棱两可,利用空余时间,决定搞清楚这部分内容,本文结解决的问题如下:1.什么是虚拟内存,为什么要使用虚拟内存?2.简单的解决方案:内存分段3.进一步的优化:内存分页4.进一步的优化:多级分页5.TLB6.段页式内存管理方式2.虚拟内存假设有两个程序A,B。它们都需要被加载到内存中,在使用如果它们的内存有任何交集,那么两个程序都将会崩溃掉。**实际上我们希望进程A,B所用的空间完全隔离,那么我们

2020-11-15 19:00:26 185

原创 Centos7下Ceph的多机部署

Ceph部署和基本使用1.Ceph简介  不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。Ceph OSDs: Ceph OSD守护进程的功能

2020-11-15 18:25:30 345

原创 重新更新啦

重新开始写博客今天看路了一下自己的csdn博客,就想到了自己之前在工作期间迷茫而又不甘心,所以不断的自学然后写博客的那段日子,在研究生期间,写博客的热情也没那么高了,之前用的最多的python也开始弃用了。但是还是舍不得自己的这个博客,所以,以后会在自己的博客和csdn上同步写新的博客(同时markdown编辑器但是搬运好麻烦啊~~)这里介绍一下自己搭建的博客的地址,欢迎大家访问:Shuqi的博客...

2020-11-08 16:57:28 134

原创 Redis击穿,传统,雪崩和预热

Redis击穿,传统,雪崩和预热1.缓存穿透问题:Redis服务器中命中率随着时间逐步降低。缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。这里需要注意和缓存击穿的区别,缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个ke

2020-11-07 10:03:06 106

原创 30天自制操作系统

自制操作系统前5天内容的总结- Hello World输出; hello-os; TAB=4 ORG 0x7c00 ; ORG命令指令程序开始地址 JMP entry ;无条件跳转到entry函数中 //我寻思,后面这段代码不会执行啊,直接跳entry了 //测试后发现如果不加后面这一段,是无法通过编译阶段的 DB 0x90 DB "HELLOIPL...

2020-01-07 13:49:05 527

原创 写给自己及一月整体规划

写给自己从去年六月份开始,因为考研,就没有再写博客了,这段时间也没怎么碰代码。很多东西都遗忘了,我本身并非计算机专业,但因为在学校实验室学习了两年mcu编程,因此投入了这个行业中。在备考过程中也确实发现了许多基础上的问题,并且发现了一些之前博客中的错误,现在,我想要做的就是找回状态,所以在此制定出一份一月计划。首先从装机开始重走一遍python基础的路并在博客中记录下来。step1 重写完善...

2019-01-05 09:18:46 406 1

原创 Python由数据结构树引发的思考(可变对象/不可变对象,深拷贝/浅拷贝)

数据类型二叉树之前就有写过,我曾一直认为,因为Python没有指针操作,所有实现起来会有麻烦,应该会用数组插入数组的方法进行实现。然后进行了尝试:class Node: date=None left=None right=Noneclass Tree: def __init__(self): self.Root=Node() ...

2018-04-15 08:59:07 322

原创 Django后台的微信公众号入门

这里介绍微信公众号后台的简单搭架Step 1. 注册或登录微信公众号平台微信公众号平台官网登录或者注册Step 2.选择使用公众号这一步就按照网页提示,选择微信公众号,输入相关信息完成后可以进入如下界面:Step 3.设定相关参数绑定服务器   点击基本配置进入下图界面。                         点击下方服务器配置。Url就是你的服务器的地址,微信会把用户的交互信息用GET...

2018-03-19 10:13:45 2006

原创 数据结构之二叉树

二叉树结构 1.递归思想大学时期对递归一直不是很清晰,其实大部分情况下能通循环最好就使用循环,因为递归不断调用函数会导致程序运行效率下降。递归的有点在简化思路,程序员只需要考虑当前步骤需要做什么,我的理解中递归的实现需要的是可重复的步骤以及递归的终止条件,在实际情况中,很多问题用循环实现会很难实现,简单的例子就是快速排序算法,使用递归思路很简单,而使用循环。。。那可能还需要一个栈的数据结构存放节点

2018-03-05 14:27:31 244

原创 Python基于FTP的小型传输服务器

前言因为想要做一个能够满足多用户同时上传/下载文件的功能,并且带有权限功能,网上查了一些资料,尝试了用HTTP协议传输文件,用socket异步IO,多进程传输等方案,从中也学到了很多的东西,这里所述就是使用selectors 和socket模拟FTP协议实现文件的传输,最多可以同时满足10个传输链接。 1.HTTP传输因为用Django,Flask,Tornado等web框架

2018-02-01 20:19:05 1554

原创 Python3.x调用阿里云短信api

最近制作注册系统需要进行一个短信验证的功能,决定使用阿里云通信的短信服务,可是坑爹的问题就来了,阿里提供的SDK不支持Python3.x,遂只能通过其HTTP协议方式拼接url 官方文档因为涉及到url编码问题,博主之前全是encode('utf-8')之后再转string再处理replace('\\x','%')真是太幸酸,后面知道可以使用urllib中的request包的quote函数方方

2018-01-24 14:17:42 1790

原创 数据结构之图的创建

1.图的定义图(Graph):是由顶点的又穷非空集合和定点之间的边集组成,通常表示为G(V,E),其中G表示一个图,V是其顶点集合,E是其边集合。有向图(Directed graphs): 任意两个点之间的边都是有向边。入度(InDegree):以顶点为v为头的弧的数目称为入度。出度(OutDegree):以顶点v为尾的弧的数目成为出度。 2.图的存储结构常见

2018-01-21 14:24:13 23822 3

原创 Python异常总结

在Python或者C#开发中对于异常一般采用try—except,try—catch来捕获异常,然后发现对于异常类型不熟悉,和不自定义异常越来越不方便所以重新翻看基础后坐下记录。1.raise语句用于触发异常,通常碰到就头疼,类似于Throw。 注意最后一行,只表明了错误类型是异常的基类型并没有相关的错误信息,一般都会附加信息,一般后期的查错和修复,所以可以增加:raise

2018-01-17 15:33:06 978

原创 Python多进程multiprocessing

说到多进程首先想到的就是多进程间的通信方式:管道(PIPE)信号(Signal)消息队列(Message Queue)共享内存(Shared Memory)信号量(Semaphore)套接字(Socket)然后就是C++多进程的实现:fork()函数,fork()很特殊有两个返回值,一个是子进程,另一个0或者子进程ID,python的os包中也带有fork函数也是类似的用法,

2018-01-16 17:11:09 327

原创 浅谈uWSGI和Nginx

前一篇说到了部署Django+uWIGS+Nginx环境,为什么要部署uWSGI和Nginx,以及uWSGI和Nginx是什么进行一番学习,在这里总结一下。1.WIGS(Web Server Gateway Interface)服务器网关接口是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。 WSGI 没有官方的实现, 因为WSGI更像

2018-01-15 20:45:33 16688 5

原创 Django+uwigs+Nginx部署以及遇到的问题

关于什么是uwigs和Nginx,为什么要部署uwigs和Nginx我会写在下一篇中,这里只关心怎么将Django项目部署到uwigs和Nginx上。1.Django中静态文件(CSS,JS,IMG等)的管理。一般做法是将所有的静态文件拷贝到一个文件中,在客户端访问.*/static/地址时到这个文件夹中去寻找所需要的静态文件。 首先打开Django项目中的setting.py文件添...

2018-01-11 11:14:26 1265

转载 FTP协议学习

FTP(File Transfer Protocol)文件传输协议:基于TCP/IP协议用于在两台电脑间传输文件,需要两个TCP链接,一个用于链路控制默认(21),一个用于数据传输默认(20)。 两种工作方式PASV(被动方式)和PORT(主动方式): PASV(被动方式):客户端向FTP服务器控制链路发送请求(21端口),建立连接。 需要传输文件时:服务器控制链路向客户端发送传输端口以及准

2018-01-08 11:37:45 387

原创 Python搭建FTP服务器

Python版本 3.6.2使用的ftp包:pyftpdlib    pip install pyftpdlib就可以下载安装了FTP协议下载上传文件在文件过大的情况下会比HTTP更具有优势,更为方便的实现断点上传和进度监控,下面是官方文档中的基本方法import osfrom pyftpdlib.authorizers import DummyAuthorizerfrom

2018-01-08 11:09:56 6190 2

原创 Python验证码生成

from PIL import Image,ImageDraw,ImageFont,ImageFilterimport randomclass checkcode: def __init__(self,**kwargs): self._width=kwargs['width'] self._height=kwargs['height']

2018-01-04 20:46:16 1399

原创 快速排序

排序操作在很多情况下都频繁用到,冒泡,插入等方法复杂度为n^2在数据量小的时候是可以的,但是遇到数据量大的时候运行时间会指数级的增长。而快速排序可以做到nlog n极大的减少循环次数。算法思路:定义一个一维数组a[n] 加强版冒泡排序,冒泡排序中第i个值与数列中每一个值进行比较,每一个值需要遍历整个数列,快速排序中则是选取一个标准a[i]使数组左边的值一定小于a[i]右边大于a[i]或

2018-01-04 16:28:03 241

原创 C#实现贪吃蛇

先放程序包:下载链接基本界面:开始游戏后:规则:1.红色果实加一分,身长加一,移动速度增加一个单位2.紫色果实加二分,身长加二,移动速度增加两个单位3.金色果实加三分,身长加二,移动速度增加三个单位4.身体碰到自己或者边界游戏结束。5.不允许向反方向移动,例如前进时不允许通过s键向后移动6.ASWD控制移动实现身体的绘制与

2017-12-12 17:07:16 2297 17

原创 数据结构之队列

队列的概念队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表两种队列的实现1.静态队列利用一个定长数组作为队列的存储空间,确定一个指向开头数据下标的变量head以及一个指向最后一个数据的下表的tail操作中入队时:如果队列中仍然有存储空间tail加一将数据插入队列尾部,如果tail大于数组长度MAX_SIZE-1则将tail指向0

2017-11-19 12:05:21 258

原创 数据结构之栈

栈的定义栈(stack)是限定于在表尾进行插入和删除操作的线性表可以理解为先进先出,后进后出的数据结构栈的基本操作1.Push将数据压入栈中,压出的数据成为新的栈顶2.Pop获取栈顶数据,并释放,原栈顶后一个元素成为新栈顶栈的分类1.顺序存储结构栈用一段内存作为栈的存储空间,top指向栈顶元素的下标2.共享空间栈两个类型的

2017-11-17 11:43:07 243

原创 最大子数组问题

问题基于《算法导论》第四章 分治策略中最大收益问题问题原型:假如你能获取股票未来的行情,怎么计算出什么时候买入,什么时候卖出才能获得最大收益。首先分析数据后认为在最低处购买向后找到最高点,或者在最高处卖出向前找到价格最低的点。对比这两个点大小。书中给出了反例,证明该方法并不能准确找出最大收益方案,反例如下:天数01234

2017-11-13 13:41:45 256

原创 基于C语言单链表的成绩管理程序

单向链表实现增删改查1.数据结构typedef struct item{ item *prev = NULL; item *next = NULL; char name[20]; int math; int cna; int eng; int avg; bool flag = false;//有内容标志,可以忽略掉第一个数据得问题}date;*prev-------

2017-11-09 12:12:01 724

原创 使用Scrapy爬取电影链接

之前使用过requests爬取电影天堂,BT天堂,爱下电影这三个网站的电影下载链接,自己手写爬虫其实比较复杂,所以这里使用scrapy框架来执行该操作Step 1 创建scrapy项目有很多种方法执行该操作,这里用cmd建立工程以及模板。在命令提示行中输入下列指令此时在该目录中就生成了一个scrapy项目,这里我的项目就存放在f盘根目录下然后创建爬虫模板,这里因为只需要

2017-09-15 10:14:38 2124

原创 Scrapy爬取淘宝网数据的尝试

因为想学习数据库,想要获取较大量的数据,第一个想到的自然就是淘宝。。。。其中有大量的商品信息,淘宝网反爬措施还是比较多,特别是详情页面还有恶心的动态内容该例子中使用Scrapy框架中的基础爬虫(CrawlSpider还有点没搞清楚= = b)先贴上整体代码import scrapyimport reimport csvimport pymongofrom tmail.i

2017-08-18 15:26:06 13717 1

原创 C8051F236基本外设配置

首先是最通用的外设串口1.串口通信基本配置void Serport_Init(){ CKCON=0x18; RCAP2L=0XEC;//这个就是TH2 TL2的重装值 RCAP2H=0XFF; TL2=0XEC;//波特率19200 TH2=0XFF; RCLK=1;//TIM2作为接收发送溢出时钟 TCLK=1; CT2=0; TR2=1; S

2017-07-28 09:34:39 751

原创 C8051F330基本外设调试

项目需要用到该系列单片机,根据用户手册,对其外设驱动进行编写。1.串口配置这里我使用的波特率是19200,使用内部晶振,波特率调节方法可参照用手册配置代码如下void uart_init(){ SCON0=0x10;//8位可编程波特率 允许接收 TMOD=0x21;//配置定时器1八位自动重装 CKCON=0x01;//定时器0,1为系统时钟的4分频 确定时钟频

2017-07-27 17:05:27 4579

转载 MongoDB的基本操作与在Python中的使用

按照之前的方法安装成功后打开安装目录下的mongo.exe 界面如下1.创建数据库输入use 数据库名需要插入数据新的数据库才会被记录2.删除数据库转到要删除的数据库,再条用dropDatabase()3.插入文档转入数据库,db.集合名.insert({}) 如果数据库中不包含此集合会自动创建此集合查询使用 db.集

2017-07-21 14:07:56 378

原创 Scrapy的安装附带相关问题处理

Scrapy框架在制作网络爬虫中非常好用,这里介绍一下其安装过程以及相关问题Scrapy官网 http:/scrapy.org Scrapy官网下载whl文件,注意对应自己的系统以及python版本说明一下 将whl文件解压后是可以在python中直接调用,但是使用不方便,且可能存在隐藏问题所以这里还是推荐使用pip包管理器提一下pip包管理器的问题,如果在控制台输入pip提示不是

2017-07-21 11:00:20 279

转载 MongoDB的安装与使用(Win7 64位)

第一步当然是进入MongoDB下载对应自己系统的安装包 MongoDB官方之后进行安装,注意需要自定义安装路径请选择costom否则默认安装到C盘Program Files文件夹中在安装MongDB的磁盘根目录下创建一个文件夹作为数据存放记忆日志存放的路径。在该文件夹中再创建两个文件夹,一个存放数据,一个存放日志我在使用时根目录文件名为Data子目录两个文件夹为db和dbconf

2017-07-21 10:05:13 497

原创 Python爬虫获取电影链接(续)

上一篇文章中的两个网站都是用的是get方法,获取很简单并且没有任何防爬手段,后面我再尝试BT天堂,影视大全网发现更多的网站搜索页面是post请求并需要提交表单,所以这里给之前的程序作出一些补充,使之可以爬虫需要post请求的网站。首先提出一个使用fiddler的小技巧,断点查询,在这里点击Rules在其下拉列表中选择Automatic breakpoint之后选择After R

2017-07-21 09:33:35 3564

原创 Python多线程爬虫获取电影下载链接

一些电影资源网站往往广告太多,不想看广告所以做了这个程序首先需要先分析网站的搜索链接,这里只用到了“爱下电影网”和“电影天堂”两个网站爱下电影:http://www.aixia.cc/plus/search.php?searchtype=titlekeyword&q=%E9%80%9F%E5%BA%A6%E4%B8%8E%E6%BF%80%E6%83%85电影天堂:http://s.d

2017-07-14 18:53:57 3542 1

原创 python爬虫登录正方教务管理系统获取成绩数据

本程序以四川理工学院教务管理系统为例。。。。准备工作:1.ruquests库的使用(或者urllib也可行)    2.正则表达式的书写                    3.HTTP通信基础                    4.一些解析库的使用准备一个浏览器监视工具,这里我是用的是fiddler下载地址点击打开链接登录官网获取到登录系统url:h

2017-07-06 21:28:27 9836 10

原创 C8051F120单片机双串口配置(uart0,uart1)

1.介绍IO配置及XBR配置XBR0=0X40;//使能串口0 分配到IO口P0.0 P0.1XBR1=0;XBR2=0X44;//使能XBR交叉开关IO控制器 使能串口1并绑定到IO口上这里串口0 TX,RX优先级最高:P0.0,P0.1之后仅使能了串口1那么串口1 TX,RX分配在P0.2,P0.3P1DOUT=0xff;//选择IO口推挽输出

2017-07-04 13:32:35 6898

原创 python网络爬虫基础(利用HTMLParser)

该程序爬虫对象是今日神段里的热门文章,利用HTMLParser和正则表达式from html.parser import *import urllib.requestimport reclass Scraper(HTMLParser): def handle_starttag(self,tag,attrs): if tag=='a': at

2017-07-04 11:16:30 1599

原创 Python网络编程之带select的异步IO

与之前的socket方式不同,select通过轮流询问的方式监听(读取)客户端select也存在阻塞,会等待到三个描述符至少一个准备就绪.select函数参数为三个列表 分别为 r_list,w_list,e_list分别代表输入,输出,异常列表返回参数也是这三个列表实现方式如下import selectimport sockets=socket.socket()host=

2017-06-28 19:17:08 714

转载 Python的网络编程基础

1.socket模块在网络编程中最基本的组件就是套接字(socket)套接字包括:服务套接字,客户机套接字服务器套接字创建后就监听是否有客户机套接字进行连接客户机只需要给出相关协议参数并对服务器进行连接即可服务器的简单的实现:import sockets=socket.socket()host=socket.gethostname()port=1234s.b

2017-06-27 19:46:59 588

原创 插入排序和选择排序的实现

1.插入排序            这种方法思路是有一个空数组每次按大小将数据插入进去(放到数组最后,或者与数组中成员交换位置之后成员都向后移动),到最后就可以得到一个按顺序排列的数组,这里用Python加以实现(降序排列)def sort(x): for i in range(2,len(x)): key=x[i] j=i-1 wh

2017-06-27 19:27:35 462

空空如也

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

TA关注的人

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