Python环境配置
Debian 11
安装Python
12345678910111213141516// 安装Python3.9sudo apt updatesudo apt upgradesudo apt install python3.9// 设置别名alias python="/usr/bin/python3"// 验证python版本python --version// 安装pipsudo apt install python3-pip// 验证pip版本pip --version
安装Anaconda
1234567891011121314151617// 安装依赖sudo apt updatesudo apt upgradesudo apt install wget apt-transport-https gnupg2 software-properties-common// 下载安装脚本# 官方仓库:https://repo.anaconda.com/archive/wget https://repo.anaconda.com/archive/Anaconda3-20 ...
Node.js环境配置
Debian 11
apt安装
1234567891011121314// 安装Node.js和npmsudo apt install nodejs npm -y// 安装Yarnsudo npm install -g yarn// 卸载sudo npm -g uninstall yarnsudo apt remove npm nodejs// 验证版本 node -vnpm -vyarn -v
NodeSource安装
123456789101112131415161718192021// 卸载旧版本sudo apt purge nodejssudo apt autoremove // 安装Nodejssudo apt updatecurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt install nodejs build-essential -y// 安装npm和yarnsudo corepack enable npmsudo corepack enable yarn// 更改权限su ...
Go环境配置
Debian 11
1234567891011121314// 安装aria2csudo apt install aria2// 下载安装文件并解压cd ~aria2c -x 8 https://go.dev/dl/go1.21.7.linux-amd64.tar.gzsudo tar -zxvf go1.21.7.linux-amd64.tar.gz -C /usr/local/// 配置环境变量echo "export PATH=/usr/local/go/bin:\${PATH}" | sudo tee /etc/profile.d/go.shsource /etc/profile.d/go.sh// 验证版本go version
查看官网确定下载版本并且替换版本号。
解决使用代理后WSL2、docker报错的问题
问题描述
使用代理后,因为sock端口冲突的问题,WSL2会报参考的对象类型不支持尝试的操作错误,docker客户端启动会显示乱码,无法启动。
产生的原因
代理软件和wsl2的sock端口冲突,使用netsh winsock reset重置修复。
Proxifer开发人员解释如下:
如果Winsock LSP DLL被加载到其进程中,则wsl.exe将显示此错误。最简单的解决方案是对wsl.exe使用WSCSetApplicationCategory WinAPI调用来防止这种情况。在后台,该调用在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog中为wsl.exe创建一个条目。
这将告诉Windows不要将LSP DLL加载到wsl.exe进程中。
临时解决方法
在管理员的权限下运行下述命令:
1netsh winsock reset
然后重启电脑即可,但是这种办法会导致代理无法使用。
永久解决办法
下载nolsp软件,然后在nolsp软件目录下用管理员权限 ...
解决raw.githubusercontent.com无法访问的问题
解决raw.githubusercontent.com无法访问的问题
一般情况下,github.com已经被官方节流,正常的访问速度非常慢。我们可以用一些方法来进行加速,同时raw.githubusercontent.com也是可以正常访问的。
就在刚刚,要在raw.githubusercontent.com下一个文件,发现这个网站无法访问了!!!!
这不能忍啊,想办法解决一下吧。
首先,遇事不决先ping一下,出现如下错误:
1Ping 请求找不到主机 raw.githubusercontent.com。请检查该名称,然后重试。
这就是这个网址直接没法解析了啊。
然后考虑改hosts给它强行掰回来。这就需要知道raw.githubusercontent.com解析的真正IP。
在网址https://www.ipaddress.com/上查询raw.githubusercontent.com的解析IP:
1185.199.108.133
然后替换hosts文件就可以了。
windows环境下,寻找路径C:\Windows\System32\drivers\etc,用记事本打开hosts ...
windows 保留端口的相关问题
解决报错“此端口已被占用”问题
在 Windows 系统使用一些软件的时候,经常会弹出“此端口已被占用”的报错,因而将这个问题在这里梳理一下。
这个问题一般来说有两个原因,一个是这个端口已经被某个应用使用,另一个原因是这个端口被系统保留了。
问题排查
首先,检查端口占用情况:
12# powershellnetstat -ano | findstr "端口号"
如果有结果,就是被其他应用占用,会显示对应的 PID;否则的话,考虑是被系统保留了。
被其他应用占用
如果是被其他应用占用,直接 kill 就好:
1taskkill /f /t /im PID
被系统保留
造成系统保留端口的原因比较多,其中一个就是 hyper-v 虚拟机开启或者打开了 WSL2 的原因。
首先,查看系统的保留端口列表:
12345678910111213141516171819202122232425262728293031# 查看系统默认端口占用访问netsh int ipv4 show dynamicport tcp # 结果为: 协议 tcp 动态端口范围-------------- ...
VScode+LaTex+双向搜索的配置
VScode+LaTex+双向搜索的配置
在写论文的时候需要用到 Latex , 但是其自带的编辑器非常丑,而且并不好用,所以尝试使用 VScode 来进行 Latex 编辑。
下载安装软件
下载 Latex 相关软件
在 官网 下载安装Tex Live,这一步用时比较长,最好使用国内的镜像下载。
下载 VScode
在 [官网](Download Visual Studio Code - Mac, Linux, Windows) 下载安装对应操作系统的VScode,按使用习惯可以选择是否安装中文语言的扩展。
安装VS code的Latex插件。
下载 Sumatra PDF
在 官网 下载安装 Sumatra PDF。
配置 VScode
在VScode界面中使用快捷键【Ctrl + Shift +P】打开命令框,输入settings选择 首选项:打开设置(JSON),打开配置文件,输入如下配置信息:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505 ...
Git、Bash、CMD、Powershel代理配置
Git、Bash、CMD和Powershell的代理配置
PS:
下述方法设置的代理均为临时代理!
Git代理
HTTP/HTTPS代理
1234567# 设置代理git config --global http.proxy http://127.0.0.1:1080git config --global https.proxy https://127.0.0.1:1080# 取消代理git config --global --unset http.proxygit config --global --unset https.proxy
SOCKS5代理
1234567# 设置代理git config --global http.proxy socks5://127.0.0.1:1080git config --global https.proxy socks5://127.0.0.1:1805# 取消代理git config --global --unset http.proxygit config --global --unset https.proxy
Bash代理
...
用C++实现一个简易的线程池
什么是线程池
线程池是一项程序开发人员以简单和有效的方式去利用现代处理器的并发性来榨取处理器性能的方法。简而言之,线程池通过对线程的有效管理,提高了CPU的并发性。一般的流程是,提交一项任务后,线程池分配线程在不阻塞主线程的情况下完成这项工作。并且,线程池并不是每提交一项任务初始化一次,而是一次初始化,保持非活跃状态直至一些任务完成。这样的话,也减小了系统开销。
线程池的原理示意图如下:
什么情况下需要使用线程池
有这样一个项目:公司需要为某某超市做一套对每天进入超市的顾客做用户画像的系统。基本流程是:对海康摄像头拍摄到的每一帧画面做人脸检测,然后对每个人脸进行年龄、性别和特征点的计算,最后将结果post到服务端进行后续处理。大家都知道人脸相关算法耗时是较高的,如果所有计算任务都放在主线程进行,那么势必会阻塞主线程的处理流程,无法做到实时处理。使用多线程技术是大家自然而然想到的方案,对每一帧都创建一个新的线程来做这系列的处理是否合理呢?相信大家都知道,线程的创建和销毁都是需要时间的,在上述的场景中必然会频繁的创建和销毁线程,这样的开销相信是不能接受的,此时线程池技术便是很好的选择。
...
WebServer项目——webserver详解
WebServer项目——webserver详解
webserver介绍
这个webserver类是对整个web服务器的抽象,基于HTTPconnection类、timer类、epoller类、threadpool类实现一个完整的高性能web服务器的所有功能。
需要满足的功能有:
初始化服务器,为HTTP的连接做好准备;
处理每一个HTTP连接;
用定时器给每一个HTTP连接定时,并且处理掉过期的连接;
运用IO多路复用技术提升IO性能;
运用线程池技术提升服务器性能;
webserver的逻辑
首先是进行服务器的初始化,进行各种参数设置。其中包括了事件模式的初始化、socket连接的建立过程,主要用到了以下两个函数:
12bool initSocket_(); void initEventMode_(int trigMode);
在初始化socket的过程中,将listenFd_描述符也加入epoll进行监视。这样的话,当监听的listenFd(socketFd)有新连接的时候,就会发来一个可读信号。同时,也将监听socket的行为(是否有新的连接)和监听每一个HTTP连接的行为 ...