学习
文章平均质量分 52
水墨长天
每天,提醒我,多进步一点
展开
-
UOS桌面版配置远程访问
【代码】UOS桌面版配置远程访问。原创 2023-02-09 20:54:19 · 1948 阅读 · 0 评论 -
C++ 文本编码探测CED (Compact Encoding Detection)技术
CED是一个相对可靠的国际化消息编码检测组件,可以帮助我们在国际项目中判别服务端返回的是什么编码,从而实现编码的转换,当然,现代化的软件系统编码很多都是UTF-8的,但为了兼容老系统,可以扩展此项功能。原创 2022-10-04 16:59:40 · 1060 阅读 · 0 评论 -
LCD液晶显示屏常见类型和接口
HDMI (High Definition Multimedia Interface)高清多媒体接口,差分式并行传输,能同时传输视频和音频,其接口有Type A(常规),Type C(Mini ),Type D(Micro), Type E(Automotive)等,通常为19针引脚(Type B为29Pin).用户容易误解液晶显示屏分为LCD和LED两类,实际上广告中的LED电视为LED是指背光源为LED的液晶显示屏,广告中的LCD是指背光源为CCFL的液晶显示屏。MIPI是差分信号,具有抗干扰的特性。.原创 2022-08-08 20:24:49 · 3485 阅读 · 0 评论 -
金融行业的密钥及加密机制
金融行业的密钥及加密机制一、 秘钥的标准体系二、秘钥实现三、常见术语四、参考文档一、 秘钥的标准体系目前金融行业的秘钥体系主要有两个:一是《Q/CUP 006.4-2015 中国银联股份有限公司企业标准- 中国银联银行卡交换系统技术规范 第4部分 数据安全传输控制规范》中<各层秘钥表>。二是《ANSI 9.17 Financial Institution Key Management》标准。二、秘钥实现基于银联标准的秘钥管理体系,分为主密钥MK、成员主密钥MMK和数据秘钥d原创 2022-05-28 00:30:15 · 1559 阅读 · 0 评论 -
Compiler Explorer多语言交互式汇编浏览器
Compiler Explorer多语言交互式汇编浏览器一、Compiler Explorer二、使用方法三、参考四、总结一、Compiler ExplorerCompiler Explorer 是一个交互式的编译浏览网站(也可本地部署),它使用nodejs,支持30多种编程语言,可实时浏览编译后的汇编代码。二、使用方法打开Compiler Explorer网站,进行在线编程选择编程语言,和编译器输入任意代码,即可实时浏览生成的汇编代码源代码:int fun(){ int原创 2022-04-08 13:07:22 · 6474 阅读 · 4 评论 -
std::lock_guard的原理和应用
std::lock_guard的原理和应用一、lock_guard二、使用示例三、原理分析四、总结一、lock_guardlock_guard是一种在作用域内控制可锁对象所有权的类型。(原文:An object of type lock_guard controls the ownership of a lockable object within a scope. )lock_guard具有两种构造方法:lock_guard(mutex& m)lock_guard(mutex&am原创 2022-04-07 23:29:52 · 27569 阅读 · 1 评论 -
std::mutex互斥量的应用
std::mutex互斥量的应用一、mutex互斥量二、使用示例三、总结一、mutex互斥量互斥量是在多线程并发中避免数据竞争的一种锁。它有三个常用函数:lock() 加锁unlock() 解锁try_lock() 尝试加锁(不阻塞)二、使用示例#include <iostream>#include <mutex>#include <vector>#include <string>#include <ctime>#原创 2022-04-05 12:35:56 · 918 阅读 · 0 评论 -
npm全局模式路径配置
npm全局模式路径配置一、npm二、全局配置三、prefix配置四、参考一、npmnpm是世界最大的包管理器。(原话: npm is the world’s largest software registry.)二、全局配置全局(global)模式操作下,软件包会安装在prefix 目录下,而不是当前工作目录。具体目录如下:包路径 {prefix}/lib/node_modulesbin执行文件路径 {prefix}/binman手册 {prefix}/share/man三、pr原创 2022-04-03 23:23:59 · 3706 阅读 · 0 评论 -
CH340/CH341 Linux驱动编译
CH340/CH341 Linux驱动编译一、CH340/CH341二、编译三、报错处理四、总结一、CH340/CH341CH340/CH341 USB转串口驱动程序,下载地址:http://www.wch.cn/downloads/CH341SER_LINUX_ZIP.html二、编译unzip CH341SER_LINUX.ZIPcd CH341SER_LINUXmake三、报错处理error: unknown type name ‘wait_queue_t’wait_queu原创 2022-02-26 15:36:36 · 1822 阅读 · 0 评论 -
极简Linux驱动入门
极简Linux驱动入门一、编译内核二、编写驱动三、编译使用一、编译内核# 下载内核源码wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.1.15.tar.gz --no-check-certificate# 解压tar xvf linux-4.1.15.tar.gzcd linux-4.1.15# 配置并保存退出make menuconfig# 编译make二、编写驱动实现init和exit两个原创 2022-02-26 02:01:45 · 457 阅读 · 0 评论 -
Source Insight设置头文件路径
Source Insight设置头文件路径一、Source Insight二、设置步骤1. 配置全局项目2. 引入工程项目三、总结一、Source Insight嵌入式软件领域用得非常多的一款代码浏览和编辑器,但美中不足的是只有windows版本。同样的,在写代码时的自动提示功能也需要先设置头文件。二、设置步骤1. 配置全局项目Project > Open Project > 选择BaseOptions > Preferences > Symbol Looku原创 2022-02-24 16:45:06 · 2702 阅读 · 0 评论 -
Ubuntu安装GCC 3.4
Ubuntu安装GCC 3.4一、背景二、安装三、总结一、背景因最近学习hit-os编译linux 0.11版本内核,需要使用到gcc 3.4,故此记录。二、安装# 下载deb包wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/cpp-3.4_3.4.6-6ubuntu3_amd64.debwget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gc原创 2022-02-24 16:15:37 · 1744 阅读 · 0 评论 -
git deamon 一个简单的git服务器
A 机器开启守护进程,使用 git 协议公开当前目录.下的仓库:git daemon --verbose --export-all --base-path=.B 机器克隆 A 机器的仓库:git clone git://$hostip_a/respostory_name其中 $hostip_a 为 A 机器的 IP, respostory_name 为 --base-path 指定目录下的仓库名称。作者:阿土哥链接:https://www.zhihu.com/question/54672976/ans原创 2022-01-22 08:41:46 · 1638 阅读 · 0 评论 -
C# HTML转图片
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档C# HTML转换生成图片前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤原创 2022-01-22 00:19:48 · 1003 阅读 · 0 评论 -
C# 委托监控属性变量
C# 委托监控属性变量一、委托二、示例三、参考四、总结一、委托C# 的委托类似函数指针,可以用于定义回调方法。一个委托可以代理多个被调的方法。二、示例using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Demo{ class VChange { // 构造方法 public VChange()原创 2022-01-21 22:54:44 · 1408 阅读 · 0 评论 -
VirtualBox 安装Android on X86
VirtualBox 安装Android on X86Android on X86一、安装步骤二、配置图形界面Android on X86Android-x86 (https://www.android-x86.org/)开源项目,使Android运行在PC上。本次使用环境为:android-x86_64-9.0-r2.iso 下载链接VirtualBox-6.1.30-148432-Win.exe 下载链接一、安装步骤安装VirtualBox打开VirtualBox,选择“新建”原创 2022-01-10 23:19:54 · 4416 阅读 · 2 评论 -
金融校验九要素、十二要素
金融机构校验客户的基本要素信息一、要素二、参考一、要素根据《金融机构客户身份识别和客户身份资料及交易记录保存管理办法》第三十三条:自然人客户的“身份基本信息”包括客户的姓名、性别、国籍、职业、住所地或者工作单位地址、联系方式,身份证件或者身份证明文件的种类、号码和有效期限。客户的住所地与经常居住地不一致的,登记客户的经常居住地。法人、其他组织和个体工商户客户的“身份基本信息”包括客户的名称、住所、经营范围、组织机构代码、税务登记证号码;可证明该客户依法设立或者可依法开展经营、社会活动的执照原创 2022-01-06 22:06:19 · 2741 阅读 · 0 评论 -
个人学习网站指南
我的学习网站一、书籍二、视频三、教程四、实用五、工具(个人平时使用到的一些网站,以免费为主,主要是为了自己以后需要用到能快速导航,持续更新)一、书籍微信读书 - 计算机榜二、视频电巢-电子工程师在线学习网站三、教程四、实用微软.NET源码在线浏览五、工具Regex101 - 正则表达式创建、测试和调试 ...原创 2022-01-01 23:17:58 · 251 阅读 · 0 评论 -
正则表达式校验交易金额
正则表达式校验交易金额一、正则表达式二、分析三、推荐一、正则表达式使用正则匹配大于0的正整数、带1-2位小数的正浮点数:(?!(^[0.]*$))((^[1-9]\d*$)|(^[0-9]+.\d{1,2}$))二、分析(?!(^[0.]*$)(?!exp1)exp2 正向否定查找 表示从不匹配exp1的字符串开始查找exp2(^[1-9]\d*$)匹配一位1-9开头的,后面跟任意位0-9的正整数(^[0-9]+.\d{1,2}$)匹配有小数点,且整数位有至少一原创 2021-12-28 22:45:09 · 1441 阅读 · 0 评论 -
银行对公账户编码规则
银行对公账户编码规则1. 工商银行2. 农业银行3. 中国银行4. 建设银行5. 邮储银行更多1. 工商银行中国工商银行对公账户共19位,其中1-4位为地区代码(详见代码表),5-8位为网点代码,9-10位为应用号,11-17位为序号,18-19位为校验位。需要要注意的是应用号为09的属于往来户,19属于一般存款户。账号规则:账号编码规则账号19位地区代码4位+网点号4位+账户性质应用号2位+账号顺序号7位+校验码2位应用号:应用号描述09基原创 2021-12-25 12:43:03 · 33795 阅读 · 3 评论 -
Qt 2D图形平面绘制
Qt 2D图形平面绘制前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as np原创 2021-12-25 02:48:52 · 779 阅读 · 0 评论 -
C# 访问器属性传参
C# 利用Func委托把带get/set访问器属性类似为参数传递一、属性和属性访问器二、使用委托/Lamda三、总结一、属性和属性访问器一个简单的属性如下:private string m_Name = string.Empty;public string Name{ get { return m_Name; } set { m_Name = value; }}如果想在另一个方法里面修改该属性,我们通常会想到:直接作为参数public void TestMethod原创 2021-12-23 00:22:26 · 441 阅读 · 0 评论 -
C# 扩展方法
C# 对已编译没源码的类进行方法扩展一、方法扩展二、实例1. 模拟一个类库2.实现扩展方法3. 调用测试三、参考链接四、总结一、方法扩展对于已编译成dll的类,有时候会需要进行扩展,但手上有没有源代码,此时可以使用this关键字作为形参,实现扩展方法。扩展方法是静态方法二、实例1. 模拟一个类库该类里面仅有一个方法。using System;namespace ClassLibrary{ public class MyClass { public v原创 2021-12-20 00:39:14 · 224 阅读 · 0 评论 -
Java JDK动态代理
Java JDK动态代理一、代理是什么?二、示例三、总结一、代理是什么?代理是一种设计模式,被代理对象(真实对象)实现具体的服务方法,委托给代理来进行处理。代理类可以在被代理对象的方法上附加更多的处理。一般有静态代理和动态代理,区别在于,静态代理一个代理类对应一个真实对象,动态代理可以对应不同的真实对象。二、示例本例实现一个外卖的代理类,它可以接收不同商家的外卖服务,并在invoke的时候附加处理逻辑(本例为增加打印)。import java.lang.reflect.Invocati原创 2021-12-18 16:34:02 · 242 阅读 · 0 评论 -
C# 利用反射实现消息转发处理
C# 利用反射实现消息处理,或可配置流程一、C# 反射二、代码三、总结一、C# 反射利用C#反射的特点,我们可以实现函数名来动态调用函数。通过拼接字符串达到消息处理的效果,配合xml可以实现流程可配置化。二、代码以下是一个简单的示例:using System;using System.Reflection;namespace DemoApplication{ class Demo { string DoMsg_GetDevStatus(string de原创 2021-12-13 00:13:00 · 497 阅读 · 0 评论 -
编写top脚本kill掉占用CPU过高的进程
#!/bin/bashwhile truedosleep 10top -b -c -n 1 -o +%CPU | grep -E ‘MsgAdapter|KEROSD|DCSAdapter’ | awk ‘{if($7>=99.0) print $1}’ | while read prociddoecho $procid;sleep 20top -b -c -p $procid -n 1 -o +%CPU | grep -E ‘MsgAdapter|KEROSD|DCSAdapter’原创 2021-11-06 22:49:28 · 691 阅读 · 0 评论 -
重启测试 - 检测日志
重启测试 - 检测日志一、背景二、Bash Script三、总结一、背景检测log的关键字,判断程序是否异常。正常情况下继续重启,异常情况停止脚本。二、Bash Script#!/bin/bashecho "start"cd /appPathi=0while [ $i -lt 1 ]; do cat /appLog/Log_* | grep failed if [ $? -ne 0 ] ;then killall -9 Main rm /appLog/* ./Main &原创 2021-11-03 15:36:58 · 183 阅读 · 0 评论 -
msgpack c++的使用
msgpack C++的使用一、MessagePack 是什么二、msgpack的使用三、总结一、MessagePack 是什么MessagePack 是一种高效的二进制序列化格式。二、msgpack的使用#include <vector>#include <string>#include <iostream>#include <msgpack.hpp>//定义命令#define COMMAND_GET_INFO 0x01//自定义请原创 2021-10-16 23:23:46 · 3653 阅读 · 0 评论 -
awk读取ini配置文件
awk读取ini配置文件一、awk基础二、读取ini1. net.ini文件2. 打印三、读取特定Section的Key的值1. 设置特定值2. 查找匹配项四、总结一、awk基础-F #指定分割符print #打印$0 #表示整个当前行$1 #每行第一个字段 (ini分隔符前的key)$2 #每行第二个字段 (ini分隔符前的value)-v #设置变量// #匹配代码块'' #引用代码块二、读取ini1. net.ini文件[NETWORK]ip=10.1.0原创 2021-10-16 00:01:15 · 967 阅读 · 0 评论 -
canonical raft源码编译
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库问题总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?sudo apt-get install automakesudo apt-get install libtool示例:pa原创 2021-10-15 22:36:20 · 113 阅读 · 0 评论 -
KMP算法
KMP算法一、KMP算法二、算法PMT公式三、 算法代码四、 总结一、KMP算法KMP算法(The Knuth-Morris-Pratt Algorithm),即一种字符串匹配算法。简单来说,普通的匹配步骤与KMP的差别:普通匹配从第一个模式串的字符开始匹配,比对主串的第一个字符如果第一个字符一样,则比对下一个字符,以此类推字符出现不匹配普通匹配(模式串与每个主串字符都尝试匹配一次):KMP算法(以某种规律判定第2个字符肯定不符合,直接跳到对比第3个字符):二、算法PMT原创 2021-10-07 15:14:54 · 3592 阅读 · 1 评论 -
SQLite3 获取最小可用ID,ID无需包含1
SQLite3 获取最小可用ID,自定义范围一、语法二、解析1. 判断最小ID是否为12. 判断最小ID递增后是否存在3. 范围限定三、总结一、语法获取1 到 500 范围间的最小可用ID :select CASE WHEN (select 1 from mytable where exists(select myID from mytable where myID=1))THEN min(myID)+1ELSE min(0)+1ENDfrom mytable t where not e原创 2021-09-30 01:28:12 · 575 阅读 · 0 评论 -
minicom RK3399交叉编译(aarch64)
minicom RK3399交叉编译aarch64一、源码下载二、ncurses交叉编译三、minicom交叉编译四、注意五、总结一、源码下载minicom-2.8.tarhttps://salsa.debian.org/minicom-team/minicom/-/archive/2.8/minicom-2.8.tarncurses-5.7.tar.gzhttps://ftp.gnu.org/gnu/ncurses/ncurses-5.7.tar.gzgettext-0.19.tar.gz原创 2021-09-26 19:52:41 · 821 阅读 · 1 评论 -
百鸡百钱 - 经典问题
百鸡百钱 - 经典问题1. 百鸡百钱2. 问题分析3. 编码4. 总结1. 百鸡百钱百鸡百钱,即公鸡每只5元,母鸡每只3元,小鸡3只1元,一百元买一百只鸡,问: 分别有多少只公鸡、母鸡和小鸡?2. 问题分析假设公鸡为x只,母鸡为y只,小鸡z只,那么以下公式成立:x + y + z = 1005x + 3y + z/3 = 100 按极限思维分析:如果只买公鸡,最多能买100/5 = 20只,同理,母鸡最多能买33只。而 z = 100 - 20 - 33 = 47,向3的倍数取整为4原创 2021-08-13 23:53:31 · 2167 阅读 · 0 评论 -
Vim快速教程
Vim快速教程Vim教程 (vimtutor)命令模式 (Esc)视图模式 (v)编辑模式 (i)Vim-plugVim教程 (vimtutor)命令模式 (Esc)快捷键全称功能H J K L-方向键,前面加数字代表移动多少行或列:syntax on/off语法高亮:set number开启行号Wword按单词移动Bback按单词返回移动ctrl Fforwad向下翻页ctrl Bbackward向上翻页N原创 2021-07-25 13:33:45 · 102 阅读 · 0 评论 -
超轻量级Web服务器Althttpd
超轻量级Web服务器althttpdAlthttpd架构总结AlthttpdAlthttpd是一个轻量级的web服务器,用于SQLite网站的运行。架构示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。总结...原创 2021-07-25 01:03:22 · 2016 阅读 · 0 评论 -
NAT穿透 - P2P
NAT穿透 - P2P一、NAT穿透二、NAT分类总结一、NAT穿透NAT穿透,即内网穿透,也称为打洞。其网络拓扑示例:二、NAT分类完全锥型NAT: 内网客户端映射到一个外部IP:Port,IP端口无限制,任意主机都可往该映射端口发数据。地址受限锥型NAT:IP受限,内网主机需往发消息给目标主机,才能接收该主机的数据,端口不限制。端口受限锥型NAT:在地址受限锥型NAT的基础上,限制端口,必须IP和端口一致才能接收。对称NAT: 一个IP:Port映射成一个外网IP:Port,IP原创 2021-07-24 14:56:11 · 223 阅读 · 0 评论 -
Shell 基础知识
Shell 基础知识$number 传递的参数./test.sh myvalue1 myvalue2# $1是第一个参数,$2是第二个参数echo “first: $1, second is $2" !! 上一条命令!!!$ 上一条命令的最后一个参数!$Ctrl + R 历史搜索^RCtrl + D 退出登录^DCtrl + A, Ctrl + E 光标移动到命令开始/结束的位置^A^ECtrl + K, Ctrl + U, Ctrl原创 2021-06-10 00:11:36 · 58 阅读 · 0 评论 -
如何编写一个Makefile
如何编写一个MakefileMakefile是什么?Makefile的编写规则1. 实例2. 进阶参考总结Makefile是什么?首先,我们使用make命令来自动检测程序的哪部分需要重新编译,并发出命令进行重编译。那么make依据什么规则去检测和执行呢?这个规则就是makefile了。一个标准的makefile如下:target(目标) : prerequisites(先决条件) recipe(方法)target:文件或动作prerequisites:条件或依赖,当发生改变时执行re原创 2021-04-20 16:17:03 · 403 阅读 · 0 评论 -
计算机外部设备IO接口
计算机外部设备IO接口前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as np原创 2021-04-20 14:02:14 · 758 阅读 · 0 评论