自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 带emoji表情的react输入框组件

简介博客项目重构后留言和评论功能一直没有emoji表情输入功能,在网上也没有找到比较好用的react组件,于是作者用了两周时间封装了一个输入框组件并发布到npm。项目上线初期或多或少存在一些问题,如果在使用过程中遇到bug或者在功能上有更好的建议意见请留言告知。效果在线Demo请到西贝博客留言板页面体验安装npm install react-emotoryarn add react-emotor基本用法输入框组件使用方法输入框组件相对于普通的输入框添加了emoji表情输入功能,点击

2021-09-04 16:58:30 2974 3

原创 esp8266AT指令封装

stm32通过wifi方式进行数据通信时通常采用ESP8266模块,最常用的方法就是通过AT指令与esp模块进行交互,本项目对常用的AT指令进行封装成协议,使用户调用简单的函数即可实现热点连接、服务器连接、开启热点、创建服务器等功能。并提供了两种数据发送模式,用户可根据项目需要选择101协议数据封装发送或无数据封装发送。数据解析也可以根据项目需要设置解析或不解析。协议具有很强的可扩展性,能够根据自己的项目需求对AT指令进行裁剪和扩展。项目说明git仓库地址:https://github.com/reds

2020-07-16 21:34:31 5014 13

原创 Netty学习笔记之Java I/O

Netty学习笔记第一部分

2022-08-08 17:08:12 232 1

原创 springboot集成mybatis-plus及常用功能配置

1. 引入pom依赖<!--mybatis-plus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version></dependency><!--数据库依赖--><

2022-05-14 17:41:22 4333

原创 mybatis-plus配置自动代码

pom文件<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version></dependency><dependency> <groupId>com.baomidou&.

2022-04-12 16:49:10 993

原创 volatile和CAS及其底层原理

多个线程修改同一资源如何保证其安全性?1. 使用synchronized锁2. 使用lock锁3. 使用 Atomic 原子类多个线程争夺资源使用synchronized锁容易升级为重量级锁,如果同步代码块中只进行修改变量值这种简单的操作,那么同步代码块的执行时间远小于进程间调度所花费的时间,得不偿失。lock锁底层由AQS+CAS机制构成,效率较synchronized有很大提升。在这种简单的线程资源争夺场景中,使用Atomic原子类更加灵活。相对于lock的显示上锁解锁,Atomic原子类自

2022-03-10 11:15:44 432

原创 Synchronized锁的升级过程

synchronized锁升级过程依次为无锁、偏向锁、轻量级锁、重量级锁,部分文章认为synchronized锁不存在降级过程,但在openjdk的hotsopt jdk8u里是有锁降级的机制的。对象头锁升级示意图1. 无锁到偏向锁线程A执行到同步代码块时,检查对象头锁标志位是否为01,再看偏向锁标志位是否为0(即检查对象是否为无锁状态),通过CAS操作尝试修改MarkWord字段,这里CAS操作只尝试一次,失败的话说明发生锁竞争,立即升级为轻量级锁。成功修改后执行同步代码块,执行完毕后不主动释

2022-03-02 16:39:10 3792 1

转载 mysql常用单列函数归纳

基本函数函数用法ABS(x)返回x的绝对值SIGN(X)返回X的符号。正数返回1,负数返回-1,0返回0PI()返回圆周率的值CEIL(x),CEILING(x)返回大于或等于某个值的最小整数FLOOR(x)返回小于或等于某个值的最大整数LEAST(e1,e2,e3…)返回列表中的最小值GREATEST(e1,e2,e3…)返回列表中的最大值MOD(x,y)返回X除以Y后的余数RAND()返回0~1的随机值RAND

2021-12-20 11:06:03 274

原创 nginx添加ssl证书后http无法访问原因及解决方法

博客网站的nginx服务器接入ssl证书后提高了数据交互的安全性,但最近发现在http协议下访问网站出现了跨域访问的问题导致后端接口无法被调用。原因是在http协议下访问的是80端口,调用后端接口访问的是443端口所以产生了跨域问题。跟随网上教程将ssl on去掉并将listen 443改为listen 443 ssl,失败。索性不用80端口了,在nginx中配置更改为接收到80端口的请求后强制跳转到443端口。原配置文件:server { listen 80; listen

2021-11-23 14:32:11 9196

原创 自动化部署工具

需求实验室项目开发完成初期,需要频繁的进行版本更新迭代,服务器系统采用的是windows server,新版本上线通常分为项目文件上传到服务器、备份旧版本、部署新版本三个步骤,而后两步人为操作十分繁琐且步骤过度机械化,如果每次部署项目需要花费我15分钟,那么每次部署都会花费我15分钟。工具介绍通过所学python知识编写一个自动化的部署工具,主要功能为:完成项目的备份操作完成项目的部署操作实时监控项目运行状态控制程序异常重启工具的每个控制单元称为控制器,为了提高工具扩展性,将控制器属性抽

2021-09-04 16:00:59 4603

原创 yarn设置镜像源

https://www.cnblogs.com/momozjm/p/10635941.html

2021-09-03 11:31:36 873

原创 js中获取光标所在位置并插入内容

关于selection和range的一些认识原文链接:https://zhuanlan.zhihu.com/p/44970200相关代码function insertContent() { let contentHtml = '<p>插入一个p标签</p>'; // console.log(imgHtml); insertHtmlAtCaret(contentHtml);}function insertHtmlAtCaret(html) {

2021-08-27 18:02:17 832

原创 Pyinstaller使用方法

图形化python项目完成后往往需要打包成exe文件,常用的是pyinstaller模块。使用方法如下:通过pip安装pyinstaller模块pip install pyinstaller在项目目录下打开cmd窗口并输入以下命令pyinstaller -D xxx.py # 生成单个可执行文件,打包目录中的xxx.py文件以上简单的打包功能大概率不能满足项目需要,pyinstaller还有多个配置参数,输入pyinstaller -h命令查看为了方便查看,这里通过表格展示

2021-07-24 15:22:06 1121

原创 React中onclick的正确用法

React开发中有时会遇到onclick事件点击不生效但渲染页面时自动触发的问题原写法:this.columns_message = [ { title: '消息列表', dataIndex: 'message', render: text => { text = text.split('&&'); return <a href={text[1]} target='_blan

2021-07-22 14:44:59 2170

原创 断网引起的pom依赖下载错误及解决方法

问题描述:当项目下载pom依赖时如果计算机断网,那么大概率会出现依赖飘红的现象,即使联网后重新reload也无法解决了,十分反人类。解决方法:点击IDEA file --> settings --> 搜索框输入maven,打开红框中的文件目录删除出问题的依赖文件,如果不知道哪个依赖出问题或者出问题的依赖较多可以选择全部删除。在pom文件中找到对应依赖删除其< dependency>,点击reload all maven projects(就是那个刷新键),然后

2021-04-08 08:41:21 615 1

原创 通过nohup命令后台运行jar包

问题描述开发个人博客时,将springboot打成jar包放到linux服务器上运行,远程连接运行java -jar xxx.jar命令可以正常启动后端,但是关闭ssh后程序自动关闭。百度后发现java -jar命令会随ssh窗口关闭而结束,此时需要nohup命令使java -jar在后台运行。解决方案nohup 即no hung up,指程序不被挂起,当ssh窗口关闭后程序会继续运行,但不能在控制台输出数据。语法:nohup Command [ Arg … ] [ & ]示例:nohu

2021-03-25 11:30:32 4124

原创 antd Upload组件实现手动上传

重构博客网站时需要实现添加文章功能,其中除了文章名、分类、作者之外还有封面图片,antd提供的Upload组件选择图片后直接传给后端,这里的场景是图片连同其他文章信息一并传给后端。网上大多推荐用customRequest方法,但antd官方并未对此方法给出太多的说明。此外antd还提供了一个beforeupload方法。于是博主打算用曲线救国的方法获取图片,正所谓水平不够,骚操作来凑。顾名思义,beforeUpload即上传前的操作,我们只需在上传前将图片对象赋值给事先定义好的变量,然后返回false

2020-12-26 14:31:57 986 2

转载 React学习笔记-antd实现按需加载

https://cloud.tencent.com/developer/article/1467366

2020-07-14 17:51:25 2434

原创 二叉树剪枝——LeetCode

题目描述给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。返回移除了所有不包含 1 的子树的原二叉树。( 节点 X 的子树为 X 本身,以及所有 X 的后代。)示例:示例1:输入: [1,null,0,0,1]输出: [1,null,0,null,1]解释:只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。示例2:输入: [1...

2020-04-09 12:15:51 730

原创 只有两个键的键盘——LeetCode

题目描述最初在一个记事本上只有一个字符 ‘A’。你每次可以对这个记事本进行两种操作:Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。Paste (粘贴) : 你可以粘贴你上一次复制的字符。给定一个数字 n 。你需要使用最少的操作次数,在记事本中打印出恰好 n 个 ‘A’。输出能够打印出 n 个 ‘A’ 的最少操作次数。示例:输入: 3输...

2020-03-28 12:19:56 279

原创 百度文库文章提取器(下)

此文章讲基于百度文库文章提取器设计思路的代码实现,如果你还不知道爬取百度文库文章的思路请移步:百度文库文章提取器(上)git仓库地址:https://github.com/redstarbrother/wkspiderURL访问# request请求函数,返回网页源码def fetch_url(url): global version try: cont...

2020-03-24 17:10:46 1263

原创 百度文库文章提取器(上)

用过百度文库的小伙伴大部分都会有这种烦恼,不知如何描述,上这张图你大概就明白了如果你是土豪的话请跳转到文章最后。 原来的解决方案是按F12然后选择元素、复制。即使这样也只能一句话一句话的复制内容,后来随着照相取字app的出现这一问题似乎出现转机,但基于app的操作、广告、识别精度等问题让我感觉玩不来玩不来。学了爬虫之后一直想做个只需要文章链接就能爬取整篇文章的爬虫程序,后来。。。我做出来了...

2020-03-24 16:29:11 3616

原创 二叉树的中序遍历(递归实现)——LeetCode

题目描述给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]1  \  2  /3输出: [1,3,2]

2020-03-09 22:42:32 456 1

原创 Git学习笔记——分支操作

文章内容创建分支查看分支切换分支合并分支解决冲突创建分支输入命令git branch [分支名] 创建新的分支,无任何提示表示创建成功。查看分支输入命令git branch -v 查看分支。此时有两个分支,hot_fix和master,*代表当前所在分支。切换分支输入命令git checkout [分支名] 切换分支。合并分支此时在hot_fix分支下修...

2020-03-06 13:19:27 132

原创 Git学习笔记——版本操作

文章内容版本信息查看版本回退的几种方式查看版本信息为了方便演示版本前进与回退,a.txt文件已提交五次更改。通过git log命令查看版本详细信息。commit后为此次提交的哈希值,Author为提交的用户,Date为提交时间,"demo test six"为提交时输入的版本说明信息。通过git log --pretty=oneline命令查看版本信息。只显示版本哈...

2020-02-29 22:31:04 129

原创 Git学习笔记——仓库初始化与文件提交

文章内容本地库的创建设置签名项目文件提交查看仓库状态。创建仓库在项目路径下单机鼠标右键打开Git Bash,输入命令git init初始化仓库。输入命令 ls -lA 查看当前目录下所有文件。此时会发现目录下有一个名为git的隐藏文件(linux下隐藏文件命名规则 “.xxx”),此隐藏目录下存放的就是本地库相关的文件。设置签名签名的作用就是用来标识用户,以区分不同的开...

2020-02-25 17:34:50 208

原创 Git学习笔记——下载与安装

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。为了更高效、更规范的开发项目,熟练的运用git是必不可少的。利用疫情期间的闲置时间计划一周来入门一下Git以及GitHub。第一步:下载Git安装程序下载地址:https://git-scm.com/downloads进入网站后选择适配自己系统的安装包并开始下载。第二部:执行安...

2020-02-23 18:12:01 212

原创 删除链表的倒数第N个节点——LeetCode

题目描述给定一个链表(单链表),删除链表的倒数第 n 个节点,并且返回链表的头结点。假设给定的n是有效的。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.方法一:算法思想: 进行两趟扫描,第一趟扫描累加出链表总长度,第二趟扫描循环次数为 链表长度-n。扫描完成后指...

2020-02-22 17:28:17 149

原创 判断图的连通子图个数

题目要求给定一个具有n个顶点、m条边的无向图G,假设项点的编号为1-n。基于深度优先搜索算法,编写程序求无向图G连通子图的个数。输入格式:第一行两个整数n, m,分别表示图G的顶点数和边的数量。下面m行的每-行有两个整数a和b,分别表示顶点a和顶点b有一条边相连。输出格式:输出一个整数,表示图G中连通子图的数量。输入样例:5 31 21 34 5输出样例:2思路由于...

2019-12-10 18:48:46 4046 4

原创 二叉树求根节点到其他节点距离

题目要求给定一棵二叉树,假设其结点个数为n,结点的编号为1~n,且根节点的编号为1,试编写程序求从根节点到其他每个结点的距离。要求:用左右链的方式存储树结构。输入格式:第一行为一个整数n,表示树的结点的个数,n<1000下面n行中,每行都有两个整数a和b,其中第i行表示编号为i的结点的左孩子结点的编号为a,右孩子结点的编号为b。当a=0时,表示结点i没有左孩子:当b=0时,表示结点i...

2019-12-10 09:46:23 2590 10

原创 考研操作系统常用算法归纳

进程管理处理器调度作业调度先来先服务:按照进入就绪队列的先后顺序分配处理机短作业优先:就绪队列中最快完成的作业获得处理机优先级调度:就绪队列中优先级最高的作业获得处理机(分抢占式和非抢占式)高响应比优先:考虑作业的等待时间和运行时间,高响应比作业获得处理机。响应比=(作业等待时间+估计运行时间)/估计运行时间进程调度先来先服务:同上短作业优先:同上优先级调度:同上时间片...

2019-11-16 17:01:46 333

原创 个人网站接入live2d详细教程

    Live2D是一种应用于电子游戏的绘图渲染技术,技术由日本Cybernoids公司开发。通过一系列的连续图像和人物建模来生成一种类似三维模型的二维图像,对于以动画风格为主的冒险游戏来说非常有用,缺点是Live 2D人物无法大幅度转身,开发商正设法让该技术可显示360度图像。---------------------------------百度百科    在开发个人博客网站时无意间发现了这...

2019-09-17 11:07:52 10503 4

原创 网站用户访问量统计—Django

最近准备弃用Django自带的admin,将个人博客网站接入hadmin后台模板,同时想要实现用户访问量统计功能。在网上查了一下具体实现方法。众说纷纭,有接入第三方的、有js实现的、有后端代码实现的,第三方的话很简单,在前端页面上加入几行代码就可以了,但是查询访问量的时候貌似需要登录第三方网站才能查询,而我想要实现在网站上展示这些数据,其次安全性也是一个大问题,本着能造车轮就不闲着的原则,我自己动...

2019-08-08 20:25:30 6737 1

原创 STM32通过FatFs实现时间存储

实验要求:每1s输出一次最新RTC时间。定时把RTC时间存入到FLASH中,当系统重新启动后,能够恢复FLASH中的RTC时间,继续进行计时。项目下载地址:https://pan.baidu.com/s/1NGh6u9MMCn_9fhaP8DopKg 提取码:whv6实验思路:系统上电后先读取fatfs文件信息,当读到time标志后将后面的时间数据提取出来进行解析并赋值给my_sTime和m...

2019-05-11 11:06:49 3810 3

原创 Django实现基于类的分页功能

开发个人博客时往往避免不了分页功能的实现,实现方法大体上分为函数和类两种。本文基于类实现分页功能,以下是详细代码:class Page: page_num = 0 total_count = 0 tartype = "" total_page = 0 # 总页数 per_page = 8 # 每页显示8篇文章 max_page = 11 # ...

2019-05-10 09:26:21 207

原创 两百行代码实现王校长大战鸡你太美

前几天脑子里灵光一现,想出这么个脑洞大开的游戏,无奈自己不会写游戏,就用了两天的时间熟悉了一下pygame库,做出个粗糙的游戏,主函数代码200行左右,加上定义类一共有三百多行吧(其实可以更精简,只怪自己能力有限)项目下载地址:https://pan.baidu.com/s/1EUjxMkA2HdZS1n0RKfqV4g 提取码:m4ix游戏部分代码:user操作 # 打印...

2019-04-25 20:53:49 4699

原创 C语言strstr()函数使用注意事项

最近在写一段C语言代码时用到了strstr()函数,遇到了一个意想不到的问题,记录一下。这个函数接收两个参数,strstr(str1,str2)函数具体功能是检测str2是否为str1的子集,如果是则返回str1首次出现的地址,否则返回NULL。一开始调用这个函数的时候没想太多,直接使用后发现有些情况下尽管str2是str1的子集,函数返回值也是NULL。经过排查后发现如果在传入参数str1的...

2019-04-17 22:25:28 3181

原创 WiFi通信字节乱码问题的产生原因及解决方法

WiFi简单通信文章中有个通信中每次数据开头出现乱码的bug,经过排查发现是demo程序中的逻辑问题。产生原因:要了解产生原因,首先要知道HAL_UART_Receive_IT()函数的执行机制——stm32每次执行此函数是为下一次的接收做准备,所以说在main函数前执行HAL_UART_Receive_IT(&huart1,my_re_buf1,1),当huart1接收到数据时,st...

2019-04-15 23:02:15 48506

原创 stm32实现简单wifi通信

最近需要做wifi通信实验,实验中的坑比较多,本文章用于记录实验中遇到的问题。实验内容了解ESP8266的基本工作原理,使程序能够自行连接给定的WIFI热点和服务器并实现双向通信。工程文件网盘地址:https://pan.baidu.com/s/12m7QnYw1txRKuMUTCx5Yuw 提取码:pen6 。整体思路通过直接控制wifi模块可以发现整个连接过程有几个指令是不可缺少...

2019-04-14 15:54:50 28687 5

空空如也

空空如也

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

TA关注的人

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