自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++完美转发【gpt】

在 C++ 中,完美转发允许你将参数以及它们的类型从一个函数传递到另一个函数,同时保持参数的原始类型,而不需要进行额外的拷贝或变换。这时,你可以把家具的描述(参数类型)告诉搬家具的人(函数),然后让他们根据描述(参数类型)自行决定如何搬运。直接搬运:你(编写的代码)告诉搬家具的人(函数)需要搬哪些家具(参数),然后他们(函数)就按照你指示的方式把家具搬过去。假设你有一个房子(函数),你想把家具(参数)从一个房间(函数)搬到另一个房间(函数)。好的,让我用非常通俗易懂的方式解释一下 C++ 中的完美转发。

2024-02-26 23:02:53 699

原创 就业的二三事

虽然在CV领域中相对不卷,但从了解的情况来看,门槛也不低,需要有顶会。而现在资本下行,企业缩招,这个情况下,走这个方向也有点危险。而想用C++作后端的公司主要追求C++的高性能,对技术的要求将会很高;先说一下当前本人的情况:双非本一,研二在读,一篇图像处理方面的sci一区(二作),日常工作语言为python,有过一段开源实习。音视频方向了解的不多,但在boss直聘、leetcode上搜索出来的岗位很少,需要进一步了解;从牛客的帖子上来看,很多人并不推荐双非走C++相关方向,而JAVA是一个更加可取的方向;

2024-02-24 14:19:19 1882

原创 网络通信过程的一些基础问题

回顾网线水晶头的结构,网线一般都有八根线芯,根据T568B的标准,相对应网线颜色分为1橙白,2橙,3绿白,4蓝,5蓝白,6绿,7棕白,8棕。在正常情况下,如果接收方的处理速度跟不上发送方的速度,接收方的TCP窗口大小会减小,甚至变为0。双方通过TCP的三次握手过程能协商出一个初始的窗口大小,之后在数据传输过程中,接收方会通过ACK报文将自己当前的窗口大小告知发送方,以便发送方能根据这个窗口值调整数据发送量。在 TCP 中,数据传输是双向的,也就是说,连接的两端(即端口)都可以同时接收和发送数据。

2024-01-06 11:31:13 495

原创 ELF文件信息初步探索

之前一直想把自己的学习过程记录在个人博客网站上,但这个要自己维护,上传图片什么的比较麻烦。关键是没有人互动,自己也没有怎么去看,慢慢的就遗忘了。准备开个专栏,记录《从零开始实现链接器》的学习过程,先占个坑。

2023-12-31 15:49:41 445

原创 网络路径跟踪

通过这种方法,tracert就能得知数据包经过的每一跳的信息。换句话说,即使在tracert命令运行期间,google.com被解析为不同的IP地址,也不会更改初始的目标,即第一次解析出的IP地址仍是tracert命令的目标。总之,这次traceroute过程显示了你的数据包是如何从你的本地计算机一直到达google.com服务器的每一步,包括国内网络环境,海底光缆,以及Google的内部网络。但是网络是动态变化的,会不会在跟踪的时候,tracert前一次发送的ICMP数据包所走的路径和后一次完全不同呢?

2023-12-29 11:04:49 874

原创 多线程中的单例模式

在这个单例类中, 定义了静态(static)成员变量instance_,这意味着无论创建多少个类的对象,该静态成员都只有一个副本。后,x的值应该为100,所以thread2的的输出结果为100。,假设thread2后执行,则由于先执行的thread1激活了锁,导致thread2被锁阻塞,thread1进入的则进行第二次检查,发现。在这种情况下,thread2的输出x的结果可能为原先的值,即0。为防止出现编译优化引发的问题,在前面实现的多线程单例模式中,对。正常情况下,在threa1中,执行完。

2023-12-16 17:10:18 493

原创 整理低秩的理解

特征值越大的特征向量,它和矩阵中的大部分向量越相似,所以只需要用前几个重要特征向量进行线性组合,就能近似的还原矩阵中的大多数向量

2023-11-19 12:54:27 504

原创 pytorch 模型复现

我们可以尽可能降低算法的不确定性,使复现的结果比较接近,此时即使不能完全复现也不会偏差太大

2023-11-16 18:48:46 712 1

原创 在Lichee RV Dock上的不成功的烧录尝试

要完成这个任务,需要将程序烧录到sd卡上,板子通电后先执行bootloader程序,再跳转去执行sd卡上的程序,而bootloader程序是机器自带的,所以不用更改。要做的就是写好程序并烧录到sd卡上。不过我了解到了另一种方式,直接在DDR内存中跑编写的.bin文件,通过FEL程序将bin文件烧录到DDR上(可惜似乎不能用FEL程序烧录sd卡),相关教程见。,刚好手里有块RISC RV Dock 的板子,所以在学了基础的"hello, world"程序后,想着能不能把这个程序烧录到板子上,简单的做个实验。

2023-10-22 21:53:47 216

原创 域名和hostname

这里的感觉挺有趣的,我们上网的时候地址中常常不会出现具体的ip地址,而是使用便于记忆的域名。这种情况下,首先需要经过dns服务器对域名进行解析,得到对应的ip地址,再根据这个ip地址从客户端向服务器发起网络连接。比如访问,首先是浏览器会在后台请求dns服务器或从本地缓存中获取它具体的ip地址。我们可以采用github.com在本地的主机中,我们也可以设置一个ip地址的hostname,这个hostname和域名类似。比如在linux中通过在/etc/hosts文件中设置127.0.0.1。

2023-08-22 16:01:27 458

原创 正则表达式整理(BRE、ERE、PCRE)

学完正则表达式后,发现vscode的查找替换功能支持正则表达式,经常在vscode上实践,用得也越来越顺手,一度觉得自己的正则表达式玩的挺溜的。但每每在grepfindvim这些工具中使用正则表达式时,却总有各种问题,在vscode上正常工作的正则表达式突然不起作用,甚至还给报错,不禁让人怀疑人生。直到今天才发现,这些差异是grep等工具所支持的正则表达式与vscode不同引起的。总的来说,正则表达式可以分为三个不同的类别,其中BRE只支持基本的正则表达式,特殊规则需要使用转义符才能使用;ERE在。

2023-08-15 16:45:11 906

原创 使用bpftrace监测程序中函数的使用情况

在上一次实验中,通过profile工具获取了进程的火焰图,在火焰图中有大量的函数符号,所以这次实验想用bpftrace来监测程序中某个函数的使用情况。这个程序使用使用open调用读写文件,并输出进程的pid,每0.1s重复一次。先通过得到可执行文件test,再使用bpftrace很奇怪的是,列出的函数挂载点中,并没有open函数,这是为什么呢?先使用nm发现用bpftrace列出的符号都位于,这些符号是确定的静态符号;再观察下面的,发现opengetpidprintf这些符号都在这里。

2023-08-01 22:11:36 326

原创 火焰图性能监测

用perf生成进程火焰图

2023-07-17 20:48:58 402 1

原创 高斯滤波器

高斯滤波器

2023-06-02 16:01:37 477

原创 ubuntu22.04静态ip设置(桥接模式、only-host+NAT模式)

DHCP服务器会检查IP地址池中是否有可用的IP地址,并为虚拟机分配一个新的IP地址,而且是随机地址,这在有些情况下会造成不便。比如我想通过ssh来连接一台虚拟机,如果地址变动的话,那我每次连接虚拟机的时候,还得先去看一下虚拟机的新ip地址,然后再进行连接。(当我们关闭DHCP后,ip地址池是由我们自己管理的,所以在分配地址时,注意子网中的ip地址不能重复)。在创建一台虚拟机后,默认的方式往往是通过DHCP动态的进行分配,DHCP服务器会告知创建的虚拟机分配到的ip地址,网关地址等信息。

2023-05-16 21:15:50 3887

原创 google test的最小例子

【代码】google test的最小例子。

2023-02-14 00:28:04 104

原创 docker镜像大小

此时就会出现一个奇怪的情形,这个镜像中新增了一个100MB的文件,随后又删掉了,按理说镜像的大小应该和ubuntu:22.04镜像的大小相同,但实际上却要多出100MB,这是因为docker image中保留了构建过程的每一层。时,这条命令会创建一个100MB大小的文件file.txt,此时docker image会增加一层。所以在编写dockerfile时,需要特别注意命令的执行顺序和方式,避免镜像太大。执行结束后镜像才会添加新的一层,而这一层的大小为0。,docker image中会再增加一层。

2023-02-11 14:14:19 570

原创 能进行一对多连接的服务器(1994年Linux 1.0支持select)

但是accept、recv、send函数都是阻塞的,如果没有用户发送连接请求或者发送数据,那整个服务器照样会被阻塞,无法实现一对多的连接。并对这个文件描述符执行recv函数,这个时候,recv函数可以直接获得收到的数据,因而不会被阻塞。如果有,则由accept产生客户端对应的文件描述符,并加入到感兴趣的文件描述符集合。首先,要进行I/O多路复用,则意味着一个服务器可以同时连接多个客户端,那么就需要用数组来记录这些客户端,上面的代码中通过。变为感兴趣的文件描述符集合中有事件发生的文件描述符集合。

2022-11-28 16:50:54 425

原创 被用户独占的服务器(1983年 socket发布在Unix4.2 BSD 没有I/O复用)

这个的服务器程序也可以处理多个用户的请求,但必须得当前用户结束之后才能连接下一个用户。重点关注while循环体,在这个循环体中recv和send都是阻塞式的函数,如果用户没有向服务器发送数据,则循环将阻塞在recv函数中,整个服务器也进入了阻塞,不能做任何事情。所以这种实现方式中服务器和客户端的连接是一对一的。如果当前的用户断开连接,则recv函数返回-1,if判断生效,使用accept函数接收下一个用户的连接请求。注意,accept函数也是阻塞的,如果没有下一个用户请求,服务器将在这个位置阻塞。

2022-11-28 15:38:45 196

原创 Linux C网络通信过程

逐步介绍Linux 网络连接的过程

2022-11-24 18:37:45 838

原创 矩阵求导简记

很多机器学习算法都需要求解最值,比如最小二乘法求解样本空间相对拟合曲线的最短距离,最值的求解往往通过求导来计算,而机器学习中又常用矩阵来处理数据,所以很多时候会涉及到矩阵的求导。矩阵求导就像是线性代数和微积分的结合,但两者结合后规则又有些不同。

2022-11-04 15:55:45 922

原创 在Ubuntu中删除文件遇到Permission denied

Permission denied:用户对文件没有操作权限,可能是文件不属于该用户,也可能是该文件在其他进程中打开处于保护状态。

2022-10-12 08:40:35 923

原创 tensor的mode-n展开和mode-n乘积

介绍tensor的mode-n展开和mode-n乘积

2022-08-16 11:39:06 2630

原创 SSH登录Linux的两种方式

SSH可以通过密码登录服务器,也可以通过密钥对登录服务器。

2022-06-17 10:37:30 4718

原创 在WSL2中开启OpenGL直接渲染以及升级OpenGL

关于OpenGL的不同渲染方式的简要介绍,以及如何升级OpenGL到最新版

2022-06-04 17:34:54 6634 5

原创 Ubunut中安装ROS2 foxy:问题及记录

安装ROS2中遇到的两个错误:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused和E: Unabel to locate package ros-foxy-desktop

2022-06-02 10:56:04 1014 1

原创 WSL中的代理和镜像

在使用WSL时常常会遇安装软件网络慢,甚至有些情况下连不上的问题。有两种解决思路:一是使用镜像网站,例如国内的阿里云,这样下载软件时直接从国内下载,访问起来更流畅;二是购买并设置代理,虽然资源依然下载自国外,但网络的路径有更多的选择,可以选择更通常的中继站点访问国外的资源。

2022-06-01 22:24:52 1772

原创 无法连接虚拟设备sata的原因

在使用VMware Player的时候,启动虚拟机时会出现下面的错误:在网上查找了一些帖子,对于这个问题我是这样理解的,CD/DVD中设置了操作系统的加载位置,开机后根据选定的位置来加载操作系统。有两种设置方式,一种是自己设置CD/DVD,如下:比如设置sata0:1,但实际上操作系统不一定在这个位置上,所以打开虚拟机后会报告“无法连接虚拟设备sata0:1 。那为什么虚拟机还可以正常打开呢?因为上面在设置CD/DVD时还选择了自动检测,所以选择的这个虚拟设备节点即使出错了系统也会自动检测到操作系

2021-06-07 08:48:40 4841

原创 函数指针

学习了函数指针,同时了解到函数也可以设置属性,其中一种设置是强制函数在main之前执行,另外还可以用这种方式来完成注册函数。

2021-05-19 21:42:14 155

原创 编译和宏

简单的介绍编译过程,以及宏的用法。

2021-05-19 20:48:16 1968

转载 git提交PR的过程

转载一篇文章,git提交PR的过程。

2021-05-17 19:08:22 801

原创 淘宝页面商品信息的抓取

通过selenium尝试爬取淘宝商品信息

2021-05-03 19:18:49 1137 3

原创 mitmproxy的安装和使用

介绍mitmproxy的安装过程,如有疑问欢迎留言

2021-05-03 18:18:19 570 3

原创 虚拟机ip、主机ip、代理ip

区分执行ipconfig后显示的各类ip地址。

2021-05-03 17:09:45 3000

原创 pymysql的使用

mysql有一个默认的数据库用户root,如果编写代码去连接数据库的话,可能由于安全机制而无法连接。可以创建一个新的mysql用户,区别于root用户。这也是大多数情况下推荐的做法。

2021-05-01 11:47:49 84

原创 爬取json数据

爬取知乎中的推荐内容,输出每条推荐文章的链接和标题

2021-05-01 11:32:21 3247

原创 json文件的读写

文章目录字符型到json型的转换文件的写操作文件的读操作字符型到json型的转换首先给出要处理的数据,数据为字符串型。import json# 一个json的字符串,注意里面的字段要用双引号而非单引号括起来str = '''[{ "name":"Bob", "gender":"male", "birthday":"1992-10-18"},{ "name":"Selina", "gender":"female", "birthday":"1995-10-18"}

2021-05-01 09:20:43 875 2

原创 C语言创建记录文件

文章目录任务概述代码部分存在的问题任务概述简单的创建一个记录型文件文件分为流式文件和记录型文件。流式文件中的数据没有组织结构,可以认为是一长串的字符;而记录型文件是有结构的,比如我们用的excel,可以认为每一行是一条记录,每条记录中可以有不同类型的数据,如字符型的姓名,浮点型的分数,这些数据组成了一个同学的成绩记录。这次需要做的就是简单的做个实践,创建一个记录型文件用于记录学生信息,每条记录包含学生姓名,学生专业课程,学生学号。代码部分#include<stdio.h>typ

2021-04-30 17:21:46 507 2

原创 知乎热榜爬取

定时的爬取知乎热榜前十的标题,如果当前爬取的热榜较上一次有所变动,则将新增的标题打印出来。

2021-04-30 15:51:44 742 1

原创 python文件读写

读写函数with open('info1.txt', 'r+') as f1: # 读取文件中的每一行并以列表形式返回 lines = f1.readlines() # 将lines中的全部字符串依次写入文件中 f1.writelines(lines)bug点编码python3中f.readlines()的默认编码是gbk,如果文件为其他编码,则会报错如下:'gbk' codec can't decode byte 0x9d in position 99: illegal multiby

2021-04-27 15:17:16 434 2

空空如也

空空如也

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

TA关注的人

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